[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [apper] libapper: Make better use of TransactionProgressModel
From:       Daniel Nicoletti <dantti12 () gmail ! com>
Date:       2012-10-31 20:50:14
Message-ID: 20121031205014.1F399A6078 () git ! kde ! org
[Download RAW message or body]

Git commit 4d8d7878cc63271314121317fcc0adbd60abcf03 by Daniel Nicoletti.
Committed on 31/10/2012 at 21:49.
Pushed by dantti into branch 'master'.

Make better use of TransactionProgressModel

M  +19   -0    libapper/PkTransaction.cpp
M  +3    -0    libapper/PkTransaction.h
M  +19   -0    libapper/PkTransactionProgressModel.cpp
M  +8    -12   libapper/PkTransactionWidget.cpp

http://commits.kde.org/apper/4d8d7878cc63271314121317fcc0adbd60abcf03

diff --git a/libapper/PkTransaction.cpp b/libapper/PkTransaction.cpp
index 05fe7b5..62f4c52 100644
--- a/libapper/PkTransaction.cpp
+++ b/libapper/PkTransaction.cpp
@@ -48,6 +48,7 @@
 #include "ApplicationLauncher.h"
 #include "PackageModel.h"
 #include "Requirements.h"
+#include "PkTransactionProgressModel.h"
 
 class PkTransactionPrivate
 {
@@ -63,6 +64,7 @@ public:
     ApplicationLauncher *launcher;
     QStringList files;
     PackageModel *simulateModel;
+    PkTransactionProgressModel *progressModel;
 };
 
 PkTransaction::PkTransaction(QWidget *parent) :
@@ -83,6 +85,13 @@ PkTransaction::PkTransaction(QWidget *parent) :
     d->role = Transaction::RoleUnknown;
     // for sanity we are trusted till an error is given and the user accepts
     d->flags = Transaction::TransactionFlagOnlyTrusted;
+    d->progressModel = new PkTransactionProgressModel(this);
+    connect(this, SIGNAL(repoDetail(QString,QString,bool)),
+            d->progressModel, SLOT(currentRepo(QString,QString,bool)));
+    connect(this, SIGNAL(package(PackageKit::Transaction::Info,QString,QString)),
+            d->progressModel, SLOT(currentPackage(PackageKit::Transaction::Info,QString)));
+    connect(this, SIGNAL(itemProgress(QString,PackageKit::Transaction::Status,uint)),
+            d->progressModel, SLOT(itemProgress(QString,PackageKit::Transaction::Status,uint)));
 
     connect(this, SIGNAL(changed()), SLOT(updateUi()));
 }
@@ -816,4 +825,14 @@ Transaction::Role PkTransaction::role() const
     return d->role;
 }
 
+Transaction::TransactionFlags PkTransaction::flags() const
+{
+    return d->flags;
+}
+
+PkTransactionProgressModel *PkTransaction::progressModel() const
+{
+    return d->progressModel;
+}
+
 #include "PkTransaction.moc"
diff --git a/libapper/PkTransaction.h b/libapper/PkTransaction.h
index 0ec8ad5..101d9f4 100644
--- a/libapper/PkTransaction.h
+++ b/libapper/PkTransaction.h
@@ -29,6 +29,7 @@
 using namespace PackageKit;
 
 class PkTransactionPrivate;
+class PkTransactionProgressModel;
 class KDE_EXPORT PkTransaction : public Transaction
 {
     Q_OBJECT
@@ -52,6 +53,8 @@ public:
 
     QString title() const;
     Transaction::Role role() const;
+    Transaction::TransactionFlags flags() const;
+    PkTransactionProgressModel* progressModel() const;
 
     PkTransaction::ExitStatus exitStatus() const;
     bool isFinished() const;
diff --git a/libapper/PkTransactionProgressModel.cpp b/libapper/PkTransactionProgressModel.cpp
index d8d0e43..ef48ccf 100644
--- a/libapper/PkTransactionProgressModel.cpp
+++ b/libapper/PkTransactionProgressModel.cpp
@@ -25,6 +25,8 @@
 
 #include <PkStrings.h>
 
+#include "PkTransaction.h"
+
 using namespace PackageKit;
 
 PkTransactionProgressModel::PkTransactionProgressModel(QObject *parent) :
@@ -40,6 +42,12 @@ void PkTransactionProgressModel::currentRepo(const QString &repoId, const QStrin
 {
     Q_UNUSED(enabled)
     kDebug() << repoId;
+
+    PkTransaction *transaction = qobject_cast<PkTransaction *>(sender());
+    if (transaction && transaction->flags() & Transaction::TransactionFlagSimulate) {
+        return;
+    }
+
     QStandardItem *stdItem = new QStandardItem(description);
     stdItem->setData(repoId, RoleId);
     stdItem->setData(true,   RoleRepo);
@@ -49,6 +57,12 @@ void PkTransactionProgressModel::currentRepo(const QString &repoId, const QStrin
 void PkTransactionProgressModel::itemProgress(const QString &id, Transaction::Status status, uint \
percentage)  {
     Q_UNUSED(status)
+
+    PkTransaction *transaction = qobject_cast<PkTransaction *>(sender());
+    if (transaction && transaction->flags() & Transaction::TransactionFlagSimulate) {
+        return;
+    }
+
     QStandardItem *stdItem = findLastItem(id);
     if (stdItem && !stdItem->data(RoleFinished).toBool()) {
         // if the progress is unknown (101), make it empty
@@ -69,6 +83,11 @@ void PkTransactionProgressModel::clear()
 void PkTransactionProgressModel::currentPackage(PackageKit::Transaction::Info info, const QString \
&packageID, const QString &summary)  {
     kDebug() << info << packageID << summary;
+    PkTransaction *transaction = qobject_cast<PkTransaction *>(sender());
+    if (transaction && transaction->flags() & Transaction::TransactionFlagSimulate) {
+        return;
+    }
+
     if (!packageID.isEmpty()) {
         QStandardItem *stdItem = findLastItem(packageID);
         // If there is alread some packages check to see if it has
diff --git a/libapper/PkTransactionWidget.cpp b/libapper/PkTransactionWidget.cpp
index 3ab8c04..ebea9db 100644
--- a/libapper/PkTransactionWidget.cpp
+++ b/libapper/PkTransactionWidget.cpp
@@ -45,12 +45,11 @@
 #include "RepoSig.h"
 #include "LicenseAgreement.h"
 #include "PkIcons.h"
-#include "PkTransactionProgressModel.h"
 #include "ApplicationLauncher.h"
-#include "PackageModel.h"
 #include "Requirements.h"
 #include "PkTransaction.h"
 #include "TransactionDelegate.h"
+#include "PkTransactionProgressModel.h"
 
 class PkTransactionWidgetPrivate
 {
@@ -58,7 +57,6 @@ public:
     ApplicationLauncher *launcher;
     Transaction::Role role;
     KPixmapSequenceOverlayPainter *busySeq;
-    PkTransactionProgressModel *progressModel;
 };
 
 PkTransactionWidget::PkTransactionWidget(QWidget *parent) :
@@ -92,8 +90,6 @@ PkTransactionWidget::PkTransactionWidget(QWidget *parent) :
     ui->progressView->header()->setResizeMode(1, QHeaderView::ResizeToContents);
 
     ui->progressView->setItemDelegate(new TransactionDelegate(this));
-    d->progressModel = new PkTransactionProgressModel(this);
-    ui->progressView->setModel(d->progressModel);
     
     connect(ui->cancelButton, SIGNAL(rejected()), this, SLOT(cancel()));
 }
@@ -124,8 +120,8 @@ void PkTransactionWidget::setTransaction(PkTransaction *trans, Transaction::Role
     Q_ASSERT(trans);
 
     m_trans = trans;
+    ui->progressView->setModel(trans->progressModel());
     connect(trans, SIGNAL(changed()), this, SLOT(updateUi()));
-    d->progressModel->clear();
 
     // sets ui
     updateUi();
@@ -143,12 +139,12 @@ void PkTransactionWidget::setTransaction(PkTransaction *trans, Transaction::Role
                role == Transaction::RoleRemovePackages ||
                role == Transaction::RoleUpdatePackages ||
                role == Transaction::RoleRefreshCache) {
-        connect(m_trans, SIGNAL(repoDetail(QString,QString,bool)),
-                d->progressModel, SLOT(currentRepo(QString,QString,bool)));
-        connect(m_trans, SIGNAL(package(PackageKit::Transaction::Info,QString,QString)),
-                d->progressModel, SLOT(currentPackage(PackageKit::Transaction::Info,QString,QString)));
-        connect(m_trans, SIGNAL(itemProgress(QString,PackageKit::Transaction::Status,uint)),
-                d->progressModel, SLOT(itemProgress(QString,PackageKit::Transaction::Status,uint)));
+//        connect(m_trans, SIGNAL(repoDetail(QString,QString,bool)),
+//                d->progressModel, SLOT(currentRepo(QString,QString,bool)));
+//        connect(m_trans, SIGNAL(package(PackageKit::Transaction::Info,QString,QString)),
+//                d->progressModel, \
SLOT(currentPackage(PackageKit::Transaction::Info,QString,QString))); +//        connect(m_trans, \
SIGNAL(itemProgress(QString,PackageKit::Transaction::Status,uint)), +//                d->progressModel, \
SLOT(itemProgress(QString,PackageKit::Transaction::Status,uint)));  if (role == \
Transaction::RoleRefreshCache) {  
 //            ui->progressView->handleRepo(true);


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic