[neon/backports-jammy/packagekit-qt/Neon/unstable] /: Imported Upstream version 0.8.7

Matthias Klumpp null at kde.org
Wed Mar 15 04:29:31 GMT 2023


Git commit 5c86ad586922b832a90efa18630135db8975567b by Matthias Klumpp.
Committed on 19/03/2013 at 19:35.
Pushed by carlosdem into branch 'Neon/unstable'.

Imported Upstream version 0.8.7

M  +1    -1    CMakeLists.txt
M  +18   -0    NEWS
M  +7    -7    RELEASE
M  +49   -15   src/daemon.cpp
M  +12   -6    src/daemon.h
M  +1    -0    src/daemonprivate.h
M  +9    -7    src/transaction.cpp
M  +9    -2    src/transaction.h

https://invent.kde.org/neon/backports-jammy/packagekit-qt/commit/5c86ad586922b832a90efa18630135db8975567b

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9a17e89..04a617d 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ set(CMAKE_BUILD_TYPE "Debug")
 
 set(QPACKAGEKIT_VERSION_MAJOR  "0")
 set(QPACKAGEKIT_VERSION_MINOR  "8")
-set(QPACKAGEKIT_VERSION_PATCH  "6")
+set(QPACKAGEKIT_VERSION_PATCH  "7")
 set(QPACKAGEKIT_VERSION_SUFFIX "${VERSION_SUFFIX}")
 set(QPACKAGEKIT_VERSION "${QPACKAGEKIT_VERSION_MAJOR}.${QPACKAGEKIT_VERSION_MINOR}.${QPACKAGEKIT_VERSION_PATCH}")
 
diff --git a/NEWS b/NEWS
index a245534..6456ccc 100644
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,21 @@
+Version 0.8.7
+~~~~~~~~~~~~~
+Released: 2012-01-17
+
+Notes:
+
+New Features:
+ - Add back the destroy() signal, it might be useful for fast transactions (Daniel Nicoletti)
+ - Compress release tarballs using LZMA by default (Matthias Klumpp)
+
+Bugfixes:
+ - For some reason QML doesn't work with typedef enum (Daniel Nicoletti)
+ - Make our package spliters static (Daniel Nicoletti)
+ - Make sure we waitForFinishe() when getting the TransactionList (Daniel Nicoletti)
+ - Only call Cancel() if the transaction proxy exist (Daniel Nicoletti)
+ - The full namespace is needed for a slot to be called (Daniel Nicoletti)
+ - Workaround Qt bug not contructing default values when the call fails (Daniel Nicoletti)
+
 Version 0.8.6
 ~~~~~~~~~~~~~
 Released: 2012-11-26
diff --git a/RELEASE b/RELEASE
index 92588fa..8b46229 100644
--- a/RELEASE
+++ b/RELEASE
@@ -2,12 +2,12 @@ PackageKit-Qt Release Notes
 
 1. Write NEWS entries for PackageKit-Qt in the same format as usual.
 
-git shortlog PACKAGEKIT_0_8_5.. | grep -i -v trivial | grep -v Merge > NEWS.new
+git shortlog QPACKAGEKIT_0_8_6.. | grep -i -v trivial | grep -v Merge > NEWS.new
 
 --------------------------------------------------------------------------------
-Version 0.8.6
+Version 0.8.7
 ~~~~~~~~~~~~~
-Released: 2012-xx-xx
+Released: 2013-xx-xx
 
 Notes:
 
@@ -20,13 +20,13 @@ Bugfixes:
 
 3. Commit changes in PackageKit-Qt git:
 
-git commit -a -m "Release version 0.8.6"
-git tag -s -f -m "Release 0.8.6" QPACKAGEKIT_0_8_6
+git commit -a -m "Release version 0.8.7"
+git tag -s -f -m "Release 0.8.7" QPACKAGEKIT_0_8_7
 <gpg password>
 git push --tags
 git push
 
-4. run './release.sh --version=0.8.6 --git-tag=QPACKAGEKIT_0_8_6 --sign'
+4. run './release.sh --version=0.8.7 --git-tag=QPACKAGEKIT_0_8_7 --sign'
 
 5. Upload tarball to:
 
@@ -42,7 +42,7 @@ git push
 8. Send an email to packagekit at lists.freedesktop.org
 
 =================================================
-PackageKit-Qt 0.8.6 released!
+PackageKit-Qt 0.8.7 released!
 
 Tarballs available here: http://www.packagekit.org/releases/
 
diff --git a/src/daemon.cpp b/src/daemon.cpp
index f975c1c..5f1e372 100644
--- a/src/daemon.cpp
+++ b/src/daemon.cpp
@@ -20,6 +20,7 @@
 */
 
 #include <QtSql>
+#include <QDebug>
 
 #include "daemon.h"
 #include "daemonprivate.h"
@@ -27,6 +28,12 @@
 
 #include "common.h"
 
+#define PENDING_CALL(blurb)                      \
+       Q_D(Daemon);                              \
+       QDBusPendingReply<> r = d->daemon->blurb; \
+       r.waitForFinished();                      \
+       d->lastError = r.error();                 \
+
 using namespace PackageKit;
 
 Daemon* Daemon::m_global = 0;
@@ -136,28 +143,50 @@ QString Daemon::distroID()
 
 Daemon::Authorize Daemon::canAuthorize(const QString &actionId)
 {
-    Q_D(const Daemon);
-    uint ret;
-    ret = d->daemon->CanAuthorize(actionId);
-    return static_cast<Daemon::Authorize>(ret);
+    Q_D(Daemon);
+    QDBusPendingReply<uint> reply = d->daemon->CanAuthorize(actionId);
+    reply.waitForFinished();
+    d->lastError = reply.error();
+    if (reply.isValid()) {
+        return static_cast<Daemon::Authorize>(reply.value());
+    }
+    return Daemon::AuthorizeUnknown;
 }
 
 QDBusObjectPath Daemon::getTid()
 {
-    Q_D(const Daemon);
-    return d->daemon->CreateTransaction();
+    Q_D(Daemon);
+    QDBusPendingReply<QDBusObjectPath> reply = d->daemon->CreateTransaction();
+    reply.waitForFinished();
+    d->lastError = reply.error();
+    if (reply.isValid()) {
+        return reply.value();
+    }
+    return QDBusObjectPath();
 }
 
 uint Daemon::getTimeSinceAction(Transaction::Role role)
 {
-    Q_D(const Daemon);
-    return d->daemon->GetTimeSinceAction(role);
+    Q_D(Daemon);
+    QDBusPendingReply<uint> reply = d->daemon->GetTimeSinceAction(role);
+    reply.waitForFinished();
+    d->lastError = reply.error();
+    if (reply.isValid()) {
+        return reply.value();
+    }
+    return 0u;
 }
 
 QList<QDBusObjectPath> Daemon::getTransactionList()
 {
-    Q_D(const Daemon);
-    return d->daemon->GetTransactionList();
+    Q_D(Daemon);
+    QDBusPendingReply<QList<QDBusObjectPath> > reply = d->daemon->GetTransactionList();
+    reply.waitForFinished();
+    d->lastError = reply.error();
+    if (reply.isValid()) {
+        return reply.value();
+    }
+    return QList<QDBusObjectPath>();
 }
 
 QList<Transaction*> Daemon::getTransactionObjects(QObject *parent)
@@ -186,10 +215,11 @@ QStringList Daemon::hints()
 
 Transaction::InternalError Daemon::setProxy(const QString& http_proxy, const QString& https_proxy, const QString& ftp_proxy, const QString& socks_proxy, const QString& no_proxy, const QString& pac)
 {
-    Q_D(const Daemon);
+    Q_D(Daemon);
     QDBusPendingReply<> r = d->daemon->SetProxy(http_proxy, https_proxy, ftp_proxy, socks_proxy, no_proxy, pac);
     r.waitForFinished();
-    if (r.isError ()) {
+    d->lastError = r.error();
+    if (r.isError()) {
         return Transaction::parseError(r.error().name());
     } else {
         return Transaction::InternalErrorNone;
@@ -198,14 +228,18 @@ Transaction::InternalError Daemon::setProxy(const QString& http_proxy, const QSt
 
 void Daemon::stateHasChanged(const QString& reason)
 {
-    Q_D(const Daemon);
-    d->daemon->StateHasChanged(reason);
+    PENDING_CALL(StateHasChanged(reason))
 }
 
 void Daemon::suggestDaemonQuit()
+{
+    PENDING_CALL(SuggestDaemonQuit())
+}
+
+QDBusError Daemon::lastError() const
 {
     Q_D(const Daemon);
-    d->daemon->SuggestDaemonQuit();
+    return d->lastError;
 }
 
 uint Daemon::versionMajor()
diff --git a/src/daemon.h b/src/daemon.h
index 28bab78..06f112e 100644
--- a/src/daemon.h
+++ b/src/daemon.h
@@ -24,6 +24,7 @@
 
 #include <QtCore/QObject>
 #include <QtCore/QMetaEnum>
+#include <QtDBus/QDBusError>
 
 #include "transaction.h"
 
@@ -179,7 +180,7 @@ public:
     /**
      * Returns the time (in seconds) since the specified \p action
      */
-    Q_INVOKABLE uint getTimeSinceAction(Transaction::Role action);
+    Q_INVOKABLE uint getTimeSinceAction(PackageKit::Transaction::Role action);
 
     /**
      * \brief creates a new transaction path
@@ -256,30 +257,35 @@ public:
      */
     Q_INVOKABLE void suggestDaemonQuit();
 
+    /**
+     * Get the last call status
+     */
+    Q_INVOKABLE QDBusError lastError() const;
+
     /**
      * Returns the package name from the \p packageID
      */
-    Q_INVOKABLE QString packageName(const QString &packageID);
+    Q_INVOKABLE static QString packageName(const QString &packageID);
 
     /**
      * Returns the package version from the \p packageID
      */
-    Q_INVOKABLE QString packageVersion(const QString &packageID);
+    Q_INVOKABLE static QString packageVersion(const QString &packageID);
 
     /**
      * Returns the package arch from the \p packageID
      */
-    Q_INVOKABLE QString packageArch(const QString &packageID);
+    Q_INVOKABLE static QString packageArch(const QString &packageID);
 
     /**
      * Returns the package data from the \p packageID
      */
-    Q_INVOKABLE QString packageData(const QString &packageID);
+    Q_INVOKABLE static QString packageData(const QString &packageID);
 
     /**
      * Returns the package icon from the \p packageID
      */
-    Q_INVOKABLE QString packageIcon(const QString &packageID);
+    Q_INVOKABLE static QString packageIcon(const QString &packageID);
     
     /**
      * Returns the string representing the enum
diff --git a/src/daemonprivate.h b/src/daemonprivate.h
index 1908a75..5ea2f53 100644
--- a/src/daemonprivate.h
+++ b/src/daemonprivate.h
@@ -41,6 +41,7 @@ protected:
     Daemon *q_ptr;
     ::DaemonProxy *daemon;
     QStringList hints;
+    QDBusError lastError;
 
     QList<Transaction*> transactions(const QList<QDBusObjectPath> &tids, QObject *parent);
 
diff --git a/src/transaction.cpp b/src/transaction.cpp
index b3266e0..113ff74 100644
--- a/src/transaction.cpp
+++ b/src/transaction.cpp
@@ -28,17 +28,14 @@
 
 #include <QtSql/QSqlQuery>
 
-#define CHECK_TRANSACTION                           \
-        if (r.isError()) {                          \
-            d->error = Transaction::parseError(r.error().name()); \
-        }                                           \
-
 #define RUN_TRANSACTION(blurb)                      \
         Q_D(Transaction);                           \
         if (init()) {                               \
             QDBusPendingReply<> r = d->p->blurb;    \
             r.waitForFinished();                    \
-            CHECK_TRANSACTION                       \
+            if (r.isError()) {                      \
+                d->error = Transaction::parseError(r.error().name()); \
+            }                                                         \
         }                                           \
 
 using namespace PackageKit;
@@ -123,6 +120,8 @@ bool Transaction::init(const QDBusObjectPath &tid)
             SIGNAL(category(QString,QString,QString,QString,QString)));
     connect(d->p, SIGNAL(Destroy()),
             SLOT(destroy()));
+    connect(d->p, SIGNAL(Destroy()),
+            SIGNAL(destroy()));
     connect(d->p, SIGNAL(Details(QString,QString,uint,QString,QString,qulonglong)),
             SLOT(Details(QString,QString,uint,QString,QString,qulonglong)));
     connect(d->p, SIGNAL(DistroUpgrade(uint,QString,QString)),
@@ -225,7 +224,10 @@ bool Transaction::isCallerActive() const
 
 void Transaction::cancel()
 {
-    RUN_TRANSACTION(Cancel())
+    Q_D(const Transaction);
+    if (d->p) {
+        RUN_TRANSACTION(Cancel())
+    }
 }
 
 QString Transaction::packageName(const QString &packageID)
diff --git a/src/transaction.h b/src/transaction.h
index 26f7fe5..c20cac5 100644
--- a/src/transaction.h
+++ b/src/transaction.h
@@ -100,7 +100,7 @@ public:
     /**
      * Describes the role of the transaction
      */
-    typedef enum {
+    enum Role {
         RoleUnknown,
         RoleCancel,
         RoleGetDepends,
@@ -132,7 +132,7 @@ public:
         RoleGetOldTransactions,
         RoleUpgradeSystem, // Since 0.6.11
         RoleRepairSystem   // Since 0.7.2
-    } Role;
+    };
     typedef Bitfield Roles;
 
     /**
@@ -1210,6 +1210,13 @@ Q_SIGNALS:
      * \sa getOldTransactions()
      */
     void transaction(PackageKit::Transaction *transaction);
+    
+    /**
+     * Emitted a bit after a transaction has been finished
+     * It's useful when the transaction is too fast and emits
+     * finished before we finish connecting
+     */
+    void destroy();
 
 protected:
     static Transaction::InternalError parseError(const QString &errorName);



More information about the Neon-commits mailing list