QtNovelUI/WordsIDE/storychainspresent.h

70 lines
1.7 KiB
C++

#ifndef STORYCHAINSPRESENT_H
#define STORYCHAINSPRESENT_H
#include "appcore.h"
#include "tools.h"
#include <QPlainTextEdit>
#include <QStandardItemModel>
#include <QTreeView>
#include <QWidget>
#include <libParse.h>
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<QString> &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<Parse::Result::DesNode *> *sync_tools;
};
} // namespace DataModel
namespace Components {
/**
* @brief 情节链展示视图
*/
class StorychainsPresent : public QWidget,
public Schedule::AccessibleObject {
Q_OBJECT
public:
explicit StorychainsPresent(Schedule::CommandsDispatcher *disp,
QWidget *parent = nullptr);
// AccessibleObject interface
public:
virtual QString name() const override;
private:
Schedule::CommandsDispatcher *disp_core;
QTreeView *const tree_view;
QPlainTextEdit *const details_show;
void jump_to(const QModelIndex &curr);
void detail_show(const QModelIndex &curr);
};
}
#endif // STORYCHAINSPRESENT_H