|
|
|
@ -1,11 +1,18 @@
|
|
|
|
|
#include "sellermodel.h" |
|
|
|
|
|
|
|
|
|
SellerModel::SellerModel(std::vector<std::unique_ptr<Seller>>& sellers, QObject* parent) |
|
|
|
|
: QAbstractTableModel(parent), sellers_(&sellers) |
|
|
|
|
#include <algorithm> |
|
|
|
|
|
|
|
|
|
#include <QMessageBox> |
|
|
|
|
|
|
|
|
|
SellerModel::SellerModel(Marketplace* market, QObject* parent) |
|
|
|
|
: QAbstractTableModel(parent), marketplace_(market) |
|
|
|
|
{ |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int SellerModel::rowCount(const QModelIndex& parent) const { return sellers_->size(); } |
|
|
|
|
int SellerModel::rowCount(const QModelIndex& parent) const |
|
|
|
|
{ |
|
|
|
|
return marketplace_->getSellers().size(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int SellerModel::columnCount(const QModelIndex& parent) const { return 5; } |
|
|
|
|
|
|
|
|
@ -14,7 +21,7 @@ QVariant SellerModel::data(const QModelIndex& index, int role) const
|
|
|
|
|
if (role != Qt::DisplayRole) |
|
|
|
|
return QVariant(); |
|
|
|
|
|
|
|
|
|
Seller* seller = sellers_->at(index.row()).get(); |
|
|
|
|
Seller* seller = marketplace_->getSellers().at(index.row()).get(); |
|
|
|
|
switch (index.column()) { |
|
|
|
|
case 0: |
|
|
|
|
return seller->getUuidAsString().c_str(); |
|
|
|
@ -62,18 +69,34 @@ Qt::ItemFlags SellerModel::flags(const QModelIndex& index) const
|
|
|
|
|
return QAbstractTableModel::flags(index) | Qt::ItemFlag::ItemIsEditable; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool SellerModel::setData(const QModelIndex& index, const QVariant& value, int role) { |
|
|
|
|
bool SellerModel::setData(const QModelIndex& index, const QVariant& value, int role) |
|
|
|
|
{ |
|
|
|
|
if (role != Qt::EditRole) |
|
|
|
|
return false; |
|
|
|
|
|
|
|
|
|
Seller* seller = sellers_->at(index.row()).get(); |
|
|
|
|
Seller* seller = marketplace_->getSellers().at(index.row()).get(); |
|
|
|
|
|
|
|
|
|
switch (index.column()) { |
|
|
|
|
case 0: |
|
|
|
|
seller->setUuidFromString(value.toString().toStdString()); |
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
case 1: { |
|
|
|
|
if (value.toInt() < 0) |
|
|
|
|
return false; |
|
|
|
|
auto iter = |
|
|
|
|
std::find_if(marketplace_->getSellers().begin(), marketplace_->getSellers().end(), |
|
|
|
|
[&value](const std::unique_ptr<Seller>& seller) { |
|
|
|
|
return value.toInt() == seller->getSellerNo(); |
|
|
|
|
}); |
|
|
|
|
if (iter != marketplace_->getSellers().end()) { |
|
|
|
|
/* QMessageBox(QMessageBox::Icon::Warning, "Fehler",
|
|
|
|
|
"Die Verkäufernummer muss eindeutig sein.", QMessageBox::StandardButton::Ok) |
|
|
|
|
.exec(); */ |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
seller->setSellerNo(value.toInt()); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
case 2: |
|
|
|
|
seller->setFirstName(value.toString().toStdString()); |
|
|
|
|
break; |
|
|
|
@ -86,6 +109,20 @@ bool SellerModel::setData(const QModelIndex& index, const QVariant& value, int r
|
|
|
|
|
default: |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
if (seller->getState() == Seller::State::OK) |
|
|
|
|
seller->setState(Seller::State::UPDATE); |
|
|
|
|
dataChanged(index, index); |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool SellerModel::insertRows(int row, int count, const QModelIndex& parent) |
|
|
|
|
{ |
|
|
|
|
beginInsertRows(parent, row, row + count - 1); |
|
|
|
|
auto seller = std::make_unique<Seller>(); |
|
|
|
|
seller->createUuid(); |
|
|
|
|
seller->setSellerNo(marketplace_->getNextSellerNo()); |
|
|
|
|
marketplace_->getSellers().push_back(std::move(seller)); |
|
|
|
|
endInsertRows(); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |