#ifndef MAINWINDOW_H #define MAINWINDOW_H #include "DocsManager.h" #include "manager_docs.h" #include "messagespresent.h" #include "parsebridge.h" #include "presentcontainer.h" #include "projectpresent.h" #include "tools.h" #include "welcomepanel.h" #include #include #include #include #include #include class MainWindow : public QMainWindow, public Components::PresentHost { Q_OBJECT public: MainWindow(QWidget *parent = nullptr); ~MainWindow(); private: Tools::StatusSyncCore *const sync_kernel; bridge::ParseBridge *const parse_service; QSplitter *const split_first; QSplitter *const split_second; QSplitter *const split_third; Project::ProjectManager *const project_manager; // containers ======================================= Components::PresentHost *const center_frame; QTabWidget *const messages_frame; // model ============================================ DataModel::DocumentsManager *const active_docscollect; // view ============================================= Components::WelcomePanel *const welcome_list; Components::MessagesPresent *const errors_present; Components::ProjectPresent *const project_present; // 内部逻辑 =========================================== void initial_menubar(QMenuBar *mbar); void initial_commandlist(Schedule::CommandsDispatcher *host); // PresentContainer interface public: virtual QWidget *hostWidget() const override; virtual void append(MakeTools::PresentBase *ins) override; virtual bool active(const MakeTools::PresentBase *ins) override; virtual void remove(const MakeTools::PresentBase *ins) override; virtual bool contains(const MakeTools::PresentBase *ins) const override; // QWidget interface protected: virtual void closeEvent(QCloseEvent *event) override; // QObject interface public: virtual bool eventFilter(QObject *watched, QEvent *event) override; }; #endif // MAINWINDOW_H