diff --git a/.gitignore b/.gitignore index 4a483555..8d5e2468 100644 --- a/.gitignore +++ b/.gitignore @@ -46,3 +46,6 @@ CMakeLists.txt.user* bin/* build/* + +*.qm +.qm diff --git a/src/qvimagecore.cpp b/src/qvimagecore.cpp index 549a1aa7..0fecd73b 100644 --- a/src/qvimagecore.cpp +++ b/src/qvimagecore.cpp @@ -262,7 +262,14 @@ QList QVImageCore::getCompatibleFiles(const QString QMimeDatabase::MatchMode mimeMatchMode = allowMimeContentDetection ? QMimeDatabase::MatchDefault : QMimeDatabase::MatchExtension; - const QFileInfoList currentFolder = QDir(dirPath).entryInfoList(QDir::Files | QDir::Hidden, QDir::Unsorted); + // skip hidden files if user wants to + QDir::Filters filters = QDir::Files; + + auto &settingsManager = qvApp->getSettingsManager(); + if (!settingsManager.getBoolean("skiphidden")) + filters |= QDir::Hidden; + + const QFileInfoList currentFolder = QDir(dirPath).entryInfoList(filters, QDir::Unsorted); for (const QFileInfo &fileInfo : currentFolder) { bool matched = false; diff --git a/src/qvoptionsdialog.cpp b/src/qvoptionsdialog.cpp index 8e61a3fb..8204066b 100644 --- a/src/qvoptionsdialog.cpp +++ b/src/qvoptionsdialog.cpp @@ -196,6 +196,8 @@ void QVOptionsDialog::syncSettings(bool defaults, bool makeConnections) syncCheckbox(ui->saveRecentsCheckbox, "saverecents", defaults, makeConnections); // updatenotifications syncCheckbox(ui->updateCheckbox, "updatenotifications", defaults, makeConnections); + // skiphidden + syncCheckbox(ui->skipHiddenCheckbox, "skiphidden", defaults, makeConnections); } void QVOptionsDialog::syncCheckbox(QCheckBox *checkbox, const QString &key, bool defaults, bool makeConnection) diff --git a/src/qvoptionsdialog.ui b/src/qvoptionsdialog.ui index a53c2c78..9b488cec 100644 --- a/src/qvoptionsdialog.ui +++ b/src/qvoptionsdialog.ui @@ -9,8 +9,8 @@ 0 0 - 497 - 558 + 447 + 562 @@ -721,6 +721,16 @@ + + + + Skip hidden files when browsing to the next/previous file + + + Skip hidden files + + + diff --git a/src/settingsmanager.cpp b/src/settingsmanager.cpp index 910fde7f..01b52080 100644 --- a/src/settingsmanager.cpp +++ b/src/settingsmanager.cpp @@ -180,4 +180,5 @@ void SettingsManager::initializeSettingsLibrary() settingsLibrary.insert("allowmimecontentdetection", {false, {}}); settingsLibrary.insert("saverecents", {true, {}}); settingsLibrary.insert("updatenotifications", {false, {}}); + settingsLibrary.insert("skiphidden", {true, {}}); }