#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; class MeasureAnalysisTreeView; QT_END_NAMESPACE class MainWindow : public QMainWindow { Q_OBJECT public: enum OutputInfoType { eInfo, eWarning, eError, eDebug }; Q_ENUM(OutputInfoType) public: static void OutputInfo(OutputInfoType out_type, const QString& ouput_info); static void ShowStatusBarMsg(const QString& msg); public slots: void onOutputInfo(int out_type, const QString& ouput_info); void onShowStatusBarMsg(const QString& msg); private: static MainWindow* _s_main_win; public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: void initMainWindow(); void initAction(); void applyStyleSheet(); void closeProject(const QString &project_name); signals: void newProject(const QString &project_name); protected: virtual void showEvent(QShowEvent* event) override; virtual void closeEvent(QCloseEvent* event) override; private slots: void on_action_nuclideLib_triggered(); private: QMutex _mutex_info_output; QPlainTextEdit* _plain_edit_info_output; QStatusBar* _status_bar; private: Ui::MainWindow *ui; ads::CDockManager* _dock_manager { nullptr }; ads::CDockAreaWidget* _central_dock_area { nullptr }; QAction* _action_central_dock_widget { nullptr }; MeasureAnalysisTreeView* _tree_measure_analysis { 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