Cargo edit dialog and VM
This commit is contained in:
parent
05776f19f3
commit
a6c080d36b
5 changed files with 118 additions and 32 deletions
54
sea_transport/viewmodels/cargoviewmodel.cpp
Normal file
54
sea_transport/viewmodels/cargoviewmodel.cpp
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#include "cargoviewmodel.h"
|
||||
|
||||
CargoViewModel::CargoViewModel(QObject *parent) : QAbstractTableModel(parent) {
|
||||
|
||||
}
|
||||
|
||||
int CargoViewModel::rowCount(const QModelIndex &/*parent*/) const {
|
||||
return this->_data.length();
|
||||
}
|
||||
|
||||
int CargoViewModel::columnCount(const QModelIndex &/*parent*/) const {
|
||||
return 3;
|
||||
}
|
||||
|
||||
QVariant CargoViewModel::headerData(int section, Qt::Orientation orientation, int role) const {
|
||||
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return QString("SID");
|
||||
case 1:
|
||||
return QString("Title");
|
||||
case 2:
|
||||
return QString("Volume");
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QVariant CargoViewModel::data(const QModelIndex &index, int role) const {
|
||||
if (role == Qt::DisplayRole) {
|
||||
auto item = this->_data[index.row()];
|
||||
|
||||
int col = index.column();
|
||||
switch (col) {
|
||||
case 0:
|
||||
return QString::number(item.id());
|
||||
case 1:
|
||||
return item.title();
|
||||
case 2:
|
||||
return item.volume();
|
||||
}
|
||||
|
||||
return "UNKNOWN FIELD";
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
void CargoViewModel::set_data(const QVector<cargo_entity> &new_data) {
|
||||
this->beginResetModel();
|
||||
this->_data.clear();
|
||||
this->_data += new_data;
|
||||
this->endResetModel();
|
||||
}
|
||||
24
sea_transport/viewmodels/cargoviewmodel.h
Normal file
24
sea_transport/viewmodels/cargoviewmodel.h
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
#ifndef CARGOVIEWMODEL_H
|
||||
#define CARGOVIEWMODEL_H
|
||||
|
||||
#include <QVector>
|
||||
#include <QAbstractTableModel>
|
||||
|
||||
#include "entities/cargo_entity.h"
|
||||
|
||||
class CargoViewModel : public QAbstractTableModel {
|
||||
Q_OBJECT
|
||||
|
||||
QVector<cargo_entity> _data;
|
||||
|
||||
public:
|
||||
CargoViewModel(QObject *parent);
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const;
|
||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
|
||||
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
|
||||
|
||||
void set_data(const QVector<cargo_entity> &new_data);
|
||||
};
|
||||
|
||||
#endif // CARGOVIEWMODEL_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue