connecting basket model and sale model
This commit is contained in:
parent
f697487d6b
commit
3ec2143f28
5 changed files with 23 additions and 2 deletions
|
@ -111,6 +111,7 @@ void BasketModel::finishSale()
|
|||
emit beginRemoveRows(QModelIndex(), 0, marketplace_->getBasket().size() - 1);
|
||||
marketplace_->finishCurrentSale();
|
||||
emit endRemoveRows();
|
||||
emit basketDataChanged();
|
||||
}
|
||||
|
||||
void BasketModel::cancelSale()
|
||||
|
|
|
@ -23,6 +23,9 @@ class BasketModel : public QAbstractTableModel
|
|||
void cancelSale();
|
||||
virtual bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()) override;
|
||||
|
||||
signals:
|
||||
void basketDataChanged();
|
||||
|
||||
private:
|
||||
Marketplace* marketplace_;
|
||||
};
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
#include "basketmodel.h"
|
||||
#include "pricedialog.h"
|
||||
#include "sellerdialog.h"
|
||||
#include "salemodel.h"
|
||||
#include "sellerdialog.h"
|
||||
|
||||
#include <regex>
|
||||
|
||||
|
@ -40,6 +40,9 @@ MainWindow::MainWindow()
|
|||
&MainWindow::onCancelArticleButtonClicked);
|
||||
connect(ui_.cancelAllArticlesButton, &QPushButton::clicked, this,
|
||||
&MainWindow::onCancelAllArticlesButtonClicked);
|
||||
connect(static_cast<BasketModel*>(ui_.basketView->model()), &BasketModel::basketDataChanged,
|
||||
static_cast<SaleModel*>(ui_.salesView->model()),
|
||||
&SaleModel::onBasketDataChanged);
|
||||
}
|
||||
|
||||
void MainWindow::on_actionEditSeller_triggered()
|
||||
|
@ -65,6 +68,7 @@ void MainWindow::on_paidButton_triggered()
|
|||
dynamic_cast<BasketModel*>(ui_.basketView->model())->finishSale();
|
||||
ui_.lastPriceLabel1->setText(lastPrice);
|
||||
ui_.lastPriceLabel2->setText(lastPrice);
|
||||
// static_cast<SaleModel*>(ui_.salesView->model())->onDataChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -155,4 +155,14 @@ QVariant SaleModel::headerData(int section, Qt::Orientation orientation, int rol
|
|||
return QStringLiteral("%1").arg(section);
|
||||
} else
|
||||
return "";
|
||||
}
|
||||
|
||||
void SaleModel::onBasketDataChanged()
|
||||
{
|
||||
emit beginResetModel();
|
||||
auto& sales = marketplace_->getSales();
|
||||
std::sort(sales.begin(), sales.end(), [](const auto& lhs, const auto& rhs) {
|
||||
return lhs->getTimestamp() > rhs->getTimestamp();
|
||||
});
|
||||
emit endResetModel();
|
||||
}
|
|
@ -14,11 +14,14 @@ class SaleModel : public QAbstractItemModel
|
|||
QModelIndex index(int row, int column,
|
||||
const QModelIndex& parent = QModelIndex()) const override;
|
||||
QModelIndex parent(const QModelIndex& index) const override;
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
QVariant data(const QModelIndex& index, int role) const override;
|
||||
int rowCount(const QModelIndex& parent) const override;
|
||||
int columnCount(const QModelIndex& parent) const override;
|
||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||
|
||||
public slots:
|
||||
void onBasketDataChanged();
|
||||
|
||||
private:
|
||||
Marketplace* marketplace_;
|
||||
std::unique_ptr<Sale> rootItem{new Sale()};
|
||||
|
|
Loading…
Reference in a new issue