diff options
Diffstat (limited to 'ord.cxx')
-rw-r--r-- | ord.cxx | 34 |
1 files changed, 14 insertions, 20 deletions
@@ -13,9 +13,7 @@ namespace QICClient { QVariant Ord::data(QModelIndex const& index, int role) const { auto row = index.row(); - if (row < 0 || row >= items.count()) return QVariant(); - auto item = items[row]; switch (role) { case Product::SkuRole: @@ -34,27 +32,25 @@ namespace QICClient { QHash<int, QByteArray> Ord::roleNames() const { return QHash<int, QByteArray>{ - {Product::SkuRole, "sku"} - , {Product::DescriptionRole, "description"} - , {Product::PriceRole, "price"} - , {Item::QuantityRole, "quantity"} + { Product::SkuRole, "sku" }, + { Product::DescriptionRole, "description" }, + { Product::PriceRole, "price" }, + { Item::QuantityRole, "quantity" } }; } void Ord::addItem(Item const& item) { auto product = item.product; - auto iterator = std::find_if(items.begin(), items.end() - , [&product](Item const& item) { - return product.sku == item.product.sku; - }); + auto iterator = std::find_if(items.begin(), items.end(), [&product](Item const& item) { + return product.sku == item.product.sku; + }); if (iterator != items.end()) { auto index = items.indexOf(*iterator); beginRemoveRows(QModelIndex(), index, index); items.removeAt(index); endRemoveRows(); } - beginInsertRows(QModelIndex(), rowCount(), rowCount()); items << item; endInsertRows(); @@ -63,15 +59,13 @@ namespace QICClient { void Ord::setData(struct icclient_ord_order* order) { - if (order) { - this->m_data = order; - for (size_t i = 0; i < order->nitems; i++) - addItem(Item{order->items[i]}); - m_subtotal = order->subtotal; - emit subtotalChanged(); - m_totalCost = order->total_cost; - emit totalCostChanged(); - } + if (!order) return; + this->m_data = order; + for (size_t i = 0; i < order->nitems; i++) addItem(Item{order->items[i]}); + m_subtotal = order->subtotal; + emit subtotalChanged(); + m_totalCost = order->total_cost; + emit totalCostChanged(); } void Ord::checkout(Member& member) |