#ifndef STORYCHAINSPRESENT_H #define STORYCHAINSPRESENT_H #include "DocsManager.h" #include "appcore.h" #include "tools.h" #include #include #include #include #include namespace DataModel { /** * @brief 情节链展示后端 */ class StorychainsPresentModel : public Schedule::AccessibleObject { public: StorychainsPresentModel(Core::AppCore *core); virtual ~StorychainsPresentModel(); QStandardItemModel *treeModel() const; QTextDocument *const detailsBackend() const; void refreshTree(); void showDetails(const QList &chain_path); // AccessibleObject interface public: virtual QString name() const override; private: Core::AppCore *const core_ins; QStandardItemModel *const model_base; QTextDocument *const details_base; Tools::TreeSyncs *sync_tools; }; } // namespace DataModel namespace Components { /** * @brief 情节链展示视图 */ class StorychainsPresent : public QWidget, public MakeTools::PresentBase { Q_OBJECT public: explicit StorychainsPresent(Schedule::CommandsDispatcher *disp, DataModel::StorychainsPresentModel *back, QWidget *parent = nullptr); // AccessibleObject interface public: virtual QString name() const override; // PresentBase interface public: virtual QWidget *widget() const override; private: Schedule::CommandsDispatcher *disp_core; QTreeView *const tree_view; QTextEdit *const details_show; void jump_to(const QModelIndex &curr); void detail_show(const QModelIndex &curr); }; } #endif // STORYCHAINSPRESENT_H