Compare commits

...

2 commits

Author SHA1 Message Date
3ec2143f28 connecting basket model and sale model 2018-07-26 08:34:01 +02:00
f697487d6b code cleanup 2018-07-26 07:56:32 +02:00
5 changed files with 23 additions and 8 deletions

View file

@ -111,6 +111,7 @@ void BasketModel::finishSale()
emit beginRemoveRows(QModelIndex(), 0, marketplace_->getBasket().size() - 1); emit beginRemoveRows(QModelIndex(), 0, marketplace_->getBasket().size() - 1);
marketplace_->finishCurrentSale(); marketplace_->finishCurrentSale();
emit endRemoveRows(); emit endRemoveRows();
emit basketDataChanged();
} }
void BasketModel::cancelSale() void BasketModel::cancelSale()

View file

@ -23,6 +23,9 @@ class BasketModel : public QAbstractTableModel
void cancelSale(); void cancelSale();
virtual bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()) override; virtual bool removeRows(int row, int count, const QModelIndex& parent = QModelIndex()) override;
signals:
void basketDataChanged();
private: private:
Marketplace* marketplace_; Marketplace* marketplace_;
}; };

View file

@ -2,8 +2,8 @@
#include "basketmodel.h" #include "basketmodel.h"
#include "pricedialog.h" #include "pricedialog.h"
#include "sellerdialog.h"
#include "salemodel.h" #include "salemodel.h"
#include "sellerdialog.h"
#include <regex> #include <regex>
@ -40,6 +40,9 @@ MainWindow::MainWindow()
&MainWindow::onCancelArticleButtonClicked); &MainWindow::onCancelArticleButtonClicked);
connect(ui_.cancelAllArticlesButton, &QPushButton::clicked, this, connect(ui_.cancelAllArticlesButton, &QPushButton::clicked, this,
&MainWindow::onCancelAllArticlesButtonClicked); &MainWindow::onCancelAllArticlesButtonClicked);
connect(static_cast<BasketModel*>(ui_.basketView->model()), &BasketModel::basketDataChanged,
static_cast<SaleModel*>(ui_.salesView->model()),
&SaleModel::onBasketDataChanged);
} }
void MainWindow::on_actionEditSeller_triggered() void MainWindow::on_actionEditSeller_triggered()
@ -65,6 +68,7 @@ void MainWindow::on_paidButton_triggered()
dynamic_cast<BasketModel*>(ui_.basketView->model())->finishSale(); dynamic_cast<BasketModel*>(ui_.basketView->model())->finishSale();
ui_.lastPriceLabel1->setText(lastPrice); ui_.lastPriceLabel1->setText(lastPrice);
ui_.lastPriceLabel2->setText(lastPrice); ui_.lastPriceLabel2->setText(lastPrice);
// static_cast<SaleModel*>(ui_.salesView->model())->onDataChanged();
} }
} }

View file

@ -51,14 +51,9 @@ QModelIndex SaleModel::parent(const QModelIndex& index) const
if (sale == rootItem.get()) if (sale == rootItem.get())
return QModelIndex(); return QModelIndex();
else { else {
/* auto iter =
std::find_if(marketplace_->getSales().begin(), marketplace_->getSales().end(),
[&sale](const auto& s) { return s.get() == sale; });
auto pos = std::distance(marketplace_->getSales().begin(), iter); */
return createIndex(-1, 0, rootItem.get()); return createIndex(-1, 0, rootItem.get());
} }
} else { } else {
// article = static_cast<Article*>(index.internalPointer());
article = dynamic_cast<Article*>(ent); article = dynamic_cast<Article*>(ent);
if (!article) { if (!article) {
@ -90,7 +85,6 @@ QVariant SaleModel::data(const QModelIndex& index, int role) const
case 1: case 1:
myFont.setFamily("monospace"); myFont.setFamily("monospace");
return myFont; return myFont;
return myFont;
default: default:
return myFont; return myFont;
} }
@ -162,3 +156,13 @@ QVariant SaleModel::headerData(int section, Qt::Orientation orientation, int rol
} else } else
return ""; 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();
}

View file

@ -14,11 +14,14 @@ class SaleModel : public QAbstractItemModel
QModelIndex index(int row, int column, QModelIndex index(int row, int column,
const QModelIndex& parent = QModelIndex()) const override; const QModelIndex& parent = QModelIndex()) const override;
QModelIndex parent(const QModelIndex& index) 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 rowCount(const QModelIndex& parent) const override;
int columnCount(const QModelIndex& parent) const override; int columnCount(const QModelIndex& parent) const override;
QVariant headerData(int section, Qt::Orientation orientation, int role) const override; QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
public slots:
void onBasketDataChanged();
private: private:
Marketplace* marketplace_; Marketplace* marketplace_;
std::unique_ptr<Sale> rootItem{new Sale()}; std::unique_ptr<Sale> rootItem{new Sale()};