From 536d12469a4899c9cf3701b399be328f3ab5be6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20T=C5=AFma?= Date: Sun, 21 Jan 2024 17:50:56 +0100 Subject: [PATCH] Use the canonical file name also for the "already open" check --- src/GUI/gui.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/GUI/gui.cpp b/src/GUI/gui.cpp index b5d32f8d..0423b21f 100644 --- a/src/GUI/gui.cpp +++ b/src/GUI/gui.cpp @@ -1028,13 +1028,16 @@ void GUI::openDir() bool GUI::openFile(const QString &fileName, bool tryUnknown, int &showError) { - if (_files.contains(fileName)) + QFileInfo fi(fileName); + QString canonicalFileName(fi.canonicalFilePath()); + + if (_files.contains(canonicalFileName)) return true; if (!loadFile(fileName, tryUnknown, showError)) return false; - _files.append(fileName); + _files.append(canonicalFileName); #ifndef Q_OS_ANDROID _browser->setCurrent(fileName); #endif // Q_OS_ANDROID @@ -1047,7 +1050,7 @@ bool GUI::openFile(const QString &fileName, bool tryUnknown, int &showError) updateStatusBarInfo(); updateWindowTitle(); #ifndef Q_OS_ANDROID - updateRecentFiles(fileName); + updateRecentFiles(canonicalFileName); #endif // Q_OS_ANDROID return true; @@ -2026,13 +2029,11 @@ void GUI::updateWindowTitle() #ifndef Q_OS_ANDROID void GUI::updateRecentFiles(const QString &fileName) { - QFileInfo fi(fileName); - QString canonicalFileName(fi.canonicalFilePath()); QAction *a = 0; QList actions(_recentFilesActionGroup->actions()); for (int i = 0; i < actions.size(); i++) { - if (actions.at(i)->text() == canonicalFileName) { + if (actions.at(i)->text() == fileName) { a = actions.at(i); break; } @@ -2046,7 +2047,7 @@ void GUI::updateRecentFiles(const QString &fileName) actions = _recentFilesActionGroup->actions(); QAction *before = actions.size() ? actions.last() : _recentFilesEnd; _recentFilesMenu->insertAction(before, - new QAction(canonicalFileName, _recentFilesActionGroup)); + new QAction(fileName, _recentFilesActionGroup)); _recentFilesMenu->setEnabled(true); }