From 61e8ac95e621544b32ae324d7aec44b4e15bc81d 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, 5 Oct 2019 18:09:48 +0800 Subject: Separate the product structure so the catalog doesn't have to included when not needed. --- qicclient/catalog.hxx | 43 ++----------------------------------------- qicclient/client.hxx | 1 - qicclient/product.hxx | 40 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 42 insertions(+), 42 deletions(-) create mode 100644 qicclient/product.hxx (limited to 'qicclient') diff --git a/qicclient/catalog.hxx b/qicclient/catalog.hxx index 782c864..d539149 100644 --- a/qicclient/catalog.hxx +++ b/qicclient/catalog.hxx @@ -2,56 +2,17 @@ #define QICCLIENT_CATALOG_HXX #include -#include +#include struct icclient_catalog; namespace ICClient { - class Product - { - public: - Product(icclient_product* product) : m_sku{product->sku} - { - if (product->description) - m_description - = QString{product->description}; - if (product->comment) - m_comment = QString{product->comment}; - if (product->image) - m_image = QString{product->image}; - m_price = product->price; - } - QString const& sku() const { return m_sku; } - QString const& description() const - { - return m_description; - } - QString const& comment() const { return m_comment; } - QString const& image() const { return m_image; } - double price() const { return m_price; } - - private: - QString m_sku; - QString m_description; - QString m_comment; - QString m_image; - double m_price; - }; - class Catalog : public QAbstractListModel { Q_OBJECT public: - enum ProductRoles { - SkuRole = Qt::UserRole + 1, - DescriptionRole, - CommentRole, - ImageRole, - PriceRole - }; - explicit Catalog(QObject* parent = nullptr) : QAbstractListModel{parent} {} @@ -71,8 +32,8 @@ namespace ICClient { QHash roleNames() const Q_DECL_OVERRIDE; private: - QList products; void addProduct(Product const& product); + QList products; }; } diff --git a/qicclient/client.hxx b/qicclient/client.hxx index bccd665..9af124d 100644 --- a/qicclient/client.hxx +++ b/qicclient/client.hxx @@ -2,7 +2,6 @@ #define QICCLIENT_CLIENT_HXX #include -#include struct icclient_catalog; struct icclient_order; diff --git a/qicclient/product.hxx b/qicclient/product.hxx new file mode 100644 index 0000000..7271fe9 --- /dev/null +++ b/qicclient/product.hxx @@ -0,0 +1,40 @@ +#ifndef QICCLIENT_PRODUCT_HXX +#define QICCLIENT_PRODUCT_HXX + +#include + +namespace ICClient { + + struct Product + { + enum ProductRoles { + SkuRole = Qt::UserRole + 1, + DescriptionRole, + CommentRole, + ImageRole, + PriceRole + }; + + Product(icclient_product* product) + : sku{product->sku} + , price{product->price} + { + if (product->description) + description + = QString{product->description}; + if (product->comment) + comment = QString{product->comment}; + if (product->image) + image = QString{product->image}; + } + + QString sku; + QString description; + QString comment; + QString image; + double price; + }; + +} + +#endif // QICCLIENT_PRODUCT_HXX -- cgit v1.2.3