diff --git a/sea_transport/adminpanel.cpp b/sea_transport/adminpanel.cpp
index 6095b12..c845cfd 100644
--- a/sea_transport/adminpanel.cpp
+++ b/sea_transport/adminpanel.cpp
@@ -57,7 +57,7 @@ AdminPanel::AdminPanel(QWidget *parent) : QMainWindow(parent), ui(new Ui::AdminP
ui->pb_dp_edit->setEnabled(selected.length() == 1);
});
- ui->tw_tabs->setCurrentIndex(0);
+ connect(this, &AdminPanel::user_set, this, &AdminPanel::on_user_set);
}
AdminPanel::~AdminPanel() {
@@ -71,9 +71,29 @@ AdminPanel::~AdminPanel() {
AdminPanel& AdminPanel::set_user(const user_entity &user) {
this->user = user;
ui->lab_user->setText(tr("Hello, **%1**").arg(user.login()));
+
+ emit user_set();
+
return *this;
}
+void AdminPanel::on_user_set() {
+ UserRole urole = this->user.role();
+ switch (urole) {
+ case UserRole::ADMINISTRATOR:
+ ui->tw_tabs->setCurrentIndex(0);
+ break;
+ case UserRole::DISPATCHER:
+ ui->tw_tabs->setTabVisible(0, false);
+ ui->tw_tabs->setCurrentIndex(1);
+ break;
+ case UserRole::SKIPPER:
+ QMessageBox::critical(this, "Error", "You shouldn't be here!");
+ close();
+ break;
+ }
+}
+
void AdminPanel::on_logout_requested() {
this->close();
}
diff --git a/sea_transport/adminpanel.h b/sea_transport/adminpanel.h
index 827c4b1..d3db004 100644
--- a/sea_transport/adminpanel.h
+++ b/sea_transport/adminpanel.h
@@ -20,8 +20,7 @@ namespace Ui {
class AdminPanel;
}
-class AdminPanel : public QMainWindow
-{
+class AdminPanel : public QMainWindow {
Q_OBJECT
user_entity user;
@@ -36,7 +35,11 @@ public:
AdminPanel& set_user(const user_entity &user);
+signals:
+ void user_set();
+
private slots:
+ void on_user_set();
private:
Ui::AdminPanel *ui;
diff --git a/sea_transport/adminpanel.ui b/sea_transport/adminpanel.ui
index e472f2f..1430a81 100644
--- a/sea_transport/adminpanel.ui
+++ b/sea_transport/adminpanel.ui
@@ -53,7 +53,7 @@
QTabWidget::Rounded
- 2
+ 0
false
diff --git a/sea_transport/authwindow.cpp b/sea_transport/authwindow.cpp
index 271365f..1002bdb 100644
--- a/sea_transport/authwindow.cpp
+++ b/sea_transport/authwindow.cpp
@@ -57,8 +57,8 @@ void AuthWindow::on_auth_requested() {
((AdminPanel*) w)->set_user(*user);
}
else if (user->role() == UserRole::DISPATCHER) {
- // DispatcherPanel(nullptr, user).set_user(user).show();
- return;
+ w = new AdminPanel(nullptr);
+ ((AdminPanel*) w)->set_user(*user);
}
else if (user->role() == UserRole::SKIPPER) {
// SkipperPanel(nullptr, user).set_user(user).show();