mirror of
https://gitee.com/spark-store-project/spark-store
synced 2025-09-04 02:12:21 +08:00
commit
43ae031131
12
src/dbus/dbussparkstore.cpp
Normal file
12
src/dbus/dbussparkstore.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include "dbussparkstore.h"
|
||||||
|
#include <QDebug>
|
||||||
|
DBusSparkStoreService::DBusSparkStoreService(QObject *parent)
|
||||||
|
: QDBusAbstractAdaptor(parent)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void DBusSparkStoreService::activeWindow(const QString & arg)
|
||||||
|
{
|
||||||
|
emit sigOpenUrl(arg);
|
||||||
|
}
|
24
src/dbus/dbussparkstore.h
Normal file
24
src/dbus/dbussparkstore.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
#ifndef DBUSSPARKSTORE_H
|
||||||
|
#define DBUSSPARKSTORE_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 // DBUSSPARKSTORE_H
|
14
src/main.cpp
14
src/main.cpp
@ -4,6 +4,9 @@
|
|||||||
#include <DAboutDialog>
|
#include <DAboutDialog>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
|
//新增dbus
|
||||||
|
#include <QDBusInterface>
|
||||||
|
#include <QDBusPendingCall>
|
||||||
|
|
||||||
#include "widget.h"
|
#include "widget.h"
|
||||||
|
|
||||||
@ -69,6 +72,17 @@ int main(int argc, char *argv[])
|
|||||||
// 限制单实例运行
|
// 限制单实例运行
|
||||||
if(!a.setSingleInstance("spark-store"))
|
if(!a.setSingleInstance("spark-store"))
|
||||||
{
|
{
|
||||||
|
qDebug() << "The application is already running!";
|
||||||
|
QDBusInterface iface("com.gitee.spark.store",
|
||||||
|
"/com/gitee/spark/store",
|
||||||
|
"com.gitee.spark.store",
|
||||||
|
QDBusConnection::sessionBus());
|
||||||
|
|
||||||
|
QString arg1 = argv[1];
|
||||||
|
|
||||||
|
iface.asyncCall("activeWindow",arg1);
|
||||||
|
|
||||||
|
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ QT += core gui network concurrent webenginewidgets
|
|||||||
|
|
||||||
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
|
||||||
|
|
||||||
|
QT += dbus
|
||||||
TARGET = spark-store
|
TARGET = spark-store
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
|
|
||||||
@ -41,7 +42,8 @@ SOURCES += \
|
|||||||
main.cpp \
|
main.cpp \
|
||||||
progressload.cpp \
|
progressload.cpp \
|
||||||
widget.cpp \
|
widget.cpp \
|
||||||
workerthreads.cpp
|
workerthreads.cpp \
|
||||||
|
dbus/dbussparkstore.cpp
|
||||||
|
|
||||||
HEADERS += \
|
HEADERS += \
|
||||||
appitem.h \
|
appitem.h \
|
||||||
@ -52,7 +54,8 @@ HEADERS += \
|
|||||||
image_show.h \
|
image_show.h \
|
||||||
progressload.h \
|
progressload.h \
|
||||||
widget.h \
|
widget.h \
|
||||||
workerthreads.h
|
workerthreads.h \
|
||||||
|
dbus/dbussparkstore.h
|
||||||
|
|
||||||
FORMS += \
|
FORMS += \
|
||||||
appitem.ui \
|
appitem.ui \
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "HttpClient.h"
|
#include "HttpClient.h"
|
||||||
#include "downloadworker.h"
|
#include "downloadworker.h"
|
||||||
|
|
||||||
|
#include "./dbus/dbussparkstore.h"
|
||||||
DWIDGET_USE_NAMESPACE
|
DWIDGET_USE_NAMESPACE
|
||||||
|
|
||||||
Widget::Widget(DBlurEffectWidget *parent) :
|
Widget::Widget(DBlurEffectWidget *parent) :
|
||||||
@ -138,6 +139,9 @@ Widget::Widget(DBlurEffectWidget *parent) :
|
|||||||
});
|
});
|
||||||
|
|
||||||
notify_init(tr("Spark\\ Store").toLocal8Bit());
|
notify_init(tr("Spark\\ Store").toLocal8Bit());
|
||||||
|
|
||||||
|
//初始化dbus服务
|
||||||
|
initDbus();
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget::~Widget()
|
Widget::~Widget()
|
||||||
@ -452,6 +456,15 @@ void Widget::sendNotification(const char *message, const int msTimeout, const QS
|
|||||||
notify_notification_show(_notify, nullptr);
|
notify_notification_show(_notify, nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Widget::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,&Widget::onGetUrl);
|
||||||
|
}
|
||||||
|
|
||||||
void Widget::updateUI()
|
void Widget::updateUI()
|
||||||
{
|
{
|
||||||
if(themeIsDark)
|
if(themeIsDark)
|
||||||
@ -1354,3 +1367,12 @@ void Widget::on_pushButton_update_clicked()
|
|||||||
QDesktopServices::openUrl(QUrl("https://www.deepinos.org/"));
|
QDesktopServices::openUrl(QUrl("https://www.deepinos.org/"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Widget::onGetUrl(const QString &url)
|
||||||
|
{
|
||||||
|
if(url.left(6)=="spk://")
|
||||||
|
{
|
||||||
|
openUrl(QUrl(url));
|
||||||
|
}
|
||||||
|
activateWindow();
|
||||||
|
}
|
||||||
|
|
||||||
|
@ -64,6 +64,7 @@ public:
|
|||||||
static void sendNotification(const QString &message, const int msTimeout = 5000, const QString &icon = "spark-store");
|
static void sendNotification(const QString &message, const int msTimeout = 5000, const QString &icon = "spark-store");
|
||||||
static void sendNotification(const char *message, const int msTimeout = 5000, const QString &icon = "spark-store");
|
static void sendNotification(const char *message, const int msTimeout = 5000, const QString &icon = "spark-store");
|
||||||
|
|
||||||
|
void initDbus();
|
||||||
private slots:
|
private slots:
|
||||||
|
|
||||||
void httpFinished();
|
void httpFinished();
|
||||||
@ -103,6 +104,9 @@ private slots:
|
|||||||
void on_pushButton_refresh_clicked();
|
void on_pushButton_refresh_clicked();
|
||||||
void on_pushButton_update_clicked();
|
void on_pushButton_update_clicked();
|
||||||
|
|
||||||
|
//接受来自dbus的url
|
||||||
|
void onGetUrl(const QString &url);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QUrl url;
|
QUrl url;
|
||||||
QString cdnSeverUrl;
|
QString cdnSeverUrl;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user