Создадим свойство которое будет содержать список параметров. Параметр - объект содержащий: своё название, название тега с которым он связан, правила преобразования значения тега в значение параметра и, если параметр является перечислением, список возможных значений.
Создаём новые классы описывающий параметр и список параметров.
class VsqParameter { public: VsqParameter(); public: QString ParameterName; QString TagName; QStringList TransformRules; QStringList ValsList; }; typedef QList<VsqParameter> VsqParameterList;
Регистрируем информацию о типах (это лучше сделать, там же где объявлены классы):
Q_DECLARE_METATYPE (VsqParameter) Q_DECLARE_METATYPE (VsqParameterList)
В начале программы регистрируем для использования в рантайме.
storeUserTypeInfo("VsqParameterList", qRegisterMetaType<VsqParameterList>());
qRegisterMetaType - регистрирует тип в метообъектной системе. storeUserTypeInfo - позволяет сохранить номер зарегистрированного типа в нашей программе, для получения номера используйте int getUserTypeNum(QString className).
Кроме того необходимо создать редактор и «обучить» класс загрузки и сохранения проекта (TFilter) работать со свойствами данного типа.