Merge branch 'PrismLauncher:develop' into data-packs
This commit is contained in:
commit
e4ed3b4546
125 changed files with 3925 additions and 1596 deletions
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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()
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue