forked from quickshell/quickshell
service/tray!: redesign menus / dbusmenu and add native menu support
Reworks dbusmenu menus to be displayable with a system context menu. Breaks the entire DBusMenu api.
This commit is contained in:
parent
c31bbea837
commit
ec362637b8
18 changed files with 898 additions and 191 deletions
|
@ -41,7 +41,10 @@ public:
|
|||
[[nodiscard]] bool isReady() const;
|
||||
[[nodiscard]] QString iconId() const;
|
||||
[[nodiscard]] QPixmap createPixmap(const QSize& size) const;
|
||||
[[nodiscard]] qs::dbus::dbusmenu::DBusMenu* createMenu() const;
|
||||
|
||||
[[nodiscard]] qs::dbus::dbusmenu::DBusMenu* menu() const;
|
||||
void refMenu();
|
||||
void unrefMenu();
|
||||
|
||||
void activate();
|
||||
void secondaryActivate();
|
||||
|
@ -70,16 +73,22 @@ public:
|
|||
signals:
|
||||
void iconChanged();
|
||||
void ready();
|
||||
void menuChanged();
|
||||
|
||||
private slots:
|
||||
void updateIcon();
|
||||
void onGetAllFinished();
|
||||
void onMenuPathChanged();
|
||||
|
||||
private:
|
||||
void updateMenuState();
|
||||
|
||||
DBusStatusNotifierItem* item = nullptr;
|
||||
TrayImageHandle imageHandle {this};
|
||||
bool mReady = false;
|
||||
|
||||
dbus::dbusmenu::DBusMenu* mMenu = nullptr;
|
||||
quint32 menuRefcount = 0;
|
||||
|
||||
// bumped to inhibit caching
|
||||
quint32 iconIndex = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue