File indexing completed on 2024-06-09 04:43:36
0001 #include "server.h" 0002 #include <QDBusConnectionInterface> 0003 #include <QDebug> 0004 0005 #include "modules/background.h" 0006 #include "modules/theme.h" 0007 #include "modules/screen.h" 0008 #include "modules/formfactor.h" 0009 #include "modules/accessibility.h" 0010 #include "modules/inputdevices.h" 0011 0012 #include <signal.h> 0013 0014 void sigtermHandler(int signalNumber) 0015 { 0016 qDebug() << "terminating cask session" << signalNumber; 0017 if (QCoreApplication::instance()) 0018 { 0019 QCoreApplication::instance()->exit(-1); 0020 qDebug() << "terminating caks session FINISHED" << signalNumber; 0021 } 0022 } 0023 0024 void sigHandler(int signalNumber) 0025 { 0026 qDebug() << "terminating MauiManServer session" << signalNumber; 0027 } 0028 0029 Server::Server(int &argc, char **argv) : QCoreApplication(argc, argv) 0030 { 0031 0032 } 0033 0034 Server::~Server() 0035 { 0036 qDeleteAll(m_modules); 0037 } 0038 0039 0040 bool Server::init() 0041 { 0042 QDBusConnectionInterface *iface = QDBusConnection::sessionBus().interface(); 0043 0044 if(iface->isServiceRegistered(QStringLiteral("org.mauiman.Manager"))) 0045 { 0046 qWarning() << "Service is already registered"; 0047 return false; 0048 } 0049 0050 auto registration = iface->registerService(QStringLiteral("org.mauiman.Manager"), 0051 QDBusConnectionInterface::ReplaceExistingService, 0052 QDBusConnectionInterface::DontAllowReplacement); 0053 0054 if (!registration.isValid()) 0055 { 0056 qWarning("2 Failed to register D-Bus service \"%s\" on session bus: \"%s\"", 0057 qPrintable(QStringLiteral("org.mauiman.Manager")), 0058 qPrintable(registration.error().message())); 0059 0060 return false; 0061 } 0062 0063 signal(SIGTERM, sigtermHandler); 0064 signal(SIGINT, sigHandler); 0065 0066 m_modules << new Background(); 0067 m_modules << new Theme(); 0068 m_modules << new Screen(); 0069 m_modules << new FormFactor(); 0070 m_modules << new Accessibility(); 0071 m_modules << new InputDevices(); 0072 return true; 0073 }