[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