Skip to content

Commit

Permalink
feat: add excluded extension feature to MD5 fixer (fix #3285)
Browse files Browse the repository at this point in the history
  • Loading branch information
Bionus committed Oct 13, 2024
1 parent 0e952df commit 73f6cc0
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 12 deletions.
4 changes: 2 additions & 2 deletions src/gui/src/utils/md5-fix/md5-fix-worker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
#include "functions.h"


void Md5FixWorker::doWork(const QString &d, const QString &format, const QStringList &suffixes, bool force)
void Md5FixWorker::doWork(const QString &d, const QString &format, const QStringList &suffixes, const QSet<QString> &excludedExtensions, bool force)
{
QDir dir(d);

// Get all files from the destination directory
auto files = listFilesFromDirectory(dir, suffixes);
auto files = listFilesFromDirectory(dir, suffixes, excludedExtensions);
emit maximumSet(files.count());

int loaded = 0;
Expand Down
2 changes: 1 addition & 1 deletion src/gui/src/utils/md5-fix/md5-fix-worker.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ class Md5FixWorker : public QObject
Q_OBJECT

public slots:
void doWork(const QString &dir, const QString &filename, const QStringList &suffixes, bool force);
void doWork(const QString &dir, const QString &filename, const QStringList &suffixes, const QSet<QString> &excludedExtensions, bool force);

signals:
void maximumSet(int max);
Expand Down
8 changes: 7 additions & 1 deletion src/gui/src/utils/md5-fix/md5-fix.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -109,5 +109,11 @@ void Md5Fix::start()
suffix = suffix.trimmed();
}

emit startWorker(dir, ui->lineFilename->text(), suffixes, force);
// Excluded extensions
QSet<QString> excludedExtensions;
for (QString &excludedExtension : ui->lineExcludeExtensions->text().split(',')) {
excludedExtensions.insert(excludedExtension.trimmed());
}

emit startWorker(dir, ui->lineFilename->text(), suffixes, excludedExtensions, force);
}
2 changes: 1 addition & 1 deletion src/gui/src/utils/md5-fix/md5-fix.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ class Md5Fix : public QDialog
void workerFinished(int loadedCount);

signals:
void startWorker(const QString &dir, const QString &format, const QStringList &suffixes, bool force);
void startWorker(const QString &dir, const QString &format, const QStringList &suffixes, const QSet<QString> &excludedExtensions, bool force);

private:
Ui::Md5Fix *ui;
Expand Down
22 changes: 18 additions & 4 deletions src/gui/src/utils/md5-fix/md5-fix.ui
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
</property>
<layout class="QFormLayout" name="formLayout">
<property name="fieldGrowthPolicy">
<enum>QFormLayout::AllNonFixedFieldsGrow</enum>
<enum>QFormLayout::FieldGrowthPolicy::AllNonFixedFieldsGrow</enum>
</property>
<item row="0" column="0" colspan="2">
<widget class="QLabel" name="label_3">
Expand Down Expand Up @@ -68,7 +68,7 @@
<item row="4" column="1">
<widget class="QLineEdit" name="lineFilename"/>
</item>
<item row="6" column="0" colspan="2">
<item row="7" column="0" colspan="2">
<widget class="QProgressBar" name="progressBar">
<property name="enabled">
<bool>true</bool>
Expand All @@ -78,12 +78,12 @@
</property>
</widget>
</item>
<item row="7" column="0" colspan="2">
<item row="8" column="0" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_4">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
Expand Down Expand Up @@ -119,6 +119,20 @@
<item row="5" column="1">
<widget class="QLineEdit" name="lineSuffixes"/>
</item>
<item row="6" column="0">
<widget class="QLabel" name="labelExcludeExtensions">
<property name="text">
<string>Exclude extensions</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="lineExcludeExtensions">
<property name="text">
<string>txt, xmp</string>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
Expand Down
5 changes: 3 additions & 2 deletions src/lib/src/functions.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1064,15 +1064,16 @@ bool isFileParentWithSuffix(const QString &fileName, const QString &parent, cons
}
return false;
}
QList<QPair<QString, QStringList>> listFilesFromDirectory(const QDir &dir, const QStringList &suffixes)
QList<QPair<QString, QStringList>> listFilesFromDirectory(const QDir &dir, const QStringList &suffixes, const QSet<QString> &excludedExtensions)
{
auto files = QList<QPair<QString, QStringList>>();

QDirIterator it(dir, QDirIterator::Subdirectories);
while (it.hasNext()) {
it.next();

if (it.fileInfo().isDir()) {
const QFileInfo fi = it.fileInfo();
if (fi.isDir() || excludedExtensions.contains(fi.suffix())) {
continue;
}

Expand Down
3 changes: 2 additions & 1 deletion src/lib/src/functions.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include <QMap>
#include <QRect>
#include <QSet>
#include <QString>
#include <QStringList>
#include <QKeySequence>
Expand Down Expand Up @@ -88,7 +89,7 @@ QString decodeHtmlEntities(const QString &html);
QString qFontToCss(const QFont &font);
QFont qFontFromString(const QString &str);

QList<QPair<QString, QStringList>> listFilesFromDirectory(const QDir &dir, const QStringList &suffixes);
QList<QPair<QString, QStringList>> listFilesFromDirectory(const QDir &dir, const QStringList &suffixes, const QSet<QString> &excludedExtensions = {});

QUrl removeCacheBuster(QUrl url);

Expand Down

0 comments on commit 73f6cc0

Please sign in to comment.