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);
|
emit beginRemoveRows(QModelIndex(), 0, marketplace_->getBasket().size() - 1);
|
||||||
marketplace_->finishCurrentSale();
|
marketplace_->finishCurrentSale();
|
||||||
emit endRemoveRows();
|
emit endRemoveRows();
|
||||||
|
emit basketDataChanged();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BasketModel::cancelSale()
|
void BasketModel::cancelSale()
|
||||||
|
|
|
@ -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_;
|
||||||
};
|
};
|
||||||
|
|
|
@ -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();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -155,4 +155,14 @@ QVariant SaleModel::headerData(int section, Qt::Orientation orientation, int rol
|
||||||
return QStringLiteral("%1").arg(section);
|
return QStringLiteral("%1").arg(section);
|
||||||
} 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();
|
||||||
}
|
}
|
|
@ -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()};
|
||||||
|
|
Loading…
Reference in a new issue