Qt->glib main event loop patch (common main loop)

nf2 nf2 at scheinwelt.at
Thu Nov 10 14:09:44 GMT 2005

Michael Pyne wrote:

>On Sunday 06 November 2005 17:22, nf2 wrote:
>>I have rewritten my Qt->glib main event loop patch completely. It adds
>>an optional "-glibmainloop" switch to the ./configure script of Qt,
>>which integrates a modified QEventloop as a GSource into glib main loop.
>>I have tested lots of KDE applications with the patched Qt, including
>>the whole KDE desktop. Seems to work quite well.
>I don't have time to test the patch, but the work seems very interesting, at 
>least from a technical perspective.
>I'll admit that I don't see many (real-world) benefits yet, except perhaps for 
>sharing KIO between KDE and GTK but perhaps you'll dazzle us with something 
>whiz-tastic or something.
> - Michael Pyne
I think a common-main-loop would solve several problems of the free 
desktop. Two use cases:

A) generic desktop adapter library

My favorite is "libdesktop-adapter", which exposes a standardized set of 

* file-dialogs
* vfs (simple features like download and upload file)
* ...

Applications load the appropriate desktop-adapter with dlopen(), 
depending on the desktop they are running in.


Therefore applications like OpenOffice.org, Mozilla, The Gimp,... would 
automatically use KDE Filechoosers and KIO on KDE, Gnome-Filechooser and 
Gnome-VFS on Gnome,...

"libdesktop-adapter" would create two classes of applications:

1) desktop specific apps: like konqueror, nautilus,... which link to 
Filechoosers, VFS libraries directly.
2) Cross-desktop applications, which use the desktop-adapter libraries 
to integrate well with any desktop, no matter which GUI-Toolkit they use.

B) GParts

Another interesting project which would benefit from a common main loop, 
is GParts (http://gparts.blogspot.com/).
Dmitry M. Shatrov gave me some demo-code which worked well with the 
patched Qt. One example embeds KTHML into a Gtk+ window. I put a 
screenshot here: http://www.scheinwelt.at/~norbertf/common_main_loop/


More information about the kde-core-devel mailing list