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 ...@@ -32,6 +32,12 @@ VivyDocumentStore::loadDocument(const QString &file) noexcept
return ret; return ret;
} }
bool
VivyDocumentStore::isDocumentPresent(const QString &name) noexcept
{
return documents.count(name) >= 1;
}
VivyDocument * VivyDocument *
VivyDocumentStore::newDocument([[maybe_unused]] const QString &name) noexcept VivyDocumentStore::newDocument([[maybe_unused]] const QString &name) noexcept
{ {
......
...@@ -22,6 +22,9 @@ public: ...@@ -22,6 +22,9 @@ public:
[[nodiscard("allocated")]] VivyDocument *loadDocument(const QString &file) noexcept; [[nodiscard("allocated")]] VivyDocument *loadDocument(const QString &file) noexcept;
[[nodiscard("allocated")]] VivyDocument *newDocument(const QString &name) 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 /* Close a document, please be sure to not used any of the dangling
* references to the closed document... */ * references to the closed document... */
void closeDocument(const QString &name) noexcept; void closeDocument(const QString &name) noexcept;
......
...@@ -28,6 +28,7 @@ MainWindow::MainWindow(QWidget *parent) noexcept ...@@ -28,6 +28,7 @@ MainWindow::MainWindow(QWidget *parent) noexcept
documents->setTabsClosable(true); documents->setTabsClosable(true);
documents->setElideMode(Qt::ElideRight); documents->setElideMode(Qt::ElideRight);
documents->setUsesScrollButtons(true); documents->setUsesScrollButtons(true);
documents->setDocumentMode(true);
connect(documents, &QTabWidget::tabCloseRequested, this, &MainWindow::closeDocument); connect(documents, &QTabWidget::tabCloseRequested, this, &MainWindow::closeDocument);
setCentralWidget(documents); setCentralWidget(documents);
...@@ -75,6 +76,11 @@ MainWindow::openDocument() noexcept ...@@ -75,6 +76,11 @@ MainWindow::openDocument() noexcept
} }
QFileInfo fileInfo(filename); 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; qDebug() << "Trying to open file " << filename;
VivyDocument *document = documentStore.loadDocument(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