From f883fa98a1b79b6f4648f035d7d285856e8a3173 Mon Sep 17 00:00:00 2001 From: CinkaFox Date: Mon, 6 Apr 2026 12:20:43 +0300 Subject: [PATCH] - tweak: code management --- CMakeLists.txt | 26 ++++------------ main.cpp => src/main.cpp | 6 ++-- src/models/route.h | 13 ++++++++ src/models/ticket.h | 18 +++++++++++ src/models/user.h | 12 ++++++++ database.cpp => src/services/database.cpp | 2 -- database.h => src/services/database.h | 30 ++----------------- .../userinterfaces/widgets/printwidget.cpp | 4 +-- .../userinterfaces/widgets/printwidget.h | 0 .../userinterfaces/widgets/routeswidget.cpp | 2 +- .../userinterfaces/widgets/routeswidget.h | 0 .../userinterfaces/widgets/ticketswidget.cpp | 4 +-- .../userinterfaces/widgets/ticketswidget.h | 0 .../userinterfaces/widgets/userswidget.cpp | 2 +- .../userinterfaces/widgets/userswidget.h | 0 .../userinterfaces/windows/loginwindow.cpp | 3 +- .../userinterfaces/windows/loginwindow.h | 2 -- .../userinterfaces/windows/mainwindow.cpp | 21 ++++++------- .../userinterfaces/windows/mainwindow.h | 0 19 files changed, 71 insertions(+), 74 deletions(-) rename main.cpp => src/main.cpp (83%) create mode 100644 src/models/route.h create mode 100644 src/models/ticket.h create mode 100644 src/models/user.h rename database.cpp => src/services/database.cpp (99%) rename database.h => src/services/database.h (75%) rename printwidget.cpp => src/userinterfaces/widgets/printwidget.cpp (98%) rename printwidget.h => src/userinterfaces/widgets/printwidget.h (100%) rename routeswidget.cpp => src/userinterfaces/widgets/routeswidget.cpp (99%) rename routeswidget.h => src/userinterfaces/widgets/routeswidget.h (100%) rename ticketswidget.cpp => src/userinterfaces/widgets/ticketswidget.cpp (98%) rename ticketswidget.h => src/userinterfaces/widgets/ticketswidget.h (100%) rename userswidget.cpp => src/userinterfaces/widgets/userswidget.cpp (99%) rename userswidget.h => src/userinterfaces/widgets/userswidget.h (100%) rename loginwindow.cpp => src/userinterfaces/windows/loginwindow.cpp (98%) rename loginwindow.h => src/userinterfaces/windows/loginwindow.h (93%) rename mainwindow.cpp => src/userinterfaces/windows/mainwindow.cpp (76%) rename mainwindow.h => src/userinterfaces/windows/mainwindow.h (100%) diff --git a/CMakeLists.txt b/CMakeLists.txt index 0113112..3caa66d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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) diff --git a/main.cpp b/src/main.cpp similarity index 83% rename from main.cpp rename to src/main.cpp index 6b333b6..63ffcba 100644 --- a/main.cpp +++ b/src/main.cpp @@ -1,9 +1,9 @@ #include #include -#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); diff --git a/src/models/route.h b/src/models/route.h new file mode 100644 index 0000000..16f9805 --- /dev/null +++ b/src/models/route.h @@ -0,0 +1,13 @@ +#ifndef STATIONMANAGER_ROUTE_H +#define STATIONMANAGER_ROUTE_H +#include + +struct Route { + int id; + QString routeName; + QString departureTime; + double price; + int totalSeats; + int availableSeats; +}; +#endif //STATIONMANAGER_ROUTE_H \ No newline at end of file diff --git a/src/models/ticket.h b/src/models/ticket.h new file mode 100644 index 0000000..6825673 --- /dev/null +++ b/src/models/ticket.h @@ -0,0 +1,18 @@ +#ifndef STATIONMANAGER_TICKET_H +#define STATIONMANAGER_TICKET_H +#include + +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 diff --git a/src/models/user.h b/src/models/user.h new file mode 100644 index 0000000..885c676 --- /dev/null +++ b/src/models/user.h @@ -0,0 +1,12 @@ +#ifndef STATIONMANAGER_USER_H +#define STATIONMANAGER_USER_H +#include + +struct User { + int id; + QString username; + QString password; + QString role; +}; + +#endif //STATIONMANAGER_USER_H \ No newline at end of file diff --git a/database.cpp b/src/services/database.cpp similarity index 99% rename from database.cpp rename to src/services/database.cpp index b8829b2..672a3b0 100644 --- a/database.cpp +++ b/src/services/database.cpp @@ -2,8 +2,6 @@ #include #include #include -#include -#include #include Database& Database::instance() { diff --git a/database.h b/src/services/database.h similarity index 75% rename from database.h rename to src/services/database.h index ed2a864..f57f943 100644 --- a/database.h +++ b/src/services/database.h @@ -8,34 +8,10 @@ #include #include -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: diff --git a/printwidget.cpp b/src/userinterfaces/widgets/printwidget.cpp similarity index 98% rename from printwidget.cpp rename to src/userinterfaces/widgets/printwidget.cpp index 3e23ad4..2d292c6 100644 --- a/printwidget.cpp +++ b/src/userinterfaces/widgets/printwidget.cpp @@ -1,11 +1,12 @@ #include "printwidget.h" -#include "database.h" +#include "../../services/database.h" #include #include #include #include #include #include +#include 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 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; diff --git a/printwidget.h b/src/userinterfaces/widgets/printwidget.h similarity index 100% rename from printwidget.h rename to src/userinterfaces/widgets/printwidget.h diff --git a/routeswidget.cpp b/src/userinterfaces/widgets/routeswidget.cpp similarity index 99% rename from routeswidget.cpp rename to src/userinterfaces/widgets/routeswidget.cpp index 513297f..53bd69d 100644 --- a/routeswidget.cpp +++ b/src/userinterfaces/widgets/routeswidget.cpp @@ -1,5 +1,5 @@ #include "routeswidget.h" -#include "database.h" +#include "../../services/database.h" #include #include #include diff --git a/routeswidget.h b/src/userinterfaces/widgets/routeswidget.h similarity index 100% rename from routeswidget.h rename to src/userinterfaces/widgets/routeswidget.h diff --git a/ticketswidget.cpp b/src/userinterfaces/widgets/ticketswidget.cpp similarity index 98% rename from ticketswidget.cpp rename to src/userinterfaces/widgets/ticketswidget.cpp index 1fc6796..e7bfe37 100644 --- a/ticketswidget.cpp +++ b/src/userinterfaces/widgets/ticketswidget.cpp @@ -1,6 +1,6 @@ #include "ticketswidget.h" -#include "database.h" -#include "mainwindow.h" +#include "../../services/database.h" +#include "../windows/mainwindow.h" #include #include #include diff --git a/ticketswidget.h b/src/userinterfaces/widgets/ticketswidget.h similarity index 100% rename from ticketswidget.h rename to src/userinterfaces/widgets/ticketswidget.h diff --git a/userswidget.cpp b/src/userinterfaces/widgets/userswidget.cpp similarity index 99% rename from userswidget.cpp rename to src/userinterfaces/widgets/userswidget.cpp index 3376e1c..d9b8e51 100644 --- a/userswidget.cpp +++ b/src/userinterfaces/widgets/userswidget.cpp @@ -1,5 +1,5 @@ #include "userswidget.h" -#include "database.h" +#include "../../services/database.h" #include #include #include diff --git a/userswidget.h b/src/userinterfaces/widgets/userswidget.h similarity index 100% rename from userswidget.h rename to src/userinterfaces/widgets/userswidget.h diff --git a/loginwindow.cpp b/src/userinterfaces/windows/loginwindow.cpp similarity index 98% rename from loginwindow.cpp rename to src/userinterfaces/windows/loginwindow.cpp index 0e4f23a..70c01d7 100644 --- a/loginwindow.cpp +++ b/src/userinterfaces/windows/loginwindow.cpp @@ -1,6 +1,7 @@ #include "loginwindow.h" -#include "database.h" +#include "../../services/database.h" #include +#include LoginWindow::LoginWindow(QWidget* parent) : QDialog(parent), isRegistering(false) diff --git a/loginwindow.h b/src/userinterfaces/windows/loginwindow.h similarity index 93% rename from loginwindow.h rename to src/userinterfaces/windows/loginwindow.h index a2aa3af..508c590 100644 --- a/loginwindow.h +++ b/src/userinterfaces/windows/loginwindow.h @@ -3,9 +3,7 @@ #include #include -#include #include -#include #include class LoginWindow : public QDialog { diff --git a/mainwindow.cpp b/src/userinterfaces/windows/mainwindow.cpp similarity index 76% rename from mainwindow.cpp rename to src/userinterfaces/windows/mainwindow.cpp index 68bf325..6e9f3d5 100644 --- a/mainwindow.cpp +++ b/src/userinterfaces/windows/mainwindow.cpp @@ -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 #include #include @@ -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); diff --git a/mainwindow.h b/src/userinterfaces/windows/mainwindow.h similarity index 100% rename from mainwindow.h rename to src/userinterfaces/windows/mainwindow.h