diff --git a/applets/digital-clock/plugin/CMakeLists.txt b/applets/digital-clock/plugin/CMakeLists.txt index 0c19f6938..bd5fe19e7 100644 --- a/applets/digital-clock/plugin/CMakeLists.txt +++ b/applets/digital-clock/plugin/CMakeLists.txt @@ -23,6 +23,7 @@ target_link_libraries(digitalclockplugin Qt::Widgets # for QAction... KF5::CoreAddons KF5::KIOGui + KF5::Service KF5::I18n) install(TARGETS digitalclockplugin DESTINATION ${KDE_INSTALL_QMLDIR}/org/kde/plasma/private/digitalclock) diff --git a/applets/digital-clock/plugin/applicationintegration.cpp b/applets/digital-clock/plugin/applicationintegration.cpp index 13c3571a3..4bdd68391 100644 --- a/applets/digital-clock/plugin/applicationintegration.cpp +++ b/applets/digital-clock/plugin/applicationintegration.cpp @@ -2,12 +2,21 @@ // SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL #include "applicationintegration.h" +#include #include ApplicationIntegration::ApplicationIntegration(QObject *parent) : QObject(parent) - , m_calendarService(KService::serviceByDesktopName(QStringLiteral("org.kde.korganizer"))) { + const auto services = KApplicationTrader::queryByMimeType(QStringLiteral("text/calendar")); + + if (!services.isEmpty()) { + const KService::Ptr app = services.first(); + + if (app->desktopEntryName() == QLatin1String("org.kde.korganizer") || app->desktopEntryName() == QLatin1String("org.kde.kalendar")) { + m_calendarService = app; + } + } } bool ApplicationIntegration::calendarInstalled() const