From 4e7c07d97abab3a178ca7b1b612828b2ce1c91a5 Mon Sep 17 00:00:00 2001 From: con <qtc-committer@nokia.com> Date: Fri, 8 Oct 2010 16:46:39 +0200 Subject: [PATCH] Add method for default text encoding to editor manager. Moving the logic out of BaseTextDocument for use at other places. --- src/plugins/coreplugin/coreconstants.h | 2 ++ src/plugins/coreplugin/editormanager/editormanager.cpp | 10 ++++++++++ src/plugins/coreplugin/editormanager/editormanager.h | 2 ++ src/plugins/coreplugin/generalsettings.cpp | 4 ++-- src/plugins/texteditor/basetextdocument.cpp | 7 +------ 5 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h index c1fbb3e40f2..af2e8e44b4a 100644 --- a/src/plugins/coreplugin/coreconstants.h +++ b/src/plugins/coreplugin/coreconstants.h @@ -249,6 +249,8 @@ const char * const SETTINGS_CATEGORY_CORE_ICON = ":/core/images/category_core.pn const char * const SETTINGS_TR_CATEGORY_CORE = QT_TRANSLATE_NOOP("Core", "Environment"); const char * const SETTINGS_ID_ENVIRONMENT = "A.General"; +const char * const SETTINGS_DEFAULTTEXTENCODING = "General/DefaultFileEncoding"; + const char * const ALL_FILES_FILTER = QT_TRANSLATE_NOOP("Core", "All Files (*)"); const int TARGET_ICON_SIZE = 32; diff --git a/src/plugins/coreplugin/editormanager/editormanager.cpp b/src/plugins/coreplugin/editormanager/editormanager.cpp index 566d372f224..76912be7727 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.cpp +++ b/src/plugins/coreplugin/editormanager/editormanager.cpp @@ -66,6 +66,7 @@ #include <QtCore/QProcess> #include <QtCore/QSet> #include <QtCore/QSettings> +#include <QtCore/QTextCodec> #include <QtGui/QAction> #include <QtGui/QShortcut> @@ -1984,6 +1985,15 @@ IFile::ReloadSetting EditorManager::reloadSetting() const return m_d->m_reloadSetting; } +QTextCodec *EditorManager::defaultTextEncoding() const +{ + QSettings *settings = Core::ICore::instance()->settings(); + if (QTextCodec *candidate = QTextCodec::codecForName( + settings->value(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray())) + return candidate; + return QTextCodec::codecForLocale(); +} + Core::IEditor *EditorManager::duplicateEditor(Core::IEditor *editor) { if (!editor->duplicateSupported()) diff --git a/src/plugins/coreplugin/editormanager/editormanager.h b/src/plugins/coreplugin/editormanager/editormanager.h index 65a5b1038c0..caab7f0f6cd 100644 --- a/src/plugins/coreplugin/editormanager/editormanager.h +++ b/src/plugins/coreplugin/editormanager/editormanager.h @@ -192,6 +192,8 @@ public: void setReloadSetting(IFile::ReloadSetting behavior); IFile::ReloadSetting reloadSetting() const; + QTextCodec *defaultTextEncoding() const; + // Helper to display a message dialog when encountering a read-only // file, prompting the user about how to make it writeable. enum ReadOnlyAction { RO_Cancel, RO_OpenVCS, RO_MakeWriteable, RO_SaveAs }; diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index 12a719a1e84..94b8e6cd309 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -130,7 +130,7 @@ QWidget *GeneralSettings::createPage(QWidget *parent) QTextCodec *defaultTextCodec = QTextCodec::codecForLocale(); if (QTextCodec *candidate = QTextCodec::codecForName( - settings->value(QLatin1String("General/DefaultFileEncoding")).toByteArray())) + settings->value(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray())) defaultTextCodec = candidate; QList<int> mibs = QTextCodec::availableMibs(); @@ -225,7 +225,7 @@ void GeneralSettings::apply() #endif QSettings* settings = Core::ICore::instance()->settings(); - return settings->setValue(QLatin1String("General/DefaultFileEncoding"), + return settings->setValue(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING), m_codecs.at(m_page->encodingBox->currentIndex())->name()); } diff --git a/src/plugins/texteditor/basetextdocument.cpp b/src/plugins/texteditor/basetextdocument.cpp index 0b799c20dfb..e52a38899c0 100644 --- a/src/plugins/texteditor/basetextdocument.cpp +++ b/src/plugins/texteditor/basetextdocument.cpp @@ -132,12 +132,7 @@ BaseTextDocument::BaseTextDocument() m_lineTerminatorMode = NativeLineTerminator; m_fileIsReadOnly = false; m_isBinaryData = false; - m_codec = QTextCodec::codecForLocale(); - QSettings *settings = Core::ICore::instance()->settings(); - if (QTextCodec *candidate = QTextCodec::codecForName( - settings->value(QLatin1String("General/DefaultFileEncoding")).toByteArray())) - m_codec = candidate; - + m_codec = Core::EditorManager::instance()->defaultTextEncoding(); m_hasDecodingError = false; } -- GitLab