From b7f8241968b4cf684c31c575a6159d577faab76a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Fri, 29 May 2015 02:22:02 +0200 Subject: GH-994 hopefully fix issue with people still using jar mods Added an 'add mods' button to the version page Add jar mods now has a very angry nag dialog until it's used successfully Buttons on version page are rearranged to deemphasize jar mods --- application/pages/BasePage.h | 5 +++++ application/pages/BasePageContainer.h | 8 ++++++++ application/pages/VersionPage.cpp | 38 +++++++++++++++++++++++++++++++++++ application/pages/VersionPage.h | 4 ++++ application/pages/VersionPage.ui | 23 +++++++++++++++------ 5 files changed, 72 insertions(+), 6 deletions(-) create mode 100644 application/pages/BasePageContainer.h (limited to 'application/pages') diff --git a/application/pages/BasePage.h b/application/pages/BasePage.h index ecf0692c..8b90358c 100644 --- a/application/pages/BasePage.h +++ b/application/pages/BasePage.h @@ -19,6 +19,8 @@ #include #include +#include "BasePageContainer.h" + class BasePage { public: @@ -31,6 +33,9 @@ public: virtual QString helpPage() const { return QString(); } virtual void opened() {} virtual void closed() {} + virtual void setParentContainer(BasePageContainer *) {}; + +public: int stackIndex = -1; int listIndex = -1; }; diff --git a/application/pages/BasePageContainer.h b/application/pages/BasePageContainer.h new file mode 100644 index 00000000..5982ad76 --- /dev/null +++ b/application/pages/BasePageContainer.h @@ -0,0 +1,8 @@ +#pragma once + +class BasePageContainer +{ +public: + virtual ~BasePageContainer(){}; + virtual bool selectPage(QString pageId) = 0; +}; diff --git a/application/pages/VersionPage.cpp b/application/pages/VersionPage.cpp index 831408f6..cbb5c107 100644 --- a/application/pages/VersionPage.cpp +++ b/application/pages/VersionPage.cpp @@ -58,6 +58,11 @@ bool VersionPage::shouldDisplay() const return !m_inst->isRunning(); } +void VersionPage::setParentContainer(BasePageContainer * container) +{ + m_container = container; +} + VersionPage::VersionPage(OneSixInstance *inst, QWidget *parent) : QWidget(parent), ui(new Ui::VersionPage), m_inst(inst) { @@ -145,12 +150,45 @@ void VersionPage::on_removeBtn_clicked() updateButtons(); } +void VersionPage::on_modBtn_clicked() +{ + if(m_container) + { + m_container->selectPage("mods"); + } +} + void VersionPage::on_jarmodBtn_clicked() { + bool nagShown = false; + auto traits = m_version->traits; + if (!traits.contains("legacyLaunch") && !traits.contains("alphaLaunch")) + { + // not legacy launch... nag + auto seenNag = MMC->settings()->get("JarModNagSeen").toBool(); + if(!seenNag) + { + auto result = QMessageBox::question(this, + tr("Are you sure?"), + tr("This will add mods directly to the Minecraft jar.\n" + "Unless you KNOW that this is what NEEDS to be done, you should just use the mods folder (Loader mods).\n" + "\n" + "Do you want to continue?"), + tr("I understand, continue."), tr("Cancel"), QString(), 1, 1 + ); + if(result != 0) + return; + nagShown = true; + } + } auto list = GuiUtil::BrowseForMods("jarmod", tr("Select jar mods"), tr("Minecraft.jar mods (*.zip *.jar)"), this->parentWidget()); if(!list.empty()) { m_version->installJarMods(list); + if(nagShown) + { + MMC->settings()->set("JarModNagSeen", QVariant(true)); + } } updateButtons(); } diff --git a/application/pages/VersionPage.h b/application/pages/VersionPage.h index 49837f80..bd22e140 100644 --- a/application/pages/VersionPage.h +++ b/application/pages/VersionPage.h @@ -47,6 +47,8 @@ public: } virtual bool shouldDisplay() const; + virtual void setParentContainer(BasePageContainer *); + private slots: void on_forgeBtn_clicked(); void on_liteloaderBtn_clicked(); @@ -58,6 +60,7 @@ private slots: void on_jarmodBtn_clicked(); void on_revertBtn_clicked(); void on_editBtn_clicked(); + void on_modBtn_clicked(); void on_customizeBtn_clicked(); void updateVersionControls(); @@ -80,6 +83,7 @@ private: std::shared_ptr m_version; OneSixInstance *m_inst; int currentIdx = 0; + BasePageContainer * m_container = nullptr; public slots: void versionCurrent(const QModelIndex ¤t, const QModelIndex &previous); diff --git a/application/pages/VersionPage.ui b/application/pages/VersionPage.ui index 1216229f..e1c23197 100644 --- a/application/pages/VersionPage.ui +++ b/application/pages/VersionPage.ui @@ -181,12 +181,12 @@ - + - Add a mod into the Minecraft jar file. + Install normal mods. - Add jar mod + Install mods @@ -196,13 +196,23 @@ - List + Advanced Qt::AlignCenter + + + + Add a mod into the Minecraft jar file. + + + Add jar mod + + + @@ -230,8 +240,8 @@ - 20 - 40 + 111 + 13 @@ -269,6 +279,7 @@ revertBtn forgeBtn liteloaderBtn + modBtn jarmodBtn resetOrderBtn reloadBtn -- cgit v1.2.3