62 lines
2.0 KiB
Diff
62 lines
2.0 KiB
Diff
From 6389063edae59a2eab7c80996b412cfca1639911 Mon Sep 17 00:00:00 2001
|
|
From: Paul Thomas <paulthomas100199@gmail.com>
|
|
Date: Tue, 30 Jan 2024 14:19:15 +0800
|
|
Subject: [PATCH] The ID of the current Session is used to register the
|
|
singleton process
|
|
|
|
---
|
|
include/kernel/dguiapplicationhelper.h | 1 +
|
|
src/kernel/dguiapplicationhelper.cpp | 17 ++++++++++++++++-
|
|
2 files changed, 17 insertions(+), 1 deletion(-)
|
|
|
|
diff --git a/include/kernel/dguiapplicationhelper.h b/include/kernel/dguiapplicationhelper.h
|
|
index 72e3577..d777a36 100644
|
|
--- a/include/kernel/dguiapplicationhelper.h
|
|
+++ b/include/kernel/dguiapplicationhelper.h
|
|
@@ -137,6 +137,7 @@ Q_SIGNALS:
|
|
protected:
|
|
explicit DGuiApplicationHelper();
|
|
virtual void initialize();
|
|
+ static QString getSessionID();
|
|
|
|
private:
|
|
D_PRIVATE_SLOT(void _q_initApplicationTheme(bool))
|
|
diff --git a/src/kernel/dguiapplicationhelper.cpp b/src/kernel/dguiapplicationhelper.cpp
|
|
index f9b3fd1..913c410 100644
|
|
--- a/src/kernel/dguiapplicationhelper.cpp
|
|
+++ b/src/kernel/dguiapplicationhelper.cpp
|
|
@@ -491,6 +491,21 @@ void DGuiApplicationHelper::initialize()
|
|
d->init();
|
|
}
|
|
|
|
+QString DGuiApplicationHelper::getSessionID()
|
|
+{
|
|
+ QString sessionID = "0";
|
|
+
|
|
+ QDBusInterface *inter = new QDBusInterface("org.freedesktop.DBus",
|
|
+ "/org/freedesktop/DBus",
|
|
+ "org.freedesktop.DBus",
|
|
+ QDBusConnection::sessionBus());
|
|
+
|
|
+ sessionID = inter->call("GetId").arguments().value(0).toString();
|
|
+ inter->deleteLater();
|
|
+
|
|
+ return sessionID;
|
|
+}
|
|
+
|
|
/*!
|
|
\brief 创建 DGuiApplicationHelper 对象.
|
|
|
|
@@ -1369,7 +1384,7 @@ bool DGuiApplicationHelper::setSingleInstance(const QString &key, DGuiApplicatio
|
|
_d_singleServer->close();
|
|
}
|
|
|
|
- QString socket_key = "_d_dtk_single_instance_";
|
|
+ QString socket_key = QString("_d_dtk_single_instance_%1_").arg(getSessionID());
|
|
|
|
switch (singleScope) {
|
|
case GroupScope:
|
|
--
|
|
2.20.1
|
|
|