69 lines
2.0 KiB
C++
69 lines
2.0 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;
|
|
|
|
};
|
|
|
|
}
|
|
|
|
#endif // STORYCHAINSOURCEEDITOR_H
|