#ifndef MAINWINDOW_H #define MAINWINDOW_H #include #include QT_BEGIN_NAMESPACE namespace Ui { class MainWindow; } namespace ads { class CDockManager; class CDockAreaWidget; class CDockWidget; } class QPlainTextEdit; namespace MeasureAnalysisTree { class TreeWidget; class MeasureAnalysisActions; } QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: enum OutputInfoType { eInfo, eWarning, eError, eDebug }; Q_ENUM(OutputInfoType) public slots: static void OutputInfo(OutputInfoType out_type, const QString& ouput_info); static void ShowStatusBarMsg(const QString& msg); private: static QMutex _s_mutex_info_output; static QPlainTextEdit* _s_plain_edit_info_output; static QStatusBar* _s_status_bar; public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: void initMainWindow(); void initAction(); void applyStyleSheet(); void AddProjectModelToTreeWidget(); protected: virtual void closeEvent(QCloseEvent* event) override; private: Ui::MainWindow *ui; ads::CDockManager* _dock_manager { nullptr }; ads::CDockAreaWidget* _central_dock_area { nullptr }; QAction* _action_central_dock_widget { nullptr }; MeasureAnalysisTree::TreeWidget* _tree_measure_analysis { nullptr }; MeasureAnalysisTree::MeasureAnalysisActions* _tree_actions { nullptr }; ads::CDockWidget* _dockw_measure_analysis_tree { nullptr }; QMenu* _menu_view_data_table_list { nullptr }; QMenu* _menu_view_analysis_view_list { nullptr }; }; #endif // MAINWINDOW_H