Mercurial > hg > octave-lyh
diff libgui/src/settings-dialog.cc @ 15972:22ab4fe661d7
gui: selectable language in settings dialog
* octave-gui.cc(octave_start_gu): install translators for gui and qt strings
* resource-manager.cc(get_gui_translation_dir): new function returning the
directory of the translator files
* resource-manager.cc(config_translators): new function replacing
find_trnaslator_file and configuring the translators for gui and qt strings
* resource-manager.h: declaration of new function in resource-manager.cc
* settings-dialog.ui: new combo box for selecting the desired language
* settings-dialog.cc(settings_dialog): look for available translator files and
the actual language setting and fill the language combo box
* settings-dialog.cc(write_changed_settings): get the selected element from
the language combo box and write the selection into the settings file
author | Torsten <ttl@justmail.de> |
---|---|
date | Sat, 19 Jan 2013 16:21:55 +0100 |
parents | 85f9aca30c76 |
children | 4bb1b82076e5 |
line wrap: on
line diff
--- a/libgui/src/settings-dialog.cc +++ b/libgui/src/settings-dialog.cc @@ -28,6 +28,8 @@ #include "settings-dialog.h" #include "ui-settings-dialog.h" #include <QSettings> +#include <QDir> +#include <QFileInfo> settings_dialog::settings_dialog (QWidget *p): QDialog (p), ui (new Ui::settings_dialog) @@ -35,9 +37,28 @@ ui->setupUi (this); QSettings *settings = resource_manager::get_settings (); - // FIXME -- what should happen if settings is 0? + // look for available language files and the actual settings + QString qm_dir_name = resource_manager::get_gui_translation_dir (); + QDir qm_dir (qm_dir_name); + QFileInfoList qm_files = qm_dir.entryInfoList (QStringList ("*.qm"), + QDir::Files | QDir::Readable, + QDir::Name); + for (int i = 0; i < qm_files.length (); i++) // insert available languages + ui->comboBox_language->addItem (qm_files.at (i).baseName ()); + ui->comboBox_language->insertItem (0,tr("System setting")); // System at beginning + ui->comboBox_language->insertSeparator (1); // separator after System + QString language = settings->value ("language","SYSTEM").toString (); + if (language == "SYSTEM") + language = tr("System setting"); + int selected = ui->comboBox_language->findText (language); + if (selected >= 0) + ui->comboBox_language->setCurrentIndex (selected); + else + ui->comboBox_language->setCurrentIndex (0); // System is default + + // which icon has to be selected QString widget_icon_set = settings->value ("DockWidgets/widget_icon_set","NONE").toString (); ui->general_icon_octave-> setChecked (true); // the default (if invalid set) @@ -104,15 +125,23 @@ settings_dialog::write_changed_settings () { QSettings *settings = resource_manager::get_settings (); - // FIXME -- what should happen if settings is 0? + // the icon set QString widget_icon_set = "NONE"; if (ui->general_icon_letter->isChecked ()) widget_icon_set = "LETTER"; else if (ui->general_icon_graphic->isChecked ()) widget_icon_set = "GRAPHIC"; settings->setValue ("DockWidgets/widget_icon_set",widget_icon_set); + + // language + QString language = ui->comboBox_language->currentText (); + if (language == tr("System setting")) + language = "SYSTEM"; + settings->setValue ("language", language); + + // other settings settings->setValue ("useCustomFileEditor", ui->useCustomFileEditor->isChecked ()); settings->setValue ("customFileEditor", ui->customFileEditor->text ()); settings->setValue ("editor/showLineNumbers", ui->editor_showLineNumbers->isChecked ()); @@ -138,6 +167,7 @@ settings->setValue ("proxyPassword", ui->proxyPassword->text ()); settings->setValue ("terminal/cursorBlinking", ui->terminal_cursorBlinking->isChecked ()); + // the cursor QString cursorType; switch (ui->terminal_cursorType->currentIndex ()) {