#ifndef STORYUNITSOURCEEDIT_H #define STORYUNITSOURCEEDIT_H #include "SourceEditView.h" #include #include namespace Components { class StoryUnitSourceEditFactory : public Core::FileExtensionFactory { // PluginFactory interface public: virtual Core::Extension *newInstance(Core::AppCore *core) override; virtual QList configs() const override; virtual QWidget *getNewPanel(Config::Configration *config) override; virtual QString extensionName() const override; virtual QList suffixPeers() const override; }; class StoryUnitSourceEdit : public FormattedTextEdit { public: StoryUnitSourceEdit(Core::FileExtensionFactory *factory); virtual ~StoryUnitSourceEdit(); // Plugin interface public: virtual Core::FileExtensionFactory *factory() const override; virtual void reloadConfigrations(QList configs) override; // ModeView interface public: virtual void modeReset(const QString &type) const override; virtual QList modes() const override; virtual QString currentMode() const override; virtual QString title() const override; // FormattedTextEdit interface protected: virtual void rehighlighter() override; // VariedTextView interface public: virtual void initSource(Core::AppCore *core, const QFileInfo &src, QWidget *parent=nullptr) override; private: QTableView *const refers_descriptions; QStandardItemModel *const refers_model; QSplitter *const split; QSyntaxHighlighter *const words_highlighter; Core::FileExtensionFactory *const factory_ins; QFileInfo source_target; Core::AppCore *core_ins; void cursor_contex_query(); void present_refersed_tips(const QString &unit, const QString &frag); // VariedTextView interface public: virtual void jumpTo(const QList &path) override; // Extension interface public: virtual void resetProcsType(const QString &suffix) override; // VariedTextView interface public: virtual QWidget *textView() const override; }; } #endif // STORYUNITSOURCEEDIT_H