diff --git a/src/plugins/qmldesigner/designersettings.cpp b/src/plugins/qmldesigner/designersettings.cpp index a059c3f449f136b2cac504fe07832845f407061b..d1e52f9ce34af871af70ecd1367b4b885a341dc8 100644 --- a/src/plugins/qmldesigner/designersettings.cpp +++ b/src/plugins/qmldesigner/designersettings.cpp @@ -37,7 +37,13 @@ static const char *qmlGroup = "Qml"; static const char *qmlDesignerGroup = "Designer"; static const char *snapToGridKey = "SnapToGrid"; static const char *showBoundingRectanglesKey = "ShowBoundingRectangles"; +static const char *onlyShowItemsWithContentsKey = "OnlyShowItemsWithContents"; +DesignerSettings::DesignerSettings() + : snapToGrid(false) + , showBoundingRectangles(false) + , onlyShowItemsWithContents(false) +{} void DesignerSettings::fromSettings(QSettings *settings) { settings->beginGroup(QLatin1String(qmlGroup)); @@ -45,6 +51,8 @@ void DesignerSettings::fromSettings(QSettings *settings) snapToGrid = settings->value(QLatin1String(snapToGridKey), false).toBool(); showBoundingRectangles = settings->value( QLatin1String(showBoundingRectanglesKey), false).toBool(); + onlyShowItemsWithContents = settings->value( + QLatin1String(onlyShowItemsWithContentsKey), false).toBool(); settings->endGroup(); settings->endGroup(); } @@ -56,6 +64,8 @@ void DesignerSettings::toSettings(QSettings *settings) const settings->setValue(QLatin1String(snapToGridKey), snapToGrid); settings->setValue(QLatin1String(showBoundingRectanglesKey), showBoundingRectangles); + settings->setValue(QLatin1String(onlyShowItemsWithContentsKey), + onlyShowItemsWithContents); settings->endGroup(); settings->endGroup(); } diff --git a/src/plugins/qmldesigner/designersettings.h b/src/plugins/qmldesigner/designersettings.h index db0829db034cdbf04051cf9419a7a7285d06e7a5..02a0296e1180853c55d4bdd3e63a30dc009b45a7 100644 --- a/src/plugins/qmldesigner/designersettings.h +++ b/src/plugins/qmldesigner/designersettings.h @@ -40,6 +40,8 @@ QT_END_NAMESPACE namespace QmlDesigner { struct DesignerSettings { + DesignerSettings(); + void fromSettings(QSettings *); void toSettings(QSettings *) const; @@ -47,6 +49,7 @@ struct DesignerSettings { bool snapToGrid; bool showBoundingRectangles; + bool onlyShowItemsWithContents; }; inline bool operator==(const DesignerSettings &s1, const DesignerSettings &s2) diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 4a40842e85e67e37279d2c660e349dcb691cff53..c70c72d77fbb0d9c6dd4aef3833602c2ce371b51 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -32,6 +32,7 @@ #include "designmode.h" #include "qmldesignerconstants.h" #include "pluginmanager.h" +#include "settingspage.h" #include <coreplugin/icore.h> #include <coreplugin/dialogs/iwizard.h> @@ -99,6 +100,7 @@ bool BauhausPlugin::initialize(const QStringList & /*arguments*/, QString *error m_designerCore->pluginManager()->setPluginPaths(QStringList() << pluginPath); addAutoReleasedObject(new DesignMode); + addAutoReleasedObject(new SettingsPage); error_message->clear(); diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp index f1b943cf1f1f8df85e5a6ecea4239fe862ef4654..fc0c798fa353d569be42cf5ac55ce8667138bd0a 100644 --- a/src/plugins/qmldesigner/settingspage.cpp +++ b/src/plugins/qmldesigner/settingspage.cpp @@ -49,6 +49,8 @@ DesignerSettings SettingsPageWidget::settings() const DesignerSettings ds; ds.snapToGrid = m_ui.snapToGridCheckbox->isChecked(); ds.showBoundingRectangles = m_ui.showBoundingRectanglesCheckbox->isChecked(); + ds.onlyShowItemsWithContents = + m_ui.onlyShowItemsWithContentsCheckBox->isChecked(); return ds; } @@ -56,6 +58,7 @@ void SettingsPageWidget::setSettings(const DesignerSettings &s) { m_ui.snapToGridCheckbox->setChecked(s.snapToGrid); m_ui.showBoundingRectanglesCheckbox->setChecked(s.showBoundingRectangles); + m_ui.onlyShowItemsWithContentsCheckBox->setChecked(s.onlyShowItemsWithContents); } QString SettingsPageWidget::searchKeywords() const @@ -63,7 +66,8 @@ QString SettingsPageWidget::searchKeywords() const QString rc; QTextStream(&rc) << m_ui.snapToGridCheckbox->text() - << m_ui.showBoundingRectanglesCheckbox->text() + << ' ' << m_ui.showBoundingRectanglesCheckbox->text() + << ' ' << m_ui.onlyShowItemsWithContentsCheckBox->text() << ' ' << m_ui.groupBox->title(); rc.remove(QLatin1Char('&')); return rc; diff --git a/src/plugins/qmldesigner/settingspage.ui b/src/plugins/qmldesigner/settingspage.ui index dfdf3b3805b37624a79ff8813d22b99ab955fdaa..09244658e4d08c4e71715b94c7fb4c45c88b1533 100644 --- a/src/plugins/qmldesigner/settingspage.ui +++ b/src/plugins/qmldesigner/settingspage.ui @@ -34,6 +34,13 @@ </property> </widget> </item> + <item> + <widget class="QCheckBox" name="onlyShowItemsWithContentsCheckBox"> + <property name="text"> + <string>Only Show Items with Contents</string> + </property> + </widget> + </item> </layout> </widget> </item>