
I have some doubts about the adaptable UI feature.
Part 1: UI issues - The UI mode selection combo box (called "Task" for some reason) has usability problems: 1. it jumps around when changing mode, so every time I change it, I have to find it again to try another mode; 2. when the main commands toolbar is vertical, it causes a very large horizontal padding on it, even when it's hidden in the overflow menu. - Tearing off toolbars does not adjust their size to fit the controls. If I tear off a toolbar from a small window, I get a toolbar with an overflow menu. If I tear off from a maximized window, I get a toolbar with lots of unused space. This makes tearing off highly useless. - Toolbars can be torn off but can't be attached in a location different that the original one. This is because they use GtkHandleBox, for which the docking position is fixed. At the same time GDL has a widget named GdlDockBar which sounds like a true dockable toolbar (but it might as well be something else, I don't know).
Part 2: UxManager class - UxManager::setTask: Magic constants in switch. - UxManager constructor: "tags" is created but doesn't do anything. - What is the point of having several desktops attached to one UxManager?
Part 3: util/ege-tags.h, util/ege-tags.cpp - ege-tags.h: It supposedly implements http://create.freedesktop.org/wiki/ResourceTagging but at present I don't see any place in Inkscape that could make use of tagging. - Even if the aforementioned specification was good, the UxManager class apparently tries to do two completely unrelated things: manage external resources and change the UI mode. - TagSet: if I understand correctly what this class attempts to do, it should use std::tr1::unordered_map<Tag, int> with appropriate hash and equality predicates instead of the combination of std::vector<Tag> and std::map<std::string, int>.
Part 4: other problems - toolbox.cpp:1578: code related to changing the UI layout uses a switch to assign function pointers. Polymorphism should be used instead.
Regards, Krzysztof