21 #include <libpay/pay-package.h>
25 static void observer(PayPackage* ,
const char* itemid, PayPackageItemStatus status,
void* user_data) {
31 Payments *
self =
static_cast<Payments*
>(user_data);
34 if (itemid != self->storeItemId()) {
41 case PAY_PACKAGE_ITEM_STATUS_PURCHASED:
42 Q_EMIT
self->purchaseCompleted();
49 Payments::Payments(QObject *parent)
52 m_package = pay_package_new(
"click-scope");
53 pay_package_item_observer_install(m_package, observer,
this);
58 pay_package_item_observer_uninstall(m_package, observer,
this);
59 pay_package_delete(m_package);
62 QString Payments::currency()
const
67 double Payments::price()
const
72 QString Payments::storeItemId()
const
74 return m_store_item_id;
77 QString Payments::formattedPrice()
const
80 return locale.toCurrencyString(m_price, m_currency);
83 void Payments::setCurrency(
const QString ¤cy)
85 if(m_currency != currency) {
86 m_currency = currency;
87 Q_EMIT currencyChanged(currency);
88 Q_EMIT formattedPriceChanged(formattedPrice());
92 void Payments::setPrice(
const double price)
94 if(m_price != price) {
96 Q_EMIT priceChanged(price);
97 Q_EMIT formattedPriceChanged(formattedPrice());
101 void Payments::setStoreItemId(
const QString &store_item_id)
103 if (m_store_item_id != store_item_id) {
104 m_store_item_id = store_item_id;
105 Q_EMIT storeItemIdChanged(m_store_item_id);
108 if (m_store_item_id.isEmpty()) {
112 pay_package_item_start_verification(m_package, m_store_item_id.toLocal8Bit().data());
115 void Payments::start()
117 pay_package_item_start_purchase(m_package, m_store_item_id.toLocal8Bit().data());