From 228307e324190e760dc298ef84c3ffb29d4c8237 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=A6=8C=20=EA=A6=AB=EA=A6=B6=20=EA=A6=8F=EA=A7=80?= =?UTF-8?q?=EA=A6=A6=EA=A6=BF=20=EA=A6=A7=20=EA=A6=AE=20=EA=A6=91=20?= =?UTF-8?q?=EA=A6=A9=20=EA=A6=AD=EA=A7=80?= Date: Mon, 29 Jun 2020 15:38:47 +0800 Subject: C++ instances keep a pointer to the C version --- qicclient/basket.hxx | 5 ++--- qicclient/catalog.hxx | 2 ++ qicclient/client.hxx | 8 +++----- 3 files changed, 7 insertions(+), 8 deletions(-) (limited to 'qicclient') 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 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 -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); - void ordered(icclient_ord_order* order); void loggedIn(icclient_user* user); void loggedOut(); }; -- cgit v1.2.3