aboutsummaryrefslogtreecommitdiff
path: root/launcher/ui/dialogs/BlockedModsDialog.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-11-11 12:48:53 -0800
committerGitHub <noreply@github.com>2022-11-11 12:48:53 -0800
commit64576f4c4c6c41ba4528a00a38242955079f52ec (patch)
treeab49b1ce0f8dfa8a8a6557aedd905e1d2e1ac708 /launcher/ui/dialogs/BlockedModsDialog.h
parent21dbd28a2f2397f0053f4f40563c16cb03b0fdfe (diff)
parent2f10fa8b61dac5af5866e7ad8e72cf702f15a130 (diff)
downloadPrismLauncher-64576f4c4c6c41ba4528a00a38242955079f52ec.tar.gz
PrismLauncher-64576f4c4c6c41ba4528a00a38242955079f52ec.tar.bz2
PrismLauncher-64576f4c4c6c41ba4528a00a38242955079f52ec.zip
Merge pull request #304 from Ryex/move-downloads
Fixes https://github.com/PrismLauncher/PrismLauncher/issues/222
Diffstat (limited to 'launcher/ui/dialogs/BlockedModsDialog.h')
-rw-r--r--launcher/ui/dialogs/BlockedModsDialog.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/launcher/ui/dialogs/BlockedModsDialog.h b/launcher/ui/dialogs/BlockedModsDialog.h
index 5f5bd61b..0a5c90db 100644
--- a/launcher/ui/dialogs/BlockedModsDialog.h
+++ b/launcher/ui/dialogs/BlockedModsDialog.h
@@ -1,7 +1,23 @@
#pragma once
#include <QDialog>
+#include <QString>
+#include <QList>
+#include <QFileSystemWatcher>
+
+#include "modplatform/helpers/HashUtils.h"
+
+#include "tasks/ConcurrentTask.h"
+
+struct BlockedMod {
+ QString name;
+ QString websiteUrl;
+ QString hash;
+ bool matched;
+ QString localPath;
+
+};
QT_BEGIN_NAMESPACE
namespace Ui { class BlockedModsDialog; }
@@ -11,12 +27,27 @@ class BlockedModsDialog : public QDialog {
Q_OBJECT
public:
- BlockedModsDialog(QWidget *parent, const QString &title, const QString &text, const QString &body, const QList<QUrl> &urls);
+ BlockedModsDialog(QWidget *parent, const QString &title, const QString &text, QList<BlockedMod> &mods);
~BlockedModsDialog() override;
+
private:
Ui::BlockedModsDialog *ui;
- const QList<QUrl> &urls;
+ QList<BlockedMod> &mods;
+ QFileSystemWatcher watcher;
+ shared_qobject_ptr<ConcurrentTask> hashing_task;
+
void openAll();
+ void update();
+ void directoryChanged(QString path);
+ void setupWatch();
+ void scanPaths();
+ void scanPath(QString path);
+ void checkMatchHash(QString hash, QString path);
+
+ bool checkValidPath(QString path);
+ bool allModsMatched();
};
+
+QDebug operator<<(QDebug debug, const BlockedMod &m);