On Mon, Oct 20, 2008 at 6:28 PM, Krzysztof KosiĆski <tweenk.pl@...400...> wrote:
- Tools tree. This is one of the last big chunks of GObject left in the
codebase. It's also rather messy - for example, every tool has a gradient dragger but in reality it only makes sense for the Node and Gradient tools. Converting this hierarchy to C++ would be a great step forward. It would also get rid of toolbox.cpp.
Gradient dragger does indeed make sense in many tools, not only in those two - or rather, its absense would make little sense. I agree that tools code and especially the gigantic toolbox.cpp may benefit from some refactoring, but gradient dragger is pretty orthogonal to all this and that's a good thing.
- Memory leak problem (?). Inkscape is constantly eating memory even when
idle. Is anyone aware of why is this happening? Also of note is the fact that creating a single rect can take up to 250 kilobytes.
I would vote for this one, as it gives the most immediate benefit to the users. I have recently done some work on this, mostly fixing ref/unref pairs on reprs and deleting closed documents from memory, but obviously more work is needed here.
- Verbs. It looks like verbs.cpp is a reimplementation of Gtk::Action with
some extra features. I don't know this part of Inkscape very well but it looks like we could create an Inkscape::UndoableAction deriving from Gtk::Action and use it instead of verbs. We could then use Gtk::UIManager to build menus and toolbars.
I think undoability is the property of XML tree and need not be introduced into verbs, which may represent any kind of action at all, be it changing the document or not. As far as I remember, right now we already can directly add verbs to toolbars, no?