aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/qmldesigner/settingspage.cpp
diff options
context:
space:
mode:
authorThomas Hartmann <Thomas.Hartmann@theqtcompany.com>2015-07-16 11:49:50 +0200
committerThomas Hartmann <Thomas.Hartmann@digia.com>2015-07-17 11:17:49 +0000
commitb4df8eb42c70944ce57c74170778a5d8d78d9073 (patch)
tree59cd610fed7849af2f354946343d84e2f660a3ef /src/plugins/qmldesigner/settingspage.cpp
parent225e2ae02eaf3327e8923cdc6d6719a689cfa1b3 (diff)
QmlDesigner: Adding some puppet settings
Change-Id: I8ba718a7388abab41436afffb5645935b2d52eee Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Diffstat (limited to 'src/plugins/qmldesigner/settingspage.cpp')
-rw-r--r--src/plugins/qmldesigner/settingspage.cpp67
1 files changed, 63 insertions, 4 deletions
diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp
index 51a66ae6ae3..02b3dacefae 100644
--- a/src/plugins/qmldesigner/settingspage.cpp
+++ b/src/plugins/qmldesigner/settingspage.cpp
@@ -29,14 +29,19 @@
****************************************************************************/
#include "settingspage.h"
-#include "designersettings.h"
#include "qmldesignerconstants.h"
#include "qmldesignerplugin.h"
+#include "designersettings.h"
+#include "puppetcreator.h"
+
+#include <coreplugin/icore.h>
#include <qmljseditor/qmljseditorconstants.h>
#include <qmljstools/qmljstoolsconstants.h>
+#include <QLineEdit>
#include <QTextStream>
+#include <QMessageBox>
using namespace QmlDesigner;
using namespace QmlDesigner::Internal;
@@ -47,6 +52,12 @@ SettingsPageWidget::SettingsPageWidget(QWidget *parent) :
m_ui.setupUi(this);
connect(m_ui.designerEnableDebuggerCheckBox, &QCheckBox::toggled,
this, &SettingsPageWidget::debugViewEnabledToggled);
+ m_ui.resetFallbackPuppetPathButton->hide();
+ connect(m_ui.resetFallbackPuppetPathButton, &QPushButton::clicked, this, &SettingsPageWidget::resetFallbackPuppetPath);
+ connect(m_ui.resetQmlPuppetBuildPathButton, &QPushButton::clicked, this, &SettingsPageWidget::resetQmlPuppetBuildPath);
+ connect(m_ui.useDefaultPuppetRadioButton, &QRadioButton::toggled, m_ui.fallbackPuppetPathLineEdit, &QLineEdit::setEnabled);
+ connect(m_ui.useQtRelatedPuppetRadioButton, &QRadioButton::toggled, m_ui.puppetBuildPathLineEdit, &QLineEdit::setEnabled);
+ connect(m_ui.resetStyle, &QPushButton::clicked, this, &SettingsPageWidget::resetQmlStyle);
}
DesignerSettings SettingsPageWidget::settings() const
@@ -60,7 +71,18 @@ DesignerSettings SettingsPageWidget::settings() const
designerSettings.designerWarningsInEditor = m_ui.designerWarningsInEditorCheckBox->isChecked();
designerSettings.showDebugView = m_ui.designerShowDebuggerCheckBox->isChecked();
designerSettings.enableDebugView = m_ui.designerEnableDebuggerCheckBox->isChecked();
- designerSettings.useOnlyFallbackPuppet = m_ui.designerDefaultPuppetCheckBox->isChecked();
+ designerSettings.useOnlyFallbackPuppet = m_ui.useDefaultPuppetRadioButton->isChecked();
+ designerSettings.controlsStyle = m_ui.styleLineEdit->text();
+
+ if (!m_ui.fallbackPuppetPathLineEdit->path().isEmpty() &&
+ m_ui.fallbackPuppetPathLineEdit->path() != PuppetCreator::defaultPuppetFallbackDirectory()) {
+ designerSettings.puppetFallbackDirectory = m_ui.fallbackPuppetPathLineEdit->path();
+ }
+
+ if (!m_ui.puppetBuildPathLineEdit->path().isEmpty() &&
+ m_ui.puppetBuildPathLineEdit->path() != PuppetCreator::defaultPuppetToplevelBuildDirectory()) {
+ designerSettings.puppetToplevelBuildDirectory = m_ui.puppetBuildPathLineEdit->path();
+ }
return designerSettings;
}
@@ -75,7 +97,34 @@ void SettingsPageWidget::setSettings(const DesignerSettings &designerSettings)
m_ui.designerWarningsInEditorCheckBox->setChecked(designerSettings.designerWarningsInEditor);
m_ui.designerShowDebuggerCheckBox->setChecked(designerSettings.showDebugView);
m_ui.designerEnableDebuggerCheckBox->setChecked(designerSettings.enableDebugView);
- m_ui.designerDefaultPuppetCheckBox->setChecked(designerSettings.useOnlyFallbackPuppet);
+ m_ui.useDefaultPuppetRadioButton->setChecked(designerSettings.useOnlyFallbackPuppet);
+ m_ui.useQtRelatedPuppetRadioButton->setChecked(!designerSettings.useOnlyFallbackPuppet);
+ m_ui.styleLineEdit->setText(designerSettings.controlsStyle);
+
+ if (designerSettings.puppetFallbackDirectory.isEmpty())
+ resetFallbackPuppetPath();
+ else
+ m_ui.fallbackPuppetPathLineEdit->setPath(designerSettings.puppetFallbackDirectory);
+
+ if (designerSettings.puppetToplevelBuildDirectory.isEmpty())
+ resetQmlPuppetBuildPath();
+ else
+ m_ui.puppetBuildPathLineEdit->setPath(designerSettings.puppetToplevelBuildDirectory);
+}
+
+void SettingsPageWidget::resetFallbackPuppetPath()
+{
+ m_ui.fallbackPuppetPathLineEdit->setPath(PuppetCreator::defaultPuppetFallbackDirectory());
+}
+
+void SettingsPageWidget::resetQmlPuppetBuildPath()
+{
+ m_ui.puppetBuildPathLineEdit->setPath(PuppetCreator::defaultPuppetToplevelBuildDirectory());
+}
+
+void SettingsPageWidget::resetQmlStyle()
+{
+ m_ui.styleLineEdit->setText(QString());
}
void SettingsPageWidget::debugViewEnabledToggled(bool b)
@@ -108,7 +157,17 @@ void SettingsPage::apply()
{
if (!m_widget) // page was never shown
return;
- QmlDesignerPlugin::instance()->setSettings(m_widget->settings());
+
+ DesignerSettings currentDesignerSettings(QmlDesignerPlugin::instance()->settings());
+ DesignerSettings newDesignerSettings(m_widget->settings());
+
+ if (currentDesignerSettings.puppetFallbackDirectory != newDesignerSettings.puppetFallbackDirectory ||
+ currentDesignerSettings.puppetToplevelBuildDirectory != newDesignerSettings.puppetToplevelBuildDirectory) {
+ QMessageBox::information(Core::ICore::mainWindow(), tr("Restart Required"),
+ tr("The QML emulation layer path changes will take effect after a restart of the QML Emulation layer or Qt Creator."));
+ }
+
+ QmlDesignerPlugin::instance()->setSettings(newDesignerSettings);
}
void SettingsPage::finish()