123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QFrame>
- #include <QList>
- #include <QMainWindow>
- #include <QPropertyAnimation>
- #include <QPushButton>
- #include <QWidget>
- #include "../address/addressfactory.h"
- #include "../blastJob/blastoperationfactory.h"
- #include "../blastProject/blastprojectfactory.h"
- #include "../blastRecord/blastrecordfactory.h"
- #include "../detInfo/detinfofactory.h"
- #include "../equipment/equipmentfactory.h"
- #include "../homepage/homepagefactory.h"
- #include "../mqtt/mqttclient.h"
- #include "../serial/serialgpsthread.h"
- #include "../serial/serialtool.h"
- #include "../utils/global.h"
- #include "../worker/timeupdatethread.h"
- QT_BEGIN_NAMESPACE
- namespace Ui {
- class MainWindow;
- }
- QT_END_NAMESPACE
- class MainWindow : public QMainWindow {
- Q_OBJECT
- public:
- MainWindow(QWidget *parent = nullptr);
- ~MainWindow();
- void setMenubarTitle(const QString &newTitle);
- signals:
- void menubarTitleChanged(const QString &newTitle);
- void refreshPage();
- private slots:
- void onToggleButtonClicked();
- void onButtonClicked(QPushButton *button);
- void handleStoredGNRMCData(const RMCData &data);
- void onTimeUpdated(const QString &timeString);
- void updateProjectTitleLabel(const QString &newTitle);
- void handleRefreshPage();
- void handleMqttProjectsMessage(const QMqttMessage &message);
- private:
- void initializeAnimate();
- void setStyleSheets(QPushButton *selectedButton);
- void switchPage(QWidget *button);
- void initialMqttService();
- void onMqttConnected();
- void initialBtnSerial();
- void initialGPSSerial();
- void initDateTime();
- void onSerialToolCreated();
- void publishBlastProjects();
- QList<QString> findAllChildUuids(const QJsonArray &addressArray, const QString targetUuid);
- private:
- Ui::MainWindow *ui;
- SerialTool *serialTool;
- bool m_isMqttConnected = false;
- bool m_btnSerialInitialized = false;
- QPropertyAnimation *animate_leftFrame;
- QList<QWidget *> left_button_station;
- QMap<QWidget *, PageFactory *> pageFactories;
- QMap<QWidget *, QWidget *> createdPageByButton;
- TimeUpdateThread *timeThread;
- QString lat = "未知";
- QString lon = "未知";
- QPoint m_dragPosition;
- QString m_currentProjectTitle; // Stores the current project title
- void mousePressEvent(QMouseEvent *event);
- void mouseMoveEvent(QMouseEvent *event);
- };
- #endif // MAINWINDOW_H
|