QtNovelUI/WordsIDE/sourcecodeeditor.h

63 lines
1.8 KiB
C++

#ifndef SOURCECODEEDITOR_H
#define SOURCECODEEDITOR_H
#include "SourceEditView.h"
#include "appcore.h"
#include <QObject>
namespace Components {
class SourceCodeEditorFactory : public Core::FileExtensionFactory
{
// ExtensionFactory 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;
// FileExtensionFactory interface
public:
virtual QList<QString> suffixPeers() const override;
};
class SourceCodeEditor : public FormattedTextEdit
{
public:
SourceCodeEditor(Core::FileExtensionFactory *factory);
private:
Core::FileExtensionFactory *const factory_ins;
QSyntaxHighlighter *const highlighter_ins;
Core::AppCore *core_ins;
QString procs_type;
void concept_jump(const QList<QString> &path);
// Extension interface
public:
virtual Core::ExtensionFactory *factory() const override;
virtual void reload(QList<Config::Configration *> configs) override;
virtual void resetProcsType(const QString &suffix) override;
// ModeView interface
public:
virtual void modeReset(const QString &type) const override;
virtual QList<QString> modes() const override;
virtual QString currentMode() const override;
// VariedTextView interface
public:
virtual void jumpTo(const QList<QString> &path) override;
virtual void setSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent) override;
// FormattedTextEdit interface
protected:
virtual void rehighlighter() override;
};
}
#endif // SOURCECODEEDITOR_H