
Before we can think about a release, one thing we absolutely must do is clean up the current mess with dialogs. Everyone who did dialogs recently (and there were a lot) did it in their own incompatible way. (Personally, I attribute this to the lack of attention and leadership from the initiators of the gtkmm transition, but there's no use to argue about that now; let's just fix what we have.)
Recently I've been working on the Dialog and DialogManager classes in ui/dialog, and I almost fixed them with regard to things like transientizing, remembering geometry, and F12 behavior. There are remaining issues still but I'm pretty sure I'll be able to fix them.
Unfortunately, many dialogs do not use these classes or use them in a wrong way. The old gtk dialogs need not be touched at this time; they are OK as they are, and we can always convert them later. What needs to be fixed urgently is the recenty added gtkmm dialogs, all of which are broken in different ways.
The simplest dialog to use as a template is ui/dialog/messages.cpp; another is ui/dialog/memory.cpp. To create a dialog, you need to pass the prefs path (path in the preferences.xml for the dialog settings; make sure it exists in preferences-skeleton.h) and the verb that creates the dialog (make sure it exists in verbs.h/cpp). E.g.:
Messages::Messages() : Dialog ("dialogs.messages", SP_VERB_DIALOG_DEBUG)
You also need to register the dialog's factory in DIalogManager constructor and to make sure its verb in verbs.cpp does the right thing:
case SP_VERB_DIALOG_DEBUG: dt->_dlg_mgr->showDialog("Messages"); break;
Also don't forget to remove your own F12 handlers, event handles, transientizing code, title setting, size setting etc. if you have it in your dialog classes. This is all in Dialog now. Not only will this stuff finally work as it must, but this will lead to a significant reducing of code.
Here are the dialogs that need to be converted:
Align: Unless Aubanel Monnier (who coded it initially) shows up, I think I'll have to take this one.
View/Scripts and Path/Trace Bitmap: Bob, these are yours, so please take them. This needs to be done ASAP because currently these two are totally disfunctional - they don't show up when you call them. (This may be because they used ui/dialog code in some partial way and this is now broken after my changes there.)
Object/Grid Arrange: John, this one is yours, please convert it - also ASAP because it's broken in the same way as Bob's ones.
Object/Swatches and Help/About Extensions: Jon, these are yours. I know you did your own implementation but we now need to unify things. You can move whatever useful code you have into Dialog, but _that_ must be the root class of all dialogs now. No more duplication please. This will also fix the many problems your dialogs now have (such as popping up after being closed when any new dialog is opened).
Jon, Bob, John: Please respond to this message with your estimate as to when you will be able to work on this. If you cannot handle this now or in foreseeable future, we'll need to call up volunteers for this work. Of course, please also voice any questions or objections you might have.
Oh, and if anyone creates a new dialog now, please use ui/dialog/messages.cpp as a template. Don't copy from any other dialogs until they are fixed.