QtNovelUI/WordsIDE/storychainsourceeditor.h

73 lines
2.1 KiB
C++

#ifndef STORYCHAINSOURCEEDITOR_H
#define STORYCHAINSOURCEEDITOR_H
#include "ContentPresent.h"
#include "SensitiveCore.h"
#include "SourceEditView.h"
#include <QObject>
#include <QSyntaxHighlighter>
namespace Components {
class StoryChainSourceEditFactory : public Core::FileExtensionFactory
{
public:
StoryChainSourceEditFactory();
virtual ~StoryChainSourceEditFactory() = default;
// PluginFactory interface
public:
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;
virtual QList<QString> suffixPeers() const override;
};
/**
* @brief StoryChain源码编辑器
*/
class StoryChainSourceEdit : public FormattedTextEdit
{
public:
StoryChainSourceEdit(Core::FileExtensionFactory *factory);
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;
// VariedTextView interface
public:
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override;
virtual void jumpTo(const QList<QString> &path) override;
// Plugin interface
public:
virtual Core::FileExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
// FormattedTextEdit interface
protected:
virtual void rehighlighter() override;
private:
QSyntaxHighlighter *const highter_ins;
Parse::Result::DocCore * doc_ins;
Core::AppCore *core_ins;
Core::FileExtensionFactory *const factory_ins;
// Extension interface
public:
virtual void resetProcsType(const QString &suffix) override;
};
}
#endif // STORYCHAINSOURCEEDITOR_H