# HG changeset patch # User Torsten # Date 1448475251 -3600 # Node ID 7d6f385419020d6f243edb5517eaeebb15db3e85 # Parent c5e8863858b476499f2b5fe23e66eefaa9221813 default encoding for editor on non windows systems is utf-8 (bug #45597) * file-editor-tab.cc (load_file, save_file): default encoding is SYSTEM on on windows and UTF-8 otherwise * settings-dialog.cc (write_changed_settings): write current text from combo box into settings file without further checking for system; (init_combo_encoding): default is SYSTEM on windows and UTF-8 otherwise when reading from settings file, defaults are prepended to the top of the combo box diff -r c5e8863858b4 -r 7d6f38541902 libgui/src/m-editor/file-editor-tab.cc --- a/libgui/src/m-editor/file-editor-tab.cc Wed Nov 25 08:47:26 2015 -0800 +++ b/libgui/src/m-editor/file-editor-tab.cc Wed Nov 25 19:14:11 2015 +0100 @@ -1359,8 +1359,13 @@ QTextStream in (&file); // set the desired codec QSettings *settings = resource_manager::get_settings (); +#if defined (Q_OS_WIN32) QString encoding = settings->value ("editor/default_encoding","SYSTEM") .toString (); +#else + QString encoding = settings->value ("editor/default_encoding","UTF-8") + .toString (); +#endif QTextCodec *codec = QTextCodec::codecForName (encoding.toAscii ()); in.setCodec(codec); @@ -1520,8 +1525,13 @@ // set the desired codec QSettings *settings = resource_manager::get_settings (); +#if defined (Q_OS_WIN32) QString encoding = settings->value ("editor/default_encoding","SYSTEM") .toString (); +#else + QString encoding = settings->value ("editor/default_encoding","UTF-8") + .toString (); +#endif QTextCodec *codec = QTextCodec::codecForName (encoding.toAscii ()); out.setCodec(codec); diff -r c5e8863858b4 -r 7d6f38541902 libgui/src/settings-dialog.cc --- a/libgui/src/settings-dialog.cc Wed Nov 25 08:47:26 2015 -0800 +++ b/libgui/src/settings-dialog.cc Wed Nov 25 19:14:11 2015 +0100 @@ -803,10 +803,8 @@ ui->cb_show_hscrollbar->isChecked ()); settings->setValue ("editor/default_eol_mode", ui->combo_eol_mode->currentIndex ()); - QString encoding = ui->editor_combo_encoding->currentText (); - if (encoding == tr ("System default")) - encoding = "SYSTEM"; - settings->setValue ("editor/default_encoding", encoding); + settings->setValue ("editor/default_encoding", + ui->editor_combo_encoding->currentText ()); settings->setValue ("editor/auto_indent", ui->editor_auto_ind_checkbox->isChecked ()); settings->setValue ("editor/tab_indents_line", @@ -1038,26 +1036,25 @@ } all_codecs.removeDuplicates (); - // remove the "system" entry - int idx = all_codecs.indexOf ("SYSTEM"); - if (idx >= 0) - all_codecs.removeAt (idx); - // sort and prepend meaningfull text for system's default codec +#if defined (Q_OS_WIN32) + QString def_enc = "SYSTEM"; +#else + QString def_enc = "UTF-8"; +#endif qSort (all_codecs); - all_codecs.prepend (tr ("System default")); + ui->editor_combo_encoding->insertSeparator (0); + ui->editor_combo_encoding->insertItem (0, def_enc); // get the value from the settings file (system is default) - QString encoding = settings->value ("editor/default_encoding","SYSTEM") + QString encoding = settings->value ("editor/default_encoding",def_enc) .toString (); - if (encoding == "SYSTEM") - encoding = tr ("System default"); // fill the combo box and select the current item or system if // current item from the settings file can not be found foreach (QString c, all_codecs) ui->editor_combo_encoding->addItem (c); - idx = ui->editor_combo_encoding->findText (encoding); + int idx = ui->editor_combo_encoding->findText (encoding); if (idx >= 0) ui->editor_combo_encoding->setCurrentIndex (idx); else