54 lines
1.5 KiB
C++
54 lines
1.5 KiB
C++
#include <QCoreApplication>
|
|
#include <QDBusConnection>
|
|
#include <QDebug>
|
|
#include <csignal>
|
|
|
|
#include "session_manager.h"
|
|
#include "sessionmanageradaptor.h" // generated by qt6_add_dbus_adaptor
|
|
|
|
static void signalHandler(int sig)
|
|
{
|
|
qDebug() << "Received signal" << sig << "- shutting down";
|
|
QCoreApplication::quit();
|
|
}
|
|
|
|
int main(int argc, char *argv[])
|
|
{
|
|
QCoreApplication app(argc, argv);
|
|
app.setApplicationName("ollie-kde");
|
|
app.setOrganizationName("ollie");
|
|
|
|
// Handle SIGTERM/SIGINT gracefully
|
|
signal(SIGTERM, signalHandler);
|
|
signal(SIGINT, signalHandler);
|
|
|
|
// Create the session manager (initializes ollie core)
|
|
SessionManager manager;
|
|
|
|
// Create the D-Bus adaptor (generated from XML)
|
|
new SessionManagerAdaptor(&manager);
|
|
|
|
// Register on the session bus
|
|
QDBusConnection bus = QDBusConnection::sessionBus();
|
|
if (!bus.isConnected()) {
|
|
qCritical() << "Cannot connect to D-Bus session bus";
|
|
return 1;
|
|
}
|
|
|
|
if (!bus.registerService("org.ollie.SessionManager")) {
|
|
qCritical() << "Cannot register D-Bus service org.ollie.SessionManager:"
|
|
<< bus.lastError().message();
|
|
return 1;
|
|
}
|
|
|
|
if (!bus.registerObject("/org/ollie/SessionManager", &manager)) {
|
|
qCritical() << "Cannot register D-Bus object /org/ollie/SessionManager:"
|
|
<< bus.lastError().message();
|
|
return 1;
|
|
}
|
|
|
|
qDebug() << "ollie-kde daemon started on D-Bus: org.ollie.SessionManager";
|
|
|
|
return app.exec();
|
|
}
|