Basic, unfinished & broken impl
Signed-off-by: TheKodeToad <TheKodeToad@proton.me>
This commit is contained in:
@ -263,6 +263,11 @@ bool InstanceWindow::selectPage(QString pageId)
|
||||
return m_container->selectPage(pageId);
|
||||
}
|
||||
|
||||
BasePage* InstanceWindow::selectedPage()
|
||||
{
|
||||
return m_container->selectedPage();
|
||||
}
|
||||
|
||||
void InstanceWindow::refreshContainer()
|
||||
{
|
||||
m_container->refreshContainer();
|
||||
|
@ -56,6 +56,7 @@ public:
|
||||
virtual ~InstanceWindow();
|
||||
|
||||
bool selectPage(QString pageId) override;
|
||||
BasePage* selectedPage() override;
|
||||
void refreshContainer() override;
|
||||
|
||||
QString instanceId();
|
||||
|
121
launcher/ui/dialogs/InstallLoaderDialog.cpp
Normal file
121
launcher/ui/dialogs/InstallLoaderDialog.cpp
Normal file
@ -0,0 +1,121 @@
|
||||
#include "InstallLoaderDialog.h"
|
||||
|
||||
#include <QDialogButtonBox>
|
||||
#include <QPushButton>
|
||||
#include <QVBoxLayout>
|
||||
#include "Application.h"
|
||||
#include "BuildConfig.h"
|
||||
#include "DesktopServices.h"
|
||||
#include "meta/Index.h"
|
||||
#include "minecraft/MinecraftInstance.h"
|
||||
#include "minecraft/PackProfile.h"
|
||||
#include "ui/widgets/PageContainer.h"
|
||||
#include "ui/widgets/VersionSelectWidget.h"
|
||||
|
||||
class LoaderPage : public VersionSelectWidget, public BasePage {
|
||||
public:
|
||||
LoaderPage(const QString&& id,
|
||||
const QString&& icon,
|
||||
const QString&& name,
|
||||
// "lightweight" loaders are independent to any game version
|
||||
const bool lightweight,
|
||||
const std::shared_ptr<PackProfile> profile,
|
||||
QWidget* parent = nullptr)
|
||||
: VersionSelectWidget(parent), m_id(std::move(id)), m_icon(std::move(icon)), m_name(std::move(name))
|
||||
{
|
||||
const QString minecraftVersion = profile->getComponentVersion("net.minecraft");
|
||||
setEmptyErrorString(tr("No versions are currently available for Minecraft %1").arg(minecraftVersion));
|
||||
if (!lightweight)
|
||||
setExactFilter(BaseVersionList::ParentVersionRole, minecraftVersion);
|
||||
|
||||
if (const QString currentVersion = profile->getComponentVersion(id); !currentVersion.isNull())
|
||||
setCurrentVersion(currentVersion);
|
||||
}
|
||||
|
||||
QString id() const override { return m_id; }
|
||||
QString displayName() const override { return m_name; }
|
||||
QIcon icon() const override { return APPLICATION->getThemedIcon(m_icon); }
|
||||
|
||||
void openedImpl() override
|
||||
{
|
||||
if (m_loaded)
|
||||
return;
|
||||
|
||||
const auto versions = APPLICATION->metadataIndex()->get(m_id);
|
||||
if (!versions)
|
||||
return;
|
||||
|
||||
initialize(versions.get());
|
||||
m_loaded = true;
|
||||
}
|
||||
|
||||
private:
|
||||
const QString m_id;
|
||||
const QString m_icon;
|
||||
const QString m_name;
|
||||
bool m_loaded = false;
|
||||
};
|
||||
|
||||
InstallLoaderDialog::InstallLoaderDialog(std::shared_ptr<PackProfile> profile, QWidget* parent)
|
||||
: QDialog(parent), m_profile(profile), m_container(new PageContainer(this))
|
||||
{
|
||||
auto layout = new QVBoxLayout(this);
|
||||
|
||||
m_container->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Expanding);
|
||||
layout->addWidget(m_container);
|
||||
|
||||
auto buttonLayout = new QHBoxLayout(this);
|
||||
|
||||
auto refreshButton = new QPushButton(tr("&Refresh"), this);
|
||||
connect(refreshButton, &QPushButton::pressed, this, [this] {
|
||||
LoaderPage* page = dynamic_cast<LoaderPage*>(m_container->selectedPage());
|
||||
Q_ASSERT(page != nullptr);
|
||||
page->loadList();
|
||||
});
|
||||
buttonLayout->addWidget(refreshButton);
|
||||
|
||||
auto buttons = new QDialogButtonBox(this);
|
||||
buttons->setOrientation(Qt::Horizontal);
|
||||
buttons->setStandardButtons(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
|
||||
connect(buttons, &QDialogButtonBox::accepted, this, &QDialog::accept);
|
||||
connect(buttons, &QDialogButtonBox::rejected, this, &QDialog::reject);
|
||||
buttonLayout->addWidget(buttons);
|
||||
|
||||
layout->addLayout(buttonLayout);
|
||||
|
||||
setWindowTitle(dialogTitle());
|
||||
resize(650, 400);
|
||||
}
|
||||
|
||||
QList<BasePage*> InstallLoaderDialog::getPages()
|
||||
{
|
||||
return { // Fabric
|
||||
new LoaderPage("net.fabricmc.fabric-loader", "fabric-loader", tr("Fabric"), true, m_profile, this),
|
||||
// Quilt
|
||||
new LoaderPage("org.quiltmc.quilt-loader", "quilt-loader", tr("Quilt"), true, m_profile, this),
|
||||
// Forge
|
||||
new LoaderPage("net.minecraftforge", "forge-loader", tr("Forge"), false, m_profile, this),
|
||||
// LiteLoader
|
||||
new LoaderPage("com.mumfrey.liteloader", "liteloader", tr("LiteLoader"), false, m_profile, this)
|
||||
};
|
||||
}
|
||||
|
||||
QString InstallLoaderDialog::dialogTitle()
|
||||
{
|
||||
return tr("Install Loader");
|
||||
}
|
||||
|
||||
void InstallLoaderDialog::done(int result)
|
||||
{
|
||||
if (result == Accepted) {
|
||||
LoaderPage* page = dynamic_cast<LoaderPage*>(m_container->selectedPage());
|
||||
Q_ASSERT(page != nullptr);
|
||||
|
||||
if (page->selectedVersion()) {
|
||||
m_profile->setComponentVersion(page->id(), page->selectedVersion()->descriptor());
|
||||
m_profile->resolve(Net::Mode::Online);
|
||||
}
|
||||
}
|
||||
|
||||
QDialog::done(result);
|
||||
}
|
42
launcher/ui/dialogs/InstallLoaderDialog.h
Normal file
42
launcher/ui/dialogs/InstallLoaderDialog.h
Normal file
@ -0,0 +1,42 @@
|
||||
// SPDX-License-Identifier: GPL-3.0-only
|
||||
/*
|
||||
* Prism Launcher - Minecraft Launcher
|
||||
* 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>
|
||||
#include "ui/pages/BasePageProvider.h"
|
||||
|
||||
class MinecraftInstance;
|
||||
class PageContainer;
|
||||
class PackProfile;
|
||||
|
||||
class InstallLoaderDialog : public QDialog, public BasePageProvider {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit InstallLoaderDialog(std::shared_ptr<PackProfile> instance, QWidget* parent = nullptr);
|
||||
|
||||
QList<BasePage*> getPages() override;
|
||||
QString dialogTitle() override;
|
||||
|
||||
void done(int result) override;
|
||||
|
||||
private:
|
||||
std::shared_ptr<PackProfile> m_profile;
|
||||
PageContainer* m_container;
|
||||
};
|
@ -148,15 +148,17 @@ bool ResourceDownloadDialog::selectPage(QString pageId)
|
||||
return m_container->selectPage(pageId);
|
||||
}
|
||||
|
||||
ResourcePage* ResourceDownloadDialog::getSelectedPage()
|
||||
ResourcePage* ResourceDownloadDialog::selectedPage()
|
||||
{
|
||||
return m_selectedPage;
|
||||
ResourcePage* result = dynamic_cast<ResourcePage*>(m_container->selectedPage());
|
||||
Q_ASSERT(result != nullptr);
|
||||
return result;
|
||||
}
|
||||
|
||||
void ResourceDownloadDialog::addResource(ModPlatform::IndexedPack::Ptr pack, ModPlatform::IndexedVersion& ver)
|
||||
{
|
||||
removeResource(pack->name);
|
||||
m_selectedPage->addResourceToPage(pack, ver, getBaseModel());
|
||||
selectedPage()->addResourceToPage(pack, ver, getBaseModel());
|
||||
setButtonStatus();
|
||||
}
|
||||
|
||||
@ -196,14 +198,8 @@ void ResourceDownloadDialog::selectedPageChanged(BasePage* previous, BasePage* s
|
||||
return;
|
||||
}
|
||||
|
||||
m_selectedPage = dynamic_cast<ResourcePage*>(selected);
|
||||
if (!m_selectedPage) {
|
||||
qCritical() << "Page '" << selected->displayName() << "' in ResourceDownloadDialog is not a ResourcePage!";
|
||||
return;
|
||||
}
|
||||
|
||||
// Same effect as having a global search bar
|
||||
m_selectedPage->setSearchTerm(prev_page->getSearchTerm());
|
||||
selectedPage()->setSearchTerm(prev_page->getSearchTerm());
|
||||
}
|
||||
|
||||
ModDownloadDialog::ModDownloadDialog(QWidget* parent, const std::shared_ptr<ModFolderModel>& mods, BaseInstance* instance)
|
||||
@ -226,8 +222,6 @@ QList<BasePage*> ModDownloadDialog::getPages()
|
||||
if (APPLICATION->capabilities() & Application::SupportsFlame)
|
||||
pages.append(FlameModPage::create(this, *m_instance));
|
||||
|
||||
m_selectedPage = dynamic_cast<ModPage*>(pages[0]);
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
@ -253,8 +247,6 @@ QList<BasePage*> ResourcePackDownloadDialog::getPages()
|
||||
if (APPLICATION->capabilities() & Application::SupportsFlame)
|
||||
pages.append(FlameResourcePackPage::create(this, *m_instance));
|
||||
|
||||
m_selectedPage = dynamic_cast<ResourcePackResourcePage*>(pages[0]);
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
@ -280,8 +272,6 @@ QList<BasePage*> TexturePackDownloadDialog::getPages()
|
||||
if (APPLICATION->capabilities() & Application::SupportsFlame)
|
||||
pages.append(FlameTexturePackPage::create(this, *m_instance));
|
||||
|
||||
m_selectedPage = dynamic_cast<TexturePackResourcePage*>(pages[0]);
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
@ -302,11 +292,7 @@ ShaderPackDownloadDialog::ShaderPackDownloadDialog(QWidget* parent,
|
||||
QList<BasePage*> ShaderPackDownloadDialog::getPages()
|
||||
{
|
||||
QList<BasePage*> pages;
|
||||
|
||||
pages.append(ModrinthShaderPackPage::create(this, *m_instance));
|
||||
|
||||
m_selectedPage = dynamic_cast<ShaderPackResourcePage*>(pages[0]);
|
||||
|
||||
return pages;
|
||||
}
|
||||
|
||||
|
@ -60,7 +60,7 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
|
||||
QString dialogTitle() override { return tr("Download %1").arg(resourcesString()); };
|
||||
|
||||
bool selectPage(QString pageId);
|
||||
ResourcePage* getSelectedPage();
|
||||
ResourcePage* selectedPage();
|
||||
|
||||
void addResource(ModPlatform::IndexedPack::Ptr, ModPlatform::IndexedVersion&);
|
||||
void removeResource(const QString&);
|
||||
@ -85,7 +85,6 @@ class ResourceDownloadDialog : public QDialog, public BasePageProvider {
|
||||
const std::shared_ptr<ResourceFolderModel> m_base_model;
|
||||
|
||||
PageContainer* m_container = nullptr;
|
||||
ResourcePage* m_selectedPage = nullptr;
|
||||
|
||||
QDialogButtonBox m_buttons;
|
||||
QVBoxLayout m_vertical_layout;
|
||||
|
@ -7,6 +7,7 @@ class BasePageContainer
|
||||
public:
|
||||
virtual ~BasePageContainer(){};
|
||||
virtual bool selectPage(QString pageId) = 0;
|
||||
virtual BasePage* selectedPage() = 0;
|
||||
virtual BasePage* getPage(QString pageId) { return nullptr; };
|
||||
virtual void refreshContainer() = 0;
|
||||
virtual bool requestClose() = 0;
|
||||
|
@ -52,6 +52,7 @@
|
||||
#include <QUrl>
|
||||
|
||||
#include "VersionPage.h"
|
||||
#include "ui/dialogs/InstallLoaderDialog.h"
|
||||
#include "ui_VersionPage.h"
|
||||
|
||||
#include "ui/dialogs/CustomMessageBox.h"
|
||||
@ -254,20 +255,6 @@ void VersionPage::updateRunningStatus(bool running)
|
||||
|
||||
void VersionPage::updateVersionControls()
|
||||
{
|
||||
// FIXME: this is a dirty hack
|
||||
auto minecraftVersion = Version(m_profile->getComponentVersion("net.minecraft"));
|
||||
|
||||
ui->actionInstall_Forge->setEnabled(controlsEnabled);
|
||||
|
||||
bool supportsFabric = minecraftVersion >= Version("1.14");
|
||||
ui->actionInstall_Fabric->setEnabled(controlsEnabled && supportsFabric);
|
||||
|
||||
bool supportsQuilt = minecraftVersion >= Version("1.14");
|
||||
ui->actionInstall_Quilt->setEnabled(controlsEnabled && supportsQuilt);
|
||||
|
||||
bool supportsLiteLoader = minecraftVersion <= Version("1.12.2");
|
||||
ui->actionInstall_LiteLoader->setEnabled(controlsEnabled && supportsLiteLoader);
|
||||
|
||||
updateButtons();
|
||||
}
|
||||
|
||||
@ -287,7 +274,6 @@ void VersionPage::updateButtons(int row)
|
||||
ui->actionAdd_Empty->setEnabled(controlsEnabled);
|
||||
ui->actionImport_Components->setEnabled(controlsEnabled);
|
||||
ui->actionReload->setEnabled(controlsEnabled);
|
||||
ui->actionInstall_mods->setEnabled(controlsEnabled);
|
||||
ui->actionReplace_Minecraft_jar->setEnabled(controlsEnabled);
|
||||
ui->actionAdd_to_Minecraft_jar->setEnabled(controlsEnabled);
|
||||
ui->actionAdd_Agents->setEnabled(controlsEnabled);
|
||||
@ -446,17 +432,6 @@ void VersionPage::on_actionChange_version_triggered()
|
||||
return;
|
||||
}
|
||||
auto uid = list->uid();
|
||||
// FIXME: this is a horrible HACK. Get version filtering information from the actual metadata...
|
||||
if(uid == "net.minecraftforge")
|
||||
{
|
||||
on_actionInstall_Forge_triggered();
|
||||
return;
|
||||
}
|
||||
else if (uid == "com.mumfrey.liteloader")
|
||||
{
|
||||
on_actionInstall_LiteLoader_triggered();
|
||||
return;
|
||||
}
|
||||
VersionSelectDialog vselect(list.get(), tr("Change %1 version").arg(name), this);
|
||||
if (uid == "net.fabricmc.intermediary" || uid == "org.quiltmc.hashed")
|
||||
{
|
||||
@ -508,87 +483,11 @@ void VersionPage::on_actionDownload_All_triggered()
|
||||
m_container->refreshContainer();
|
||||
}
|
||||
|
||||
void VersionPage::on_actionInstall_Forge_triggered()
|
||||
void VersionPage::on_actionInstall_Loader_triggered()
|
||||
{
|
||||
auto vlist = APPLICATION->metadataIndex()->get("net.minecraftforge");
|
||||
if(!vlist)
|
||||
{
|
||||
return;
|
||||
}
|
||||
VersionSelectDialog vselect(vlist.get(), tr("Select Forge version"), this);
|
||||
vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft"));
|
||||
vselect.setEmptyString(tr("No Forge versions are currently available for Minecraft ") + m_profile->getComponentVersion("net.minecraft"));
|
||||
vselect.setEmptyErrorString(tr("Couldn't load or download the Forge version lists!"));
|
||||
|
||||
auto currentVersion = m_profile->getComponentVersion("net.minecraftforge");
|
||||
if(!currentVersion.isEmpty())
|
||||
{
|
||||
vselect.setCurrentVersion(currentVersion);
|
||||
}
|
||||
|
||||
if (vselect.exec() && vselect.selectedVersion())
|
||||
{
|
||||
auto vsn = vselect.selectedVersion();
|
||||
m_profile->setComponentVersion("net.minecraftforge", vsn->descriptor());
|
||||
m_profile->resolve(Net::Mode::Online);
|
||||
// m_profile->installVersion();
|
||||
preselect(m_profile->rowCount(QModelIndex())-1);
|
||||
m_container->refreshContainer();
|
||||
}
|
||||
}
|
||||
|
||||
void VersionPage::on_actionInstall_Fabric_triggered()
|
||||
{
|
||||
auto vlist = APPLICATION->metadataIndex()->get("net.fabricmc.fabric-loader");
|
||||
if(!vlist)
|
||||
{
|
||||
return;
|
||||
}
|
||||
VersionSelectDialog vselect(vlist.get(), tr("Select Fabric Loader version"), this);
|
||||
vselect.setEmptyString(tr("No Fabric Loader versions are currently available."));
|
||||
vselect.setEmptyErrorString(tr("Couldn't load or download the Fabric Loader version lists!"));
|
||||
|
||||
auto currentVersion = m_profile->getComponentVersion("net.fabricmc.fabric-loader");
|
||||
if(!currentVersion.isEmpty())
|
||||
{
|
||||
vselect.setCurrentVersion(currentVersion);
|
||||
}
|
||||
|
||||
if (vselect.exec() && vselect.selectedVersion())
|
||||
{
|
||||
auto vsn = vselect.selectedVersion();
|
||||
m_profile->setComponentVersion("net.fabricmc.fabric-loader", vsn->descriptor());
|
||||
m_profile->resolve(Net::Mode::Online);
|
||||
preselect(m_profile->rowCount(QModelIndex())-1);
|
||||
m_container->refreshContainer();
|
||||
}
|
||||
}
|
||||
|
||||
void VersionPage::on_actionInstall_Quilt_triggered()
|
||||
{
|
||||
auto vlist = APPLICATION->metadataIndex()->get("org.quiltmc.quilt-loader");
|
||||
if(!vlist)
|
||||
{
|
||||
return;
|
||||
}
|
||||
VersionSelectDialog vselect(vlist.get(), tr("Select Quilt Loader version"), this);
|
||||
vselect.setEmptyString(tr("No Quilt Loader versions are currently available."));
|
||||
vselect.setEmptyErrorString(tr("Couldn't load or download the Quilt Loader version lists!"));
|
||||
|
||||
auto currentVersion = m_profile->getComponentVersion("org.quiltmc.quilt-loader");
|
||||
if(!currentVersion.isEmpty())
|
||||
{
|
||||
vselect.setCurrentVersion(currentVersion);
|
||||
}
|
||||
|
||||
if (vselect.exec() && vselect.selectedVersion())
|
||||
{
|
||||
auto vsn = vselect.selectedVersion();
|
||||
m_profile->setComponentVersion("org.quiltmc.quilt-loader", vsn->descriptor());
|
||||
m_profile->resolve(Net::Mode::Online);
|
||||
preselect(m_profile->rowCount(QModelIndex())-1);
|
||||
m_container->refreshContainer();
|
||||
}
|
||||
InstallLoaderDialog dialog(m_inst->getPackProfile(), this);
|
||||
dialog.exec();
|
||||
m_container->refreshContainer();
|
||||
}
|
||||
|
||||
void VersionPage::on_actionAdd_Empty_triggered()
|
||||
@ -609,35 +508,6 @@ void VersionPage::on_actionAdd_Empty_triggered()
|
||||
}
|
||||
}
|
||||
|
||||
void VersionPage::on_actionInstall_LiteLoader_triggered()
|
||||
{
|
||||
auto vlist = APPLICATION->metadataIndex()->get("com.mumfrey.liteloader");
|
||||
if(!vlist)
|
||||
{
|
||||
return;
|
||||
}
|
||||
VersionSelectDialog vselect(vlist.get(), tr("Select LiteLoader version"), this);
|
||||
vselect.setExactFilter(BaseVersionList::ParentVersionRole, m_profile->getComponentVersion("net.minecraft"));
|
||||
vselect.setEmptyString(tr("No LiteLoader versions are currently available for Minecraft ") + m_profile->getComponentVersion("net.minecraft"));
|
||||
vselect.setEmptyErrorString(tr("Couldn't load or download the LiteLoader version lists!"));
|
||||
|
||||
auto currentVersion = m_profile->getComponentVersion("com.mumfrey.liteloader");
|
||||
if(!currentVersion.isEmpty())
|
||||
{
|
||||
vselect.setCurrentVersion(currentVersion);
|
||||
}
|
||||
|
||||
if (vselect.exec() && vselect.selectedVersion())
|
||||
{
|
||||
auto vsn = vselect.selectedVersion();
|
||||
m_profile->setComponentVersion("com.mumfrey.liteloader", vsn->descriptor());
|
||||
m_profile->resolve(Net::Mode::Online);
|
||||
// m_profile->installVersion(vselect.selectedVersion());
|
||||
preselect(m_profile->rowCount(QModelIndex())-1);
|
||||
m_container->refreshContainer();
|
||||
}
|
||||
}
|
||||
|
||||
void VersionPage::on_actionLibrariesFolder_triggered()
|
||||
{
|
||||
DesktopServices::openDirectory(m_inst->getLocalLibraryPath(), true);
|
||||
|
@ -79,11 +79,8 @@ public:
|
||||
|
||||
private slots:
|
||||
void on_actionChange_version_triggered();
|
||||
void on_actionInstall_Forge_triggered();
|
||||
void on_actionInstall_Fabric_triggered();
|
||||
void on_actionInstall_Quilt_triggered();
|
||||
void on_actionInstall_Loader_triggered();
|
||||
void on_actionAdd_Empty_triggered();
|
||||
void on_actionInstall_LiteLoader_triggered();
|
||||
void on_actionReload_triggered();
|
||||
void on_actionRemove_triggered();
|
||||
void on_actionMove_up_triggered();
|
||||
|
@ -98,12 +98,7 @@
|
||||
<addaction name="actionEdit"/>
|
||||
<addaction name="actionRevert"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionInstall_Forge"/>
|
||||
<addaction name="actionInstall_Fabric"/>
|
||||
<addaction name="actionInstall_Quilt"/>
|
||||
<addaction name="actionInstall_LiteLoader"/>
|
||||
<addaction name="actionInstall_mods"/>
|
||||
<addaction name="separator"/>
|
||||
<addaction name="actionInstall_Loader"/>
|
||||
<addaction name="actionAdd_to_Minecraft_jar"/>
|
||||
<addaction name="actionReplace_Minecraft_jar"/>
|
||||
<addaction name="actionAdd_Agents"/>
|
||||
@ -118,26 +113,26 @@
|
||||
</widget>
|
||||
<action name="actionChange_version">
|
||||
<property name="text">
|
||||
<string>Change version</string>
|
||||
<string>Change Version</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Change version of the selected package.</string>
|
||||
<string>Change version of the selected component.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionMove_up">
|
||||
<property name="text">
|
||||
<string>Move up</string>
|
||||
<string>Move Up</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Make the selected package apply sooner.</string>
|
||||
<string>Make the selected component apply sooner.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionMove_down">
|
||||
<property name="text">
|
||||
<string>Move down</string>
|
||||
<string>Move Down</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Make the selected package apply later.</string>
|
||||
<string>Make the selected component apply later.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionRemove">
|
||||
@ -145,7 +140,7 @@
|
||||
<string>Remove</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Remove selected package from the instance.</string>
|
||||
<string>Remove selected component from the instance.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionCustomize">
|
||||
@ -153,7 +148,7 @@
|
||||
<string>Customize</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Customize selected package.</string>
|
||||
<string>Customize selected component.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionEdit">
|
||||
@ -161,7 +156,7 @@
|
||||
<string>Edit</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Edit selected package.</string>
|
||||
<string>Edit selected component.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionRevert">
|
||||
@ -169,47 +164,15 @@
|
||||
<string>Revert</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Revert the selected package to default.</string>
|
||||
<string>Revert the selected component to default.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInstall_Forge">
|
||||
<action name="actionInstall_Loader">
|
||||
<property name="text">
|
||||
<string>Install Forge</string>
|
||||
<string>Install Loader</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Install the Minecraft Forge package.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInstall_Fabric">
|
||||
<property name="text">
|
||||
<string>Install Fabric</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Install the Fabric Loader package.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInstall_Quilt">
|
||||
<property name="text">
|
||||
<string>Install Quilt</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Install the Quilt Loader package.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInstall_LiteLoader">
|
||||
<property name="text">
|
||||
<string>Install LiteLoader</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Install the LiteLoader package.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionInstall_mods">
|
||||
<property name="text">
|
||||
<string>Install mods</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Install normal mods.</string>
|
||||
<string>Install a mod loader.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionAdd_to_Minecraft_jar">
|
||||
@ -238,7 +201,7 @@
|
||||
<string>Add Empty</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Add an empty custom package.</string>
|
||||
<string>Add an empty custom component.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionReload">
|
||||
@ -246,12 +209,12 @@
|
||||
<string>Reload</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Reload all packages.</string>
|
||||
<string>Reload all components.</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="actionDownload_All">
|
||||
<property name="text">
|
||||
<string>Download All</string>
|
||||
<string>Download all</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string>Download the files needed to launch the instance now.</string>
|
||||
|
@ -389,7 +389,7 @@ void ResourcePage::openUrl(const QUrl& url)
|
||||
if (slug != getCurrentPack()->slug) {
|
||||
m_parent_dialog->selectPage(page);
|
||||
|
||||
auto newPage = m_parent_dialog->getSelectedPage();
|
||||
auto newPage = m_parent_dialog->selectedPage();
|
||||
|
||||
QLineEdit* searchEdit = newPage->m_ui->searchEdit;
|
||||
auto model = newPage->m_model;
|
||||
|
@ -137,6 +137,11 @@ BasePage* PageContainer::getPage(QString pageId)
|
||||
return m_model->findPageEntryById(pageId);
|
||||
}
|
||||
|
||||
BasePage* PageContainer::selectedPage()
|
||||
{
|
||||
return m_currentPage;
|
||||
}
|
||||
|
||||
const QList<BasePage*> PageContainer::getPages() const
|
||||
{
|
||||
return m_model->pages();
|
||||
|
@ -78,7 +78,8 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
virtual bool selectPage(QString pageId) override;
|
||||
bool selectPage(QString pageId) override;
|
||||
BasePage* selectedPage() override;
|
||||
BasePage* getPage(QString pageId) override;
|
||||
const QList<BasePage*> getPages() const;
|
||||
|
||||
|
Reference in New Issue
Block a user