diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -35,7 +35,6 @@ # Starting the actual project definition # Config file -set (KAMD_FULL_BIN_DIR "${KDE_INSTALL_FULL_BINDIR}") set (KAMD_PLUGIN_VERSION 1) set (KAMD_PLUGIN_DIR "kactivitymanagerd/${KAMD_PLUGIN_VERSION}") set (KAMD_FULL_PLUGIN_DIR "${KDE_INSTALL_FULL_PLUGINDIR}/${KAMD_PLUGIN_DIR}/") diff --git a/src/kactivities-features.h.cmake b/src/kactivities-features.h.cmake --- a/src/kactivities-features.h.cmake +++ b/src/kactivities-features.h.cmake @@ -4,8 +4,6 @@ #cmakedefine KAMD_PLUGIN_DIR "@KAMD_PLUGIN_DIR@" #cmakedefine KAMD_FULL_PLUGIN_DIR "@KAMD_FULL_PLUGIN_DIR@" -#cmakedefine KAMD_FULL_BIN_DIR "@KAMD_FULL_BIN_DIR@" - #cmakedefine01 HAVE_CXX11_AUTO #cmakedefine01 HAVE_CXX11_NULLPTR #cmakedefine01 HAVE_CXX11_LAMBDA diff --git a/src/org.kde.activitymanager.service.in b/src/org.kde.activitymanager.service.in --- a/src/org.kde.activitymanager.service.in +++ b/src/org.kde.activitymanager.service.in @@ -1,3 +1,3 @@ [D-BUS Service] Name=org.kde.ActivityManager -Exec=@KAMD_FULL_BIN_DIR@/kactivitymanagerd +Exec=${KDE_INSTALL_FULL_LIBEXECDIR}/kactivitymanagerd diff --git a/src/service/Application.cpp b/src/service/Application.cpp --- a/src/service/Application.cpp +++ b/src/service/Application.cpp @@ -290,31 +290,6 @@ return KACTIVITIES_VERSION_STRING; } -// Leaving object oriented world :) - -namespace { - template - Return callOnRunningService(const QString &method) - { - static QDBusInterface remote(KAMD_DBUS_SERVICE, QStringLiteral("/ActivityManager"), - QStringLiteral("org.kde.ActivityManager.Application")); - QDBusReply reply = remote.call(method); - - return (Return)reply; - } - - QString runningServiceVersion() - { - return callOnRunningService(QStringLiteral("serviceVersion")); - } - - bool isServiceRunning() - { - return QDBusConnection::sessionBus().interface()->isServiceRegistered( - KAMD_DBUS_SERVICE); - } -} - int main(int argc, char **argv) { // Disable session management for this process @@ -325,102 +300,11 @@ Application application(argc, argv); application.setApplicationName(QStringLiteral("ActivityManager")); application.setOrganizationDomain(QStringLiteral("kde.org")); + KDBusService service(KDBusService::Unique); - // KAboutData about("kactivitymanagerd", nullptr, ki18n("KDE Activity Manager"), "3.0", - // ki18n("KDE Activity Management Service"), - // KAboutData::License_GPL, - // ki18n("(c) 2010, 2011, 2012 Ivan Cukic"), KLocalizedString(), - // "http://www.kde.org/"); - - // KCmdLineArgs::init(argc, argv, &about); - - const auto arguments = application.arguments(); - - if (arguments.size() == 0) { - QCoreApplication::exit(EXIT_FAILURE); - - } else if (arguments.size() != 1 && (arguments.size() != 2 || arguments[1] == QLatin1String("--help"))) { - - QTextStream(stdout) - << "start\tStarts the service\n" - << "stop\tStops the server\n" - << "status\tPrints basic server information\n" - << "start-daemon\tStarts the service without forking (use with caution)\n" - << "--help\tThis help message\n"; - - QCoreApplication::exit(EXIT_SUCCESS); - - } else if (arguments.size() == 1 || arguments[1] == QLatin1String("start")) { - - // Checking whether the service is already running - if (isServiceRunning()) { - QTextStream(stdout) << "Already running\n"; - QCoreApplication::exit(EXIT_SUCCESS); - } - - // Creating the watcher, but not on the wall - - QDBusServiceWatcher watcher(KAMD_DBUS_SERVICE, - QDBusConnection::sessionBus(), - QDBusServiceWatcher::WatchForRegistration); + application.init(); - QObject::connect(&watcher, &QDBusServiceWatcher::serviceRegistered, - [] (const QString &service) { - QTextStream(stdout) - << "Service started, version: " << runningServiceVersion() - << "\n"; - - QCoreApplication::exit(EXIT_SUCCESS); - }); - - // Starting the dameon - - QProcess::startDetached( - QLatin1String(KAMD_FULL_BIN_DIR "/kactivitymanagerd"), - QStringList{QStringLiteral("start-daemon")} - ); - - return application.exec(); - - } else if (arguments[1] == QLatin1String("stop")) { - if (!isServiceRunning()) { - QTextStream(stdout) << "Service not running\n"; - QCoreApplication::exit(EXIT_SUCCESS); - } - - callOnRunningService(QStringLiteral("quit")); - - QTextStream(stdout) << "Service stopped\n"; - - return EXIT_SUCCESS; - - } else if (arguments[1] == QLatin1String("status")) { - - // Checking whether the service is already running - if (isServiceRunning()) { - QTextStream(stdout) << "The service is running, version: " - << runningServiceVersion() << "\n"; - } else { - QTextStream(stdout) << "The service is not running\n"; - - } - - return EXIT_SUCCESS; - - } else if (arguments[1] == QLatin1String("start-daemon")) { - // Really starting the activity manager - - KDBusService service(KDBusService::Unique); - - application.init(); - - return application.exec(); - - } else { - QTextStream(stdout) << "Unrecognized command: " << arguments[1] << '\n'; - - return EXIT_FAILURE; - } + return application.exec(); } QStringList Application::loadedPlugins() const diff --git a/src/service/CMakeLists.txt b/src/service/CMakeLists.txt --- a/src/service/CMakeLists.txt +++ b/src/service/CMakeLists.txt @@ -81,7 +81,12 @@ ) install (TARGETS - kactivitymanagerd kactivitymanagerd_plugin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} + kactivitymanagerd + DESTINATION ${KDE_INSTALL_LIBEXECDIR} + ) + +install (TARGETS + kactivitymanagerd_plugin ${KDE_INSTALL_TARGETS_DEFAULT_ARGS} ) install (FILES