diff options
author | flow <flowlnlnln@gmail.com> | 2022-08-12 17:09:56 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2022-08-20 10:49:23 -0300 |
commit | c3ceefbafbbeb3d31630ef329405ebaacdf9fce5 (patch) | |
tree | c7ffb9165a5fb2a74ffb7372dd344607244eeaf9 /launcher/minecraft/mod/tasks/BasicFolderLoadTask.h | |
parent | e7cf9932a9695417d40d895ac6174186f074f053 (diff) | |
download | PrismLauncher-c3ceefbafbbeb3d31630ef329405ebaacdf9fce5.tar.gz PrismLauncher-c3ceefbafbbeb3d31630ef329405ebaacdf9fce5.tar.bz2 PrismLauncher-c3ceefbafbbeb3d31630ef329405ebaacdf9fce5.zip |
refactor+fix: add new tests for Resource models and fix issues
Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/minecraft/mod/tasks/BasicFolderLoadTask.h')
-rw-r--r-- | launcher/minecraft/mod/tasks/BasicFolderLoadTask.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/launcher/minecraft/mod/tasks/BasicFolderLoadTask.h b/launcher/minecraft/mod/tasks/BasicFolderLoadTask.h index 2944c747..cc02a9b9 100644 --- a/launcher/minecraft/mod/tasks/BasicFolderLoadTask.h +++ b/launcher/minecraft/mod/tasks/BasicFolderLoadTask.h @@ -17,7 +17,7 @@ class BasicFolderLoadTask : public Task Q_OBJECT public: struct Result { - QMap<QString, Resource*> resources; + QMap<QString, Resource::Ptr> resources; }; using ResultPtr = std::shared_ptr<Result>; @@ -27,6 +27,10 @@ public: public: BasicFolderLoadTask(QDir dir) : Task(nullptr, false), m_dir(dir), m_result(new Result) {} + + [[nodiscard]] bool canAbort() const override { return true; } + bool abort() override { m_aborted = true; return true; } + void executeTask() override { m_dir.refresh(); @@ -35,10 +39,15 @@ public: m_result->resources.insert(resource->internal_id(), resource); } - emitSucceeded(); + if (m_aborted) + emitAborted(); + else + emitSucceeded(); } private: QDir m_dir; ResultPtr m_result; + + bool m_aborted = false; }; |