00001 #ifndef QIAP_H 00002 #define QIAP_H 00003 00004 #include <QObject> 00005 #include <QList> 00006 #include <QProgressDialog> 00007 #include <iapclient.h> 00008 00009 class QIapPrivate; 00010 00018 class QIap : public QObject 00019 { 00020 Q_OBJECT 00021 Q_DECLARE_PRIVATE(QIap) 00022 Q_CLASSINFO("Author", "Sebastiano Galazzo") 00023 Q_CLASSINFO("Email", "sebastiano.galazzo@gmail.com") 00024 00025 public: 00031 explicit QIap(QObject *parent = 0); 00032 00036 virtual ~QIap(); 00037 00041 QList<IAPClient::ProductDataHash>& availableProducts(); 00042 00048 Q_INVOKABLE int purchaseProductByID(QString productId, IAPClient::ForceRestorationFlag restoration=IAPClient::ForcedAutomaticRestoration); 00049 00055 Q_INVOKABLE int purchaseProductByName(QString productName, IAPClient::ForceRestorationFlag restoration=IAPClient::ForcedAutomaticRestoration); 00056 00062 Q_INVOKABLE bool isPurchased(QString fileName); 00063 00071 Q_INVOKABLE QByteArray getDRMFileContent(QString productID,QString fileName); 00072 00073 signals: 00074 void purchaseCompleted(QString status, QString productID); 00075 void purchaseFlowFinished( int requestId ); 00076 void getProductsCompleted(); 00077 void restoreProductsCompleted(); 00078 void itemRestored(QString productID); 00079 00080 public slots: 00084 void getProducts(); 00085 00089 void restoreProducts(); 00090 00094 void resetPurchases(); 00095 00096 protected: 00097 00101 QIapPrivate* const d_ptr; 00102 00103 private: 00104 QProgressDialog* busyIndicator; 00105 }; 00106 00107 #endif // QIAP_H