Skip to content

Commit

Permalink
limit settings to one instance
Browse files Browse the repository at this point in the history
  • Loading branch information
rodlie committed May 17, 2019
1 parent 813fe6a commit f84a1e9
Show file tree
Hide file tree
Showing 4 changed files with 46 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ set(POWER_SERVICE_NAME ${DOMAIN}.Power)
set(POWERD_SERVICE_NAME ${DOMAIN}.Powerd)
set(STORAGE_SERVICE_NAME ${DOMAIN}.Storage)
set(DESKTOP_SERVICE_NAME ${DOMAIN}.Desktop)
set(SETTINGS_SERVICE_NAME ${DOMAIN}.Settings)
set(
POWERD_SERVICE_USER
"root"
Expand All @@ -58,6 +59,7 @@ add_definitions(-DDESKTOP_APP_DOMAIN="${DOMAIN}")
add_definitions(-DDESKTOP_APP_VERSION="${PROJECT_VERSION}")
add_definitions(-DDESKTOP_APP_VERSION_EXTRA="${PROJECT_VERSION_EXTRA}")
add_definitions(-DDESKTOP_SERVICE_NAME="${DESKTOP_SERVICE_NAME}")
add_definitions(-DSETTINGS_SERVICE_NAME="${SETTINGS_SERVICE_NAME}")
add_definitions(-DPOWER_SERVICE_NAME="${POWER_SERVICE_NAME}")
add_definitions(-DPOWERD_SERVICE_NAME="${POWERD_SERVICE_NAME}")
add_definitions(-DSTORAGE_SERVICE_NAME="${STORAGE_SERVICE_NAME}")
Expand Down
15 changes: 15 additions & 0 deletions src/lib/draco.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,21 @@ const QString Draco::powerSessionFullPath()
return QString("/%1").arg(POWER_SERVICE_NAME).replace(".", "/");
}

const QString Draco::settingsSessionName()
{
return SETTINGS_SERVICE_NAME;
}

const QString Draco::settingsSessionPath()
{
return QString("/Settings");
}

const QString Draco::settingsSessionFullPath()
{
return QString("/%1").arg(SETTINGS_SERVICE_NAME).replace(".", "/");
}

const QString Draco::xconfig()
{
return QString("%1-settings-x11").arg(DESKTOP_APP);
Expand Down
3 changes: 3 additions & 0 deletions src/lib/draco.h
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@ class Draco : public QObject
static const QString powerSessionName();
static const QString powerSessionPath();
static const QString powerSessionFullPath();
static const QString settingsSessionName();
static const QString settingsSessionPath();
static const QString settingsSessionFullPath();
static const QString xconfig();
static const QString storageApp();
static const QString powerApp();
Expand Down
27 changes: 26 additions & 1 deletion src/settings/config/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,36 @@
//#include <LuminaThemes.h>
//#include <LuminaSingleApplication.h>
#include <LuminaXDG.h>
#include "draco.h"
#include <QDBusConnection>
#include <QDBusInterface>

XDGDesktopList *APPSLIST = 0;
XDGDesktopList *APPSLIST = nullptr;

int main(int argc, char ** argv)
{
// Check for dbus
if (!QDBusConnection::sessionBus().isConnected()) {
qWarning("Cannot connect to the D-Bus session bus.");
return 1;
}

// Check for running settings
QDBusInterface session(Draco::settingsSessionName(),
Draco::settingsSessionPath(),
Draco::settingsSessionName(),
QDBusConnection::sessionBus());
if (session.isValid()) {
qWarning("A settings session is already running");
return 1;
}

// Register settings session
if (!QDBusConnection::sessionBus().registerService(Draco::settingsSessionName())) {
qWarning() << QDBusConnection::sessionBus().lastError().message();
return 1;
}

//LTHEME::LoadCustomEnvSettings();
QApplication a(argc, argv); //loads translations inside constructor
//if(!a.isPrimaryProcess()){ return 0; }
Expand Down

0 comments on commit f84a1e9

Please sign in to comment.