diff --git a/src/plugins/coreplugin/generalsettings.cpp b/src/plugins/coreplugin/generalsettings.cpp index 94b8e6cd309..f3118962868 100644 --- a/src/plugins/coreplugin/generalsettings.cpp +++ b/src/plugins/coreplugin/generalsettings.cpp @@ -45,7 +45,6 @@ #include #include #include -#include #include "ui_generalsettings.h" @@ -128,35 +127,6 @@ QWidget *GeneralSettings::createPage(QWidget *parent) QSettings* settings = Core::ICore::instance()->settings(); fillLanguageBox(); - QTextCodec *defaultTextCodec = QTextCodec::codecForLocale(); - if (QTextCodec *candidate = QTextCodec::codecForName( - settings->value(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray())) - defaultTextCodec = candidate; - - QList mibs = QTextCodec::availableMibs(); - qSort(mibs); - QList sortedMibs; - foreach (int mib, mibs) - if (mib >= 0) - sortedMibs += mib; - foreach (int mib, mibs) - if (mib < 0) - sortedMibs += mib; - int i = 0; - foreach (int mib, sortedMibs) { - QTextCodec *codec = QTextCodec::codecForMib(mib); - m_codecs += codec; - QString name = codec->name(); - foreach (const QByteArray &alias, codec->aliases()) { - name += QLatin1String(" / "); - name += QString::fromLatin1(alias); - } - m_page->encodingBox->addItem(name); - if (defaultTextCodec == codec) - m_page->encodingBox->setCurrentIndex(i); - i++; - } - m_page->colorButton->setColor(StyleHelper::requestedBaseColor()); m_page->externalEditorEdit->setText(EditorManager::instance()->externalEditor()); m_page->reloadBehavior->setCurrentIndex(EditorManager::instance()->reloadSetting()); @@ -223,11 +193,6 @@ void GeneralSettings::apply() Utils::UnixUtils::setFileBrowser(Core::ICore::instance()->settings(), m_page->externalFileBrowserEdit->text()); #endif #endif - - QSettings* settings = Core::ICore::instance()->settings(); - return settings->setValue(QLatin1String(Constants::SETTINGS_DEFAULTTEXTENCODING), - m_codecs.at(m_page->encodingBox->currentIndex())->name()); - } void GeneralSettings::finish() diff --git a/src/plugins/coreplugin/generalsettings.h b/src/plugins/coreplugin/generalsettings.h index 89ea1806142..62b478ec823 100644 --- a/src/plugins/coreplugin/generalsettings.h +++ b/src/plugins/coreplugin/generalsettings.h @@ -82,7 +82,6 @@ private: Ui::GeneralSettings *m_page; QString m_searchKeywords; QPointer m_dialog; - QList m_codecs; }; } // namespace Internal diff --git a/src/plugins/coreplugin/generalsettings.ui b/src/plugins/coreplugin/generalsettings.ui index a44dfdef5a3..6e4f9f9384a 100644 --- a/src/plugins/coreplugin/generalsettings.ui +++ b/src/plugins/coreplugin/generalsettings.ui @@ -104,46 +104,6 @@ - - - - Default file encoding: - - - - - - - - - - 0 - 0 - - - - QComboBox::AdjustToMinimumContentsLengthWithIcon - - - 20 - - - - - - - Qt::Horizontal - - - - 285 - 20 - - - - - - diff --git a/src/plugins/texteditor/behaviorsettingspage.cpp b/src/plugins/texteditor/behaviorsettingspage.cpp index e86d64e1d35..fdf5c8e2eeb 100644 --- a/src/plugins/texteditor/behaviorsettingspage.cpp +++ b/src/plugins/texteditor/behaviorsettingspage.cpp @@ -35,8 +35,10 @@ #include "ui_behaviorsettingspage.h" #include +#include #include +#include #include using namespace TextEditor; @@ -105,6 +107,34 @@ QWidget *BehaviorSettingsPage::createPage(QWidget *parent) << ' ' << m_d->m_page.groupBoxMouse->title(); m_d->m_searchKeywords.remove(QLatin1Char('&')); } + + QSettings *settings = Core::ICore::instance()->settings(); + QTextCodec *defaultTextCodec = QTextCodec::codecForLocale(); + if (QTextCodec *candidate = QTextCodec::codecForName( + settings->value(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING)).toByteArray())) + defaultTextCodec = candidate; + QList mibs = QTextCodec::availableMibs(); + qSort(mibs); + QList sortedMibs; + foreach (int mib, mibs) + if (mib >= 0) + sortedMibs += mib; + foreach (int mib, mibs) + if (mib < 0) + sortedMibs += mib; + for (int i = 0; i < sortedMibs.count(); i++) { + QTextCodec *codec = QTextCodec::codecForMib(sortedMibs.at(i)); + m_codecs += codec; + QString name = codec->name(); + foreach (const QByteArray &alias, codec->aliases()) { + name += QLatin1String(" / "); + name += QString::fromLatin1(alias); + } + m_d->m_page.encodingBox->addItem(name); + if (defaultTextCodec == codec) + m_d->m_page.encodingBox->setCurrentIndex(i); + } + return w; } @@ -142,6 +172,11 @@ void BehaviorSettingsPage::apply() emit behaviorSettingsChanged(newBehaviorSettings); } + + QSettings* settings = Core::ICore::instance()->settings(); + settings->setValue(QLatin1String(Core::Constants::SETTINGS_DEFAULTTEXTENCODING), + m_codecs.at(m_d->m_page.encodingBox->currentIndex())->name()); + } void BehaviorSettingsPage::settingsFromUI(TabSettings &tabSettings, diff --git a/src/plugins/texteditor/behaviorsettingspage.h b/src/plugins/texteditor/behaviorsettingspage.h index b973519ae60..bf765766c1b 100644 --- a/src/plugins/texteditor/behaviorsettingspage.h +++ b/src/plugins/texteditor/behaviorsettingspage.h @@ -79,6 +79,8 @@ private: StorageSettings &storageSettings, BehaviorSettings &behaviorSettings) const; void settingsToUI(); + + QList m_codecs; struct BehaviorSettingsPagePrivate; BehaviorSettingsPagePrivate *m_d; }; diff --git a/src/plugins/texteditor/behaviorsettingspage.ui b/src/plugins/texteditor/behaviorsettingspage.ui index 4ad8962ae4b..4aa89f81d6e 100644 --- a/src/plugins/texteditor/behaviorsettingspage.ui +++ b/src/plugins/texteditor/behaviorsettingspage.ui @@ -10,8 +10,8 @@ 538 - - + + Tabs and Indentation @@ -305,7 +305,7 @@ Influences the indentation of continuation lines. - + Cleanup actions which are automatically performed right before the file is saved to disk. @@ -400,7 +400,7 @@ Influences the indentation of continuation lines. - + Mouse @@ -423,7 +423,7 @@ Influences the indentation of continuation lines. - + Qt::Vertical @@ -436,6 +436,68 @@ Influences the indentation of continuation lines. + + + + File Encodings + + + + + + + + + 0 + 0 + + + + QComboBox::AdjustToMinimumContentsLengthWithIcon + + + 20 + + + + + + + Qt::Horizontal + + + + 285 + 20 + + + + + + + + + + Default encoding: + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + +