summaryrefslogtreecommitdiff
path: root/interchange
diff options
context:
space:
mode:
Diffstat (limited to 'interchange')
-rw-r--r--interchange/ord.hxx15
-rw-r--r--interchange/product.hxx11
2 files changed, 16 insertions, 10 deletions
diff --git a/interchange/ord.hxx b/interchange/ord.hxx
index 34ff202..a7e41a7 100644
--- a/interchange/ord.hxx
+++ b/interchange/ord.hxx
@@ -8,22 +8,23 @@
namespace QInterchange {
- struct Item
+ struct Item : public Product
{
enum ItemRoles {
QuantityRole = Product::PriceRole + 1,
NameRole
};
- Item(interchange_ord_item item) :
- product{&item.product},
- quantity{item.quantity},
- name{item.name} {}
- Product product;
+ Item(interchange_ord_item *item) :
+ quantity{item->quantity},
+ name{item->name}
+ {
+ init((struct interchange_product *)item);
+ }
unsigned int quantity;
QString name;
bool operator==(Item const& item)
{
- return product.sku == item.product.sku;
+ return sku == item.sku;
}
};
diff --git a/interchange/product.hxx b/interchange/product.hxx
index d3246ed..9fd7a89 100644
--- a/interchange/product.hxx
+++ b/interchange/product.hxx
@@ -25,9 +25,12 @@ namespace QInterchange {
};
Product() {}
- Product(struct interchange_product *product) :
- price{product->price},
- weight{product->weight}
+ Product(struct interchange_product *product)
+ {
+ init(product);
+ }
+
+ void init(struct interchange_product *product)
{
if (product->sku)
sku = QString{product->sku};
@@ -41,10 +44,12 @@ namespace QInterchange {
thumb = QString{product->thumb};
if (product->image)
image = QString{product->image};
+ price = product->price;
if (product->prod_group)
prodGroup = QString{product->prod_group};
if (product->category)
category = QString{product->category};
+ weight = product->weight;
if (product->option_type)
optionType = QString{product->option_type};
if (product->author)