- tweak: code management

This commit is contained in:
2026-04-06 12:20:43 +03:00
parent 590975b1f0
commit f883fa98a1
19 changed files with 71 additions and 74 deletions

View File

@@ -13,36 +13,20 @@ find_package(Qt6 COMPONENTS
Gui
Widgets
Sql
PrintSupport
REQUIRED)
set(SOURCES
main.cpp
database.cpp
loginwindow.cpp
mainwindow.cpp
routeswidget.cpp
ticketswidget.cpp
printwidget.cpp
userswidget.cpp
)
add_executable(StationManager)
set(HEADERS
database.h
loginwindow.h
mainwindow.h
routeswidget.h
ticketswidget.h
printwidget.h
userswidget.h
database.cpp
)
file(GLOB_RECURSE SOURCES "src/*.cpp")
target_sources(StationManager PRIVATE ${SOURCES})
add_executable(StationManager ${SOURCES} ${HEADERS})
target_link_libraries(StationManager
Qt::Core
Qt::Gui
Qt::Widgets
Qt::Sql
Qt::PrintSupport
)
if (WIN32 AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)

View File

@@ -1,9 +1,9 @@
#include <QApplication>
#include <QMessageBox>
#include "database.h"
#include "loginwindow.h"
#include "mainwindow.h"
#include "services/database.h"
#include "userinterfaces/windows/loginwindow.h"
#include "userinterfaces/windows/mainwindow.h"
int main(int argc, char* argv[]) {
QApplication a(argc, argv);

13
src/models/route.h Normal file
View File

@@ -0,0 +1,13 @@
#ifndef STATIONMANAGER_ROUTE_H
#define STATIONMANAGER_ROUTE_H
#include <qstring.h>
struct Route {
int id;
QString routeName;
QString departureTime;
double price;
int totalSeats;
int availableSeats;
};
#endif //STATIONMANAGER_ROUTE_H

18
src/models/ticket.h Normal file
View File

@@ -0,0 +1,18 @@
#ifndef STATIONMANAGER_TICKET_H
#define STATIONMANAGER_TICKET_H
#include <qstring.h>
struct Ticket {
int id;
int routeId;
QString routeName;
QString passengerName;
QString documentNumber;
int seatCount;
double totalPrice;
int sellerId;
QString sellerName;
QString saleDate;
};
#endif //STATIONMANAGER_TICKET_H

12
src/models/user.h Normal file
View File

@@ -0,0 +1,12 @@
#ifndef STATIONMANAGER_USER_H
#define STATIONMANAGER_USER_H
#include <qstring.h>
struct User {
int id;
QString username;
QString password;
QString role;
};
#endif //STATIONMANAGER_USER_H

View File

@@ -2,8 +2,6 @@
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlRecord>
#include <QFile>
#include <QTextStream>
#include <QDir>
Database& Database::instance() {

View File

@@ -8,34 +8,10 @@
#include <QFile>
#include <QCryptographicHash>
struct User {
int id;
QString username;
QString password;
QString role;
};
#include "../models/user.h"
#include "../models/route.h"
#include "../models/ticket.h"
struct Route {
int id;
QString routeName;
QString departureTime;
double price;
int totalSeats;
int availableSeats;
};
struct Ticket {
int id;
int routeId;
QString routeName;
QString passengerName;
QString documentNumber;
int seatCount;
double totalPrice;
int sellerId;
QString sellerName;
QString saleDate;
};
class Database {
public:

View File

@@ -1,11 +1,12 @@
#include "printwidget.h"
#include "database.h"
#include "../../services/database.h"
#include <QTableWidget>
#include <QHeaderView>
#include <QFileDialog>
#include <QMessageBox>
#include <QTextStream>
#include <QDateTime>
#include <QTextDocument>
PrintWidget::PrintWidget(QWidget* parent) : QWidget(parent) {
QVBoxLayout* mainLayout = new QVBoxLayout(this);
@@ -68,7 +69,6 @@ void PrintWidget::onRouteChanged(int index) {
void PrintWidget::loadTickets(int routeId) {
QVector<Ticket> tickets = Database::instance().getTicketsByRoute(routeId);
m_table->setRowCount(tickets.size());
qDebug() << "TICKET COUNT:" + std::to_string(tickets.length()) + " " + std::to_string(routeId);
double total = 0;
int totalSeats = 0;

View File

@@ -1,5 +1,5 @@
#include "routeswidget.h"
#include "database.h"
#include "../../services/database.h"
#include <QTableWidget>
#include <QHeaderView>
#include <QMessageBox>

View File

@@ -1,6 +1,6 @@
#include "ticketswidget.h"
#include "database.h"
#include "mainwindow.h"
#include "../../services/database.h"
#include "../windows/mainwindow.h"
#include <QTableWidget>
#include <QHeaderView>
#include <QMessageBox>

View File

@@ -1,5 +1,5 @@
#include "userswidget.h"
#include "database.h"
#include "../../services/database.h"
#include <QTableWidget>
#include <QHeaderView>
#include <QMessageBox>

View File

@@ -1,6 +1,7 @@
#include "loginwindow.h"
#include "database.h"
#include "../../services/database.h"
#include <QMessageBox>
#include <QPushButton>
LoginWindow::LoginWindow(QWidget* parent)
: QDialog(parent), isRegistering(false)

View File

@@ -3,9 +3,7 @@
#include <QDialog>
#include <QLineEdit>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QHBoxLayout>
class LoginWindow : public QDialog {

View File

@@ -1,9 +1,9 @@
#include "mainwindow.h"
#include "routeswidget.h"
#include "ticketswidget.h"
#include "printwidget.h"
#include "userswidget.h"
#include "database.h"
#include "../widgets/routeswidget.h"
#include "../widgets/ticketswidget.h"
#include "../widgets/printwidget.h"
#include "../widgets/userswidget.h"
#include "../../services/database.h"
#include <QMenuBar>
#include <QMenu>
#include <QAction>
@@ -21,10 +21,9 @@ MainWindow::MainWindow(const QString& username, const QString& role, QWidget* pa
QMenuBar* menuBar = this->menuBar();
QMenu* menu = menuBar->addMenu("Меню");
QAction* routesAction = menu->addAction("Управление рейсами");
QAction* ticketsAction = menu->addAction("Продажа билетов");
QAction* printAction = menu->addAction("Печать билетов");
menu->addSeparator();
QAction* routesAction = menuBar->addAction("Управление рейсами");
QAction* ticketsAction = menuBar->addAction("Продажа билетов");
QAction* printAction = menuBar->addAction("Печать билетов");
QAction* logoutAction = menu->addAction("Выйти");
connect(routesAction, &QAction::triggered, this, &MainWindow::showRoutes);
@@ -49,9 +48,7 @@ MainWindow::MainWindow(const QString& username, const QString& role, QWidget* pa
statusBar()->addWidget(m_statusLabel);
if (role == "admin") {
QMenu* userMenu = new QMenu("Пользователи", menuBar);
QAction* usersAction = menu->insertMenu(printAction, userMenu);
QAction* manageUsersAction = userMenu->addAction("Управление пользователями");
QAction* manageUsersAction = menu->addAction("Управление пользователями");
connect(manageUsersAction, &QAction::triggered, this, &MainWindow::showUsers);
} else {
m_usersWidget->setVisible(false);