diff --git a/src/Lib/CRTPStore.hh b/src/Lib/CRTPStore.hh index 57c27661d09aa835062f9d7a7df694a288e30ca4..d75be68098041fe270faaf295d579e2e1b0b6996 100644 --- a/src/Lib/CRTPStore.hh +++ b/src/Lib/CRTPStore.hh @@ -7,6 +7,8 @@ #include "Utils.hh" #include "Uuid.hh" #include <QString> +#include <QMap> +#include <memory> #define VIVY_STORAGE_CLASS(theClassName, theDocumentName) \ VIVY_UNMOVABLE_OBJECT(theClassName) \ @@ -30,6 +32,15 @@ protected: explicit CRTPStore() noexcept = default; public: + // Load a document by its name + std::shared_ptr<Document> loadDocument(const QString &file) + { + auto ret = std::make_shared<Document>(file); + const Uuid id = ret->getUuid(); + documents[id] = ret; + return ret; + } + // Close a document, please be sure to not used any of the dangling // references to the closed document... void closeDocument(const Uuid &uuid) noexcept diff --git a/src/Lib/Document/VivyDocumentStore.cc b/src/Lib/Document/VivyDocumentStore.cc index da9ff0ac1e4dde98cd53abf64558e6008d7e394d..5e2ca6fb98915c88d3c89d10dd0eeee6c57649f0 100644 --- a/src/Lib/Document/VivyDocumentStore.cc +++ b/src/Lib/Document/VivyDocumentStore.cc @@ -5,24 +5,6 @@ using namespace Vivy; -std::shared_ptr<VivyDocument> -VivyDocumentStore::loadDocument(const QString &file) -{ - const QFileInfo fileinfo(file); - const QString baseName = fileinfo.baseName(); - auto ret = std::make_shared<VivyDocument>(file); - - if (ret) { - qDebug() << "Register document " << baseName << ret->getDocumentCapabilitiesString(); - const Uuid uuid = ret->getUuid(); - documents[uuid] = ret; - return documents[uuid]; - } else { - qDebug() << "Failed to create document from " << file; - throw std::runtime_error("Failed to create the document"); - } -} - std::shared_ptr<VivyDocument> VivyDocumentStore::newDocument(VivyDocument::Options opt) { diff --git a/src/Lib/Document/VivyDocumentStore.hh b/src/Lib/Document/VivyDocumentStore.hh index 79929f2c7dee5343f5c583056c8fd20bc7a397fd..c2ac6b8e729a8befca9c085aeac25af81141a42b 100644 --- a/src/Lib/Document/VivyDocumentStore.hh +++ b/src/Lib/Document/VivyDocumentStore.hh @@ -8,10 +8,6 @@ #include "../Utils.hh" #include "../CRTPStore.hh" -#include <QMap> -#include <QString> -#include <memory> - namespace Vivy { class VivyDocumentStore final : public CRTPStore<VivyDocumentStore, VivyDocument> { @@ -20,8 +16,7 @@ class VivyDocumentStore final : public CRTPStore<VivyDocumentStore, VivyDocument public: explicit VivyDocumentStore() noexcept = default; - // Create/load documents - std::shared_ptr<VivyDocument> loadDocument(const QString &file); + // Create a new empty document with no backing file for the moment std::shared_ptr<VivyDocument> newDocument(VivyDocument::Options opt = VivyDocument::NoOption); }; diff --git a/src/Lib/Script/ScriptStore.cc b/src/Lib/Script/ScriptStore.cc index 959935a55ee363ea018e66015539a15df6fe2d70..deb8b89ec8427d0f5170498d48d2a5e01505889e 100644 --- a/src/Lib/Script/ScriptStore.cc +++ b/src/Lib/Script/ScriptStore.cc @@ -2,17 +2,3 @@ #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); - } -} diff --git a/src/Lib/Script/ScriptStore.hh b/src/Lib/Script/ScriptStore.hh index f42d84a03a9630f3f2818056598a7462f97ffc36..8cddd1ebb2e84783d9e5926c479d8d17c9caea3b 100644 --- a/src/Lib/Script/ScriptStore.hh +++ b/src/Lib/Script/ScriptStore.hh @@ -10,7 +10,5 @@ class ScriptStore final : public CRTPStore<ScriptStore, ScriptDocument> { public: explicit ScriptStore() noexcept = default; - - std::shared_ptr<ScriptDocument> loadDocument(const QString &file); }; }