source: trunk/tools/designer/src/lib/shared/widgetdatabase_p.h@ 846

Last change on this file since 846 was 846, checked in by Dmitry A. Kuminov, 15 years ago

trunk: Merged in qt 4.7.2 sources from branches/vendor/nokia/qt.

File size: 6.6 KB
Line 
1/****************************************************************************
2**
3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation ([email protected])
6**
7** This file is part of the Qt Designer of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** Commercial Usage
11** Licensees holding valid Qt Commercial licenses may use this file in
12** accordance with the Qt Commercial License Agreement provided with the
13** Software or, alternatively, in accordance with the terms contained in
14** a written agreement between you and Nokia.
15**
16** GNU Lesser General Public License Usage
17** Alternatively, this file may be used under the terms of the GNU Lesser
18** General Public License version 2.1 as published by the Free Software
19** Foundation and appearing in the file LICENSE.LGPL included in the
20** packaging of this file. Please review the following information to
21** ensure the GNU Lesser General Public License version 2.1 requirements
22** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
23**
24** In addition, as a special exception, Nokia gives you certain additional
25** rights. These rights are described in the Nokia Qt LGPL Exception
26** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
27**
28** GNU General Public License Usage
29** Alternatively, this file may be used under the terms of the GNU
30** General Public License version 3.0 as published by the Free Software
31** Foundation and appearing in the file LICENSE.GPL included in the
32** packaging of this file. Please review the following information to
33** ensure the GNU General Public License version 3.0 requirements will be
34** met: http://www.gnu.org/copyleft/gpl.html.
35**
36** If you have questions regarding the use of this file, please contact
37** Nokia at [email protected].
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42//
43// W A R N I N G
44// -------------
45//
46// This file is not part of the Qt API. It exists for the convenience
47// of Qt Designer. This header
48// file may change from version to version without notice, or even be removed.
49//
50// We mean it.
51//
52
53
54#ifndef WIDGETDATABASE_H
55#define WIDGETDATABASE_H
56
57#include "shared_global_p.h"
58
59#include <QtDesigner/QDesignerWidgetDataBaseInterface>
60
61#include <QtGui/QIcon>
62#include <QtCore/QString>
63#include <QtCore/QVariant>
64#include <QtCore/QPair>
65#include <QtCore/QStringList>
66
67QT_BEGIN_NAMESPACE
68
69class QObject;
70class QDesignerCustomWidgetInterface;
71
72namespace qdesigner_internal {
73
74class QDESIGNER_SHARED_EXPORT WidgetDataBaseItem: public QDesignerWidgetDataBaseItemInterface
75{
76public:
77 explicit WidgetDataBaseItem(const QString &name = QString(),
78 const QString &group = QString());
79
80 QString name() const;
81 void setName(const QString &name);
82
83 QString group() const;
84 void setGroup(const QString &group);
85
86 QString toolTip() const;
87 void setToolTip(const QString &toolTip);
88
89 QString whatsThis() const;
90 void setWhatsThis(const QString &whatsThis);
91
92 QString includeFile() const;
93 void setIncludeFile(const QString &includeFile);
94
95
96 QIcon icon() const;
97 void setIcon(const QIcon &icon);
98
99 bool isCompat() const;
100 void setCompat(bool compat);
101
102 bool isContainer() const;
103 void setContainer(bool b);
104
105 bool isCustom() const;
106 void setCustom(bool b);
107
108 QString pluginPath() const;
109 void setPluginPath(const QString &path);
110
111 bool isPromoted() const;
112 void setPromoted(bool b);
113
114 QString extends() const;
115 void setExtends(const QString &s);
116
117 void setDefaultPropertyValues(const QList<QVariant> &list);
118 QList<QVariant> defaultPropertyValues() const;
119
120 static WidgetDataBaseItem *clone(const QDesignerWidgetDataBaseItemInterface *item);
121
122 QStringList fakeSlots() const;
123 void setFakeSlots(const QStringList &);
124
125 QStringList fakeSignals() const;
126 void setFakeSignals(const QStringList &);
127
128 QString addPageMethod() const;
129 void setAddPageMethod(const QString &m);
130
131private:
132 QString m_name;
133 QString m_group;
134 QString m_toolTip;
135 QString m_whatsThis;
136 QString m_includeFile;
137 QString m_pluginPath;
138 QString m_extends;
139 QString m_addPageMethod;
140 QIcon m_icon;
141 uint m_compat: 1;
142 uint m_container: 1;
143 uint m_form: 1;
144 uint m_custom: 1;
145 uint m_promoted: 1;
146 QList<QVariant> m_defaultPropertyValues;
147 QStringList m_fakeSlots;
148 QStringList m_fakeSignals;
149};
150
151enum IncludeType { IncludeLocal, IncludeGlobal };
152
153typedef QPair<QString, IncludeType> IncludeSpecification;
154
155QDESIGNER_SHARED_EXPORT IncludeSpecification includeSpecification(QString includeFile);
156QDESIGNER_SHARED_EXPORT QString buildIncludeFile(QString includeFile, IncludeType includeType);
157
158class QDESIGNER_SHARED_EXPORT WidgetDataBase: public QDesignerWidgetDataBaseInterface
159{
160 Q_OBJECT
161public:
162 explicit WidgetDataBase(QDesignerFormEditorInterface *core, QObject *parent = 0);
163 virtual ~WidgetDataBase();
164
165 virtual QDesignerFormEditorInterface *core() const;
166
167 virtual int indexOfObject(QObject *o, bool resolveName = true) const;
168
169 void remove(int index);
170
171
172 void grabDefaultPropertyValues();
173 void grabStandardWidgetBoxIcons();
174
175 // Helpers for 'New Form' wizards in integrations. Obtain a list of suitable classes and generate XML for them.
176 static QStringList formWidgetClasses(const QDesignerFormEditorInterface *core);
177 static QStringList customFormWidgetClasses(const QDesignerFormEditorInterface *core);
178 static QString formTemplate(const QDesignerFormEditorInterface *core, const QString &className, const QString &objectName);
179
180 // Helpers for 'New Form' wizards: Set a fixed size on a XML form template
181 static QString scaleFormTemplate(const QString &xml, const QSize &size, bool fixed);
182
183public slots:
184 void loadPlugins();
185
186private:
187 QList<QVariant> defaultPropertyValues(const QString &name);
188
189 QDesignerFormEditorInterface *m_core;
190};
191
192QDESIGNER_SHARED_EXPORT QDesignerWidgetDataBaseItemInterface
193 *appendDerived(QDesignerWidgetDataBaseInterface *db,
194 const QString &className,
195 const QString &group,
196 const QString &baseClassName,
197 const QString &includeFile,
198 bool promoted,
199 bool custom);
200
201typedef QList<QDesignerWidgetDataBaseItemInterface*> WidgetDataBaseItemList;
202
203QDESIGNER_SHARED_EXPORT WidgetDataBaseItemList
204 promotionCandidates(const QDesignerWidgetDataBaseInterface *db,
205 const QString &baseClassName);
206} // namespace qdesigner_internal
207
208QT_END_NAMESPACE
209
210#endif // WIDGETDATABASE_H
Note: See TracBrowser for help on using the repository browser.