forked from qt-creator/qt-creator
Add our own description file to show all possible QML examples.
Reviewed-By: con
This commit is contained in:
59
share/qtcreator/examplebrowser/qmlexamples.xml
Normal file
59
share/qtcreator/examplebrowser/qmlexamples.xml
Normal file
@@ -0,0 +1,59 @@
|
||||
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||
<categories name="Qt Examples and Demos">
|
||||
<category dirname="declarative/toys" name="Toys">
|
||||
<example filename="dynamicscene" name="Dynamic Scene" executable="false" qml="true" />
|
||||
<example filename="tic-tac-toe" name="Tic Tac Toe" executable="false" qml="true" />
|
||||
<example filename="clocks" name="Clocks" executable="false" qml="true" />
|
||||
<example filename="corkboards" name="Corkboards" executable="false" qml="true" />
|
||||
<example filename="tvtennis" name="TV Tennis" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/ui-components" name="QML UI Components">
|
||||
<example filename="dialcontrol" name="Dial" executable="false" qml="true" />
|
||||
<example filename="flipable" name="Flipable" executable="false" qml="true" />
|
||||
<example filename="progressbar" name="Progress Bar" executable="false" qml="true" />
|
||||
<example filename="scrollbar" name="Scroll Bar" executable="false" qml="true" />
|
||||
<example filename="searchbox" name="Search Box" executable="false" qml="true" />
|
||||
<example filename="slideswitch" name="Slide Switch" executable="false" qml="true" />
|
||||
<example filename="spinner" name="Spinner" executable="false" qml="true" />
|
||||
<example filename="tabwidget" name="Tab Widget" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/text" name="Text">
|
||||
<example filename="fonts" name="Fonts" executable="false" qml="true" />
|
||||
<example filename="textselection" name="Text selection" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/modelviews" name="Models and Views">
|
||||
<example filename="package" name="Package" executable="false" qml="true" />
|
||||
<example filename="gridview" name="GridView" executable="false" qml="true" />
|
||||
<example filename="visualitemmodel" name="VisualItemModel" executable="false" qml="true" />
|
||||
<example filename="webview" name="WebView" executable="false" qml="true" />
|
||||
<example filename="pathview" name="PathView" executable="false" qml="true" />
|
||||
<example filename="parallax" name="Parallax Sliding" executable="false" qml="true" />
|
||||
<example filename="listview" name="ListView" executable="false" qml="true" />
|
||||
<example filename="objectlistmodel" name="Object List Model" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/threading" name="Threading">
|
||||
<example filename="threadedlistmodel" name="Threaded ListModel" executable="false" qml="true" />
|
||||
<example filename="workerscript" name="WorkerScript" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/animation" name="Animation">
|
||||
<example filename="basics" name="Basics" executable="false" qml="true" />
|
||||
<example filename="behaviors" name="Behaviors" executable="false" qml="true" />
|
||||
<example filename="easing" name="Easing Curves" executable="false" qml="true" />
|
||||
<example filename="states" name="States" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/imageelements" name="Image elements">
|
||||
<example filename="image" name="Image" executable="false" qml="true" />
|
||||
<example filename="borderimage" name="Border Image" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative/touchinteraction" name="Touch interaction">
|
||||
<example filename="gestures" name="Gestures" executable="false" qml="true" />
|
||||
<example filename="mousearea" name="MouseArea" executable="false" qml="true" />
|
||||
</category>
|
||||
<category dirname="declarative" name="Miscellaneous">
|
||||
<example filename="positioners" name="Positioners" executable="false" qml="true" />
|
||||
<example filename="screenorientation" name="Screen Orientation" executable="false" qml="true" />
|
||||
<example filename="xml/xmlhttprequest" name="XmlHttpRequest" executable="false" qml="true" />
|
||||
<example filename="sqllocalstorage" name="SQL Local Storage" executable="false" qml="true" />
|
||||
<example filename="keyinteraction/focus" name="Focus" executable="false" qml="true" />
|
||||
</category>
|
||||
</categories>
|
||||
@@ -24,6 +24,7 @@ isEmpty(vcproj) {
|
||||
}
|
||||
|
||||
DATA_DIRS = \
|
||||
examplebrowser \
|
||||
snippets \
|
||||
templates \
|
||||
designer \
|
||||
|
||||
@@ -140,11 +140,116 @@ GettingStartedWelcomePageWidget::~GettingStartedWelcomePageWidget()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void GettingStartedWelcomePageWidget::parseXmlFile(QFile *file, QMenuHash &cppSubMenuHash, QMenuHash &qmlSubMenuHash,
|
||||
const QString &examplePath, const QString &sourcePath)
|
||||
{
|
||||
QMenu *cppSubMenu = 0;
|
||||
QMenu *qmlSubMenu = 0;
|
||||
bool inExamples = false;
|
||||
QString dirName;
|
||||
|
||||
QXmlStreamReader reader(file);
|
||||
|
||||
while (!reader.atEnd()) {
|
||||
switch (reader.readNext()) {
|
||||
case QXmlStreamReader::StartElement:
|
||||
if (reader.name() == QLatin1String("category")) {
|
||||
QString name = reader.attributes().value(QLatin1String("name")).toString();
|
||||
if (name.contains(QLatin1String("Tutorial")))
|
||||
break;
|
||||
dirName = reader.attributes().value(QLatin1String("dirname")).toString();
|
||||
if (!cppSubMenuHash.contains(dirName)) {
|
||||
cppSubMenu = new QMenu(name, this);
|
||||
cppSubMenu->setObjectName(dirName);
|
||||
cppSubMenuHash.insert(dirName, cppSubMenu);
|
||||
} else {
|
||||
cppSubMenu = cppSubMenuHash.value(dirName);
|
||||
}
|
||||
if (!qmlSubMenuHash.contains(dirName)) {
|
||||
qmlSubMenu = new QMenu(name, this);
|
||||
qmlSubMenu->setObjectName(dirName);
|
||||
qmlSubMenuHash.insert(dirName, qmlSubMenu);
|
||||
} else {
|
||||
qmlSubMenu = qmlSubMenuHash.value(dirName);
|
||||
}
|
||||
inExamples = true;
|
||||
}
|
||||
if (inExamples && reader.name() == QLatin1String("example")) {
|
||||
const QChar slash = QLatin1Char('/');
|
||||
const QString name = reader.attributes().value(QLatin1String("name")).toString();
|
||||
const bool isQml = reader.attributes().value(QLatin1String("qml")).toString() == "true";
|
||||
const QString localDir = reader.attributes().value(QLatin1String("filename")).toString();
|
||||
const QString extension = isQml ? QLatin1String(".qmlproject") : QLatin1String(".pro");
|
||||
const QString fileName = localDir.section(',', -1);
|
||||
const QString relativeProPath = slash + dirName + slash + localDir + slash + fileName + extension;
|
||||
|
||||
QString finaleFileName = examplePath + relativeProPath;
|
||||
if (!QFile::exists(finaleFileName))
|
||||
finaleFileName = sourcePath + QLatin1String("/examples") + relativeProPath;
|
||||
|
||||
if (!QFile::exists(finaleFileName))
|
||||
break;
|
||||
|
||||
QString dirName1 = dirName;
|
||||
dirName1.replace(slash, QLatin1Char('-'));
|
||||
QString helpPath = QLatin1String("qthelp://com.trolltech.qt/qdoc/") +
|
||||
dirName1 +
|
||||
QLatin1Char('-') + fileName + QLatin1String(".html");
|
||||
|
||||
QAction *exampleAction = 0;
|
||||
QAction *beforeAction = 0;
|
||||
bool duplicate = false;
|
||||
QMenu *subMenu;
|
||||
subMenu = isQml ? qmlSubMenu : cppSubMenu;
|
||||
|
||||
foreach (beforeAction, subMenu->actions()) {
|
||||
int res = beforeAction->text().compare(name, Qt::CaseInsensitive);
|
||||
if (res==0) {
|
||||
duplicate = true;
|
||||
break;
|
||||
} else if (res<0)
|
||||
beforeAction = 0;
|
||||
else if (res>0) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!duplicate) {
|
||||
exampleAction = new QAction(name, subMenu);
|
||||
subMenu->insertAction(beforeAction, exampleAction);
|
||||
connect(exampleAction, SIGNAL(triggered()), SLOT(slotOpenExample()));
|
||||
exampleAction->setProperty(ExamplePathPropertyName, finaleFileName);
|
||||
exampleAction->setProperty(HelpPathPropertyName, helpPath);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case QXmlStreamReader::EndElement:
|
||||
if (inExamples && reader.name() == QLatin1String("category")) {
|
||||
if (cppSubMenu->actions().isEmpty())
|
||||
delete cppSubMenuHash.take(dirName);
|
||||
|
||||
if (qmlSubMenu->actions().isEmpty())
|
||||
delete qmlSubMenuHash.take(dirName);
|
||||
|
||||
inExamples = false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool menuEntryCompare(QMenu* first, QMenu* second)
|
||||
{
|
||||
return (QString::localeAwareCompare(first->title(), second->title()) < 0);
|
||||
}
|
||||
|
||||
void GettingStartedWelcomePageWidget::updateExamples(const QString &examplePath,
|
||||
const QString &demosPath,
|
||||
const QString &sourcePath)
|
||||
{
|
||||
|
||||
QString demoXml = demosPath + "/qtdemo/xml/examples.xml";
|
||||
if (!QFile::exists(demoXml)) {
|
||||
demoXml = sourcePath + "/demos/qtdemo/xml/examples.xml";
|
||||
@@ -152,81 +257,47 @@ void GettingStartedWelcomePageWidget::updateExamples(const QString &examplePath,
|
||||
return;
|
||||
}
|
||||
|
||||
QFile description(demoXml);
|
||||
if (!description.open(QFile::ReadOnly))
|
||||
return;
|
||||
QMenuHash cppSubMenuHash;
|
||||
QMenuHash qmlSubMenuHash;
|
||||
|
||||
const QString dropDownLabel = tr("Choose an Example...");
|
||||
|
||||
ui->qmlExamplesButton->setEnabled(true);
|
||||
ui->qmlExamplesButton->setText(dropDownLabel);
|
||||
|
||||
QMenu *cppMenu = new QMenu(ui->cppExamplesButton);
|
||||
ui->cppExamplesButton->setMenu(cppMenu);
|
||||
QMenu *qmlMenu = new QMenu(ui->qmlExamplesButton);
|
||||
ui->qmlExamplesButton->setMenu(qmlMenu);
|
||||
|
||||
|
||||
// let Creator's files take precedence
|
||||
QString localQmlExamplesXml =
|
||||
Core::ICore::instance()->resourcePath()+QLatin1String("/examplebrowser/qmlexamples.xml");
|
||||
|
||||
QFile localDescriptions(localQmlExamplesXml);
|
||||
if (localDescriptions.open(QFile::ReadOnly)) {
|
||||
parseXmlFile(&localDescriptions, cppSubMenuHash, qmlSubMenuHash, examplePath, sourcePath);
|
||||
}
|
||||
|
||||
QFile descriptions(demoXml);
|
||||
if (!descriptions.open(QFile::ReadOnly))
|
||||
return;
|
||||
|
||||
ui->cppExamplesButton->setEnabled(true);
|
||||
ui->cppExamplesButton->setText(dropDownLabel);
|
||||
|
||||
QMenu *cppMenu = new QMenu(ui->cppExamplesButton);
|
||||
ui->cppExamplesButton->setMenu(cppMenu);
|
||||
parseXmlFile(&descriptions, cppSubMenuHash, qmlSubMenuHash, examplePath, sourcePath);
|
||||
|
||||
QScopedPointer<QMenu> subMenu;
|
||||
bool inExamples = false;
|
||||
QString dirName;
|
||||
QXmlStreamReader reader(&description);
|
||||
QList<QMenu*> cppSubMenus = cppSubMenuHash.values();
|
||||
qSort(cppSubMenus.begin(), cppSubMenus.end(), menuEntryCompare);
|
||||
QList<QMenu*> qmlSubMenus = qmlSubMenuHash.values();
|
||||
qSort(qmlSubMenus.begin(), qmlSubMenus.end(), menuEntryCompare);
|
||||
|
||||
while (!reader.atEnd()) {
|
||||
switch (reader.readNext()) {
|
||||
case QXmlStreamReader::StartElement:
|
||||
if (reader.name() == QLatin1String("category")) {
|
||||
QString name = reader.attributes().value(QLatin1String("name")).toString();
|
||||
if (name.contains(QLatin1String("tutorial")))
|
||||
break;
|
||||
dirName = reader.attributes().value(QLatin1String("dirname")).toString();
|
||||
subMenu.reset(new QMenu(name));
|
||||
inExamples = true;
|
||||
}
|
||||
if (inExamples && reader.name() == QLatin1String("example")) {
|
||||
const QChar slash = QLatin1Char('/');
|
||||
const QString name = reader.attributes().value(QLatin1String("name")).toString();
|
||||
const bool isQml = reader.attributes().value(QLatin1String("qml")).toString() == "true";
|
||||
const QString fn = reader.attributes().value(QLatin1String("filename")).toString();
|
||||
const QString extension = isQml ? QLatin1String(".qmlproject") : QLatin1String(".pro");
|
||||
const QString relativeProPath = slash + dirName + slash + fn + slash + fn + extension;
|
||||
foreach (QMenu *menu, cppSubMenus)
|
||||
cppMenu->addMenu(menu);
|
||||
foreach (QMenu *menu, qmlSubMenus)
|
||||
qmlMenu->addMenu(menu);
|
||||
|
||||
QString fileName = examplePath + relativeProPath;
|
||||
if (!QFile::exists(fileName))
|
||||
fileName = sourcePath + QLatin1String("/examples") + relativeProPath;
|
||||
|
||||
QString dirName1 = dirName;
|
||||
dirName1.replace(slash, QLatin1Char('-'));
|
||||
QString helpPath = QLatin1String("qthelp://com.trolltech.qt/qdoc/") +
|
||||
dirName1 +
|
||||
QLatin1Char('-') + fn + QLatin1String(".html");
|
||||
|
||||
QAction *exampleAction;
|
||||
if (isQml)
|
||||
exampleAction = qmlMenu->addAction(name);
|
||||
else
|
||||
exampleAction = subMenu->addAction(name);
|
||||
|
||||
connect(exampleAction, SIGNAL(triggered()), SLOT(slotOpenExample()));
|
||||
|
||||
exampleAction->setProperty(ExamplePathPropertyName, fileName);
|
||||
exampleAction->setProperty(HelpPathPropertyName, helpPath);
|
||||
|
||||
}
|
||||
break;
|
||||
case QXmlStreamReader::EndElement:
|
||||
if (reader.name() == QLatin1String("category")) {
|
||||
if (!subMenu->actions().isEmpty())
|
||||
cppMenu->addMenu(subMenu.take());
|
||||
inExamples = false;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
if (!qmlMenu->isEmpty()) {
|
||||
ui->qmlExamplesButton->setMenu(qmlMenu);
|
||||
ui->qmlExamplesButton->setEnabled(true);
|
||||
ui->qmlExamplesButton->setText(dropDownLabel);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -37,6 +37,8 @@
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QUrl;
|
||||
class QLabel;
|
||||
class QFile;
|
||||
class QMenu;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
namespace Core {
|
||||
@@ -55,6 +57,8 @@ namespace Ui {
|
||||
class GettingStartedWelcomePageWidget;
|
||||
}
|
||||
|
||||
typedef QHash<QString, QMenu*> QMenuHash;
|
||||
|
||||
class PixmapDownloader : public QNetworkAccessManager {
|
||||
Q_OBJECT
|
||||
public:
|
||||
@@ -101,6 +105,8 @@ signals:
|
||||
void startRssFetching(const QUrl&);
|
||||
|
||||
private:
|
||||
void parseXmlFile(QFile *file, QMenuHash &cppSubMenuHash, QMenuHash &qmlSubMenuHash,
|
||||
const QString &examplePath, const QString &sourcePath);
|
||||
QStringList tipsOfTheDay();
|
||||
Ui::GettingStartedWelcomePageWidget *ui;
|
||||
int m_currentTip;
|
||||
|
||||
@@ -40,15 +40,6 @@
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>250</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<property name="verticalSpacing">
|
||||
<number>12</number>
|
||||
@@ -76,12 +67,12 @@
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>250</width>
|
||||
<width>230</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string/>
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout_11">
|
||||
<property name="verticalSpacing">
|
||||
@@ -90,7 +81,57 @@
|
||||
<property name="rightMargin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Utils::WelcomeModeLabel" name="didYouKnowTitleLabel">
|
||||
<property name="text">
|
||||
<string>Did You Know?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<layout class="QGridLayout" name="gridLayout_10">
|
||||
<property name="spacing">
|
||||
<number>0</number>
|
||||
@@ -170,10 +211,10 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<item row="1" column="0" colspan="3">
|
||||
<widget class="QTextBrowser" name="didYouKnowTextBrowser">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Minimum" vsizetype="Preferred">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
@@ -195,69 +236,17 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<spacer name="verticalSpacer_2">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="Utils::WelcomeModeLabel" name="didYouKnowTitleLabel">
|
||||
<property name="text">
|
||||
<string>Did You Know?</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0" colspan="2">
|
||||
<widget class="QFrame" name="demosExamplesFrame_2">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="MinimumExpanding">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>500</width>
|
||||
<height>16777215</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string/>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="Utils::WelcomeModeLabel" name="demoTitleLabel_4">
|
||||
@@ -324,39 +313,10 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="demoTitleLabel_3">
|
||||
<property name="text">
|
||||
<string>Explore Qt C++ mobile examples:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QPushButton" name="mobileExamplesButton">
|
||||
<property name="enabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="MinimumExpanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Examples Not Installed...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0" colspan="2">
|
||||
<item row="3" column="0" colspan="2">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
@@ -408,6 +368,22 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<spacer name="verticalSpacer_8">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>QSizePolicy::MinimumExpanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user