[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [kcm-grub2/frameworks] /: Port QPkBackend to PackageKitQt5
From: Alexander Volkov <null () kde ! org>
Date: 2018-05-15 11:39:48
Message-ID: E1fIYJ2-0004UI-Sn () code ! kde ! org
[Download RAW message or body]
Git commit c767e19cffd9636e5ebe8d2820a1240ec34c9b7f by Alexander Volkov.
Committed on 15/05/2018 at 11:31.
Pushed by volkov into branch 'frameworks'.
Port QPkBackend to PackageKitQt5
M +3 -3 CMakeLists.txt
D +0 -40 cmake/modules/FindQPackageKit.cmake
M +1 -3 src/CMakeLists.txt
M +67 -78 src/qPkBackend.cpp
M +7 -7 src/qPkBackend.h
M +6 -2 src/removeDlg.cpp
M +8 -4 src/removeDlg.h
https://commits.kde.org/kcm-grub2/c767e19cffd9636e5ebe8d2820a1240ec34c9b7f
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6f02713..2e026f2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -65,12 +65,12 @@ else()
set(HAVE_QAPT 0)
endif()
-find_package(QPackageKit)
-set_package_properties(QPackageKit PROPERTIES
+find_package(PackageKitQt5)
+set_package_properties(PackageKitQt5 PROPERTIES
DESCRIPTION "Remove unneeded old entries (qpackagekit \
backend)" URL "http://www.packagekit.org/"
TYPE OPTIONAL)
-if(QPACKAGEKIT_FOUND)
+if(PackageKitQt5_FOUND)
set(HAVE_QPACKAGEKIT 1)
else()
set(HAVE_QPACKAGEKIT 0)
diff --git a/cmake/modules/FindQPackageKit.cmake \
b/cmake/modules/FindQPackageKit.cmake deleted file mode 100644
index 5efc79a..0000000
--- a/cmake/modules/FindQPackageKit.cmake
+++ /dev/null
@@ -1,40 +0,0 @@
-# - Try to find QPackageKit
-# Once done this will define
-#
-# QPACKAGEKIT_FOUND - system has QPackageKit
-# QPACKAGEKIT_INCLUDE_DIR - the QPackageKit include directory
-# QPACKAGEKIT_LIB - Link these to use QPackageKit
-# QPACKAGEKIT_DEFINITIONS - Compiler switches required for using QPackageKit
-
-# Copyright (c) 2008, Adrien Bustany, <madcat@mymadcat.com>
-#
-# Redistribution and use is allowed according to the terms of the GPLv2+ license.
-
-IF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
- SET(QPACKAGEKIT_FIND_QUIETLY TRUE)
-ENDIF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
-
-FIND_PATH( QPACKAGEKIT_INCLUDE_DIR PackageKit/packagekit-qt/QPackageKit )
-
-FIND_LIBRARY( QPACKAGEKIT_LIB NAMES packagekit-qt )
-
-IF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
- SET(QPACKAGEKIT_FOUND TRUE)
-ELSE (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
- SET(QPACKAGEKIT_FOUND FALSE)
-ENDIF (QPACKAGEKIT_INCLUDE_DIR AND QPACKAGEKIT_LIB)
-
-SET(QPACKAGEKIT_INCLUDE_DIR ${QPACKAGEKIT_INCLUDE_DIR}/PackageKit/packagekit-qt)
-
-IF (QPACKAGEKIT_FOUND)
- IF (NOT QPACKAGEKIT_FIND_QUIETLY)
- MESSAGE(STATUS "Found QPackageKit: ${QPACKAGEKIT_LIB}")
- ENDIF (NOT QPACKAGEKIT_FIND_QUIETLY)
-ELSE (QPACKAGEKIT_FOUND)
- IF (QPACKAGEKIT_FIND_REQUIRED)
- MESSAGE(FATAL_ERROR "Could NOT find QPackageKit")
- ENDIF (QPACKAGEKIT_FIND_REQUIRED)
-ENDIF (QPACKAGEKIT_FOUND)
-
-MARK_AS_ADVANCED(QPACKAGEKIT_INCLUDE_DIR QPACKAGEKIT_LIB)
-
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7c43a34..ae4e8ed 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -8,8 +8,6 @@ if(HAVE_IMAGEMAGICK)
endif(HAVE_IMAGEMAGICK)
if(HAVE_QAPT)
set(kcm_grub2_INCLUDE_DIRS ${kcm_grub2_INCLUDE_DIRS} ${QAPT_INCLUDE_DIR})
-elseif(HAVE_QPACKAGEKIT)
- set(kcm_grub2_INCLUDE_DIRS ${kcm_grub2_INCLUDE_DIRS} ${QPACKAGEKIT_INCLUDE_DIR})
endif(HAVE_QAPT)
# Set Sources
@@ -40,7 +38,7 @@ endif(HAVE_IMAGEMAGICK)
if(HAVE_QAPT)
set(kcm_grub2_LINK_LIBS ${kcm_grub2_LINK_LIBS} ${QAPT_LIBRARY})
elseif(HAVE_QPACKAGEKIT)
- set(kcm_grub2_LINK_LIBS ${kcm_grub2_LINK_LIBS} ${QPACKAGEKIT_LIB})
+ set(kcm_grub2_LINK_LIBS ${kcm_grub2_LINK_LIBS} ${PackageKitQt5_LIBRARIES})
endif(HAVE_QAPT)
# Definitions
diff --git a/src/qPkBackend.cpp b/src/qPkBackend.cpp
index 8d4bc8a..5f8f7ae 100644
--- a/src/qPkBackend.cpp
+++ b/src/qPkBackend.cpp
@@ -18,123 +18,122 @@
//Own
#include "qPkBackend.h"
+//Qt
+#include <QEventLoop>
+
//KDE
#include <KLocalizedString>
+//PackageKit
+#include <PackageKit/Daemon>
+
//Taken from KDE playground/sysadmin/apper "as is"
-static QString statusToString(PackageKit::Enum::Status status)
+static QString statusToString(PackageKit::Transaction::Status status)
{
switch (status) {
- case PackageKit::Enum::LastStatus:
- case PackageKit::Enum::UnknownStatus:
- return i18nc("This is when the transaction status is not known",
- "Unknown state");
- case PackageKit::Enum::StatusSetup:
+ case PackageKit::Transaction::StatusSetup:
return i18nc("transaction state, the daemon is in the process of starting",
"Waiting for service to start");
- case PackageKit::Enum::StatusWait:
+ case PackageKit::Transaction::StatusWait:
return i18nc("transaction state, the transaction is waiting for another to \
complete", "Waiting for other tasks");
- case PackageKit::Enum::StatusRunning:
+ case PackageKit::Transaction::StatusRunning:
return i18nc("transaction state, just started",
"Running task");
- case PackageKit::Enum::StatusQuery:
+ case PackageKit::Transaction::StatusQuery:
return i18nc("transaction state, is querying data",
"Querying");
- case PackageKit::Enum::StatusInfo:
+ case PackageKit::Transaction::StatusInfo:
return i18nc("transaction state, getting data from a server",
"Getting information");
- case PackageKit::Enum::StatusRemove:
+ case PackageKit::Transaction::StatusRemove:
return i18nc("transaction state, removing packages",
"Removing packages");
- case PackageKit::Enum::StatusDownload:
+ case PackageKit::Transaction::StatusDownload:
return i18nc("transaction state, downloading package files",
"Downloading packages");
- case PackageKit::Enum::StatusInstall:
+ case PackageKit::Transaction::StatusInstall:
return i18nc("transaction state, installing packages",
"Installing packages");
- case PackageKit::Enum::StatusRefreshCache:
+ case PackageKit::Transaction::StatusRefreshCache:
return i18nc("transaction state, refreshing internal lists",
"Refreshing software list");
- case PackageKit::Enum::StatusUpdate:
+ case PackageKit::Transaction::StatusUpdate:
return i18nc("transaction state, installing updates",
"Updating packages");
- case PackageKit::Enum::StatusCleanup:
+ case PackageKit::Transaction::StatusCleanup:
return i18nc("transaction state, removing old packages, and cleaning config \
files", "Cleaning up packages");
- case PackageKit::Enum::StatusObsolete:
+ case PackageKit::Transaction::StatusObsolete:
return i18nc("transaction state, obsoleting old packages",
"Obsoleting packages");
- case PackageKit::Enum::StatusDepResolve:
+ case PackageKit::Transaction::StatusDepResolve:
return i18nc("transaction state, checking the transaction before we do it",
"Resolving dependencies");
- case PackageKit::Enum::StatusSigCheck:
+ case PackageKit::Transaction::StatusSigCheck:
return i18nc("transaction state, checking if we have all the security keys \
for the operation", "Checking signatures");
- case PackageKit::Enum::StatusRollback:
- return i18nc("transaction state, when we return to a previous system state",
- "Rolling back");
- case PackageKit::Enum::StatusTestCommit:
+ case PackageKit::Transaction::StatusTestCommit:
return i18nc("transaction state, when we're doing a test transaction",
"Testing changes");
- case PackageKit::Enum::StatusCommit:
+ case PackageKit::Transaction::StatusCommit:
return i18nc("transaction state, when we're writing to the system package \
database", "Committing changes");
- case PackageKit::Enum::StatusRequest:
+ case PackageKit::Transaction::StatusRequest:
return i18nc("transaction state, requesting data from a server",
"Requesting data");
- case PackageKit::Enum::StatusFinished:
+ case PackageKit::Transaction::StatusFinished:
return i18nc("transaction state, all done!",
"Finished");
- case PackageKit::Enum::StatusCancel:
+ case PackageKit::Transaction::StatusCancel:
return i18nc("transaction state, in the process of cancelling",
"Cancelling");
- case PackageKit::Enum::StatusDownloadRepository:
+ case PackageKit::Transaction::StatusDownloadRepository:
return i18nc("transaction state, downloading metadata",
"Downloading repository information");
- case PackageKit::Enum::StatusDownloadPackagelist:
+ case PackageKit::Transaction::StatusDownloadPackagelist:
return i18nc("transaction state, downloading metadata",
"Downloading list of packages");
- case PackageKit::Enum::StatusDownloadFilelist:
+ case PackageKit::Transaction::StatusDownloadFilelist:
return i18nc("transaction state, downloading metadata",
"Downloading file lists");
- case PackageKit::Enum::StatusDownloadChangelog:
+ case PackageKit::Transaction::StatusDownloadChangelog:
return i18nc("transaction state, downloading metadata",
"Downloading lists of changes");
- case PackageKit::Enum::StatusDownloadGroup:
+ case PackageKit::Transaction::StatusDownloadGroup:
return i18nc("transaction state, downloading metadata",
"Downloading groups");
- case PackageKit::Enum::StatusDownloadUpdateinfo:
+ case PackageKit::Transaction::StatusDownloadUpdateinfo:
return i18nc("transaction state, downloading metadata",
"Downloading update information");
- case PackageKit::Enum::StatusRepackaging:
+ case PackageKit::Transaction::StatusRepackaging:
return i18nc("transaction state, repackaging delta files",
"Repackaging files");
- case PackageKit::Enum::StatusLoadingCache:
+ case PackageKit::Transaction::StatusLoadingCache:
return i18nc("transaction state, loading databases",
"Loading cache");
- case PackageKit::Enum::StatusScanApplications:
+ case PackageKit::Transaction::StatusScanApplications:
return i18nc("transaction state, scanning for running processes",
"Scanning installed applications");
- case PackageKit::Enum::StatusGeneratePackageList:
+ case PackageKit::Transaction::StatusGeneratePackageList:
return i18nc("transaction state, generating a list of packages installed on \
the system", "Generating package lists");
- case PackageKit::Enum::StatusWaitingForLock:
+ case PackageKit::Transaction::StatusWaitingForLock:
return i18nc("transaction state, when we're waiting for the native tools to \
exit", "Waiting for package manager lock");
- case PackageKit::Enum::StatusWaitingForAuth:
+ case PackageKit::Transaction::StatusWaitingForAuth:
return i18nc("waiting for user to type in a password",
"Waiting for authentication");
- case PackageKit::Enum::StatusScanProcessList:
+ case PackageKit::Transaction::StatusScanProcessList:
return i18nc("we are updating the list of processes",
"Updating the list of running applications");
- case PackageKit::Enum::StatusCheckExecutableFiles:
+ case PackageKit::Transaction::StatusCheckExecutableFiles:
return i18nc("we are checking executable files in use",
"Checking for applications currently in use");
- case PackageKit::Enum::StatusCheckLibraries:
+ case PackageKit::Transaction::StatusCheckLibraries:
return i18nc("we are checking for libraries in use",
"Checking for libraries currently in use");
- case PackageKit::Enum::StatusCopyFiles:
+ case PackageKit::Transaction::StatusCopyFiles:
return i18nc("we are copying package files to prepare to install",
"Copying files");
}
@@ -151,24 +150,21 @@ QPkBackend::~QPkBackend()
QStringList QPkBackend::ownerPackage(const QString &fileName)
{
- PackageKit::Transaction t(QString(), this);
- if (t.error() != PackageKit::Client::NoError) {
- return QStringList();
- }
- m_package.clear();
+ auto *t = PackageKit::Daemon::searchFiles(fileName);
+ m_packageId.clear();
QEventLoop loop;
- connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), &loop, SLOT(quit()));
- connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), this, \
SLOT(slotFinished(PackageKit::Enum::Exit,uint)));
- connect(&t, SIGNAL(package(QSharedPointer<PackageKit::Package>)), this, \
SLOT(slotPackage(QSharedPointer<PackageKit::Package>)));
- t.searchFiles(fileName);
+ connect(t, &PackageKit::Transaction::finished, &loop, &QEventLoop::quit);
+ connect(t, &PackageKit::Transaction::finished, this, &QPkBackend::slotFinished);
+ connect(t, &PackageKit::Transaction::package, this, &QPkBackend::slotPackage);
loop.exec();
- return m_status == PackageKit::Enum::ExitSuccess && !m_package.isNull() ? \
QStringList() << m_package->name() << m_package->version() : QStringList(); + \
return m_status == PackageKit::Transaction::ExitSuccess && !m_packageId.isNull() ? + \
QStringList() << PackageKit::Transaction::packageName(m_packageId) << \
PackageKit::Transaction::packageVersion(m_packageId) : QStringList(); }
void QPkBackend::markForRemoval(const QString &packageName)
{
if (!m_remove.contains(packageName) && packageExists(packageName)) {
- m_remove.append(m_package->name());
- m_removePtrs.append(m_package);
+ m_remove.append(PackageKit::Transaction::packageName(m_packageId));
+ m_removeIds.append(m_packageId);
}
}
QStringList QPkBackend::markedForRemoval() const
@@ -177,31 +173,28 @@ QStringList QPkBackend::markedForRemoval() const
}
void QPkBackend::removePackages()
{
- m_t = new PackageKit::Transaction(QString(), this);
- if (m_t->error() != PackageKit::Client::NoError) {
- return;
- }
- connect(m_t, SIGNAL(changed()), this, SLOT(slotUpdateProgress()));
- connect(m_t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), this, \
SLOT(slotFinished(PackageKit::Enum::Exit,uint)));
- m_t->removePackages(m_removePtrs, false, true);
+ m_t = PackageKit::Daemon::removePackages(m_removeIds, false, true);
+ connect(m_t, &PackageKit::Transaction::percentageChanged, this, \
&QPkBackend::slotUpdateProgress); + connect(m_t, \
&PackageKit::Transaction::statusChanged, this, &QPkBackend::slotUpdateProgress); + \
connect(m_t, &PackageKit::Transaction::finished, this, &QPkBackend::slotFinished); }
void QPkBackend::undoChanges()
{
m_remove.clear();
- m_removePtrs.clear();
+ m_removeIds.clear();
}
-void QPkBackend::slotFinished(PackageKit::Enum::Exit status, uint runtime)
+void QPkBackend::slotFinished(PackageKit::Transaction::Exit status, uint runtime)
{
Q_UNUSED(runtime)
m_status = status;
- if (m_t && m_t->role() == PackageKit::Enum::RoleRemovePackages) {
- Q_EMIT finished(m_status == PackageKit::Enum::ExitSuccess);
+ if (m_t && m_t->role() == PackageKit::Transaction::RoleRemovePackages) {
+ Q_EMIT finished(m_status == PackageKit::Transaction::ExitSuccess);
}
}
-void QPkBackend::slotPackage(const QSharedPointer<PackageKit::Package> &package)
+void QPkBackend::slotPackage(PackageKit::Transaction::Info, const QString \
&packageId, const QString &) {
- m_package = package;
+ m_packageId = packageId;
}
void QPkBackend::slotUpdateProgress()
{
@@ -210,16 +203,12 @@ void QPkBackend::slotUpdateProgress()
bool QPkBackend::packageExists(const QString &packageName)
{
- PackageKit::Transaction t(QString(), this);
- if (t.error() != PackageKit::Client::NoError) {
- return false;
- }
- m_package.clear();
+ auto *t = PackageKit::Daemon::resolve(packageName);
+ m_packageId.clear();
QEventLoop loop;
- connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), &loop, SLOT(quit()));
- connect(&t, SIGNAL(finished(PackageKit::Enum::Exit,uint)), this, \
SLOT(slotFinished(PackageKit::Enum::Exit,uint)));
- connect(&t, SIGNAL(package(QSharedPointer<PackageKit::Package>)), this, \
SLOT(slotPackage(QSharedPointer<PackageKit::Package>)));
- t.resolve(packageName);
+ connect(t, &PackageKit::Transaction::finished, &loop, &QEventLoop::quit);
+ connect(t, &PackageKit::Transaction::finished, this, &QPkBackend::slotFinished);
+ connect(t, &PackageKit::Transaction::package, this, &QPkBackend::slotPackage);
loop.exec();
- return m_status == PackageKit::Enum::ExitSuccess && !m_package.isNull();
+ return m_status == PackageKit::Transaction::ExitSuccess && \
!m_packageId.isNull(); }
diff --git a/src/qPkBackend.h b/src/qPkBackend.h
index 24f1f59..755ae6b 100644
--- a/src/qPkBackend.h
+++ b/src/qPkBackend.h
@@ -21,8 +21,8 @@
//Qt
#include <QStringList>
-//QPackageKit
-#include <QPackageKit>
+//PackageKit
+#include <PackageKit/Transaction>
class QPkBackend : public QObject
{
@@ -40,17 +40,17 @@ Q_SIGNALS:
void finished(bool success);
void progress(const QString &status, int percentage);
private Q_SLOTS:
- void slotFinished(PackageKit::Enum::Exit status, uint runtime);
- void slotPackage(const QSharedPointer<PackageKit::Package> &package);
+ void slotFinished(PackageKit::Transaction::Exit status, uint runtime);
+ void slotPackage(PackageKit::Transaction::Info info, const QString &packageId, \
const QString &summary); void slotUpdateProgress();
private:
bool packageExists(const QString &packageName);
PackageKit::Transaction *m_t;
- PackageKit::Enum::Exit m_status;
- QSharedPointer<PackageKit::Package> m_package;
+ PackageKit::Transaction::Exit m_status;
+ QString m_packageId;
QStringList m_remove;
- QList< QSharedPointer<PackageKit::Package> > m_removePtrs;
+ QStringList m_removeIds;
};
#endif
diff --git a/src/removeDlg.cpp b/src/removeDlg.cpp
index 24e71a6..23f1247 100644
--- a/src/removeDlg.cpp
+++ b/src/removeDlg.cpp
@@ -27,8 +27,10 @@
#include <QTimer>
#include <QIcon>
#include <QProgressDialog>
+#include <QPushButton>
//KDE
+#include <KLocalizedString>
#include <KMessageBox>
//Project
@@ -60,10 +62,12 @@ RemoveDialog::RemoveDialog(const QList<Entry> &entries, QWidget \
*parent) : QDial
m_progressDlg = 0;
-#if HAVE_QAPT && QAPT_VERSION_MAJOR == 1
+#if HAVE_QAPT
+#if QAPT_VERSION_MAJOR == 1
m_backend = new QAptBackend;
-#elif HAVE_QAPT && QAPT_VERSION_MAJOR == 2
+#elif QAPT_VERSION_MAJOR == 2
m_backend = new QApt2Backend;
+#endif
#elif HAVE_QPACKAGEKIT
m_backend = new QPkBackend;
#endif
diff --git a/src/removeDlg.h b/src/removeDlg.h
index b5fdb0b..bdb3b51 100644
--- a/src/removeDlg.h
+++ b/src/removeDlg.h
@@ -28,10 +28,12 @@ class QProgressDialog;
//Project
#include <config.h>
class Entry;
-#if HAVE_QAPT && QAPT_VERSION_MAJOR == 1
+#if HAVE_QAPT
+#if QAPT_VERSION_MAJOR == 1
#include "qaptBackend.h"
-#elif HAVE_QAPT && QAPT_VERSION_MAJOR == 2
+#elif QAPT_VERSION_MAJOR == 2
#include "qapt2Backend.h"
+#endif
#elif HAVE_QPACKAGEKIT
#include "qPkBackend.h"
#endif
@@ -56,10 +58,12 @@ private Q_SLOTS:
private:
void detectCurrentKernelImage();
-#if HAVE_QAPT && QAPT_VERSION_MAJOR == 1
+#if HAVE_QAPT
+#if QAPT_VERSION_MAJOR == 1
QAptBackend *m_backend;
-#elif HAVE_QAPT && QAPT_VERSION_MAJOR == 2
+#elif QAPT_VERSION_MAJOR == 2
QApt2Backend *m_backend;
+#endif
#elif HAVE_QPACKAGEKIT
QPkBackend *m_backend;
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic