<table><tr><td style="">broulik updated the summary for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-4fcb4uhtwbaiu2t/" rel="noreferrer">(Show Details)</a><br />broulik updated the test plan for this revision. <a href="https://phabricator.kde.org/transactions/detail/PHID-XACT-DREV-afso6b6uikf3i42/" rel="noreferrer">(Show Details)</a><br />broulik updated this revision to Diff 7549.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D3085" rel="noreferrer">View Revision</a></tr></table><br /><div><strong>EDIT DETAILS</strong><div><div style="white-space: pre-wrap; color: #74777D;"><div style="padding: 8px 0;">...</div>Since we inherit from QPlatformTheme we do not get the global menu support for free like Qt's own platform themes inheriting from QGenericUnixTheme would, hence the use of private headers.<span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);"> It includes a fork of Qt's QDBusMenuBar to give us access to some of its properties (the window it's operating on and the object path). This requires relicensing of Plasma-Integration to LGPL3.<br />
<br />
To support Wayland instead of relying on window IDs alone, we set the DBus service name and object path where the menu is as window properties which KWin or any other interested party could read. This way this code becomes completely window ID agnostic and since all the boilerplate (emit layout changed and what not) is in the client, we wouldn't even really need the registrar anymore.</span></div></div></div><br /><div><strong>EDIT DETAILS</strong><div><div style="white-space: pre-wrap; color: #74777D;"><div style="padding: 8px 0;">...</div>* checkDBusGlobalMenuAvailable() et al are from Qt's upstream<br />
<span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);">* QDBusMenuBar is also from Qt<br />
</span>* requires Qt 5.7<br />
<br />
<span style="padding: 0 2px; color: #802b2b; background: rgba(251, 175, 175, .7);">* in KXMLGui applications you still get a traditional menu bar in addition to the global menu, it seems it explicitly sets visible true on the menu bar - in VLC it hides its own menu bar.<br />
<br />
Upcoming patches will:</span><span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);">* still need to figure out the cmake stuff<br />
</span><br />
* <span style="padding: 0 2px; color: #802b2b; background: rgba(251, 175, 175, .7);">restore and cleanup kappmenu (the kded module that acts as</span><span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);">in KXMLGui applications you still get a traditional menu bar in</span> a<span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);">ddition</span> <span style="padding: 0 2px; color: #802b2b; background: rgba(251, 175, 175, .7);">registrar for Qt apps</span><span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);">to the global menu</span>, <span style="padding: 0 2px; color: #802b2b; background: rgba(251, 175, 175, .7);">so they will actually start exporting their menus)</span><span style="padding: 0 2px; color: #3e6d35; background: rgba(151, 234, 151, .6);">it seems it explicitly sets visible true on the menu bar - in VLC it hides its own menu bar.</span></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>rPLASMAINTEGRATION Integration for Qt applications in Plasma</div></div></div><br /><div><strong>CHANGES SINCE LAST UPDATE</strong><div><a href="https://phabricator.kde.org/D3085?vs=7457&id=7549" rel="noreferrer">https://phabricator.kde.org/D3085?vs=7457&id=7549</a></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D3085" rel="noreferrer">https://phabricator.kde.org/D3085</a></div></div><br /><div><strong>AFFECTED FILES</strong><div><div>CMakeLists.txt<br />
COPYING.LGPL-2<br />
COPYING.LGPL-3<br />
COPYING.LIB<br />
autotests/CMakeLists.txt<br />
cmake/modules/FindQt5PlatformSupport.cmake<br />
src/platformtheme/CMakeLists.txt<br />
src/platformtheme/kdeplatformtheme.cpp<br />
src/platformtheme/kdeplatformtheme.h<br />
src/platformtheme/qdbusmenubar.cpp</div></div></div><br /><div><strong>EMAIL PREFERENCES</strong><div><a href="https://phabricator.kde.org/settings/panel/emailpreferences/" rel="noreferrer">https://phabricator.kde.org/settings/panel/emailpreferences/</a></div></div><br /><div><strong>To: </strong>broulik, Plasma<br /><strong>Cc: </strong>graesslin, plasma-devel, lesliezhai, ali-mohamed, jensreuterberg, abetts, sebas<br /></div>