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

LIB: Basic ScriptStore

parent 19ca033d
Branches
Aucune étiquette associée trouvée
1 requête de fusion!12Script store
Ce commit fait partie de la requête de fusion !12. Les commentaires créés ici seront créés dans le contexte de cette requête de fusion.
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
#endif #endif
#include "Utils.hh" #include "Utils.hh"
#include "Uuid.hh"
#include <QFileInfo> #include <QFileInfo>
#include <QDir> #include <QDir>
...@@ -44,6 +45,7 @@ protected: ...@@ -44,6 +45,7 @@ protected:
public: public:
virtual bool rename(const QString &) noexcept = 0; virtual bool rename(const QString &) noexcept = 0;
virtual QString getName() const noexcept = 0; virtual QString getName() const noexcept = 0;
virtual Uuid getUuid() const noexcept = 0;
signals: signals:
void documentChanged(); void documentChanged();
......
...@@ -69,8 +69,8 @@ public: ...@@ -69,8 +69,8 @@ public:
std::shared_ptr<AssSubDocument> getAssSubDocument() const noexcept; std::shared_ptr<AssSubDocument> getAssSubDocument() const noexcept;
QString getName() const noexcept override; QString getName() const noexcept override;
Uuid getUuid() const noexcept;
QString getDocumentCapabilitiesString() const noexcept; QString getDocumentCapabilitiesString() const noexcept;
Uuid getUuid() const noexcept override;
bool checkDocumentCapabilities(Capabilities) const noexcept; bool checkDocumentCapabilities(Capabilities) const noexcept;
bool checkDocumentOption(Options) const noexcept; bool checkDocumentOption(Options) const noexcept;
......
...@@ -20,7 +20,7 @@ class VivyDocumentStore final : public CRTPStore<VivyDocumentStore, VivyDocument ...@@ -20,7 +20,7 @@ class VivyDocumentStore final : public CRTPStore<VivyDocumentStore, VivyDocument
public: public:
explicit VivyDocumentStore() noexcept = default; explicit VivyDocumentStore() noexcept = default;
/* Create/load documents */ // Create/load documents
std::shared_ptr<VivyDocument> loadDocument(const QString &file); std::shared_ptr<VivyDocument> loadDocument(const QString &file);
std::shared_ptr<VivyDocument> newDocument(VivyDocument::Options opt = VivyDocument::NoOption); std::shared_ptr<VivyDocument> newDocument(VivyDocument::Options opt = VivyDocument::NoOption);
}; };
......
...@@ -25,3 +25,9 @@ ScriptDocument::getName() const noexcept ...@@ -25,3 +25,9 @@ ScriptDocument::getName() const noexcept
{ {
return name; return name;
} }
Vivy::Uuid
ScriptDocument::getUuid() const noexcept
{
return uuid;
}
...@@ -15,6 +15,7 @@ public: ...@@ -15,6 +15,7 @@ public:
bool rename(const QString &) noexcept override; bool rename(const QString &) noexcept override;
QString getName() const noexcept override; QString getName() const noexcept override;
Uuid getUuid() const noexcept override;
private: private:
QString name{}; QString name{};
......
#include "ScriptStore.hh"
#include "../Uuid.hh"
using namespace Vivy::Script;
std::shared_ptr<ScriptDocument>
ScriptStore::loadDocument(const QString &file)
{
try {
auto ret = std::make_shared<ScriptDocument>(file);
const Uuid uuid = ret->getUuid();
documents[uuid] = ret;
return ret;
} catch (const std::runtime_error &e) {
qCritical() << "Failed to create the Script document with:" << e.what();
return std::shared_ptr<ScriptDocument>(nullptr);
}
}
#pragma once #pragma once
#include "../CRTPStore.hh" #include "../CRTPStore.hh"
#include "ScriptDocument.hh"
namespace Vivy::Script namespace Vivy::Script
{ {
class ScriptDocument;
class ScriptStore final : public CRTPStore<ScriptStore, ScriptDocument> { class ScriptStore final : public CRTPStore<ScriptStore, ScriptDocument> {
VIVY_STORAGE_CLASS(ScriptStore, ScriptDocument) VIVY_STORAGE_CLASS(ScriptStore, ScriptDocument)
public: public:
explicit ScriptStore() noexcept = default; explicit ScriptStore() noexcept = default;
std::shared_ptr<ScriptDocument> loadDocument(const QString &file);
}; };
} }
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