Review Request 125915: Drop runtime dependency on QApplication

David Edmundson david at davidedmundson.co.uk
Mon Nov 2 09:34:09 UTC 2015



> On Nov. 2, 2015, 8:04 a.m., Martin Gräßlin wrote:
> > I consider this a very dangerous change. We don't have unit tests for this specific code, it's an unlikely code path to be taken and we won't notice regressions.
> > 
> > Personally I don't see a problem with having a dependency on QApplication. KWindowSystem links against Qt::Widgets that makes it obvious to any user that it requires a QApplication. If we want to make it work with QGuiApplication, then we need to make sure that we also get rid of Qt::Widgets dependency. Otherwise I think we are still in undefined behavior area if someone uses KWindowSystem without a QApplication.
> > 
> > So overall from my side rather a -1 to this change. Risk of breakage too high for little benefit.

>Very dangerous

It's not that bad, it's a copy and paste from QDesktopWidgetPrivate::_q_updateScreens 

>Personally I don't see a problem with having a dependency on QApplication. KWindowSystem links against Qt::Widgets that makes it obvious to any user that it requires a QApplication. 

Not that obvious, I made the "mistake". You get to save nearly ~4Mb from QApp -> QGuiApp
Also PlasmaCore import is full of KWindowSystem calls which means ksplashapp, sddm-greeter and probably few others are already in the same situation.


> then we need to make sure that we also get rid of Qt::Widgets dependency.

++. Espsecially if we think longer term. 
Unfortuantely, we can't without an API break. There's a few helper methods where we have a version with wID and a version with QWidget* just to get the wID.


- David


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125915/#review87846
-----------------------------------------------------------


On Nov. 1, 2015, 10:58 p.m., David Edmundson wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125915/
> -----------------------------------------------------------
> 
> (Updated Nov. 1, 2015, 10:58 p.m.)
> 
> 
> Review request for KDE Frameworks and Albert Astals Cid.
> 
> 
> Repository: kwindowsystem
> 
> 
> Description
> -------
> 
> QDesktopWidget was used which is broken for applications using
> QGuiApplication.
> 
> QDesktopWidget is now just a thin wrapper over QScreen so we can use that directly.
> 
> QApplication::activeWindow is ported to QGuiApplication::topLevelWindows
> and then itterating to see if one is active.
> 
> 
> Diffs
> -----
> 
>   src/platforms/xcb/kwindowsystem.cpp 9d287043c24894ca3c29c439c7939b139da055e8 
> 
> Diff: https://git.reviewboard.kde.org/r/125915/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> David Edmundson
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20151102/8777c2e9/attachment.html>


More information about the Kde-frameworks-devel mailing list