添加dbus功能

This commit is contained in:
2022-12-11 01:19:59 +08:00
parent ae1c50893d
commit 8a54dd92a3
5 changed files with 65 additions and 1 deletions

View File

@@ -0,0 +1,12 @@
#include "dbussparkstoreservice.h"
#include <QDebug>
DBusSparkStoreService::DBusSparkStoreService(QObject *parent)
: QDBusAbstractAdaptor(parent)
{
}
void DBusSparkStoreService::activeWindow(const QString & arg)
{
emit sigOpenUrl(arg);
}

View File

@@ -0,0 +1,24 @@
#ifndef DBUSSPARKSTORESERVICE_H
#define DBUSSPARKSTORESERVICE_H
#include <QObject>
#include <QUrl>
#include <QtDBus/QtDBus>
class Wallpaper;
class DBusSparkStoreService : public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "com.gitee.spark.store")
public:
explicit DBusSparkStoreService(QObject *parent);
signals :
void sigOpenUrl(const QString &url);
public Q_SLOTS:
void activeWindow(const QString &arg);
};
#endif // DBUSSPARKSTORESERVICE_H

View File

@@ -196,6 +196,8 @@ MainWindow::MainWindow(QWidget *parent)
openUrl(spk); openUrl(spk);
}); });
emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType()); emit DGuiApplicationHelper::instance()->themeTypeChanged(DGuiApplicationHelper::instance()->themeType());
initDbus();
} }
MainWindow::~MainWindow() MainWindow::~MainWindow()
@@ -205,6 +207,24 @@ MainWindow::~MainWindow()
delete ui; delete ui;
} }
void MainWindow::initDbus()
{
DBusSparkStoreService *dbusInter = new DBusSparkStoreService(this);
QDBusConnection::sessionBus().registerService("com.gitee.spark.store");
QDBusConnection::sessionBus().registerObject("/com/gitee/spark/store", "com.gitee.spark.store", this);
connect(dbusInter,&DBusSparkStoreService::sigOpenUrl,this,&MainWindow::onGetUrl);
}
void MainWindow::onGetUrl(const QString &url)
{
if(url.left(6)=="spk://")
{
openUrl(QUrl(url));
}
activateWindow();
}
void MainWindow::openUrl(QUrl url) void MainWindow::openUrl(QUrl url)
{ {
if (url.toString().startsWith("spk://")) { if (url.toString().startsWith("spk://")) {

View File

@@ -14,6 +14,7 @@
#include "widgets/downloadlistwidget.h" #include "widgets/downloadlistwidget.h"
#include "utils/widgetanimation.h" #include "utils/widgetanimation.h"
#include "dbus/dbussparkstoreservice.h"
DWIDGET_USE_NAMESPACE DWIDGET_USE_NAMESPACE
@@ -32,6 +33,7 @@ public:
void openUrl(QUrl); void openUrl(QUrl);
private: private:
void initDbus();
void initConfig(); void initConfig();
void switchPage(int now); void switchPage(int now);
void updateUi(int now); void updateUi(int now);
@@ -44,6 +46,10 @@ private:
QPushButton *backButtom; QPushButton *backButtom;
DSearchEdit *searchEdit = new DSearchEdit; DSearchEdit *searchEdit = new DSearchEdit;
Ui::MainWindow *ui; Ui::MainWindow *ui;
private slots:
//接受来自dbus的url
void onGetUrl(const QString &url);
}; };
#endif // MAINWINDOWDTK_H #endif // MAINWINDOWDTK_H

View File

@@ -4,7 +4,7 @@
# #
#------------------------------------------------- #-------------------------------------------------
QT += core gui network concurrent webenginewidgets QT += core gui network concurrent webenginewidgets dbus
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
@@ -31,6 +31,7 @@ PKGCONFIG += dtkcore dtkgui dtkwidget libnotify
CONFIG(release, debug|release): DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT CONFIG(release, debug|release): DEFINES += QT_NO_WARNING_OUTPUT QT_NO_DEBUG_OUTPUT
SOURCES += \ SOURCES += \
dbus/dbussparkstoreservice.cpp \
main.cpp \ main.cpp \
mainwindow-dtk.cpp \ mainwindow-dtk.cpp \
backend/sparkapi.cpp \ backend/sparkapi.cpp \
@@ -50,6 +51,7 @@ SOURCES += \
backend/image_show.cpp backend/image_show.cpp
HEADERS += \ HEADERS += \
dbus/dbussparkstoreservice.h \
mainwindow-dtk.h \ mainwindow-dtk.h \
backend/sparkapi.h \ backend/sparkapi.h \
pages/settingspage.h \ pages/settingspage.h \