#include "summarymodel.h" QVariantList SummaryModel::items() const { return m_items.values(); } float SummaryModel::sum() const { float res = 0.0; for (auto it = m_items.constBegin(); it != m_items.constEnd(); ++it) { QVariantMap item = it.value().toMap(); int count = item.value("count", 0).toInt(); float price = item.value("cost", 0.0).toFloat(); res += count * price; } return res; } void SummaryModel::setItemCount(QVariantMap item, int count) { QString id = item.value("id", QString()).toString(); if (count) { item["count"] = count; m_items[id] = item; } else { m_items.remove(id); } emit itemsChanged(); } void SummaryModel::clear() { m_items.clear(); emit itemsChanged(); }