diff --git a/QtNovelDesc.pro.user b/QtNovelDesc.pro.user index f8748d8..b776c7b 100644 --- a/QtNovelDesc.pro.user +++ b/QtNovelDesc.pro.user @@ -1,6 +1,6 @@ - + EnvironmentId diff --git a/WordsIDE/SourceEditView.cpp b/WordsIDE/SourceEditView.cpp index a28bc01..84ccfdb 100644 --- a/WordsIDE/SourceEditView.cpp +++ b/WordsIDE/SourceEditView.cpp @@ -58,7 +58,6 @@ void TextContentEdit::reloadConfigrations(QList configs) default_font.setPointSize(font_size.toInt()); this->textDocument()->setDefaultFont(default_font); - this->rehighlighter(); } void TextContentEdit::rehighlighter() diff --git a/WordsIDE/storyboardsourceedit.cpp b/WordsIDE/storyboardsourceedit.cpp index 39c8a55..7acfe3b 100644 --- a/WordsIDE/storyboardsourceedit.cpp +++ b/WordsIDE/storyboardsourceedit.cpp @@ -40,7 +40,6 @@ void StoryBoardSourceEdit::reloadConfigrations(QList con default_font.setPointSize(font_size.toInt()); this->textDocument()->setDefaultFont(default_font); - this->rehighlighter(); } void StoryBoardSourceEdit::modeReset(const QString &) const{} @@ -67,7 +66,6 @@ void StoryBoardSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, FormattedTextEdit::initSource(core, src, parent); static_cast(words_highlighter) ->reset(core->parseCore()->queryDocument(src)); - rehighlighter(); } void StoryBoardSourceEdit::jumpTo(const QList &path) diff --git a/WordsIDE/storyboardspresent.cpp b/WordsIDE/storyboardspresent.cpp index 4d1e7e1..d6d47f9 100644 --- a/WordsIDE/storyboardspresent.cpp +++ b/WordsIDE/storyboardspresent.cpp @@ -26,6 +26,8 @@ StoryBoardsPresent::StoryBoardsPresent(Core::AppCore *core, QWidget *parent) tree_view->resizeColumnToContents(0); tree_view->resizeColumnToContents(1); }); + + connect(tree_view, &QTreeView::clicked, this, &StoryBoardsPresent::show_current_details); } void StoryBoardsPresent::refresh() @@ -53,4 +55,35 @@ void StoryBoardsPresent::refresh() item->appendRow(row); } } + + this->tree_view->resizeColumnToContents(0); +} + +void StoryBoardsPresent::show_current_details(const QModelIndex &idx) +{ + if(!idx.isValid()) + return; + + details_view->clear(); + auto item = model_base->itemFromIndex(idx.sibling(idx.row(), 0)); + if(item->parent() == nullptr){ + auto node = core_ins->parseCore()->queryStoryBoard(item->text()); + + auto children = node.first()->children(); + for(auto &it : children){ + if(it->typeValue() != NODE_FRAGMENTREFERENCE){ + details_view->append(it->toString()); + } + } + } + else{ + auto node = core_ins->parseCore()->queryStoryBoard(item->parent()->text()); + auto point = core_ins->parseCore()->queryStoryFragmentRefer(node.first(), item->text().mid(1)); + + auto children = point.first()->children(); + for(auto &it : children){ + details_view->append(it->toString()); + } + } + } diff --git a/WordsIDE/storychainsourceeditor.cpp b/WordsIDE/storychainsourceeditor.cpp index 9f24f94..0bf438a 100644 --- a/WordsIDE/storychainsourceeditor.cpp +++ b/WordsIDE/storychainsourceeditor.cpp @@ -46,7 +46,6 @@ void StoryChainSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, this->doc_ins = core->parseCore()->queryDocument(src); this->core_ins = core; static_cast(this->highter_ins)->reset(doc_ins); - rehighlighter(); } FileExtensionFactory *StoryChainSourceEdit::factory() const @@ -66,7 +65,6 @@ void StoryChainSourceEdit::reloadConfigrations(QList con default_font.setPointSize(font_size.toInt()); this->textDocument()->setDefaultFont(default_font); - this->rehighlighter(); } void StoryChainSourceEdit::rehighlighter() diff --git a/WordsIDE/storyunitsourceedit.cpp b/WordsIDE/storyunitsourceedit.cpp index 2dcbd2e..53c721e 100644 --- a/WordsIDE/storyunitsourceedit.cpp +++ b/WordsIDE/storyunitsourceedit.cpp @@ -38,7 +38,6 @@ void StoryUnitSourceEdit::reloadConfigrations(QList conf default_font.setPointSize(font_size.toInt()); this->textDocument()->setDefaultFont(default_font); - this->rehighlighter(); } void StoryUnitSourceEdit::modeReset(const QString &) const @@ -73,7 +72,6 @@ void StoryUnitSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src, FormattedTextEdit::initSource(core, src, parent); static_cast(words_highlighter) ->reset(core->parseCore()->queryDocument(src)); - rehighlighter(); } void StoryUnitSourceEdit::jumpTo(const QList &path) diff --git a/WordsIDE/storyvolumesourceedit.cpp b/WordsIDE/storyvolumesourceedit.cpp index 2801681..04589e3 100644 --- a/WordsIDE/storyvolumesourceedit.cpp +++ b/WordsIDE/storyvolumesourceedit.cpp @@ -28,7 +28,6 @@ void StoryVolumeSourceEdit::reloadConfigrations(QList co default_font.setPointSize(font_size.toInt()); this->textDocument()->setDefaultFont(default_font); - this->rehighlighter(); } void StoryVolumeSourceEdit::resetProcsType(const QString &suffix) @@ -70,7 +69,6 @@ void StoryVolumeSourceEdit::initSource(Core::AppCore *core, const QFileInfo &src FormattedTextEdit::initSource(core, src, parent); static_cast(words_highlighter) ->reset(core->parseCore()->queryDocument(src)); - rehighlighter(); } void StoryVolumeSourceEdit::rehighlighter() diff --git a/libParse/parsechecks.cpp b/libParse/parsechecks.cpp index e285cce..e4cc7d4 100644 --- a/libParse/parsechecks.cpp +++ b/libParse/parsechecks.cpp @@ -22,7 +22,13 @@ bool CheckTools::FragmentsCheck::check(QList &reasons) cons if(ref->typeValue() == NODE_FRAGMENTREFERENCE){ auto ins_ref = static_cast(ref); auto u = core_ins->queryStoryUnit(ins_ref->unit()); + if(!u.size()) + continue; + auto frag = core_ins->queryStoryFragment(u[0], ins_ref->fragment()); + if(!frag.size()) + continue; + auto frag_ins = static_cast(frag[0]); bool isvalid;