summaryrefslogtreecommitdiff
path: root/qicclient
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2020-06-29 15:38:47 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2020-06-29 15:38:47 +0800
commit228307e324190e760dc298ef84c3ffb29d4c8237 (patch)
tree36f97ddb46c12ac98fb81b5969dbf6c64b474702 /qicclient
parenta2a5964bddaf61c830f9a2a2a9bf6226c0168e64 (diff)
C++ instances keep a pointer to the C version
Diffstat (limited to 'qicclient')
-rw-r--r--qicclient/basket.hxx5
-rw-r--r--qicclient/catalog.hxx2
-rw-r--r--qicclient/client.hxx8
3 files changed, 7 insertions, 8 deletions
diff --git a/qicclient/basket.hxx b/qicclient/basket.hxx
index 019b165..f5665cd 100644
--- a/qicclient/basket.hxx
+++ b/qicclient/basket.hxx
@@ -54,9 +54,7 @@ namespace ICClient {
double subtotal() const { return m_subtotal; }
double shipping() const { return m_shipping; }
double totalCost() const { return m_totalCost; }
-
- public slots:
- void update(icclient_ord_order* order);
+ icclient_ord_order* c_order() { return order; }
signals:
void rowCountChanged();
@@ -73,6 +71,7 @@ namespace ICClient {
double m_subtotal;
double m_shipping;
double m_totalCost;
+ icclient_ord_order* order;
};
}
diff --git a/qicclient/catalog.hxx b/qicclient/catalog.hxx
index dfa7a7c..7f1dcfd 100644
--- a/qicclient/catalog.hxx
+++ b/qicclient/catalog.hxx
@@ -17,6 +17,7 @@ namespace ICClient {
Catalog(QObject* parent = nullptr) : QAbstractListModel{parent} {}
int rowCount(QModelIndex const& parent = QModelIndex()) const Q_DECL_OVERRIDE;
QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const Q_DECL_OVERRIDE;
+ icclient_catalog const* c_catalog() const { return catalog; }
public slots:
void update(Catalog* catalog);
@@ -30,6 +31,7 @@ namespace ICClient {
private:
void addProduct(Product const& product);
QList<Product> products;
+ icclient_catalog* catalog;
};
}
diff --git a/qicclient/client.hxx b/qicclient/client.hxx
index a87f83f..056b3f8 100644
--- a/qicclient/client.hxx
+++ b/qicclient/client.hxx
@@ -3,7 +3,6 @@
#include <QObject>
-struct icclient_ord_order;
struct icclient_user;
namespace ICClient {
@@ -11,6 +10,7 @@ namespace ICClient {
using std::shared_ptr;
class Catalog;
class Product;
+ class Basket;
class Client : public QObject
{
@@ -31,9 +31,8 @@ namespace ICClient {
size_t size, size_t nmemb,
void* userdata),
QString const& sku);
- void order(icclient_ord_order** orderPtr,
- QString const& sku,
- icclient_catalog* catalog);
+ void order(QString const& sku, Catalog const& catalog,
+ Basket& order);
void logIn(size_t (*handler)(void*, size_t, size_t, void*),
icclient_user* user,
QString const& username,
@@ -72,7 +71,6 @@ namespace ICClient {
signals:
void gotResults(Catalog* catalog);
void gotFlyPage(shared_ptr<Product> product);
- void ordered(icclient_ord_order* order);
void loggedIn(icclient_user* user);
void loggedOut();
};