D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
René J.V. Bertin
noreply at phabricator.kde.org
Mon Jul 9 10:56:17 BST 2018
rjvbb created this revision.
rjvbb added a reviewer: Framework: Syntax Highlighting.
Restricted Application added a project: Plasma.
Restricted Application added a subscriber: plasma-devel.
rjvbb requested review of this revision.
REVISION SUMMARY
See https://bugs.kde.org/show_bug.cgi?id=396287
Setting `QT_QUICK_CONTROLS_STYLE=org.kde.desktop` used to be safe but has started the cause applications to crash. Or I just never ran into what seem to be random (from a Joe User experience) but in fact are QGuiApplication-based applications.
This patch presents a proof-of-concept fix that makes it safe to set `QT_QUICK_CONTROLS_STYLE` or whatever other options there are to use the QQC2 desktop style in all applications that use QuickControls2.
The current implementation creates a local instance of Qt's built-in Fusion style, and probably doesn't need to create a new instance for each new KQuickStyleItem instance. Being a Tier3 framework it should be possible to fetch the current desktop style through KConfig, in which case creating a new QStyle instance would be (more) justified. There's probably some optimisation to be done here though I'm not convinced it will make any difference in practice, in the general context of using QtQuick.
An alternative approach would be to do the programmatic equivalent of the command-line override (e.g. `quickcontrols2/gallery/gallery -style Default`) but I have not yet been able to figure out if it is possible to change the QQuickStyle at this point.
TEST PLAN
Tested with
> env QT_QUICK_CONTROLS_STYLE=org.kde.desktop /path/to/qt5-examples/quickcontrols2/gallery/gallery
before: immediate crash because the plugin dereferences a NULL qApp->style() without flinching
after: practically normal behaviour that is certainly preferable to crashing due to a potential security exploit.
REPOSITORY
R858 Qt Quick Controls 2: Desktop Style
REVISION DETAIL
https://phabricator.kde.org/D14000
AFFECTED FILES
plugin/kquickstyleitem.cpp
plugin/kquickstyleitem_p.h
To: rjvbb, #framework_syntax_highlighting
Cc: plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/plasma-devel/attachments/20180709/92bdd65a/attachment-0001.html>
More information about the Plasma-devel
mailing list