QmlJsEditor: Change "always open with QDS" setting type to combo box

Task-number: QDS-6807
Change-Id: I7e98781ee423be25a13fac5eee84caae5b11562f
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
Tapani Mattila
2022-05-05 18:18:44 +03:00
parent 8bb1a862a0
commit d35b9547f8
3 changed files with 41 additions and 20 deletions

View File

@@ -27,6 +27,7 @@
#include "qmljseditorconstants.h" #include "qmljseditorconstants.h"
#include <qmljstools/qmljstoolsconstants.h> #include <qmljstools/qmljstoolsconstants.h>
#include <coreplugin/coreconstants.h>
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <QSettings> #include <QSettings>
@@ -38,7 +39,7 @@ const char AUTO_FORMAT_ONLY_CURRENT_PROJECT[] = "QmlJSEditor.AutoFormatOnlyCurre
const char QML_CONTEXTPANE_KEY[] = "QmlJSEditor.ContextPaneEnabled"; const char QML_CONTEXTPANE_KEY[] = "QmlJSEditor.ContextPaneEnabled";
const char QML_CONTEXTPANEPIN_KEY[] = "QmlJSEditor.ContextPanePinned"; const char QML_CONTEXTPANEPIN_KEY[] = "QmlJSEditor.ContextPanePinned";
const char FOLD_AUX_DATA[] = "QmlJSEditor.FoldAuxData"; const char FOLD_AUX_DATA[] = "QmlJSEditor.FoldAuxData";
const char OPEN_UIQML_FILES_IN_QDS[] = "QmlJSEditor.openUiQmlFilesInQDS"; const char UIQML_OPEN_MODE[] = "QmlJSEditor.openUiQmlMode";
using namespace QmlJSEditor; using namespace QmlJSEditor;
using namespace QmlJSEditor::Internal; using namespace QmlJSEditor::Internal;
@@ -49,7 +50,7 @@ QmlJsEditingSettings::QmlJsEditingSettings()
m_autoFormatOnSave(false), m_autoFormatOnSave(false),
m_autoFormatOnlyCurrentProject(false), m_autoFormatOnlyCurrentProject(false),
m_foldAuxData(false), m_foldAuxData(false),
m_openUiQmlFilesInQDS(false) m_uiQmlOpenMode("")
{} {}
void QmlJsEditingSettings::set() void QmlJsEditingSettings::set()
@@ -67,7 +68,7 @@ void QmlJsEditingSettings::fromSettings(QSettings *settings)
m_autoFormatOnlyCurrentProject m_autoFormatOnlyCurrentProject
= settings->value(AUTO_FORMAT_ONLY_CURRENT_PROJECT, QVariant(false)).toBool(); = settings->value(AUTO_FORMAT_ONLY_CURRENT_PROJECT, QVariant(false)).toBool();
m_foldAuxData = settings->value(FOLD_AUX_DATA, QVariant(true)).toBool(); m_foldAuxData = settings->value(FOLD_AUX_DATA, QVariant(true)).toBool();
m_openUiQmlFilesInQDS = settings->value(OPEN_UIQML_FILES_IN_QDS, QVariant(false)).toBool(); m_uiQmlOpenMode = settings->value(UIQML_OPEN_MODE, "").toString();
settings->endGroup(); settings->endGroup();
} }
@@ -79,7 +80,7 @@ void QmlJsEditingSettings::toSettings(QSettings *settings) const
settings->setValue(AUTO_FORMAT_ON_SAVE, m_autoFormatOnSave); settings->setValue(AUTO_FORMAT_ON_SAVE, m_autoFormatOnSave);
settings->setValue(AUTO_FORMAT_ONLY_CURRENT_PROJECT, m_autoFormatOnlyCurrentProject); settings->setValue(AUTO_FORMAT_ONLY_CURRENT_PROJECT, m_autoFormatOnlyCurrentProject);
settings->setValue(FOLD_AUX_DATA, m_foldAuxData); settings->setValue(FOLD_AUX_DATA, m_foldAuxData);
settings->setValue(OPEN_UIQML_FILES_IN_QDS, m_openUiQmlFilesInQDS); settings->setValue(UIQML_OPEN_MODE, m_uiQmlOpenMode);
settings->endGroup(); settings->endGroup();
} }
@@ -90,7 +91,7 @@ bool QmlJsEditingSettings::equals(const QmlJsEditingSettings &other) const
&& m_autoFormatOnSave == other.m_autoFormatOnSave && m_autoFormatOnSave == other.m_autoFormatOnSave
&& m_autoFormatOnlyCurrentProject == other.m_autoFormatOnlyCurrentProject && m_autoFormatOnlyCurrentProject == other.m_autoFormatOnlyCurrentProject
&& m_foldAuxData == other.m_foldAuxData && m_foldAuxData == other.m_foldAuxData
&& m_openUiQmlFilesInQDS == other.m_openUiQmlFilesInQDS; && m_uiQmlOpenMode == other.m_uiQmlOpenMode;
} }
bool QmlJsEditingSettings::enableContextPane() const bool QmlJsEditingSettings::enableContextPane() const
@@ -143,14 +144,14 @@ void QmlJsEditingSettings::setFoldAuxData(const bool foldAuxData)
m_foldAuxData = foldAuxData; m_foldAuxData = foldAuxData;
} }
void QmlJsEditingSettings::setOpenUiQmlFilesInQDS(const bool openUiQmlFilesInQDS) const QString QmlJsEditingSettings::uiQmlOpenMode() const
{ {
m_openUiQmlFilesInQDS = openUiQmlFilesInQDS; return m_uiQmlOpenMode;
} }
bool QmlJsEditingSettings::openUiQmlFilesInQDS() const void QmlJsEditingSettings::setUiQmlOpenMode(const QString &mode)
{ {
return m_openUiQmlFilesInQDS; m_uiQmlOpenMode = mode;
} }
class QmlJsEditingSettingsPageWidget final : public Core::IOptionsPageWidget class QmlJsEditingSettingsPageWidget final : public Core::IOptionsPageWidget
@@ -168,7 +169,13 @@ public:
m_ui.autoFormatOnSave->setChecked(s.autoFormatOnSave()); m_ui.autoFormatOnSave->setChecked(s.autoFormatOnSave());
m_ui.autoFormatOnlyCurrentProject->setChecked(s.autoFormatOnlyCurrentProject()); m_ui.autoFormatOnlyCurrentProject->setChecked(s.autoFormatOnlyCurrentProject());
m_ui.foldAuxDataCheckBox->setChecked(s.foldAuxData()); m_ui.foldAuxDataCheckBox->setChecked(s.foldAuxData());
m_ui.openUiQmlFilesInQDS->setChecked(s.openUiQmlFilesInQDS()); m_ui.uiQmlOpenComboBox->addItem(tr("Always ask"), "");
m_ui.uiQmlOpenComboBox->addItem(tr("Qt Design Studio"), Core::Constants::MODE_DESIGN);
m_ui.uiQmlOpenComboBox->addItem(tr("Qt Creator"), Core::Constants::MODE_EDIT);
int comboIndex = m_ui.uiQmlOpenComboBox->findData(s.uiQmlOpenMode());
if (comboIndex < 0)
comboIndex = 0;
m_ui.uiQmlOpenComboBox->setCurrentIndex(comboIndex);
} }
void apply() final void apply() final
@@ -179,7 +186,7 @@ public:
s.setAutoFormatOnSave(m_ui.autoFormatOnSave->isChecked()); s.setAutoFormatOnSave(m_ui.autoFormatOnSave->isChecked());
s.setAutoFormatOnlyCurrentProject(m_ui.autoFormatOnlyCurrentProject->isChecked()); s.setAutoFormatOnlyCurrentProject(m_ui.autoFormatOnlyCurrentProject->isChecked());
s.setFoldAuxData(m_ui.foldAuxDataCheckBox->isChecked()); s.setFoldAuxData(m_ui.foldAuxDataCheckBox->isChecked());
s.setOpenUiQmlFilesInQDS(m_ui.openUiQmlFilesInQDS->isChecked()); s.setUiQmlOpenMode(m_ui.uiQmlOpenComboBox->currentData().toString());
s.set(); s.set();
} }

View File

@@ -64,8 +64,8 @@ public:
bool foldAuxData() const; bool foldAuxData() const;
void setFoldAuxData(const bool foldAuxData); void setFoldAuxData(const bool foldAuxData);
bool openUiQmlFilesInQDS() const; const QString uiQmlOpenMode() const;
void setOpenUiQmlFilesInQDS(const bool foldAuxData); void setUiQmlOpenMode(const QString &mode);
friend bool operator==(const QmlJsEditingSettings &s1, const QmlJsEditingSettings &s2) friend bool operator==(const QmlJsEditingSettings &s1, const QmlJsEditingSettings &s2)
{ return s1.equals(s2); } { return s1.equals(s2); }
@@ -78,7 +78,7 @@ private:
bool m_autoFormatOnSave; bool m_autoFormatOnSave;
bool m_autoFormatOnlyCurrentProject; bool m_autoFormatOnlyCurrentProject;
bool m_foldAuxData; bool m_foldAuxData;
bool m_openUiQmlFilesInQDS; QString m_uiQmlOpenMode;
}; };
namespace Internal { namespace Internal {

View File

@@ -93,12 +93,26 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QCheckBox" name="openUiQmlFilesInQDS"> <layout class="QHBoxLayout" name="uiQmlLayout">
<item alignment="Qt::AlignLeft">
<widget class="QLabel" name="uiQmlOpenLabel">
<property name="text"> <property name="text">
<string>Open .ui.qml files in Qt Design Studio</string> <string>Open .ui.qml files with:</string>
</property> </property>
</widget> </widget>
</item> </item>
<item alignment="Qt::AlignLeft">
<widget class="QComboBox" name="uiQmlOpenComboBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
</widget>
</item>
</layout>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>