aboutsummaryrefslogtreecommitdiff
path: root/launcher/minecraft/mod/tasks/BasicFolderLoadTask.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-08-12 17:09:56 -0300
committerflow <flowlnlnln@gmail.com>2022-08-20 10:49:23 -0300
commitc3ceefbafbbeb3d31630ef329405ebaacdf9fce5 (patch)
treec7ffb9165a5fb2a74ffb7372dd344607244eeaf9 /launcher/minecraft/mod/tasks/BasicFolderLoadTask.h
parente7cf9932a9695417d40d895ac6174186f074f053 (diff)
downloadPrismLauncher-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.h13
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;
};