summaryrefslogtreecommitdiffstats
path: root/src/preferences.cpp
diff options
context:
space:
mode:
authorKrzysztof Kosi??ski <tweenk.pl@gmail.com>2009-02-26 13:40:18 +0000
committertweenk <tweenk@users.sourceforge.net>2009-02-26 13:40:18 +0000
commitf70a9f2048cf268a2fcb10d71935e449fd8e44f3 (patch)
tree231d2839f6c23670e4af992632c91f6c0335b2b5 /src/preferences.cpp
parentRemove the svn:executable property from README.ca.txt (diff)
downloadinkscape-f70a9f2048cf268a2fcb10d71935e449fd8e44f3.tar.gz
inkscape-f70a9f2048cf268a2fcb10d71935e449fd8e44f3.zip
Tentative fix for LP bug #168922: don't save prefs n crash handler
(bzr r7376)
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;