QtNovelUI/WordsIDE/SourceEditView.h

190 lines
6.1 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 {
2022-11-18 23:47:32 +00:00
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<Core::Scale> configs() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual QWidget *getPanel(Config::Configration *config) override;
private:
QTextEdit *const edit_square;
QFileInfo source_target;
protected:
QList<Config::Configration*> configrations_host;
virtual void rehighlighter() = 0;
};
2022-11-17 08:26:05 +00:00
/**
* @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<QString> modes() const override;
virtual QString currentMode() const override;
virtual QString title() const override;
2022-11-18 23:47:32 +00:00
virtual Core::ConfigHost *getConfigHost() const override;
2022-11-17 08:26:05 +00:00
// 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;
2022-11-18 23:47:32 +00:00
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(const QFileInfo &refer, QWidget *parent = nullptr);
virtual ~TextContentEdit() = default;
// 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 reset(Parse::Result::DocCore *syntax_base) override;
private:
QFileInfo source_target;
2022-11-18 23:47:32 +00:00
// FormattedTextEdit interface
protected:
virtual void rehighlighter() override;
2022-11-17 08:26:05 +00:00
};
/**
* @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<QString> modes() const override;
virtual QString currentMode() const override;
virtual QString title() const override;
2022-11-18 23:47:32 +00:00
virtual Core::ConfigHost *getConfigHost() const override;
2022-11-17 08:26:05 +00:00
// 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:
2022-11-18 23:47:32 +00:00
QSyntaxHighlighter *const words_highlighter;
2022-11-17 08:26:05 +00:00
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<QString> modes() const override;
virtual QString currentMode() const override;
virtual QString title() const override;
2022-11-18 23:47:32 +00:00
virtual Core::ConfigHost *getConfigHost() const override;
2022-11-17 08:26:05 +00:00
// 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:
2022-11-18 23:47:32 +00:00
QSyntaxHighlighter *const words_highlighter;
2022-11-17 08:26:05 +00:00
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<QString> modes() const override;
virtual QString currentMode() const override;
virtual QString title() const override;
2022-11-18 23:47:32 +00:00
virtual Core::ConfigHost *getConfigHost() const override;
2022-11-17 08:26:05 +00:00
// 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:
2022-11-18 23:47:32 +00:00
QSyntaxHighlighter *const words_highlighter;
2022-11-17 08:26:05 +00:00
QTextEdit *const edit_square;
QFileInfo source_target;
};
}
#endif // SOURCEEDITVIEW_H