From ab9f138ab43650a7c494442a3b30febbbed6e32d Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Thu, 28 Oct 2010 19:26:20 +0200 Subject: [PATCH] move default encoding setting to text editor/behavior --- src/plugins/coreplugin/generalsettings.cpp | 35 --------- src/plugins/coreplugin/generalsettings.h | 1 - src/plugins/coreplugin/generalsettings.ui | 40 ----------- .../texteditor/behaviorsettingspage.cpp | 35 +++++++++ src/plugins/texteditor/behaviorsettingspage.h | 2 + .../texteditor/behaviorsettingspage.ui | 72 +++++++++++++++++-- 6 files changed, 104 insertions(+), 81 deletions(-) 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 <QtCore/QDir> #include <QtCore/QLibraryInfo> #include <QtCore/QSettings> -#include <QtCore/QTextCodec> #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<int> mibs = QTextCodec::availableMibs(); - qSort(mibs); - QList<int> 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<QMessageBox> m_dialog; - QList<QTextCodec *> 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 @@ </item> </layout> </item> - <item row="3" column="0"> - <widget class="QLabel" name="encodingLabel"> - <property name="text"> - <string>Default file encoding: </string> - </property> - </widget> - </item> - <item row="3" column="1"> - <layout class="QHBoxLayout" name="horizontalLayout_6"> - <item> - <widget class="QComboBox" name="encodingBox"> - <property name="sizePolicy"> - <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> - <horstretch>0</horstretch> - <verstretch>0</verstretch> - </sizepolicy> - </property> - <property name="sizeAdjustPolicy"> - <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> - </property> - <property name="minimumContentsLength"> - <number>20</number> - </property> - </widget> - </item> - <item> - <spacer name="horizontalSpacer_6"> - <property name="orientation"> - <enum>Qt::Horizontal</enum> - </property> - <property name="sizeHint" stdset="0"> - <size> - <width>285</width> - <height>20</height> - </size> - </property> - </spacer> - </item> - </layout> - </item> <item row="2" column="0"> <widget class="QLabel" name="languageLabel"> <property name="text"> 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 <coreplugin/icore.h> +#include <coreplugin/coreconstants.h> #include <QtCore/QSettings> +#include <QtCore/QTextCodec> #include <QtCore/QTextStream> 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<int> mibs = QTextCodec::availableMibs(); + qSort(mibs); + QList<int> 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<QTextCodec *> 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 @@ <height>538</height> </rect> </property> - <layout class="QVBoxLayout" name="verticalLayout"> - <item> + <layout class="QGridLayout" name="gridLayout_3"> + <item row="0" column="0" colspan="2"> <widget class="QGroupBox" name="groupBoxTabAndIndentSettings"> <property name="title"> <string>Tabs and Indentation</string> @@ -305,7 +305,7 @@ Influences the indentation of continuation lines. </layout> </widget> </item> - <item> + <item row="1" column="0"> <widget class="QGroupBox" name="groupBoxStorageSettings"> <property name="toolTip"> <string>Cleanup actions which are automatically performed right before the file is saved to disk.</string> @@ -400,7 +400,7 @@ Influences the indentation of continuation lines. </layout> </widget> </item> - <item> + <item row="2" column="0" colspan="2"> <widget class="QGroupBox" name="groupBoxMouse"> <property name="title"> <string>Mouse</string> @@ -423,7 +423,7 @@ Influences the indentation of continuation lines. </layout> </widget> </item> - <item> + <item row="3" column="0"> <spacer name="verticalSpacer"> <property name="orientation"> <enum>Qt::Vertical</enum> @@ -436,6 +436,68 @@ Influences the indentation of continuation lines. </property> </spacer> </item> + <item row="1" column="1"> + <widget class="QGroupBox" name="groupBox"> + <property name="title"> + <string>File Encodings</string> + </property> + <layout class="QGridLayout" name="gridLayout_4"> + <item row="0" column="1"> + <layout class="QHBoxLayout" name="horizontalLayout_6"> + <item> + <widget class="QComboBox" name="encodingBox"> + <property name="sizePolicy"> + <sizepolicy hsizetype="Preferred" vsizetype="Fixed"> + <horstretch>0</horstretch> + <verstretch>0</verstretch> + </sizepolicy> + </property> + <property name="sizeAdjustPolicy"> + <enum>QComboBox::AdjustToMinimumContentsLengthWithIcon</enum> + </property> + <property name="minimumContentsLength"> + <number>20</number> + </property> + </widget> + </item> + <item> + <spacer name="horizontalSpacer_6"> + <property name="orientation"> + <enum>Qt::Horizontal</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>285</width> + <height>20</height> + </size> + </property> + </spacer> + </item> + </layout> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="encodingLabel"> + <property name="text"> + <string>Default encoding: </string> + </property> + </widget> + </item> + <item row="1" column="0" colspan="2"> + <spacer name="verticalSpacer_2"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + </item> </layout> </widget> <tabstops> -- GitLab