HMI/include/mainwindow.h

76 lines
1.7 KiB
C
Raw Normal View History

2026-07-03 11:29:21 +08:00
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QComboBox>
#include <QWidgetAction>
2026-07-03 15:58:09 +08:00
// #include <QFileInfo>
2026-07-03 11:29:21 +08:00
#include "DockManager.h"
#include "DockAreaWidget.h"
#include "DockWidget.h"
2026-07-03 15:58:09 +08:00
#include "QDetailsView.h"
#include "graphicsItem/graphicsBaseItem.h"
2026-07-03 11:29:21 +08:00
QT_BEGIN_NAMESPACE
namespace Ui { class CMainWindow; }
QT_END_NAMESPACE
class QGraphicsItem;
2026-07-08 16:57:46 +08:00
class Document;
2026-07-03 11:29:21 +08:00
class DrawingPanel;
class GraphicElementsPanel;
class DesignerScene;
class CMainWindow : public QMainWindow
{
Q_OBJECT
public:
CMainWindow(QWidget *parent = nullptr);
~CMainWindow();
protected:
virtual void closeEvent(QCloseEvent* event) override;
virtual void changeEvent(QEvent* event) override;
private:
void initializeDockUi();
void initializeAction();
2026-07-08 16:57:46 +08:00
bool maybeSave();
void updateWindowTitle();
2026-07-03 11:29:21 +08:00
private slots:
2026-07-08 16:57:46 +08:00
void onAction_new();
void onAction_open();
void onAction_save();
void onAction_saveAs();
2026-07-03 11:29:21 +08:00
void onAction_zoomIn();
void onAction_zoomOut();
void onAction_zoomFit();
void onAction_createGroup();
void onAction_destroyGroup();
void onSignal_addItem(QGraphicsItem*);
void onSignal_deleteItem();
2026-07-03 15:58:09 +08:00
void onSignal_selectionChanged();
2026-07-03 11:29:21 +08:00
private:
2026-07-06 18:17:10 +08:00
QAction* m_pSavePerspectiveAction = nullptr;
QWidgetAction* m_pPerspectiveListAction = nullptr;
QComboBox* m_pPerspectiveComboBox = nullptr;
2026-07-03 11:29:21 +08:00
2026-07-08 16:57:46 +08:00
Document* m_pDocument;
2026-07-03 11:29:21 +08:00
Ui::CMainWindow *ui;
2026-07-03 15:58:09 +08:00
ads::CDockManager* m_pDockManager;
ads::CDockAreaWidget* m_pStatusDockArea;
ads::CDockWidget* m_pTimelineDockWidget;
2026-07-03 11:29:21 +08:00
DrawingPanel* m_pDrawingPanel;
GraphicElementsPanel* m_pGraphicElementsPanel;
2026-07-03 15:58:09 +08:00
QDetailsView* m_pPropertiesEditorView;
2026-07-03 11:29:21 +08:00
};
#endif // MAINWINDOW_H