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

DOCUMENT: The store can now close the documents when needed

parent b7bb13c9
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!3Add documents
......@@ -38,6 +38,20 @@ VivyDocumentStore::newDocument([[maybe_unused]] const QString &name) noexcept
return nullptr;
}
void
VivyDocumentStore::closeDocument(const QString &name) noexcept
{
qDebug() << "Store is closing the document " << name;
VivyDocument *__restrict doc = documents.take(name);
VivyDocumentView *__restrict docView = documentsViews.take(name);
if (docView != nullptr)
delete docView;
if (doc != nullptr)
delete doc;
}
VivyDocument *
VivyDocumentStore::getDocument(const QString &name) const noexcept
{
......
......@@ -22,6 +22,10 @@ public:
[[nodiscard("allocated")]] VivyDocument *loadDocument(const QString &file) noexcept;
[[nodiscard("allocated")]] VivyDocument *newDocument(const QString &name) noexcept;
/* Close a document, please be sure to not used any of the dangling
* references to the closed document... */
void closeDocument(const QString &name) noexcept;
/* Get stored documents */
[[nodiscard("maybe-allocated")]] VivyDocument *getDocument(const QString &name) const noexcept;
[[nodiscard("maybe-allocated")]] VivyDocumentView *getDocumentView(const QString &name) const noexcept;
......
......@@ -19,3 +19,9 @@ VivyDocumentView::VivyDocumentView(VivyDocument *doc) noexcept
layout->addWidget(visualizer);
setLayout(layout);
}
VivyDocument *
VivyDocumentView::getDocument() const noexcept
{
return &document;
}
......@@ -16,6 +16,8 @@ class VivyDocumentView final : public QWidget {
public:
explicit VivyDocumentView(VivyDocument *) noexcept;
VivyDocument *getDocument() const noexcept;
private:
VivyDocument &document; // A non-null pointer to the document
AudioVisualizer *visualizer = nullptr;
......
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