Mercurial > octave
annotate libgui/src/resource-manager.cc @ 22250:2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
* acinclude.m4 (OCTAVE_CHECK_QT_VERSION): Define HAVE_QT4 or HAVE_QT5.
Also check for Qt5PrintSupport when using Qt5.
* Canvas.cc, Object.cc, QTerminal.cc, TerminalView.cpp,
Vt102Emulation.cpp, konsole_wcwidth.h, find-files-dialog.cc,
file-editor-tab.cc, file-editor.cc, find-dialog.cc, octave-gui.cc,
resource-manager.cc, shortcut-manager.cc, workspace-model.cc,
workspace-view.cc: Adapt to Qt5 API changes.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Wed, 10 Aug 2016 03:54:42 -0400 |
parents | 6e9f5408c0db |
children | bac0d6f07a3e |
rev | line source |
---|---|
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
1 /* |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
2 |
19697
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
18036
diff
changeset
|
3 Copyright (C) 2011-2015 Jacob Dawid |
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
4 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
5 This file is part of Octave. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
6 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
7 Octave is free software; you can redistribute it and/or modify it |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
8 under the terms of the GNU General Public License as published by the |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
9 Free Software Foundation; either version 3 of the License, or (at your |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
10 option) any later version. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
11 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but WITHOUT |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
15 for more details. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
16 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
18 along with Octave; see the file COPYING. If not, see |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
19 <http://www.gnu.org/licenses/>. |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
20 |
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
21 */ |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
22 |
21724
aba2e6293dd8
use "#if ..." consistently instead of "#ifdef" and "#ifndef"
John W. Eaton <jwe@octave.org>
parents:
21568
diff
changeset
|
23 #if defined (HAVE_CONFIG_H) |
21301
40de9f8f23a6
Use '#include "config.h"' rather than <config.h>.
Rik <rik@octave.org>
parents:
21203
diff
changeset
|
24 # include "config.h" |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
25 #endif |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
26 |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
27 #include <string> |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
28 |
13570
7828e1bf5b0d
Default settings are now loaded it there is no user-defined settings.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13551
diff
changeset
|
29 #include <QFile> |
14845
9a355dfc7701
Fixed bug with GUI not starting the first time.
Jacob Dawid <jacob.dawid@gmail.com>
parents:
14804
diff
changeset
|
30 #include <QDir> |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
31 #include <QNetworkProxy> |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
32 #include <QLibraryInfo> |
17943
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
33 #include <QMessageBox> |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
34 #if defined (HAVE_QT5) |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
35 # include <QStandardPaths> |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
36 #endif |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
37 #include <QTextCodec> |
14845
9a355dfc7701
Fixed bug with GUI not starting the first time.
Jacob Dawid <jacob.dawid@gmail.com>
parents:
14804
diff
changeset
|
38 |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
39 #include "error.h" |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
40 #include "file-ops.h" |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
41 #include "help.h" |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
42 #include "oct-env.h" |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
43 |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
44 #include "defaults.h" |
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
45 |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
46 #include "QTerminal.h" |
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
47 #include "workspace-model.h" |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
48 #include "resource-manager.h" |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
49 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
50 resource_manager *resource_manager::instance = 0; |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
51 |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
52 static QString |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
53 default_qt_settings_file (void) |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
54 { |
21732
6a1eded90355
use namespace for system env class
John W. Eaton <jwe@octave.org>
parents:
21724
diff
changeset
|
55 std::string dsf = octave::sys::env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS"); |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
56 |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
57 if (dsf.empty ()) |
21733
cb0fdd941d84
use namespace for system file_ops class
John W. Eaton <jwe@octave.org>
parents:
21732
diff
changeset
|
58 dsf = Voct_etc_dir + octave::sys::file_ops::dir_sep_str () + "default-qt-settings"; |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
59 |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
60 return QString::fromStdString (dsf); |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
61 } |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
62 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
63 resource_manager::resource_manager (void) |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
64 : settings_directory (), settings_file (), settings (0), |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
65 default_settings (0) |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
66 { |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
67 #if defined (HAVE_QT4) |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
68 QString home_path |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
69 = QDesktopServices::storageLocation (QDesktopServices::HomeLocation); |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
70 #else |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
71 QString home_path |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
72 = QStandardPaths::writableLocation (QStandardPaths::HomeLocation); |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
73 #endif |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
74 |
17938
cd97a7ef7355
remove trailing slash from settings directory string
John W. Eaton <jwe@octave.org>
parents:
17930
diff
changeset
|
75 settings_directory = home_path + "/.config/octave"; |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
76 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
77 settings_file = settings_directory + "/qt-settings"; |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
78 |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
79 default_settings = new QSettings (default_qt_settings_file (), |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
80 QSettings::IniFormat); |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
81 } |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
82 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
83 resource_manager::~resource_manager (void) |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
84 { |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
85 delete settings; |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
86 delete default_settings; |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
87 } |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
88 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
89 QString |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
90 resource_manager::get_gui_translation_dir (void) |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
91 { |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
92 // get environment variable for the locale dir (e.g. from run-octave) |
21732
6a1eded90355
use namespace for system env class
John W. Eaton <jwe@octave.org>
parents:
21724
diff
changeset
|
93 std::string dldir = octave::sys::env::getenv ("OCTAVE_LOCALE_DIR"); |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
94 if (dldir.empty ()) |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
95 dldir = Voct_locale_dir; // env-var empty, load the default location |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
96 return QString::fromStdString (dldir); |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
97 } |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
98 |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
99 void |
16858
cd29604214c5
Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
100 resource_manager::config_translators (QTranslator *qt_tr, |
cd29604214c5
Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
101 QTranslator *qsci_tr, |
cd29604214c5
Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
102 QTranslator *gui_tr) |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
103 { |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
104 bool loaded; |
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
105 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
106 QString qt_trans_dir |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
107 = QLibraryInfo::location (QLibraryInfo::TranslationsPath); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
108 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
109 QString language = "SYSTEM"; // take system language per default |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
110 |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
111 QSettings *settings = resource_manager::get_settings (); |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
112 |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
113 if (settings) |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
114 { |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
115 // get the locale from the settings if already available |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
116 language = settings->value ("language","SYSTEM").toString (); |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
117 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
118 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
119 if (language == "SYSTEM") |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
120 language = QLocale::system ().name (); // get system wide locale |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
121 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
122 // load the translator file for qt strings |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
123 loaded = qt_tr->load ("qt_" + language, qt_trans_dir); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
124 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20774
diff
changeset
|
125 if (! loaded) // try lower case |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
126 qt_tr->load ("qt_" + language.toLower (), qt_trans_dir); |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
127 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
128 // load the translator file for qscintilla settings |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
129 loaded = qsci_tr->load ("qscintilla_" + language, qt_trans_dir); |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
130 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20774
diff
changeset
|
131 if (! loaded) // try lower case |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
132 qsci_tr->load ("qscintilla_" + language.toLower (), qt_trans_dir); |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
133 |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
134 // load the translator file for gui strings |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
135 gui_tr->load (language, get_gui_translation_dir ()); |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
136 } |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
137 |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
138 bool |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
139 resource_manager::instance_ok (void) |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
140 { |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
141 bool retval = true; |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
142 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
143 if (! instance) |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
144 instance = new resource_manager (); |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
145 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
146 if (! instance) |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
147 { |
20428
7ac907da9fba
Use error() rather than ::error() unless explicitly required.
Rik <rik@octave.org>
parents:
19916
diff
changeset
|
148 error ("unable to create resource_manager object!"); |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
149 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
150 retval = false; |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
151 } |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
152 |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
153 return retval; |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
154 } |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
155 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
156 QSettings * |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
157 resource_manager::do_get_settings (void) const |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
158 { |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
159 return settings; |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
160 } |
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
161 |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
162 QSettings * |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
163 resource_manager::do_get_default_settings (void) const |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
164 { |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
165 return default_settings; |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
166 } |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
167 |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
168 QString |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
169 resource_manager::do_get_settings_directory (void) |
15159
098546e95a5e
allow location of default settings file to be configurable
John W. Eaton <jwe@octave.org>
parents:
15081
diff
changeset
|
170 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
171 return settings_directory; |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
172 } |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
173 |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
174 QString |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
175 resource_manager::do_get_settings_file (void) |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
176 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
177 return settings_file; |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
178 } |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
179 |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
180 void |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
181 resource_manager::do_reload_settings (void) |
13668
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
182 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
183 if (! QFile::exists (settings_file)) |
15367
501a9cc2c68f
maint: whitespace cleanup in GUI code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15300
diff
changeset
|
184 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
185 QDir ("/").mkpath (settings_directory); |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
186 QFile qt_settings (default_qt_settings_file ()); |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
187 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20774
diff
changeset
|
188 if (! qt_settings.open (QFile::ReadOnly)) |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
189 return; |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
190 |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
191 QTextStream in (&qt_settings); |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
192 QString settings_text = in.readAll (); |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
193 qt_settings.close (); |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
194 |
19916
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
195 // Get the default monospaced font |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
196 #if defined (HAVE_QFONT_MONOSPACE) |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
197 QFont fixed_font; |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
198 fixed_font.setStyleHint (QFont::Monospace); |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
199 QString default_family = fixed_font.defaultFamily (); |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
200 #elif defined (Q_WS_X11) || defined (Q_WS_WIN) |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
201 QString default_family = "Courier New"; |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
202 #elif defined (Q_WS_MAC) |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
203 QString default_family = "Courier"; |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
204 #else |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
205 QString default_family = "courier"; |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
206 #endif |
19916
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
207 |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
208 // Get the default custom editor |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
209 #if defined (Q_OS_WIN32) |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
210 QString custom_editor = "notepad++ -n%l %f"; |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
211 #else |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
212 QString custom_editor = "emacs +%l %f"; |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
213 #endif |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
214 |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
215 // Replace placeholders |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
216 settings_text.replace ("__default_custom_editor__", custom_editor); |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
217 settings_text.replace ("__default_font__", default_family); |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
218 settings_text.replace ("__default_font_size__", "10"); |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
219 |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
220 QFile user_settings (settings_file); |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
221 |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
222 if (! user_settings.open (QIODevice::WriteOnly)) |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
223 return; |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
224 |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
225 QTextStream out (&user_settings); |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
226 |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
227 out << settings_text; |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
228 |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
229 user_settings.close (); |
15367
501a9cc2c68f
maint: whitespace cleanup in GUI code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15300
diff
changeset
|
230 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
231 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
232 do_set_settings (settings_file); |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
233 } |
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
|
234 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
235 void |
15300
fd27e10b9b05
pass QString by const reference instead of value
John W. Eaton <jwe@octave.org>
parents:
15204
diff
changeset
|
236 resource_manager::do_set_settings (const QString& file) |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
237 { |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
238 delete settings; |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
239 settings = new QSettings (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
|
240 |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
241 if (! (settings |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
242 && QFile::exists (settings->fileName ()) |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
243 && settings->isWritable () |
21568
3d60ed163b70
maint: Eliminate bad spacing around '='.
Rik <rik@octave.org>
parents:
21301
diff
changeset
|
244 && settings->status () == QSettings::NoError)) |
17943
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
245 { |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
246 QString msg = QString (QT_TR_NOOP ( |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
247 "The settings file\n%1\n" |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
248 "does not exist and can not be created.\n" |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
249 "Make sure you have read and write permissions to\n%2\n\n" |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
250 "Octave GUI must be closed now.")); |
17943
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
251 QMessageBox::critical (0, QString (QT_TR_NOOP ("Octave Critical Error")), |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
252 msg.arg (do_get_settings_file ()).arg (do_get_settings_directory ())); |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
253 exit (1); |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
254 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
255 } |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
256 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
257 bool |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
258 resource_manager::do_is_first_run (void) const |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
259 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
260 return ! QFile::exists (settings_file); |
13668
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
261 } |
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
262 |
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
263 void |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
264 resource_manager::do_update_network_settings (void) |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
265 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
266 if (settings) |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
267 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
268 QNetworkProxy::ProxyType proxyType = QNetworkProxy::NoProxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
269 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
270 if (settings->value ("useProxyServer",false).toBool ()) |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
271 { |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
272 QString proxyTypeString = settings->value ("proxyType").toString (); |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
273 |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
274 if (proxyTypeString == "Socks5Proxy") |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
275 proxyType = QNetworkProxy::Socks5Proxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
276 else if (proxyTypeString == "HttpProxy") |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
277 proxyType = QNetworkProxy::HttpProxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
278 } |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
279 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
280 QNetworkProxy proxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
281 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
282 proxy.setType (proxyType); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
283 proxy.setHostName (settings->value ("proxyHostName").toString ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
284 proxy.setPort (settings->value ("proxyPort",80).toInt ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
285 proxy.setUser (settings->value ("proxyUserName").toString ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
286 proxy.setPassword (settings->value ("proxyPassword").toString ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
287 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
288 QNetworkProxy::setApplicationProxy (proxy); |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
289 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
290 else |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
291 { |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
292 // FIXME: Is this an error? If so, what should we do? |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
293 } |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
294 } |
13613
8728061cd0ec
Icons are now maintained by the ResourceManager.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13609
diff
changeset
|
295 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
296 QStringList |
16610
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
297 resource_manager::storage_class_names (void) |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
298 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
299 return workspace_model::storage_class_names (); |
16610
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
300 } |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
301 |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
302 QList<QColor> |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
303 resource_manager::storage_class_default_colors (void) |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
304 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
305 return workspace_model::storage_class_default_colors (); |
16610
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
306 } |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
307 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
308 QStringList |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
309 resource_manager::terminal_color_names (void) |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
310 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
311 return QTerminal::color_names (); |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
312 } |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
313 |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
314 QList<QColor> |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
315 resource_manager::terminal_default_colors (void) |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
316 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
317 return QTerminal::default_colors (); |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
318 } |
19899 | 319 |
320 QIcon | |
321 resource_manager::do_icon (const QString& icon_name, bool fallback) | |
322 { | |
323 if (fallback) | |
324 return QIcon::fromTheme (icon_name, | |
325 QIcon (":/actions/icons/" + icon_name + ".png")); | |
326 else | |
327 return QIcon::fromTheme (icon_name); | |
328 } | |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
329 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
330 // initialize a given combo box with available text encodings |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
331 void |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
332 resource_manager::do_combo_encoding (QComboBox *combo, QString current) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
333 { |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
334 // get the codec name for each mib |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
335 QList<int> all_mibs = QTextCodec::availableMibs (); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
336 QStringList all_codecs; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
337 foreach (int mib, all_mibs) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
338 { |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
339 QTextCodec *c = QTextCodec::codecForMib (mib); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
340 all_codecs << c->name ().toUpper (); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
341 } |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
342 all_codecs.removeDuplicates (); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
343 qSort (all_codecs); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
344 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
345 // the default encoding |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
346 #if defined (Q_OS_WIN32) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
347 QString def_enc = "SYSTEM"; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
348 #else |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
349 QString def_enc = "UTF-8"; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
350 #endif |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
351 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
352 // get the value from the settings file if no current encoding is given |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
353 QString enc = current; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
354 if (enc.isEmpty ()) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
355 { |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
356 enc = settings->value ("editor/default_encoding",def_enc).toString (); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
357 if (enc.isEmpty ()) // still empty? |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
358 enc = def_enc; // take default |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
359 } |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
360 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
361 // fill the combo box |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
362 foreach (QString c, all_codecs) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
363 combo->addItem (c); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
364 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
365 // prepend the default item |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
366 combo->insertSeparator (0); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
367 combo->insertItem (0, def_enc); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
368 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
369 // select the current/default item |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
370 int idx = combo->findText (enc); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
371 if (idx >= 0) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
372 combo->setCurrentIndex (idx); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
373 else |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
374 combo->setCurrentIndex (0); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
375 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
376 combo->setMaxVisibleItems (12); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
377 } |