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

List:       kde-commits
Subject:    [apper/qt5] /: Add a busy indicator
From:       Daniel Nicoletti <dantti12 () gmail ! com>
Date:       2015-05-06 22:10:49
Message-ID: E1Yq7Wj-0000fO-41 () scm ! kde ! org
[Download RAW message or body]

Git commit 75270e26e5717dfa20ded2227c2cf13eb1ceedbf by Daniel Nicoletti.
Committed on 06/05/2015 at 22:10.
Pushed by dantti into branch 'qt5'.

Add a busy indicator

M  +7    -0    Apper/qml/SoftwareListView.qml
M  +31   -40   libapper/PackageModel.cpp
M  +5    -2    libapper/PackageModel.h
M  +0    -2    libapper/iconprovider.cpp

http://commits.kde.org/apper/75270e26e5717dfa20ded2227c2cf13eb1ceedbf

diff --git a/Apper/qml/SoftwareListView.qml b/Apper/qml/SoftwareListView.qml
index ba59945..520af1b 100644
--- a/Apper/qml/SoftwareListView.qml
+++ b/Apper/qml/SoftwareListView.qml
@@ -46,4 +46,11 @@ GridView {
     Component.onCompleted: {
         pkgModel.getInstalled()
     }
+
+    BusyIndicator {
+        z: -1
+        visible: running
+        anchors.centerIn: parent
+        running: !pkgModel.running
+    }
 }
diff --git a/libapper/PackageModel.cpp b/libapper/PackageModel.cpp
index 10f6636..bc8c976 100644
--- a/libapper/PackageModel.cpp
+++ b/libapper/PackageModel.cpp
@@ -80,12 +80,17 @@ void PackageModel::addSelectedPackagesFromModel(PackageModel \
*model)  {
     QList<InternalPackage> packages = model->internalSelectedPackages();
     foreach (const InternalPackage &package, packages) {
-        addPackage(package.info, package.packageID, package.summary, true);
+        processPackage(package.info, package.packageID, package.summary, true);
     }
     finished();
 }
 
-void PackageModel::addPackage(Transaction::Info info, const QString &packageID, \
const QString &summary, bool selected) +void \
PackageModel::addPackage(Transaction::Info info, const QString &packageID, const \
QString &summary) +{
+    processPackage(info, packageID, summary, false);
+}
+
+void PackageModel::processPackage(Transaction::Info info, const QString &packageID, \
const QString &summary, bool selected)  {
     if (m_finished) {
         qDebug() << Q_FUNC_INFO << "we are finished calling clear";
@@ -181,7 +186,7 @@ void PackageModel::addPackage(Transaction::Info info, const \
QString &packageID,  
 void PackageModel::addSelectedPackage(Transaction::Info info, const QString \
&packageID, const QString &summary)  {
-    addPackage(info, packageID, summary, true);
+    processPackage(info, packageID, summary, true);
 }
 
 int PackageModel::rowCount(const QModelIndex &parent) const
@@ -288,9 +293,9 @@ void PackageModel::clear()
     m_fetchSizesTransaction = 0;
     m_fetchInstalledVersionsTransaction = 0;
 
-    if (m_getUpdatesTransaction) {
-        m_getUpdatesTransaction->disconnect(this);
-        m_getUpdatesTransaction->cancel();
+    if (m_transaction) {
+        m_transaction->disconnect(this);
+        m_transaction->cancel();
     }
     endRemoveRows();
 
@@ -315,6 +320,11 @@ void PackageModel::clearSelectedNotPresent()
     }
 }
 
+bool PackageModel::running() const
+{
+    return m_transaction;
+}
+
 bool PackageModel::checkable() const
 {
     return m_checkable;
@@ -354,8 +364,8 @@ void PackageModel::finished()
     qDebug() << Q_FUNC_INFO << sender();
     Transaction *trans = qobject_cast<Transaction*>(sender());
     qDebug() << Q_FUNC_INFO << trans << sender();
-    if (trans /*== m_getUpdatesTransaction*/) {
-//        m_getUpdatesTransaction = 0;
+    if (trans /*== m_transaction*/) {
+//        m_transaction = 0;
         // When pkd dies this method is called twice
         // pk-qt2 bug..
 //        trans->disconnect(this, SLOT(finished()));
@@ -504,49 +514,30 @@ void PackageModel::updateCurrentVersion(Transaction::Info info, \
const QString &p  void PackageModel::getUpdates(bool fetchCurrentVersions, bool \
selected)  {
     clear();
-    m_getUpdatesTransaction = Daemon::getUpdates();
+    m_transaction = Daemon::getUpdates();
     if (selected) {
-        connect(m_getUpdatesTransaction, \
                SIGNAL(package(PackageKit::Transaction::Info,QString,QString)),
-                this, \
SLOT(addSelectedPackage(PackageKit::Transaction::Info,QString,QString))); +        \
connect(m_transaction, &Transaction::package, this, \
&PackageModel::addSelectedPackage);  } else {
-        connect(m_getUpdatesTransaction, \
                SIGNAL(package(PackageKit::Transaction::Info,QString,QString)),
-                this, \
                SLOT(addPackage(PackageKit::Transaction::Info,QString,QString)));
-    }
-//    connect(m_getUpdatesTransaction, \
                SIGNAL(errorCode(PackageKit::Transaction::Error,QString)),
-//            this, SLOT(errorCode(PackageKit::Transaction::Error,QString)));
-//    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-//            m_busySeq, SLOT(stop()));
-//    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-//            this, SLOT(finished()));
+        connect(m_transaction, &Transaction::package, this, \
&PackageModel::addPackage); +    }
+
     // This is required to estimate download size
-    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-            this, SLOT(fetchSizes()));
+    connect(m_transaction, &Transaction::finished, this, &PackageModel::fetchSizes);
+
     if (fetchCurrentVersions) {
-        connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-                this, SLOT(fetchCurrentVersions()));
+        connect(m_transaction, &Transaction::finished, this, \
&PackageModel::fetchCurrentVersions);  }
-    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-            this, SLOT(finished()));
-    // get all updates
+    connect(m_transaction, &Transaction::finished, this, &PackageModel::finished);
 }
 
 void PackageModel::getInstalled()
 {
     clear();
-    m_getUpdatesTransaction = Daemon::getPackages(Transaction::FilterInstalled);
-    connect(m_getUpdatesTransaction, \
                SIGNAL(package(PackageKit::Transaction::Info,QString,QString)),
-            this, SLOT(addPackage(PackageKit::Transaction::Info,QString,QString)));
-//    connect(m_getUpdatesTransaction, \
                SIGNAL(errorCode(PackageKit::Transaction::Error,QString)),
-//            this, SLOT(errorCode(PackageKit::Transaction::Error,QString)));
-//    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-//            m_busySeq, SLOT(stop()));
-//    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-//            this, SLOT(finished()));
+    m_transaction = Daemon::getPackages(Transaction::FilterInstalled);
+    connect(m_transaction, &Transaction::package, this, &PackageModel::addPackage);
+
     // This is required to estimate download size
-    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-            this, SLOT(fetchSizes()));
-    connect(m_getUpdatesTransaction, \
                SIGNAL(finished(PackageKit::Transaction::Exit,uint)),
-            this, SLOT(finished()));
+    connect(m_transaction, &Transaction::finished, this, &PackageModel::finished);
 }
 
 void PackageModel::toggleSelection(const QString &packageID)
diff --git a/libapper/PackageModel.h b/libapper/PackageModel.h
index 087ef48..7c5dae7 100644
--- a/libapper/PackageModel.h
+++ b/libapper/PackageModel.h
@@ -41,6 +41,7 @@ class PackageModel : public QAbstractItemModel
     Q_PROPERTY(int packageCount MEMBER m_packageCount NOTIFY rowCountChanged)
     Q_PROPERTY(int applicationCount MEMBER m_applicationCount NOTIFY \
                rowCountChanged)
     Q_PROPERTY(int viewColumns MEMBER m_viewColumns WRITE setViewColumns NOTIFY \
rowCountChanged) +    Q_PROPERTY(bool running READ running NOTIFY rowCountChanged)
 public:
     enum {
         SortRole = Qt::UserRole,
@@ -95,6 +96,7 @@ public:
      */
     Q_INVOKABLE void clearSelectedNotPresent();
 
+    bool running() const;
     bool checkable() const;
     void setCheckable(bool checkable);
     void setShowPackages(bool show);
@@ -105,7 +107,8 @@ public:
 
 public slots:
     void addSelectedPackagesFromModel(PackageModel *model);
-    void addPackage(PackageKit::Transaction::Info info, const QString &packageID, \
const QString &summary, bool selected = false); +    void \
addPackage(PackageKit::Transaction::Info info, const QString &packageID, const \
QString &summary); +    void processPackage(PackageKit::Transaction::Info info, const \
                QString &packageID, const QString &summary, bool selected);
     void addSelectedPackage(PackageKit::Transaction::Info info, const QString \
&packageID, const QString &summary);  void removePackage(const QString &packageID);
 
@@ -155,7 +158,7 @@ private:
     int m_applicationCount = 0;
     int m_viewColumns = 0;
     QHash<QString, InternalPackage> m_checkedPackages;
-    PackageKit::Transaction *m_getUpdatesTransaction = 0;
+    PackageKit::Transaction *m_transaction = 0;
     PackageKit::Transaction *m_fetchSizesTransaction;
     PackageKit::Transaction *m_fetchInstalledVersionsTransaction;
     QHash<int, QByteArray> m_roles;
diff --git a/libapper/iconprovider.cpp b/libapper/iconprovider.cpp
index 1aec88b..e84f5f8 100644
--- a/libapper/iconprovider.cpp
+++ b/libapper/iconprovider.cpp
@@ -11,7 +11,6 @@ IconProvider::IconProvider() :
 
 QPixmap IconProvider::requestPixmap(const QString &id, QSize *size, const QSize \
&requestedSize)  {
-    qDebug() << requestedSize << id << size;
     QPixmap ret;
     QIcon  icon = QIcon::fromTheme(id);
     if (!icon.isNull()) {
@@ -30,7 +29,6 @@ QPixmap IconProvider::requestPixmap(const QString &id, QSize *size, \
const QSize  scaleSize.setWidth(scaleSize.height());
         }
 
-        qDebug() << scaleSize;
         ret = icon.pixmap(scaleSize);
     }
 


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

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