diff options
| -rw-r--r-- | interchange/ord.hxx | 14 | ||||
| -rw-r--r-- | ord.cxx | 24 | 
2 files changed, 13 insertions, 25 deletions
| diff --git a/interchange/ord.hxx b/interchange/ord.hxx index 56bb7d3..4ec06b4 100644 --- a/interchange/ord.hxx +++ b/interchange/ord.hxx @@ -13,9 +13,9 @@ namespace QInterchange {  		enum ItemRoles {  			QuantityRole = Product::PriceRole + 1  		}; -		Item(interchange_ord_item* item) : -			product{item->product}, -			quantity{item->quantity} {} +		Item(interchange_ord_item item) : +			product{item.product}, +			quantity{item.quantity} {}  		Product product;  		unsigned int quantity;  		bool operator==(Item const& item) @@ -33,13 +33,12 @@ namespace QInterchange {  		Q_PROPERTY(double totalCost READ totalCost NOTIFY totalCostChanged)  		public: -			explicit Ord(struct interchange_ord_order* order -					= nullptr, QObject* parent = nullptr); -			~Ord(); +			explicit Ord(struct interchange_ord_order order, +					QObject* parent = nullptr); +			~Ord() {}  			int rowCount(QModelIndex const& parent = QModelIndex()) const Q_DECL_OVERRIDE;  			QVariant data(const QModelIndex& index, int role = Qt::DisplayRole) const  				Q_DECL_OVERRIDE; -			struct interchange_ord_order* data() { return m_data; }  			double subtotal() const { return m_subtotal; }  			double shipping() const { return m_shipping; }  			double totalCost() const { return m_totalCost; } @@ -61,7 +60,6 @@ namespace QInterchange {  		private:  			void addItem(Item const& item);  			QList<Item> items; -			struct interchange_ord_order* m_data;  			QString profile;  			double m_subtotal;  			double m_shipping; @@ -8,25 +8,15 @@ namespace QInterchange {  	static Ord* ord;  	static char* order_profile; -	Ord::Ord(struct interchange_ord_order *order, QObject* parent) : -		QAbstractListModel{parent}, -		m_data{nullptr}, -		m_subtotal{.0}, -		m_shipping{.0}, -		m_totalCost{.0} +	Ord::Ord(struct interchange_ord_order order, QObject* parent) : +		QAbstractListModel{parent}  	{  		ord = this; -		if (!order) return; -		for (size_t i = 0; i < order->nitems; i++) -			addItem(Item{order->items[i]}); -		m_subtotal = order->subtotal; -		m_totalCost = order->total_cost; -		m_data = order; -	} - -	Ord::~Ord() -	{ -		if (m_data) interchange_ord_free_order(m_data); +		for (size_t i = 0; i < order.nitems; i++) +			addItem(Item{order.items[i]}); +		m_subtotal = order.subtotal; +		m_shipping = order.shipping; +		m_totalCost = order.total_cost;  	}  	int Ord::rowCount(QModelIndex const& parent) const |