aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrial97 <alexandru.tripon97@gmail.com>2023-09-25 22:33:36 +0300
committerTrial97 <alexandru.tripon97@gmail.com>2023-09-25 22:33:36 +0300
commit86b47b3421101083a5d0a93a11d33f35c3f8f4a2 (patch)
tree166d0f84e1adba440da331bf73d191185dddd5ac
parent0406e168e716031e3cee1a23d70d508d0eb63dd2 (diff)
downloadPrismLauncher-86b47b3421101083a5d0a93a11d33f35c3f8f4a2.tar.gz
PrismLauncher-86b47b3421101083a5d0a93a11d33f35c3f8f4a2.tar.bz2
PrismLauncher-86b47b3421101083a5d0a93a11d33f35c3f8f4a2.zip
Do not display invalid shaders
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
-rw-r--r--launcher/minecraft/mod/ShaderPack.cpp7
-rw-r--r--launcher/minecraft/mod/ShaderPack.h1
-rw-r--r--launcher/minecraft/mod/ShaderPackFolderModel.h13
3 files changed, 20 insertions, 1 deletions
diff --git a/launcher/minecraft/mod/ShaderPack.cpp b/launcher/minecraft/mod/ShaderPack.cpp
index 6a9641de..2c094f26 100644
--- a/launcher/minecraft/mod/ShaderPack.cpp
+++ b/launcher/minecraft/mod/ShaderPack.cpp
@@ -22,7 +22,7 @@
#include "ShaderPack.h"
-#include "minecraft/mod/tasks/LocalShaderPackParseTask.h"
+#include <QRegularExpression>
void ShaderPack::setPackFormat(ShaderPackFormat new_format)
{
@@ -35,3 +35,8 @@ bool ShaderPack::valid() const
{
return m_pack_format != ShaderPackFormat::INVALID;
}
+
+bool ShaderPack::applyFilter(QRegularExpression filter) const
+{
+ return valid() && Resource::applyFilter(filter);
+}
diff --git a/launcher/minecraft/mod/ShaderPack.h b/launcher/minecraft/mod/ShaderPack.h
index ec0f9404..d07c124b 100644
--- a/launcher/minecraft/mod/ShaderPack.h
+++ b/launcher/minecraft/mod/ShaderPack.h
@@ -54,6 +54,7 @@ class ShaderPack : public Resource {
void setPackFormat(ShaderPackFormat new_format);
bool valid() const override;
+ [[nodiscard]] bool applyFilter(QRegularExpression filter) const override;
protected:
mutable QMutex m_data_lock;
diff --git a/launcher/minecraft/mod/ShaderPackFolderModel.h b/launcher/minecraft/mod/ShaderPackFolderModel.h
index 44ed37a4..186d0213 100644
--- a/launcher/minecraft/mod/ShaderPackFolderModel.h
+++ b/launcher/minecraft/mod/ShaderPackFolderModel.h
@@ -1,6 +1,9 @@
#pragma once
#include "ResourceFolderModel.h"
+#include "minecraft/mod/ShaderPack.h"
+#include "minecraft/mod/tasks/BasicFolderLoadTask.h"
+#include "minecraft/mod/tasks/LocalShaderPackParseTask.h"
class ShaderPackFolderModel : public ResourceFolderModel {
Q_OBJECT
@@ -9,4 +12,14 @@ class ShaderPackFolderModel : public ResourceFolderModel {
explicit ShaderPackFolderModel(const QString& dir, BaseInstance* instance) : ResourceFolderModel(QDir(dir), instance) {}
virtual QString id() const override { return "shaderpacks"; }
+
+ [[nodiscard]] Task* createUpdateTask() override
+ {
+ return new BasicFolderLoadTask(m_dir, [](QFileInfo const& entry) { return makeShared<ShaderPack>(entry); });
+ }
+
+ [[nodiscard]] Task* createParseTask(Resource& resource) override
+ {
+ return new LocalShaderPackParseTask(m_next_resolution_ticket, static_cast<ShaderPack&>(resource));
+ }
};