
I have committed a rewrite of the preferences system. The old Inkscape::Preferences stub class was replaced by a meaningful singleton, and everything in prefs-utils.h except the recent file list was replaced with stub functions using the new class. I replaced all instances of prefs_get_string_attribute(), create_pref(), pref_path_number_of_children() and pref_path_get_nth_children(). I'll now concentrate on refactoring code which contains calls to inkscape_get_repr() - it is equivalent to the new _getNode member function, but it should be private. I have also introduced boolean preferences in a backwards-compatible way - generally you can replace prefs_get_int_attribute_limited(blah1, blah2, 0, 1, 0) with prefs->getBool(blah1, blah2).
There is however some weird breakage in the Calligraphy tool - e.g. sometimes it seems that tracing is on while the widgets indicate that it is off. I don't know whether this is something introduced by the rewrite or a pre-existing bug. Can someone more familiar with this code (widgets/toolbox.cpp) take a look?