[Portland] Project Portland, RuDI and the Generic desktop adapter

nf2 nf2 at scheinwelt.at
Sat Dec 10 16:59:22 EET 2005


Hi Lars,

(I think your last reply didn't get sent to the mailing list - i hope 
you don't mind if i continue this discussion in public)

Lars Knoll wrote:

>On Friday 09 December 2005 16:54, you wrote:
>  
>
>>nf2 wrote:
>>    
>>
>>>Lars Knoll wrote:
>>>      
>>>
>>>>The other problem is interoperability between different major
>>>>versions of the same library (Qt3 vs Qt4, Gtk2 vs a future Gtk3).
>>>>These usually define similar sets of symbols which could lead to
>>>>larger problems when loading them into the same address space.
>>>>        
>>>>
I thought about that again and i believe that different major versions
of Qt and Gtk but also KDE and GNOME should be able to live in the same
process anyway. The main reason is migration. KDE3 applications should
be able to run on a KDE4 desktop and use KDE4 infrastructure (like a new
KIO for instance).

So i suppose QT4 and KDE4 should use a namespace that doesn't conflict
with QT3 and KDE3.

For Gnome/Gtk+ this will be harder, because C doesn't have namespaces.
(perhaps using "gtk3_" as prefix in function names instead of "gtk_").

>Another problem is that libraries expect certain global objects/data to be 
>initialized. These objects will be different in the different libraries, so 
>you'd have to make sure they get initialized on the fly. Unfortunately that 
>is a non trivial problem to solve as well.
>
>  
>
I think that's mainly a problem of Qt/KDE, because of this subclassing
of QApplication, which is not a good approach IMHO. The global data of
QTCore/Qt/KDE should live in seperate objects and not as an instance of
a single monolithic class.

I think GNOME has a more modular approach here. AFAIK you can call:

g_main_context_default ()  // creates the global data of the default
main loop context if it doesn't exist.
gnome_vfs_init()
gtk_init()
gnome_init()

in any sequence, because they all use seperate global variables.

Perhaps QT4 and KDE4 should be modularized, similar the GNOME platform.

Just my thoughts. And don't get me wrong. I'm not trying to defend my 
in-process "desktop adapter" stubbornly. I think these questions are 
very important for any kind of future desktop/toolkit interaction.

Cheers,
Norbert





More information about the Portland mailing list