diff options
Diffstat (limited to 'src/preferences.cpp')
| -rw-r--r-- | src/preferences.cpp | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/src/preferences.cpp b/src/preferences.cpp index ea3c015ef..16b775b34 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -73,10 +73,7 @@ Preferences::Preferences() : } Preferences::~Preferences() -{ - // when the preferences are unloaded, save them - save(); - +{ // delete all PrefNodeObservers for (_ObsMap::iterator i = _observer_map.begin(); i != _observer_map.end(); ) { delete (*i++).second; // avoids reference to a deleted key @@ -637,6 +634,16 @@ Preferences::Entry const Preferences::_create_pref_value(Glib::ustring const &pa return Entry(path, ptr); } +void Preferences::unload(bool save) +{ + if(_instance) + { + if (save) _instance->save(); + delete _instance; + _instance = NULL; + } +} + Preferences *Preferences::_instance = NULL; |
