Skip to content
Extraits de code Groupes Projets
Vérifiée Valider a75e50dc rédigé par Kubat's avatar Kubat
Parcourir les fichiers

LIB: Add script store to VivyApplication + force document views to have a parent

parent e8e3883e
Branches
Aucune étiquette associée trouvée
1 requête de fusion!9Lua cpp expose
...@@ -233,14 +233,11 @@ MainWindow::closeDocument(int index) noexcept ...@@ -233,14 +233,11 @@ MainWindow::closeDocument(int index) noexcept
void void
MainWindow::newDocument() noexcept MainWindow::newDocument() noexcept
{ {
std::shared_ptr<VivyDocument> document =
vivyApp->documentStore.newDocument(VivyDocument::UntouchedByDefault);
try { try {
addTab(new VivyDocumentView(document)); addTab(new VivyDocumentView(
vivyApp->documentStore.newDocument(VivyDocument::UntouchedByDefault), documents));
} catch (const std::runtime_error &e) { } catch (const std::runtime_error &e) {
qCritical() << "Failed to create a new empty document:" << e.what(); qCritical() << "Failed to create a new empty document:" << e.what();
vivyApp->documentStore.closeDocument(document->getUuid());
} }
} }
...@@ -266,10 +263,10 @@ MainWindow::openDocument() noexcept ...@@ -266,10 +263,10 @@ MainWindow::openDocument() noexcept
try { try {
if ((fileType == Utils::DocumentType::Video) || (fileType == Utils::DocumentType::Vivy) || if ((fileType == Utils::DocumentType::Video) || (fileType == Utils::DocumentType::Vivy) ||
(fileType == Utils::DocumentType::Audio) || (fileType == Utils::DocumentType::ASS)) (fileType == Utils::DocumentType::Audio) || (fileType == Utils::DocumentType::ASS))
addTab(new VivyDocumentView(vivyApp->documentStore.loadDocument(filename))); addTab(new VivyDocumentView(vivyApp->documentStore.loadDocument(filename), documents));
else if (fileType == Utils::DocumentType::VivyScript) else if (fileType == Utils::DocumentType::VivyScript)
addTab(new ScriptDocumentView(filename, documents)); addTab(new ScriptDocumentView(vivyApp->scriptStore.loadDocument(filename), documents));
} catch (const std::runtime_error &e) { } catch (const std::runtime_error &e) {
qCritical() << "Failed to load document" << filename << "with error:" << e.what(); qCritical() << "Failed to load document" << filename << "with error:" << e.what();
} }
......
...@@ -7,12 +7,12 @@ ...@@ -7,12 +7,12 @@
using namespace Vivy; using namespace Vivy;
ScriptDocumentView::ScriptDocumentView(const QString &path, QWidget *parent) ScriptDocumentView::ScriptDocumentView(std::shared_ptr<ScriptDocument> ptr, QWidget *parent)
: AbstractDocumentView(AbstractDocumentView::Type::Script, parent) : AbstractDocumentView(AbstractDocumentView::Type::Script, parent)
, editor(new ScriptEditor(this)) , editor(new ScriptEditor(this))
, syntax(new ScriptHighlighter(editor->document())) , syntax(new ScriptHighlighter(editor->document()))
{ {
QFile textFile(path); QFile textFile(ptr->getName());
if (!textFile.open(QIODevice::ReadOnly | QIODevice::Text)) { if (!textFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
throw std::runtime_error("Failed to open script file"); throw std::runtime_error("Failed to open script file");
} }
......
...@@ -15,13 +15,14 @@ namespace Vivy ...@@ -15,13 +15,14 @@ namespace Vivy
{ {
class ScriptEditor; class ScriptEditor;
class ScriptHighlighter; class ScriptHighlighter;
class ScriptDocument;
class ScriptDocumentView final : public AbstractDocumentView { class ScriptDocumentView final : public AbstractDocumentView {
Q_OBJECT Q_OBJECT
VIVY_UNMOVABLE_OBJECT(ScriptDocumentView) VIVY_UNMOVABLE_OBJECT(ScriptDocumentView)
public: public:
explicit ScriptDocumentView(const QString &path, QWidget *parent = nullptr); explicit ScriptDocumentView(std::shared_ptr<ScriptDocument>, QWidget *parent = nullptr);
void closeDocument() noexcept override; void closeDocument() noexcept override;
void openProperties() noexcept override; void openProperties() noexcept override;
......
...@@ -21,7 +21,7 @@ class VivyDocumentView final : public AbstractDocumentView { ...@@ -21,7 +21,7 @@ class VivyDocumentView final : public AbstractDocumentView {
VIVY_UNMOVABLE_OBJECT(VivyDocumentView) VIVY_UNMOVABLE_OBJECT(VivyDocumentView)
public: public:
explicit VivyDocumentView(std::shared_ptr<VivyDocument>, QWidget *parent = nullptr) noexcept; explicit VivyDocumentView(std::shared_ptr<VivyDocument>, QWidget *parent) noexcept;
~VivyDocumentView() noexcept; ~VivyDocumentView() noexcept;
void closeDocument() noexcept override; void closeDocument() noexcept override;
......
...@@ -34,6 +34,7 @@ class VivyApplication : public QApplication { ...@@ -34,6 +34,7 @@ class VivyApplication : public QApplication {
public: public:
VivyDocumentStore documentStore{}; VivyDocumentStore documentStore{};
ScriptStore scriptStore{};
enum class Font { enum class Font {
Monospace, Monospace,
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Veuillez vous inscrire ou vous pour commenter