diff --git a/sea_transport/adminpanel.cpp b/sea_transport/adminpanel.cpp
index 74a4e4a..4ea9230 100644
--- a/sea_transport/adminpanel.cpp
+++ b/sea_transport/adminpanel.cpp
@@ -80,6 +80,8 @@ void AdminPanel::on_logout_requested() {
void AdminPanel::on_vessel_add_edit(bool /*edit*/) {
+
+ vvm->update();
}
void AdminPanel::on_vessel_remove() {
@@ -99,8 +101,8 @@ void AdminPanel::on_vessel_remove() {
}
foreach (auto mIdx, selected) {
- int idx = mIdx.row();
- qDebug() << idx << ' ' << mIdx.data() << '\n';
+ entity_id oid = mIdx.data().toULongLong();
+ apparatus::instance()->get_object_subsystem()->remove_vessel(oid);
}
vvm->update();
@@ -210,7 +212,10 @@ void AdminPanel::on_delivery_point_add_edit(bool edit) {
if (edit) {
bool success;
auto dp = apparatus::instance()->get_object_subsystem()->get_dpoint(dpoint.id(), success);
- if (!success) {
+ if (success) {
+ QMessageBox::information(this, "Info", "Successfully edited delivery point");
+ }
+ else {
QMessageBox::critical(this, "Error", "Error editing delivery point");
return;
}
@@ -219,7 +224,14 @@ void AdminPanel::on_delivery_point_add_edit(bool edit) {
dp->set_storages(data->storages());
}
else {
- apparatus::instance()->get_object_subsystem()->add_dpoint(*data);
+ bool success = apparatus::instance()->get_object_subsystem()->add_dpoint(*data);
+ if (success) {
+ QMessageBox::information(this, "Info", "Successfully created delivery point");
+ }
+ else {
+ QMessageBox::critical(this, "Error", "Error creating delivery point");
+ return;
+ }
}
dpvm->update();
diff --git a/sea_transport/cargoeditdialog.ui b/sea_transport/cargoeditdialog.ui
index da14928..4b2f8bf 100644
--- a/sea_transport/cargoeditdialog.ui
+++ b/sea_transport/cargoeditdialog.ui
@@ -43,7 +43,7 @@
1
- 500
+ 500000
diff --git a/sea_transport/deliverypointeditdialog.cpp b/sea_transport/deliverypointeditdialog.cpp
index 922a549..187d1c5 100644
--- a/sea_transport/deliverypointeditdialog.cpp
+++ b/sea_transport/deliverypointeditdialog.cpp
@@ -21,16 +21,7 @@ DeliveryPointEditDialog::DeliveryPointEditDialog(QWidget *parent) : QDialog(pare
foreach (auto mIdx, sel) {
auto cuid = mIdx.data().toString().toULongLong();
- auto st = this->_dp->storages();
-
- for (int i = 0; i < st.length(); i++) {
- if (st[i].id() == cuid) {
- st.removeAt(i);
- break;
- }
- }
-
- this->_dp->set_storages(st);
+ this->_dp->remove_storage(cuid);
}
this->update_list();
});
@@ -73,7 +64,6 @@ void DeliveryPointEditDialog::on_storage_edit_add(bool edit) {
if (edit) {
int idx = selected[0].row();
stor = this->_dp->storages()[idx];
- this->_dp->remove_storage(stor.id());
}
StorageEditDialog sed(this);
diff --git a/sea_transport/deliverypointeditdialog.ui b/sea_transport/deliverypointeditdialog.ui
index 4797b21..c330679 100644
--- a/sea_transport/deliverypointeditdialog.ui
+++ b/sea_transport/deliverypointeditdialog.ui
@@ -13,7 +13,7 @@
Dialog
-
+
-
@@ -44,43 +44,52 @@
-
-
-
- QAbstractItemView::NoEditTriggers
+
+
+ Storages IDs
+
+
-
+
+
+ QAbstractItemView::NoEditTriggers
+
+
+
+ -
+
+
-
+
+
+ Add storage
+
+
+
+ -
+
+
+ false
+
+
+ Edit storage
+
+
+
+ -
+
+
+ false
+
+
+ Remove storage
+
+
+
+
+
+
- -
-
-
-
-
-
- Add storage
-
-
-
- -
-
-
- false
-
-
- Edit storage
-
-
-
- -
-
-
- false
-
-
- Remove storage
-
-
-
-
-
-
diff --git a/sea_transport/entities/cargo_entity.cpp b/sea_transport/entities/cargo_entity.cpp
index 4104050..9835444 100644
--- a/sea_transport/entities/cargo_entity.cpp
+++ b/sea_transport/entities/cargo_entity.cpp
@@ -6,6 +6,7 @@ cargo_entity::cargo_entity(const QString &title, unsigned int volume) : _title(t
for (auto bit : hash) {
this->_id += bit;
}
+ this->_id += QRandomGenerator().generate64();
}
entity_id cargo_entity::id() const {
diff --git a/sea_transport/entities/cargo_entity.h b/sea_transport/entities/cargo_entity.h
index 8d84b3a..9b69169 100644
--- a/sea_transport/entities/cargo_entity.h
+++ b/sea_transport/entities/cargo_entity.h
@@ -4,6 +4,7 @@
#include "IEntity.h"
#include
+#include
#include
diff --git a/sea_transport/entities/dpoint_entity.cpp b/sea_transport/entities/dpoint_entity.cpp
index 01b164b..04d2f32 100644
--- a/sea_transport/entities/dpoint_entity.cpp
+++ b/sea_transport/entities/dpoint_entity.cpp
@@ -6,6 +6,7 @@ dpoint_entity::dpoint_entity(entity_id dispatcher_id, const QString &title) : _d
for (auto bit : hash) {
this->_id += bit;
}
+ this->_id += QRandomGenerator().generate64();
}
entity_id dpoint_entity::id() const {
@@ -33,9 +34,20 @@ void dpoint_entity::set_storages(QVector storages) {
}
void dpoint_entity::remove_storage(entity_id sid) {
- std::remove_if(this->_storages.begin(), this->_storages.end(), [sid](storage_entity ent) {
- return ent.id() == sid;
- });
+// std::remove_if(this->_storages.begin(), this->_storages.end(), [sid](storage_entity ent) {
+// return ent.id() == sid;
+// });
+
+ QVector st(this->_storages);
+
+ for (int i = 0; i < st.length(); i++) {
+ if (st[i].id() == sid) {
+ st.removeAt(i);
+ break;
+ }
+ }
+
+ this->set_storages(st);
}
void dpoint_entity::add_storage(storage_entity ent) {
diff --git a/sea_transport/entities/dpoint_entity.h b/sea_transport/entities/dpoint_entity.h
index 8c17537..202e002 100644
--- a/sea_transport/entities/dpoint_entity.h
+++ b/sea_transport/entities/dpoint_entity.h
@@ -6,6 +6,7 @@
#include
#include
+#include
#include
diff --git a/sea_transport/entities/storage_entity.cpp b/sea_transport/entities/storage_entity.cpp
index 49a381d..96909e6 100644
--- a/sea_transport/entities/storage_entity.cpp
+++ b/sea_transport/entities/storage_entity.cpp
@@ -4,7 +4,7 @@
entity_id storage_entity::__global_id = 0;
storage_entity::storage_entity(unsigned int capacity) : _capacity(capacity) {
- this->_id = ++storage_entity::__global_id;
+ this->_id = ++storage_entity::__global_id + QRandomGenerator().generate64();
}
diff --git a/sea_transport/entities/storage_entity.h b/sea_transport/entities/storage_entity.h
index 68030a2..4d502f2 100644
--- a/sea_transport/entities/storage_entity.h
+++ b/sea_transport/entities/storage_entity.h
@@ -5,7 +5,7 @@
#include "cargo_entity.h"
#include
-#include
+#include
class storage_entity : public IEntity {
@@ -13,7 +13,7 @@ private:
static entity_id __global_id;
entity_id _id;
- unsigned int _capacity;
+ unsigned int _capacity = 500000;
QVector _cargo;
public:
diff --git a/sea_transport/entities/user_entity.cpp b/sea_transport/entities/user_entity.cpp
index a54471f..a213906 100644
--- a/sea_transport/entities/user_entity.cpp
+++ b/sea_transport/entities/user_entity.cpp
@@ -2,6 +2,10 @@
user_entity::user_entity(const QString &login, const QString &password, UserRole role) : _login(login), _role(role) {
this->_pwd_hash = QCryptographicHash::hash(password.toLocal8Bit(), QCryptographicHash::Sha3_256);
+ foreach (auto bit, this->_pwd_hash) {
+ this->_id += bit;
+ }
+ this->_id += QRandomGenerator().generate64();
}
entity_id user_entity::id() const {
diff --git a/sea_transport/entities/user_entity.h b/sea_transport/entities/user_entity.h
index 1bf4203..7f875a7 100644
--- a/sea_transport/entities/user_entity.h
+++ b/sea_transport/entities/user_entity.h
@@ -4,6 +4,7 @@
#include "IEntity.h"
#include
+#include
#include
diff --git a/sea_transport/entities/vessel_entity.cpp b/sea_transport/entities/vessel_entity.cpp
index 45ce0a0..4739ee4 100644
--- a/sea_transport/entities/vessel_entity.cpp
+++ b/sea_transport/entities/vessel_entity.cpp
@@ -4,7 +4,7 @@
entity_id vessel_entity::__global_id = 0;
vessel_entity::vessel_entity(entity_id skipper_id, entity_id harbor_id, unsigned int capacity) : _skipper_id(skipper_id), _harbor_id(harbor_id), _capacity(capacity) {
- this->_id = ++vessel_entity::__global_id;
+ this->_id = ++vessel_entity::__global_id + QRandomGenerator().generate64();
}
entity_id vessel_entity::id() const {
diff --git a/sea_transport/entities/vessel_entity.h b/sea_transport/entities/vessel_entity.h
index 9b72c90..48c2bbc 100644
--- a/sea_transport/entities/vessel_entity.h
+++ b/sea_transport/entities/vessel_entity.h
@@ -5,6 +5,8 @@
#include "cargo_entity.h"
#include "dpoint_entity.h"
+#include
+
class vessel_entity : public IEntity {
private:
diff --git a/sea_transport/storageeditdialog.cpp b/sea_transport/storageeditdialog.cpp
index 8395ae9..b8eaefb 100644
--- a/sea_transport/storageeditdialog.cpp
+++ b/sea_transport/storageeditdialog.cpp
@@ -5,14 +5,14 @@ StorageEditDialog::StorageEditDialog(QWidget *parent) : QDialog(parent), ui(new
ui->setupUi(this);
this->cvm = new CargoViewModel(this);
- ui->lv_cargo->setModel(this->cvm);
+ ui->tv_cargo->setModel(this->cvm);
- connect(ui->lv_cargo->selectionModel(), &QItemSelectionModel::selectionChanged, [this](const QItemSelection &selected) {
+ connect(ui->tv_cargo->selectionModel(), &QItemSelectionModel::selectionChanged, [this](const QItemSelection &selected) {
ui->pb_cargo_remove->setEnabled(selected.length() > 0);
});
connect(ui->pb_cargo_remove, &QPushButton::clicked, [this]() {
- auto sel = ui->lv_cargo->selectionModel()->selectedRows();
+ auto sel = ui->tv_cargo->selectionModel()->selectedRows();
if (sel.length() == 0) {
return;
}
@@ -44,6 +44,8 @@ void StorageEditDialog::set_storage(storage_entity *ent, bool edit) {
ui->sb_capacity->setValue(ent->capacity());
this->cvm->set_data(this->_storage->cargo());
}
+
+ ui->lab_capacity_current->setText(QString::number(this->_storage->capacity()));
}
void StorageEditDialog::on_cargo_add() {
diff --git a/sea_transport/storageeditdialog.ui b/sea_transport/storageeditdialog.ui
index ac1e467..89c6b29 100644
--- a/sea_transport/storageeditdialog.ui
+++ b/sea_transport/storageeditdialog.ui
@@ -13,13 +13,13 @@
Dialog
-
+
-
-
- Capacity:
+ Capacity (new):
@@ -29,35 +29,58 @@
1
- 500
+ 500000
+
+
+
+ -
+
+
+ Capacity (current):
+
+
+
+ -
+
+
+ 0
-
-
-
- -
-
-
-
-
-
- Add cargo
-
-
-
- -
-
-
- false
-
-
- Remove cargo
-
-
-
-
+
+
+ Storage cargo
+
+
+ -
+
+
+ -
+
+
-
+
+
+ Add cargo
+
+
+
+ -
+
+
+ false
+
+
+ Remove cargo
+
+
+
+
+
+
+
-