Mercurial > octave
annotate libgui/src/resource-manager.cc @ 31601:132547cc1ab2 stable
don't return invalid settings pointer from resource manager (bug #63437)
* resource-manager.cc (resource_manager::get_settings):
Display message box and exit if m_settings is nullptr.
(resource_manager::get_settings): Likewise, for m_default_settings.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 01 Dec 2022 15:00:07 -0500 |
parents | b77b321f1ac5 |
children | c2a0e546aab1 |
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) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
67 : m_settings_directory (), m_settings_file (), m_settings (nullptr), |
30777
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
68 m_default_settings (nullptr), 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 { |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
70 // Let gui_settings decide where to put the ini file with gui preferences |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
71 m_default_settings |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
72 = new gui_settings (QSettings::IniFormat, QSettings::UserScope, |
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
73 "octave", "octave-gui"); |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
74 |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
75 m_settings_file = m_default_settings->fileName (); |
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 (); |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
79 |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
80 QString xdg_config_home |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
81 = QString::fromLocal8Bit (qgetenv ("XDG_CONFIG_HOME")); |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
82 |
26959
3ed8955dcdf9
* resource-manager.cc (ctor): test XDG_CONFIG_HOME before importing old gui settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26955
diff
changeset
|
83 if ((! sfile.exists ()) && xdg_config_home.isEmpty ()) |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
84 { |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
85 // File does not exist yet: Look for a settings file at the old |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
86 // location ($HOME/.config/octave/qt-settings) for impoting all |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
87 // available keys into the new 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
|
88 // Do not look for an old settings file if XDG_CONFIG_HOME is set, |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27841
diff
changeset
|
89 // since then a nonexistent new settings file does not necessarily |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
90 // indicate a first run of octave with new config file locations. |
24827
1e0718c1867c
eliminate most Qt version checks
John W. Eaton <jwe@octave.org>
parents:
24718
diff
changeset
|
91 #if defined (HAVE_QSTANDARDPATHS) |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
92 QString home_path |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
93 = QStandardPaths::writableLocation (QStandardPaths::HomeLocation); |
24827
1e0718c1867c
eliminate most Qt version checks
John W. Eaton <jwe@octave.org>
parents:
24718
diff
changeset
|
94 #else |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
95 QString home_path |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
96 = QDesktopServices::storageLocation (QDesktopServices::HomeLocation); |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
97 #endif |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
98 |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
99 QString old_settings_directory = home_path + "/.config/octave"; |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
100 QString old_settings_file = old_settings_directory + "/qt-settings"; |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
101 |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
102 QFile ofile (old_settings_file); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
103 |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
104 if (ofile.exists ()) |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
105 { |
27893
465ac679e976
Fix typos and grammar errors in comments in libgui (patch #9790)
Andrew Janke <andrew@apjanke.net>
parents:
27841
diff
changeset
|
106 // Old settings file exists; create a gui_settings object related |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
107 // to it and copy all available keys to the new settings |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
108 gui_settings old_settings (old_settings_file, QSettings::IniFormat); |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
109 |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
110 QStringList keys = old_settings.allKeys (); |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
111 for (int i = 0; i < keys.count(); i++) |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
112 m_default_settings->setValue (keys.at(i), |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
113 old_settings.value(keys.at(i))); |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
114 |
26955
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
115 m_default_settings->sync (); // Done, make sure keys are written |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
116 } |
9e2f69c1a05d
use standard location on each platform for gui preferences file (bug #55855)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
26866
diff
changeset
|
117 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
118 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
119 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
120 resource_manager::~resource_manager (void) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
121 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
122 delete m_settings; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
123 delete m_default_settings; |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
124 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
125 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
|
126 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
|
127 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
128 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
129 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
|
130 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
131 // 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
|
132 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
|
133 if (dldir.empty ()) |
25460
627d6bde9b8d
solve installation info initialization problem differently
John W. Eaton <jwe@octave.org>
parents:
25440
diff
changeset
|
134 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
|
135 return QString::fromStdString (dldir); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
136 } |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
137 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
138 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
|
139 QTranslator *qsci_tr, |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
140 QTranslator *gui_tr) |
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 bool loaded; |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
143 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
144 QString qt_trans_dir |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
145 = QLibraryInfo::location (QLibraryInfo::TranslationsPath); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
146 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
147 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
|
148 |
27649
91d43a00620d
eliminate static instance variable from octave_qobject class
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
149 // 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
|
150 // 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
|
151 |
27649
91d43a00620d
eliminate static instance variable from octave_qobject class
John W. Eaton <jwe@octave.org>
parents:
27620
diff
changeset
|
152 if (m_settings) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
153 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
154 // get the locale from the settings if already available |
27805
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27676
diff
changeset
|
155 language = m_settings->value (global_language.key, |
dccc551aa83b
replace literal strings by symbolic constants for global preferences
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27676
diff
changeset
|
156 global_language.def).toString (); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
157 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
158 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
159 // 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
|
160 if (language == "SYSTEM") |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
161 { |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
162 // 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
|
163 // the suitable translation files |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
164 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
|
165 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
166 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
|
167 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
|
168 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
|
169 } |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
170 else |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
171 { |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
172 // 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
|
173 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
|
174 if (! loaded) // try lower case |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
175 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
|
176 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
177 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
|
178 if (! loaded) // try lower case |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
179 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
|
180 |
26866
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
181 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
|
182 } |
65e5526ad987
improve system locale detection for loading gui translations (bug #41072)
Torsten <mttl@mailbox.org>
parents:
26842
diff
changeset
|
183 |
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 |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
186 void resource_manager::config_icon_theme (void) |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
187 { |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
188 m_icon_fallbacks.clear (); |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
189 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
190 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
|
191 |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
192 if (m_settings) |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
193 { |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
194 // check for new and old setting and use old if required |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
195 if (! m_settings->contains (global_icon_theme_index.key)) |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
196 { |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
197 // new pref does not exist |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
198 if (m_settings->value (global_icon_theme).toBool ()) |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
199 theme = ICON_THEME_SYSTEM; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
200 else |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
201 theme = ICON_THEME_OCTAVE; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
202 m_settings->setValue (global_icon_theme_index.key, theme); // add new |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
203 m_settings->remove (global_icon_theme.key); // remove deprecated key |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
204 } |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
205 else |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
206 { |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
207 // get new settings |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
208 theme = m_settings->value (global_icon_theme_index).toInt (); |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
209 } |
30772
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
210 } |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
211 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
212 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
|
213 |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
214 // set the required fallback search paths |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
215 switch (theme) |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
216 { |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
217 case ICON_THEME_SYSTEM: |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
218 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
|
219 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
|
220 break; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
221 case ICON_THEME_TANGO: |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
222 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
|
223 break; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
224 case ICON_THEME_OCTAVE: |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
225 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
|
226 break; |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
227 } |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
228 |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
229 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
|
230 } |
36dc11ee220d
reorganize GUIs icons
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30564
diff
changeset
|
231 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
232 gui_settings * resource_manager::get_settings (void) const |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
233 { |
31601
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
234 if (! m_settings) |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
235 { |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
236 QString msg (QT_TR_NOOP ("Octave has lost its settings.\n" |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
237 "This should not happen.\n\n" |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
238 "Please report this bug.\n\n" |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
239 "Octave GUI must be closed now.")); |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
240 |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
241 QMessageBox::critical (nullptr, |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
242 QString (QT_TR_NOOP ("Octave Critical Error")), |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
243 msg); |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
244 exit (1); |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
245 } |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
246 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
247 return m_settings; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
248 } |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
249 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
250 gui_settings * resource_manager::get_default_settings (void) const |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
251 { |
31601
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
252 if (m_settings) |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
253 { |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
254 QString msg (QT_TR_NOOP ("Octave has lost its default settings.\n" |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
255 "This should not happen.\n" |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
256 "Please report this bug.\n\n" |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
257 "Octave GUI must be closed now.")); |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
258 |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
259 QMessageBox::critical (nullptr, |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
260 QString (QT_TR_NOOP ("Octave Critical Error")), |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
261 msg); |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
262 exit (1); |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
263 } |
132547cc1ab2
don't return invalid settings pointer from resource manager (bug #63437)
John W. Eaton <jwe@octave.org>
parents:
30882
diff
changeset
|
264 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
265 return m_default_settings; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
266 } |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
267 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
268 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
|
269 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
270 return m_settings_directory; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
271 } |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
272 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
273 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
|
274 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
275 return m_settings_file; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
276 } |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
277 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
278 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
|
279 { |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
280 QString default_family; |
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
281 |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
282 // 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
|
283 QFontComboBox font_combo_box; |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
284 font_combo_box.setFontFilters (QFontComboBox::MonospacedFonts); |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
285 QStringList fonts; |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
286 |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
287 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
|
288 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
|
289 |
29522
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
290 #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
|
291 // 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
|
292 // default font is unreliable (see bug #59128). |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
293 // Test for macOS default fixed width font |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
294 if (fonts.contains (global_mono_font.def.toString ())) |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
295 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
|
296 #endif |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
297 |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
298 // 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
|
299 // 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
|
300 if (default_family.isEmpty ()) |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
301 { |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
302 // Get the system's default monospaced font |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
303 QFont fixed_font = QFontDatabase::systemFont (QFontDatabase::FixedFont); |
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
304 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
|
305 |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
306 // 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
|
307 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
|
308 { |
82aaf001abee
make detection of default fixed font for gui more robust
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29511
diff
changeset
|
309 // 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
|
310 // 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
|
311 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
|
312 } |
28768
bffd48bb4b8c
fix indentation of cset b075aa252ca7
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28767
diff
changeset
|
313 } |
28777
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
314 |
0d6795d0373d
improved detection of standard fixed witdh font (bug #59128)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28118
diff
changeset
|
315 // 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
|
316 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
|
317 if (! env_default_family.empty ()) |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
318 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
|
319 |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
320 return default_family; |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
321 } |
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
322 |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
323 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
|
324 { |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
325 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
|
326 |
29270
6570a35920c4
improve detection of systems font size at first startup (bug #59829)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29162
diff
changeset
|
327 // 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
|
328 // 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
|
329 // 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
|
330 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
|
331 |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
332 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
|
333 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
|
334 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
|
335 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
336 // 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
|
337 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
|
338 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
|
339 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
|
340 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
341 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
|
342 = 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
|
343 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
344 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
|
345 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
|
346 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
347 QStringList result; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
348 result << default_family; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
349 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
|
350 return result; |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
351 } |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
352 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
353 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
|
354 { |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
355 // 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
|
356 // writing them into the newly created settings file |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
357 QString custom_editor; |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
358 QStringList def_font; |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
359 |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
360 // 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
|
361 if (! QFile::exists (m_settings_file)) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
362 { |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
363 // Get the default font (for terminal) |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
364 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
|
365 |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
366 // 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
|
367 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
|
368 = 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
|
369 |
bd473c0cc34b
allow default font, size, and external editor to be set from environment
John W. Eaton <jwe@octave.org>
parents:
25702
diff
changeset
|
370 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
|
371 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
|
372 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
373 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
374 set_settings (m_settings_file); |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
375 |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
376 // Write some settings that were dynamically determined at first startup |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
377 if (m_settings) |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
378 { |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
379 // Custom editor |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
380 if (! custom_editor.isEmpty ()) |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
381 m_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
|
382 |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
383 // Default monospace font for the terminal |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
384 if (def_font.count () > 1) |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
385 { |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
386 m_settings->setValue (cs_font.key, def_font[0]); |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
387 m_settings->setValue (cs_font_size.key, def_font[1].toInt ()); |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
388 } |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
389 |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
390 // Write the default monospace font into the settings for later use by |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
391 // console and editor as fallbacks of their font preferences. |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
392 m_settings->setValue (global_mono_font.key, get_default_font_family ()); |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
393 } |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
394 } |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
395 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
396 #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
|
397 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
|
398 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
399 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
|
400 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
|
401 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
|
402 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
403 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
|
404 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
|
405 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
|
406 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
407 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
|
408 } |
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 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
410 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
411 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
|
412 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
|
413 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
414 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
|
415 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
416 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
|
417 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
|
418 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
|
419 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
420 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
|
421 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
422 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
423 #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
|
424 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
|
425 gui_settings *settings, |
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
426 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
|
427 { |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
428 // 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
|
429 // 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
|
430 // default settings file. |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
431 // 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
|
432 // 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
|
433 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
|
434 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
|
435 m = 1; |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
436 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
437 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
|
438 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
439 settings->beginGroup (group); |
29162
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
440 settings->beginGroup (lexer->language ()); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
441 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
442 QStringList lexer_keys = settings->allKeys (); |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
443 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
444 settings->endGroup (); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
445 settings->endGroup (); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
446 |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
447 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
|
448 { |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
449 // 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
|
450 // 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
|
451 // 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
|
452 // 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
|
453 |
bb6bb306b8a6
copy lexer settings from default settings file for new languages
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29158
diff
changeset
|
454 // 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
|
455 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
|
456 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
|
457 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
|
458 lexer->setDefaultFont (dfa); |
26008
38a881b8fbec
do not use courier new as default font (bug #54086)
Torsten <mttl@mailbox.org>
parents:
25821
diff
changeset
|
459 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
460 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
|
461 |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
462 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
|
463 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
|
464 |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
465 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
|
466 { |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
467 c = settings->get_color_value (QVariant (lexer->color (styles[i])), m); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
468 lexer->setColor (c, 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
|
469 p = settings->get_color_value (QVariant (lexer->paper (styles[i])), m); |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
470 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
|
471 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
|
472 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
|
473 } |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
474 // 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
|
475 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
|
476 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
|
477 |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
478 // 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
|
479 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
|
480 { |
29608
dc171e0452cf
libgui: Avoid dangling reference with QString::toStdString.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29524
diff
changeset
|
481 const std::string group_str = group.toStdString (); |
dc171e0452cf
libgui: Avoid dangling reference with QString::toStdString.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29524
diff
changeset
|
482 lexer->writeSettings (*settings, group_str.c_str ()); |
29524
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
483 settings->sync (); |
730cac3d6d5a
allow reloading default colors and styles in the preferences dialog
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29522
diff
changeset
|
484 } |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
485 } |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
486 else |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
487 { |
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
488 // 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
|
489 const std::string group_str = group.toStdString (); |
29642
0562777c015f
Fix error in dc171e0452cf (bug #60556).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29608
diff
changeset
|
490 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
|
491 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
492 } |
29498
5384bb4efc51
rearrange default lexer settings and add second color mode to gui editor
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29359
diff
changeset
|
493 #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
|
494 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
495 void resource_manager::set_settings (const QString& file) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
496 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
497 delete m_settings; |
27611
0495b64288f7
use new gui_settings class instead of using QSettings directly
John W. Eaton <jwe@octave.org>
parents:
27583
diff
changeset
|
498 m_settings = new gui_settings (file, QSettings::IniFormat); |
17943
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
499 |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
500 if (m_settings->status () == QSettings::NoError) |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
501 { |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
502 // Test usability (force file to be really created) |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
503 m_settings->setValue ("dummy", 0); |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
504 m_settings->sync (); |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
505 } |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
506 |
26369
0249ba4c9589
Fix static analyzer detected V668 issues (bug #55347).
Andreas Weber <octave@josoansi.de>
parents:
26291
diff
changeset
|
507 if (! (QFile::exists (m_settings->fileName ()) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
508 && m_settings->isWritable () |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
509 && m_settings->status () == QSettings::NoError)) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
510 { |
27276
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
511 QString msg |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
512 = 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
|
513 "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
|
514 "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
|
515 "Octave GUI must be closed now.")); |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
516 |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
517 QMessageBox::critical (nullptr, |
7455523fdf01
style fixes: avoid breaking lines immediately after '('
John W. Eaton <jwe@octave.org>
parents:
27272
diff
changeset
|
518 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
|
519 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
|
520 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
521 exit (1); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
522 } |
29511
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
523 else |
2a4980872234
remove default-qt-settings
Torsten Lilge <ttl-octave@mailbox.org>
parents:
29498
diff
changeset
|
524 m_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
|
525 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
526 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
527 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
|
528 const QString& new_key) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
529 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
530 if (m_settings->contains (old_key)) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
531 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
532 QVariant preference = m_settings->value (old_key); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
533 m_settings->setValue (new_key, preference); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
534 m_settings->remove (old_key); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
535 return true; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
536 } |
24282
a669809df612
update wrong setting keys accidentally introduced into the settings file
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
537 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
538 return false; |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
539 } |
24282
a669809df612
update wrong setting keys accidentally introduced into the settings file
Torsten <mttl@mailbox.org>
parents:
23219
diff
changeset
|
540 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
541 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
|
542 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
543 return ! QFile::exists (m_settings_file); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
544 } |
13668
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
545 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
546 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
|
547 { |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
548 if (! m_settings) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
549 return; |
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 QNetworkProxy proxy; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
552 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
553 // 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
|
554 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
|
555 QString scheme; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
556 QString host; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
557 int port = 0; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
558 QString user; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
559 QString pass; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
560 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
|
561 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
562 if (m_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
|
563 { |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
564 // 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
|
565 QString proxy_type_string |
30398
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
566 = m_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
|
567 |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
568 // 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
|
569 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
|
570 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
|
571 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
|
572 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
|
573 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
574 // 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
|
575 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
|
576 || proxy_type_string == "Socks5Proxy") |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
577 { |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
578 host = m_settings->value (global_proxy_host.key, |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
579 global_proxy_host.def).toString (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
580 port = m_settings->value (global_proxy_port.key, |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
581 global_proxy_port.def).toInt (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
582 user = m_settings->value (global_proxy_user.key, |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
583 global_proxy_user.def).toString (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
584 pass = m_settings->value (global_proxy_pass.key, |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
585 global_proxy_pass.def).toString (); |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
586 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
|
587 scheme = "http"; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
588 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
|
589 scheme = "socks5"; |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
590 |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
591 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
|
592 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
|
593 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
|
594 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
|
595 if (! user.isEmpty ()) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
596 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
|
597 if (! pass.isEmpty ()) |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
598 proxy_url.setPassword (pass); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
599 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
600 |
28422
02a5da73a157
Use std::array rather than std::vector in patch for (bug #54334).
Rik <rik@octave.org>
parents:
28421
diff
changeset
|
601 // 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
|
602 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
|
603 { |
28422
02a5da73a157
Use std::array rather than std::vector in patch for (bug #54334).
Rik <rik@octave.org>
parents:
28421
diff
changeset
|
604 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
|
605 { |
d4d83344d653
maint: style check C++ files in src/ and libgui/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
29642
diff
changeset
|
606 "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
|
607 "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
|
608 "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
|
609 }; |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
610 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
611 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
|
612 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
|
613 { |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
614 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
|
615 (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
|
616 count++; |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
617 } |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
618 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
619 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
|
620 { |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
621 // 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
|
622 scheme = proxy_url.scheme (); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
623 |
28418
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
624 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
|
625 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
|
626 else |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
627 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
|
628 |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
629 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
|
630 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
|
631 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
|
632 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
|
633 } |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
634 } |
e2e615821ef5
also use environment varaibles for network proxy settings (bug #54334)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
28300
diff
changeset
|
635 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
636 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
637 // 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
|
638 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
|
639 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
|
640 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
|
641 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
|
642 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
|
643 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
644 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
|
645 |
28421
c648cca864db
Use Octave functions to get and set environment variables (bug #54334).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28418
diff
changeset
|
646 // 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
|
647 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
|
648 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
|
649 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
|
650 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
|
651 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
|
652 } |
13613
8728061cd0ec
Icons are now maintained by the ResourceManager.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13609
diff
changeset
|
653 |
30810
b7058556854b
allow to specify a fallback icon for icon selection in the gui
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30788
diff
changeset
|
654 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
|
655 const QString& icon_alt_name) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
656 { |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
657 if (octave_only) |
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
658 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
|
659 |
30777
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
660 if (QIcon::hasThemeIcon (icon_name)) |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
661 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
|
662 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
|
663 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
|
664 |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
665 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
|
666 { |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
667 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
|
668 if (QFile (icon_file).exists ()) |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
669 return QIcon (icon_file); |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
670 } |
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
671 |
30788
c11d34f72b3c
provide different icon sets for the GUI
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30777
diff
changeset
|
672 //QIcon::setThemeName (current_theme); |
30777
439eb9bd4c04
icon fallback concept without QIcon::fallbackSearchPaths (bug #62106)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30775
diff
changeset
|
673 return QIcon (); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
674 } |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
675 |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
676 // 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
|
677 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
|
678 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
679 // 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
|
680 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
|
681 for (auto mib : all_mibs) |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
682 { |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
683 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
|
684 codecs->append (c->name ().toUpper ()); |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
685 } |
26291
f73bcf1d0b5a
make SYSTEM alias for locale encoding if not suported on windows (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26226
diff
changeset
|
686 |
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
|
687 // 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
|
688 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
|
689 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
|
690 QString (")")); |
26291
f73bcf1d0b5a
make SYSTEM alias for locale encoding if not suported on windows (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26226
diff
changeset
|
691 |
f73bcf1d0b5a
make SYSTEM alias for locale encoding if not suported on windows (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26226
diff
changeset
|
692 // 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
|
693 codecs->removeDuplicates (); |
28836
d0a64e67749e
avoid deprecated qSort function
John W. Eaton <jwe@octave.org>
parents:
28777
diff
changeset
|
694 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
|
695 } |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
696 |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
697 // 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
|
698 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
|
699 const QString& current) |
25700
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
700 { |
ba8227df92ae
synchronize gui editor encoding when changing __mfile_encdoing__ (bug #54310)
Torsten <mttl@mailbox.org>
parents:
25460
diff
changeset
|
701 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
|
702 get_codecs (&all_codecs); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
703 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
704 // 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
|
705 QString enc = current; |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
706 |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
707 // 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
|
708 // locale_charset) will be chosen. |
27929
265b386f8b20
maint: Use two spaces between sentences in code comments.
Rik <rik@octave.org>
parents:
27923
diff
changeset
|
709 // 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
|
710 // 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
|
711 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
|
712 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
|
713 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
|
714 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
|
715 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
|
716 default_exists = true; |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
717 |
27271
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26959
diff
changeset
|
718 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
|
719 QString ("SYSTEM (") + |
f2789cae04f3
Don't use "codecForLocale" to get encoding for locale charset.
Markus Mützel <markus.muetzel@gmx.de>
parents:
27957
diff
changeset
|
720 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
|
721 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
722 if (enc.isEmpty ()) |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
723 { |
27672
a36443e94f8a
simplify gui_settings->value (PREF.key, PREF.def) calls
John W. Eaton <jwe@octave.org>
parents:
27662
diff
changeset
|
724 enc = m_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
|
725 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
726 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
|
727 { |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
728 if (default_exists) |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
729 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
|
730 else |
27271
a4416cd6bb4f
Append name of actual encoding used if "SYSTEM" is selected.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26959
diff
changeset
|
731 enc = default_enc; |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
732 } |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
733 } |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
734 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
735 // 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
|
736 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
|
737 combo->addItem (c); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
738 |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
739 // prepend the default item |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
740 combo->insertSeparator (0); |
29058
c76d3afe3d23
resource-manager.cc: Fix think-o in 8f07c47242b8.
Markus Mützel <markus.muetzel@gmx.de>
parents:
29055
diff
changeset
|
741 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
|
742 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
|
743 else |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
744 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
|
745 |
26186
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
746 // 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
|
747 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
|
748 if (idx >= 0) |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
749 combo->setCurrentIndex (idx); |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
750 else |
b23954fd0ea6
fix encoding combo box for not supported default encoding (bug #55139)
Torsten <mttl@mailbox.org>
parents:
26172
diff
changeset
|
751 combo->setCurrentIndex (0); |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
752 |
24718
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
753 combo->setMaxVisibleItems (12); |
ea1c88bd4430
move more GUI classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
24534
diff
changeset
|
754 } |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
755 |
30877
2bb539746697
consider env variables for location of temp files (bug #62215)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
30810
diff
changeset
|
756 |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
757 QPointer<QTemporaryFile> |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
758 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
|
759 const QString& contents) |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
760 { |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
761 QString ext = extension; |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
762 if ((! ext.isEmpty ()) && (! ext.startsWith ('.'))) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
763 ext = QString (".") + ext; |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
764 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
765 // 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
|
766 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
|
767 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
768 // Create temp. file |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
769 QPointer<QTemporaryFile> tmp_file |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
770 = new QTemporaryFile (tmp_dir + QDir::separator() + |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
771 "octave_XXXXXX" + ext, this); |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
772 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
773 if (tmp_file->open ()) |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
774 { |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
775 tmp_file->write (contents.toUtf8 ()); |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
776 tmp_file->close (); |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
777 |
27935
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
778 m_temporary_files << tmp_file; |
f1844e33f621
maint: Use Octave coding conventions in libgui/ directory.
Rik <rik@octave.org>
parents:
27929
diff
changeset
|
779 } |
27556
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
780 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
781 return tmp_file; |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
782 } |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
783 |
27620
45bb5bbaf291
don't use singleton pattern for resource manager in GUI
John W. Eaton <jwe@octave.org>
parents:
27611
diff
changeset
|
784 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
|
785 { |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
786 if (tmp_file) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
787 { |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
788 if (tmp_file->exists ()) |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
789 tmp_file->remove (); |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
790 |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
791 m_temporary_files.removeAll (tmp_file); |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
792 } |
410622ac120f
improve run selection from editor (bug #42705)
Torsten Lilge <ttl-octave@mailbox.org>
parents:
27412
diff
changeset
|
793 } |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
794 } |