1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef FORMBUILDER_H
5#define FORMBUILDER_H
6
7#if 0
8# pragma qt_class(QFormBuilder)
9# pragma qt_sync_skip_header_check
10#endif
11
12#include "uilib_global.h"
13#include "abstractformbuilder.h"
14
15QT_BEGIN_NAMESPACE
16
17class QDesignerCustomWidgetInterface;
18
19#ifdef QFORMINTERNAL_NAMESPACE
20namespace QFormInternal
21{
22#endif
23
24class QDESIGNER_UILIB_EXPORT QFormBuilder: public QAbstractFormBuilder
25{
26public:
27 QFormBuilder();
28 ~QFormBuilder() override;
29
30 QStringList pluginPaths() const;
31
32 void clearPluginPaths();
33 void addPluginPath(const QString &pluginPath);
34 void setPluginPath(const QStringList &pluginPaths);
35
36 QList<QDesignerCustomWidgetInterface*> customWidgets() const;
37
38protected:
39 QWidget *create(DomUI *ui, QWidget *parentWidget) override;
40 QWidget *create(DomWidget *ui_widget, QWidget *parentWidget) override;
41 QLayout *create(DomLayout *ui_layout, QLayout *layout, QWidget *parentWidget) override;
42 QLayoutItem *create(DomLayoutItem *ui_layoutItem, QLayout *layout, QWidget *parentWidget) override;
43 QAction *create(DomAction *ui_action, QObject *parent) override;
44 QActionGroup *create(DomActionGroup *ui_action_group, QObject *parent) override;
45
46 QWidget *createWidget(const QString &widgetName, QWidget *parentWidget, const QString &name) override;
47 QLayout *createLayout(const QString &layoutName, QObject *parent, const QString &name) override;
48
49 void createConnections(DomConnections *connections, QWidget *widget) override;
50
51 bool addItem(DomLayoutItem *ui_item, QLayoutItem *item, QLayout *layout) override;
52 bool addItem(DomWidget *ui_widget, QWidget *widget, QWidget *parentWidget) override;
53
54 virtual void updateCustomWidgets();
55 void applyProperties(QObject *o, const QList<DomProperty*> &properties) override;
56
57 static QWidget *widgetByName(QWidget *topLevel, const QString &name);
58
59private:
60};
61
62#ifdef QFORMINTERNAL_NAMESPACE
63}
64#endif
65
66QT_END_NAMESPACE
67
68#endif // FORMBUILDER_H
69

source code of qttools/src/designer/src/lib/uilib/formbuilder.h