78 Q_DISABLE_COPY_MOVE(QAbstractFormBuilder)
80 QAbstractFormBuilder();
81 virtual ~QAbstractFormBuilder();
83 QDir workingDirectory()
const;
84 void setWorkingDirectory(
const QDir &directory);
86 virtual QWidget *load(QIODevice *dev, QWidget *parentWidget =
nullptr);
87 virtual void save(QIODevice *dev, QWidget *widget);
89 QString errorString()
const;
95 virtual void loadExtraInfo(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget);
97 virtual QWidget *create(DomUI *ui, QWidget *parentWidget);
98 virtual QWidget *create(DomWidget *ui_widget, QWidget *parentWidget);
99 virtual QLayout *create(DomLayout *ui_layout, QLayout *layout, QWidget *parentWidget);
100 virtual QLayoutItem *create(DomLayoutItem *ui_layoutItem, QLayout *layout, QWidget *parentWidget);
102 virtual QAction *create(DomAction *ui_action, QObject *parent);
103 virtual QActionGroup *create(DomActionGroup *ui_action_group, QObject *parent);
104 virtual void addMenuAction(QAction *action);
106 virtual void applyProperties(QObject *o,
const QList<DomProperty*> &properties);
107 bool applyPropertyInternally(QObject *o,
const QString &propertyName,
const QVariant &value);
109 virtual void applyTabStops(QWidget *widget, DomTabStops *tabStops);
111 virtual QWidget *createWidget(
const QString &widgetName, QWidget *parentWidget,
const QString &name);
112 virtual QLayout *createLayout(
const QString &layoutName, QObject *parent,
const QString &name);
113 virtual QAction *createAction(QObject *parent,
const QString &name);
114 virtual QActionGroup *createActionGroup(QObject *parent,
const QString &name);
116 virtual void createCustomWidgets(DomCustomWidgets *) {}
117 virtual void createConnections(DomConnections *, QWidget *) {}
118 virtual void createResources(DomResources*) {}
120 virtual bool addItem(DomLayoutItem *ui_item, QLayoutItem *item, QLayout *layout);
121 virtual bool addItem(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget);
126 virtual void saveExtraInfo(QWidget *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
128 virtual void saveDom(DomUI *ui, QWidget *widget);
130 virtual DomActionRef *createActionRefDom(QAction *action);
132 virtual DomWidget *createDom(QWidget *widget, DomWidget *ui_parentWidget,
bool recursive =
true);
133 virtual DomLayout *createDom(QLayout *layout, DomLayout *ui_layout, DomWidget *ui_parentWidget);
134 virtual DomLayoutItem *createDom(QLayoutItem *item, DomLayout *ui_parentLayout, DomWidget *ui_parentWidget);
135 virtual DomSpacer *createDom(QSpacerItem *spacer, DomLayout *ui_parentLayout, DomWidget *ui_parentWidget);
137 virtual DomAction *createDom(QAction *action);
138 virtual DomActionGroup *createDom(QActionGroup *actionGroup);
139 DomButtonGroup *createDom(QButtonGroup *buttonGroup);
141 virtual DomConnections *saveConnections();
142 virtual DomCustomWidgets *saveCustomWidgets();
143 virtual DomTabStops *saveTabStops();
144 virtual DomResources *saveResources();
145 DomButtonGroups *saveButtonGroups(
const QWidget *mainContainer);
146 virtual QList<DomProperty*> computeProperties(QObject *obj);
147 virtual bool checkProperty(QObject *obj,
const QString &prop)
const;
148 virtual DomProperty *createProperty(QObject *object,
const QString &propertyName,
const QVariant &value);
150 virtual void layoutInfo(DomLayout *layout, QObject *parent,
int *margin,
int *spacing);
152 void loadListWidgetExtraInfo(DomWidget *ui_widget, QListWidget *listWidget, QWidget *parentWidget);
153 void loadTreeWidgetExtraInfo(DomWidget *ui_widget, QTreeWidget *treeWidget, QWidget *parentWidget);
154 void loadTableWidgetExtraInfo(DomWidget *ui_widget, QTableWidget *tableWidget, QWidget *parentWidget);
155 void loadComboBoxExtraInfo(DomWidget *ui_widget, QComboBox *comboBox, QWidget *parentWidget);
156 void loadButtonExtraInfo(
const DomWidget *ui_widget, QAbstractButton *button, QWidget *parentWidget);
157 void loadItemViewExtraInfo(DomWidget *ui_widget, QAbstractItemView *itemView, QWidget *parentWidget);
159 void saveListWidgetExtraInfo(QListWidget *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
160 void saveTreeWidgetExtraInfo(QTreeWidget *treeWidget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
161 void saveTableWidgetExtraInfo(QTableWidget *tablWidget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
162 void saveComboBoxExtraInfo(QComboBox *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
163 void saveButtonExtraInfo(
const QAbstractButton *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
164 void saveItemViewExtraInfo(
const QAbstractItemView *itemView, DomWidget *ui_widget, DomWidget *ui_parentWidget);
166 void setResourceBuilder(QResourceBuilder *builder);
167 QResourceBuilder *resourceBuilder()
const;
168 DomProperty *saveResource(
const QVariant &v)
const;
170 void setTextBuilder(QTextBuilder *builder);
171 QTextBuilder *textBuilder()
const;
172 DomProperty *saveText(
const QString &attributeName,
const QVariant &v)
const;
177 QVariant toVariant(
const QMetaObject *meta, DomProperty *property);
178 static QString toString(
const DomString *str);
180 using DomPropertyHash = QHash<QString, DomProperty*>;
181 static DomPropertyHash propertyMap(
const QList<DomProperty*> &properties);
183 void setupColorGroup(QPalette &palette, QPalette::ColorGroup colorGroup, DomColorGroup *group);
184 DomColorGroup *saveColorGroup(
const QPalette &palette);
185 QBrush setupBrush(DomBrush *brush);
186 DomBrush *saveBrush(
const QBrush &brush);
189 void initialize(
const DomUI *ui);
195 static QMetaEnum toolBarAreaMetaEnum();
201 using IconPaths = std::pair<QString, QString>;
203 void setIconProperty(DomProperty &,
const IconPaths &)
const;
204 void setPixmapProperty(DomProperty &,
const IconPaths &)
const;
206 static const DomResourcePixmap *domPixmap(
const DomProperty* p);
212 static Qt::ToolBarArea toolbarAreaFromDOMAttributes(
const DomPropertyHash &attributeMap);
214 friend QDESIGNER_UILIB_EXPORT DomProperty *variantToDomProperty(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const QString &propertyName,
const QVariant &value);
215 friend QDESIGNER_UILIB_EXPORT QVariant domPropertyToVariant(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const DomProperty *property);
218 QScopedPointer<QFormBuilderExtra> d;