D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps
This revision was automatically updated to reflect the committed changes. Closed by commit R858:1e02355c1786: Support for QGuiApplication-based apps (authored by rjvbb). CHANGED PRIOR TO COMMIT https://phabricator.kde.org/D14000?vs=44083=46108#toc REPOSITORY R858 Qt Quick Controls 2: Desktop Style CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D14000?vs=44083=46108 REVISION DETAIL https://phabricator.kde.org/D14000 AFFECTED FILES plugin/kquickstyleitem.cpp plugin/kquickstyleitem_p.h To: rjvbb, #frameworks, mart Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps
mart accepted this revision. This revision is now accepted and ready to land. REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks, mart Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps
rjvbb retitled this revision from "qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)" to "qqc2-desktop-style: basic support for QGuiApplication-based apps". REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb set the repository for this revision to R858 Qt Quick Controls 2: Desktop Style. REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb updated this revision to Diff 44083. rjvbb added a comment. updated for the current git/head. David: did you perhaps forget to accept the revision (aka, should I have committed this)? CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D14000?vs=37897=44083 REVISION DETAIL https://phabricator.kde.org/D14000 AFFECTED FILES plugin/kquickstyleitem.cpp plugin/kquickstyleitem_p.h To: rjvbb, #frameworks Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb updated this revision to Diff 37897. rjvbb added a comment. Using QApplication::style() CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D14000?vs=37568=37897 REVISION DETAIL https://phabricator.kde.org/D14000 AFFECTED FILES plugin/kquickstyleitem.cpp plugin/kquickstyleitem_p.h To: rjvbb, #frameworks Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb set the repository for this revision to R858 Qt Quick Controls 2: Desktop Style. REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
alexeymin added a comment. Don't know how much offtopic will be what I'm going to say, but I recently ran into an issue while packaging QQC2 application in flatpak with org.kde.Platform//5.9 runtime. My app was functioning perfectly fine in system, but under flatpak it failed to start with the following message: `QWidget: Cannot create a QWidget without QApplication`. Of course, I had only QGuiApplication. But I wasn't using widgets! The only class from QtWidgets was QSystemTrayIcon for a nice integration with desktop. My guess was that was caused by platform style used in flatpak's KDE runtime may use widgets. But this was unexpected, without flatpak all was working. In the end I was forced to use QApplication, and visually saw the style used was ogr.kde.desktop. I wrote a small test QML QQC2 program with QGuiApplication and packaged it with flatpak with the same runtime, surprisingly, it started OK, without any error message. Basically, QQC2 ApplicationWindow with a button inside, not linked to widgets. ( https://github.com/minlexx/test_qqc2hello - repo with test scripts ) So, if the program is linked to Qt5Widgets in any way, it has to use QApplication in flatpak's org.kde.Platform even if it does not use widgets? Is it related to this patch? Will it solve my problem? (if included in flatpak's kde runtime) REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: alexeymin, davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
davidedmundson added a comment. Please swap qApp->style for QApplication::style as it's static. Solution is quite clever. It's risky as any qstyle will always be written assuming it's a QApplication; but by definition the QQC2 code shields from a lot of the QWidget casting that would cause an issue. Worst case we crash, which is the current state. I don't think we should remove the plasma-integration guard, but this is surprisingly un-invasive. Meh, +1 REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: davidedmundson, mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb updated this revision to Diff 37568. rjvbb added a comment. build on Mac too CHANGES SINCE LAST UPDATE https://phabricator.kde.org/D14000?vs=37439=37568 REVISION DETAIL https://phabricator.kde.org/D14000 AFFECTED FILES plugin/kquickstyleitem.cpp plugin/kquickstyleitem_p.h To: rjvbb, #frameworks Cc: mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb set the repository for this revision to R858 Qt Quick Controls 2: Desktop Style. REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
mart added a comment. in principle i agree, I would love to be able to use this in qguiapplications, but are we sure qstyles won't access qapplication? doesn't this risk to just move the crash? REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: mart, broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
broulik added a comment. Why, or who, is setting this environment variable? Plasma-integration sets `QQuickStyle` depending on whether there is a `QApplication` or not, so this makes no sense. REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks Cc: broulik, plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart
D14000: qqc2-desktop-style: basic support for QGuiApplication-based apps (WIP/PoC)
rjvbb edited the summary of this revision. rjvbb edited reviewers, added: Frameworks; removed: Framework: Syntax Highlighting. rjvbb set the repository for this revision to R858 Qt Quick Controls 2: Desktop Style. REPOSITORY R858 Qt Quick Controls 2: Desktop Style REVISION DETAIL https://phabricator.kde.org/D14000 To: rjvbb, #frameworks, #framework_syntax_highlighting Cc: plasma-devel, ragreen, Pitel, ZrenBot, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas, apol, mart