QtNovelUI/WordsIDE/SourceEditView.h

99 lines
2.7 KiB
C
Raw Normal View History

2022-11-17 08:26:05 +00:00
#ifndef SOURCEEDITVIEW_H
#define SOURCEEDITVIEW_H
#include "SensitiveCore.h"
#include "ContentPresent.h"
#include <QSyntaxHighlighter>
#include <QTextEdit>
namespace Components {
class FormattedTextEdit : public MakeTools::TextView,
public ContentPresent::ModeView
2022-11-18 23:47:32 +00:00
{
public:
FormattedTextEdit();
2022-11-18 23:47:32 +00:00
virtual ~FormattedTextEdit() = default;
virtual void rehighlighter() = 0;
virtual void setContexMenuProcess(std::function<void(QMenu*)> exu);
virtual QTextCursor getTextCursor();
virtual void setTextCursor(QTextCursor s);
QTextEdit *const edit_square;
// ModeView interface
public:
virtual QString title() const override;
2022-11-18 23:47:32 +00:00
// VariedTextView interface
public:
virtual QWidget *textView() const override;
virtual QString textContent() const override;
virtual void textContentReset(const QString &value) override;
private:
std::function<void(QMenu*)> ex_unit;
2022-11-18 23:47:32 +00:00
protected:
QTextDocument *textDocument() const;
2022-11-18 23:47:32 +00:00
};
class TextContentEditFactory : public Core::FileExtensionFactory
2022-11-17 08:26:05 +00:00
{
public:
TextContentEditFactory();
virtual ~TextContentEditFactory() = default;
2022-11-17 08:26:05 +00:00
// PluginFactory interface
2022-11-17 08:26:05 +00:00
public:
2022-11-25 01:18:54 +00:00
virtual Core::Extension *newInstance(Core::AppCore *core) override;
virtual QList<Core::Scale> configs() const override;
virtual QWidget *getNewPanel(Config::Configration *config) override;
virtual QString extensionName() const override;
2022-11-25 01:32:42 +00:00
virtual QList<QString> suffixPeers() const override;
2022-11-17 08:26:05 +00:00
};
2022-11-18 23:47:32 +00:00
class TextContentEdit : public FormattedTextEdit
2022-11-17 08:26:05 +00:00
{
public:
TextContentEdit(Core::FileExtensionFactory *factory);
2022-11-17 08:26:05 +00:00
virtual ~TextContentEdit() = default;
// Plugin interface
public:
virtual Core::FileExtensionFactory *factory() const override;
2022-11-29 03:47:12 +00:00
virtual void reloadConfigrations(QList<Config::Configration *> configs) override;
2022-11-17 08:26:05 +00:00
// ModeView interface
public:
virtual void modeReset(const QString &) const override;
virtual QList<QString> modes() const override;
virtual QString currentMode() const override;
virtual QString title() const override;
// VariedTextView interface
public:
virtual void jumpTo(const QList<QString> &path) override;
2022-11-17 08:26:05 +00:00
private:
QFileInfo source_target;
Core::FileExtensionFactory *const factory_ins;
2022-11-18 23:47:32 +00:00
// FormattedTextEdit interface
protected:
virtual void rehighlighter() override;
2022-11-17 08:26:05 +00:00
// Extension interface
public:
virtual void resetProcsType(const QString &suffix) override;
2022-11-17 08:26:05 +00:00
};
}
#endif // SOURCEEDITVIEW_H