aboutsummaryrefslogtreecommitdiff
path: root/launcher/modplatform/ModIndex.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-12-18 15:41:46 -0300
committerflow <flowlnlnln@gmail.com>2023-01-13 16:23:07 -0300
commit45d1319891ce87cc1546a316ad550f892d411633 (patch)
treea1eaabd0e5fc362a82ebfbe93bfe20697608fe1e /launcher/modplatform/ModIndex.h
parent39b7ac90d40eb53d7b88ef99b0fa46fb3e1840b9 (diff)
downloadPrismLauncher-45d1319891ce87cc1546a316ad550f892d411633.tar.gz
PrismLauncher-45d1319891ce87cc1546a316ad550f892d411633.tar.bz2
PrismLauncher-45d1319891ce87cc1546a316ad550f892d411633.zip
refactor(RD): decouple ResourceModels from ResourcePages
This makes it so that we don't need a reference to the parent page in the model. It will be useful once we change the page from a widget-based one to a QML page. It also makes tasks be created in the dialog instead of the page, so that the dialog can also have the necessary information to mark versions as selected / deselected easily. It also makes the task pointers into smart pointers. Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/modplatform/ModIndex.h')
-rw-r--r--launcher/modplatform/ModIndex.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/launcher/modplatform/ModIndex.h b/launcher/modplatform/ModIndex.h
index f65a6a4b..cd40a6ba 100644
--- a/launcher/modplatform/ModIndex.h
+++ b/launcher/modplatform/ModIndex.h
@@ -65,6 +65,9 @@ struct IndexedVersion {
QString hash;
bool is_preferred = true;
QString changelog;
+
+ // For internal use, not provided by APIs
+ bool is_currently_selected = false;
};
struct ExtraPackData {
@@ -95,6 +98,23 @@ struct IndexedPack {
// Don't load by default, since some modplatform don't have that info
bool extraDataLoaded = true;
ExtraPackData extraData;
+
+ // For internal use, not provided by APIs
+ [[nodiscard]] bool isVersionSelected(size_t index) const
+ {
+ if (!versionsLoaded)
+ return false;
+
+ return versions.at(index).is_currently_selected;
+ }
+ [[nodiscard]] bool isAnyVersionSelected() const
+ {
+ if (!versionsLoaded)
+ return false;
+
+ return std::any_of(versions.constBegin(), versions.constEnd(),
+ [](auto const& v) { return v.is_currently_selected; });
+ }
};
} // namespace ModPlatform