diff options
Diffstat (limited to 'qicclient/basket.hxx')
-rw-r--r-- | qicclient/basket.hxx | 79 |
1 files changed, 0 insertions, 79 deletions
diff --git a/qicclient/basket.hxx b/qicclient/basket.hxx deleted file mode 100644 index 8930821..0000000 --- a/qicclient/basket.hxx +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef QICCLIENT_BASKET_HXX -#define QICCLIENT_BASKET_HXX - -#include <QAbstractListModel> -#include <icclient/ord.h> -#include "product.hxx" - -namespace QICClient { - - struct Item - { - enum ItemRoles { - QuantityRole = Product::PriceRole + 1 - }; - - Item(icclient_ord_item* item) - : product{item->product} - , quantity{item->quantity} - {} - - Product product; - unsigned int quantity; - - bool operator==(Item const& item) - { - return product.sku == item.product.sku; - } - }; - - class Basket : public QAbstractListModel - { - Q_OBJECT - Q_PROPERTY(int rowCount READ rowCount NOTIFY rowCountChanged) - Q_PROPERTY(double subtotal READ subtotal NOTIFY subtotalChanged) - Q_PROPERTY(double shipping READ shipping NOTIFY shippingChanged) - Q_PROPERTY(double totalCost READ totalCost NOTIFY totalCostChanged) - - public: - explicit Basket(QObject* parent = nullptr) : - QAbstractListModel{parent}, - m_data{nullptr}, - m_subtotal{.0}, - m_shipping{.0}, - m_totalCost{.0} - {} - - int rowCount(QModelIndex const& parent - = QModelIndex()) const Q_DECL_OVERRIDE; - QVariant data(const QModelIndex& index, - int role = Qt::DisplayRole - ) const Q_DECL_OVERRIDE; - - struct icclient_ord_order* data() { return m_data; } - void setData(struct icclient_ord_order* order); - double subtotal() const { return m_subtotal; } - double shipping() const { return m_shipping; } - double totalCost() const { return m_totalCost; } - - signals: - void rowCountChanged(); - void subtotalChanged(); - void shippingChanged(); - void totalCostChanged(); - - protected: - QHash<int, QByteArray> roleNames() const Q_DECL_OVERRIDE; - - private: - void addItem(Item const& item); - QList<Item> items; - struct icclient_ord_order* m_data; - double m_subtotal; - double m_shipping; - double m_totalCost; - }; - -} - -#endif // QICCLIENT_BASKET_HXX |