From c61652d0655b0782044bbf9fb18226954d5e427a Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Mon, 20 Jun 2011 16:23:40 +0200 Subject: Small refactor Change-Id: I2988ce1c2a73798abccf690a3ed5d4e3a92c91a2 Reviewed-on: http://codereview.qt.nokia.com/517 Reviewed-by: Qt Sanity Bot Reviewed-by: Leandro T. C. Melo --- .../projectexplorer/editorconfiguration.cpp | 7 +++-- src/plugins/texteditor/behaviorsettingspage.cpp | 33 +++++++++++----------- src/plugins/texteditor/behaviorsettingspage.h | 3 +- src/plugins/texteditor/fallbackselectorwidget.h | 2 +- src/plugins/texteditor/tabpreferences.cpp | 20 ++++++++++++- src/plugins/texteditor/tabpreferences.h | 6 +++- src/plugins/texteditor/tabpreferenceswidget.cpp | 17 +++++------ src/plugins/texteditor/texteditorconstants.h | 2 ++ 8 files changed, 58 insertions(+), 32 deletions(-) (limited to 'src') diff --git a/src/plugins/projectexplorer/editorconfiguration.cpp b/src/plugins/projectexplorer/editorconfiguration.cpp index 544b67c0f2..089b6936d6 100644 --- a/src/plugins/projectexplorer/editorconfiguration.cpp +++ b/src/plugins/projectexplorer/editorconfiguration.cpp @@ -91,9 +91,10 @@ struct EditorConfigurationPrivate EditorConfiguration::EditorConfiguration() : m_d(new EditorConfigurationPrivate) { - QList fallbacks; - fallbacks << TextEditorSettings::instance()->tabPreferences(); - m_d->m_tabPreferences = new TabPreferences(fallbacks, this); + TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); + QList tabFallbacks; + tabFallbacks << textEditorSettings->tabPreferences(); + m_d->m_tabPreferences = new TabPreferences(tabFallbacks, this); m_d->m_tabPreferences->setDisplayName(tr("Project", "Settings")); m_d->m_tabPreferences->setId(kId); diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index 2c29ac3180..7ff561b280 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -38,6 +38,7 @@ #include "extraencodingsettings.h" #include "ui_behaviorsettingspage.h" #include "tabpreferences.h" +#include "texteditorconstants.h" #include #include @@ -46,8 +47,6 @@ #include #include -static const char *idKey = "Global"; - using namespace TextEditor; struct BehaviorSettingsPage::BehaviorSettingsPagePrivate @@ -77,9 +76,7 @@ BehaviorSettingsPage::BehaviorSettingsPagePrivate::BehaviorSettingsPagePrivate void BehaviorSettingsPage::BehaviorSettingsPagePrivate::init() { if (const QSettings *s = Core::ICore::instance()->settings()) { - TabSettings ts; - ts.fromSettings(m_parameters.settingsPrefix, s); - m_tabPreferences->setSettings(ts); + m_tabPreferences->fromSettings(m_parameters.settingsPrefix, s); m_storageSettings.fromSettings(m_parameters.settingsPrefix, s); m_behaviorSettings.fromSettings(m_parameters.settingsPrefix, s); m_extraEncodingSettings.fromSettings(m_parameters.settingsPrefix, s); @@ -93,7 +90,7 @@ BehaviorSettingsPage::BehaviorSettingsPage(const BehaviorSettingsPageParameters { m_d->m_tabPreferences = new TabPreferences(QList(), this); m_d->m_tabPreferences->setDisplayName(tr("Global", "Settings")); - m_d->m_tabPreferences->setId(idKey); + m_d->m_tabPreferences->setId(Constants::GLOBAL_SETTINGS_ID); m_d->init(); } @@ -117,7 +114,9 @@ QWidget *BehaviorSettingsPage::createPage(QWidget *parent) QWidget *w = new QWidget(parent); m_d->m_page = new Ui::BehaviorSettingsPage; m_d->m_page->setupUi(w); - m_d->m_pageTabPreferences = new TabPreferences(QList(), w); + m_d->m_pageTabPreferences = new TabPreferences(m_d->m_tabPreferences->fallbacks(), w); + m_d->m_pageTabPreferences->setSettings(m_d->m_tabPreferences->settings()); + m_d->m_pageTabPreferences->setCurrentFallback(m_d->m_tabPreferences->currentFallback()); m_d->m_page->behaviorWidget->setTabPreferences(m_d->m_pageTabPreferences); settingsToUI(); @@ -133,20 +132,25 @@ void BehaviorSettingsPage::apply() if (!m_d->m_page) // page was never shown return; - TabSettings newTabSettings; StorageSettings newStorageSettings; BehaviorSettings newBehaviorSettings; ExtraEncodingSettings newExtraEncodingSettings; - settingsFromUI(&newTabSettings, &newStorageSettings, &newBehaviorSettings, + settingsFromUI(&newStorageSettings, &newBehaviorSettings, &newExtraEncodingSettings); QSettings *s = Core::ICore::instance()->settings(); - if (newTabSettings != m_d->m_tabPreferences->settings()) { - m_d->m_tabPreferences->setSettings(newTabSettings); + if (m_d->m_tabPreferences->settings() != m_d->m_pageTabPreferences->settings()) { + m_d->m_tabPreferences->setSettings(m_d->m_pageTabPreferences->settings()); + if (s) + m_d->m_tabPreferences->toSettings(m_d->m_parameters.settingsPrefix, s); + } + + if (m_d->m_tabPreferences->currentFallback() != m_d->m_pageTabPreferences->currentFallback()) { + m_d->m_tabPreferences->setCurrentFallback(m_d->m_pageTabPreferences->currentFallback()); if (s) - m_d->m_tabPreferences->settings().toSettings(m_d->m_parameters.settingsPrefix, s); + m_d->m_tabPreferences->toSettings(m_d->m_parameters.settingsPrefix, s); } if (newStorageSettings != m_d->m_storageSettings) { @@ -179,12 +183,10 @@ void BehaviorSettingsPage::apply() } } -void BehaviorSettingsPage::settingsFromUI(TabSettings *tabSettings, - StorageSettings *storageSettings, +void BehaviorSettingsPage::settingsFromUI(StorageSettings *storageSettings, BehaviorSettings *behaviorSettings, ExtraEncodingSettings *extraEncodingSettings) const { - *tabSettings = m_d->m_pageTabPreferences->settings(); m_d->m_page->behaviorWidget->assignedStorageSettings(storageSettings); m_d->m_page->behaviorWidget->assignedBehaviorSettings(behaviorSettings); m_d->m_page->behaviorWidget->assignedExtraEncodingSettings(extraEncodingSettings); @@ -192,7 +194,6 @@ void BehaviorSettingsPage::settingsFromUI(TabSettings *tabSettings, void BehaviorSettingsPage::settingsToUI() { - m_d->m_pageTabPreferences->setSettings(m_d->m_tabPreferences->settings()); m_d->m_page->behaviorWidget->setAssignedStorageSettings(m_d->m_storageSettings); m_d->m_page->behaviorWidget->setAssignedBehaviorSettings(m_d->m_behaviorSettings); m_d->m_page->behaviorWidget->setAssignedExtraEncodingSettings(m_d->m_extraEncodingSettings); diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h index 0f7467178b..3c394fe28c 100644 --- a/src/plugins/texteditor/behaviorsettingspage.h +++ b/src/plugins/texteditor/behaviorsettingspage.h @@ -83,8 +83,7 @@ signals: void extraEncodingSettingsChanged(const TextEditor::ExtraEncodingSettings &); private: - void settingsFromUI(TabSettings *tabSettings, - StorageSettings *storageSettings, + void settingsFromUI(StorageSettings *storageSettings, BehaviorSettings *behaviorSettings, ExtraEncodingSettings *extraEncodingSettings) const; void settingsToUI(); diff --git a/src/plugins/texteditor/fallbackselectorwidget.h b/src/plugins/texteditor/fallbackselectorwidget.h index 21e141976a..795112b660 100644 --- a/src/plugins/texteditor/fallbackselectorwidget.h +++ b/src/plugins/texteditor/fallbackselectorwidget.h @@ -24,7 +24,7 @@ class TEXTEDITOR_EXPORT FallbackSelectorWidget : public QWidget public: explicit FallbackSelectorWidget(QWidget *parent = 0); - void setFallbackPreferences(TextEditor::IFallbackPreferences *tabPreferences); + void setFallbackPreferences(TextEditor::IFallbackPreferences *fallbackPreferences); QString searchKeywords() const; void setFallbacksVisible(bool on); diff --git a/src/plugins/texteditor/tabpreferences.cpp b/src/plugins/texteditor/tabpreferences.cpp index a471830e4e..bb3d439def 100644 --- a/src/plugins/texteditor/tabpreferences.cpp +++ b/src/plugins/texteditor/tabpreferences.cpp @@ -1,5 +1,6 @@ #include "tabpreferences.h" #include "tabsettings.h" +#include "texteditorconstants.h" using namespace TextEditor; @@ -7,6 +8,15 @@ static const char *settingsSuffixKey = "TabPreferences"; static const char *currentFallbackKey = "CurrentFallback"; +static QList toFallbackList( + const QList &fallbacks) +{ + QList fallbackList; + for (int i = 0; i < fallbacks.count(); i++) + fallbackList << fallbacks.at(i); + return fallbackList; +} + TabPreferences::TabPreferences( const QList &fallbacks, QObject *parent) : IFallbackPreferences(fallbacks, parent) @@ -15,6 +25,14 @@ TabPreferences::TabPreferences( this, SLOT(slotCurrentValueChanged(QVariant))); } +TabPreferences::TabPreferences( + const QList &fallbacks, QObject *parent) + : IFallbackPreferences(toFallbackList(fallbacks), parent) +{ + connect(this, SIGNAL(currentValueChanged(QVariant)), + this, SLOT(slotCurrentValueChanged(QVariant))); +} + QVariant TabPreferences::value() const { QVariant v; @@ -83,6 +101,6 @@ void TabPreferences::toMap(const QString &prefix, QVariantMap *map) const void TabPreferences::fromMap(const QString &prefix, const QVariantMap &map) { m_data.fromMap(prefix, map); - setCurrentFallback(map.value(prefix + QLatin1String(currentFallbackKey), QLatin1String("Global")).toString()); + setCurrentFallback(map.value(prefix + QLatin1String(currentFallbackKey), Constants::GLOBAL_SETTINGS_ID).toString()); } diff --git a/src/plugins/texteditor/tabpreferences.h b/src/plugins/texteditor/tabpreferences.h index 42b63e2cbf..37a2b7b4c4 100644 --- a/src/plugins/texteditor/tabpreferences.h +++ b/src/plugins/texteditor/tabpreferences.h @@ -14,12 +14,16 @@ public: const QList &fallbacks, QObject *parentObject = 0); + explicit TabPreferences( + const QList &fallbacks, + QObject *parentObject = 0); + virtual QVariant value() const; virtual void setValue(const QVariant &); TabSettings settings() const; - // tracks parent hierarchy until currentParentSettings is null + // tracks parent fallbacks until null and extracts settings from it TabSettings currentSettings() const; virtual void toMap(const QString &prefix, QVariantMap *map) const; diff --git a/src/plugins/texteditor/tabpreferenceswidget.cpp b/src/plugins/texteditor/tabpreferenceswidget.cpp index a18edbc2f5..32ed8e1069 100644 --- a/src/plugins/texteditor/tabpreferenceswidget.cpp +++ b/src/plugins/texteditor/tabpreferenceswidget.cpp @@ -27,12 +27,13 @@ void TabPreferencesWidget::setTabPreferences(TabPreferences *tabPreferences) // cleanup old if (m_tabPreferences) { - disconnect(m_tabPreferences, SIGNAL(settingsChanged(TabSettings)), - m_ui->tabSettingsWidget, SLOT(setSettings(TabSettings))); - disconnect(m_tabPreferences, SIGNAL(currentFallbackChanged(IFallbackPreferences*)), - this, SLOT(slotCurrentFallbackChanged(IFallbackPreferences*))); - disconnect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TabSettings)), - m_tabPreferences, SLOT(setSettings(TabSettings))); + disconnect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)), + m_ui->tabSettingsWidget, SLOT(setSettings(TextEditor::TabSettings))); + disconnect(m_tabPreferences, SIGNAL(currentFallbackChanged(TextEditor::IFallbackPreferences*)), + this, SLOT(slotCurrentFallbackChanged(TextEditor::IFallbackPreferences*))); + disconnect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TextEditor::TabSettings)), + m_tabPreferences, SLOT(setSettings(TextEditor::TabSettings))); + m_ui->tabSettingsWidget->setEnabled(true); } m_tabPreferences = tabPreferences; @@ -41,14 +42,14 @@ void TabPreferencesWidget::setTabPreferences(TabPreferences *tabPreferences) if (m_tabPreferences) { slotCurrentFallbackChanged(m_tabPreferences->currentFallback()); - connect(m_tabPreferences, SIGNAL(settingsChanged(TextEditor::TabSettings)), + connect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)), m_ui->tabSettingsWidget, SLOT(setSettings(TextEditor::TabSettings))); connect(m_tabPreferences, SIGNAL(currentFallbackChanged(TextEditor::IFallbackPreferences*)), this, SLOT(slotCurrentFallbackChanged(TextEditor::IFallbackPreferences*))); connect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TextEditor::TabSettings)), m_tabPreferences, SLOT(setSettings(TextEditor::TabSettings))); - m_ui->tabSettingsWidget->setSettings(m_tabPreferences->settings()); + m_ui->tabSettingsWidget->setSettings(m_tabPreferences->currentSettings()); } } diff --git a/src/plugins/texteditor/texteditorconstants.h b/src/plugins/texteditor/texteditorconstants.h index 4a8c4592b8..b355235dec 100644 --- a/src/plugins/texteditor/texteditorconstants.h +++ b/src/plugins/texteditor/texteditorconstants.h @@ -148,6 +148,8 @@ const char * const TEXT_EDITOR_SNIPPETS_SETTINGS = "F.SnippetsSettings"; const char * const SNIPPET_EDITOR_ID = "TextEditor.SnippetEditor"; const char * const TEXT_SNIPPET_GROUP_ID = "Text"; +const char * const GLOBAL_SETTINGS_ID = "Global"; + } // namespace Constants } // namespace TextEditor -- cgit v1.2.1