forked from qt-creator/qt-creator
QmlJsEditor: Use now-standard pattern for settings page setup
Change-Id: I6de2ef5df605a103c99c5304590d8b8b2cf3ee3e Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This commit is contained in:
@@ -123,28 +123,36 @@ void QmlJsEditingSettings::setAutoFormatOnlyCurrentProject(const bool autoFormat
|
|||||||
m_autoFormatOnlyCurrentProject = autoFormatOnlyCurrentProject;
|
m_autoFormatOnlyCurrentProject = autoFormatOnlyCurrentProject;
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlJsEditingSettignsPageWidget::QmlJsEditingSettignsPageWidget()
|
class QmlJsEditingSettingsPageWidget final : public Core::IOptionsPageWidget
|
||||||
|
{
|
||||||
|
Q_DECLARE_TR_FUNCTIONS(QmlDesigner::Internal::QmlJsEditingSettingsPage)
|
||||||
|
|
||||||
|
public:
|
||||||
|
QmlJsEditingSettingsPageWidget()
|
||||||
{
|
{
|
||||||
m_ui.setupUi(this);
|
m_ui.setupUi(this);
|
||||||
|
|
||||||
|
auto s = QmlJsEditingSettings::get();
|
||||||
|
m_ui.textEditHelperCheckBox->setChecked(s.enableContextPane());
|
||||||
|
m_ui.textEditHelperCheckBoxPin->setChecked(s.pinContextPane());
|
||||||
|
m_ui.autoFormatOnSave->setChecked(s.autoFormatOnSave());
|
||||||
|
m_ui.autoFormatOnlyCurrentProject->setChecked(s.autoFormatOnlyCurrentProject());
|
||||||
}
|
}
|
||||||
|
|
||||||
QmlJsEditingSettings QmlJsEditingSettignsPageWidget::settings() const
|
void apply() final
|
||||||
{
|
{
|
||||||
QmlJsEditingSettings s;
|
QmlJsEditingSettings s;
|
||||||
s.setEnableContextPane(m_ui.textEditHelperCheckBox->isChecked());
|
s.setEnableContextPane(m_ui.textEditHelperCheckBox->isChecked());
|
||||||
s.setPinContextPane(m_ui.textEditHelperCheckBoxPin->isChecked());
|
s.setPinContextPane(m_ui.textEditHelperCheckBoxPin->isChecked());
|
||||||
s.setAutoFormatOnSave(m_ui.autoFormatOnSave->isChecked());
|
s.setAutoFormatOnSave(m_ui.autoFormatOnSave->isChecked());
|
||||||
s.setAutoFormatOnlyCurrentProject(m_ui.autoFormatOnlyCurrentProject->isChecked());
|
s.setAutoFormatOnlyCurrentProject(m_ui.autoFormatOnlyCurrentProject->isChecked());
|
||||||
return s;
|
s.set();
|
||||||
}
|
}
|
||||||
|
|
||||||
void QmlJsEditingSettignsPageWidget::setSettings(const QmlJsEditingSettings &s)
|
private:
|
||||||
{
|
Ui::QmlJsEditingSettingsPage m_ui;
|
||||||
m_ui.textEditHelperCheckBox->setChecked(s.enableContextPane());
|
};
|
||||||
m_ui.textEditHelperCheckBoxPin->setChecked(s.pinContextPane());
|
|
||||||
m_ui.autoFormatOnSave->setChecked(s.autoFormatOnSave());
|
|
||||||
m_ui.autoFormatOnlyCurrentProject->setChecked(s.autoFormatOnlyCurrentProject());
|
|
||||||
}
|
|
||||||
|
|
||||||
QmlJsEditingSettings QmlJsEditingSettings::get()
|
QmlJsEditingSettings QmlJsEditingSettings::get()
|
||||||
{
|
{
|
||||||
@@ -156,27 +164,8 @@ QmlJsEditingSettings QmlJsEditingSettings::get()
|
|||||||
QmlJsEditingSettingsPage::QmlJsEditingSettingsPage()
|
QmlJsEditingSettingsPage::QmlJsEditingSettingsPage()
|
||||||
{
|
{
|
||||||
setId("C.QmlJsEditing");
|
setId("C.QmlJsEditing");
|
||||||
setDisplayName(tr("QML/JS Editing"));
|
setDisplayName(QmlJsEditingSettingsPageWidget::tr("QML/JS Editing"));
|
||||||
setCategory(Constants::SETTINGS_CATEGORY_QML);
|
setCategory(Constants::SETTINGS_CATEGORY_QML);
|
||||||
|
setWidgetCreator([] { return new QmlJsEditingSettingsPageWidget; });
|
||||||
}
|
}
|
||||||
|
|
||||||
QWidget *QmlJsEditingSettingsPage::widget()
|
|
||||||
{
|
|
||||||
if (!m_widget) {
|
|
||||||
m_widget = new QmlJsEditingSettignsPageWidget;
|
|
||||||
m_widget->setSettings(QmlJsEditingSettings::get());
|
|
||||||
}
|
|
||||||
return m_widget;
|
|
||||||
}
|
|
||||||
|
|
||||||
void QmlJsEditingSettingsPage::apply()
|
|
||||||
{
|
|
||||||
if (!m_widget) // page was never shown
|
|
||||||
return;
|
|
||||||
m_widget->settings().set();
|
|
||||||
}
|
|
||||||
|
|
||||||
void QmlJsEditingSettingsPage::finish()
|
|
||||||
{
|
|
||||||
delete m_widget;
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -73,40 +73,12 @@ namespace QmlJSEditor {
|
|||||||
{ return !s1.equals(s2); }
|
{ return !s1.equals(s2); }
|
||||||
|
|
||||||
|
|
||||||
class QmlJsEditingSettings;
|
|
||||||
|
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
|
|
||||||
class QmlJsEditingSettignsPageWidget : public QWidget
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
QmlJsEditingSettignsPageWidget();
|
|
||||||
|
|
||||||
QmlJsEditingSettings settings() const;
|
|
||||||
void setSettings(const QmlJsEditingSettings &);
|
|
||||||
|
|
||||||
static QmlJsEditingSettings get();
|
|
||||||
|
|
||||||
private:
|
|
||||||
Ui::QmlJsEditingSettingsPage m_ui;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
class QmlJsEditingSettingsPage : public Core::IOptionsPage
|
class QmlJsEditingSettingsPage : public Core::IOptionsPage
|
||||||
{
|
{
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QmlJsEditingSettingsPage();
|
QmlJsEditingSettingsPage();
|
||||||
|
|
||||||
QWidget *widget() override;
|
|
||||||
void apply() override;
|
|
||||||
void finish() override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
QPointer<QmlJsEditingSettignsPageWidget> m_widget;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
Reference in New Issue
Block a user