From 0e321fc17e32e785939065f161b779abafe9e4d0 Mon Sep 17 00:00:00 2001 From: hewenfei Date: Mon, 12 Dec 2022 15:16:45 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=B0=83=E6=95=B4=E4=B8=BB=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=E5=91=BD=E4=BB=A4=E6=96=B9=E5=BC=8F=EF=BC=8C?= =?UTF-8?q?=E9=93=BE=E6=8E=A5dbus=E6=8E=A5=E5=8F=A3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ukui-menu-application.cpp | 30 +++++++++++++++++++--------- src/ukui-menu-application.h | 37 ++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 27 deletions(-) diff --git a/src/ukui-menu-application.cpp b/src/ukui-menu-application.cpp index 75691de..7226f86 100644 --- a/src/ukui-menu-application.cpp +++ b/src/ukui-menu-application.cpp @@ -33,7 +33,7 @@ UkuiMenuApplication::UkuiMenuApplication(MenuMessageProcessor *processor) : QObj registerQmlTypes(); startUkuiMenu(); initDbusService(); - connect(processor, &MenuMessageProcessor::request, this, &UkuiMenuApplication::response); + connect(processor, &MenuMessageProcessor::request, this, &UkuiMenuApplication::execCommand); } void UkuiMenuApplication::startUkuiMenu() @@ -71,23 +71,36 @@ void UkuiMenuApplication::initQmlEngine() void UkuiMenuApplication::initDbusService() { m_menuDbusService = new MenuDbusService(this); + if (m_menuDbusService) { + connect(m_menuDbusService, &MenuDbusService::menuActive, this, [this] { + execCommand(Active); + }); +// connect(m_menuDbusService, &MenuDbusService::reloadConfigSignal, this, [this] { +//// reload ... +// }); + } } -void UkuiMenuApplication::response(MenuMessageProcessor::Command command) +void UkuiMenuApplication::execCommand(Command command) { switch (command) { - case MenuMessageProcessor::Show: -// m_applicationEngine; + case Active: + qDebug() << "=Active=>>" << Active; break; - case MenuMessageProcessor::Quit: + case Show: + qDebug() << "=Show=>>" << Show; + break; + case Quit: + qDebug() << "=Quit=>>" << Quit; m_applicationEngine->quit(); + QCoreApplication::quit(); break; default: break; } } - +// == MenuMessageProcessor == // MenuMessageProcessor::MenuMessageProcessor() : QObject(nullptr) {} void MenuMessageProcessor::processMessage(quint32 instanceId, const QByteArray &message) @@ -105,13 +118,12 @@ void MenuMessageProcessor::processMessage(quint32 instanceId, const QByteArray & parser.parse(options); if (parser.isSet(showUkuiMenu)) { - Q_EMIT request(Show); + Q_EMIT request(UkuiMenuApplication::Show); return; } if (parser.isSet(quitUkuiMenu)) { - Q_EMIT request(Quit); - QCoreApplication::quit(); + Q_EMIT request(UkuiMenuApplication::Quit); return; } } diff --git a/src/ukui-menu-application.h b/src/ukui-menu-application.h index 63779e1..ed037a5 100644 --- a/src/ukui-menu-application.h +++ b/src/ukui-menu-application.h @@ -24,35 +24,24 @@ namespace UkuiMenu { -class MenuMessageProcessor : public QObject -{ - Q_OBJECT -public: - enum Command { - Show = 0, - Quit - }; - MenuMessageProcessor(); - static bool preprocessMessage(const QStringList& message); - -public Q_SLOTS: - void processMessage(quint32 instanceId, const QByteArray& message); - -Q_SIGNALS: - void request(Command command); -}; +class MenuMessageProcessor; class UkuiMenuApplication : public QObject { Q_OBJECT public: + enum Command { + Active = 0, + Show, + Quit + }; explicit UkuiMenuApplication(MenuMessageProcessor *processor); UkuiMenuApplication() = delete; UkuiMenuApplication(const UkuiMenuApplication& obj) = delete; UkuiMenuApplication(const UkuiMenuApplication&& obj) = delete; private Q_SLOTS: - void response(MenuMessageProcessor::Command command); + void execCommand(UkuiMenuApplication::Command command); private: static void registerQmlTypes(); @@ -67,7 +56,19 @@ private: MenuDbusService *m_menuDbusService = nullptr; }; +class MenuMessageProcessor : public QObject +{ + Q_OBJECT +public: + MenuMessageProcessor(); + static bool preprocessMessage(const QStringList& message); +public Q_SLOTS: + void processMessage(quint32 instanceId, const QByteArray& message); + +Q_SIGNALS: + void request(UkuiMenuApplication::Command command); +}; }