on xenial help sign in
Use a public variable in the class to store state rather than a static.
commite3946ee341b625bc2917ba3cbdee1486c8c65ff3 authorRodney Dawes <rodney.dawes@canonical.com> dateMon 15 Sep 2014, 18:11 (12 years ago) parent89081af
2 files changed+6−4
plugins/Ubuntu/Payments/Payments.cpp+3−4 plugins/Ubuntu/Payments/Payments.h+3
plugins/Ubuntu/Payments/Payments.cpp+3−4
@@ -29,7 +29,6 @@ static void observer(PayPackage* /* package */, const char* itemid, PayPackageIt
2929 // http://qt-project.org/doc/qt-5/threads-qobject.html#signals-and-slots-across-threads
3030
3131 Payments *self = static_cast<Payments*>(user_data);
32− static bool _purchasing = false;
3332
3433 // If the item ID is different, ignore it.
3534 if (itemid != self->storeItemId()) {
@@ -43,11 +42,11 @@ static void observer(PayPackage* /* package */, const char* itemid, PayPackageIt
4342 Q_EMIT self->purchaseCompleted();
4443 break;
4544 case PAY_PACKAGE_ITEM_STATUS_PURCHASING:
46− _purchasing = true;
45+ self->m_purchasing = true;
4746 break;
4847 case PAY_PACKAGE_ITEM_STATUS_NOT_PURCHASED:
49− if (_purchasing) {
50− _purchasing = false;
48+ if (self->m_purchasing) {
49+ self->m_purchasing = false;
5150 Q_EMIT self->purchaseCancelled();
5251 }
5352 break;
plugins/Ubuntu/Payments/Payments.h+3
@@ -55,6 +55,9 @@ Q_SIGNALS:
5555 void purchaseCompleted();
5656 void purchaseCancelled();
5757
58+public:
59+ bool m_purchasing = false;
60+
5861private:
5962 QString m_currency;
6063 double m_price;