#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "DocsManager.h" #include "manager_docs.h" #include "messageview.h" #include "parsebridge.h" #include "presentcontainerview.h" #include "projectview.h" #include "tools.h" #include "viewsession.h" #include "viewstackedbar.h" #include "welcomepanel.h" #include "xapp.h" #include #include #include #include #include #include #include class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(XApp *core, const QString &layout, QWidget *parent = nullptr); virtual ~MainWindow(); SplitFrame::ViewPresent *bindPresent() const; QString layoutName() const; private: QString layout_name_store; // model ============================================ XApp *const core_bind; Tools::StatusSyncCore *const sync_kernel; SplitFrame::ViewPresent *const present_host; Core::ViewSession *const session_service; // view ============================================= QToolBar *const actions_stack; Components::ViewStackedBar *const views_bar; Components::PresentContainerView *const center_frame; Components::ProjectView *const project_present; // 内部逻辑 =========================================== void initial_commandlist(Schedule::CommandsDispatcher *host); void initial_menubar(QMenuBar *mbar); void build_project_menu(QMenu *pmenu); void build_edit_menu(QMenu *pmenu); void build_view_menu(QMenu *pmenu); // QWidget interface protected: virtual void closeEvent(QCloseEvent *event) override; // QObject interface public: virtual bool eventFilter(QObject *watched, QEvent *event) override; }; #endif // MAINWINDOW_H