summaryrefslogtreecommitdiff
path: root/qicclient
diff options
context:
space:
mode:
authorꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-10-05 18:09:48 +0800
committerꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id>2019-10-05 18:09:48 +0800
commit61e8ac95e621544b32ae324d7aec44b4e15bc81d (patch)
treef8526bf6e34f226c1bce1969a07b97903cffa258 /qicclient
parent5d36cbe8062af072958c37bb9c71b1e158074d3a (diff)
Separate the product structure
so the catalog doesn't have to included when not needed.
Diffstat (limited to 'qicclient')
-rw-r--r--qicclient/catalog.hxx43
-rw-r--r--qicclient/client.hxx1
-rw-r--r--qicclient/product.hxx40
3 files changed, 42 insertions, 42 deletions
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 <QAbstractListModel>
-#include <icclient/product.h>
+#include <qicclient/product.hxx>
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<int, QByteArray> roleNames() const Q_DECL_OVERRIDE;
private:
- QList<Product> products;
void addProduct(Product const& product);
+ QList<Product> 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 <QObject>
-#include <icclient/product.h>
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 <icclient/product.h>
+
+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