kdelibs/win32 : kdecore patch

David Faure faure at kde.org
Wed Sep 8 11:50:02 BST 2004


On Tuesday 07 September 2004 23:25, Holger Schroeder wrote:
> hi,
> 
> On Thursday 02 September 2004 18:44, David Faure wrote:
> > On Thursday 02 September 2004 18:15, Jarosław Staniek wrote:
> > > 2. http://www.iidea.pl/~js/qkw/upload/kdecore.diff.tar.gz
> > >
> > > kdecore/ patches (about 100 files, not all)
> > >
> > > Please review
> >
> > -#if defined Q_WS_X11 && ! defined K_WS_QTONLY
> > +#if (defined Q_WS_X11 || defined Q_WS_WIN) && ! defined K_WS_QTONLY
> >  #include <kstartupinfo.h>
> >  #endif
> >
> > Who introduced the K_WS_QTONLY? Ah, Holger. Holger: does it make any sense
> > to keep those? As shown above, they basically break things for others,
> > since e.g. kstartupinfo isn't really x11-dependent in itself....
> > js: you don't use K_WS_QTONLY, right? If nobody does, I think we should
> > clean this up.
> >
> when kde will run under x11/windows/mac os, this K_WS_QTONLY will not be 
> needed any more, that is right. my intention when i introduced it was, that i 
> wanted to be able to have a kde that was only dependant on qt and not on x11.

But that's not the case right now, and it's rather an impossible goal (see Harri's post).

> this should make the porting process easier.

Actually, it doesn't. The unclear semantics of QTONLY make the porting process more difficult.

Example taken from kiconview.cpp:
#if defined Q_WS_X11 && ! defined K_WS_QTONLY
  //FIXME(E): Implement for Qt Embedded
  uint keybstate = KApplication::keyboardModifiers();
  QIconViewItem* previousItem = currentItem();
#endif

1) there's nothing X11 specific about that code.
It's the current implementation of keyboardModifiers() that is x11-specific, but it's
easy enough to implement it for win32.
2) there's nothing qt-only specific in that code - I don't even understand the #if.
3) the comment is confusing (qt embedded? well it needs to be implemented for all...)
OK maybe it's an example where the code was changed after the #if was added,
but still - the QTONLY stuff is only disabling some stuff, whereas correct win32/macos
ports include actually implementing the stuff that is different from x11.

> when kde will run fine under windows

That's exactly what js is working on, the right way; the QTONLY defines only add to the mess.

> i will be fine with removing the  #if  defined K_WS_QTONLY from the sources... 

How about allowing js to remove them as part of his win32 port?

-- 
David Faure, faure at kde.org, sponsored by Trolltech to work on KDE,
Konqueror (http://www.konqueror.org), and KOffice (http://www.koffice.org).




More information about the kde-core-devel mailing list