Mercurial > octave
annotate libgui/src/resource-manager.cc @ 31619:ad014fc78bd6
use individual local gui_settings objects
Previously, we created a single gui_settings object (derived from
QSettings) and accessed it from the resource_manager object. That
design is not necessary and is not the way QSettings was designed to
be used. Instead of managing a single object, we should be using
individual QSettings objects where needed. Each individual QSettings
object manages thread-safe access to a single global collection of
settings. The Qt docs say that operations on QSettings are not thread
safe, but that means that you can't create a QSettings object in one
thread and use it in another without some locking. I'm not sure
whether we were doing that correctly, but with this change it no
longer matters. Each QSettings object does perform locking when
reading or writing the underlying global data.
* resource-manager.h, resource-manager.cc
(resource_manager::m_settings): Delete data member.
(resource_manager::get_settings): Delete.
* annotation-dialog.cc, QTerminal.cc, QTerminal.h, command-widget.cc,
command-widget.h, community-news.cc, dialog.cc,
documentation-bookmarks.cc, documentation-bookmarks.h,
documentation-dock-widget.cc, documentation-dock-widget.h,
documentation.cc, documentation.h, dw-main-window.cc,
dw-main-window.h, external-editor-interface.cc, files-dock-widget.cc,
files-dock-widget.h, find-files-dialog.cc, history-dock-widget.cc,
history-dock-widget.h, file-editor-interface.h, file-editor-tab.cc,
file-editor-tab.h, file-editor.cc, file-editor.h, find-dialog.cc,
octave-qscintilla.cc, main-window.cc, main-window.h, news-reader.cc,
octave-dock-widget.cc, octave-dock-widget.h, qt-interpreter-events.cc,
qt-interpreter-events.h, release-notes.cc, resource-manager.cc,
resource-manager.h, set-path-dialog.cc, settings-dialog.cc,
settings-dialog.h, shortcut-manager.cc, shortcut-manager.h,
terminal-dock-widget.cc, terminal-dock-widget.h, variable-editor.cc,
variable-editor.h, welcome-wizard.cc, workspace-model.cc,
workspace-model.h, workspace-view.cc: Use local gui_settings objects
instead of accessing a pointer to a single gui_settings object owned
by the resource_manager object.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 02 Dec 2022 14:23:53 -0500 |
parents | 1f57ea5dfd4a |
children | 6dfaaf8ecf3b |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
30564
796f54d4ddbf
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
30398
diff
changeset
|
3 // Copyright (C) 2011-2022 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
25 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21568
diff
changeset
|
26 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
27 # include "config.h" |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
28 #endif |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
29 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
30 #include <unistd.h> |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
31 |
28836
d0a64e67749e
avoid deprecated qSort function
John W. Eaton <jwe@octave.org>
parents:
28777
diff
changeset
|
32 #include <algorithm> |
28447
7de12a40e87b
resource-manager.cc: Include missing header (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28422
diff
changeset
|
33 #include <array> |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
34 #include <string> |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
35 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
36 #include <QDir> |
13570
7828e1bf5b0d
Default settings are now loaded it there is no user-defined settings.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13551
diff
changeset
|
37 #include <QFile> |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
38 #include <QFontComboBox> |
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
39 #include <QFontDatabase> |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
40 #include <QLibraryInfo> |
17943
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
41 #include <QMessageBox> |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
42 #include <QNetworkProxy> |
30877
2bb539746697
consider env variables for location of temp files (bug #62215)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30810
diff
changeset
|
43 #include <QStandardPaths> |
27841
f68c7c56e5f2
add missing include (bug #57420)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27805
diff
changeset
|
44 |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
45 #include <QTextCodec> |
14845
9a355dfc7701
Fixed bug with GUI not starting the first time.
Jacob Dawid <jacob.dawid@gmail.com>
parents:
14804
diff
changeset
|
46 |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
47 #include "QTerminal.h" |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
48 #include "gui-preferences-cs.h" |
27560
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27556
diff
changeset
|
49 #include "gui-preferences-ed.h" |
3fcc650de22f
split gui-preferences.h into one file per widget
John W. Eaton <jwe@octave.org>
parents:
27556
diff
changeset
|
50 #include "gui-preferences-global.h" |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
51 #include "octave-qobject.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
52 #include "resource-manager.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
53 #include "variable-editor.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
54 #include "workspace-model.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
55 |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
56 #include "file-ops.h" |
28118
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
57 #include "localcharset-wrapper.h" |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
58 #include "oct-env.h" |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
59 |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
60 #include "defaults.h" |
27412
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
61 #include "error.h" |
da1f59fe04b3
try to use consitent ordering for include files in libgui sources
John W. Eaton <jwe@octave.org>
parents:
27276
diff
changeset
|
62 #include "help.h" |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
63 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
64 namespace octave |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
65 { |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
66 resource_manager::resource_manager (void) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
67 : m_settings_directory (), m_settings_file (), |
31616
726d2628752c
eliminate unused default_settings variable from resource manager
John W. Eaton <jwe@octave.org>
parents:
31615
diff
changeset
|
68 m_temporary_files (), m_icon_fallbacks () |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
69 { |
31614
59c9da7c43d6
set Qt organization, application, and version in main program
John W. Eaton <jwe@octave.org>
parents:
31609
diff
changeset
|
70 // Location, name, and format of settings file determined by |
59c9da7c43d6
set Qt organization, application, and version in main program
John W. Eaton <jwe@octave.org>
parents:
31609
diff
changeset
|
71 // settings in qt_application class construtor. |
59c9da7c43d6
set Qt organization, application, and version in main program
John W. Eaton <jwe@octave.org>
parents:
31609
diff
changeset
|
72 |
31617
1f57ea5dfd4a
don't allow settings file name to be changed
John W. Eaton <jwe@octave.org>
parents:
31616
diff
changeset
|
73 check_settings (); |
1f57ea5dfd4a
don't allow settings file name to be changed
John W. Eaton <jwe@octave.org>
parents:
31616
diff
changeset
|
74 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
75 m_settings_file = settings.fileName (); |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
76 |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
77 QFileInfo sfile (m_settings_file); |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
78 m_settings_directory = sfile.absolutePath (); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
79 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
80 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
81 resource_manager::~resource_manager (void) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
82 { |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
83 for (int i = m_temporary_files.count () - 1; i >=0; i--) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
84 remove_tmp_file (m_temporary_files.at (i)); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
85 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
86 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
87 QString resource_manager::get_gui_translation_dir (void) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
88 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
89 // get environment variable for the locale dir (e.g. from run-octave) |
25336
389757b7b6af
eliminate redundant octave:: namespace tags
John W. Eaton <jwe@octave.org>
parents:
25054
diff
changeset
|
90 std::string dldir = sys::env::getenv ("OCTAVE_LOCALE_DIR"); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
91 if (dldir.empty ()) |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
92 dldir = config::oct_locale_dir (); // env-var empty, load the default location |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
93 return QString::fromStdString (dldir); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
94 } |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
95 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
96 void resource_manager::config_translators (QTranslator *qt_tr, |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
97 QTranslator *qsci_tr, |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
98 QTranslator *gui_tr) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
99 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
100 bool loaded; |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
101 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
102 QString qt_trans_dir |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
103 = QLibraryInfo::location (QLibraryInfo::TranslationsPath); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
104 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
105 QString language = "SYSTEM"; // take system language per default |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
106 |
27649
91d43a00620d
eliminate static instance variable from octave_qobject class
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
107 // FIXME: can we somehow ensure that the settings object will always |
91d43a00620d
eliminate static instance variable from octave_qobject class
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
108 // be initialize and valid? |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
109 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
110 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
111 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
112 // get the locale from the settings if already available |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
113 language = settings.value (global_language.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
114 global_language.def).toString (); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
115 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
116 // load the translations depending on the settings |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
117 if (language == "SYSTEM") |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
118 { |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
119 // get the system locale and pass it to the translators for loading |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
120 // the suitable translation files |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
121 QLocale sys_locale = QLocale::system (); |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
122 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
123 qt_tr->load (sys_locale, "qt", "_", qt_trans_dir); |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
124 qsci_tr->load (sys_locale, "qscintilla", "_", qt_trans_dir); |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
125 gui_tr->load (sys_locale, "", "", get_gui_translation_dir ()); |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
126 } |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
127 else |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
128 { |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
129 // load the translation files depending on the given locale name |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
130 loaded = qt_tr->load ("qt_" + language, qt_trans_dir); |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
131 if (! loaded) // try lower case |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
132 qt_tr->load ("qt_" + language.toLower (), qt_trans_dir); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23927
diff
changeset
|
133 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
134 loaded = qsci_tr->load ("qscintilla_" + language, qt_trans_dir); |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
135 if (! loaded) // try lower case |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
136 qsci_tr->load ("qscintilla_" + language.toLower (), qt_trans_dir); |
24014
bffd7d826887
style fixes for some GUI source files
John W. Eaton <jwe@octave.org>
parents:
23927
diff
changeset
|
137 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
138 gui_tr->load (language, get_gui_translation_dir ()); |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
139 } |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
140 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
141 } |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
142 |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
143 void resource_manager::config_icon_theme (void) |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
144 { |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
145 m_icon_fallbacks.clear (); |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
146 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
147 int theme = global_icon_theme_index.def.toInt (); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
148 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
149 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
150 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
151 // check for new and old setting and use old if required |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
152 if (! settings.contains (global_icon_theme_index.key)) |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
153 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
154 // new pref does not exist |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
155 if (settings.value (global_icon_theme).toBool ()) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
156 theme = ICON_THEME_SYSTEM; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
157 else |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
158 theme = ICON_THEME_OCTAVE; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
159 settings.setValue (global_icon_theme_index.key, theme); // add new |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
160 settings.remove (global_icon_theme.key); // remove deprecated key |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
161 } |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
162 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
163 QIcon::setThemeName (global_all_icon_themes.at (theme)); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
164 |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
165 // set the required fallback search paths |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
166 switch (theme) |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
167 { |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
168 case ICON_THEME_SYSTEM: |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
169 m_icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
170 m_icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
171 break; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
172 case ICON_THEME_TANGO: |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
173 m_icon_fallbacks << global_icon_paths.at (ICON_THEME_OCTAVE); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
174 break; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
175 case ICON_THEME_OCTAVE: |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
176 m_icon_fallbacks << global_icon_paths.at (ICON_THEME_TANGO); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
177 break; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
178 } |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
179 |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
180 m_icon_fallbacks << global_icon_paths.at (ICON_THEME_CURSORS); |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
181 } |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
182 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
183 QString resource_manager::get_settings_directory (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
184 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
185 return m_settings_directory; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
186 } |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
187 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
188 QString resource_manager::get_settings_file (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
189 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
190 return m_settings_file; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
191 } |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
192 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
193 QString resource_manager::get_default_font_family (void) |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
194 { |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
195 QString default_family; |
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
196 |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
197 // Get all available fixed width fonts via a font combobox |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
198 QFontComboBox font_combo_box; |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
199 font_combo_box.setFontFilters (QFontComboBox::MonospacedFonts); |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
200 QStringList fonts; |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
201 |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
202 for (int index = 0; index < font_combo_box.count(); index++) |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
203 fonts << font_combo_box.itemText(index); |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
204 |
29522
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
205 #if defined (Q_OS_MAC) |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
206 // Use hard coded default on macOS, since selection of fixed width |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
207 // default font is unreliable (see bug #59128). |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
208 // Test for macOS default fixed width font |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
209 if (fonts.contains (global_mono_font.def.toString ())) |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
210 default_family = global_mono_font.def.toString (); |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
211 #endif |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
212 |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
213 // If default font is still empty (on all other platforms or |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
214 // if macOS default font is not available): use QFontDatabase |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
215 if (default_family.isEmpty ()) |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
216 { |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
217 // Get the system's default monospaced font |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
218 QFont fixed_font = QFontDatabase::systemFont (QFontDatabase::FixedFont); |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
219 default_family = fixed_font.defaultFamily (); |
29522
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
220 |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
221 // Since this might be unreliable, test all available fixed width fonts |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
222 if (! fonts.contains (default_family)) |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
223 { |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
224 // Font returned by QFontDatabase is not in fixed fonts list. |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
225 // Fallback: take first from this list |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
226 default_family = fonts[0]; |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
227 } |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
228 } |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
229 |
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
230 // Test env variable which has preference |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
231 std::string env_default_family = sys::env::getenv ("OCTAVE_DEFAULT_FONT"); |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
232 if (! env_default_family.empty ()) |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
233 default_family = QString::fromStdString (env_default_family); |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
234 |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
235 return default_family; |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
236 } |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
237 |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
238 QStringList resource_manager::get_default_font (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
239 { |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
240 QString default_family = get_default_font_family (); |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
241 |
29270
6570a35920c4
improve detection of systems font size at first startup (bug #59829)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29162
diff
changeset
|
242 // determine the fefault font size of the system |
6570a35920c4
improve detection of systems font size at first startup (bug #59829)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29162
diff
changeset
|
243 // FIXME: QApplication::font () does not return the monospace font, |
6570a35920c4
improve detection of systems font size at first startup (bug #59829)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29162
diff
changeset
|
244 // but the size should be probably near to the monospace font |
6570a35920c4
improve detection of systems font size at first startup (bug #59829)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29162
diff
changeset
|
245 QFont font = QApplication::font (); |
6570a35920c4
improve detection of systems font size at first startup (bug #59829)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29162
diff
changeset
|
246 |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
247 int font_size = font.pointSize (); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
248 if (font_size == -1) |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
249 font_size = static_cast <int> (std::floor(font.pointSizeF ())); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
250 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
251 // check for valid font size, otherwise take default 10 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
252 QString default_font_size = "10"; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
253 if (font_size > 0) |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
254 default_font_size = QString::number (font_size); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
255 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
256 std::string env_default_font_size |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
257 = sys::env::getenv ("OCTAVE_DEFAULT_FONT_SIZE"); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
258 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
259 if (! env_default_font_size.empty ()) |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
260 default_font_size = QString::fromStdString (env_default_font_size); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
261 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
262 QStringList result; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
263 result << default_family; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
264 result << default_font_size; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
265 return result; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
266 } |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
267 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
268 void resource_manager::reload_settings (void) |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
269 { |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
270 // Declare some empty options, which may be set at first startup for |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
271 // writing them into the newly created settings file |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
272 QString custom_editor; |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
273 QStringList def_font; |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
274 |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
275 // Check whether the settings file does not yet exist |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
276 if (! QFile::exists (m_settings_file)) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
277 { |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
278 // Get the default font (for terminal) |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
279 def_font = get_default_font (); |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
280 |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
281 // Get a custom editor defined as env variable |
25821
bd473c0cc34b
allow default font, size, and external editor to be set from environment
John W. Eaton <jwe@octave.org>
parents:
25702
diff
changeset
|
282 std::string env_default_editor |
bd473c0cc34b
allow default font, size, and external editor to be set from environment
John W. Eaton <jwe@octave.org>
parents:
25702
diff
changeset
|
283 = sys::env::getenv ("OCTAVE_DEFAULT_EDITOR"); |
bd473c0cc34b
allow default font, size, and external editor to be set from environment
John W. Eaton <jwe@octave.org>
parents:
25702
diff
changeset
|
284 |
bd473c0cc34b
allow default font, size, and external editor to be set from environment
John W. Eaton <jwe@octave.org>
parents:
25702
diff
changeset
|
285 if (! env_default_editor.empty ()) |
bd473c0cc34b
allow default font, size, and external editor to be set from environment
John W. Eaton <jwe@octave.org>
parents:
25702
diff
changeset
|
286 custom_editor = QString::fromStdString (env_default_editor); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
287 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
288 |
31617
1f57ea5dfd4a
don't allow settings file name to be changed
John W. Eaton <jwe@octave.org>
parents:
31616
diff
changeset
|
289 check_settings (); |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
290 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
291 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
292 |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
293 // Write some settings that were dynamically determined at first startup |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
294 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
295 // Custom editor |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
296 if (! custom_editor.isEmpty ()) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
297 settings.setValue (global_custom_editor.key, custom_editor); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
298 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
299 // Default monospace font for the terminal |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
300 if (def_font.count () > 1) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
301 { |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
302 settings.setValue (cs_font.key, def_font[0]); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
303 settings.setValue (cs_font_size.key, def_font[1].toInt ()); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
304 } |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
305 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
306 // Write the default monospace font into the settings for later use by |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
307 // console and editor as fallbacks of their font preferences. |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
308 settings.setValue (global_mono_font.key, get_default_font_family ()); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
309 } |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
310 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
311 #if defined (HAVE_QSCINTILLA) |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
312 int resource_manager::get_valid_lexer_styles (QsciLexer *lexer, int *styles) |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
313 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
314 int max_style = 0; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
315 int actual_style = 0; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
316 while (actual_style < ed_max_style_number && max_style < ed_max_lexer_styles) |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
317 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
318 if ((lexer->description (actual_style)) != "") // valid style |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
319 styles[max_style++] = actual_style; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
320 actual_style++; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
321 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
322 return max_style; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
323 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
324 #endif |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
325 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
326 QFont resource_manager::copy_font_attributes (const QFont& attr, |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
327 const QFont& base) const |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
328 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
329 QFont dest (base); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
330 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
331 dest.setBold (attr.bold ()); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
332 dest.setItalic (attr.italic ()); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
333 dest.setUnderline (attr.underline ()); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
334 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
335 return dest; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
336 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
337 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
338 #if defined (HAVE_QSCINTILLA) |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
339 void resource_manager::read_lexer_settings (QsciLexer *lexer, |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
340 int mode, int def) |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
341 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
342 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
343 |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
344 // Test whether the settings for lexer is already contained in the |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
345 // given gui settings file. If yes, load them, if not copy them from the |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
346 // default settings file. |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
347 // This is useful when a new language support is implemented and the |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
348 // existing settings file is used (which is of course the common case). |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
349 int m = mode; |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
350 if (m > 1) |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
351 m = 1; |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
352 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
353 QString group ("Scintilla" + settings_color_modes_ext[m]); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
354 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
355 settings.beginGroup (group); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
356 settings.beginGroup (lexer->language ()); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
357 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
358 QStringList lexer_keys = settings.allKeys (); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
359 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
360 settings.endGroup (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
361 settings.endGroup (); |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
362 |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
363 if (def == settings_reload_default_colors_flag || lexer_keys.count () == 0) |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
364 { |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
365 // We have to reload the default values or no Lexer keys found: |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
366 // If mode == 0, take all settings except font from default lexer |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
367 // If Mode == 1, take all settings except font from default lexer |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
368 // and convert the color by inverting the lightness |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
369 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
370 // Get the default font |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
371 QStringList def_font = get_default_font (); |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
372 QFont df (def_font[0], def_font[1].toInt ()); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
373 QFont dfa = copy_font_attributes (lexer->defaultFont (), df); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
374 lexer->setDefaultFont (dfa); |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
375 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
376 QColor c, p; |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
377 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
378 int styles[ed_max_lexer_styles]; // array for saving valid styles |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
379 int max_style = get_valid_lexer_styles (lexer, styles); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
380 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
381 for (int i = 0; i < max_style; i++) |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
382 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
383 c = settings.get_color_value (QVariant (lexer->color (styles[i])), m); |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
384 lexer->setColor (c, styles[i]); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
385 p = settings.get_color_value (QVariant (lexer->paper (styles[i])), m); |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
386 lexer->setPaper (p, styles[i]); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
387 dfa = copy_font_attributes (lexer->font (styles[i]), df); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
388 lexer->setFont (dfa, styles[i]); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
389 } |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
390 // Set defaults last for not changing the defaults of the styles |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
391 lexer->setDefaultColor (lexer->color (styles[0])); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
392 lexer->setDefaultPaper (lexer->paper (styles[0])); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
393 |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
394 // Write settings if not just reload the default values |
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
395 if (def != settings_reload_default_colors_flag) |
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
396 { |
29608
dc171e0452cf
libgui: Avoid dangling reference with QString::toStdString.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29524
diff
changeset
|
397 const std::string group_str = group.toStdString (); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
398 lexer->writeSettings (settings, group_str.c_str ()); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
399 settings.sync (); |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
400 } |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
401 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
402 else |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
403 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
404 // Found lexer keys, read the settings |
29608
dc171e0452cf
libgui: Avoid dangling reference with QString::toStdString.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29524
diff
changeset
|
405 const std::string group_str = group.toStdString (); |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
406 lexer->readSettings (settings, group_str.c_str ()); |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
407 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
408 } |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
409 #endif |
14804
a565c560e654
Replaced a lot of terminal interaction with events: Clearing, loading and saving workspace, running a file. Default location for saving a new file is now the current working directory. Fixed bad settings with a fresh installation of the GUI by providing a file with default settings and installing it when appropriate.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
14712
diff
changeset
|
410 |
31617
1f57ea5dfd4a
don't allow settings file name to be changed
John W. Eaton <jwe@octave.org>
parents:
31616
diff
changeset
|
411 void resource_manager::check_settings (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
412 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
413 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
414 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
415 if (settings.status () == QSettings::NoError) |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
416 { |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
417 // Test usability (force file to be really created) |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
418 settings.setValue ("dummy", 0); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
419 settings.sync (); |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
420 } |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
421 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
422 if (! (QFile::exists (settings.fileName ()) |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
423 && settings.isWritable () |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
424 && settings.status () == QSettings::NoError)) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
425 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
426 QString msg |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
427 = QString (QT_TR_NOOP ("The settings file\n%1\n" |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
428 "does not exist and can not be created.\n" |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
429 "Make sure you have read and write permissions to\n%2\n\n" |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
430 "Octave GUI must be closed now.")); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
431 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
432 QMessageBox::critical (nullptr, |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
433 QString (QT_TR_NOOP ("Octave Critical Error")), |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
434 msg.arg (get_settings_file ()).arg (get_settings_directory ())); |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
435 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
436 exit (1); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
437 } |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
438 else |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
439 settings.remove ("dummy"); // Remove test entry |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
440 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
441 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
442 bool resource_manager::update_settings_key (const QString& old_key, |
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
443 const QString& new_key) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
444 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
445 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
446 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
447 if (settings.contains (old_key)) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
448 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
449 QVariant preference = settings.value (old_key); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
450 settings.setValue (new_key, preference); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
451 settings.remove (old_key); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
452 return true; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
453 } |
24282
a669809df612
update wrong setting keys accidentally introduced into the settings file
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
454 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
455 return false; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
456 } |
24282
a669809df612
update wrong setting keys accidentally introduced into the settings file
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
457 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
458 bool resource_manager::is_first_run (void) const |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
459 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
460 return ! QFile::exists (m_settings_file); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
461 } |
13668
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
462 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
463 void resource_manager::update_network_settings (void) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
464 { |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
465 QNetworkProxy proxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
466 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
467 // Assume no proxy and empty proxy data |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
468 QNetworkProxy::ProxyType proxy_type = QNetworkProxy::NoProxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
469 QString scheme; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
470 QString host; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
471 int port = 0; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
472 QString user; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
473 QString pass; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
474 QUrl proxy_url = QUrl (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
475 |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
476 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
477 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
478 if (settings.value (global_use_proxy.key, global_use_proxy.def).toBool ()) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
479 { |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
480 // Use a proxy, collect all required information |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
481 QString proxy_type_string |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
482 = settings.value (global_proxy_type.key, global_proxy_type.def).toString (); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
483 |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
484 // The proxy type for the Qt proxy settings |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
485 if (proxy_type_string == "Socks5Proxy") |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
486 proxy_type = QNetworkProxy::Socks5Proxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
487 else if (proxy_type_string == "HttpProxy") |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
488 proxy_type = QNetworkProxy::HttpProxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
489 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
490 // The proxy data from the settings |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
491 if (proxy_type_string == "HttpProxy" |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
492 || proxy_type_string == "Socks5Proxy") |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
493 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
494 host = settings.value (global_proxy_host.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
495 global_proxy_host.def).toString (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
496 port = settings.value (global_proxy_port.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
497 global_proxy_port.def).toInt (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
498 user = settings.value (global_proxy_user.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
499 global_proxy_user.def).toString (); |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
500 pass = settings.value (global_proxy_pass.key, |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
501 global_proxy_pass.def).toString (); |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
502 if (proxy_type_string == "HttpProxy") |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
503 scheme = "http"; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
504 else if (proxy_type_string == "Socks5Proxy") |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
505 scheme = "socks5"; |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
506 |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
507 QUrl env_var_url = QUrl (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
508 proxy_url.setScheme (scheme); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
509 proxy_url.setHost (host); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
510 proxy_url.setPort (port); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
511 if (! user.isEmpty ()) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
512 proxy_url.setUserName (user); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
513 if (! pass.isEmpty ()) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
514 proxy_url.setPassword (pass); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
515 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
516 |
28422
02a5da73a157
Use std::array rather than std::vector in patch for (bug #54334).
Rik <rik@octave.org>
parents:
28421
diff
changeset
|
517 // The proxy data from environment variables |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
518 if (proxy_type_string == global_proxy_all_types.at (2)) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
519 { |
28422
02a5da73a157
Use std::array rather than std::vector in patch for (bug #54334).
Rik <rik@octave.org>
parents:
28421
diff
changeset
|
520 const std::array<std::string, 6> env_vars = |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
521 { |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
522 "ALL_PROXY", "all_proxy", |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
523 "HTTP_PROXY", "http_proxy", |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
524 "HTTPS_PROXY", "https_proxy" |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
525 }; |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
526 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
527 unsigned int count = 0; |
28422
02a5da73a157
Use std::array rather than std::vector in patch for (bug #54334).
Rik <rik@octave.org>
parents:
28421
diff
changeset
|
528 while (! proxy_url.isValid () && count < env_vars.size ()) |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
529 { |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
530 proxy_url = QUrl (QString::fromStdString |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
531 (sys::env::getenv (env_vars[count]))); |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
532 count++; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
533 } |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
534 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
535 if (proxy_url.isValid ()) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
536 { |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
537 // Found an entry, get the data from the string |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
538 scheme = proxy_url.scheme (); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
539 |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
540 if (scheme.contains ("socks", Qt::CaseInsensitive)) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
541 proxy_type = QNetworkProxy::Socks5Proxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
542 else |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
543 proxy_type = QNetworkProxy::HttpProxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
544 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
545 host = proxy_url.host (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
546 port = proxy_url.port (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
547 user = proxy_url.userName (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
548 pass = proxy_url.password (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
549 } |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
550 } |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
551 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
552 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
553 // Set proxy for Qt framework |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
554 proxy.setType (proxy_type); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
555 proxy.setHostName (host); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
556 proxy.setPort (port); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
557 proxy.setUser (user); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
558 proxy.setPassword (pass); |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
559 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
560 QNetworkProxy::setApplicationProxy (proxy); |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
561 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
562 // Set proxy for curl library if not based on environment variables |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
563 std::string proxy_url_str = proxy_url.toString().toStdString (); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
564 sys::env::putenv ("http_proxy", proxy_url_str); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
565 sys::env::putenv ("HTTP_PROXY", proxy_url_str); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
566 sys::env::putenv ("https_proxy", proxy_url_str); |
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
567 sys::env::putenv ("HTTPS_PROXY", proxy_url_str); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
568 } |
13613
8728061cd0ec
Icons are now maintained by the ResourceManager.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13609
diff
changeset
|
569 |
30810
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30788
diff
changeset
|
570 QIcon resource_manager::icon (const QString& icon_name, bool octave_only, |
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30788
diff
changeset
|
571 const QString& icon_alt_name) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
572 { |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
573 if (octave_only) |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
574 return QIcon (global_icon_paths.at (ICON_THEME_OCTAVE) + icon_name + ".png"); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
575 |
30777
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
576 if (QIcon::hasThemeIcon (icon_name)) |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
577 return QIcon (QIcon::fromTheme (icon_name)); |
30810
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30788
diff
changeset
|
578 else if ((! icon_alt_name.isEmpty ()) && QIcon::hasThemeIcon (icon_alt_name)) |
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30788
diff
changeset
|
579 return QIcon (QIcon::fromTheme (icon_alt_name)); |
30777
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
580 |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
581 for (int i = 0; i < m_icon_fallbacks.length (); i++ ) |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
582 { |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
583 QString icon_file (m_icon_fallbacks.at (i) + icon_name + ".png"); |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
584 if (QFile (icon_file).exists ()) |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
585 return QIcon (icon_file); |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
586 } |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
587 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
588 //QIcon::setThemeName (current_theme); |
30777
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
589 return QIcon (); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
590 } |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
591 |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
592 // get a list of all available encodings |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
593 void resource_manager::get_codecs (QStringList *codecs) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
594 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
595 // get the codec name for each mib |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
596 QList<int> all_mibs = QTextCodec::availableMibs (); |
27676
ea7d36e9f197
use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents:
27672
diff
changeset
|
597 for (auto mib : all_mibs) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
598 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
599 QTextCodec *c = QTextCodec::codecForMib (mib); |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
600 codecs->append (c->name ().toUpper ()); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
601 } |
26291
f73bcf1d0b5a
make SYSTEM alias for locale encoding if not suported on windows (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26226
diff
changeset
|
602 |
27272
9de4741a896e
Do not ignore user preferences for locale encoding on non-Windows platforms.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27271
diff
changeset
|
603 // Append SYSTEM |
28118
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
604 codecs->append (QString ("SYSTEM (") + |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
605 QString (octave_locale_charset_wrapper ()).toUpper () + |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
606 QString (")")); |
26291
f73bcf1d0b5a
make SYSTEM alias for locale encoding if not suported on windows (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26226
diff
changeset
|
607 |
f73bcf1d0b5a
make SYSTEM alias for locale encoding if not suported on windows (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26226
diff
changeset
|
608 // Clean up and sort list of codecs |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
609 codecs->removeDuplicates (); |
28836
d0a64e67749e
avoid deprecated qSort function
John W. Eaton <jwe@octave.org>
parents:
28777
diff
changeset
|
610 std::sort (codecs->begin (), codecs->end ()); |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
611 } |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
612 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
613 // initialize a given combo box with available text encodings |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
614 void resource_manager::combo_encoding (QComboBox *combo, |
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
615 const QString& current) |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
616 { |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
617 QStringList all_codecs; |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
618 get_codecs (&all_codecs); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
619 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
620 // get the value from the settings file if no current encoding is given |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
621 QString enc = current; |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
622 |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
623 // Check for valid codec for the default. If this fails, "SYSTEM" (i.e. |
28118
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
624 // locale_charset) will be chosen. |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
625 // FIXME: The default is "SYSTEM" on all platforms. So can this fallback |
27272
9de4741a896e
Do not ignore user preferences for locale encoding on non-Windows platforms.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27271
diff
changeset
|
626 // logic be removed completely? |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
627 bool default_exists = false; |
29055
8f07c47242b8
Show correct system encoding in drop-down list in editor settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28836
diff
changeset
|
628 bool show_system = false; |
8f07c47242b8
Show correct system encoding in drop-down list in editor settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28836
diff
changeset
|
629 if (ed_default_enc.def.toString ().startsWith ("SYSTEM")) |
8f07c47242b8
Show correct system encoding in drop-down list in editor settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28836
diff
changeset
|
630 show_system = true; |
8f07c47242b8
Show correct system encoding in drop-down list in editor settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28836
diff
changeset
|
631 else if (QTextCodec::codecForName (ed_default_enc.def.toString ().toLatin1 ())) |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
632 default_exists = true; |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
633 |
27271
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26959
diff
changeset
|
634 QString default_enc = |
28118
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
635 QString ("SYSTEM (") + |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
636 QString (octave_locale_charset_wrapper ()).toUpper () + QString (")"); |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
637 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
638 if (enc.isEmpty ()) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
639 { |
31619
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
640 gui_settings settings; |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
641 |
ad014fc78bd6
use individual local gui_settings objects
John W. Eaton <jwe@octave.org>
parents:
31617
diff
changeset
|
642 enc = settings.value (ed_default_enc).toString (); |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
643 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
644 if (enc.isEmpty ()) // still empty? |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
645 { |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
646 if (default_exists) |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
647 enc = ed_default_enc.def.toString (); |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
648 else |
27271
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26959
diff
changeset
|
649 enc = default_enc; |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
650 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
651 } |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
652 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
653 // fill the combo box |
27676
ea7d36e9f197
use standard C++ range-based for loops instead of Qt foreach macro
John W. Eaton <jwe@octave.org>
parents:
27672
diff
changeset
|
654 for (const auto& c : all_codecs) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
655 combo->addItem (c); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
656 |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
657 // prepend the default item |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
658 combo->insertSeparator (0); |
29058
c76d3afe3d23
resource-manager.cc: Fix think-o in 8f07c47242b8.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29055
diff
changeset
|
659 if (show_system || ! default_exists) |
29055
8f07c47242b8
Show correct system encoding in drop-down list in editor settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28836
diff
changeset
|
660 combo->insertItem (0, default_enc); |
8f07c47242b8
Show correct system encoding in drop-down list in editor settings.
Markus Mützel <markus.muetzel@gmx.de>
parents:
28836
diff
changeset
|
661 else |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
662 combo->insertItem (0, ed_default_enc.def.toString ()); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
663 |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
664 // select the default or the current one |
26226
3a90eff58fb5
editor encodings in prefs dialog only in uppercase (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26186
diff
changeset
|
665 int idx = combo->findText (enc, Qt::MatchExactly); |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
666 if (idx >= 0) |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
667 combo->setCurrentIndex (idx); |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
668 else |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
669 combo->setCurrentIndex (0); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
670 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
671 combo->setMaxVisibleItems (12); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
672 } |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
673 |
30877
2bb539746697
consider env variables for location of temp files (bug #62215)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30810
diff
changeset
|
674 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
675 QPointer<QTemporaryFile> |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
676 resource_manager::create_tmp_file (const QString& extension, |
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
677 const QString& contents) |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
678 { |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
679 QString ext = extension; |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
680 if ((! ext.isEmpty ()) && (! ext.startsWith ('.'))) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
681 ext = QString (".") + ext; |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
682 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
683 // Create octave dir within temp. dir |
30882
b77b321f1ac5
use common function for getting temp dir in GUI (bug #62215)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30877
diff
changeset
|
684 QString tmp_dir = QString::fromStdString (sys::env::get_temp_directory ()); |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
685 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
686 // Create temp. file |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
687 QPointer<QTemporaryFile> tmp_file |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
688 = new QTemporaryFile (tmp_dir + QDir::separator() + |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
689 "octave_XXXXXX" + ext, this); |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
690 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
691 if (tmp_file->open ()) |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
692 { |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
693 tmp_file->write (contents.toUtf8 ()); |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
694 tmp_file->close (); |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
695 |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
696 m_temporary_files << tmp_file; |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
697 } |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
698 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
699 return tmp_file; |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
700 } |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
701 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
702 void resource_manager::remove_tmp_file (QPointer<QTemporaryFile> tmp_file) |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
703 { |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
704 if (tmp_file) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
705 { |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
706 if (tmp_file->exists ()) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
707 tmp_file->remove (); |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
708 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
709 m_temporary_files.removeAll (tmp_file); |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
710 } |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
711 } |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
712 } |