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 {
|
2022-11-22 03:42:48 +00:00
|
|
|
|
2022-12-31 05:26:58 +00:00
|
|
|
class FormattedTextEdit : public MakeTools::TextView,
|
2022-11-22 03:42:48 +00:00
|
|
|
public ContentPresent::ModeView
|
2022-11-18 23:47:32 +00:00
|
|
|
{
|
|
|
|
public:
|
2022-11-22 03:42:48 +00:00
|
|
|
FormattedTextEdit();
|
2022-11-18 23:47:32 +00:00
|
|
|
virtual ~FormattedTextEdit() = default;
|
|
|
|
|
2022-11-25 07:30:33 +00:00
|
|
|
virtual void rehighlighter() = 0;
|
|
|
|
virtual void setContexMenuProcess(std::function<void(QMenu*)> exu);
|
|
|
|
virtual QTextCursor getTextCursor();
|
|
|
|
virtual void setTextCursor(QTextCursor s);
|
2022-12-31 05:26:58 +00:00
|
|
|
QTextEdit *const edit_square;
|
2022-11-25 07:30:33 +00:00
|
|
|
|
|
|
|
// 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;
|
|
|
|
|
2022-11-25 07:30:33 +00:00
|
|
|
private:
|
|
|
|
std::function<void(QMenu*)> ex_unit;
|
2022-11-18 23:47:32 +00:00
|
|
|
|
|
|
|
protected:
|
2022-11-25 07:30:33 +00:00
|
|
|
QTextDocument *textDocument() const;
|
|
|
|
|
2022-11-18 23:47:32 +00:00
|
|
|
};
|
|
|
|
|
2022-11-22 03:42:48 +00:00
|
|
|
class TextContentEditFactory : public Core::FileExtensionFactory
|
2022-11-17 08:26:05 +00:00
|
|
|
{
|
|
|
|
public:
|
2022-11-22 03:42:48 +00:00
|
|
|
TextContentEditFactory();
|
|
|
|
virtual ~TextContentEditFactory() = default;
|
2022-11-17 08:26:05 +00:00
|
|
|
|
2022-11-22 03:42:48 +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;
|
2022-11-22 03:42:48 +00:00
|
|
|
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:
|
2022-11-22 03:42:48 +00:00
|
|
|
TextContentEdit(Core::FileExtensionFactory *factory);
|
2022-11-17 08:26:05 +00:00
|
|
|
virtual ~TextContentEdit() = default;
|
|
|
|
|
2022-11-22 03:42:48 +00:00
|
|
|
// 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-22 03:42:48 +00:00
|
|
|
|
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:
|
2022-11-22 03:42:48 +00:00
|
|
|
virtual void jumpTo(const QList<QString> &path) override;
|
2022-11-17 08:26:05 +00:00
|
|
|
|
|
|
|
private:
|
|
|
|
QFileInfo source_target;
|
2022-11-22 03:42:48 +00:00
|
|
|
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
|
|
|
|
|
|
|
|
2022-11-25 07:30:33 +00:00
|
|
|
// Extension interface
|
|
|
|
public:
|
|
|
|
virtual void resetProcsType(const QString &suffix) override;
|
2022-11-17 08:26:05 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#endif // SOURCEEDITVIEW_H
|