main.cpp
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4 ** Contact: http://www.qt-project.org/legal
5 **
6 ** This file is part of the Qt Solutions component.
7 **
8 ** $QT_BEGIN_LICENSE:BSD$
9 ** You may use this file under the terms of the BSD license as follows:
10 **
11 ** "Redistribution and use in source and binary forms, with or without
12 ** modification, are permitted provided that the following conditions are
13 ** met:
14 ** * Redistributions of source code must retain the above copyright
15 ** notice, this list of conditions and the following disclaimer.
16 ** * Redistributions in binary form must reproduce the above copyright
17 ** notice, this list of conditions and the following disclaimer in
18 ** the documentation and/or other materials provided with the
19 ** distribution.
20 ** * Neither the name of Digia Plc and its Subsidiary(-ies) nor the names
21 ** of its contributors may be used to endorse or promote products derived
22 ** from this software without specific prior written permission.
23 **
24 **
25 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
36 **
37 ** $QT_END_LICENSE$
38 **
39 ****************************************************************************/
40 
41 #include <QApplication>
42 #include <QGridLayout>
43 #include <QIcon>
44 #include <QLabel>
45 #include <QMap>
46 #include <QScrollArea>
47 
49 #include "qteditorfactory.h"
51 #include "qtpropertymanager.h"
52 #include "qttreepropertybrowser.h"
53 
54 int
55 main(int argc, char** argv)
56 {
57  QApplication app(argc, argv);
58 
59  QWidget* w = new QWidget();
60 
61  QtBoolPropertyManager* boolManager = new QtBoolPropertyManager(w);
62  QtIntPropertyManager* intManager = new QtIntPropertyManager(w);
63  QtStringPropertyManager* stringManager = new QtStringPropertyManager(w);
64  QtSizePropertyManager* sizeManager = new QtSizePropertyManager(w);
65  QtRectPropertyManager* rectManager = new QtRectPropertyManager(w);
66  QtSizePolicyPropertyManager* sizePolicyManager = new QtSizePolicyPropertyManager(w);
67  QtEnumPropertyManager* enumManager = new QtEnumPropertyManager(w);
68  QtGroupPropertyManager* groupManager = new QtGroupPropertyManager(w);
69 
70  QtProperty* item0 = groupManager->addProperty("QObject");
71 
72  QtProperty* item1 = stringManager->addProperty("objectName");
73  item0->addSubProperty(item1);
74 
75  QtProperty* item2 = boolManager->addProperty("enabled");
76  item0->addSubProperty(item2);
77 
78  QtProperty* item3 = rectManager->addProperty("geometry");
79  item0->addSubProperty(item3);
80 
81  QtProperty* item4 = sizePolicyManager->addProperty("sizePolicy");
82  item0->addSubProperty(item4);
83 
84  QtProperty* item5 = sizeManager->addProperty("sizeIncrement");
85  item0->addSubProperty(item5);
86 
87  QtProperty* item7 = boolManager->addProperty("mouseTracking");
88  item0->addSubProperty(item7);
89 
90  QtProperty* item8 = enumManager->addProperty("direction");
91  QStringList enumNames;
92  enumNames << "Up"
93  << "Right"
94  << "Down"
95  << "Left";
96  enumManager->setEnumNames(item8, enumNames);
97  QMap<int, QIcon> enumIcons;
98  enumIcons[0] = QIcon(":/demo/images/up.png");
99  enumIcons[1] = QIcon(":/demo/images/right.png");
100  enumIcons[2] = QIcon(":/demo/images/down.png");
101  enumIcons[3] = QIcon(":/demo/images/left.png");
102  enumManager->setEnumIcons(item8, enumIcons);
103  item0->addSubProperty(item8);
104 
105  QtProperty* item9 = intManager->addProperty("value");
106  intManager->setRange(item9, -100, 100);
107  item0->addSubProperty(item9);
108 
109  QtCheckBoxFactory* checkBoxFactory = new QtCheckBoxFactory(w);
110  QtSpinBoxFactory* spinBoxFactory = new QtSpinBoxFactory(w);
111  QtSliderFactory* sliderFactory = new QtSliderFactory(w);
112  QtScrollBarFactory* scrollBarFactory = new QtScrollBarFactory(w);
113  QtLineEditFactory* lineEditFactory = new QtLineEditFactory(w);
114  QtEnumEditorFactory* comboBoxFactory = new QtEnumEditorFactory(w);
115 
117  editor1->setFactoryForManager(boolManager, checkBoxFactory);
118  editor1->setFactoryForManager(intManager, spinBoxFactory);
119  editor1->setFactoryForManager(stringManager, lineEditFactory);
120  editor1->setFactoryForManager(sizeManager->subIntPropertyManager(), spinBoxFactory);
121  editor1->setFactoryForManager(rectManager->subIntPropertyManager(), spinBoxFactory);
122  editor1->setFactoryForManager(sizePolicyManager->subIntPropertyManager(), spinBoxFactory);
123  editor1->setFactoryForManager(sizePolicyManager->subEnumPropertyManager(), comboBoxFactory);
124  editor1->setFactoryForManager(enumManager, comboBoxFactory);
125 
126  editor1->addProperty(item0);
127 
129  editor2->addProperty(item0);
130 
132  editor3->setFactoryForManager(boolManager, checkBoxFactory);
133  editor3->setFactoryForManager(intManager, spinBoxFactory);
134  editor3->setFactoryForManager(stringManager, lineEditFactory);
135  editor3->setFactoryForManager(sizeManager->subIntPropertyManager(), spinBoxFactory);
136  editor3->setFactoryForManager(rectManager->subIntPropertyManager(), spinBoxFactory);
137  editor3->setFactoryForManager(sizePolicyManager->subIntPropertyManager(), spinBoxFactory);
138  editor3->setFactoryForManager(sizePolicyManager->subEnumPropertyManager(), comboBoxFactory);
139  editor3->setFactoryForManager(enumManager, comboBoxFactory);
140 
141  editor3->addProperty(item0);
142 
143  QScrollArea* scroll3 = new QScrollArea();
144  scroll3->setWidgetResizable(true);
145  scroll3->setWidget(editor3);
146 
148  editor4->setFactoryForManager(boolManager, checkBoxFactory);
149  editor4->setFactoryForManager(intManager, scrollBarFactory);
150  editor4->setFactoryForManager(stringManager, lineEditFactory);
151  editor4->setFactoryForManager(sizeManager->subIntPropertyManager(), spinBoxFactory);
152  editor4->setFactoryForManager(rectManager->subIntPropertyManager(), spinBoxFactory);
153  editor4->setFactoryForManager(sizePolicyManager->subIntPropertyManager(), sliderFactory);
154  editor4->setFactoryForManager(sizePolicyManager->subEnumPropertyManager(), comboBoxFactory);
155  editor4->setFactoryForManager(enumManager, comboBoxFactory);
156 
157  editor4->addProperty(item0);
158 
159  QScrollArea* scroll4 = new QScrollArea();
160  scroll4->setWidgetResizable(true);
161  scroll4->setWidget(editor4);
162 
164  editor5->setFactoryForManager(boolManager, checkBoxFactory);
165  editor5->setFactoryForManager(intManager, scrollBarFactory);
166  editor5->setFactoryForManager(stringManager, lineEditFactory);
167  editor5->setFactoryForManager(sizeManager->subIntPropertyManager(), spinBoxFactory);
168  editor5->setFactoryForManager(rectManager->subIntPropertyManager(), spinBoxFactory);
169  editor5->setFactoryForManager(sizePolicyManager->subIntPropertyManager(), sliderFactory);
170  editor5->setFactoryForManager(sizePolicyManager->subEnumPropertyManager(), comboBoxFactory);
171  editor5->setFactoryForManager(enumManager, comboBoxFactory);
172 
173  editor5->addProperty(item0);
174 
175  QScrollArea* scroll5 = new QScrollArea();
176  scroll5->setWidgetResizable(true);
177  scroll5->setWidget(editor5);
178 
179  QGridLayout* layout = new QGridLayout(w);
180  QLabel* label1 = new QLabel("Editable Tree Property Browser");
181  QLabel* label2 = new QLabel("Read Only Tree Property Browser, editor factories are not set");
182  QLabel* label3 = new QLabel("Group Box Property Browser");
183  QLabel* label4 = new QLabel("Group Box Property Browser with different editor factories");
184  QLabel* label5 = new QLabel("Button Property Browser");
185  label1->setWordWrap(true);
186  label2->setWordWrap(true);
187  label3->setWordWrap(true);
188  label4->setWordWrap(true);
189  label5->setWordWrap(true);
190  label1->setFrameShadow(QFrame::Sunken);
191  label2->setFrameShadow(QFrame::Sunken);
192  label3->setFrameShadow(QFrame::Sunken);
193  label4->setFrameShadow(QFrame::Sunken);
194  label5->setFrameShadow(QFrame::Sunken);
195  label1->setFrameShape(QFrame::Panel);
196  label2->setFrameShape(QFrame::Panel);
197  label3->setFrameShape(QFrame::Panel);
198  label4->setFrameShape(QFrame::Panel);
199  label5->setFrameShape(QFrame::Panel);
200  label1->setAlignment(Qt::AlignCenter);
201  label2->setAlignment(Qt::AlignCenter);
202  label3->setAlignment(Qt::AlignCenter);
203  label4->setAlignment(Qt::AlignCenter);
204  label5->setAlignment(Qt::AlignCenter);
205 
206  layout->addWidget(label1, 0, 0);
207  layout->addWidget(label2, 0, 1);
208  layout->addWidget(label3, 0, 2);
209  layout->addWidget(label4, 0, 3);
210  layout->addWidget(label5, 0, 4);
211  layout->addWidget(editor1, 1, 0);
212  layout->addWidget(editor2, 1, 1);
213  layout->addWidget(scroll3, 1, 2);
214  layout->addWidget(scroll4, 1, 3);
215  layout->addWidget(scroll5, 1, 4);
216  w->show();
217 
218  int ret = app.exec();
219  delete w;
220  return ret;
221 }
QtRectPropertyManager
The QtRectPropertyManager provides and manages QRect properties.
Definition: qtpropertymanager.h:536
QtAbstractPropertyBrowser::addProperty
QtBrowserItem * addProperty(QtProperty *property)
Definition: qtpropertybrowser.cpp:2050
armarx::aron::ret
ReaderT::InputType T & ret
Definition: rw.h:13
QtSizePolicyPropertyManager::subIntPropertyManager
QtIntPropertyManager * subIntPropertyManager() const
Definition: qtpropertymanager.cpp:6815
QtAbstractPropertyManager::addProperty
QtProperty * addProperty(const QString &name=QString())
Definition: qtpropertybrowser.cpp:860
QtIntPropertyManager
The QtIntPropertyManager provides and manages int properties.
Definition: qtpropertymanager.h:71
QtTreePropertyBrowser
The QtTreePropertyBrowser class provides QTreeWidget based property browser.
Definition: qttreepropertybrowser.h:51
QtSizePropertyManager::subIntPropertyManager
QtIntPropertyManager * subIntPropertyManager() const
Definition: qtpropertymanager.cpp:4115
qtbuttonpropertybrowser.h
qteditorfactory.h
QtEnumPropertyManager::setEnumIcons
void setEnumIcons(QtProperty *property, const QMap< int, QIcon > &icons)
Definition: qtpropertymanager.cpp:6200
QtAbstractPropertyBrowser
QtAbstractPropertyBrowser provides a base class for implementing property browsers.
Definition: qtpropertybrowser.h:312
QtStringPropertyManager
The QtStringPropertyManager provides and manages QString properties.
Definition: qtpropertymanager.h:183
QtProperty
The QtProperty class encapsulates an instance of a property.
Definition: qtpropertybrowser.h:71
QtEnumPropertyManager::setEnumNames
void setEnumNames(QtProperty *property, const QStringList &names)
Definition: qtpropertymanager.cpp:6157
QtGroupPropertyManager
The QtGroupPropertyManager provides and manages group properties.
Definition: qtpropertymanager.h:55
QtSizePropertyManager
The QtSizePropertyManager provides and manages QSize properties.
Definition: qtpropertymanager.h:459
QtIntPropertyManager::setRange
void setRange(QtProperty *property, int minVal, int maxVal)
Definition: qtpropertymanager.cpp:1148
QtScrollBarFactory
The QtScrollBarFactory class provides QScrollBar widgets for properties created by QtIntPropertyManag...
Definition: qteditorfactory.h:105
QtButtonPropertyBrowser
The QtButtonPropertyBrowser class provides a drop down QToolButton based property browser.
Definition: qtbuttonpropertybrowser.h:50
QtSpinBoxFactory
The QtSpinBoxFactory class provides QSpinBox widgets for properties created by QtIntPropertyManager o...
Definition: qteditorfactory.h:50
QtGroupBoxPropertyBrowser
The QtGroupBoxPropertyBrowser class provides a QGroupBox based property browser.
Definition: qtgroupboxpropertybrowser.h:50
QtBoolPropertyManager
The QtBoolPropertyManager class provides and manages boolean properties.
Definition: qtpropertymanager.h:110
qtgroupboxpropertybrowser.h
main
int main(int argc, char *argv[])
Definition: main.cpp:32
QtLineEditFactory
The QtLineEditFactory class provides QLineEdit widgets for properties created by QtStringPropertyMana...
Definition: qteditorfactory.h:187
QtSizePolicyPropertyManager
The QtSizePolicyPropertyManager provides and manages QSizePolicy properties.
Definition: qtpropertymanager.h:675
qttreepropertybrowser.h
QtEnumPropertyManager
The QtEnumPropertyManager provides and manages enum properties.
Definition: qtpropertymanager.h:607
QtProperty::addSubProperty
void addSubProperty(QtProperty *property)
Definition: qtpropertybrowser.cpp:448
QtCheckBoxFactory
The QtCheckBoxFactory class provides QCheckBox widgets for properties created by QtBoolPropertyManage...
Definition: qteditorfactory.h:132
QtRectPropertyManager::subIntPropertyManager
QtIntPropertyManager * subIntPropertyManager() const
Definition: qtpropertymanager.cpp:5053
QtSizePolicyPropertyManager::subEnumPropertyManager
QtEnumPropertyManager * subEnumPropertyManager() const
Definition: qtpropertymanager.cpp:6831
QtSliderFactory
The QtSliderFactory class provides QSlider widgets for properties created by QtIntPropertyManager obj...
Definition: qteditorfactory.h:78
QtEnumEditorFactory
The QtEnumEditorFactory class provides QComboBox widgets for properties created by QtEnumPropertyMana...
Definition: qteditorfactory.h:343
QtAbstractPropertyBrowser::setFactoryForManager
void setFactoryForManager(PropertyManager *manager, QtAbstractEditorFactory< PropertyManager > *factory)
Definition: qtpropertybrowser.h:327
qtpropertymanager.h