Implemented Vessels VM
This commit is contained in:
parent
fc9b61467c
commit
2f67449c72
2 changed files with 73 additions and 5 deletions
|
|
@ -1,6 +1,65 @@
|
|||
#include "vesselsviewmodel.h"
|
||||
|
||||
VesselsViewModel::VesselsViewModel()
|
||||
{
|
||||
VesselsViewModel::VesselsViewModel(QObject *parent) : QAbstractTableModel(parent) {
|
||||
|
||||
}
|
||||
|
||||
int VesselsViewModel::rowCount(const QModelIndex &/*parent*/) const {
|
||||
return apparatus::instance()->get_object_subsystem()->vessels().length();
|
||||
}
|
||||
|
||||
int VesselsViewModel::columnCount(const QModelIndex &/*parent*/) const {
|
||||
return 5;
|
||||
}
|
||||
|
||||
QVariant VesselsViewModel::headerData(int section, Qt::Orientation orientation, int role) const {
|
||||
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
|
||||
switch (section) {
|
||||
case 0:
|
||||
return QString("VID");
|
||||
case 1:
|
||||
return QString("Harbor");
|
||||
case 2:
|
||||
return QString("Capacity");
|
||||
case 3:
|
||||
return QString("Cargo count");
|
||||
case 4:
|
||||
return QString("Cargo volume");
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
QVariant VesselsViewModel::data(const QModelIndex &index, int role) const {
|
||||
if (role == Qt::DisplayRole) {
|
||||
auto item = apparatus::instance()->get_object_subsystem()->vessels()[index.row()];
|
||||
bool s = false;
|
||||
auto harbor = apparatus::instance()->get_object_subsystem()->get_dpoint(item.harbor(), s);
|
||||
|
||||
int col = index.column();
|
||||
switch (col) {
|
||||
case 0:
|
||||
return QString::number(item.id());
|
||||
case 1:
|
||||
return (s? harbor->title() : "##ERROR##");
|
||||
case 2:
|
||||
return item.capacity();
|
||||
case 3:
|
||||
return item.cargo().length();
|
||||
case 4:
|
||||
int cvol = 0;
|
||||
foreach (auto cargo, item.cargo()) {
|
||||
cvol += cargo.volume();
|
||||
}
|
||||
return cvol;
|
||||
}
|
||||
|
||||
return "UNKNOWN FIELD";
|
||||
}
|
||||
|
||||
return QVariant();
|
||||
}
|
||||
|
||||
void VesselsViewModel::update() {
|
||||
dataChanged(QModelIndex(), QModelIndex());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue