#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: FormattedTextEdit(); virtual ~FormattedTextEdit() = default; virtual void rehighlighter() = 0; virtual void setContexMenuProcess(std::function exu); virtual QTextCursor getTextCursor(); virtual void setTextCursor(QTextCursor s); // ModeView interface public: virtual QString title() const override; // VariedTextView interface public: virtual QWidget *textView() const override; virtual QString textContent() const override; virtual void textContentReset(const QString &value) override; private: QTextEdit *const edit_square; std::function ex_unit; protected: QTextDocument *textDocument() const; }; class TextContentEditFactory : public Core::FileExtensionFactory { public: TextContentEditFactory(); virtual ~TextContentEditFactory() = default; // PluginFactory interface public: virtual Core::Extension *newInstance(Core::AppCore *core) override; virtual QList configs() const override; virtual QWidget *getNewPanel(Config::Configration *config) override; virtual QString extensionName() const override; virtual QList suffixPeers() const override; }; class TextContentEdit : public FormattedTextEdit { public: TextContentEdit(Core::FileExtensionFactory *factory); virtual ~TextContentEdit() = default; // Plugin interface public: virtual Core::FileExtensionFactory *factory() const override; virtual void reload(QList configs) override; // 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 jumpTo(const QList &path) override; private: QFileInfo source_target; Core::FileExtensionFactory *const factory_ins; // FormattedTextEdit interface protected: virtual void rehighlighter() override; // Extension interface public: virtual void resetProcsType(const QString &suffix) override; }; } #endif // SOURCEEDITVIEW_H