diff --git a/WordsIDE/DocsManager.cpp b/WordsIDE/DocsManager.cpp index ca1ffdc..bf1645b 100644 --- a/WordsIDE/DocsManager.cpp +++ b/WordsIDE/DocsManager.cpp @@ -8,5 +8,6 @@ using namespace Components; using namespace Core; +using namespace Presents; FilePresent::FilePresent(QObject *parent) : QObject(parent) {} diff --git a/WordsIDE/DocsManager.h b/WordsIDE/DocsManager.h index 71ee3d6..1bb3b5f 100644 --- a/WordsIDE/DocsManager.h +++ b/WordsIDE/DocsManager.h @@ -11,7 +11,7 @@ namespace Core { class DocumentsManager; } -namespace Components { +namespace Presents { /** * @brief 内容编辑和呈现接口 */ @@ -121,8 +121,8 @@ namespace Components { #define DECL_PRESENT(type) \ private: \ static QString file_suffix; \ - friend class Components::TypedPresentFactory; + friend class Presents::TypedPresentFactory; -} // namespace Components +} // namespace Presents #endif // DOCSMANAGER_H diff --git a/WordsIDE/WordsIDE.pro b/WordsIDE/WordsIDE.pro index b4be8f0..0887ab6 100644 --- a/WordsIDE/WordsIDE.pro +++ b/WordsIDE/WordsIDE.pro @@ -26,10 +26,10 @@ SOURCES += \ main.cpp \ mainwindow.cpp \ manager_docs.cpp \ - messagespresent.cpp \ + messageview.cpp \ parsebridge.cpp \ presentcontainer.cpp \ - projectpresent.cpp \ + projectview.cpp \ route.cpp \ srcedit_defaulttext.cpp \ srcedit_storyboard.cpp \ @@ -47,11 +47,11 @@ HEADERS += \ # keywordshighlighter.h \ mainwindow.h \ manager_docs.h \ - messagespresent.h \ + messageview.h \ opstream.h \ parsebridge.h \ presentcontainer.h \ - projectpresent.h \ + projectview.h \ route.h \ srcedit_defaulttext.h \ srcedit_storyboard.h \ diff --git a/WordsIDE/command_list.cpp b/WordsIDE/command_list.cpp index e522ecd..249ab2f 100644 --- a/WordsIDE/command_list.cpp +++ b/WordsIDE/command_list.cpp @@ -6,6 +6,7 @@ using namespace CommandList; using namespace Components; using namespace Core; +using namespace Presents; NewProject::NewProject(const QDir &dir, const QString &name) : dir_symbo(dir), name_val(name) {} diff --git a/WordsIDE/command_list.h b/WordsIDE/command_list.h index 0cf83eb..3e74a3d 100644 --- a/WordsIDE/command_list.h +++ b/WordsIDE/command_list.h @@ -7,6 +7,8 @@ namespace Components { class PresentHost; +} +namespace Presents { class FilePresent; } @@ -115,7 +117,7 @@ namespace CommandList { // 切换视图组件 ================================================================ class CompVisible : public Schedule::GeCommand { public: - CompVisible(Components::PresentHost *host, Components::FilePresent *target, bool state); + CompVisible(Components::PresentHost *host, Presents::FilePresent *target, bool state); // GeCommand interface public: @@ -126,7 +128,7 @@ namespace CommandList { private: Components::PresentHost *host_ins; - Components::FilePresent *target_ins; + Presents::FilePresent *target_ins; Core::Route path; bool state_val; }; diff --git a/WordsIDE/contentpresenttest.h b/WordsIDE/contentpresenttest.h index a4232c2..34b3576 100644 --- a/WordsIDE/contentpresenttest.h +++ b/WordsIDE/contentpresenttest.h @@ -9,10 +9,10 @@ namespace TestCase { { Q_OBJECT public: - ContentPresentTest(Components::FilePresent *view); + ContentPresentTest(Presents::FilePresent *view); private: - Components::FilePresent *inst; + Presents::FilePresent *inst; private slots: void test_Suffixes(); diff --git a/WordsIDE/mainwindow.cpp b/WordsIDE/mainwindow.cpp index 5970749..d58417c 100644 --- a/WordsIDE/mainwindow.cpp +++ b/WordsIDE/mainwindow.cpp @@ -39,7 +39,7 @@ MainWindow::MainWindow(const QString &layout, QWidget *parent) session_service(new ViewSession(XApp::global_configration, this)), views_bar(new ViewStackedBar(present_host, this)), center_frame(new PresentContainer(present_host, this)), - project_present(new ProjectPresent(present_host, XApp::disp_core, active_docscollect, this)) { + project_present(new ProjectView(present_host, XApp::disp_core, active_docscollect, this)) { QApplication::instance()->installEventFilter(this); initial_commandlist(XApp::disp_core); diff --git a/WordsIDE/mainwindow.h b/WordsIDE/mainwindow.h index 8e18a81..556c2d6 100644 --- a/WordsIDE/mainwindow.h +++ b/WordsIDE/mainwindow.h @@ -3,13 +3,13 @@ #include "DocsManager.h" #include "manager_docs.h" -#include "messagespresent.h" +#include "messageview.h" #include "parsebridge.h" #include "presentcontainer.h" -#include "projectpresent.h" +#include "projectview.h" #include "tools.h" -#include "viewstackedbar.h" #include "viewsession.h" +#include "viewstackedbar.h" #include "welcomepanel.h" #include #include @@ -42,7 +42,7 @@ private: // view ============================================= Components::ViewStackedBar *const views_bar; Components::PresentContainer *const center_frame; - Components::ProjectPresent *const project_present; + Components::ProjectView *const project_present; // 内部逻辑 =========================================== void initial_menubar(QMenuBar *mbar); diff --git a/WordsIDE/manager_docs.cpp b/WordsIDE/manager_docs.cpp index 263661f..823675f 100644 --- a/WordsIDE/manager_docs.cpp +++ b/WordsIDE/manager_docs.cpp @@ -5,6 +5,7 @@ using namespace Components; using namespace Core; using namespace Config; +using namespace Presents; DocumentsManager::DocumentsManager(Project::ProjectManager *project) : pjtins(project) { initContentViewPlugins(); } diff --git a/WordsIDE/manager_docs.h b/WordsIDE/manager_docs.h index a64929a..a8674d7 100644 --- a/WordsIDE/manager_docs.h +++ b/WordsIDE/manager_docs.h @@ -27,29 +27,29 @@ namespace Components { * @param vins * @return */ - virtual bool avaliable(FilePresent *vins) = 0; + virtual bool avaliable(Presents::FilePresent *vins) = 0; /** * @brief 添加内容展示实例 * @param ins */ - virtual void append(FilePresent *ins) = 0; + virtual void append(Presents::FilePresent *ins) = 0; /** * @brief 激活内容展示实例 * @param ins */ - virtual bool active(const FilePresent *ins) = 0; + virtual bool active(const Presents::FilePresent *ins) = 0; /** * @brief 移除内容展示实例 * @param ins */ - virtual void remove(const FilePresent *ins) = 0; + virtual void remove(const Presents::FilePresent *ins) = 0; /** * @brief 是否包含指定 * @param ins * @return */ - virtual bool contains(const FilePresent *ins) const = 0; + virtual bool contains(const Presents::FilePresent *ins) const = 0; }; } // namespace Components @@ -87,8 +87,8 @@ namespace Core { * @brief 注册插件类型 * @param ins 插件工厂实例 */ - template void registPresentType(Components::TypedPresentFactory *ins) { - auto suffix = Components::TypedPresentFactory::suffix(); + template void registPresentType(Presents::TypedPresentFactory *ins) { + auto suffix = Presents::TypedPresentFactory::suffix(); factory_map[suffix] = ins; } @@ -161,13 +161,13 @@ namespace Core { * @param ins 打开的实例 * @return 实例路径 */ - Core::Route convertPresent(Components::FilePresent *ins) const; + Core::Route convertPresent(Presents::FilePresent *ins) const; /** * @brief 获取打开的内容展示实例,如果指向未打开的节点或无效文件节点,返回null * @param node_path 节点路径 * @return null或打开的展示实例 */ - Components::FilePresent *convertPresent(const Core::Route &node_path); + Presents::FilePresent *convertPresent(const Core::Route &node_path); /** * @brief 获取打开的活跃文档 @@ -191,8 +191,8 @@ namespace Core { Project::ProjectManager *pjtins; QList present_ui; - QHash factory_map; - QHash doc_openning; + QHash factory_map; + QHash doc_openning; }; } // namespace Core diff --git a/WordsIDE/messagespresent.cpp b/WordsIDE/messagespresent.cpp deleted file mode 100644 index b78872d..0000000 --- a/WordsIDE/messagespresent.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "messagespresent.h" - -#include - -using namespace Components; -using namespace SplitFrame; - -QHash MessagesPresent::panel_map; - -MessagesPresent::MessagesPresent(SplitFrame::ViewPresent *ins, QStandardItemModel *base, QWidget *parent) - : FnWrap(ins, parent), ui_present(new QTableView(this)), items_present(base) { - auto layout = new QVBoxLayout(this); - layout->setMargin(0); - layout->setSpacing(0); - - layout->addWidget(ui_present); - ui_present->setModel(items_present); -} - -MessagesPresent *MessagesPresent::gen(SplitFrame::ViewPresent *host, QStandardItemModel *base, QWidget *parent) { - if (panel_map.contains(host)) - return panel_map[host]; - - auto vins = new MessagesPresent(host, base, parent); - panel_map[host] = vins; - return vins; -} diff --git a/WordsIDE/messagespresent.h b/WordsIDE/messagespresent.h deleted file mode 100644 index ba71596..0000000 --- a/WordsIDE/messagespresent.h +++ /dev/null @@ -1,29 +0,0 @@ -#ifndef MESSAGEPRESENT_H -#define MESSAGEPRESENT_H - -#include "DocsManager.h" -#include -#include -#include -#include - -namespace Components { - /** - * @brief 显示各种提示信息 - */ - class MessagesPresent : public SplitFrame::FnWrap { - public: - virtual ~MessagesPresent() = default; - - static MessagesPresent *gen(SplitFrame::ViewPresent *host, QStandardItemModel *base, QWidget *parent = nullptr); - - private: - MessagesPresent(SplitFrame::ViewPresent *ins, QStandardItemModel *base, QWidget *parent = nullptr); - - QTableView *const ui_present; - QStandardItemModel *const items_present; - static QHash panel_map; - }; -} // namespace Components - -#endif // MESSAGEPRESENT_H diff --git a/WordsIDE/messageview.cpp b/WordsIDE/messageview.cpp new file mode 100644 index 0000000..2c7c1c0 --- /dev/null +++ b/WordsIDE/messageview.cpp @@ -0,0 +1,27 @@ +#include "messageview.h" + +#include + +using namespace Components; +using namespace SplitFrame; + +QHash MessageView::panel_map; + +MessageView::MessageView(SplitFrame::ViewPresent *ins, QStandardItemModel *base, QWidget *parent) + : FnWrap(ins, parent), ui_present(new QTableView(this)), items_present(base) { + auto layout = new QVBoxLayout(this); + layout->setMargin(0); + layout->setSpacing(0); + + layout->addWidget(ui_present); + ui_present->setModel(items_present); +} + +MessageView *MessageView::gen(SplitFrame::ViewPresent *host, QStandardItemModel *base, QWidget *parent) { + if (panel_map.contains(host)) + return panel_map[host]; + + auto vins = new MessageView(host, base, parent); + panel_map[host] = vins; + return vins; +} diff --git a/WordsIDE/messageview.h b/WordsIDE/messageview.h new file mode 100644 index 0000000..0bf4800 --- /dev/null +++ b/WordsIDE/messageview.h @@ -0,0 +1,29 @@ +#ifndef MESSAGEVIEW_H +#define MESSAGEVIEW_H + +#include "DocsManager.h" +#include +#include +#include +#include + +namespace Components { + /** + * @brief 显示各种提示信息 + */ + class MessageView : public SplitFrame::FnWrap { + public: + virtual ~MessageView() = default; + + static MessageView *gen(SplitFrame::ViewPresent *host, QStandardItemModel *base, QWidget *parent = nullptr); + + private: + MessageView(SplitFrame::ViewPresent *ins, QStandardItemModel *base, QWidget *parent = nullptr); + + QTableView *const ui_present; + QStandardItemModel *const items_present; + static QHash panel_map; + }; +} // namespace Components + +#endif // MESSAGEVIEW_H diff --git a/WordsIDE/presentcontainer.cpp b/WordsIDE/presentcontainer.cpp index 85db297..9ede268 100644 --- a/WordsIDE/presentcontainer.cpp +++ b/WordsIDE/presentcontainer.cpp @@ -11,6 +11,7 @@ using namespace Components; using namespace Core; using namespace SplitFrame; +using namespace Presents; PresentContainer::PresentContainer(ViewPresent *host, QWidget *parent) : FnWrap(host, parent), diff --git a/WordsIDE/presentcontainer.h b/WordsIDE/presentcontainer.h index 854ea4c..5fb8f7f 100644 --- a/WordsIDE/presentcontainer.h +++ b/WordsIDE/presentcontainer.h @@ -21,14 +21,14 @@ namespace Components { public: virtual QWidget *hostWidget() const override; - virtual void append(FilePresent *ins) override; - virtual bool active(const FilePresent *ins) override; - virtual void remove(const FilePresent *ins) override; - virtual bool contains(const FilePresent *ins) const override; - virtual bool avaliable(FilePresent *vins) override; + virtual void append(Presents::FilePresent *ins) override; + virtual bool active(const Presents::FilePresent *ins) override; + virtual void remove(const Presents::FilePresent *ins) override; + virtual bool contains(const Presents::FilePresent *ins) const override; + virtual bool avaliable(Presents::FilePresent *vins) override; private: - QList items_store; + QList items_store; QComboBox *const title_store; QStackedWidget *const stack_container; diff --git a/WordsIDE/projectpresent.cpp b/WordsIDE/projectview.cpp similarity index 72% rename from WordsIDE/projectpresent.cpp rename to WordsIDE/projectview.cpp index f8a7a09..ec5c680 100644 --- a/WordsIDE/projectpresent.cpp +++ b/WordsIDE/projectview.cpp @@ -1,4 +1,4 @@ -#include "projectpresent.h" +#include "projectview.h" #include "command_list.h" #include @@ -11,8 +11,8 @@ using namespace Schedule; using namespace SplitFrame; using namespace Core; -ProjectPresent::ProjectPresent(ViewPresent *host, CommandsDispatcher *core, Core::DocumentsManager *mgr, QWidget *parent) - : FnWrap(host, parent), project_manager(mgr), source(core), view_present(new QTreeView(this)) { +ProjectView::ProjectView(ViewPresent *host, CommandsDispatcher *core, Core::DocumentsManager *mgr, QWidget *parent) + : FnWrap(host, parent), project_manager(mgr), source(core), view_present(new QTreeView(this)) { auto layout = new QVBoxLayout(this); layout->addWidget(view_present); layout->setMargin(1); @@ -22,14 +22,14 @@ ProjectPresent::ProjectPresent(ViewPresent *host, CommandsDispatcher *core, Core view_present->setContextMenuPolicy(Qt::CustomContextMenu); connect(view_present, &QTreeView::customContextMenuRequested, - this, &ProjectPresent::menu_popup); + this, &ProjectView::menu_popup); connect(view_present, &QTreeView::doubleClicked, - this, &ProjectPresent::open_target); + this, &ProjectView::open_target); } -QModelIndex ProjectPresent::currentIndex() const { return view_present->currentIndex(); } +QModelIndex ProjectView::currentIndex() const { return view_present->currentIndex(); } -void ProjectPresent::menu_popup(const QPoint &p) +void ProjectView::menu_popup(const QPoint &p) { QMenu m; m.addAction("新建路径", [this](){ @@ -61,11 +61,11 @@ void ProjectPresent::menu_popup(const QPoint &p) m.exec(mapToGlobal(p)); } -void ProjectPresent::open_target(const QModelIndex &t) +void ProjectView::open_target(const QModelIndex &t) { auto mgr = source->get(NAME(DocumentsManager)); auto path = mgr->convertPath(t); source->postCommand(OpenFile(path)); } -void ProjectPresent::closeProcess() { project_manager->save(); } +void ProjectView::closeProcess() { project_manager->save(); } diff --git a/WordsIDE/projectpresent.h b/WordsIDE/projectview.h similarity index 65% rename from WordsIDE/projectpresent.h rename to WordsIDE/projectview.h index e2e86ed..1d001ed 100644 --- a/WordsIDE/projectpresent.h +++ b/WordsIDE/projectview.h @@ -1,5 +1,5 @@ -#ifndef PROJECTPRESENT_H -#define PROJECTPRESENT_H +#ifndef PROJECTVIEW_H +#define PROJECTVIEW_H #include "DocsManager.h" #include "manager_docs.h" @@ -14,11 +14,11 @@ namespace Components { /** * @brief 项目视图 */ - class ProjectPresent : public SplitFrame::FnWrap { + class ProjectView : public SplitFrame::FnWrap { Q_OBJECT public: - explicit ProjectPresent(SplitFrame::ViewPresent *host, Schedule::CommandsDispatcher *core, Core::DocumentsManager *mgr, - QWidget *parent = nullptr); + explicit ProjectView(SplitFrame::ViewPresent *host, Schedule::CommandsDispatcher *core, Core::DocumentsManager *mgr, + QWidget *parent = nullptr); QModelIndex currentIndex() const; @@ -36,5 +36,4 @@ namespace Components { }; } - -#endif // PROJECTPRESENT_H +#endif // PROJECTVIEW_H diff --git a/WordsIDE/srcedit_defaulttext.cpp b/WordsIDE/srcedit_defaulttext.cpp index 8e5b1ac..6483182 100644 --- a/WordsIDE/srcedit_defaulttext.cpp +++ b/WordsIDE/srcedit_defaulttext.cpp @@ -8,7 +8,7 @@ #include #include -using namespace Components; +using namespace Presents; using namespace Enhancement; using namespace Core; using namespace Config; diff --git a/WordsIDE/srcedit_defaulttext.h b/WordsIDE/srcedit_defaulttext.h index a2e71cb..bdfdf7a 100644 --- a/WordsIDE/srcedit_defaulttext.h +++ b/WordsIDE/srcedit_defaulttext.h @@ -7,12 +7,12 @@ #include #include -namespace Components { +namespace Presents { /** * @brief Text默认文本编辑视图 */ - class DefaultTextEdit : public Components::FilePresent { + class DefaultTextEdit : public Presents::FilePresent { DECL_PRESENT(DefaultTextEdit); public: @@ -46,7 +46,7 @@ namespace Components { virtual Core::DocumentsManager *docsManager() const override; }; - class DefaultTextEditFactory : public Components::TypedPresentFactory { + class DefaultTextEditFactory : public Presents::TypedPresentFactory { public: virtual ~DefaultTextEditFactory() = default; @@ -54,6 +54,6 @@ namespace Components { public: virtual void create(const QFileInfo &target) override; }; -} // namespace Components +} // namespace Presents #endif // SRCEDIT_DEFAULTTEXT_H diff --git a/WordsIDE/srcedit_storyboard.cpp b/WordsIDE/srcedit_storyboard.cpp index ea521aa..32dacee 100644 --- a/WordsIDE/srcedit_storyboard.cpp +++ b/WordsIDE/srcedit_storyboard.cpp @@ -6,10 +6,10 @@ #include #include -using namespace Components; using namespace Enhancement; using namespace Core; using namespace Config; +using namespace Presents; QString StorySourceEdit::file_suffix = "storyboard"; diff --git a/WordsIDE/srcedit_storyboard.h b/WordsIDE/srcedit_storyboard.h index 37c281a..9d20a4d 100644 --- a/WordsIDE/srcedit_storyboard.h +++ b/WordsIDE/srcedit_storyboard.h @@ -5,9 +5,8 @@ #include "keywordshighlighter.h" #include -#include -namespace Components { +namespace Presents { class StorySourceEdit : public FilePresent, public Enhancement::HighlightFeature { DECL_PRESENT(StorySourceEdit); @@ -45,13 +44,13 @@ namespace Components { virtual Core::Route accessPath() const override; }; - class StorySourceEditFactory : public TypedPresentFactory { + class StorySourceEditFactory : public Presents::TypedPresentFactory { // PresentFactory interface public: virtual void create(const QFileInfo &target) override; }; -} // namespace Components +} // namespace Presents #endif // SRCEDIT_STORYBOARD_H diff --git a/WordsIDE/viewsession.cpp b/WordsIDE/viewsession.cpp index c28cdeb..6df763f 100644 --- a/WordsIDE/viewsession.cpp +++ b/WordsIDE/viewsession.cpp @@ -1,8 +1,8 @@ #include "viewsession.h" #include "mainwindow.h" -#include "messagespresent.h" +#include "messageview.h" #include "presentcontainer.h" -#include "projectpresent.h" +#include "projectview.h" using namespace Config; using namespace Core; @@ -13,7 +13,7 @@ ViewSession::ViewSession(Config::Configration *port, MainWindow *host) : host(ho base_path = {"sys-config", "front-end", host->layoutName(), "view-state"}; } -void ViewSession::initPresentView(PresentContainer *center_frame, ProjectPresent *project_present, QStandardItemModel *error_model) { +void ViewSession::initPresentView(PresentContainer *center_frame, ProjectView *project_present, QStandardItemModel *error_model) { split_infos.clear(); auto project_panel = host->appendView(project_present, QIcon(":/ui/icons/dir_icon.jpg"), tr("项目管理")); @@ -23,7 +23,7 @@ void ViewSession::initPresentView(PresentContainer *center_frame, ProjectPresent edit_panel = host->appendView(center_frame, QIcon(":/ui/icons/file_icon.jpg"), tr("编辑窗口")); view_store[edit_panel->title()] = edit_panel; - auto msg_view = MessagesPresent::gen(host, error_model, host->bind()); + auto msg_view = MessageView::gen(host, error_model, host->bind()); auto msg_panel = host->appendView(msg_view, QIcon(":/ui/icons/file_icon.jpg"), "信息提示"); host->markFreedom(msg_panel); view_store[msg_panel->title()] = msg_panel; diff --git a/WordsIDE/viewsession.h b/WordsIDE/viewsession.h index f88c3f9..5db4a10 100644 --- a/WordsIDE/viewsession.h +++ b/WordsIDE/viewsession.h @@ -1,7 +1,7 @@ #ifndef VIEWSESSION_H #define VIEWSESSION_H -#include "projectpresent.h" +#include "projectview.h" #include #include @@ -18,7 +18,7 @@ namespace Core { public: ViewSession(Config::Configration *port, MainWindow *host); - void initPresentView(Components::PresentContainer *center_frame, Components::ProjectPresent *project_present, QStandardItemModel *model); + void initPresentView(Components::PresentContainer *center_frame, Components::ProjectView *project_present, QStandardItemModel *model); void viewStatesSave(QMainWindow *win, SplitFrame::ViewPresent *root); void viewStatesRestore(QMainWindow *win, SplitFrame::ViewPresent *root); diff --git a/WordsIDE/welcomepanel.cpp b/WordsIDE/welcomepanel.cpp index 268f2fa..2eaf50e 100644 --- a/WordsIDE/welcomepanel.cpp +++ b/WordsIDE/welcomepanel.cpp @@ -2,6 +2,7 @@ using namespace Components; using namespace Core; +using namespace Presents; WelcomePanel::WelcomePanel(QWidget *parent) : QWidget(parent) {} diff --git a/WordsIDE/welcomepanel.h b/WordsIDE/welcomepanel.h index b873e84..6ea2dc0 100644 --- a/WordsIDE/welcomepanel.h +++ b/WordsIDE/welcomepanel.h @@ -7,7 +7,7 @@ namespace Components { - class WelcomePanel : public QWidget, public Components::FilePresent { + class WelcomePanel : public QWidget, public Presents::FilePresent { public: WelcomePanel(QWidget *parent = nullptr);