mirror of
https://github.com/PrismLauncher/PrismLauncher.git
synced 2025-05-28 21:00:20 +02:00
Replace deprecated unique_qobject_ptr::swap with unique_ptr (#3746)
This commit is contained in:
commit
198fbd19cf
@ -61,24 +61,22 @@ ModPage::ModPage(ModDownloadDialog* dialog, BaseInstance& instance) : ResourcePa
|
|||||||
connect(m_ui->resourceFilterButton, &QPushButton::clicked, this, &ModPage::filterMods);
|
connect(m_ui->resourceFilterButton, &QPushButton::clicked, this, &ModPage::filterMods);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModPage::setFilterWidget(ModFilterWidget* widget)
|
void ModPage::setFilterWidget(std::unique_ptr<ModFilterWidget>& widget)
|
||||||
{
|
{
|
||||||
if (m_filter_widget)
|
if (m_filter_widget)
|
||||||
disconnect(m_filter_widget, nullptr, nullptr, nullptr);
|
disconnect(m_filter_widget.get(), nullptr, nullptr, nullptr);
|
||||||
|
|
||||||
auto old = m_ui->splitter->replaceWidget(0, widget);
|
auto old = m_ui->splitter->replaceWidget(0, widget.get());
|
||||||
// because we replaced the widget we also need to delete it
|
// because we replaced the widget we also need to delete it
|
||||||
if (old) {
|
if (old) {
|
||||||
old->deleteLater();
|
delete old;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_filter_widget = widget;
|
m_filter_widget.swap(widget);
|
||||||
if (m_filter_widget) {
|
|
||||||
m_filter_widget->deleteLater();
|
|
||||||
}
|
|
||||||
m_filter = m_filter_widget->getFilter();
|
m_filter = m_filter_widget->getFilter();
|
||||||
|
|
||||||
connect(m_filter_widget, &ModFilterWidget::filterChanged, this, &ModPage::triggerSearch);
|
connect(m_filter_widget.get(), &ModFilterWidget::filterChanged, this, &ModPage::triggerSearch);
|
||||||
prepareProviderCategories();
|
prepareProviderCategories();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -51,11 +51,11 @@ class ModPage : public ResourcePage {
|
|||||||
|
|
||||||
void addResourceToPage(ModPlatform::IndexedPack::Ptr, ModPlatform::IndexedVersion&, std::shared_ptr<ResourceFolderModel>) override;
|
void addResourceToPage(ModPlatform::IndexedPack::Ptr, ModPlatform::IndexedVersion&, std::shared_ptr<ResourceFolderModel>) override;
|
||||||
|
|
||||||
virtual ModFilterWidget* createFilterWidget() = 0;
|
virtual std::unique_ptr<ModFilterWidget> createFilterWidget() = 0;
|
||||||
|
|
||||||
[[nodiscard]] bool supportsFiltering() const override { return true; };
|
[[nodiscard]] bool supportsFiltering() const override { return true; };
|
||||||
auto getFilter() const -> const std::shared_ptr<ModFilterWidget::Filter> { return m_filter; }
|
auto getFilter() const -> const std::shared_ptr<ModFilterWidget::Filter> { return m_filter; }
|
||||||
void setFilterWidget(ModFilterWidget*);
|
void setFilterWidget(std::unique_ptr<ModFilterWidget>&);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ModPage(ModDownloadDialog* dialog, BaseInstance& instance);
|
ModPage(ModDownloadDialog* dialog, BaseInstance& instance);
|
||||||
@ -67,7 +67,7 @@ class ModPage : public ResourcePage {
|
|||||||
void triggerSearch() override;
|
void triggerSearch() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
ModFilterWidget* m_filter_widget = nullptr;
|
std::unique_ptr<ModFilterWidget> m_filter_widget;
|
||||||
std::shared_ptr<ModFilterWidget::Filter> m_filter;
|
std::shared_ptr<ModFilterWidget::Filter> m_filter;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -341,20 +341,17 @@ void FlamePage::setSearchTerm(QString term)
|
|||||||
|
|
||||||
void FlamePage::createFilterWidget()
|
void FlamePage::createFilterWidget()
|
||||||
{
|
{
|
||||||
auto widget = new ModFilterWidget(nullptr, false, this);
|
auto widget = ModFilterWidget::create(nullptr, false);
|
||||||
if (m_filterWidget) {
|
m_filterWidget.swap(widget);
|
||||||
m_filterWidget->deleteLater();
|
auto old = ui->splitter->replaceWidget(0, m_filterWidget.get());
|
||||||
}
|
|
||||||
m_filterWidget = (widget);
|
|
||||||
auto old = ui->splitter->replaceWidget(0, m_filterWidget);
|
|
||||||
// because we replaced the widget we also need to delete it
|
// because we replaced the widget we also need to delete it
|
||||||
if (old) {
|
if (old) {
|
||||||
old->deleteLater();
|
delete old;
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(ui->filterButton, &QPushButton::clicked, this, [this] { m_filterWidget->setHidden(!m_filterWidget->isHidden()); });
|
connect(ui->filterButton, &QPushButton::clicked, this, [this] { m_filterWidget->setHidden(!m_filterWidget->isHidden()); });
|
||||||
|
|
||||||
connect(m_filterWidget, &ModFilterWidget::filterChanged, this, &FlamePage::triggerSearch);
|
connect(m_filterWidget.get(), &ModFilterWidget::filterChanged, this, &FlamePage::triggerSearch);
|
||||||
auto response = std::make_shared<QByteArray>();
|
auto response = std::make_shared<QByteArray>();
|
||||||
m_categoriesTask = FlameAPI::getCategories(response, ModPlatform::ResourceType::MODPACK);
|
m_categoriesTask = FlameAPI::getCategories(response, ModPlatform::ResourceType::MODPACK);
|
||||||
QObject::connect(m_categoriesTask.get(), &Task::succeeded, [this, response]() {
|
QObject::connect(m_categoriesTask.get(), &Task::succeeded, [this, response]() {
|
||||||
|
@ -100,6 +100,6 @@ class FlamePage : public QWidget, public ModpackProviderBasePage {
|
|||||||
// Used to do instant searching with a delay to cache quick changes
|
// Used to do instant searching with a delay to cache quick changes
|
||||||
QTimer m_search_timer;
|
QTimer m_search_timer;
|
||||||
|
|
||||||
ModFilterWidget* m_filterWidget;
|
std::unique_ptr<ModFilterWidget> m_filterWidget;
|
||||||
Task::Ptr m_categoriesTask;
|
Task::Ptr m_categoriesTask;
|
||||||
};
|
};
|
||||||
|
@ -207,9 +207,9 @@ auto FlameShaderPackPage::shouldDisplay() const -> bool
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModFilterWidget* FlameModPage::createFilterWidget()
|
std::unique_ptr<ModFilterWidget> FlameModPage::createFilterWidget()
|
||||||
{
|
{
|
||||||
return new ModFilterWidget(&static_cast<MinecraftInstance&>(m_baseInstance), false, this);
|
return ModFilterWidget::create(&static_cast<MinecraftInstance&>(m_baseInstance), false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void FlameModPage::prepareProviderCategories()
|
void FlameModPage::prepareProviderCategories()
|
||||||
|
@ -96,7 +96,7 @@ class FlameModPage : public ModPage {
|
|||||||
[[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
|
[[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
|
||||||
|
|
||||||
void openUrl(const QUrl& url) override;
|
void openUrl(const QUrl& url) override;
|
||||||
ModFilterWidget* createFilterWidget() override;
|
std::unique_ptr<ModFilterWidget> createFilterWidget() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void prepareProviderCategories() override;
|
virtual void prepareProviderCategories() override;
|
||||||
|
@ -391,19 +391,17 @@ QString ModrinthPage::getSerachTerm() const
|
|||||||
|
|
||||||
void ModrinthPage::createFilterWidget()
|
void ModrinthPage::createFilterWidget()
|
||||||
{
|
{
|
||||||
auto widget = new ModFilterWidget(nullptr, true, this);
|
auto widget = ModFilterWidget::create(nullptr, true);
|
||||||
if (m_filterWidget)
|
m_filterWidget.swap(widget);
|
||||||
m_filterWidget->deleteLater();
|
auto old = ui->splitter->replaceWidget(0, m_filterWidget.get());
|
||||||
m_filterWidget = widget;
|
|
||||||
auto old = ui->splitter->replaceWidget(0, m_filterWidget);
|
|
||||||
// because we replaced the widget we also need to delete it
|
// because we replaced the widget we also need to delete it
|
||||||
if (old) {
|
if (old) {
|
||||||
old->deleteLater();
|
delete old;
|
||||||
}
|
}
|
||||||
|
|
||||||
connect(ui->filterButton, &QPushButton::clicked, this, [this] { m_filterWidget->setHidden(!m_filterWidget->isHidden()); });
|
connect(ui->filterButton, &QPushButton::clicked, this, [this] { m_filterWidget->setHidden(!m_filterWidget->isHidden()); });
|
||||||
|
|
||||||
connect(m_filterWidget, &ModFilterWidget::filterChanged, this, &ModrinthPage::triggerSearch);
|
connect(m_filterWidget.get(), &ModFilterWidget::filterChanged, this, &ModrinthPage::triggerSearch);
|
||||||
auto response = std::make_shared<QByteArray>();
|
auto response = std::make_shared<QByteArray>();
|
||||||
m_categoriesTask = ModrinthAPI::getModCategories(response);
|
m_categoriesTask = ModrinthAPI::getModCategories(response);
|
||||||
QObject::connect(m_categoriesTask.get(), &Task::succeeded, [this, response]() {
|
QObject::connect(m_categoriesTask.get(), &Task::succeeded, [this, response]() {
|
||||||
|
@ -103,6 +103,6 @@ class ModrinthPage : public QWidget, public ModpackProviderBasePage {
|
|||||||
// Used to do instant searching with a delay to cache quick changes
|
// Used to do instant searching with a delay to cache quick changes
|
||||||
QTimer m_search_timer;
|
QTimer m_search_timer;
|
||||||
|
|
||||||
ModFilterWidget* m_filterWidget;
|
std::unique_ptr<ModFilterWidget> m_filterWidget;
|
||||||
Task::Ptr m_categoriesTask;
|
Task::Ptr m_categoriesTask;
|
||||||
};
|
};
|
||||||
|
@ -142,19 +142,19 @@ auto ModrinthShaderPackPage::shouldDisplay() const -> bool
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
ModFilterWidget* ModrinthModPage::createFilterWidget()
|
std::unique_ptr<ModFilterWidget> ModrinthModPage::createFilterWidget()
|
||||||
{
|
{
|
||||||
return new ModFilterWidget(&static_cast<MinecraftInstance&>(m_baseInstance), true, this);
|
return ModFilterWidget::create(&static_cast<MinecraftInstance&>(m_baseInstance), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ModrinthModPage::prepareProviderCategories()
|
void ModrinthModPage::prepareProviderCategories()
|
||||||
{
|
{
|
||||||
auto response = std::make_shared<QByteArray>();
|
auto response = std::make_shared<QByteArray>();
|
||||||
auto task = ModrinthAPI::getModCategories(response);
|
m_categoriesTask = ModrinthAPI::getModCategories(response);
|
||||||
QObject::connect(task.get(), &Task::succeeded, [this, response]() {
|
QObject::connect(m_categoriesTask.get(), &Task::succeeded, [this, response]() {
|
||||||
auto categories = ModrinthAPI::loadModCategories(response);
|
auto categories = ModrinthAPI::loadModCategories(response);
|
||||||
m_filter_widget->setCategories(categories);
|
m_filter_widget->setCategories(categories);
|
||||||
});
|
});
|
||||||
task->start();
|
m_categoriesTask->start();
|
||||||
};
|
};
|
||||||
} // namespace ResourceDownload
|
} // namespace ResourceDownload
|
||||||
|
@ -94,10 +94,11 @@ class ModrinthModPage : public ModPage {
|
|||||||
|
|
||||||
[[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
|
[[nodiscard]] inline auto helpPage() const -> QString override { return "Mod-platform"; }
|
||||||
|
|
||||||
ModFilterWidget* createFilterWidget() override;
|
std::unique_ptr<ModFilterWidget> createFilterWidget() override;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void prepareProviderCategories() override;
|
virtual void prepareProviderCategories() override;
|
||||||
|
Task::Ptr m_categoriesTask;
|
||||||
};
|
};
|
||||||
|
|
||||||
class ModrinthResourcePackPage : public ResourcePackResourcePage {
|
class ModrinthResourcePackPage : public ResourcePackResourcePage {
|
||||||
|
@ -49,6 +49,11 @@
|
|||||||
#include "Application.h"
|
#include "Application.h"
|
||||||
#include "minecraft/PackProfile.h"
|
#include "minecraft/PackProfile.h"
|
||||||
|
|
||||||
|
std::unique_ptr<ModFilterWidget> ModFilterWidget::create(MinecraftInstance* instance, bool extended)
|
||||||
|
{
|
||||||
|
return std::unique_ptr<ModFilterWidget>(new ModFilterWidget(instance, extended));
|
||||||
|
}
|
||||||
|
|
||||||
class VersionBasicModel : public QIdentityProxyModel {
|
class VersionBasicModel : public QIdentityProxyModel {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
@ -102,8 +107,8 @@ class AllVersionProxyModel : public QSortFilterProxyModel {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended, QWidget* parent)
|
ModFilterWidget::ModFilterWidget(MinecraftInstance* instance, bool extended)
|
||||||
: QTabWidget(parent), ui(new Ui::ModFilterWidget), m_instance(instance), m_filter(new Filter())
|
: QTabWidget(), ui(new Ui::ModFilterWidget), m_instance(instance), m_filter(new Filter())
|
||||||
{
|
{
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
|
|
||||||
|
@ -83,7 +83,7 @@ class ModFilterWidget : public QTabWidget {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
ModFilterWidget(MinecraftInstance* instance, bool extendedSupport, QWidget* parent = nullptr);
|
static std::unique_ptr<ModFilterWidget> create(MinecraftInstance* instance, bool extended);
|
||||||
virtual ~ModFilterWidget();
|
virtual ~ModFilterWidget();
|
||||||
|
|
||||||
auto getFilter() -> std::shared_ptr<Filter>;
|
auto getFilter() -> std::shared_ptr<Filter>;
|
||||||
@ -96,6 +96,8 @@ class ModFilterWidget : public QTabWidget {
|
|||||||
void setCategories(const QList<ModPlatform::Category>&);
|
void setCategories(const QList<ModPlatform::Category>&);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
ModFilterWidget(MinecraftInstance* instance, bool extendedSupport);
|
||||||
|
|
||||||
void loadVersionList();
|
void loadVersionList();
|
||||||
void prepareBasicFilter();
|
void prepareBasicFilter();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user