#ifndef SOURCEEDITVIEW_H #define SOURCEEDITVIEW_H #include "SensitiveCore.h" #include "ContentPresent.h" #include #include namespace Components { class FormattedTextEdit : public MakeTools::VariedTextView, public ContentPresent::ModeView, public Core::ConfigHost { public: FormattedTextEdit(const QFileInfo &file, QWidget *parent = nullptr); virtual ~FormattedTextEdit() = default; // ModeView interface public: virtual Core::ConfigHost *getConfigHost() const override; // VariedTextView interface public: virtual QWidget *textView() const override; virtual QString textContent() const override; virtual void textContentReset(const QString &value) override; // ConfigHost interface public: virtual QList configs() const override; virtual void reload(QList configs) override; virtual QWidget *getPanel(Config::Configration *config) override; private: QTextEdit *const edit_square; QFileInfo source_target; protected: QList configrations_host; virtual void rehighlighter() = 0; }; /** * @brief StoryChain源码编辑器 */ class StoryChainSourceEdit : public MakeTools::VariedTextView, public ContentPresent::ModeView { public: StoryChainSourceEdit(const QFileInfo &file, QWidget *parent = nullptr); virtual ~StoryChainSourceEdit() = default; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; virtual Core::ConfigHost *getConfigHost() const override; // VariedTextView interface public: virtual void reset(Parse::Result::DocCore *syntax_base) override; virtual QWidget *textView() const override; virtual QString textContent() const override; virtual void textContentReset(const QString &value) override; private: QTextEdit *const edit_square; QSyntaxHighlighter *const highter_ins; Parse::Result::DocCore * core_ins; }; class TextContentEdit : public FormattedTextEdit { public: TextContentEdit(const QFileInfo &refer, QWidget *parent = nullptr); virtual ~TextContentEdit() = default; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; // VariedTextView interface public: virtual void reset(Parse::Result::DocCore *syntax_base) override; private: QFileInfo source_target; // FormattedTextEdit interface protected: virtual void rehighlighter() override; }; /** * @brief StoryUnit源码编辑器 */ class StoryUnitSourceEdit : public MakeTools::VariedTextView, public ContentPresent::ModeView { public: StoryUnitSourceEdit(const QFileInfo &refer, QWidget *parent = nullptr); virtual ~StoryUnitSourceEdit() = default; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; virtual Core::ConfigHost *getConfigHost() const override; // VariedTextView interface public: virtual void reset(Parse::Result::DocCore *syntax_base) override; virtual QWidget *textView() const override; virtual QString textContent() const override; virtual void textContentReset(const QString &value) override; private: QSyntaxHighlighter *const words_highlighter; QTextEdit *const edit_square; QFileInfo source_target; }; class StoryBoardSourceEdit : public MakeTools::VariedTextView, public ContentPresent::ModeView { public: StoryBoardSourceEdit(const QFileInfo &refer, QWidget *parent = nullptr); virtual ~StoryBoardSourceEdit() = default; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; virtual Core::ConfigHost *getConfigHost() const override; // VariedTextView interface public: virtual void reset(Parse::Result::DocCore *syntax_base) override; virtual QWidget *textView() const override; virtual QString textContent() const override; virtual void textContentReset(const QString &value) override; private: QSyntaxHighlighter *const words_highlighter; QTextEdit *const edit_square; QFileInfo source_target; }; class StoryVolumeSourceEdit : public MakeTools::VariedTextView, public ContentPresent::ModeView { public: StoryVolumeSourceEdit(const QFileInfo &refer, QWidget *parent = nullptr); virtual ~StoryVolumeSourceEdit() = default; // ModeView interface public: virtual void modeReset(const QString &) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; virtual Core::ConfigHost *getConfigHost() const override; // VariedTextView interface public: virtual void reset(Parse::Result::DocCore *syntax_base) override; virtual QWidget *textView() const override; virtual QString textContent() const override; virtual void textContentReset(const QString &value) override; private: QSyntaxHighlighter *const words_highlighter; QTextEdit *const edit_square; QFileInfo source_target; }; } #endif // SOURCEEDITVIEW_H