1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3
4#ifndef ABSTRACTFORMWINDOW_H
5#define ABSTRACTFORMWINDOW_H
6
7#include <QtDesigner/sdk_global.h>
8
9#include <QtWidgets/qwidget.h>
10
11QT_BEGIN_NAMESPACE
12
13class QDesignerFormEditorInterface;
14class QDesignerFormWindowCursorInterface;
15class QDesignerFormWindowToolInterface;
16class QUndoStack;
17class QDir;
18class QtResourceSet;
19
20class QDESIGNER_SDK_EXPORT QDesignerFormWindowInterface: public QWidget
21{
22 Q_OBJECT
23public:
24 enum FeatureFlag
25 {
26 EditFeature = 0x01,
27 GridFeature = 0x02,
28 TabOrderFeature = 0x04,
29 DefaultFeature = EditFeature | GridFeature
30 };
31 Q_DECLARE_FLAGS(Feature, FeatureFlag)
32
33 enum ResourceFileSaveMode
34 {
35 SaveAllResourceFiles,
36 SaveOnlyUsedResourceFiles,
37 DontSaveResourceFiles
38 };
39 Q_ENUM(ResourceFileSaveMode)
40
41 explicit QDesignerFormWindowInterface(QWidget *parent = nullptr, Qt::WindowFlags flags = {});
42 virtual ~QDesignerFormWindowInterface();
43
44 virtual QString fileName() const = 0;
45 virtual QDir absoluteDir() const = 0;
46
47 virtual QString contents() const = 0;
48 virtual QStringList checkContents() const = 0;
49 virtual bool setContents(QIODevice *dev, QString *errorMessage = nullptr) = 0;
50
51 virtual Feature features() const = 0;
52 virtual bool hasFeature(Feature f) const = 0;
53
54 virtual QString author() const = 0;
55 virtual void setAuthor(const QString &author) = 0;
56
57 virtual QString comment() const = 0;
58 virtual void setComment(const QString &comment) = 0;
59
60 virtual void layoutDefault(int *margin, int *spacing) = 0;
61 virtual void setLayoutDefault(int margin, int spacing) = 0;
62
63 virtual void layoutFunction(QString *margin, QString *spacing) = 0;
64 virtual void setLayoutFunction(const QString &margin, const QString &spacing) = 0;
65
66 virtual QString pixmapFunction() const = 0;
67 virtual void setPixmapFunction(const QString &pixmapFunction) = 0;
68
69 virtual QString exportMacro() const = 0;
70 virtual void setExportMacro(const QString &exportMacro) = 0;
71
72 virtual QStringList includeHints() const = 0;
73 virtual void setIncludeHints(const QStringList &includeHints) = 0;
74
75 virtual ResourceFileSaveMode resourceFileSaveMode() const = 0;
76 virtual void setResourceFileSaveMode(ResourceFileSaveMode behaviour) = 0;
77
78 virtual QtResourceSet *resourceSet() const = 0;
79 virtual void setResourceSet(QtResourceSet *resourceSet) = 0;
80
81 QStringList activeResourceFilePaths() const;
82
83 virtual QDesignerFormEditorInterface *core() const;
84 virtual QDesignerFormWindowCursorInterface *cursor() const = 0;
85
86 virtual int toolCount() const = 0;
87
88 virtual int currentTool() const = 0;
89 virtual void setCurrentTool(int index) = 0;
90
91 virtual QDesignerFormWindowToolInterface *tool(int index) const = 0;
92 virtual void registerTool(QDesignerFormWindowToolInterface *tool) = 0;
93
94 virtual QPoint grid() const = 0;
95
96 virtual QWidget *mainContainer() const = 0;
97 virtual void setMainContainer(QWidget *mainContainer) = 0;
98 virtual QWidget *formContainer() const = 0;
99
100 virtual bool isManaged(QWidget *widget) const = 0;
101
102 virtual bool isDirty() const = 0;
103
104 static QDesignerFormWindowInterface *findFormWindow(QWidget *w);
105 static QDesignerFormWindowInterface *findFormWindow(QObject *obj);
106
107 virtual QUndoStack *commandHistory() const = 0;
108 virtual void beginCommand(const QString &description) = 0;
109 virtual void endCommand() = 0;
110
111 virtual void simplifySelection(QList<QWidget*> *widgets) const = 0;
112
113 // notifications
114 virtual void emitSelectionChanged() = 0;
115
116 virtual QStringList resourceFiles() const = 0;
117 virtual void addResourceFile(const QString &path) = 0;
118 virtual void removeResourceFile(const QString &path) = 0;
119
120 virtual void ensureUniqueObjectName(QObject *object) = 0;
121
122public Q_SLOTS:
123 virtual void manageWidget(QWidget *widget) = 0;
124 virtual void unmanageWidget(QWidget *widget) = 0;
125
126 virtual void setFeatures(Feature f) = 0;
127 virtual void setDirty(bool dirty) = 0;
128 virtual void clearSelection(bool changePropertyDisplay = true) = 0;
129 virtual void selectWidget(QWidget *w, bool select = true) = 0;
130 virtual void setGrid(const QPoint &grid) = 0;
131 virtual void setFileName(const QString &fileName) = 0;
132 virtual bool setContents(const QString &contents) = 0;
133
134 virtual void editWidgets() = 0;
135 void activateResourceFilePaths(const QStringList &paths, int *errorCount = nullptr, QString *errorMessages = nullptr);
136
137Q_SIGNALS:
138 void mainContainerChanged(QWidget *mainContainer);
139 void toolChanged(int toolIndex);
140 void fileNameChanged(const QString &fileName);
141 void featureChanged(Feature f);
142 void selectionChanged();
143 void geometryChanged();
144
145 void resourceFilesChanged();
146
147 void widgetManaged(QWidget *widget);
148 void widgetUnmanaged(QWidget *widget);
149 void aboutToUnmanageWidget(QWidget *widget);
150 void activated(QWidget *widget);
151
152 void changed();
153 void widgetRemoved(QWidget *w);
154 void objectRemoved(QObject *o);
155};
156
157QT_END_NAMESPACE
158
159#endif // ABSTRACTFORMWINDOW_H
160

source code of qttools/src/designer/src/lib/sdk/abstractformwindow.h