[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [muon/USCResource] libmuon/backends/ApplicationBackend: Reload the sources list after adding a debli
From: Jonathan Thomas <echidnaman () kubuntu ! org>
Date: 2013-06-17 13:34:04
Message-ID: 20130617133404.AD6BDA605A () git ! kde ! org
[Download RAW message or body]
Git commit 7361ce1e80458d886f13bc50fb8e933382365352 by Jonathan Thomas.
Committed on 17/06/2013 at 15:33.
Pushed by jmthomas into branch 'USCResource'.
Reload the sources list after adding a debline for the newly-purchased app.
(Still todo: only reload for the single repository)
M +21 -9 libmuon/backends/ApplicationBackend/ApplicationBackend.cpp
M +5 -2 libmuon/backends/ApplicationBackend/ApplicationBackend.h
M +1 -1 libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.cpp
M +1 -1 libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.h
http://commits.kde.org/muon/7361ce1e80458d886f13bc50fb8e933382365352
diff --git a/libmuon/backends/ApplicationBackend/ApplicationBackend.cpp \
b/libmuon/backends/ApplicationBackend/ApplicationBackend.cpp index 3776d38..17b0c70 \
100644
--- a/libmuon/backends/ApplicationBackend/ApplicationBackend.cpp
+++ b/libmuon/backends/ApplicationBackend/ApplicationBackend.cpp
@@ -517,8 +517,8 @@ void ApplicationBackend::purchaseApplication(AbstractResource \
*res) this, SIGNAL(purchaseFailed()));
connect(d, SIGNAL(purchaseSucceeded(QMap<QString, QVariant>)),
this, SIGNAL(purchaseSucceeded()));
- connect(d, SIGNAL(purchaseSucceeded(QMap<QString,QVariant>)),
- this, SLOT(onPurchaseSucceeded(QMap<QString,QVariant>)));
+ connect(d, SIGNAL(purchaseSucceeded(USCResource*,QMap<QString,QVariant>)),
+ this, SLOT(onPurchaseSucceeded(USCResource*,QMap<QString,QVariant>)));
// We can use the SSO session from the purchase dialog in the app
connect(d, SIGNAL(receivedOAuthToken(QMap<QString,QVariant>)),
OAuthSession::global(), \
SLOT(updateCredentials(QMap<QString,QVariant>))); @@ -529,7 +529,7 @@ void \
ApplicationBackend::purchaseApplication(AbstractResource *res) d->show();
}
-void ApplicationBackend::onPurchaseSucceeded(const QMap<QString, QVariant> &details)
+void ApplicationBackend::onPurchaseSucceeded(USCResource *resource, const \
QMap<QString, QVariant> &details) {
QString debLine = details.value("deb_line").toString();
QString signingKeyId = details.value("signing_key_id").toString();
@@ -551,20 +551,33 @@ void ApplicationBackend::onPurchaseSucceeded(const \
QMap<QString, QVariant> &deta // Add vendor signing key
// Reload sources list
+ connect(this, SIGNAL(reloadForCommercialRepoFinished(USCResource*)),
+ this, SLOT(onReloadForCommercialRepoFinished(USCResource*)));
+ reloadForCommercialRepo(resource);
+}
- // Connect reload finish to onReloadForCommercialRepo
+void ApplicationBackend::reloadForCommercialRepo(USCResource *resource)
+{
+ m_purchasedResource = resource;
+ // FIXME: support single-source updating in worker.
+ QApt::Transaction* transaction = backend()->updateCache();
+ m_backendUpdater->setupTransaction(transaction);
+ transaction->run();
+
+ connect(transaction, SIGNAL(finished(QApt::ExitStatus)),
+ this, SLOT(onReloadForCommercialRepoFinished()));
}
-void ApplicationBackend::reloadForCommercialRepoFinished(USCResource *resource)
+void ApplicationBackend::onReloadForCommercialRepoFinished()
{
- QApt::Package *package = resource->package();
+ QApt::Package *package = m_purchasedResource->package();
if (!package) {
- qWarning() << "Tried to install unavailable USCResource " << \
resource->name(); + qWarning() << "Tried to install unavailable USCResource " \
<< m_purchasedResource->name(); return;
}
- installApplication(resource);
+ installApplication(m_purchasedResource);
}
void ApplicationBackend::addLicenseKey(const QString &license, const QString \
&licensePath) @@ -758,7 +771,6 @@ void ApplicationBackend::checkForUpdates()
QApt::Transaction* transaction = backend()->updateCache();
m_backendUpdater->setupTransaction(transaction);
transaction->run();
-
}
void ApplicationBackend::fetchUSCResourceList()
diff --git a/libmuon/backends/ApplicationBackend/ApplicationBackend.h \
b/libmuon/backends/ApplicationBackend/ApplicationBackend.h index badeae6..93f4f21 \
100644
--- a/libmuon/backends/ApplicationBackend/ApplicationBackend.h
+++ b/libmuon/backends/ApplicationBackend/ApplicationBackend.h
@@ -88,6 +88,7 @@ private:
QFutureWatcher<QVector<QAptResource *>> *m_watcher;
QVector<QAptResource *> m_appList;
+ USCResource *m_purchasedResource;
// Transactions
QHash<Transaction *, QApt::Transaction *> m_transQueue;
@@ -122,17 +123,19 @@ private Q_SLOTS:
void checkForUpdates();
void fetchUSCResourceList();
void initUSCResources(KJob *j);
- void onPurchaseSucceeded(const QMap<QString, QVariant> &details);
+ void onPurchaseSucceeded(USCResource *resource, const QMap<QString, QVariant> \
&details); void fetchMySubscriptions(bool completeOnly = true);
void onMySubsriptionsFetched(KJob *j);
void addLicenseKey(const QString &license, const QString &licensePath);
- void reloadForCommercialRepoFinished(USCResource *resource);
+ void reloadForCommercialRepo(USCResource *resource);
+ void onReloadForCommercialRepoFinished();
Q_SIGNALS:
void startingFirstTransaction();
void sourcesEditorFinished();
void aptBackendInitialized(QApt::Backend* backend);
void mySubscriptionsFetched(const QString &json);
+ void reloadForCommercialRepoFinished(USCResource *resource);
};
#endif
diff --git a/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.cpp \
b/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.cpp index b9f11ed..6d1d4cb \
100644
--- a/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.cpp
+++ b/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.cpp
@@ -194,7 +194,7 @@ void UbuntuPurchaseDialog::parseJson(const QString &json)
}
// Purchase successful
- emit purchaseSucceeded(res);
+ emit purchaseSucceeded(m_resource, res);
}
void UbuntuPurchaseDialog::onReceivedOAuthToken(const QString &json)
diff --git a/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.h \
b/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.h index 402cceb..531b6bd \
100644
--- a/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.h
+++ b/libmuon/backends/ApplicationBackend/UbuntuPurchaseDialog.h
@@ -52,7 +52,7 @@ private:
signals:
void purchaseCancelledByUser();
void purchaseFailed();
- void purchaseSucceeded(const QMap<QString, QVariant> &details);
+ void purchaseSucceeded(USCResource *resource, const QMap<QString, QVariant> \
&details); void termsOfServiceDeclined();
void receivedOAuthToken(const QMap<QString, QVariant> &token);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic