Small refactor, preparation for built-in settings

Change-Id: I91de7a01aba37f41398df7b06dbe5af868094379
Reviewed-on: http://codereview.qt.nokia.com/615
Reviewed-by: Qt Sanity Bot <qt_sanity_bot@ovi.com>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@nokia.com>
This commit is contained in:
Jarek Kobus
2011-06-22 15:04:24 +02:00
committed by Jarek Kobus
parent 12bd880394
commit c98e7c2b83
10 changed files with 129 additions and 50 deletions

View File

@@ -250,25 +250,20 @@ void CppCodeStylePreferencesWidget::setPreferences(CppTools::CppCodeStylePrefere
m_tabPreferences = tabPreferences; m_tabPreferences = tabPreferences;
m_ui->tabPreferencesWidget->setTabPreferences(tabPreferences); m_ui->tabPreferencesWidget->setTabPreferences(tabPreferences);
connect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)), connect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)),
this, SLOT(slotSettingsChanged())); this, SLOT(updatePreview()));
// code preferences // code preferences
m_cppCodeStylePreferences = codeStylePreferences; m_cppCodeStylePreferences = codeStylePreferences;
m_ui->fallbackWidget->setFallbackPreferences(codeStylePreferences); m_ui->fallbackWidget->setFallbackPreferences(codeStylePreferences);
m_ui->fallbackContainer->setVisible(!m_ui->fallbackWidget->isHidden()); m_ui->fallbackContainer->setVisible(!m_ui->fallbackWidget->isHidden());
connect(m_cppCodeStylePreferences, SIGNAL(settingsChanged(CppTools::CppCodeStyleSettings)), connect(m_cppCodeStylePreferences, SIGNAL(currentSettingsChanged(CppTools::CppCodeStyleSettings)),
this, SLOT(setCppCodeStyleSettings(CppTools::CppCodeStyleSettings))); this, SLOT(setCppCodeStyleSettings(CppTools::CppCodeStyleSettings)));
connect(m_cppCodeStylePreferences, SIGNAL(currentFallbackChanged(TextEditor::IFallbackPreferences*)), connect(m_cppCodeStylePreferences, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences*)),
this, SLOT(slotCurrentFallbackChanged(TextEditor::IFallbackPreferences*))); this, SLOT(slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences*)));
connect(this, SIGNAL(cppCodeStyleSettingsChanged(CppTools::CppCodeStyleSettings)),
m_cppCodeStylePreferences, SLOT(setSettings(CppTools::CppCodeStyleSettings)));
setCppCodeStyleSettings(m_cppCodeStylePreferences->settings(), false); setCppCodeStyleSettings(m_cppCodeStylePreferences->settings(), false);
slotCurrentFallbackChanged(m_cppCodeStylePreferences->currentFallback(), false); slotCurrentPreferencesChanged(m_cppCodeStylePreferences->currentPreferences(), false);
connect(m_cppCodeStylePreferences, SIGNAL(currentSettingsChanged(CppTools::CppCodeStyleSettings)),
this, SLOT(slotSettingsChanged()));
updatePreview(); updatePreview();
} }
@@ -322,12 +317,13 @@ void CppCodeStylePreferencesWidget::setCppCodeStyleSettings(const CppCodeStyleSe
updatePreview(); updatePreview();
} }
void CppCodeStylePreferencesWidget::slotCurrentFallbackChanged(TextEditor::IFallbackPreferences *fallback, bool preview) void CppCodeStylePreferencesWidget::slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences *preferences, bool preview)
{ {
m_ui->contentGroupBox->setEnabled(!fallback); const bool enable = !preferences->isReadOnly() && m_cppCodeStylePreferences->isFallbackEnabled(m_cppCodeStylePreferences->currentFallback());
m_ui->bracesGroupBox->setEnabled(!fallback); m_ui->contentGroupBox->setEnabled(enable);
m_ui->switchGroupBox->setEnabled(!fallback); m_ui->bracesGroupBox->setEnabled(enable);
m_ui->alignmentGroupBox->setEnabled(!fallback); m_ui->switchGroupBox->setEnabled(enable);
m_ui->alignmentGroupBox->setEnabled(enable);
if (preview) if (preview)
updatePreview(); updatePreview();
} }
@@ -370,12 +366,13 @@ void CppCodeStylePreferencesWidget::slotCppCodeStyleSettingsChanged()
{ {
if (m_blockUpdates) if (m_blockUpdates)
return; return;
emit cppCodeStyleSettingsChanged(cppCodeStyleSettings());
updatePreview();
}
void CppCodeStylePreferencesWidget::slotSettingsChanged() if (m_cppCodeStylePreferences) {
{ CppCodeStylePreferences *current = qobject_cast<CppCodeStylePreferences *>(m_cppCodeStylePreferences->currentPreferences());
if (current)
current->setSettings(cppCodeStyleSettings());
}
updatePreview(); updatePreview();
} }
@@ -485,13 +482,23 @@ QWidget *CppCodeStyleSettingsPage::createPage(QWidget *parent)
TextEditor::TabPreferences *originalTabPreferences TextEditor::TabPreferences *originalTabPreferences
= CppToolsSettings::instance()->tabPreferences(); = CppToolsSettings::instance()->tabPreferences();
m_pageTabPreferences = new TextEditor::TabPreferences(originalTabPreferences->fallbacks(), m_widget); QList<TextEditor::IFallbackPreferences *> originalTabFallbacks = originalTabPreferences->fallbacks();
m_pageTabPreferences = new TextEditor::TabPreferences(originalTabFallbacks, m_widget);
for (int i = 0; i < originalTabFallbacks.count(); i++) {
TextEditor::IFallbackPreferences *fallback = originalTabFallbacks.at(i);
m_pageTabPreferences->setFallbackEnabled(fallback, originalTabPreferences->isFallbackEnabled(fallback));
}
m_pageTabPreferences->setSettings(originalTabPreferences->settings()); m_pageTabPreferences->setSettings(originalTabPreferences->settings());
m_pageTabPreferences->setCurrentFallback(originalTabPreferences->currentFallback()); m_pageTabPreferences->setCurrentFallback(originalTabPreferences->currentFallback());
CppCodeStylePreferences *originalCodeStylePreferences CppCodeStylePreferences *originalCodeStylePreferences
= CppToolsSettings::instance()->cppCodeStylePreferences(); = CppToolsSettings::instance()->cppCodeStylePreferences();
m_pageCppCodeStylePreferences = new CppCodeStylePreferences(originalCodeStylePreferences->fallbacks(), m_widget); QList<TextEditor::IFallbackPreferences *> originalCodeStyleFallbacks = originalCodeStylePreferences->fallbacks();
m_pageCppCodeStylePreferences = new CppCodeStylePreferences(originalCodeStyleFallbacks, m_widget);
for (int i = 0; i < originalCodeStyleFallbacks.count(); i++) {
TextEditor::IFallbackPreferences *fallback = originalCodeStyleFallbacks.at(i);
m_pageCppCodeStylePreferences->setFallbackEnabled(fallback, originalCodeStylePreferences->isFallbackEnabled(fallback));
}
m_pageCppCodeStylePreferences->setSettings(originalCodeStylePreferences->settings()); m_pageCppCodeStylePreferences->setSettings(originalCodeStylePreferences->settings());
m_pageCppCodeStylePreferences->setCurrentFallback(originalCodeStylePreferences->currentFallback()); m_pageCppCodeStylePreferences->setCurrentFallback(originalCodeStylePreferences->currentFallback());
m_widget->setPreferences(m_pageCppCodeStylePreferences, m_pageTabPreferences); m_widget->setPreferences(m_pageCppCodeStylePreferences, m_pageTabPreferences);

View File

@@ -47,13 +47,10 @@ private slots:
void decorateEditors(const TextEditor::FontSettings &fontSettings); void decorateEditors(const TextEditor::FontSettings &fontSettings);
void setVisualizeWhitespace(bool on); void setVisualizeWhitespace(bool on);
void slotCppCodeStyleSettingsChanged(); void slotCppCodeStyleSettingsChanged();
void slotSettingsChanged();
void updatePreview(); void updatePreview();
void setCppCodeStyleSettings(const CppTools::CppCodeStyleSettings &settings, bool preview = true); void setCppCodeStyleSettings(const CppTools::CppCodeStyleSettings &settings, bool preview = true);
void slotCurrentFallbackChanged(TextEditor::IFallbackPreferences *, bool preview = true); void slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences *, bool preview = true);
signals:
void cppCodeStyleSettingsChanged(const CppTools::CppCodeStyleSettings &);
private: private:
CppCodeStyleSettings cppCodeStyleSettings() const; CppCodeStyleSettings cppCodeStyleSettings() const;

View File

@@ -37,10 +37,12 @@ CppToolsSettings::CppToolsSettings(QObject *parent)
if (const QSettings *s = Core::ICore::instance()->settings()) { if (const QSettings *s = Core::ICore::instance()->settings()) {
TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance();
TextEditor::TabPreferences *tabPrefs = textEditorSettings->tabPreferences();
m_d->m_tabPreferences m_d->m_tabPreferences
= new TextEditor::TabPreferences(QList<TextEditor::IFallbackPreferences *>() = new TextEditor::TabPreferences(QList<TextEditor::IFallbackPreferences *>()
<< textEditorSettings->tabPreferences(), this); << tabPrefs, this);
m_d->m_tabPreferences->setCurrentFallback(textEditorSettings->tabPreferences()); m_d->m_tabPreferences->setCurrentFallback(tabPrefs);
m_d->m_tabPreferences->setFallbackEnabled(tabPrefs, false);
m_d->m_tabPreferences->fromSettings(CppTools::Constants::CPP_SETTINGS_ID, s); m_d->m_tabPreferences->fromSettings(CppTools::Constants::CPP_SETTINGS_ID, s);
m_d->m_tabPreferences->setDisplayName(tr("Global C++", "Settings")); m_d->m_tabPreferences->setDisplayName(tr("Global C++", "Settings"));
m_d->m_tabPreferences->setId(idKey); m_d->m_tabPreferences->setId(idKey);

View File

@@ -95,6 +95,7 @@ EditorConfiguration::EditorConfiguration() : m_d(new EditorConfigurationPrivate)
QList<TabPreferences *> tabFallbacks; QList<TabPreferences *> tabFallbacks;
tabFallbacks << textEditorSettings->tabPreferences(); tabFallbacks << textEditorSettings->tabPreferences();
m_d->m_tabPreferences = new TabPreferences(tabFallbacks, this); m_d->m_tabPreferences = new TabPreferences(tabFallbacks, this);
m_d->m_tabPreferences->setFallbackEnabled(textEditorSettings->tabPreferences(), false);
m_d->m_tabPreferences->setDisplayName(tr("Project", "Settings")); m_d->m_tabPreferences->setDisplayName(tr("Project", "Settings"));
m_d->m_tabPreferences->setId(kId); m_d->m_tabPreferences->setId(kId);
@@ -108,11 +109,14 @@ EditorConfiguration::EditorConfiguration() : m_d(new EditorConfigurationPrivate)
itTab.next(); itTab.next();
const QString languageId = itTab.key(); const QString languageId = itTab.key();
TabPreferences *originalPreferences = itTab.value(); TabPreferences *originalPreferences = itTab.value();
QList<IFallbackPreferences *> fallbacks;
fallbacks << originalPreferences->fallbacks();
fallbacks << originalPreferences;
fallbacks << tabPreferences();
TabPreferences *preferences = new TabPreferences( TabPreferences *preferences = new TabPreferences(
QList<IFallbackPreferences *>() fallbacks, this);
<< originalPreferences->fallbacks() for (int i = 0; i < fallbacks.count(); i++)
<< originalPreferences preferences->setFallbackEnabled(fallbacks.at(i), false);
<< tabPreferences(), this);
preferences->setId(languageId + QLatin1String("Project")); preferences->setId(languageId + QLatin1String("Project"));
preferences->setCurrentFallback(originalPreferences); preferences->setCurrentFallback(originalPreferences);
m_d->m_languageTabPreferences.insert(languageId, preferences); m_d->m_languageTabPreferences.insert(languageId, preferences);
@@ -127,6 +131,7 @@ EditorConfiguration::EditorConfiguration() : m_d(new EditorConfigurationPrivate)
ICodeStylePreferencesFactory *factory = manager->factory(languageId); ICodeStylePreferencesFactory *factory = manager->factory(languageId);
IFallbackPreferences *preferences = factory->createPreferences( IFallbackPreferences *preferences = factory->createPreferences(
QList<IFallbackPreferences *>() << originalPreferences); QList<IFallbackPreferences *>() << originalPreferences);
preferences->setFallbackEnabled(originalPreferences, false);
preferences->setId(languageId + QLatin1String("Project")); preferences->setId(languageId + QLatin1String("Project"));
preferences->setDisplayName(tr("Project %1", "Settings, %1 is a language (C++ or QML)").arg(factory->displayName())); preferences->setDisplayName(tr("Project %1", "Settings, %1 is a language (C++ or QML)").arg(factory->displayName()));
preferences->setCurrentFallback(originalPreferences); preferences->setCurrentFallback(originalPreferences);

View File

@@ -161,7 +161,12 @@ QWidget *QmlJSCodeStyleSettingsPage::createPage(QWidget *parent)
TextEditor::TabPreferences *originalTabPreferences TextEditor::TabPreferences *originalTabPreferences
= QmlJSToolsSettings::instance()->tabPreferences(); = QmlJSToolsSettings::instance()->tabPreferences();
m_pageTabPreferences = new TextEditor::TabPreferences(originalTabPreferences->fallbacks(), m_widget); QList<TextEditor::IFallbackPreferences *> originalTabFallbacks = originalTabPreferences->fallbacks();
m_pageTabPreferences = new TextEditor::TabPreferences(originalTabFallbacks, m_widget);
for (int i = 0; i < originalTabFallbacks.count(); i++) {
TextEditor::IFallbackPreferences *fallback = originalTabFallbacks.at(i);
m_pageTabPreferences->setFallbackEnabled(fallback, originalTabPreferences->isFallbackEnabled(fallback));
}
m_pageTabPreferences->setSettings(originalTabPreferences->settings()); m_pageTabPreferences->setSettings(originalTabPreferences->settings());
m_pageTabPreferences->setCurrentFallback(originalTabPreferences->currentFallback()); m_pageTabPreferences->setCurrentFallback(originalTabPreferences->currentFallback());
m_widget->setTabPreferences(m_pageTabPreferences); m_widget->setTabPreferences(m_pageTabPreferences);

View File

@@ -35,10 +35,12 @@ QmlJSToolsSettings::QmlJSToolsSettings(QObject *parent)
if (const QSettings *s = Core::ICore::instance()->settings()) { if (const QSettings *s = Core::ICore::instance()->settings()) {
TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance(); TextEditor::TextEditorSettings *textEditorSettings = TextEditor::TextEditorSettings::instance();
TextEditor::TabPreferences *tabPrefs = textEditorSettings->tabPreferences();
m_d->m_tabPreferences m_d->m_tabPreferences
= new TextEditor::TabPreferences(QList<TextEditor::IFallbackPreferences *>() = new TextEditor::TabPreferences(QList<TextEditor::IFallbackPreferences *>()
<< textEditorSettings->tabPreferences(), this); << tabPrefs, this);
m_d->m_tabPreferences->setCurrentFallback(textEditorSettings->tabPreferences()); m_d->m_tabPreferences->setCurrentFallback(tabPrefs);
m_d->m_tabPreferences->setFallbackEnabled(tabPrefs, false);
m_d->m_tabPreferences->fromSettings(QmlJSTools::Constants::QML_JS_SETTINGS_ID, s); m_d->m_tabPreferences->fromSettings(QmlJSTools::Constants::QML_JS_SETTINGS_ID, s);
m_d->m_tabPreferences->setDisplayName(tr("Global Qt Quick", "Settings")); m_d->m_tabPreferences->setDisplayName(tr("Global Qt Quick", "Settings"));
m_d->m_tabPreferences->setId(idKey); m_d->m_tabPreferences->setId(idKey);

View File

@@ -14,14 +14,17 @@ class IFallbackPreferencesPrivate
{ {
public: public:
IFallbackPreferencesPrivate() IFallbackPreferencesPrivate()
: m_currentFallback(0) : m_currentFallback(0),
m_readOnly(false)
{} {}
QList<IFallbackPreferences *> m_fallbacks; QList<IFallbackPreferences *> m_fallbacks;
QMap<QString, IFallbackPreferences *> m_idToFallback; QMap<QString, IFallbackPreferences *> m_idToFallback;
QMap<IFallbackPreferences *, bool> m_fallbackToEnabled;
IFallbackPreferences *m_currentFallback; IFallbackPreferences *m_currentFallback;
QString m_id; QString m_id;
QString m_displayName; QString m_displayName;
bool m_readOnly;
}; };
} }
@@ -65,6 +68,35 @@ void IFallbackPreferences::setDisplayName(const QString &name)
d->m_displayName = name; d->m_displayName = name;
} }
bool IFallbackPreferences::isReadOnly() const
{
return d->m_readOnly;
}
void IFallbackPreferences::setReadOnly(bool on)
{
d->m_readOnly = on;
}
bool IFallbackPreferences::isFallbackEnabled(IFallbackPreferences *fallback) const
{
return d->m_fallbackToEnabled.value(fallback, true);
}
void IFallbackPreferences::setFallbackEnabled(IFallbackPreferences *fallback, bool on)
{
if (fallback && !d->m_fallbacks.contains(fallback)) {
// warning
return;
}
d->m_fallbackToEnabled[fallback] = on;
}
IFallbackPreferences *IFallbackPreferences::clone() const
{
return 0;
}
QVariant IFallbackPreferences::currentValue() const QVariant IFallbackPreferences::currentValue() const
{ {
return currentPreferences()->value(); return currentPreferences()->value();
@@ -100,13 +132,18 @@ void IFallbackPreferences::setCurrentFallback(IFallbackPreferences *fallback)
if (d->m_currentFallback) { if (d->m_currentFallback) {
disconnect(d->m_currentFallback, SIGNAL(currentValueChanged(QVariant)), disconnect(d->m_currentFallback, SIGNAL(currentValueChanged(QVariant)),
this, SIGNAL(currentValueChanged(QVariant))); this, SIGNAL(currentValueChanged(QVariant)));
disconnect(d->m_currentFallback, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences *)),
this, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences *)));
} }
d->m_currentFallback = fallback; d->m_currentFallback = fallback;
if (d->m_currentFallback) { if (d->m_currentFallback) {
connect(d->m_currentFallback, SIGNAL(currentValueChanged(QVariant)), connect(d->m_currentFallback, SIGNAL(currentValueChanged(QVariant)),
this, SIGNAL(currentValueChanged(QVariant))); this, SIGNAL(currentValueChanged(QVariant)));
connect(d->m_currentFallback, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences *)),
this, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences *)));
} }
emit currentFallbackChanged(d->m_currentFallback); emit currentFallbackChanged(d->m_currentFallback);
emit currentPreferencesChanged(currentPreferences());
emit currentValueChanged(currentValue()); emit currentValueChanged(currentValue());
} }

View File

@@ -21,6 +21,7 @@ class TabSettings;
class TEXTEDITOR_EXPORT IFallbackPreferences : public QObject class TEXTEDITOR_EXPORT IFallbackPreferences : public QObject
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(bool readOnly READ isReadOnly WRITE setReadOnly)
public: public:
explicit IFallbackPreferences(const QList<IFallbackPreferences *> &fallbacks, QObject *parentObject = 0); explicit IFallbackPreferences(const QList<IFallbackPreferences *> &fallbacks, QObject *parentObject = 0);
virtual ~IFallbackPreferences(); virtual ~IFallbackPreferences();
@@ -31,6 +32,14 @@ public:
QString displayName() const; QString displayName() const;
void setDisplayName(const QString &name); void setDisplayName(const QString &name);
bool isReadOnly() const;
void setReadOnly(bool on);
bool isFallbackEnabled(IFallbackPreferences *fallback) const;
void setFallbackEnabled(IFallbackPreferences *fallback, bool on);
virtual IFallbackPreferences *clone() const;
virtual QVariant value() const = 0; virtual QVariant value() const = 0;
virtual void setValue(const QVariant &) = 0; virtual void setValue(const QVariant &) = 0;
@@ -56,6 +65,7 @@ signals:
void valueChanged(const QVariant &); void valueChanged(const QVariant &);
void currentValueChanged(const QVariant &); void currentValueChanged(const QVariant &);
void currentFallbackChanged(TextEditor::IFallbackPreferences *currentFallback); void currentFallbackChanged(TextEditor::IFallbackPreferences *currentFallback);
void currentPreferencesChanged(TextEditor::IFallbackPreferences *currentPreferences);
protected: protected:
virtual QString settingsSuffix() const = 0; virtual QString settingsSuffix() const = 0;

View File

@@ -13,6 +13,7 @@ TabPreferencesWidget::TabPreferencesWidget(QWidget *parent) :
{ {
m_ui->setupUi(this); m_ui->setupUi(this);
m_ui->fallbackWidget->setLabelText(tr("Tab settings:")); m_ui->fallbackWidget->setLabelText(tr("Tab settings:"));
m_ui->tabSettingsWidget->setEnabled(false);
} }
TabPreferencesWidget::~TabPreferencesWidget() TabPreferencesWidget::~TabPreferencesWidget()
@@ -29,33 +30,44 @@ void TabPreferencesWidget::setTabPreferences(TabPreferences *tabPreferences)
if (m_tabPreferences) { if (m_tabPreferences) {
disconnect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)), disconnect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)),
m_ui->tabSettingsWidget, SLOT(setSettings(TextEditor::TabSettings))); m_ui->tabSettingsWidget, SLOT(setSettings(TextEditor::TabSettings)));
disconnect(m_tabPreferences, SIGNAL(currentFallbackChanged(TextEditor::IFallbackPreferences*)), disconnect(m_tabPreferences, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences*)),
this, SLOT(slotCurrentFallbackChanged(TextEditor::IFallbackPreferences*))); this, SLOT(slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences*)));
disconnect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TextEditor::TabSettings)), disconnect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TextEditor::TabSettings)),
m_tabPreferences, SLOT(setSettings(TextEditor::TabSettings))); this, SLOT(slotTabSettingsChanged(TextEditor::TabSettings)));
m_ui->tabSettingsWidget->setEnabled(true);
} }
m_tabPreferences = tabPreferences; m_tabPreferences = tabPreferences;
m_ui->fallbackWidget->setFallbackPreferences(tabPreferences); m_ui->fallbackWidget->setFallbackPreferences(tabPreferences);
// fillup new // fillup new
if (m_tabPreferences) { if (m_tabPreferences) {
slotCurrentFallbackChanged(m_tabPreferences->currentFallback()); slotCurrentPreferencesChanged(m_tabPreferences->currentPreferences());
m_ui->tabSettingsWidget->setSettings(m_tabPreferences->currentSettings());
connect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)), connect(m_tabPreferences, SIGNAL(currentSettingsChanged(TextEditor::TabSettings)),
m_ui->tabSettingsWidget, SLOT(setSettings(TextEditor::TabSettings))); m_ui->tabSettingsWidget, SLOT(setSettings(TextEditor::TabSettings)));
connect(m_tabPreferences, SIGNAL(currentFallbackChanged(TextEditor::IFallbackPreferences*)), connect(m_tabPreferences, SIGNAL(currentPreferencesChanged(TextEditor::IFallbackPreferences*)),
this, SLOT(slotCurrentFallbackChanged(TextEditor::IFallbackPreferences*))); this, SLOT(slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences*)));
connect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TextEditor::TabSettings)), connect(m_ui->tabSettingsWidget, SIGNAL(settingsChanged(TextEditor::TabSettings)),
m_tabPreferences, SLOT(setSettings(TextEditor::TabSettings))); this, SLOT(slotTabSettingsChanged(TextEditor::TabSettings)));
} else {
m_ui->tabSettingsWidget->setSettings(m_tabPreferences->currentSettings()); m_ui->tabSettingsWidget->setEnabled(false);
} }
} }
void TabPreferencesWidget::slotCurrentFallbackChanged(TextEditor::IFallbackPreferences *fallback) void TabPreferencesWidget::slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences *preferences)
{ {
m_ui->tabSettingsWidget->setEnabled(!fallback); m_ui->tabSettingsWidget->setEnabled(!preferences->isReadOnly() && m_tabPreferences->isFallbackEnabled(m_tabPreferences->currentFallback()));
}
void TabPreferencesWidget::slotTabSettingsChanged(const TextEditor::TabSettings &settings)
{
if (!m_tabPreferences)
return;
TabPreferences *current = qobject_cast<TabPreferences *>(m_tabPreferences->currentPreferences());
if (!current)
return;
current->setSettings(settings);
} }
QString TabPreferencesWidget::searchKeywords() const QString TabPreferencesWidget::searchKeywords() const

View File

@@ -9,6 +9,7 @@
namespace TextEditor { namespace TextEditor {
class TabSettings;
class TabPreferences; class TabPreferences;
class IFallbackPreferences; class IFallbackPreferences;
@@ -34,7 +35,8 @@ protected:
void changeEvent(QEvent *e); void changeEvent(QEvent *e);
private slots: private slots:
void slotCurrentFallbackChanged(TextEditor::IFallbackPreferences *fallback); void slotCurrentPreferencesChanged(TextEditor::IFallbackPreferences *preferences);
void slotTabSettingsChanged(const TextEditor::TabSettings &settings);
private: private:
Ui::TabPreferencesWidget *m_ui; Ui::TabPreferencesWidget *m_ui;