summaryrefslogtreecommitdiffstats
path: root/src/preferences.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/preferences.cpp')
-rw-r--r--src/preferences.cpp15
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;