#ifndef VIVY_SCRIPT_DOCUMENT_VIEW_H #define VIVY_SCRIPT_DOCUMENT_VIEW_H #ifndef __cplusplus #error "This is a C++ header" #endif #include "../Lib/Utils.hh" #include "AbstractDocumentView.hh" #include <QWidget> #include <QString> #include <memory> namespace Vivy { class ScriptEditor; class ScriptHighlighter; class ScriptDocument; class ScriptDocumentView final : public AbstractDocumentView { Q_OBJECT VIVY_UNMOVABLE_OBJECT(ScriptDocumentView) public: explicit ScriptDocumentView(std::shared_ptr<ScriptDocument>, QWidget *parent = nullptr); void closeDocument() noexcept override; void openProperties() noexcept override; QString getDocumentTabName() const noexcept override; QString getDocumentTabToolTip() const noexcept override; QIcon getDocumentTabIcon() const noexcept override; AbstractDocument *getDocument() const noexcept override; signals: void luaErrorFound(int, QString); private: ScriptEditor *editor{ nullptr }; ScriptHighlighter *syntax{ nullptr }; std::shared_ptr<ScriptDocument> document{ nullptr }; QString lastLuaErrorMsg{}; int lastLuaErrorLine{ -1 }; }; } #endif // VIVY_PROPERTY_DOCUMENT_VIEW_H