GH-2087 remove the revert to vanilla functionality, add file download button to version page

This commit is contained in:
Petr Mrázek 2018-01-05 04:26:46 +01:00
parent ee341b78ba
commit 0636c03d7c
6 changed files with 30 additions and 81 deletions

View File

@ -743,42 +743,6 @@ Component * ComponentList::getComponent(int index)
return d->components[index].get(); 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 QVariant ComponentList::data(const QModelIndex &index, int role) const
{ {
if (!index.isValid()) if (!index.isValid())

View File

@ -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. /// call this to explicitly mark the component list as loaded - this is used to build a new component list from scratch.
void buildingFromScratch(); 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 /// install more jar mods
void installJarMods(QStringList selectedFiles); void installJarMods(QStringList selectedFiles);

View File

@ -398,14 +398,8 @@ QStringList MinecraftInstance::processMinecraftArgs(AuthSessionPtr session) cons
// blatant self-promotion. // blatant self-promotion.
token_mapping["profile_name"] = token_mapping["version_name"] = "MultiMC5"; token_mapping["profile_name"] = token_mapping["version_name"] = "MultiMC5";
if(m_components->isVanilla())
{ token_mapping["version_type"] = profile->getMinecraftVersionType();
token_mapping["version_type"] = profile->getMinecraftVersionType();
}
else
{
token_mapping["version_type"] = "custom";
}
QString absRootDir = QDir(minecraftRoot()).absolutePath(); QString absRootDir = QDir(minecraftRoot()).absolutePath();
token_mapping["game_directory"] = absRootDir; token_mapping["game_directory"] = absRootDir;

View File

@ -324,6 +324,19 @@ void VersionPage::on_changeVersionBtn_clicked()
if (!vselect.exec() || !vselect.selectedVersion()) if (!vselect.exec() || !vselect.selectedVersion())
return; return;
qDebug() << "Change" << uid << "to" << vselect.selectedVersion()->descriptor();
bool important = false;
if(uid == "net.minecraft")
{
important = true;
}
m_profile->setComponentVersion(uid, vselect.selectedVersion()->descriptor(), important);
m_profile->resolve(Net::Mode::Online);
m_container->refreshContainer();
}
void VersionPage::on_downloadBtn_clicked()
{
if (!MMC->accounts()->anyAccountIsValid()) if (!MMC->accounts()->anyAccountIsValid())
{ {
CustomMessageBox::selectable( CustomMessageBox::selectable(
@ -334,44 +347,16 @@ void VersionPage::on_changeVersionBtn_clicked()
return; 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_container->refreshContainer();
}
int VersionPage::doUpdate()
{
auto updateTask = m_inst->createUpdateTask(Net::Mode::Online); auto updateTask = m_inst->createUpdateTask(Net::Mode::Online);
if (!updateTask) if (!updateTask)
{ {
return 1; return;
} }
ProgressDialog tDialog(this); ProgressDialog tDialog(this);
connect(updateTask.get(), SIGNAL(failed(QString)), SLOT(onGameUpdateError(QString))); connect(updateTask.get(), SIGNAL(failed(QString)), SLOT(onGameUpdateError(QString)));
int ret = tDialog.execWithTask(updateTask.get()); int ret = tDialog.execWithTask(updateTask.get());
updateButtons(); updateButtons();
m_container->refreshContainer(); m_container->refreshContainer();
return ret;
} }
void VersionPage::on_forgeBtn_clicked() void VersionPage::on_forgeBtn_clicked()

View File

@ -62,6 +62,7 @@ private slots:
void on_editBtn_clicked(); void on_editBtn_clicked();
void on_modBtn_clicked(); void on_modBtn_clicked();
void on_customizeBtn_clicked(); void on_customizeBtn_clicked();
void on_downloadBtn_clicked();
void updateVersionControls(); void updateVersionControls();
void disableVersionControls(); void disableVersionControls();

View File

@ -6,8 +6,8 @@
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>693</width> <width>870</width>
<height>833</height> <height>1008</height>
</rect> </rect>
</property> </property>
<layout class="QVBoxLayout" name="verticalLayout"> <layout class="QVBoxLayout" name="verticalLayout">
@ -234,6 +234,16 @@
</property> </property>
</widget> </widget>
</item> </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> <item>
<spacer name="verticalSpacer_7"> <spacer name="verticalSpacer_7">
<property name="orientation"> <property name="orientation">
@ -300,6 +310,7 @@
<tabstop>jarBtn</tabstop> <tabstop>jarBtn</tabstop>
<tabstop>addEmptyBtn</tabstop> <tabstop>addEmptyBtn</tabstop>
<tabstop>reloadBtn</tabstop> <tabstop>reloadBtn</tabstop>
<tabstop>downloadBtn</tabstop>
<tabstop>tabWidget</tabstop> <tabstop>tabWidget</tabstop>
</tabstops> </tabstops>
<resources/> <resources/>