Mercurial > octave
annotate libgui/src/resource-manager.cc @ 23807:336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Better performance when string constructor isn't required.
* Figure.cc, __init_qt__.cc, files-dock-widget.cc, file-editor-tab.cc,
file-editor.cc, octave-qscintilla.cc, main-window.cc, octave-dock-widget.cc,
octave-qt-link.cc, parser.cc, webinfo.cc, resource-manager.cc,
settings-dialog.cc, workspace-view.cc, __magick_read__.cc, balance.cc,
debug.cc, dynamic-ld.cc, ft-text-renderer.cc, gl-render.cc, gl2ps-print.cc,
graphics.cc, hook-fcn.h, input.cc, load-path.cc, load-save.cc, ls-hdf5.cc,
oct-hist.cc, oct-stream.cc, pager.cc, pr-output.cc, qz.cc, symtab.cc, symtab.h,
tril.cc, __delaunayn__.cc, __init_fltk__.cc, __voronoi__.cc, audioread.cc,
ccolamd.cc, colamd.cc, convhulln.cc, ov-base-int.cc, ov-base-mat.cc,
ov-base-scalar.cc, ov-base.cc, ov-bool-mat.cc, ov-cell.cc, ov-class.cc,
ov-classdef.cc, ov-colon.cc, ov-complex.cc, ov-cx-mat.cc, ov-fcn-handle.cc,
ov-fcn-inline.cc, ov-fcn.h, ov-flt-cx-mat.cc, ov-flt-re-mat.cc, ov-java.cc,
ov-oncleanup.cc, ov-range.cc, ov-re-mat.cc, ov-re-sparse.cc, ov-str-mat.cc,
ov-struct.cc, ov-usr-fcn.cc, ov.cc, octave.cc, bp-table.cc, jit-ir.cc,
jit-ir.h, jit-typeinfo.cc, pt-funcall.cc, pt-idx.cc, pt-pr-code.cc, pt.h,
Array.cc, CDiagMatrix.cc, CMatrix.cc, CNDArray.cc, CRowVector.cc, CSparse.cc,
Range.cc, boolSparse.cc, dDiagMatrix.cc, dMatrix.cc, dNDArray.cc,
dRowVector.cc, dSparse.cc, fCDiagMatrix.cc, fCMatrix.cc, fCNDArray.cc,
fCRowVector.cc, fDiagMatrix.cc, fMatrix.cc, fNDArray.cc, fRowVector.cc,
idx-vector.cc, intNDArray.cc, CollocWt.cc, DASPK.cc, DASRT.cc, DASSL.cc,
LSODE.cc, oct-time.cc, cmd-hist.cc, kpse.cc, lo-array-errwarn.cc, lo-regexp.cc,
lo-utils.cc, str-vec.cc, url-transfer.cc, main-cli.cc, main-gui.cc,
mkoctfile.in.cc:
Replace 1-character string literals "c" with the character literal 'c'.
author | Rik <rik@octave.org> |
---|---|
date | Fri, 28 Jul 2017 15:40:00 -0700 |
parents | 980f39c3ab90 |
children | e3a36f84d01d |
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 |
23219
3ac9f9ecfae5
maint: Update copyright dates.
John W. Eaton <jwe@octave.org>
parents:
23083
diff
changeset
|
3 Copyright (C) 2011-2017 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 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
8 under the terms of the GNU General Public License as published by |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
9 the Free Software Foundation; either version 3 of the License, or |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
10 (at your option) any later version. |
15204
359098ad343e
update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents:
15196
diff
changeset
|
11 |
22755
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
12 Octave is distributed in the hope that it will be useful, but |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
13 WITHOUT ANY WARRANTY; without even the implied warranty of |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3a2b891d0b33
maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents:
22411
diff
changeset
|
15 GNU General Public License for more details. |
15204
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 |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23220
diff
changeset
|
50 resource_manager *resource_manager::instance = nullptr; |
15164
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 ()) |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
58 dsf = (octave::config::oct_etc_dir () |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
59 + octave::sys::file_ops::dir_sep_str () |
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
60 + "default-qt-settings"); |
16593
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 return QString::fromStdString (dsf); |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
63 } |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
64 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
65 resource_manager::resource_manager (void) |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23717
diff
changeset
|
66 : settings_directory (), settings_file (), settings (nullptr), |
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23717
diff
changeset
|
67 default_settings (nullptr) |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
68 { |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
69 #if defined (HAVE_QT4) |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
70 QString home_path |
22250
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
71 = QDesktopServices::storageLocation (QDesktopServices::HomeLocation); |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
72 #else |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
73 QString home_path |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
74 = QStandardPaths::writableLocation (QStandardPaths::HomeLocation); |
2fd4f1a3f4a8
allow building with Qt5 (bug #40252)
John W. Eaton <jwe@octave.org>
parents:
22177
diff
changeset
|
75 #endif |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
76 |
17938
cd97a7ef7355
remove trailing slash from settings directory string
John W. Eaton <jwe@octave.org>
parents:
17930
diff
changeset
|
77 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
|
78 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
79 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
|
80 |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
81 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
|
82 QSettings::IniFormat); |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
83 } |
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 resource_manager::~resource_manager (void) |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
86 { |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
87 delete settings; |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
88 delete default_settings; |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
89 } |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
90 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
91 QString |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
92 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
|
93 { |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
94 // 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
|
95 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
|
96 if (dldir.empty ()) |
23717
06579337237b
move configuration variables inside octave::config namespace
John W. Eaton <jwe@octave.org>
parents:
23457
diff
changeset
|
97 dldir = octave::config::oct_locale_dir (); // env-var empty, load the default location |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
98 return QString::fromStdString (dldir); |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
99 } |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
100 |
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
101 void |
16858
cd29604214c5
Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
102 resource_manager::config_translators (QTranslator *qt_tr, |
cd29604214c5
Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
103 QTranslator *qsci_tr, |
cd29604214c5
Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents:
16641
diff
changeset
|
104 QTranslator *gui_tr) |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
105 { |
16863
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
106 bool loaded; |
c82b3614eace
try harder to load the qt translation files at start up
Torsten <ttl@justmail.de>
parents:
16858
diff
changeset
|
107 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
108 QString qt_trans_dir |
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
109 = QLibraryInfo::location (QLibraryInfo::TranslationsPath); |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
110 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
111 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
|
112 |
15972
22ab4fe661d7
gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents:
15927
diff
changeset
|
113 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
|
114 |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
115 if (settings) |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
116 { |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
117 // get the locale from the settings if already available |
23807
336f89b6208b
Use character literals 'c' rather than string literals "c" when possible.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
118 language = settings->value ("language", "SYSTEM").toString (); |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
119 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
120 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
121 if (language == "SYSTEM") |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
122 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
|
123 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
124 // 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
|
125 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
|
126 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20774
diff
changeset
|
127 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
|
128 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
|
129 |
18020
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
130 // 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
|
131 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
|
132 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20774
diff
changeset
|
133 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
|
134 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
|
135 |
5d42ffc6850a
load translators before welcome wizard and take system language as default
Torsten <ttl@justmail.de>
parents:
18004
diff
changeset
|
136 // 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
|
137 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
|
138 } |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
139 |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
140 bool |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
141 resource_manager::instance_ok (void) |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
142 { |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
143 bool retval = true; |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
144 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
145 if (! instance) |
22411
c69805d1fa64
maint: Style check C++ code in libgui/
Rik <rik@octave.org>
parents:
22323
diff
changeset
|
146 instance = new resource_manager (); |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
147 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
148 if (! instance) |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
149 { |
20428
7ac907da9fba
Use error() rather than ::error() unless explicitly required.
Rik <rik@octave.org>
parents:
19916
diff
changeset
|
150 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
|
151 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
152 retval = false; |
15161
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
153 } |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
154 |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
155 return retval; |
ad9523348676
Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents:
15159
diff
changeset
|
156 } |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
157 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
158 QSettings * |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
159 resource_manager::do_get_settings (void) const |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
160 { |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
161 return settings; |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
162 } |
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
163 |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
164 QSettings * |
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
165 resource_manager::do_get_default_settings (void) const |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
166 { |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
167 return default_settings; |
13537
a43ecce77eec
Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff
changeset
|
168 } |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
169 |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
170 QString |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
171 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
|
172 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
173 return settings_directory; |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
174 } |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
175 |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
176 QString |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
177 resource_manager::do_get_settings_file (void) |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
178 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
179 return settings_file; |
17515
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
180 } |
c8c0dff02538
gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents:
17421
diff
changeset
|
181 |
13539
a4b5cad8f7c6
Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13537
diff
changeset
|
182 void |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
183 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
|
184 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
185 if (! QFile::exists (settings_file)) |
15367
501a9cc2c68f
maint: whitespace cleanup in GUI code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15300
diff
changeset
|
186 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
187 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
|
188 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
|
189 |
20955
77f5591878bf
maint: Use '! expr' rather than '!expr' to conform to coding guidelines.
Rik <rik@octave.org>
parents:
20774
diff
changeset
|
190 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
|
191 return; |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
192 |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
193 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
|
194 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
|
195 qt_settings.close (); |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
196 |
19916
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
197 // Get the default monospaced font |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
198 #if defined (HAVE_QFONT_MONOSPACE) |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
199 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
|
200 fixed_font.setStyleHint (QFont::Monospace); |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
201 QString default_family = fixed_font.defaultFamily (); |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
202 #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
|
203 QString default_family = "Courier New"; |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
204 #elif defined (Q_WS_MAC) |
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 #else |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
207 QString default_family = "courier"; |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
208 #endif |
19916
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
209 |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
210 // Get the default custom editor |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
211 #if defined (Q_OS_WIN32) |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
212 QString custom_editor = "notepad++ -n%l %f"; |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
213 #else |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
214 QString custom_editor = "emacs +%l %f"; |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
215 #endif |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
216 |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
217 // Replace placeholders |
6049bdfa8d56
make notepad++ the custom default editor in windows
Torsten <ttl@justmail.de>
parents:
19899
diff
changeset
|
218 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
|
219 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
|
220 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
|
221 |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
222 QFile user_settings (settings_file); |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
223 |
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
224 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
|
225 return; |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
226 |
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
227 QTextStream out (&user_settings); |
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 out << settings_text; |
18036
c97ee13f1027
fix build for systems without QFont::Monospace
John W. Eaton <jwe@octave.org>
parents:
18020
diff
changeset
|
230 |
18004
b001d9e9fd17
add systems default monospace font for terminal and editor to default settings
Torsten <ttl@justmail.de>
parents:
17943
diff
changeset
|
231 user_settings.close (); |
15367
501a9cc2c68f
maint: whitespace cleanup in GUI code
Jordi Gutiérrez Hermoso <jordigh@octave.org>
parents:
15300
diff
changeset
|
232 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
233 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
234 do_set_settings (settings_file); |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
235 } |
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
|
236 |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
237 void |
15300
fd27e10b9b05
pass QString by const reference instead of value
John W. Eaton <jwe@octave.org>
parents:
15204
diff
changeset
|
238 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
|
239 { |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
240 delete settings; |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
241 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
|
242 |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
243 if (! (settings |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
244 && 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
|
245 && settings->isWritable () |
21568
3d60ed163b70
maint: Eliminate bad spacing around '='.
Rik <rik@octave.org>
parents:
21301
diff
changeset
|
246 && 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
|
247 { |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
248 QString msg = QString (QT_TR_NOOP ( |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
249 "The settings file\n%1\n" |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19697
diff
changeset
|
250 "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
|
251 "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
|
252 "Octave GUI must be closed now.")); |
23795
980f39c3ab90
Use C++11 nullptr rather than 0 in code (bug #51565).
Rik <rik@octave.org>
parents:
23717
diff
changeset
|
253 QMessageBox::critical (nullptr, QString (QT_TR_NOOP ("Octave Critical Error")), |
17943
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
254 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
|
255 exit (1); |
efe3e288a20c
check the creation of settings object for success before starting the gui
Torsten <ttl@justmail.de>
parents:
17938
diff
changeset
|
256 } |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
257 } |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
258 |
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
259 bool |
16593
e13051d7a472
allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents:
16379
diff
changeset
|
260 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
|
261 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
262 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
|
263 } |
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
264 |
421afeae929b
Added a settings wizard that appears at first startup of Octave GUI.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13665
diff
changeset
|
265 void |
15164
bc801a44bb1f
follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents:
15161
diff
changeset
|
266 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
|
267 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
268 if (settings) |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
269 { |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
270 QNetworkProxy::ProxyType proxyType = QNetworkProxy::NoProxy; |
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 if (settings->value ("useProxyServer",false).toBool ()) |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
273 { |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
274 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
|
275 |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
276 if (proxyTypeString == "Socks5Proxy") |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
277 proxyType = QNetworkProxy::Socks5Proxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
278 else if (proxyTypeString == "HttpProxy") |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
279 proxyType = QNetworkProxy::HttpProxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
280 } |
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 QNetworkProxy proxy; |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
283 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
284 proxy.setType (proxyType); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
285 proxy.setHostName (settings->value ("proxyHostName").toString ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
286 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
|
287 proxy.setUser (settings->value ("proxyUserName").toString ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
288 proxy.setPassword (settings->value ("proxyPassword").toString ()); |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
289 |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
290 QNetworkProxy::setApplicationProxy (proxy); |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
291 } |
17930
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
292 else |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
293 { |
ffdbb82a0c78
allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents:
17790
diff
changeset
|
294 // 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
|
295 } |
13607
fd31226d4c3a
Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13571
diff
changeset
|
296 } |
13613
8728061cd0ec
Icons are now maintained by the ResourceManager.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
13609
diff
changeset
|
297 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
298 QStringList |
16610
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
299 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
|
300 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
301 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
|
302 } |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
303 |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
304 QList<QColor> |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
305 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
|
306 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
307 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
|
308 } |
a1f613e5066d
workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents:
16593
diff
changeset
|
309 |
17790
86c6ae5f969e
Use GNU style coding conventions for code in libgui/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
310 QStringList |
16620
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
311 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
|
312 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
313 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
|
314 } |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
315 |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
316 QList<QColor> |
818eef7b2618
allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents:
16610
diff
changeset
|
317 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
|
318 { |
16641
64f9a3e301d3
don't store default values in resource manager class
John W. Eaton <jwe@octave.org>
parents:
16620
diff
changeset
|
319 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
|
320 } |
19899 | 321 |
322 QIcon | |
323 resource_manager::do_icon (const QString& icon_name, bool fallback) | |
324 { | |
325 if (fallback) | |
326 return QIcon::fromTheme (icon_name, | |
327 QIcon (":/actions/icons/" + icon_name + ".png")); | |
328 else | |
329 return QIcon::fromTheme (icon_name); | |
330 } | |
20774
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
331 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
332 // 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
|
333 void |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
334 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
|
335 { |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
336 // 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
|
337 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
|
338 QStringList all_codecs; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
339 foreach (int mib, all_mibs) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
340 { |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
341 QTextCodec *c = QTextCodec::codecForMib (mib); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
342 all_codecs << c->name ().toUpper (); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
343 } |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
344 all_codecs.removeDuplicates (); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
345 qSort (all_codecs); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
346 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
347 // the default encoding |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
348 #if defined (Q_OS_WIN32) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
349 QString def_enc = "SYSTEM"; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
350 #else |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
351 QString def_enc = "UTF-8"; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
352 #endif |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
353 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
354 // 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
|
355 QString enc = current; |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
356 if (enc.isEmpty ()) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
357 { |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
358 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
|
359 if (enc.isEmpty ()) // still empty? |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
360 enc = def_enc; // take default |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
361 } |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
362 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
363 // fill the combo box |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
364 foreach (QString c, all_codecs) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
365 combo->addItem (c); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
366 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
367 // prepend the default item |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
368 combo->insertSeparator (0); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
369 combo->insertItem (0, def_enc); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
370 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
371 // select the current/default item |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
372 int idx = combo->findText (enc); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
373 if (idx >= 0) |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
374 combo->setCurrentIndex (idx); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
375 else |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
376 combo->setCurrentIndex (0); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
377 |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
378 combo->setMaxVisibleItems (12); |
5c5e085a1ae6
allow selecting an encoding when saving a file (bug #45688)
Torsten <ttl@justmail.de>
parents:
20428
diff
changeset
|
379 } |