summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/logic/minecraft/ComponentList.cpp36
-rw-r--r--api/logic/minecraft/ComponentList.h6
-rw-r--r--api/logic/minecraft/MinecraftInstance.cpp10
-rw-r--r--application/pages/VersionPage.cpp41
-rw-r--r--application/pages/VersionPage.h1
-rw-r--r--application/pages/VersionPage.ui15
6 files changed, 29 insertions, 80 deletions
diff --git a/api/logic/minecraft/ComponentList.cpp b/api/logic/minecraft/ComponentList.cpp
index b4ab2151..dc7f3614 100644
--- a/api/logic/minecraft/ComponentList.cpp
+++ b/api/logic/minecraft/ComponentList.cpp
@@ -743,42 +743,6 @@ Component * ComponentList::getComponent(int index)
return d->components[index].get();
}
-bool ComponentList::isVanilla()
-{
- for(auto patchptr: d->components)
- {
- if(patchptr->isCustom())
- return false;
- }
- return true;
-}
-
-bool ComponentList::revertToVanilla()
-{
- // remove patches, if present
- auto VersionPatchesCopy = d->components;
- for(auto & it: VersionPatchesCopy)
- {
- if (!it->isCustom())
- {
- continue;
- }
- if(it->isRevertible() || it->isRemovable())
- {
- if(!remove(it->getID()))
- {
- qWarning() << "Couldn't remove" << it->getID() << "from profile!";
- invalidateLaunchProfile();
- scheduleSave();
- return false;
- }
- }
- }
- invalidateLaunchProfile();
- scheduleSave();
- return true;
-}
-
QVariant ComponentList::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
diff --git a/api/logic/minecraft/ComponentList.h b/api/logic/minecraft/ComponentList.h
index 3b53a9fe..6d380fe9 100644
--- a/api/logic/minecraft/ComponentList.h
+++ b/api/logic/minecraft/ComponentList.h
@@ -59,12 +59,6 @@ public:
/// call this to explicitly mark the component list as loaded - this is used to build a new component list from scratch.
void buildingFromScratch();
- /// is this version unchanged by the user?
- bool isVanilla();
-
- /// remove any customizations on top of whatever 'vanilla' means
- bool revertToVanilla();
-
/// install more jar mods
void installJarMods(QStringList selectedFiles);
diff --git a/api/logic/minecraft/MinecraftInstance.cpp b/api/logic/minecraft/MinecraftInstance.cpp
index 49db5b75..2fda79bf 100644
--- a/api/logic/minecraft/MinecraftInstance.cpp
+++ b/api/logic/minecraft/MinecraftInstance.cpp
@@ -398,14 +398,8 @@ QStringList MinecraftInstance::processMinecraftArgs(AuthSessionPtr session) cons
// blatant self-promotion.
token_mapping["profile_name"] = token_mapping["version_name"] = "MultiMC5";
- if(m_components->isVanilla())
- {
- token_mapping["version_type"] = profile->getMinecraftVersionType();
- }
- else
- {
- token_mapping["version_type"] = "custom";
- }
+
+ token_mapping["version_type"] = profile->getMinecraftVersionType();
QString absRootDir = QDir(minecraftRoot()).absolutePath();
token_mapping["game_directory"] = absRootDir;
diff --git a/application/pages/VersionPage.cpp b/application/pages/VersionPage.cpp
index 50cc825f..57e1709b 100644
--- a/application/pages/VersionPage.cpp
+++ b/application/pages/VersionPage.cpp
@@ -324,54 +324,39 @@ void VersionPage::on_changeVersionBtn_clicked()
if (!vselect.exec() || !vselect.selectedVersion())
return;
- if (!MMC->accounts()->anyAccountIsValid())
- {
- CustomMessageBox::selectable(
- this, tr("Error"),
- tr("MultiMC cannot download Minecraft or update instances unless you have at least "
- "one account added.\nPlease add your Mojang or Minecraft account."),
- QMessageBox::Warning)->show();
- return;
- }
-
qDebug() << "Change" << uid << "to" << vselect.selectedVersion()->descriptor();
bool important = false;
if(uid == "net.minecraft")
{
important = true;
- if (!m_profile->isVanilla())
- {
- auto result = CustomMessageBox::selectable(
- this, tr("Are you sure?"),
- tr("This will remove any library/version customization you did previously. "
- "This includes things like Forge install and similar."),
- QMessageBox::Warning, QMessageBox::Ok | QMessageBox::Abort,
- QMessageBox::Abort)->exec();
-
- if (result != QMessageBox::Ok)
- return;
- m_profile->revertToVanilla();
- reloadComponentList();
- }
}
m_profile->setComponentVersion(uid, vselect.selectedVersion()->descriptor(), important);
- doUpdate();
+ m_profile->resolve(Net::Mode::Online);
m_container->refreshContainer();
}
-int VersionPage::doUpdate()
+void VersionPage::on_downloadBtn_clicked()
{
+ if (!MMC->accounts()->anyAccountIsValid())
+ {
+ CustomMessageBox::selectable(
+ this, tr("Error"),
+ tr("MultiMC cannot download Minecraft or update instances unless you have at least "
+ "one account added.\nPlease add your Mojang or Minecraft account."),
+ QMessageBox::Warning)->show();
+ return;
+ }
+
auto updateTask = m_inst->createUpdateTask(Net::Mode::Online);
if (!updateTask)
{
- return 1;
+ return;
}
ProgressDialog tDialog(this);
connect(updateTask.get(), SIGNAL(failed(QString)), SLOT(onGameUpdateError(QString)));
int ret = tDialog.execWithTask(updateTask.get());
updateButtons();
m_container->refreshContainer();
- return ret;
}
void VersionPage::on_forgeBtn_clicked()
diff --git a/application/pages/VersionPage.h b/application/pages/VersionPage.h
index d4b65983..0003fe69 100644
--- a/application/pages/VersionPage.h
+++ b/application/pages/VersionPage.h
@@ -62,6 +62,7 @@ private slots:
void on_editBtn_clicked();
void on_modBtn_clicked();
void on_customizeBtn_clicked();
+ void on_downloadBtn_clicked();
void updateVersionControls();
void disableVersionControls();
diff --git a/application/pages/VersionPage.ui b/application/pages/VersionPage.ui
index 1d2adff7..d54dd840 100644
--- a/application/pages/VersionPage.ui
+++ b/application/pages/VersionPage.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>693</width>
- <height>833</height>
+ <width>870</width>
+ <height>1008</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
@@ -235,6 +235,16 @@
</widget>
</item>
<item>
+ <widget class="QPushButton" name="downloadBtn">
+ <property name="toolTip">
+ <string>Download the files needed to launch the instance now.</string>
+ </property>
+ <property name="text">
+ <string>Download All</string>
+ </property>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacer_7">
<property name="orientation">
<enum>Qt::Vertical</enum>
@@ -300,6 +310,7 @@
<tabstop>jarBtn</tabstop>
<tabstop>addEmptyBtn</tabstop>
<tabstop>reloadBtn</tabstop>
+ <tabstop>downloadBtn</tabstop>
<tabstop>tabWidget</tabstop>
</tabstops>
<resources/>