diff --git a/src/plugins/coreplugin/coreconstants.h b/src/plugins/coreplugin/coreconstants.h index c1fbb3e40f2e5f894dd7e6f3133ad43d68862956..af2e8e44b4a0a719dc34f713d0317184d5dad340 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 566d372f224a79e8ae874165e6e00537d3749889..76912be772794e73d1eb799599741147b45ae380 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 65a5b1038c0decfbac21997397cb3c46de6ae7ce..caab7f0f6cd165f995f47e823a72080c46a3827d 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 12a719a1e84d4f8510cc35e3075a700f6f4ea8d9..94b8e6cd30994c3612bf1c916326f518e3680a5e 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 0b799c20dfb9c42ec48bdb5c2828ce54fd1058e5..e52a38899c038335e8964aca2f0c264e693b0560 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; }