File indexing completed on 2024-05-12 05:37:19

0001 /*
0002     SPDX-FileCopyrightText: 2012 Gregor Taetzner <gregor@freenet.de>
0003 
0004     SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005 */
0006 
0007 #include "packagekitjob.h"
0008 #include <QDBusConnection>
0009 #include <QDBusMessage>
0010 
0011 PackagekitJob::PackagekitJob(const QString &destination, const QString &operation, const QMap<QString, QVariant> &parameters, QObject *parent)
0012     : ServiceJob(destination, operation, parameters, parent)
0013 {
0014 }
0015 
0016 PackagekitJob::~PackagekitJob()
0017 {
0018 }
0019 
0020 void PackagekitJob::start()
0021 {
0022     const QString operation = operationName();
0023 
0024     if (operation == QLatin1String("uninstallApplication")) {
0025         QStringList files(parameters()[QStringLiteral("Url")].toString());
0026         QDBusMessage message = QDBusMessage::createMethodCall(QStringLiteral("org.freedesktop.PackageKit"),
0027                                                               QStringLiteral("/org/freedesktop/PackageKit"),
0028                                                               QStringLiteral("org.freedesktop.PackageKit.Modify"),
0029                                                               QStringLiteral("RemovePackageByFiles"));
0030         message << (uint)0;
0031         message << files;
0032         message << QString();
0033 
0034         QDBusConnection::sessionBus().call(message, QDBus::NoBlock);
0035         setResult(true);
0036         return;
0037     }
0038 
0039     setResult(false);
0040 }