annotate libgui/src/resource-manager.h @ 19697:4197fc428c7d

maint: Update copyright notices for 2015.
author John W. Eaton <jwe@octave.org>
date Wed, 11 Feb 2015 14:19:08 -0500
parents 866d3860724c
children a8a5415b05cb
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
19697
4197fc428c7d maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents: 17974
diff changeset
3 Copyright (C) 2011-2015 Jacob Dawid
15204
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
4
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
5 This file is part of Octave.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
6
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
7 Octave is free software; you can redistribute it and/or modify it
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
8 under the terms of the GNU General Public License as published by the
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
9 Free Software Foundation; either version 3 of the License, or (at your
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
10 option) any later version.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
11
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
12 Octave is distributed in the hope that it will be useful, but WITHOUT
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
13 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
15 for more details.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
16
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
17 You should have received a copy of the GNU General Public License
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
18 along with Octave; see the file COPYING. If not, see
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
19 <http://www.gnu.org/licenses/>.
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
20
359098ad343e update copyright notices in libgui directory
John W. Eaton <jwe@octave.org>
parents: 15196
diff changeset
21 */
13539
a4b5cad8f7c6 Added command line parser class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13537
diff changeset
22
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
23 #ifndef RESOURCEMANAGER_H
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
24 #define RESOURCEMANAGER_H
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
25
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
26 #include <QDesktopServices>
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
27 #include <QIcon>
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
28 #include <QMap>
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
29 #include <QSettings>
15972
22ab4fe661d7 gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents: 15914
diff changeset
30 #include <QTranslator>
15787
b081fbe80174 provide separate icons for gui's floating widgets
Torsten <ttl@justmail.de>
parents: 15300
diff changeset
31
17974
866d3860724c add missing Q_OBJECT macros
Torsten <ttl@justmail.de>
parents: 17930
diff changeset
32 class resource_manager : public QObject
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
33 {
17974
866d3860724c add missing Q_OBJECT macros
Torsten <ttl@justmail.de>
parents: 17930
diff changeset
34 Q_OBJECT
866d3860724c add missing Q_OBJECT macros
Torsten <ttl@justmail.de>
parents: 17930
diff changeset
35
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
36 protected:
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
37
17974
866d3860724c add missing Q_OBJECT macros
Torsten <ttl@justmail.de>
parents: 17930
diff changeset
38 public:
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
39
17974
866d3860724c add missing Q_OBJECT macros
Torsten <ttl@justmail.de>
parents: 17930
diff changeset
40 resource_manager (void);
13613
8728061cd0ec Icons are now maintained by the ResourceManager.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13607
diff changeset
41
14709
f50591409306 Started to rename class names and methods from camel case to underscore-
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 14707
diff changeset
42 ~resource_manager ();
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
43
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
44 static QSettings *get_settings (void)
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
45 {
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
46 return instance_ok () ? instance->do_get_settings () : 0;
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
47 }
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
48
16593
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
49 static QSettings *get_default_settings (void)
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
50 {
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
51 return instance_ok () ? instance->do_get_default_settings () : 0;
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
52 }
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
53
17515
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
54 static QString get_settings_file (void)
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
55 {
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
56 return instance_ok () ? instance->do_get_settings_file () : QString ();
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
57 }
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
58
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
59 static void reload_settings (void)
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
60 {
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
61 if (instance_ok ())
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
62 instance->do_reload_settings ();
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
63 }
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
64
15300
fd27e10b9b05 pass QString by const reference instead of value
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
65 static void set_settings (const QString& file)
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
66 {
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
67 if (instance_ok ())
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
68 instance->do_set_settings (file);
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
69 }
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
70
15972
22ab4fe661d7 gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents: 15914
diff changeset
71 static QString get_gui_translation_dir (void);
22ab4fe661d7 gui: selectable language in settings dialog
Torsten <ttl@justmail.de>
parents: 15914
diff changeset
72
16858
cd29604214c5 Use the Qscintilla langiage file if available
Torsten <ttl@justmail.de>
parents: 16620
diff changeset
73 static void config_translators (QTranslator*, QTranslator*, QTranslator*);
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
74
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
75 static void update_network_settings (void)
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
76 {
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
77 if (instance_ok ())
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
78 instance->do_update_network_settings ();
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
79 }
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
80
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
81 static bool is_first_run (void)
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
82 {
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
83 return instance_ok () ? instance->do_is_first_run () : true;
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
84 }
15081
d02b229ce693 Cleaned up icon positions. Removed icon loading from resource manager.
Jacob Dawid <jacob.dawid@gmail.com>
parents: 14804
diff changeset
85
16610
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16593
diff changeset
86 static QString storage_class_chars (void) { return "afghip"; }
a1f613e5066d workspace view colors based upon variable scope (derived from Dan's patch #8013)
Torsten <ttl@justmail.de>
parents: 16593
diff changeset
87 static QStringList 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
88 static QList<QColor> storage_class_default_colors (void);
13607
fd31226d4c3a Proxy settings can now be configured.
Jacob Dawid <jacob.dawid@googlemail.com>
parents: 13551
diff changeset
89
16620
818eef7b2618 allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents: 16610
diff changeset
90 static QString terminal_color_chars (void) { return "fbsc"; }
818eef7b2618 allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents: 16610
diff changeset
91 static QStringList terminal_color_names (void);
818eef7b2618 allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents: 16610
diff changeset
92 static QList<QColor> terminal_default_colors (void);
818eef7b2618 allow terminal colors to be set from preferences dialog
John W. Eaton <jwe@octave.org>
parents: 16610
diff changeset
93
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
94 private:
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
95
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
96 static resource_manager *instance;
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
97
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
98 static void cleanup_instance (void) { delete instance; instance = 0; }
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
99
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
100 // No copying!
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
101
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
102 resource_manager (const resource_manager&);
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
103
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
104 resource_manager& operator = (const resource_manager&);
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
105
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
106 static bool instance_ok (void);
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
107
17930
ffdbb82a0c78 allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
108 QString settings_directory;
ffdbb82a0c78 allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
109
ffdbb82a0c78 allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
110 QString settings_file;
ffdbb82a0c78 allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
111
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
112 QSettings *settings;
15161
ad9523348676 Make resource_manager a singleton with Octave conventions
Mike Miller <mtmiller@ieee.org>
parents: 15081
diff changeset
113
16593
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
114 QSettings *default_settings;
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
115
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
116 QSettings *do_get_settings (void) const;
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
117
16593
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
118 QSettings *do_get_default_settings (void) const;
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
119
17515
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
120 QString do_get_settings_file (void);
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
121
17930
ffdbb82a0c78 allow welcome wizard dialog to be canceled
John W. Eaton <jwe@octave.org>
parents: 17744
diff changeset
122 QString do_get_settings_directory (void);
17515
c8c0dff02538 gui: welcome wizard with new message text
Torsten <ttl@justmail.de>
parents: 17421
diff changeset
123
15164
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
124 void do_reload_settings (void);
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
125
15300
fd27e10b9b05 pass QString by const reference instead of value
John W. Eaton <jwe@octave.org>
parents: 15204
diff changeset
126 void 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
127
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
128 void do_update_network_settings (void);
bc801a44bb1f follow Octave pattern for resource_manager singleton
John W. Eaton <jwe@octave.org>
parents: 15161
diff changeset
129
16593
e13051d7a472 allow GUI window layout to be restored
John W. Eaton <jwe@octave.org>
parents: 15972
diff changeset
130 bool do_is_first_run (void) const;
15914
85f9aca30c76 gui: reorganized handling of different icons for dock widgets
Torsten <ttl@justmail.de>
parents: 15894
diff changeset
131
13537
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
132 };
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
133
a43ecce77eec Introduced a central ResourceManager class.
Jacob Dawid <jacob.dawid@googlemail.com>
parents:
diff changeset
134 #endif // RESOURCEMANAGER_H