diff --git a/src/plugins/qmldesigner/qmldesignerconstants.h b/src/plugins/qmldesigner/qmldesignerconstants.h
index 6c2817d6884..90cb1070be1 100644
--- a/src/plugins/qmldesigner/qmldesignerconstants.h
+++ b/src/plugins/qmldesigner/qmldesignerconstants.h
@@ -57,7 +57,7 @@ const char * const QML_DESIGNER_SETTINGS_GROUP = "Designer";
const char * const QML_OPENDESIGNMODE_SETTINGS_KEY = "OpenDesignMode";
const char * const QML_ITEMSPACING_KEY = "ItemSpacing";
const char * const QML_SNAPMARGIN_KEY = "SnapMargin";
-enum { QML_OPENDESIGNMODE_DEFAULT = 0 };
+enum { QML_OPENDESIGNMODE_DEFAULT = 0 }; // 0 for text mode, 1 for design mode
namespace Internal {
enum { debug = 0 };
diff --git a/src/plugins/qmldesigner/settingspage.cpp b/src/plugins/qmldesigner/settingspage.cpp
index c8ab833df24..adc8d772bef 100644
--- a/src/plugins/qmldesigner/settingspage.cpp
+++ b/src/plugins/qmldesigner/settingspage.cpp
@@ -38,8 +38,6 @@
using namespace QmlDesigner;
using namespace QmlDesigner::Internal;
-enum EditModeCombo { EditModeDesign, EditModeEdit };
-
SettingsPageWidget::SettingsPageWidget(QWidget *parent) :
QWidget(parent)
{
@@ -49,7 +47,6 @@ SettingsPageWidget::SettingsPageWidget(QWidget *parent) :
DesignerSettings SettingsPageWidget::settings() const
{
DesignerSettings ds;
- ds.openDesignMode = m_ui.editorModeComboBox->currentIndex() == EditModeDesign;
ds.itemSpacing = m_ui.spinItemSpacing->value();
ds.snapMargin = m_ui.spinSnapMargin->value();
return ds;
@@ -57,7 +54,6 @@ DesignerSettings SettingsPageWidget::settings() const
void SettingsPageWidget::setSettings(const DesignerSettings &s)
{
- m_ui.editorModeComboBox->setCurrentIndex(s.openDesignMode ? EditModeDesign : EditModeEdit);
m_ui.spinItemSpacing->setValue(s.itemSpacing);
m_ui.spinSnapMargin->setValue(s.snapMargin);
}
diff --git a/src/plugins/qmldesigner/settingspage.ui b/src/plugins/qmldesigner/settingspage.ui
index dfa54673f32..fdd972cb3a4 100644
--- a/src/plugins/qmldesigner/settingspage.ui
+++ b/src/plugins/qmldesigner/settingspage.ui
@@ -15,49 +15,6 @@
-
-
-
- Files
-
-
-
-
-
-
- Open file in:
-
-
-
- -
-
-
-
-
- Design mode
-
-
- -
-
- Edit mode
-
-
-
-
- -
-
-
- Qt::Horizontal
-
-
-
- 40
- 20
-
-
-
-
-
-
-
- -
Snapping
@@ -141,7 +98,7 @@
- -
+
-
Qt::Vertical
diff --git a/src/plugins/qmljseditor/qmljseditor.cpp b/src/plugins/qmljseditor/qmljseditor.cpp
index 9afd59c903b..2114e03dc03 100644
--- a/src/plugins/qmljseditor/qmljseditor.cpp
+++ b/src/plugins/qmljseditor/qmljseditor.cpp
@@ -595,16 +595,22 @@ static bool openInDesignMode()
}
if (!bauhausPresent)
return false;
- // Query the bauhaus setting if it wants to be opened in Design mode.
- const QString settingsKey = QLatin1String(QmlDesigner::Constants::QML_SETTINGS_GROUP)
- + QLatin1Char('/') + QLatin1String(QmlDesigner::Constants::QML_DESIGNER_SETTINGS_GROUP)
- + QLatin1Char('/') + QLatin1String(QmlDesigner::Constants::QML_OPENDESIGNMODE_SETTINGS_KEY);
- const QVariant openDesignMode = Core::ICore::instance()->settings()->value(settingsKey);
- return openDesignMode.isValid() ? openDesignMode.toBool() : bool(QmlDesigner::Constants::QML_OPENDESIGNMODE_DEFAULT);
+
+ return bool(QmlDesigner::Constants::QML_OPENDESIGNMODE_DEFAULT);
}
QString QmlJSEditorEditable::preferredMode() const
{
+ Core::ModeManager *modeManager = Core::ModeManager::instance();
+ if (modeManager->currentMode()->id() == Core::Constants::MODE_DESIGN
+ || modeManager->currentMode()->id() == Core::Constants::MODE_EDIT)
+ {
+ return modeManager->currentMode()->id();
+ }
+
+ // if we are in other mode than edit or design, use the hard-coded default.
+ // because the editor opening decision is modal, it would be confusing to
+ // have the user also access to this failsafe setting.
if (editor()->mimeType() == QLatin1String(QmlJSEditor::Constants::QML_MIMETYPE)
&& openInDesignMode())
return QLatin1String(Core::Constants::MODE_DESIGN);