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


Dmitry Shachnev

Attachment: signature.asc
Description: PGP signature

Development mailing list

Reply via email to