[Development] Searching for a better place for dbusmenu/dbustray code

Dmitry Shachnev mitya57.ml at gmail.com
Mon Oct 17 18:46:05 CEST 2016


Hi all,

In QTBUG-55310 [1], we have been discussing the ways on how to make it
possible to use our dbusmenu/dbustray implementations on platforms which have
their own platform themes (such as Plasma and LXQt). Ideally QSystemTrayIcon
(and QMenuBar) should try to use these implementations if the platform themes
do not provide their own ones.

The first thing that comes to mind is putting this code into QtWidgets
library. A side effect of this will be the QtWidgets -> QtDBus dependency,
which I think is not acceptable.

Currently (since [2]) this code is built as part of static QtThemeSupport
library, which is then linked into the Qt5XcbQpa library and into the gtk3
theme plugin. (Another reason why this is bad is duplication of the same code
between different libraries.)

I propose to make it a separate plugin, linked against QtDBus, which then will
be loaded by QtWidgets. In this case I have some questions (copied to here
from QTBUG-55310):

1) Where will it make sense to put the plugin? Should I create a separate
directory for it in plugins/? Or maybe I can put it in plugins/generic/?

2) So far the only way to load plugins I found is using QFactoryLoader.
Should I use it, or is there a more simple way, provided that the plugin will
be the only one of its type?

If anyone can suggest an alternative to splitting that code into its own
plugin, that would be welcome too.

[1]: https://bugreports.qt.io/browse/QTBUG-55310
[2]: https://codereview.qt-project.org/172484

Cheers,

--
Dmitry Shachnev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20161017/07123477/attachment.sig>


More information about the Development mailing list