Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdbusplatformmenu_p.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QDBUSPLATFORMMENU_H
6#define QDBUSPLATFORMMENU_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18//
19// W A R N I N G
20// -------------
21//
22// This file is part of the DBus menu support and is not meant to be used
23// in applications. Usage of this API may make your code
24// source and binary incompatible with future versions of Qt.
25//
26
27#include <qpa/qplatformmenu.h>
28#include <QLoggingCategory>
30
31QT_BEGIN_NAMESPACE
32Q_DECLARE_LOGGING_CATEGORY(qLcMenu)
33
34class QDBusPlatformMenu;
35
37{
39
40public:
43
44 const QString text() const { return m_text; }
45 void setText(const QString &text) override;
46 QIcon icon() const { return m_icon; }
47 void setIcon(const QIcon &icon) override;
48 const QPlatformMenu *menu() const { return m_subMenu; }
49 void setMenu(QPlatformMenu *menu) override;
50 bool isEnabled() const { return m_isEnabled; }
51 void setEnabled(bool enabled) override;
52 bool isVisible() const { return m_isVisible; }
53 void setVisible(bool isVisible) override;
54 bool isSeparator() const { return m_isSeparator; }
55 void setIsSeparator(bool isSeparator) override;
56 void setFont(const QFont &font) override { Q_UNUSED(font); }
57 void setRole(MenuRole role) override;
58 bool isCheckable() const { return m_isCheckable; }
59 void setCheckable(bool checkable) override;
60 bool isChecked() const { return m_isChecked; }
61 void setChecked(bool isChecked) override;
62 bool hasExclusiveGroup() const { return m_hasExclusiveGroup; }
63 void setHasExclusiveGroup(bool hasExclusiveGroup) override;
64#if QT_CONFIG(shortcut)
65 QKeySequence shortcut() const { return m_shortcut; }
67#endif
68 void setIconSize(int size) override { Q_UNUSED(size); }
69 void setNativeContents(WId item) override { Q_UNUSED(item); }
70
71 int dbusID() const { return m_dbusID; }
72
73 void trigger();
74
75 static QDBusPlatformMenuItem *byId(int id);
76 static QList<const QDBusPlatformMenuItem *> byIds(const QList<int> &ids);
77
78private:
79 QString m_text;
80 QIcon m_icon;
81 QPlatformMenu *m_subMenu;
82 MenuRole m_role : 4;
83 bool m_isEnabled : 1;
84 bool m_isVisible : 1;
85 bool m_isSeparator : 1;
86 bool m_isCheckable : 1;
87 bool m_isChecked : 1;
88 bool m_hasExclusiveGroup : 1;
89 short /*unused*/ : 6;
90 short m_dbusID : 16;
91#if QT_CONFIG(shortcut)
93#endif
94};
95
97{
99
100public:
103 void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override;
104 void removeMenuItem(QPlatformMenuItem *menuItem) override;
105 void syncSubMenu(const QDBusPlatformMenu *menu);
106 void syncMenuItem(QPlatformMenuItem *menuItem) override;
107 void syncSeparatorsCollapsible(bool enable) override { Q_UNUSED(enable); }
108
109 const QString text() const { return m_text; }
110 void setText(const QString &text) override;
111 QIcon icon() const { return m_icon; }
112 void setIcon(const QIcon &icon) override;
113 bool isEnabled() const override { return m_isEnabled; }
114 void setEnabled(bool enabled) override;
115 bool isVisible() const { return m_isVisible; }
116 void setVisible(bool visible) override;
117 void setMinimumWidth(int width) override { Q_UNUSED(width); }
118 void setFont(const QFont &font) override { Q_UNUSED(font); }
119 void setMenuType(MenuType type) override { Q_UNUSED(type); }
121
122 void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override;
123
124 void dismiss() override { } // Closes this and all its related menu popups
125
126 QPlatformMenuItem *menuItemAt(int position) const override;
127 QPlatformMenuItem *menuItemForTag(quintptr tag) const override;
128 const QList<QDBusPlatformMenuItem *> items() const;
129
130 QPlatformMenuItem *createMenuItem() const override;
131 QPlatformMenu *createSubMenu() const override;
132
133 uint revision() const { return m_revision; }
134
135 void emitUpdated();
136
137signals:
140 void popupRequested(int id, uint timestamp);
141
142private:
143 QString m_text;
144 QIcon m_icon;
145 bool m_isEnabled;
146 bool m_isVisible;
147 uint m_revision;
148 QHash<quintptr, QDBusPlatformMenuItem *> m_itemsByTag;
149 QList<QDBusPlatformMenuItem *> m_items;
150 QDBusPlatformMenuItem *m_containingMenuItem;
151};
152
153QT_END_NAMESPACE
154
155#endif
QDBusVariant m_data
static QDBusMenuShortcut convertKeySequence(const QKeySequence &sequence)
static QString convertMnemonic(const QString &label)
static QDBusMenuItemList items(const QList< int > &ids, const QStringList &propertyNames)
QVariantMap m_properties
QDBusMenuItem(const QDBusPlatformMenuItem *item)
static void registerDBusTypes()
uint populate(int id, int depth, const QStringList &propertyNames, const QDBusPlatformMenu *topLevelMenu)
void populate(const QDBusPlatformMenuItem *item, int depth, const QStringList &propertyNames)
QList< QDBusMenuLayoutItem > m_children
void populate(const QDBusPlatformMenu *menu, int depth, const QStringList &propertyNames)
void setNativeContents(WId item) override
void setText(const QString &text) override
void setIsSeparator(bool isSeparator) override
const QString text() const
static QDBusPlatformMenuItem * byId(int id)
void setHasExclusiveGroup(bool hasExclusiveGroup) override
void setRole(MenuRole role) override
void setEnabled(bool enabled) override
void setChecked(bool isChecked) override
void setVisible(bool isVisible) override
const QPlatformMenu * menu() const
void setIconSize(int size) override
void setFont(const QFont &font) override
void setCheckable(bool checkable) override
static QList< const QDBusPlatformMenuItem * > byIds(const QList< int > &ids)
void setIcon(const QIcon &icon) override
void setMenu(QPlatformMenu *menu) override
Set a submenu under this menu item.
void setIcon(const QIcon &icon) override
void showPopup(const QWindow *parentWindow, const QRect &targetRect, const QPlatformMenuItem *item) override
QPlatformMenuItem * menuItemForTag(quintptr tag) const override
void popupRequested(int id, uint timestamp)
QPlatformMenu * createSubMenu() const override
void setEnabled(bool enabled) override
bool isEnabled() const override
void removeMenuItem(QPlatformMenuItem *menuItem) override
void setText(const QString &text) override
void setMinimumWidth(int width) override
void dismiss() override
const QList< QDBusPlatformMenuItem * > items() const
void insertMenuItem(QPlatformMenuItem *menuItem, QPlatformMenuItem *before) override
void setContainingMenuItem(QDBusPlatformMenuItem *item)
void syncSeparatorsCollapsible(bool enable) override
QPlatformMenuItem * menuItemAt(int position) const override
void setVisible(bool visible) override
void setFont(const QFont &font) override
void propertiesUpdated(QDBusMenuItemList updatedProps, QDBusMenuItemKeysList removedProps)
void syncSubMenu(const QDBusPlatformMenu *menu)
void syncMenuItem(QPlatformMenuItem *menuItem) override
const QString text() const
QPlatformMenuItem * createMenuItem() const override
void setMenuType(MenuType type) override
const QDBusArgument & operator>>(const QDBusArgument &arg, QDBusMenuEvent &ev)
QDebug operator<<(QDebug d, const QDBusMenuItem &item)
const QDBusArgument & operator<<(QDBusArgument &arg, const QDBusMenuEvent &ev)
const QDBusArgument & operator>>(const QDBusArgument &arg, QDBusMenuItem &item)
const QDBusArgument & operator<<(QDBusArgument &arg, const QDBusMenuItemKeys &keys)
QDebug operator<<(QDebug d, const QDBusMenuLayoutItem &item)
const QDBusArgument & operator>>(const QDBusArgument &arg, QDBusMenuLayoutItem &item)
const QDBusArgument & operator<<(QDBusArgument &arg, const QDBusMenuLayoutItem &item)
const QDBusArgument & operator>>(const QDBusArgument &arg, QDBusMenuItemKeys &keys)
Q_DECLARE_TYPEINFO(QDBusMenuLayoutItem, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(QDBusMenuItemKeys, Q_RELOCATABLE_TYPE)
QList< QStringList > QDBusMenuShortcut
QList< QDBusMenuItemKeys > QDBusMenuItemKeysList
Q_DECLARE_TYPEINFO(QDBusMenuEvent, Q_RELOCATABLE_TYPE)
QList< QDBusMenuItem > QDBusMenuItemList
QList< QDBusMenuLayoutItem > QDBusMenuLayoutItemList
Q_DECLARE_TYPEINFO(QDBusMenuItem, Q_RELOCATABLE_TYPE)
const QDBusArgument & operator<<(QDBusArgument &arg, const QDBusMenuItem &item)
QList< QDBusMenuEvent > QDBusMenuEventList