Mercurial > hg > octave-nkf
diff gui/src/resource-manager.cc @ 15164:bc801a44bb1f
follow Octave pattern for resource_manager singleton
* resource-manager.h, resource-manager.cc: Don't expose pointer to
instance. Use static forwarding functions to access instance and
perform actions.
* files-dockwidget.cc, file-editor-tab.cc, lexer-octave-gui.cc,
main-window.cc, octave-gui.cc, settings-dialog.cc, workspace-view.cc:
Use resource_manager::METHOD instead of
resource_manager::instance()->METHOD.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 13 Aug 2012 12:16:26 -0400 |
parents | ad9523348676 |
children |
line wrap: on
line diff
--- a/gui/src/resource-manager.cc +++ b/gui/src/resource-manager.cc @@ -34,51 +34,59 @@ #include "resource-manager.h" -resource_manager *resource_manager::_instance = 0; +resource_manager *resource_manager::instance = 0; + +resource_manager::resource_manager (void) + : settings (0), home_path (), first_run (false) +{ + do_reload_settings (); +} + +resource_manager::~resource_manager (void) +{ + delete settings; +} + +QString +resource_manager::find_translator_file (QString language) +{ + // TODO: Quick hack to be able to test language files. + return QString ("../languages/%1.qm").arg (language); +} bool -resource_manager::instance_ok () +resource_manager::instance_ok (void) { bool retval = true; - if (! _instance) + if (! instance) { - _instance = new resource_manager (); + instance = new resource_manager (); - if (_instance) + if (instance) singleton_cleanup_list::add (cleanup_instance); } - if (! _instance) + if (! instance) { ::error ("unable to create resource_manager object!"); + + retval = false; } return retval; } -resource_manager::resource_manager () +QSettings * +resource_manager::do_get_settings (void) { - _settings = 0; - _first_run = false; - reload_settings (); -} - -resource_manager::~resource_manager () -{ - delete _settings; -} - -QSettings * -resource_manager::get_settings () -{ - return _settings; + return settings; } QString -resource_manager::get_home_path () +resource_manager::do_get_home_path (void) { - return _home_path; + return home_path; } static std::string @@ -93,11 +101,11 @@ } void -resource_manager::reload_settings () +resource_manager::do_reload_settings (void) { QDesktopServices desktopServices; - _home_path = desktopServices.storageLocation (QDesktopServices::HomeLocation); - QString settings_path = _home_path + "/.config/octave/"; + home_path = desktopServices.storageLocation (QDesktopServices::HomeLocation); + QString settings_path = home_path + "/.config/octave/"; QString settings_file = settings_path + "qt-settings"; if (!QFile::exists (settings_file)) @@ -105,63 +113,55 @@ QDir("/").mkpath (settings_path); QFile::copy (QString::fromStdString (default_qt_settings_file ()), settings_file); - _first_run = true; + first_run = true; } else - _first_run = false; + first_run = false; + + do_set_settings (settings_file); +} - set_settings (settings_file); +void +resource_manager::do_set_settings (QString file) +{ + delete settings; + settings = new QSettings (file, QSettings::IniFormat); +} + +bool +resource_manager::do_is_first_run (void) +{ + return first_run; } void -resource_manager::set_settings (QString file) -{ - delete _settings; - _settings = new QSettings (file, QSettings::IniFormat); -} - -QString -resource_manager::find_translator_file (QString language) -{ - // TODO: Quick hack to be able to test language files. - return QString("../languages/%1.qm").arg(language); -} - - -bool -resource_manager::is_first_run () -{ - return _first_run; -} - -void -resource_manager::update_network_settings () +resource_manager::do_update_network_settings (void) { QNetworkProxy::ProxyType proxyType = QNetworkProxy::NoProxy; - if (_settings->value ("useProxyServer").toBool ()) + + if (settings->value ("useProxyServer").toBool ()) { - QString proxyTypeString = _settings->value ("proxyType").toString (); + QString proxyTypeString = settings->value ("proxyType").toString (); + if (proxyTypeString == "Socks5Proxy") - { - proxyType = QNetworkProxy::Socks5Proxy; - } + proxyType = QNetworkProxy::Socks5Proxy; else if (proxyTypeString == "HttpProxy") - { - proxyType = QNetworkProxy::HttpProxy; - } + proxyType = QNetworkProxy::HttpProxy; } QNetworkProxy proxy; + proxy.setType (proxyType); - proxy.setHostName (_settings->value ("proxyHostName").toString ()); - proxy.setPort (_settings->value ("proxyPort").toInt ()); - proxy.setUser (_settings->value ("proxyUserName").toString ()); - proxy.setPassword (_settings->value ("proxyPassword").toString ()); + proxy.setHostName (settings->value ("proxyHostName").toString ()); + proxy.setPort (settings->value ("proxyPort").toInt ()); + proxy.setUser (settings->value ("proxyUserName").toString ()); + proxy.setPassword (settings->value ("proxyPassword").toString ()); + QNetworkProxy::setApplicationProxy (proxy); } const char* -resource_manager::octave_keywords () +resource_manager::octave_keywords (void) { return ".nargin. "