summaryrefslogtreecommitdiffstats
path: root/gui/LegacyModEditDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gui/LegacyModEditDialog.cpp')
-rw-r--r--gui/LegacyModEditDialog.cpp52
1 files changed, 46 insertions, 6 deletions
diff --git a/gui/LegacyModEditDialog.cpp b/gui/LegacyModEditDialog.cpp
index 616fc050..053aef6b 100644
--- a/gui/LegacyModEditDialog.cpp
+++ b/gui/LegacyModEditDialog.cpp
@@ -13,10 +13,15 @@
* limitations under the License.
*/
+#include "MultiMC.h"
#include "LegacyModEditDialog.h"
#include "ModEditDialogCommon.h"
+#include "versionselectdialog.h"
+#include "ProgressDialog.h"
#include "ui_LegacyModEditDialog.h"
-#include <logic/ModList.h>
+#include "logic/ModList.h"
+#include "logic/lists/ForgeVersionList.h"
+
#include <pathutils.h>
#include <QFileDialog>
#include <QDebug>
@@ -183,7 +188,8 @@ bool LegacyModEditDialog::eventFilter ( QObject* obj, QEvent* ev )
void LegacyModEditDialog::on_addCoreBtn_clicked()
{
- QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Core Mods");
+ //: Title of core mod selection dialog
+ QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select Core Mods"));
for(auto filename:fileNames)
{
m_coremods->stopWatching();
@@ -193,11 +199,43 @@ void LegacyModEditDialog::on_addCoreBtn_clicked()
}
void LegacyModEditDialog::on_addForgeBtn_clicked()
{
-
+ VersionSelectDialog vselect(MMC->forgelist().data(), this);
+ vselect.setFilter(1, m_inst->intendedVersionId());
+ if (vselect.exec() && vselect.selectedVersion())
+ {
+ ForgeVersionPtr forge = vselect.selectedVersion().dynamicCast<ForgeVersion>();
+ if(!forge)
+ return;
+ auto entry = MMC->metacache()->resolveEntry("minecraftforge", forge->filename);
+ if(entry->stale)
+ {
+ DownloadJob * fjob = new DownloadJob("Forge download");
+ fjob->addCacheDownload(forge->universal_url, entry);
+ ProgressDialog dlg(this);
+ dlg.exec(fjob);
+ if(dlg.result() == QDialog::Accepted)
+ {
+ m_jarmods->stopWatching();
+ m_jarmods->installMod(QFileInfo(entry->getFullPath()));
+ m_jarmods->startWatching();
+ }
+ else
+ {
+ // failed to download forge :/
+ }
+ }
+ else
+ {
+ m_jarmods->stopWatching();
+ m_jarmods->installMod(QFileInfo(entry->getFullPath()));
+ m_jarmods->startWatching();
+ }
+ }
}
void LegacyModEditDialog::on_addJarBtn_clicked()
{
- QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Jar Mods");
+ //: Title of jar mod selection dialog
+ QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select Jar Mods"));
for(auto filename:fileNames)
{
m_jarmods->stopWatching();
@@ -207,7 +245,8 @@ void LegacyModEditDialog::on_addJarBtn_clicked()
}
void LegacyModEditDialog::on_addModBtn_clicked()
{
- QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Loader Mods");
+ //: Title of regular mod selection dialog
+ QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select Loader Mods"));
for(auto filename:fileNames)
{
m_mods->stopWatching();
@@ -217,7 +256,8 @@ void LegacyModEditDialog::on_addModBtn_clicked()
}
void LegacyModEditDialog::on_addTexPackBtn_clicked()
{
- QStringList fileNames = QFileDialog::getOpenFileNames(this, "Select Texture Packs");
+ //: Title of texture pack selection dialog
+ QStringList fileNames = QFileDialog::getOpenFileNames(this, tr("Select Texture Packs"));
for(auto filename:fileNames)
{
m_texturepacks->stopWatching();