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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
321
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
322 QIcon
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
323 resource_manager::do_icon (const QString& icon_name, bool fallback)
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
324 {
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
325 if (fallback)
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
326 return QIcon::fromTheme (icon_name,
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
327 QIcon (":/actions/icons/" + icon_name + ".png"));
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
328 else
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
329 return QIcon::fromTheme (icon_name);
a8a5415b05cb new gui icons
Torsten <ttl@justmail.de>
parents: 19861
diff changeset
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 }