diff options
author | flow <flowlnlnln@gmail.com> | 2022-12-16 21:44:21 -0300 |
---|---|---|
committer | flow <flowlnlnln@gmail.com> | 2023-01-13 16:23:06 -0300 |
commit | 39b7ac90d40eb53d7b88ef99b0fa46fb3e1840b9 (patch) | |
tree | 8866dd24b13baed45aa0549cd6a387a1af829ab6 /launcher/ui/dialogs/ResourceDownloadDialog.h | |
parent | ef87bdf18acb549c1ad9a3eda69d8dff5ad8da8e (diff) | |
download | PrismLauncher-39b7ac90d40eb53d7b88ef99b0fa46fb3e1840b9.tar.gz PrismLauncher-39b7ac90d40eb53d7b88ef99b0fa46fb3e1840b9.tar.bz2 PrismLauncher-39b7ac90d40eb53d7b88ef99b0fa46fb3e1840b9.zip |
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>
Diffstat (limited to 'launcher/ui/dialogs/ResourceDownloadDialog.h')
-rw-r--r-- | launcher/ui/dialogs/ResourceDownloadDialog.h | 51 |
1 files changed, 49 insertions, 2 deletions
diff --git a/launcher/ui/dialogs/ResourceDownloadDialog.h b/launcher/ui/dialogs/ResourceDownloadDialog.h index 3b234cd1..29813493 100644 --- a/launcher/ui/dialogs/ResourceDownloadDialog.h +++ b/launcher/ui/dialogs/ResourceDownloadDialog.h @@ -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,12 +61,19 @@ 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; PageContainer* m_container = nullptr; @@ -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 |