Mercurial > octave
diff libgui/src/qt-interpreter-events.cc @ 32049:1c99c8f020f7
gui: Show encodings available with iconv in file editor preferences.
* liboctave/wrappers/iconv-wrappers.h, liboctave/wrappers/iconv-wrappers.c
(octave_iconvlist_wrapper, octave_iconv_canonicalize_wrapper): Add wrappers for
libiconv functions.
* liboctave/util/oct-string.h, liboctave/util/oct-string.cc
(octave::string::get_encoding_list): Add new function that returns an ordered
list of canonicalized encoding names that are available from libiconv. Use list
of encoding identifiers as fallback on platforms without the required funcions.
* libgui/src/gui-settings.cc, libgui/src/gui-settings.h
(octave::gui_settings::get_codecs): Remove function.
(octave::gui_settings::combo_encoding): Show list of encoding names that are
actually available to the interpreter instead of a list of encodings available
in Qt.
* libgui/src/qt-interpreter-events.cc
(octave::qt_interpreter_events::gui_preference_adjust): Remove logic for mapping
between Qt encoding names and iconv encoding names.
* libgui/src/settings-dialog.cc: Remove unused header.
* m4/acinclude.m4 (OCTAVE_CHECK_ICONVLIST, OCTAVE_CHECK_ICONV_CANONICALIZE):
Add checks for functions from libiconv that are not available on all platforms.
* configure.ac: Call new functions.
author | Markus Mützel <markus.muetzel@gmx.de> |
---|---|
date | Sat, 22 Apr 2023 19:01:35 +0200 |
parents | 8d30584b7525 |
children | 094a296b3ba1 2e484f9f1f18 |
line wrap: on
line diff
--- a/libgui/src/qt-interpreter-events.cc Fri Apr 21 14:49:23 2023 -0400 +++ b/libgui/src/qt-interpreter-events.cc Sat Apr 22 19:01:35 2023 +0200 @@ -718,36 +718,15 @@ QString adjusted_value = value; - // Not all encodings are available. Encodings are uppercase and do - // not use CPxxx but IBMxxx or WINDOWS-xxx. - if (key == ed_default_enc.settings_key ()) { adjusted_value = adjusted_value.toUpper (); - gui_settings settings; - QStringList codecs; - settings.get_codecs (&codecs); - - QRegularExpression re {"^CP(\\d+)$"}; - QRegularExpressionMatch match = re.match (adjusted_value); - if (adjusted_value == "SYSTEM") adjusted_value = QString ("SYSTEM (") + QString (octave_locale_charset_wrapper ()).toUpper () + QString (")"); - else if (match.hasMatch ()) - { - if (codecs.contains ("IBM" + match.captured (1))) - adjusted_value = "IBM" + match.captured (1); - else if (codecs.contains ("WINDOWS-" + match.captured (1))) - adjusted_value = "WINDOWS-" + match.captured (1); - else - adjusted_value.clear (); - } - else if (! codecs.contains (adjusted_value)) - adjusted_value.clear (); } return adjusted_value;