#ifndef STORYCHAIN_SOURCEEDITOR_H #define STORYCHAIN_SOURCEEDITOR_H #include "ContentPresent.h" #include "DocsManager.h" #include "default_textpresent.h" #include "keywordshightlighter.h" #include #include namespace Components { /** * @brief Storychain源码编辑器 */ class StorychainSourceEdit : public Presents::ModeView, public MakeTools::ContentPresent, public Enhancement::HighlightDemand { public: StorychainSourceEdit(); virtual ~StorychainSourceEdit() = default; private: QSyntaxHighlighter *const highter_ins; Parse::Result::DocCore *core_ins; Core::AppCore *app_core; QTextEdit *edit_square; QString name_store; QString filepath_store; // HighlightDemand interface public: virtual void contexBind(Core::AppCore *app, Parse::Result::DocCore *core) override; virtual void reHighlighter() const override; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; // ContentPresent interface public: virtual QList suffixes() const override; virtual std::tuple create(const QDir &target, const QString &name, const QString &suffix) override; virtual MakeTools::ContentPresent *newInst() const override; virtual QWidget *widget() const override; virtual void applySetting(const QString &name, Core::AppCore *core) override; virtual QString name() const override; virtual void load(const QFileInfo &target_file) override; virtual void saveAs(const QString &path) override; virtual QString targetPath(const QDir &base) const override; virtual QString absulateTargetPath() const override; virtual QString getText() const override; virtual bool isModified() const override; virtual void jumpTo(const QList &path) override; }; } #endif // STORYCHAIN_SOURCEEDITOR_H