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