From 73851e44295b0a1e1963689036a0f60c4cbb8330 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: Sat, 28 Sep 2019 15:54:09 +0800 Subject: Client triggers catalog to update directly since getting all products would only be good for catalog. Besides, emitting there seems to cause crash somehow. --- client.cxx | 6 ++++-- qicclient/client.hxx | 6 +++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/client.cxx b/client.cxx index 4e832ce..168a0fc 100644 --- a/client.cxx +++ b/client.cxx @@ -14,11 +14,13 @@ namespace ICClient { icclient_cleanup(); } - void Client::allProducts(size_t (*handler)(void*, size_t, size_t, void*)) + void Client::allProducts(Catalog* qCatalog, size_t (*handler)(void*, size_t + , size_t, void*)) { icclient_catalog* catalog = nullptr; icclient_allproducts(&catalog, handler); - emit gotAllProducts(catalog); + if (catalog) qCatalog->update(catalog); + icclient_product_freecatalog(catalog); } void Client::logIn(QString const& username, QString const& password) diff --git a/qicclient/client.hxx b/qicclient/client.hxx index bccd665..5531d53 100644 --- a/qicclient/client.hxx +++ b/qicclient/client.hxx @@ -3,8 +3,8 @@ #include #include +#include "catalog.hxx" -struct icclient_catalog; struct icclient_order; namespace ICClient { @@ -17,7 +17,8 @@ namespace ICClient { Client(char const* url, char const* certificate = nullptr); ~Client(); - void allProducts(size_t (*handler)(void* contents + void allProducts(Catalog* catalog + , size_t (*handler)(void* contents , size_t size, size_t nmemb , void* userdata)); @@ -52,7 +53,6 @@ namespace ICClient { */ signals: - void gotAllProducts(icclient_catalog* catalog); void ordered(icclient_order* order); void loggedIn(QString const& userName); void loggedOut(); -- cgit v1.2.3