add --replace option to kdeconnectd

This commit is contained in:
Nicolas Fella 2019-04-27 23:03:24 +02:00 committed by Nicolas Fella
parent a67a99a7d6
commit c029ae2bc2

View file

@ -22,6 +22,10 @@
#include <QNetworkAccessManager>
#include <QTimer>
#include <QLoggingCategory>
#include <QCommandLineOption>
#include <QCommandLineParser>
#include <QDBusMessage>
#include <QDBusConnection>
#include <KAboutData>
#include <KDBusService>
@ -106,6 +110,21 @@ int main(int argc, char* argv[])
app.setQuitOnLastWindowClosed(false);
app.setDesktopFileName(QStringLiteral("org.kde.kdeconnect.daemon"));
QCommandLineParser parser;
QCommandLineOption replaceOption({QStringLiteral("replace")}, i18n("Replace an existing instance"));
parser.addOption(replaceOption);
aboutData.setupCommandLine(&parser);
parser.process(app);
aboutData.processCommandLine(&parser);
if (parser.isSet(replaceOption)) {
auto message = QDBusMessage::createMethodCall(QStringLiteral("org.kde.kdeconnectd"),
QStringLiteral("/MainApplication"),
QStringLiteral("org.qtproject.Qt.QCoreApplication"),
QStringLiteral("quit"));
QDBusConnection::sessionBus().call(message); //deliberately block until it's done, so we register the name after the app quits
}
KDBusService dbusService(KDBusService::Unique);
DesktopDaemon daemon;