diff options
author | flow <flowlnlnln@gmail.com> | 2022-11-11 12:48:53 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-11-11 12:48:53 -0800 |
commit | 64576f4c4c6c41ba4528a00a38242955079f52ec (patch) | |
tree | ab49b1ce0f8dfa8a8a6557aedd905e1d2e1ac708 /launcher/ui/dialogs/BlockedModsDialog.h | |
parent | 21dbd28a2f2397f0053f4f40563c16cb03b0fdfe (diff) | |
parent | 2f10fa8b61dac5af5866e7ad8e72cf702f15a130 (diff) | |
download | PrismLauncher-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.h | 35 |
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); |