85 lines
2.7 KiB
C++
85 lines
2.7 KiB
C++
#include "mainwindow.h"
|
|
#include "routeswidget.h"
|
|
#include "ticketswidget.h"
|
|
#include "printwidget.h"
|
|
#include "userswidget.h"
|
|
#include "database.h"
|
|
#include <QMenuBar>
|
|
#include <QMenu>
|
|
#include <QAction>
|
|
#include <QApplication>
|
|
|
|
MainWindow::MainWindow(const QString& username, const QString& role, QWidget* parent)
|
|
: QMainWindow(parent), m_username(username), m_role(role)
|
|
{
|
|
setWindowTitle("Система учета вокзала");
|
|
setMinimumSize(900, 600);
|
|
|
|
User user = Database::instance().getUser(username);
|
|
m_userId = user.id;
|
|
|
|
QMenuBar* menuBar = this->menuBar();
|
|
QMenu* menu = menuBar->addMenu("Меню");
|
|
|
|
QAction* routesAction = menu->addAction("Управление рейсами");
|
|
QAction* ticketsAction = menu->addAction("Продажа билетов");
|
|
QAction* printAction = menu->addAction("Печать билетов");
|
|
menu->addSeparator();
|
|
QAction* logoutAction = menu->addAction("Выйти");
|
|
|
|
connect(routesAction, &QAction::triggered, this, &MainWindow::showRoutes);
|
|
connect(ticketsAction, &QAction::triggered, this, &MainWindow::showTickets);
|
|
connect(printAction, &QAction::triggered, this, &MainWindow::showPrint);
|
|
connect(logoutAction, &QAction::triggered, this, &MainWindow::logout);
|
|
|
|
m_stack = new QStackedWidget(this);
|
|
setCentralWidget(m_stack);
|
|
|
|
m_routesWidget = new RoutesWidget(this);
|
|
m_ticketsWidget = new TicketsWidget(this);
|
|
m_printWidget = new PrintWidget(this);
|
|
m_usersWidget = new UsersWidget(this);
|
|
|
|
m_stack->addWidget(m_routesWidget);
|
|
m_stack->addWidget(m_ticketsWidget);
|
|
m_stack->addWidget(m_printWidget);
|
|
m_stack->addWidget(m_usersWidget);
|
|
|
|
m_statusLabel = new QLabel(QString("Пользователь: %1 | Роль: %2").arg(username, role));
|
|
statusBar()->addWidget(m_statusLabel);
|
|
|
|
if (role == "admin") {
|
|
QMenu* userMenu = new QMenu("Пользователи", menuBar);
|
|
QAction* usersAction = menu->insertMenu(printAction, userMenu);
|
|
QAction* manageUsersAction = userMenu->addAction("Управление пользователями");
|
|
connect(manageUsersAction, &QAction::triggered, this, &MainWindow::showUsers);
|
|
} else {
|
|
m_usersWidget->setVisible(false);
|
|
}
|
|
|
|
showRoutes();
|
|
}
|
|
|
|
void MainWindow::showRoutes() {
|
|
m_stack->setCurrentWidget(m_routesWidget);
|
|
}
|
|
|
|
void MainWindow::showTickets() {
|
|
m_ticketsWidget->refreshRoutes();
|
|
m_stack->setCurrentWidget(m_ticketsWidget);
|
|
}
|
|
|
|
void MainWindow::showPrint() {
|
|
m_printWidget->refreshRoutes();
|
|
m_stack->setCurrentWidget(m_printWidget);
|
|
}
|
|
|
|
void MainWindow::showUsers() {
|
|
m_usersWidget->refreshUsers();
|
|
m_stack->setCurrentWidget(m_usersWidget);
|
|
}
|
|
|
|
void MainWindow::logout() {
|
|
QApplication::quit();
|
|
}
|