85 Q_DISABLE_COPY_MOVE(QAbstractFormBuilder)
87 QAbstractFormBuilder();
88 virtual ~QAbstractFormBuilder();
90 QDir workingDirectory()
const;
91 void setWorkingDirectory(
const QDir &directory);
93 virtual QWidget *load(QIODevice *dev, QWidget *parentWidget =
nullptr);
94 virtual void save(QIODevice *dev, QWidget *widget);
96 QString errorString()
const;
102 virtual void loadExtraInfo(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget);
104 virtual QWidget *create(DomUI *ui, QWidget *parentWidget);
105 virtual QWidget *create(DomWidget *ui_widget, QWidget *parentWidget);
106 virtual QLayout *create(DomLayout *ui_layout, QLayout *layout, QWidget *parentWidget);
107 virtual QLayoutItem *create(DomLayoutItem *ui_layoutItem, QLayout *layout, QWidget *parentWidget);
109 virtual QAction *create(DomAction *ui_action, QObject *parent);
110 virtual QActionGroup *create(DomActionGroup *ui_action_group, QObject *parent);
111 virtual void addMenuAction(QAction *action);
113 virtual void applyProperties(QObject *o,
const QList<DomProperty*> &properties);
114 bool applyPropertyInternally(QObject *o,
const QString &propertyName,
const QVariant &value);
116 virtual void applyTabStops(QWidget *widget, DomTabStops *tabStops);
118 virtual QWidget *createWidget(
const QString &widgetName, QWidget *parentWidget,
const QString &name);
119 virtual QLayout *createLayout(
const QString &layoutName, QObject *parent,
const QString &name);
120 virtual QAction *createAction(QObject *parent,
const QString &name);
121 virtual QActionGroup *createActionGroup(QObject *parent,
const QString &name);
123 virtual void createCustomWidgets(DomCustomWidgets *) {}
124 virtual void createConnections(DomConnections *, QWidget *) {}
125 virtual void createResources(DomResources*) {}
127 virtual bool addItem(DomLayoutItem *ui_item, QLayoutItem *item, QLayout *layout);
128 virtual bool addItem(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget);
133 virtual void saveExtraInfo(QWidget *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
135 virtual void saveDom(DomUI *ui, QWidget *widget);
137 virtual DomActionRef *createActionRefDom(QAction *action);
139 virtual DomWidget *createDom(QWidget *widget, DomWidget *ui_parentWidget,
bool recursive =
true);
140 virtual DomLayout *createDom(QLayout *layout, DomLayout *ui_layout, DomWidget *ui_parentWidget);
141 virtual DomLayoutItem *createDom(QLayoutItem *item, DomLayout *ui_parentLayout, DomWidget *ui_parentWidget);
142 virtual DomSpacer *createDom(QSpacerItem *spacer, DomLayout *ui_parentLayout, DomWidget *ui_parentWidget);
144 virtual DomAction *createDom(QAction *action);
145 virtual DomActionGroup *createDom(QActionGroup *actionGroup);
146 DomButtonGroup *createDom(QButtonGroup *buttonGroup);
148 virtual DomConnections *saveConnections();
149 virtual DomCustomWidgets *saveCustomWidgets();
150 virtual DomTabStops *saveTabStops();
151 virtual DomResources *saveResources();
152 DomButtonGroups *saveButtonGroups(
const QWidget *mainContainer);
153 virtual QList<DomProperty*> computeProperties(QObject *obj);
154 virtual bool checkProperty(QObject *obj,
const QString &prop)
const;
155 virtual DomProperty *createProperty(QObject *object,
const QString &propertyName,
const QVariant &value);
157 virtual void layoutInfo(DomLayout *layout, QObject *parent,
int *margin,
int *spacing);
159 void loadListWidgetExtraInfo(DomWidget *ui_widget, QListWidget *listWidget, QWidget *parentWidget);
160 void loadTreeWidgetExtraInfo(DomWidget *ui_widget, QTreeWidget *treeWidget, QWidget *parentWidget);
161 void loadTableWidgetExtraInfo(DomWidget *ui_widget, QTableWidget *tableWidget, QWidget *parentWidget);
162 void loadComboBoxExtraInfo(DomWidget *ui_widget, QComboBox *comboBox, QWidget *parentWidget);
163 void loadButtonExtraInfo(
const DomWidget *ui_widget, QAbstractButton *button, QWidget *parentWidget);
164 void loadItemViewExtraInfo(DomWidget *ui_widget, QAbstractItemView *itemView, QWidget *parentWidget);
166 void saveListWidgetExtraInfo(QListWidget *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
167 void saveTreeWidgetExtraInfo(QTreeWidget *treeWidget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
168 void saveTableWidgetExtraInfo(QTableWidget *tablWidget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
169 void saveComboBoxExtraInfo(QComboBox *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
170 void saveButtonExtraInfo(
const QAbstractButton *widget, DomWidget *ui_widget, DomWidget *ui_parentWidget);
171 void saveItemViewExtraInfo(
const QAbstractItemView *itemView, DomWidget *ui_widget, DomWidget *ui_parentWidget);
173 void setResourceBuilder(QResourceBuilder *builder);
174 QResourceBuilder *resourceBuilder()
const;
175 DomProperty *saveResource(
const QVariant &v)
const;
177 void setTextBuilder(QTextBuilder *builder);
178 QTextBuilder *textBuilder()
const;
179 DomProperty *saveText(
const QString &attributeName,
const QVariant &v)
const;
184 QVariant toVariant(
const QMetaObject *meta, DomProperty *property);
185 static QString toString(
const DomString *str);
187 using DomPropertyHash = QHash<QString, DomProperty*>;
188 static DomPropertyHash propertyMap(
const QList<DomProperty*> &properties);
190 void setupColorGroup(QPalette &palette, QPalette::ColorGroup colorGroup, DomColorGroup *group);
191 DomColorGroup *saveColorGroup(
const QPalette &palette);
192 QBrush setupBrush(DomBrush *brush);
193 DomBrush *saveBrush(
const QBrush &brush);
196 void initialize(
const DomUI *ui);
202 static QMetaEnum toolBarAreaMetaEnum();
208 using IconPaths = std::pair<QString, QString>;
210 void setIconProperty(DomProperty &,
const IconPaths &)
const;
211 void setPixmapProperty(DomProperty &,
const IconPaths &)
const;
213 static const DomResourcePixmap *domPixmap(
const DomProperty* p);
219 static Qt::ToolBarArea toolbarAreaFromDOMAttributes(
const DomPropertyHash &attributeMap);
221 friend QDESIGNER_UILIB_EXPORT DomProperty *variantToDomProperty(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const QString &propertyName,
const QVariant &value);
222 friend QDESIGNER_UILIB_EXPORT QVariant domPropertyToVariant(QAbstractFormBuilder *abstractFormBuilder,
const QMetaObject *meta,
const DomProperty *property);
225 QScopedPointer<QFormBuilderExtra> d;