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

DOCUMENT: Handle the case when the document is already loaded

parent fe3937e4
Aucune branche associée trouvée
Aucune étiquette associée trouvée
1 requête de fusion!3Add documents
......@@ -32,6 +32,12 @@ VivyDocumentStore::loadDocument(const QString &file) noexcept
return ret;
}
bool
VivyDocumentStore::isDocumentPresent(const QString &name) noexcept
{
return documents.count(name) >= 1;
}
VivyDocument *
VivyDocumentStore::newDocument([[maybe_unused]] const QString &name) noexcept
{
......
......@@ -22,6 +22,9 @@ public:
[[nodiscard("allocated")]] VivyDocument *loadDocument(const QString &file) noexcept;
[[nodiscard("allocated")]] VivyDocument *newDocument(const QString &name) noexcept;
/* Get to see if a document is already present or not */
[[nodiscard("handle-it")]] bool isDocumentPresent(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;
......
......@@ -28,6 +28,7 @@ MainWindow::MainWindow(QWidget *parent) noexcept
documents->setTabsClosable(true);
documents->setElideMode(Qt::ElideRight);
documents->setUsesScrollButtons(true);
documents->setDocumentMode(true);
connect(documents, &QTabWidget::tabCloseRequested, this, &MainWindow::closeDocument);
setCentralWidget(documents);
......@@ -75,6 +76,11 @@ MainWindow::openDocument() noexcept
}
QFileInfo fileInfo(filename);
const QString baseName = fileInfo.baseName();
if (documentStore.isDocumentPresent(baseName)) {
qWarning() << "The document " << baseName << " is already loaded";
return;
}
qDebug() << "Trying to open file " << filename;
VivyDocument *document = documentStore.loadDocument(filename);
......
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