diff --git a/DesParser/DesParser.pro b/DesParser/DesParser.pro index f002168..e290574 100644 --- a/DesParser/DesParser.pro +++ b/DesParser/DesParser.pro @@ -8,16 +8,6 @@ CONFIG -= app_bundle #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ - LexFoundation.cpp \ - ParseFrame.cpp \ - StoryBoardDocumentParser.cpp \ - StoryChainDocumentParser.cpp \ - StoryOutlineDocumentParser.cpp \ - StoryTool.cpp \ - StoryUnitDocumentParser.cpp \ - SyntaxBase.cpp \ - WordsPeak.cpp \ - XSyntaxBase.cpp \ main.cpp TRANSLATIONS += \ @@ -31,20 +21,17 @@ else: unix:!android: target.path = /opt/$${TARGET}/bin !isEmpty(target.path): INSTALLS += target HEADERS += \ - ComnDef.h \ - LexFoundation.h \ - ParseFrame.h \ - StoryBoardDocumentParser.h \ - StoryChainDocumentParser.h \ - StoryOutlineDocumentParser.h \ - StoryTool.h \ - StoryUnitDocumentParser.h \ - SyntaxBase.h \ - WordsPeak.h \ - XSyntaxBase.h + DISTFILES += \ example.storyboard \ example.storychain \ example.storyunit \ example.storyvolume + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libParse/release/ -llibParse +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libParse/debug/ -llibParse +else:unix: LIBS += -L$$OUT_PWD/../libParse/ -llibParse + +INCLUDEPATH += $$PWD/../libParse +DEPENDPATH += $$PWD/../libParse diff --git a/DesParser/main.cpp b/DesParser/main.cpp index 0f2a865..327b3ed 100644 --- a/DesParser/main.cpp +++ b/DesParser/main.cpp @@ -2,12 +2,7 @@ #include #include #include -#include "StoryChainDocumentParser.h" -#include "StoryUnitDocumentParser.h" -#include "StoryBoardDocumentParser.h" -#include "StoryOutlineDocumentParser.h" -#include "ParseFrame.h" -#include "StoryTool.h" +#include using namespace Parse; using namespace Parse::Result; @@ -41,7 +36,7 @@ int main(int argc, char *argv[]) // auto retlist = frame.analysis(&doc, "D:\\Projects\\Cpp\\QtNovelDesc\\DesParser\\example.storyboard"); - ParseCore core("empty"); + ParseCore core; Make::StoryTool tool(&core); auto path = "D:\\Projects\\Cpp\\QtNovelDesc\\DesParser\\example.storyvolume"; diff --git a/QtNovelDesc.pro.user b/QtNovelDesc.pro.user index f7b8e09..4c9ae6b 100644 --- a/QtNovelDesc.pro.user +++ b/QtNovelDesc.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/WordsIDE/WordsIDE.pro b/WordsIDE/WordsIDE.pro index 305ddef..34a6d00 100644 --- a/WordsIDE/WordsIDE.pro +++ b/WordsIDE/WordsIDE.pro @@ -9,10 +9,12 @@ CONFIG += c++11 #DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000 # disables all the APIs deprecated before Qt 6.0.0 SOURCES += \ + SensitiveFramework.cpp \ main.cpp \ mainwindow.cpp HEADERS += \ + SensitiveFramework.h \ mainwindow.h TRANSLATIONS += \ @@ -38,3 +40,10 @@ else:unix: LIBS += -L$$OUT_PWD/../libProjectManager/ -llibProjectManager INCLUDEPATH += $$PWD/../libProjectManager DEPENDPATH += $$PWD/../libProjectManager + +win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../libParse/release/ -llibParse +else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../libParse/debug/ -llibParse +else:unix: LIBS += -L$$OUT_PWD/../libParse/ -llibParse + +INCLUDEPATH += $$PWD/../libParse +DEPENDPATH += $$PWD/../libParse diff --git a/WordsIDE/mainwindow.cpp b/WordsIDE/mainwindow.cpp index c7ef952..9c052e4 100644 --- a/WordsIDE/mainwindow.cpp +++ b/WordsIDE/mainwindow.cpp @@ -12,6 +12,8 @@ #include using namespace Project; +using namespace Make; +using namespace Parse::Result; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), @@ -23,10 +25,12 @@ MainWindow::MainWindow(QWidget *parent) bottom_funcs(new QTabWidget(this)), project_view(new QTreeView(this)), errors_present(new QTableView(this)), - project_manager(new XMLProjectManager(this)) + project_manager(new XMLProjectManager(this)), + syntax_core(new ParseCore()), + make_tool(new StoryTool(syntax_core)) { setMinimumSize(1000, 600); - setWindowTitle("提线木偶文学项目集成开发工具"); + setWindowTitle("提线木偶集成开发工具"); auto xtool = new QToolBar(this); addToolBar(Qt::ToolBarArea::TopToolBarArea, xtool); @@ -42,6 +46,7 @@ MainWindow::MainWindow(QWidget *parent) _xnew->addAction("故事单元"); _xnew->addAction("故事大纲"); _xnew->addAction("叙事大纲"); + _xnew->addSeparator(); _xnew->addAction("小说章节"); project->addSeparator(); auto sav = project->addAction("保存"); @@ -137,6 +142,9 @@ MainWindow::MainWindow(QWidget *parent) exp->addSeparator(); exp->addAction("导出TXT内容"); exp->addAction("导出TXT大纲"); + tool->addAction("编译", [this](){ + this->build_internal(); + }); // 窗口菜单 auto window = mbar->addMenu("窗口"); @@ -172,3 +180,22 @@ MainWindow::MainWindow(QWidget *parent) MainWindow::~MainWindow() { } + +void MainWindow::build_internal() +{ + auto chains = project_manager->filesWithEnds("storychain"); + for(auto &it : chains) + make_tool->compile(it); + + auto units = project_manager->filesWithEnds("storyunit"); + for(auto &it : units) + make_tool->compile(it); + + auto storys = project_manager->filesWithEnds("storyboard"); + for(auto &it : storys) + make_tool->compile(it); + + auto volumes = project_manager->filesWithEnds("storyvolume"); + for(auto &it : volumes) + make_tool->compile(it); +} diff --git a/WordsIDE/mainwindow.h b/WordsIDE/mainwindow.h index 7c94e41..1c04f5d 100644 --- a/WordsIDE/mainwindow.h +++ b/WordsIDE/mainwindow.h @@ -5,6 +5,7 @@ #include #include #include +#include #include class MainWindow : public QMainWindow @@ -28,5 +29,11 @@ private: QTableView *const errors_present; Project::ProjectManager *const project_manager; + Parse::Result::ParseCore *const syntax_core; + Make::StoryTool *const make_tool; + + // 内部逻辑 =========================================== + void build_internal(); + }; #endif // MAINWINDOW_H