Editors: Make snippets and code style honor font settings

Task-number: QTCREATORBUG-5007

Change-Id: Ied78ef17ea7a25d22c37d36fd4eb7257c6c9f4c0
Reviewed-on: http://codereview.qt.nokia.com/293
Reviewed-by: Thorbjørn Lindeijer <thorbjorn.lindeijer@nokia.com>
This commit is contained in:
Leandro Melo
2011-05-31 16:36:58 +02:00
committed by Leandro T. C. Melo
parent 7ccfe19deb
commit 61325aae0d
3 changed files with 42 additions and 15 deletions

View File

@@ -40,6 +40,8 @@
#include "ui_snippetssettingspage.h"
#include <coreplugin/icore.h>
#include <texteditor/texteditorsettings.h>
#include <texteditor/fontsettings.h>
#include <extensionsystem/pluginmanager.h>
#include <QtCore/QModelIndex>
@@ -290,6 +292,7 @@ private slots:
void selectMovedSnippet(const QModelIndex &, int, int, const QModelIndex &, int row);
void setSnippetContent();
void updateCurrentSnippetDependent(const QModelIndex &modelIndex = QModelIndex());
void decorateEditors(const TextEditor::FontSettings &fontSettings);
private:
SnippetEditorWidget *currentEditor() const;
@@ -336,6 +339,7 @@ void SnippetsSettingsPagePrivate::configureUi(QWidget *w)
foreach (ISnippetProvider *provider, providers) {
m_ui.groupCombo->addItem(provider->displayName(), provider->groupId());
SnippetEditorWidget *snippetEditor = new SnippetEditorWidget(w);
snippetEditor->setFontSettings(TextEditorSettings::instance()->fontSettings());
provider->decorateEditor(snippetEditor);
m_ui.snippetsEditorStack->insertWidget(m_ui.groupCombo->count() - 1, snippetEditor);
connect(snippetEditor, SIGNAL(snippetContentChanged()), this, SLOT(setSnippetContent()));
@@ -380,6 +384,9 @@ void SnippetsSettingsPagePrivate::configureUi(QWidget *w)
connect(m_ui.revertButton, SIGNAL(clicked()), this, SLOT(revertBuiltInSnippet()));
connect(m_ui.snippetsTable->selectionModel(), SIGNAL(currentChanged(QModelIndex,QModelIndex)),
this, SLOT(updateCurrentSnippetDependent(QModelIndex)));
connect(TextEditorSettings::instance(), SIGNAL(fontSettingsChanged(TextEditor::FontSettings)),
this, SLOT(decorateEditors(TextEditor::FontSettings)));
}
void SnippetsSettingsPagePrivate::apply()
@@ -536,6 +543,22 @@ void SnippetsSettingsPagePrivate::setSnippetContent()
}
}
void SnippetsSettingsPagePrivate::decorateEditors(const TextEditor::FontSettings &fontSettings)
{
const QList<ISnippetProvider *> &providers =
ExtensionSystem::PluginManager::instance()->getObjects<ISnippetProvider>();
for (int i = 0; i < m_ui.groupCombo->count(); ++i) {
SnippetEditorWidget *snippetEditor = editorAt(i);
snippetEditor->setFontSettings(fontSettings);
const QString &id = m_ui.groupCombo->itemData(i).toString();
// This list should be quite short... Re-iterating over it is ok.
foreach (const ISnippetProvider *provider, providers) {
if (provider->groupId() == id)
provider->decorateEditor(snippetEditor);
}
}
}
// SnippetsSettingsPage
SnippetsSettingsPage::SnippetsSettingsPage(const QString &id, QObject *parent) :
TextEditorOptionsPage(parent),