Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Toggle main menu visibility
Loading...
Searching...
No Matches
qdbusmenuadaptor.cpp
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
/*
6
This file was originally created by qdbusxml2cpp version 0.8
7
Command line was:
8
qdbusxml2cpp -a dbusmenu ../../3rdparty/dbus-ifaces/dbus-menu.xml
9
10
However it is maintained manually.
11
*/
12
13
#
include
<
QMetaObject
>
14
#
include
<
QByteArray
>
15
#
include
<
QList
>
16
#
include
<
QMap
>
17
#
include
<
QString
>
18
#
include
<
QStringList
>
19
#
include
<
QVariant
>
20
#
include
<
QLocale
>
21
22
#
include
<
private
/
qdbusmenuadaptor_p
.
h
>
23
#
include
<
private
/
qdbusplatformmenu_p
.
h
>
24
25
QT_BEGIN_NAMESPACE
26
27
using
namespace
Qt::StringLiterals;
28
29
QDBusMenuAdaptor::QDBusMenuAdaptor(QDBusPlatformMenu *topLevelMenu)
30
: QDBusAbstractAdaptor(topLevelMenu)
31
, m_topLevelMenu(topLevelMenu)
32
{
33
setAutoRelaySignals(
true
);
34
}
35
36
QDBusMenuAdaptor::~QDBusMenuAdaptor()
37
{
38
}
39
40
QString QDBusMenuAdaptor::status()
const
41
{
42
qCDebug(qLcMenu);
43
return
"normal"_L1
;
44
}
45
46
QString QDBusMenuAdaptor::textDirection()
const
47
{
48
return
QLocale().textDirection() == Qt::RightToLeft ?
"rtl"_L1
:
"ltr"_L1
;
49
}
50
51
uint QDBusMenuAdaptor::version()
const
52
{
53
return
4;
54
}
55
56
bool
QDBusMenuAdaptor::AboutToShow(
int
id)
57
{
58
qCDebug(qLcMenu) << id;
59
if
(id == 0) {
60
emit m_topLevelMenu->aboutToShow();
61
}
else
{
62
QDBusPlatformMenuItem *item = QDBusPlatformMenuItem::byId(id);
63
if
(item) {
64
const
QDBusPlatformMenu *menu =
static_cast
<
const
QDBusPlatformMenu *>(item->menu());
65
if
(menu)
66
emit
const_cast
<QDBusPlatformMenu *>(menu)->aboutToShow();
67
}
68
}
69
return
false
;
// updateNeeded (we don't know that, so false)
70
}
71
72
QList<
int
> QDBusMenuAdaptor::AboutToShowGroup(
const
QList<
int
> &ids, QList<
int
> &idErrors)
73
{
74
qCDebug(qLcMenu) << ids;
75
Q_UNUSED(idErrors);
76
idErrors.clear();
77
for
(
int
id : ids)
78
AboutToShow(id);
79
return
QList<
int
>();
// updatesNeeded
80
}
81
82
void
QDBusMenuAdaptor::Event(
int
id,
const
QString &eventId,
const
QDBusVariant &data, uint timestamp)
83
{
84
Q_UNUSED(data);
85
Q_UNUSED(timestamp);
86
QDBusPlatformMenuItem *item = QDBusPlatformMenuItem::byId(id);
87
qCDebug(qLcMenu) << id << (item ? item->text() :
""_L1
) << eventId;
88
if
(item && eventId ==
"clicked"_L1
)
89
item->trigger();
90
if
(item && eventId ==
"hovered"_L1
)
91
emit item->hovered();
92
if
(eventId ==
"closed"_L1
) {
93
// There is no explicit AboutToHide method, so map closed event to aboutToHide method
94
const
QDBusPlatformMenu *menu =
nullptr
;
95
if
(item)
96
menu =
static_cast
<
const
QDBusPlatformMenu *>(item->menu());
97
else
if
(id == 0)
98
menu = m_topLevelMenu;
99
if
(menu)
100
emit
const_cast
<QDBusPlatformMenu *>(menu)->aboutToHide();
101
}
102
}
103
104
QList<
int
> QDBusMenuAdaptor::EventGroup(
const
QDBusMenuEventList &events)
105
{
106
for
(
const
QDBusMenuEvent &ev : events)
107
Event(ev.m_id, ev.m_eventId, ev.m_data, ev.m_timestamp);
108
return
QList<
int
>();
// idErrors
109
}
110
111
QDBusMenuItemList QDBusMenuAdaptor::GetGroupProperties(
const
QList<
int
> &ids,
const
QStringList &propertyNames)
112
{
113
qCDebug(qLcMenu) << ids << propertyNames <<
"=>"
<< QDBusMenuItem::items(ids, propertyNames);
114
return
QDBusMenuItem::items(ids, propertyNames);
115
}
116
117
uint QDBusMenuAdaptor::GetLayout(
int
parentId,
int
recursionDepth,
const
QStringList &propertyNames, QDBusMenuLayoutItem &layout)
118
{
119
uint ret = layout.populate(parentId, recursionDepth, propertyNames, m_topLevelMenu);
120
qCDebug(qLcMenu) << parentId <<
"depth"
<< recursionDepth << propertyNames << layout.m_id << layout.m_properties <<
"revision"
<< ret << layout;
121
return
ret;
122
}
123
124
QDBusVariant QDBusMenuAdaptor::GetProperty(
int
id,
const
QString &name)
125
{
126
qCDebug(qLcMenu) << id << name;
127
// handle method call com.canonical.dbusmenu.GetProperty
128
QDBusVariant value;
129
return
value;
130
}
131
132
QT_END_NAMESPACE
133
134
#
include
"moc_qdbusmenuadaptor_p.cpp"
qtbase
src
gui
platform
unix
dbusmenu
qdbusmenuadaptor.cpp
Generated on
for Qt by
1.18.0