Mercurial > octave
comparison libgui/src/resource-manager.cc @ 16593:e13051d7a472
allow GUI window layout to be restored
* main-window.h, main-window.cc (main_window::set_window_layout):
New function.
(main_window::read_settings): Call set_window_layout for current
settings.
(main_window::reset_windows): Call set_window_layout for default
settings.
(main_window::construct_window_menu): Enable reset_windows_action.
* resource-manager.h, resource-manager.cc (default_qt_settings_file):
Return QString instead of std::string. Change all callers.
(resource_manager::default_settings): New member variable.
(resource_manager::resource_manager): Initialize default_settings.
(resource_manager::~resource_manager): Delete default_settings.
(resource_manager::get_default_settings,
resource_manager::do_get_default_settings): New functions.
(resource_manager::do_is_first_run, resource_manager::do_get_settings,
resource_manager::do_get_home_path): Now const.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 29 Apr 2013 17:40:41 -0400 |
parents | 4bb1b82076e5 |
children | a1f613e5066d |
comparison
equal
deleted
inserted
replaced
16592:d70f61485e5f | 16593:e13051d7a472 |
---|---|
40 | 40 |
41 #include "resource-manager.h" | 41 #include "resource-manager.h" |
42 | 42 |
43 resource_manager *resource_manager::instance = 0; | 43 resource_manager *resource_manager::instance = 0; |
44 | 44 |
45 static QString | |
46 default_qt_settings_file (void) | |
47 { | |
48 std::string dsf = octave_env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS"); | |
49 | |
50 if (dsf.empty ()) | |
51 dsf = Voct_etc_dir + file_ops::dir_sep_str () + "default-qt-settings"; | |
52 | |
53 return QString::fromStdString (dsf); | |
54 } | |
55 | |
45 resource_manager::resource_manager (void) | 56 resource_manager::resource_manager (void) |
46 : settings (0), home_path (), first_run (false) | 57 : settings (0), home_path (), first_run (false) |
47 { | 58 { |
48 do_reload_settings (); | 59 do_reload_settings (); |
60 | |
61 default_settings = new QSettings (default_qt_settings_file (), | |
62 QSettings::IniFormat); | |
49 } | 63 } |
50 | 64 |
51 resource_manager::~resource_manager (void) | 65 resource_manager::~resource_manager (void) |
52 { | 66 { |
53 delete settings; | 67 delete settings; |
68 delete default_settings; | |
54 } | 69 } |
55 | 70 |
56 | 71 |
57 QString | 72 QString |
58 resource_manager::get_gui_translation_dir (void) | 73 resource_manager::get_gui_translation_dir (void) |
102 | 117 |
103 return retval; | 118 return retval; |
104 } | 119 } |
105 | 120 |
106 QSettings * | 121 QSettings * |
107 resource_manager::do_get_settings (void) | 122 resource_manager::do_get_settings (void) const |
108 { | 123 { |
109 return settings; | 124 return settings; |
110 } | 125 } |
111 | 126 |
127 QSettings * | |
128 resource_manager::do_get_default_settings (void) const | |
129 { | |
130 return default_settings; | |
131 } | |
132 | |
112 QString | 133 QString |
113 resource_manager::do_get_home_path (void) | 134 resource_manager::do_get_home_path (void) const |
114 { | 135 { |
115 return home_path; | 136 return home_path; |
116 } | |
117 | |
118 static std::string | |
119 default_qt_settings_file (void) | |
120 { | |
121 std::string dsf = octave_env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS"); | |
122 | |
123 if (dsf.empty ()) | |
124 dsf = Voct_etc_dir + file_ops::dir_sep_str () + "default-qt-settings"; | |
125 | |
126 return dsf; | |
127 } | 137 } |
128 | 138 |
129 void | 139 void |
130 resource_manager::do_reload_settings (void) | 140 resource_manager::do_reload_settings (void) |
131 { | 141 { |
135 QString settings_file = settings_path + "qt-settings"; | 145 QString settings_file = settings_path + "qt-settings"; |
136 | 146 |
137 if (!QFile::exists (settings_file)) | 147 if (!QFile::exists (settings_file)) |
138 { | 148 { |
139 QDir("/").mkpath (settings_path); | 149 QDir("/").mkpath (settings_path); |
140 QFile::copy (QString::fromStdString (default_qt_settings_file ()), | 150 QFile::copy (default_qt_settings_file (), settings_file); |
141 settings_file); | |
142 first_run = true; | 151 first_run = true; |
143 } | 152 } |
144 else | 153 else |
145 first_run = false; | 154 first_run = false; |
146 | 155 |
153 delete settings; | 162 delete settings; |
154 settings = new QSettings (file, QSettings::IniFormat); | 163 settings = new QSettings (file, QSettings::IniFormat); |
155 } | 164 } |
156 | 165 |
157 bool | 166 bool |
158 resource_manager::do_is_first_run (void) | 167 resource_manager::do_is_first_run (void) const |
159 { | 168 { |
160 return first_run; | 169 return first_run; |
161 } | 170 } |
162 | 171 |
163 void | 172 void |