From 2b62e42c55e99d63418b9851412531997d33965a Mon Sep 17 00:00:00 2001 From: Nikhil Tanwar <2002nikhiltanwar@gmail.com> Date: Wed, 23 Feb 2022 22:24:39 +0530 Subject: [PATCH 1/3] Fix wrong path creation The previous implementation lead to a path like: dir1/dir2/dir3\dir4 on windows --- src/library.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/library.cpp b/src/library.cpp index e0d9f37..7ae454a 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -150,7 +150,7 @@ void Library::loadMonitorDir(QString monitorDir) const QDir dir(monitorDir); QStringList newDirEntries = dir.entryList({"*.zim"}); for (auto &str : newDirEntries) { - str = monitorDir + QDir::separator() + str; + str = QDir::toNativeSeparators(monitorDir + "/" + str); } QSet newDir = QSet::fromList(newDirEntries); QStringList oldDirEntries = m_monitorDirZims; From 70e13865aa66ef4e4ea9f5fbd7f3ac0dc54d6c2f Mon Sep 17 00:00:00 2001 From: Nikhil Tanwar <2002nikhiltanwar@gmail.com> Date: Wed, 23 Feb 2022 23:52:11 +0530 Subject: [PATCH 2/3] Remove save() from load monitor dir Calling save() from loadMonitorDir() can cause the file watcher (when connected to same directory as download directory) to listen to directoryChanged signal, and going into an infinite loop. We already call save() in the library destructor, hence no functionality is compromised. --- src/library.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/library.cpp b/src/library.cpp index 7ae454a..13c190d 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -167,7 +167,6 @@ void Library::loadMonitorDir(QString monitorDir) removeBookFromLibraryById(QString::fromStdString(m_library.getBookByPath(bookPath.toStdString()).getId())); } emit(booksChanged()); - save(); } void Library::asyncLoadMonitorDir(QString dir) From fac7065c5d5b724533866e3bd820e2b895b1521a Mon Sep 17 00:00:00 2001 From: Nikhil Tanwar <2002nikhiltanwar@gmail.com> Date: Fri, 25 Feb 2022 19:59:47 +0530 Subject: [PATCH 3/3] Use native separators in settings panel Adds functionality to use native separators, to follow Windows standards --- src/settingsmanager.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/settingsmanager.cpp b/src/settingsmanager.cpp index cd3fee9..bfdf0e3 100644 --- a/src/settingsmanager.cpp +++ b/src/settingsmanager.cpp @@ -75,6 +75,7 @@ void SettingsManager::setZoomFactor(qreal zoomFactor) void SettingsManager::setDownloadDir(QString downloadDir) { + downloadDir = QDir::toNativeSeparators(downloadDir); m_downloadDir = downloadDir; m_settings.setValue("download/dir", downloadDir); emit(downloadDirChanged(downloadDir)); @@ -82,6 +83,7 @@ void SettingsManager::setDownloadDir(QString downloadDir) void SettingsManager::setMonitorDir(QString monitorDir) { + monitorDir = QDir::toNativeSeparators(monitorDir); m_monitorDir = monitorDir; m_settings.setValue("monitor/dir", monitorDir); emit(monitorDirChanged(monitorDir));