diff options
-rw-r--r-- | client.cxx | 4 | ||||
-rw-r--r-- | qicclient/client.hxx | 6 |
2 files changed, 7 insertions, 3 deletions
@@ -1,6 +1,8 @@ #include <cstddef> +#include <QObject> #include <icclient/client.h> #include <icclient/member.h> +#include "qicclient/product.hxx" #include "qicclient/client.hxx" namespace ICClient { @@ -37,7 +39,7 @@ namespace ICClient { { icclient_product* product = nullptr; icclient_flypage(handler, &product, sku.toLatin1().constData()); - emit gotFlyPage(product); + if (product) emit gotFlyPage(std::shared_ptr<Product>{new ICClient::Product{product}}); } void Client::order(icclient_ord_order** orderPtr, QString const& sku diff --git a/qicclient/client.hxx b/qicclient/client.hxx index 0ab7a3d..b73c6a2 100644 --- a/qicclient/client.hxx +++ b/qicclient/client.hxx @@ -1,15 +1,17 @@ #ifndef QICCLIENT_CLIENT_HXX #define QICCLIENT_CLIENT_HXX +#include <memory> #include <QObject> struct icclient_catalog; -struct icclient_product; struct icclient_ord_order; struct icclient_user; namespace ICClient { + class Product; + class Client : public QObject { Q_OBJECT @@ -69,7 +71,7 @@ namespace ICClient { signals: void gotResults(icclient_catalog* catalog); - void gotFlyPage(icclient_product* product); + void gotFlyPage(std::shared_ptr<Product> product); void ordered(icclient_ord_order* order); void loggedIn(icclient_user* user); void loggedOut(); |