diff --git a/sea_transport/deliverypointeditdialog.cpp b/sea_transport/deliverypointeditdialog.cpp
index 187d1c5..c57d7e4 100644
--- a/sea_transport/deliverypointeditdialog.cpp
+++ b/sea_transport/deliverypointeditdialog.cpp
@@ -94,7 +94,7 @@ void DeliveryPointEditDialog::set_dpoint(dpoint_entity* dpoint, bool edit) {
void DeliveryPointEditDialog::accept() {
bool emptyTitle = ui->et_title->text().trimmed().isEmpty();
if (emptyTitle) {;
- QString message = "Some errors happend, while saving your note:"
+ QString message = "Some errors happend, while saving:"
"
- Title cannot be empty (all spaces - empty too)";
QMessageBox::critical(this, "Error", message);
return;
diff --git a/sea_transport/entities/cargo_entity.cpp b/sea_transport/entities/cargo_entity.cpp
index a5d136c..1fee72e 100644
--- a/sea_transport/entities/cargo_entity.cpp
+++ b/sea_transport/entities/cargo_entity.cpp
@@ -1,8 +1,10 @@
#include "cargo_entity.h"
+entity_id cargo_entity::__global_id = 0;
+
cargo_entity::cargo_entity() {
- this->_id += QRandomGenerator().generate64();
+ this->_id = ++cargo_entity::__global_id + QRandomGenerator().generate64();
}
cargo_entity::cargo_entity(const QString &title, unsigned int volume) : _title(title), _volume(volume) {
@@ -33,3 +35,11 @@ void cargo_entity::serialize(QDataStream &output) {
void cargo_entity::deserialize(QDataStream &input) {
input >> this->_id >> this->_title >> this->_volume;
}
+
+void cargo_entity::preloadGlobalId(entity_id gid) {
+ cargo_entity::__global_id = gid;
+}
+
+entity_id cargo_entity::GID() {
+ return cargo_entity::__global_id;
+}
diff --git a/sea_transport/entities/cargo_entity.h b/sea_transport/entities/cargo_entity.h
index 60d8c69..79f928d 100644
--- a/sea_transport/entities/cargo_entity.h
+++ b/sea_transport/entities/cargo_entity.h
@@ -10,6 +10,8 @@
class cargo_entity : public IEntity {
private:
+ static entity_id __global_id;
+
entity_id _id = 0;
QString _title;
unsigned int _volume = 50000;
@@ -24,6 +26,8 @@ public:
void serialize(QDataStream &output);
void deserialize(QDataStream &input);
+ static void preloadGlobalId(entity_id gid);
+ static entity_id GID();
};
#endif // CARGO_ENTITY_H
diff --git a/sea_transport/entities/dpoint_entity.cpp b/sea_transport/entities/dpoint_entity.cpp
index 55a682d..13b7873 100644
--- a/sea_transport/entities/dpoint_entity.cpp
+++ b/sea_transport/entities/dpoint_entity.cpp
@@ -1,8 +1,10 @@
#include "dpoint_entity.h"
+entity_id dpoint_entity::__global_id = 0;
+
dpoint_entity::dpoint_entity() {
- this->_id += QRandomGenerator().generate64();
+ this->_id = ++dpoint_entity::__global_id + QRandomGenerator().generate64();
}
dpoint_entity::dpoint_entity(entity_id dispatcher_id, const QString &title) : _dispatcher_id(dispatcher_id), _title(title) {
@@ -83,3 +85,11 @@ void dpoint_entity::deserialize(QDataStream &input) {
this->_storages[i].deserialize(input);
}
}
+
+void dpoint_entity::preloadGlobalId(entity_id gid) {
+ dpoint_entity::__global_id = gid;
+}
+
+entity_id dpoint_entity::GID() {
+ return dpoint_entity::__global_id;
+}
diff --git a/sea_transport/entities/dpoint_entity.h b/sea_transport/entities/dpoint_entity.h
index 0a536ba..75e3774 100644
--- a/sea_transport/entities/dpoint_entity.h
+++ b/sea_transport/entities/dpoint_entity.h
@@ -12,6 +12,8 @@
class dpoint_entity : public IEntity {
private:
+ static entity_id __global_id;
+
entity_id _id = 0;
entity_id _dispatcher_id;
QString _title;
@@ -33,6 +35,8 @@ public:
void serialize(QDataStream &output);
void deserialize(QDataStream &input);
+ static void preloadGlobalId(entity_id gid);
+ static entity_id GID();
};
#endif // DPOINT_ENTITY_H
diff --git a/sea_transport/entities/user_entity.cpp b/sea_transport/entities/user_entity.cpp
index 9c628e6..9d0e641 100644
--- a/sea_transport/entities/user_entity.cpp
+++ b/sea_transport/entities/user_entity.cpp
@@ -1,8 +1,10 @@
#include "user_entity.h"
+entity_id user_entity::__global_id = 0;
+
user_entity::user_entity() {
- this->_id += QRandomGenerator().generate64();
+ this->_id = ++user_entity::__global_id + QRandomGenerator().generate64();
}
user_entity::user_entity(const QString &login, const QString &password, UserRole role) : _login(login), _role(role) {
@@ -47,3 +49,11 @@ void user_entity::serialize(QDataStream &output) {
void user_entity::deserialize(QDataStream &input) {
input >> this->_id >> this->_login >> this->_role >> this->_pwd_hash;
}
+
+void user_entity::preloadGlobalId(entity_id gid) {
+ user_entity::__global_id = gid;
+}
+
+entity_id user_entity::GID() {
+ return user_entity::__global_id;
+}
diff --git a/sea_transport/entities/user_entity.h b/sea_transport/entities/user_entity.h
index 6ab2de9..f3387a1 100644
--- a/sea_transport/entities/user_entity.h
+++ b/sea_transport/entities/user_entity.h
@@ -15,6 +15,8 @@ enum class UserRole {
class user_entity : public IEntity {
private:
+ static entity_id __global_id;
+
entity_id _id = 0;
QString _login;
UserRole _role;
@@ -33,6 +35,8 @@ public:
void serialize(QDataStream &output);
void deserialize(QDataStream &input);
+ static void preloadGlobalId(entity_id gid);
+ static entity_id GID();
};
#endif // USER_ENTITY_H
diff --git a/sea_transport/system/apparatus.cpp b/sea_transport/system/apparatus.cpp
index 9aa878d..3e8e2c7 100644
--- a/sea_transport/system/apparatus.cpp
+++ b/sea_transport/system/apparatus.cpp
@@ -39,9 +39,12 @@ void apparatus::save() {
QDataStream stream(&f);
// saving GIDs
- entity_id vgid = vessel_entity::GID();
+ entity_id cgid = cargo_entity::GID();
+ entity_id dgid = dpoint_entity::GID();
entity_id sgid = storage_entity::GID();
- stream << vgid << sgid;
+ entity_id ugid = user_entity::GID();
+ entity_id vgid = vessel_entity::GID();
+ stream << cgid << dgid << sgid << ugid << vgid;
// serializing data
this->_auth_system->serialize_data(&stream);
@@ -52,17 +55,20 @@ void apparatus::save() {
void apparatus::load() {
if (_instance == nullptr) {
- throw std::runtime_error("HOW DU FUCK INSTANCE IS NULL????");
+ throw std::runtime_error("NO WAY INSTANCE IS NULL!");
}
QFile f(apparatus::filename);
f.open(QIODevice::ReadOnly);
QDataStream stream(&f);
// loading GIDs
- entity_id vgid, sgid = vgid = 0;
- stream >> vgid >> sgid;
- vessel_entity::preloadGlobalId(vgid);
+ entity_id cgid, dgid, sgid, ugid, vgid = ugid = sgid = dgid = cgid = 0;
+ stream >> cgid >> dgid >> sgid >> ugid >> vgid;
+ cargo_entity::preloadGlobalId(cgid);
+ dpoint_entity::preloadGlobalId(dgid);
storage_entity::preloadGlobalId(sgid);
+ user_entity::preloadGlobalId(ugid);
+ vessel_entity::preloadGlobalId(vgid);
// deserializing data
this->_auth_system->deserialize_data(&stream);
diff --git a/sea_transport/usereditdialog.cpp b/sea_transport/usereditdialog.cpp
index a84ba1b..3954ff9 100644
--- a/sea_transport/usereditdialog.cpp
+++ b/sea_transport/usereditdialog.cpp
@@ -52,7 +52,7 @@ void UserEditDialog::accept() {
errDlg.setTextFormat(Qt::RichText);
errDlg.setWindowTitle(tr("Error"));
errDlg.setIcon(QMessageBox::Critical);
- QString message = tr("Some errors happend, while saving your note:");
+ QString message = tr("Some errors happend, while saving:");
if (emptyTitle) {
message.append("
- Title cannot be empty (all spaces - empty too)");
}