File tree Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Expand file tree Collapse file tree 2 files changed +29
-0
lines changed Original file line number Diff line number Diff line change 2
2
3
3
#include < QCoreApplication>
4
4
#include < QPushButton>
5
+ #ifdef Q_OS_LINUX
6
+ #include < QtDBus/QDBusConnection>
7
+ #include < QtDBus/QDBusConnectionInterface>
8
+ #endif
5
9
6
10
#include " uiengine.h"
7
11
@@ -66,3 +70,24 @@ void UiEngine::setActiveFocusItem(QQuickItem *newActiveFocusItem)
66
70
m_activeFocusItem = newActiveFocusItem;
67
71
emit activeFocusItemChanged ();
68
72
}
73
+
74
+ bool UiEngine::useNativeMenuBar () const
75
+ {
76
+ #if defined(Q_OS_MACOS)
77
+ #if QT_VERSION < QT_VERSION_CHECK(6, 8, 0)
78
+ return true ;
79
+ #else
80
+ // Since Qt 6.8, Qt Quick Controls menu bar is native
81
+ return false ;
82
+ #endif
83
+ #elif defined(Q_OS_LINUX)
84
+ const QDBusConnection connection = QDBusConnection::sessionBus ();
85
+ static const QString registrarService = QStringLiteral (" com.canonical.AppMenu.Registrar" );
86
+ if (const auto iface = connection.interface ())
87
+ return iface->isServiceRegistered (registrarService);
88
+ else
89
+ return false ;
90
+ #else
91
+ return false ;
92
+ #endif
93
+ }
Original file line number Diff line number Diff line change @@ -19,6 +19,7 @@ class UiEngine
19
19
{
20
20
Q_OBJECT
21
21
Q_PROPERTY (QQuickItem *activeFocusItem READ activeFocusItem WRITE setActiveFocusItem NOTIFY activeFocusItemChanged)
22
+ Q_PROPERTY (bool useNativeMenuBar READ useNativeMenuBar NOTIFY useNativeMenuBarChanged FINAL)
22
23
23
24
public:
24
25
explicit UiEngine (QObject *parent = nullptr );
@@ -34,8 +35,11 @@ class UiEngine
34
35
QQuickItem *activeFocusItem () const ;
35
36
void setActiveFocusItem (QQuickItem *newActiveFocusItem);
36
37
38
+ bool useNativeMenuBar () const ;
39
+
37
40
signals:
38
41
void activeFocusItemChanged ();
42
+ void useNativeMenuBarChanged ();
39
43
40
44
private:
41
45
static std::shared_ptr<UiEngine> m_instance;
You can’t perform that action at this time.
0 commit comments