diff options
author | flow <flowlnlnln@gmail.com> | 2022-12-18 15:41:46 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2023-01-13 16:23:07 -0300 |
commit | 45d1319891ce87cc1546a316ad550f892d411633 (patch) | |
tree | a1eaabd0e5fc362a82ebfbe93bfe20697608fe1e /launcher/ui/pages/modplatform/ModPage.h | |
parent | 39b7ac90d40eb53d7b88ef99b0fa46fb3e1840b9 (diff) | |
download | PrismLauncher-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/ui/pages/modplatform/ModPage.h')
-rw-r--r-- | launcher/ui/pages/modplatform/ModPage.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/launcher/ui/pages/modplatform/ModPage.h b/launcher/ui/pages/modplatform/ModPage.h index 137a6046..2fda3b68 100644 --- a/launcher/ui/pages/modplatform/ModPage.h +++ b/launcher/ui/pages/modplatform/ModPage.h @@ -5,6 +5,7 @@ #include "modplatform/ModIndex.h" #include "ui/pages/modplatform/ResourcePage.h" +#include "ui/pages/modplatform/ModModel.h" #include "ui/widgets/ModFilterWidget.h" namespace Ui { @@ -24,9 +25,14 @@ class ModPage : public ResourcePage { static T* create(ModDownloadDialog* dialog, BaseInstance& instance) { auto page = new T(dialog, instance); + auto model = static_cast<ModModel*>(page->getModel()); auto filter_widget = ModFilterWidget::create(static_cast<MinecraftInstance&>(instance).getPackProfile()->getComponentVersion("net.minecraft"), page); page->setFilterWidget(filter_widget); + model->setFilter(page->getFilter()); + + connect(model, &ResourceModel::versionListUpdated, page, &ResourcePage::updateVersionList); + connect(model, &ResourceModel::projectInfoUpdated, page, &ResourcePage::updateUi); return page; } |