on xenial help sign in
Use a public variable in the class to store state rather than a static.
e3946eeRodney Dawes
plugins/Ubuntu/Payments/Payments.cpp+3−4
@@ -29,7 +29,6 @@ static void observer(PayPackage* /* package */, const char* itemid, PayPackageIt
29 // http://qt-project.org/doc/qt-5/threads-qobject.html#signals-and-slots-across-threads
29 // http://qt-project.org/doc/qt-5/threads-qobject.html#signals-and-slots-across-threads
30
30
31 Payments *self = static_cast<Payments*>(user_data);
31 Payments *self = static_cast<Payments*>(user_data);
32− static bool _purchasing = false;
33
32
34 // If the item ID is different, ignore it.
33 // If the item ID is different, ignore it.
35 if (itemid != self->storeItemId()) {
34 if (itemid != self->storeItemId()) {
@@ -43,11 +42,11 @@ static void observer(PayPackage* /* package */, const char* itemid, PayPackageIt
43 Q_EMIT self->purchaseCompleted();
42 Q_EMIT self->purchaseCompleted();
44 break;
43 break;
45 case PAY_PACKAGE_ITEM_STATUS_PURCHASING:
44 case PAY_PACKAGE_ITEM_STATUS_PURCHASING:
46− _purchasing = true;
45+ self->m_purchasing = true;
47 break;
46 break;
48 case PAY_PACKAGE_ITEM_STATUS_NOT_PURCHASED:
47 case PAY_PACKAGE_ITEM_STATUS_NOT_PURCHASED:
49− if (_purchasing) {
48+ if (self->m_purchasing) {
50− _purchasing = false;
49+ self->m_purchasing = false;
51 Q_EMIT self->purchaseCancelled();
50 Q_EMIT self->purchaseCancelled();
52 }
51 }
53 break;
52 break;
plugins/Ubuntu/Payments/Payments.h+3
@@ -55,6 +55,9 @@ Q_SIGNALS:
55 void purchaseCompleted();
55 void purchaseCompleted();
56 void purchaseCancelled();
56 void purchaseCancelled();
57
57
58+public:
59+ bool m_purchasing = false;
60+
58private:
61private:
59 QString m_currency;
62 QString m_currency;
60 double m_price;
63 double m_price;