Mercurial > octave
diff 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 |
line wrap: on
line diff
--- a/libgui/src/resource-manager.cc Mon Apr 29 16:47:23 2013 -0400 +++ b/libgui/src/resource-manager.cc Mon Apr 29 17:40:41 2013 -0400 @@ -42,15 +42,30 @@ resource_manager *resource_manager::instance = 0; +static QString +default_qt_settings_file (void) +{ + std::string dsf = octave_env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS"); + + if (dsf.empty ()) + dsf = Voct_etc_dir + file_ops::dir_sep_str () + "default-qt-settings"; + + return QString::fromStdString (dsf); +} + resource_manager::resource_manager (void) : settings (0), home_path (), first_run (false) { do_reload_settings (); + + default_settings = new QSettings (default_qt_settings_file (), + QSettings::IniFormat); } resource_manager::~resource_manager (void) { delete settings; + delete default_settings; } @@ -104,26 +119,21 @@ } QSettings * -resource_manager::do_get_settings (void) +resource_manager::do_get_settings (void) const { return settings; } -QString -resource_manager::do_get_home_path (void) +QSettings * +resource_manager::do_get_default_settings (void) const { - return home_path; + return default_settings; } -static std::string -default_qt_settings_file (void) +QString +resource_manager::do_get_home_path (void) const { - std::string dsf = octave_env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS"); - - if (dsf.empty ()) - dsf = Voct_etc_dir + file_ops::dir_sep_str () + "default-qt-settings"; - - return dsf; + return home_path; } void @@ -137,8 +147,7 @@ if (!QFile::exists (settings_file)) { QDir("/").mkpath (settings_path); - QFile::copy (QString::fromStdString (default_qt_settings_file ()), - settings_file); + QFile::copy (default_qt_settings_file (), settings_file); first_run = true; } else @@ -155,7 +164,7 @@ } bool -resource_manager::do_is_first_run (void) +resource_manager::do_is_first_run (void) const { return first_run; }