File: applicationintegration.cpp

package info (click to toggle)
plasma-workspace 4%3A5.27.5-2%2Bdeb12u2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 102,040 kB
  • sloc: cpp: 121,800; xml: 3,238; python: 645; perl: 586; sh: 254; javascript: 113; ruby: 62; makefile: 15; ansic: 13
file content (33 lines) | stat: -rw-r--r-- 1,005 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// SPDX-FileCopyrightText: 2021 Carl Schwan <carlschwan@kde.org>
// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL

#include "applicationintegration.h"
#include <KApplicationTrader>
#include <KIO/ApplicationLauncherJob>

ApplicationIntegration::ApplicationIntegration(QObject *parent)
    : QObject(parent)
{
    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
{
    return m_calendarService != nullptr;
}

void ApplicationIntegration::launchCalendar() const
{
    Q_ASSERT(m_calendarService);

    auto job = new KIO::ApplicationLauncherJob(m_calendarService);
    job->start();
}