Implemented tab switch for diff. user types

This commit is contained in:
Andrew nuark G 2020-12-27 19:44:12 +07:00
parent 8c9cb25c6f
commit b6fb78bb75
4 changed files with 29 additions and 6 deletions

View file

@ -57,7 +57,7 @@ AdminPanel::AdminPanel(QWidget *parent) : QMainWindow(parent), ui(new Ui::AdminP
ui->pb_dp_edit->setEnabled(selected.length() == 1); 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() { AdminPanel::~AdminPanel() {
@ -71,9 +71,29 @@ AdminPanel::~AdminPanel() {
AdminPanel& AdminPanel::set_user(const user_entity &user) { AdminPanel& AdminPanel::set_user(const user_entity &user) {
this->user = user; this->user = user;
ui->lab_user->setText(tr("Hello, **%1**").arg(user.login())); ui->lab_user->setText(tr("Hello, **%1**").arg(user.login()));
emit user_set();
return *this; 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() { void AdminPanel::on_logout_requested() {
this->close(); this->close();
} }

View file

@ -20,8 +20,7 @@ namespace Ui {
class AdminPanel; class AdminPanel;
} }
class AdminPanel : public QMainWindow class AdminPanel : public QMainWindow {
{
Q_OBJECT Q_OBJECT
user_entity user; user_entity user;
@ -36,7 +35,11 @@ public:
AdminPanel& set_user(const user_entity &user); AdminPanel& set_user(const user_entity &user);
signals:
void user_set();
private slots: private slots:
void on_user_set();
private: private:
Ui::AdminPanel *ui; Ui::AdminPanel *ui;

View file

@ -53,7 +53,7 @@
<enum>QTabWidget::Rounded</enum> <enum>QTabWidget::Rounded</enum>
</property> </property>
<property name="currentIndex"> <property name="currentIndex">
<number>2</number> <number>0</number>
</property> </property>
<property name="documentMode"> <property name="documentMode">
<bool>false</bool> <bool>false</bool>

View file

@ -57,8 +57,8 @@ void AuthWindow::on_auth_requested() {
((AdminPanel*) w)->set_user(*user); ((AdminPanel*) w)->set_user(*user);
} }
else if (user->role() == UserRole::DISPATCHER) { else if (user->role() == UserRole::DISPATCHER) {
// DispatcherPanel(nullptr, user).set_user(user).show(); w = new AdminPanel(nullptr);
return; ((AdminPanel*) w)->set_user(*user);
} }
else if (user->role() == UserRole::SKIPPER) { else if (user->role() == UserRole::SKIPPER) {
// SkipperPanel(nullptr, user).set_user(user).show(); // SkipperPanel(nullptr, user).set_user(user).show();