lp:~mitya57/appmenu-qt5/menus-and-systemtrayicons
- Get this branch:
- bzr branch lp:~mitya57/appmenu-qt5/menus-and-systemtrayicons
Branch merges
- Łukasz Zemczak: Approve
- Indicator Applet Developers: Pending requested
-
Diff: 1241 lines (+1139/-5)13 files modifiedsrc/appmenuplatformmenu.cpp (+129/-0)
src/appmenuplatformmenu.h (+59/-0)
src/appmenuplatformmenubar.cpp (+11/-2)
src/appmenuplatformmenuitem.cpp (+124/-0)
src/appmenuplatformmenuitem.h (+54/-0)
src/appmenuplatformsystemtrayicon.cpp (+235/-0)
src/appmenuplatformsystemtrayicon.h (+101/-0)
src/dbusstructures.cpp (+64/-0)
src/dbusstructures.h (+58/-0)
src/iconcache.cpp (+140/-0)
src/iconcache.h (+54/-0)
src/org.kde.StatusNotifierItem.xml (+96/-0)
src/src.pro (+14/-3)
Related bugs
Bug #1209106: system tray icon is next to launcher | Undecided | Fix Released |
Related blueprints
Branch information
Recent revisions
- 28. By Dmitry Shachnev
-
Add AppMenuPlatform
SystemTrayIcon implementation Q: What’s this for?
A: Currently Qt 5 desktop applications which try to display a system
tray icon will fail to do so in Unity desktop, because we abandoned
the old XEmbed-based tray. This branch will make it work again, and
in a nicer way. As a side-effect, notifications will now work too.Q: We already have sni-qt, why is this needed?
A: sni-qt was only working with Qt 4, it does not work with Qt 5.
Actually, a big part of code in this commit is copied from sni-qt.Q: Why not just port sni-qt to Qt 5, why this code should be here?
A: In Qt 5, features such as platform tray icon should be implemented
using Qt Platform Abstraction (QPA), which was not the case in Qt 4.
More important, things like platform menu bar and platform tray icon
should be in the same plugin, called “platform theme”. There should be
only one platform theme for a platform, in Ubuntu it is appmenu-qt5.Q: So is it just a copy of sni-qt code?
A: Most of it is based on sni-qt code, but it was changed a lot to work
with Qt 5 and QPA interface. I also cleaned it up a bit and deleted
some stuff that I think is not relevant.Q: Does it add any additional dependencies to appmenu-qt5?
A: No. The only third-party library it needs is libdbusmenu-qt5, which
is already used by appmenu-qt5.Q: How does it work?
A: There are two things we should export — the “status notifier item”
(which contains icon, tooltip, etc) and the menu. While the status
notifier item will work with any server-side implementation, the menu
will only work with ours (indicator-application) . When
indicator-application sees that an item has a menu, it will convert
it into an indicator, and any indicator renderer (such as Unity, or
indicator-applet) will show it. Q: Which desktop environments will it work with?
A: It is designed to work with anything that supports indicators, like
Unity or GNOME Flashback.Q: Why the interface has KDE in name?
A: The StatusNotifierItem was originally developed by KDE project. While
it is very possible that this standard will be adopted by FreeDesktop,
indicator-application currently only supports the KDE name. Q: Can KDE reuse this implementation?
A: They already have their own implementation, in Framework Integration.
I could not reuse their code because they have not signed the
Canonical contributor license agreement. - 27. By Dmitry Shachnev
-
Add AppMenuPlatform
MenuItem and AppMenuPlatformMenu classes Having these classes will allow us to implement missing functionality
for AppMenuPlatformMenuBar class, and also add a new class for system
tray icons (AppMenuPlatformSystemTrayIcon ). - 25. By Łukasz Zemczak
-
Change the way QKdeTheme is constructed to fit the way presented by the new Qt 5.4.0 version. Make this change conditional so that it's still buildable with earlier releases. Fixes: #1394887
Approved by: Timo Jyrinki, PS Jenkins bot - 23. By Timo Jyrinki
-
Add libmtdev-dev build dependency (LP: #1379152) Fixes: 1379152
Approved by: PS Jenkins bot - 21. By Dmitry Shachnev
-
Do nothing if AppMenu is not available, or UBUNTU_MENUPROXY is set to 0 or empty string. Fixes: 1362104
Approved by: Łukasz Zemczak
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:appmenu-qt5