refactor(RD): unify download dialogs into a single file
No need for multiple files since the subclasses are so small now Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
@ -1,3 +1,22 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
/*
|
||||
* Prism Launcher - Minecraft Launcher
|
||||
* Copyright (C) 2022 Sefa Eyeoglu <contact@scrumplex.net>
|
||||
* Copyright (C) 2022 TheKodeToad <TheKodeToad@proton.me>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, version 3.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
@ -6,11 +25,13 @@
|
||||
|
||||
#include "ui/pages/BasePageProvider.h"
|
||||
|
||||
class ResourceDownloadTask;
|
||||
class ResourceFolderModel;
|
||||
class BaseInstance;
|
||||
class ModFolderModel;
|
||||
class PageContainer;
|
||||
class QVBoxLayout;
|
||||
class QDialogButtonBox;
|
||||
class ResourceDownloadTask;
|
||||
class ResourceFolderModel;
|
||||
|
||||
namespace ResourceDownload {
|
||||
|
||||
@ -40,11 +61,18 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
|
||||
const QList<ResourceDownloadTask*> getTasks();
|
||||
[[nodiscard]] const std::shared_ptr<ResourceFolderModel> getBaseModel() const { return m_base_model; }
|
||||
|
||||
public slots:
|
||||
void accept() override;
|
||||
void reject() override;
|
||||
|
||||
protected slots:
|
||||
void selectedPageChanged(BasePage* previous, BasePage* selected);
|
||||
|
||||
virtual void confirm();
|
||||
|
||||
protected:
|
||||
[[nodiscard]] virtual QString geometrySaveKey() const { return ""; }
|
||||
|
||||
protected:
|
||||
const std::shared_ptr<ResourceFolderModel> m_base_model;
|
||||
|
||||
@ -57,4 +85,23 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
|
||||
QHash<QString, ResourceDownloadTask*> m_selected;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class ModDownloadDialog final : public ResourceDownloadDialog {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit ModDownloadDialog(QWidget* parent, const std::shared_ptr<ModFolderModel>& mods, BaseInstance* instance);
|
||||
~ModDownloadDialog() override = default;
|
||||
|
||||
//: String that gets appended to the mod download dialog title ("Download " + resourcesString())
|
||||
[[nodiscard]] QString resourceString() const override { return tr("mods"); }
|
||||
[[nodiscard]] QString geometrySaveKey() const override { return "ModDownloadGeometry"; }
|
||||
|
||||
QList<BasePage*> getPages() override;
|
||||
|
||||
private:
|
||||
BaseInstance* m_instance;
|
||||
};
|
||||
|
||||
} // namespace ResourceDownload
|
||||
|
Reference in New Issue
Block a user