diff options
| author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-28 15:54:09 +0800 | 
|---|---|---|
| committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2019-09-28 15:54:09 +0800 | 
| commit | 73851e44295b0a1e1963689036a0f60c4cbb8330 (patch) | |
| tree | ef4433a39bcb5fb9f39f6e58d4e350e1babee749 | |
| parent | 9bdd26b7a36ebb4987ecdca481e48b81d3164a93 (diff) | |
Client triggers catalog to update directly
since getting all products would only be good for catalog.
Besides, emitting there seems to cause crash somehow.
| -rw-r--r-- | client.cxx | 6 | ||||
| -rw-r--r-- | qicclient/client.hxx | 6 | 
2 files changed, 7 insertions, 5 deletions
@@ -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 <QObject>  #include <icclient/product.h> +#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();  |