Merge branch 'PrismLauncher:develop' into data-packs

This commit is contained in:
TheKodeToad 2025-06-01 07:54:16 +00:00 committed by GitHub
commit e4ed3b4546
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
125 changed files with 3925 additions and 1596 deletions

View file

@ -61,7 +61,7 @@ ModPage::ModPage(ModDownloadDialog* dialog, BaseInstance& instance) : ResourcePa
connect(m_ui->resourceFilterButton, &QPushButton::clicked, this, &ModPage::filterMods);
}
void ModPage::setFilterWidget(unique_qobject_ptr<ModFilterWidget>& widget)
void ModPage::setFilterWidget(std::unique_ptr<ModFilterWidget>& widget)
{
if (m_filter_widget)
disconnect(m_filter_widget.get(), nullptr, nullptr, nullptr);

View file

@ -51,11 +51,11 @@ class ModPage : public ResourcePage {
void addResourceToPage(ModPlatform::IndexedPack::Ptr, ModPlatform::IndexedVersion&, std::shared_ptr<ResourceFolderModel>) override;
virtual unique_qobject_ptr<ModFilterWidget> createFilterWidget() = 0;
virtual std::unique_ptr<ModFilterWidget> createFilterWidget() = 0;
[[nodiscard]] bool supportsFiltering() const override { return true; };
auto getFilter() const -> const std::shared_ptr<ModFilterWidget::Filter> { return m_filter; }
void setFilterWidget(unique_qobject_ptr<ModFilterWidget>&);
void setFilterWidget(std::unique_ptr<ModFilterWidget>&);
protected:
ModPage(ModDownloadDialog* dialog, BaseInstance& instance);
@ -67,7 +67,7 @@ class ModPage : public ResourcePage {
void triggerSearch() override;
protected:
unique_qobject_ptr<ModFilterWidget> m_filter_widget;
std::unique_ptr<ModFilterWidget> m_filter_widget;
std::shared_ptr<ModFilterWidget::Filter> m_filter;
};

View file

@ -341,7 +341,7 @@ void FlamePage::setSearchTerm(QString term)
void FlamePage::createFilterWidget()
{
auto widget = ModFilterWidget::create(nullptr, false, this);
auto widget = ModFilterWidget::create(nullptr, false);
m_filterWidget.swap(widget);
auto old = ui->splitter->replaceWidget(0, m_filterWidget.get());
// because we replaced the widget we also need to delete it

View file

@ -100,6 +100,6 @@ class FlamePage : public QWidget, public ModpackProviderBasePage {
// Used to do instant searching with a delay to cache quick changes
QTimer m_search_timer;
unique_qobject_ptr<ModFilterWidget> m_filterWidget;
std::unique_ptr<ModFilterWidget> m_filterWidget;
Task::Ptr m_categoriesTask;
};

View file

@ -246,9 +246,9 @@ auto FlameDataPackPage::shouldDisplay() const -> bool
return true;
}
unique_qobject_ptr<ModFilterWidget> FlameModPage::createFilterWidget()
std::unique_ptr<ModFilterWidget> FlameModPage::createFilterWidget()
{
return ModFilterWidget::create(&static_cast<MinecraftInstance&>(m_baseInstance), false, this);
return ModFilterWidget::create(&static_cast<MinecraftInstance&>(m_baseInstance), false);
}
void FlameModPage::prepareProviderCategories()

View file

@ -97,7 +97,7 @@ class FlameModPage : public ModPage {
[[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
void openUrl(const QUrl& url) override;
unique_qobject_ptr<ModFilterWidget> createFilterWidget() override;
std::unique_ptr<ModFilterWidget> createFilterWidget() override;
protected:
virtual void prepareProviderCategories() override;

View file

@ -391,7 +391,7 @@ QString ModrinthPage::getSerachTerm() const
void ModrinthPage::createFilterWidget()
{
auto widget = ModFilterWidget::create(nullptr, true, this);
auto widget = ModFilterWidget::create(nullptr, true);
m_filterWidget.swap(widget);
auto old = ui->splitter->replaceWidget(0, m_filterWidget.get());
// because we replaced the widget we also need to delete it

View file

@ -103,6 +103,6 @@ class ModrinthPage : public QWidget, public ModpackProviderBasePage {
// Used to do instant searching with a delay to cache quick changes
QTimer m_search_timer;
unique_qobject_ptr<ModFilterWidget> m_filterWidget;
std::unique_ptr<ModFilterWidget> m_filterWidget;
Task::Ptr m_categoriesTask;
};

View file

@ -165,19 +165,19 @@ auto ModrinthDataPackPage::shouldDisplay() const -> bool
return true;
}
unique_qobject_ptr<ModFilterWidget> ModrinthModPage::createFilterWidget()
std::unique_ptr<ModFilterWidget> ModrinthModPage::createFilterWidget()
{
return ModFilterWidget::create(&static_cast<MinecraftInstance&>(m_baseInstance), true, this);
return ModFilterWidget::create(&static_cast<MinecraftInstance&>(m_baseInstance), true);
}
void ModrinthModPage::prepareProviderCategories()
{
auto response = std::make_shared<QByteArray>();
auto task = ModrinthAPI::getModCategories(response);
QObject::connect(task.get(), &Task::succeeded, [this, response]() {
m_categoriesTask = ModrinthAPI::getModCategories(response);
QObject::connect(m_categoriesTask.get(), &Task::succeeded, [this, response]() {
auto categories = ModrinthAPI::loadModCategories(response);
m_filter_widget->setCategories(categories);
});
task->start();
m_categoriesTask->start();
};
} // namespace ResourceDownload

View file

@ -95,10 +95,11 @@ class ModrinthModPage : public ModPage {
[[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
unique_qobject_ptr<ModFilterWidget> createFilterWidget() override;
std::unique_ptr<ModFilterWidget> createFilterWidget() override;
protected:
virtual void prepareProviderCategories() override;
Task::Ptr m_categoriesTask;
};
class ModrinthResourcePackPage : public ResourcePackResourcePage {