Cross-platform support and related things have been discussed in many topics in old forums and numerous tracker items. So far we have cleaned up lots of non-GUI code from MFC. Which doesn't yet mean it is all cross-platform, but it is remarkably easier to convert.
I've started experimentation project to see if QT
could be used in WinMerge. I've started programming WinMerge QT-port
from scrach with QT and QScintilla. The code repository is in http://bitbucket.org/kimmov/winmergeqt/
. You can clone it with Mercurial
So far my code just creates editor view and enables syntax highlighting for C/CPP files. So it is in very beginning. But I intend to try to implement features we currently depend on WinMerge. Like adding block highlighting (for diffs), additional panes etc etc.
I think the big question for many is why QT? Simply because QT is currently the most interesting GUI (and cross-platform) framework. It is technically superior to wxwidgets
(sorry wx fans but it is). My main problem wit wxwidgets is it mimics Windows/MFC programming model which makes easier to port code from MFC but it is also hacky and ugly (with all those message handler macros etc). Earlier I didn't want to use QT because of its licensing. And lack of free Visual Studio support in Windows. Last releases have fixed all these. I've been programming QT with Visual Studio past months and much enjoyed it.
If my experiments succeed it will be very likely I'll continue working with QT porting. Even though it means rewriting most of the GUI. It will be a lot of work, but it will be also worth of it. We'll have a good change to get rid of lots of old cruft and hacks around.