summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-11-11 11:37:15 -0600
committerAndrew <forkk@forkk.net>2013-11-11 11:37:15 -0600
commit950088bee5d66b3656ba9506d7e4f9b61def5f49 (patch)
tree895e74767b71f5907d006ce01f47ea7d1e0f97ff
parent5083a6a8090fa03d3c1800c1f9588079ca11e9f9 (diff)
parente611aef0e77f727d0c77f6dea0d373e7a12b241c (diff)
downloadMultiMC-950088bee5d66b3656ba9506d7e4f9b61def5f49.tar
MultiMC-950088bee5d66b3656ba9506d7e4f9b61def5f49.tar.gz
MultiMC-950088bee5d66b3656ba9506d7e4f9b61def5f49.tar.lz
MultiMC-950088bee5d66b3656ba9506d7e4f9b61def5f49.tar.xz
MultiMC-950088bee5d66b3656ba9506d7e4f9b61def5f49.zip
Merge branch 'develop' of github.com:MultiMC/MultiMC5 into develop
-rw-r--r--.travis.yml16
-rw-r--r--gui/ConsoleWindow.ui22
-rw-r--r--gui/MainWindow.cpp8
-rw-r--r--gui/dialogs/InstanceSettings.cpp11
-rw-r--r--gui/dialogs/InstanceSettings.ui13
-rw-r--r--gui/dialogs/SettingsDialog.ui16
-rw-r--r--logic/LegacyUpdate.cpp7
-rw-r--r--logic/Mod.cpp36
-rw-r--r--logic/lists/InstanceList.cpp22
-rw-r--r--logic/lists/LwjglVersionList.cpp11
10 files changed, 85 insertions, 77 deletions
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index c94982f2..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-language: cpp
-compiler:
- - gcc
-
-before_script:
- - sudo apt-add-repository -y ppa:czchen/travis-ci
- - sudo add-apt-repository -y ppa:ubuntu-sdk-team/ppa
- - sudo add-apt-repository -y ppa:canonical-qt5-edgers/qt5-proper
- - sudo apt-get update -yqq
- - sudo apt-get install -yqq cmake
- - sudo apt-get install -yqq ubuntu-sdk
-
-script: "cmake . && make -j4"
-
-notifications:
- irc: "irc.esper.net#MultiMC"
diff --git a/gui/ConsoleWindow.ui b/gui/ConsoleWindow.ui
index 8dc80015..472c7c8d 100644
--- a/gui/ConsoleWindow.ui
+++ b/gui/ConsoleWindow.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>600</width>
- <height>400</height>
+ <width>610</width>
+ <height>391</height>
</rect>
</property>
<property name="windowTitle">
@@ -23,6 +23,9 @@
<property name="rightMargin">
<number>0</number>
</property>
+ <property name="bottomMargin">
+ <number>6</number>
+ </property>
<item>
<widget class="QPlainTextEdit" name="text">
<property name="font">
@@ -49,6 +52,12 @@
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
+ <property name="leftMargin">
+ <number>6</number>
+ </property>
+ <property name="rightMargin">
+ <number>6</number>
+ </property>
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
@@ -65,14 +74,14 @@
<item>
<widget class="QPushButton" name="btnKillMinecraft">
<property name="text">
- <string>Kill Minecraft</string>
+ <string>&amp;Kill Minecraft</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="closeButton">
<property name="text">
- <string>Close</string>
+ <string>&amp;Close</string>
</property>
</widget>
</item>
@@ -80,6 +89,11 @@
</item>
</layout>
</widget>
+ <tabstops>
+ <tabstop>text</tabstop>
+ <tabstop>closeButton</tabstop>
+ <tabstop>btnKillMinecraft</tabstop>
+ </tabstops>
<resources/>
<connections/>
</ui>
diff --git a/gui/MainWindow.cpp b/gui/MainWindow.cpp
index 39e6dff2..62ae195b 100644
--- a/gui/MainWindow.cpp
+++ b/gui/MainWindow.cpp
@@ -535,9 +535,9 @@ void MainWindow::instanceActivated(QModelIndex index)
BaseInstance *inst =
(BaseInstance *)index.data(InstanceList::InstancePointerRole).value<void *>();
- NagUtils::checkJVMArgs(MMC->settings()->get("JvmArgs").toString(), this);
+ NagUtils::checkJVMArgs(inst->settings().get("JvmArgs").toString(), this);
- bool autoLogin = MMC->settings()->get("AutoLogin").toBool();
+ bool autoLogin = inst->settings().get("AutoLogin").toBool();
if (autoLogin)
doAutoLogin();
else
@@ -548,7 +548,7 @@ void MainWindow::on_actionLaunchInstance_triggered()
{
if (m_selectedInstance)
{
- NagUtils::checkJVMArgs(MMC->settings()->get("JvmArgs").toString(), this);
+ NagUtils::checkJVMArgs(m_selectedInstance->settings().get("JvmArgs").toString(), this);
doLogin();
}
}
@@ -826,7 +826,7 @@ void MainWindow::on_actionInstanceSettings_triggered()
return;
InstanceSettings settings(&m_selectedInstance->settings(), this);
- settings.setWindowTitle(QString("Instance settings"));
+ settings.setWindowTitle(tr("Instance settings"));
settings.exec();
}
diff --git a/gui/dialogs/InstanceSettings.cpp b/gui/dialogs/InstanceSettings.cpp
index 57dd6a81..add135b4 100644
--- a/gui/dialogs/InstanceSettings.cpp
+++ b/gui/dialogs/InstanceSettings.cpp
@@ -20,6 +20,7 @@
#include "InstanceSettings.h"
#include "ui_InstanceSettings.h"
#include "gui/Platform.h"
+#include "logic/NagUtils.h"
InstanceSettings::InstanceSettings(SettingsObject *obj, QWidget *parent)
: m_obj(obj), QDialog(parent), ui(new Ui::InstanceSettings)
@@ -89,11 +90,11 @@ void InstanceSettings::applySettings()
}
// Auto Login
- bool login = ui->accountSettingsGroupBox->isChecked();
+ bool login = ui->accountSettingsBox->isChecked();
m_obj->set("OverrideLogin", login);
if (login)
{
- m_obj->set("AutoLogin", ui->autoLoginChecBox->isChecked());
+ m_obj->set("AutoLogin", ui->autoLoginCheckBox->isChecked());
}
else
{
@@ -123,6 +124,8 @@ void InstanceSettings::applySettings()
{
m_obj->set("JavaPath", ui->javaPathTextBox->text());
m_obj->set("JvmArgs", ui->jvmArgsTextBox->text());
+
+ NagUtils::checkJVMArgs(m_obj->get("JvmArgs").toString(), this->parentWidget());
}
else
{
@@ -159,8 +162,8 @@ void InstanceSettings::loadSettings()
ui->windowHeightSpinBox->setValue(m_obj->get("MinecraftWinHeight").toInt());
// Auto Login
- ui->accountSettingsGroupBox->setChecked(m_obj->get("OverrideLogin").toBool());
- ui->autoLoginChecBox->setChecked(m_obj->get("AutoLogin").toBool());
+ ui->accountSettingsBox->setChecked(m_obj->get("OverrideLogin").toBool());
+ ui->autoLoginCheckBox->setChecked(m_obj->get("AutoLogin").toBool());
// Memory
ui->memoryGroupBox->setChecked(m_obj->get("OverrideMemory").toBool());
diff --git a/gui/dialogs/InstanceSettings.ui b/gui/dialogs/InstanceSettings.ui
index b536e9ff..27004ed8 100644
--- a/gui/dialogs/InstanceSettings.ui
+++ b/gui/dialogs/InstanceSettings.ui
@@ -132,7 +132,7 @@
</widget>
</item>
<item>
- <widget class="QGroupBox" name="accountSettingsGroupBox">
+ <widget class="QGroupBox" name="accountSettingsBox">
<property name="enabled">
<bool>true</bool>
</property>
@@ -147,16 +147,10 @@
</property>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
- <widget class="QCheckBox" name="autoLoginChecBox">
- <property name="enabled">
- <bool>false</bool>
- </property>
+ <widget class="QCheckBox" name="autoLoginCheckBox">
<property name="text">
<string>Login automatically when an instance icon is double clicked?</string>
</property>
- <property name="checked">
- <bool>false</bool>
- </property>
</widget>
</item>
</layout>
@@ -403,8 +397,7 @@
<tabstop>consoleSettingsBox</tabstop>
<tabstop>showConsoleCheck</tabstop>
<tabstop>autoCloseConsoleCheck</tabstop>
- <tabstop>accountSettingsGroupBox</tabstop>
- <tabstop>autoLoginChecBox</tabstop>
+ <tabstop>accountSettingsBox</tabstop>
<tabstop>memoryGroupBox</tabstop>
<tabstop>minMemSpinBox</tabstop>
<tabstop>maxMemSpinBox</tabstop>
diff --git a/gui/dialogs/SettingsDialog.ui b/gui/dialogs/SettingsDialog.ui
index 6da9420e..53a41d6e 100644
--- a/gui/dialogs/SettingsDialog.ui
+++ b/gui/dialogs/SettingsDialog.ui
@@ -262,10 +262,19 @@
</widget>
</item>
<item>
- <widget class="QCheckBox" name="autoLoginCheckBox">
- <property name="text">
- <string>Login automatically when an instance icon is double clicked?</string>
+ <widget class="QGroupBox" name="accountSettingsBox">
+ <property name="title">
+ <string>Account Settings</string>
</property>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <widget class="QCheckBox" name="autoLoginCheckBox">
+ <property name="text">
+ <string>Login automatically when an instance icon is double clicked?</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</widget>
</item>
<item>
@@ -515,7 +524,6 @@
<tabstop>windowHeightSpinBox</tabstop>
<tabstop>showConsoleCheck</tabstop>
<tabstop>autoCloseConsoleCheck</tabstop>
- <tabstop>autoLoginCheckBox</tabstop>
<tabstop>minMemSpinBox</tabstop>
<tabstop>maxMemSpinBox</tabstop>
<tabstop>permGenSpinBox</tabstop>
diff --git a/logic/LegacyUpdate.cpp b/logic/LegacyUpdate.cpp
index 9533f8ff..8ba97827 100644
--- a/logic/LegacyUpdate.cpp
+++ b/logic/LegacyUpdate.cpp
@@ -40,7 +40,7 @@ void LegacyUpdate::lwjglStart()
LegacyInstance *inst = (LegacyInstance *)m_inst;
lwjglVersion = inst->lwjglVersion();
- lwjglTargetPath = PathCombine("lwjgl", lwjglVersion);
+ lwjglTargetPath = PathCombine(MMC->settings()->get("LWJGLDir").toString(), lwjglVersion);
lwjglNativesPath = PathCombine(lwjglTargetPath, "natives");
// if the 'done' file exists, we don't have to download this again
@@ -361,7 +361,10 @@ void LegacyUpdate::ModTheJar()
setStatus("Installing mods - backing up minecraft.jar...");
if (!baseJar.exists() && !QFile::copy(runnableJar.filePath(), baseJar.filePath()))
{
- emitFailed("Failed to back up minecraft.jar");
+ emitFailed("It seems both the active and base jar are gone. A fresh base jar will be used on next run.");
+ inst->setShouldRebuild(true);
+ inst->setShouldUpdate(true);
+ inst->setShouldUseCustomBaseJar(false);
return;
}
}
diff --git a/logic/Mod.cpp b/logic/Mod.cpp
index f9647eea..cff9467e 100644
--- a/logic/Mod.cpp
+++ b/logic/Mod.cpp
@@ -56,34 +56,34 @@ void Mod::repath(const QFileInfo &file)
return;
QuaZipFile file(&zip);
- for (bool more = zip.goToFirstFile(); more; more = zip.goToNextFile())
+
+ if (zip.setCurrentFile("mcmod.info"))
{
- QString name = zip.getCurrentFileName();
- if (name == "mcmod.info")
+ if(!file.open(QIODevice::ReadOnly))
{
- if (!file.open(QIODevice::ReadOnly))
- {
- zip.close();
- return;
- }
- ReadMCModInfo(file.readAll());
- file.close();
zip.close();
return;
}
- else if (name == "forgeversion.properties")
+
+ ReadMCModInfo(file.readAll());
+ file.close();
+ zip.close();
+ return;
+ }
+ else if (zip.setCurrentFile("forgeversion.properties"))
+ {
+ if (!file.open(QIODevice::ReadOnly))
{
- if (!file.open(QIODevice::ReadOnly))
- {
- zip.close();
- return;
- }
- ReadForgeInfo(file.readAll());
- file.close();
zip.close();
return;
}
+
+ ReadForgeInfo(file.readAll());
+ file.close();
+ zip.close();
+ return;
}
+
zip.close();
}
else if (m_type == MOD_FOLDER)
diff --git a/logic/lists/InstanceList.cpp b/logic/lists/InstanceList.cpp
index 4446ff22..7081dc6f 100644
--- a/logic/lists/InstanceList.cpp
+++ b/logic/lists/InstanceList.cpp
@@ -204,7 +204,7 @@ void InstanceList::loadGroupList(QMap<QString, QString> &groupMap)
// if the root of the json wasn't an object, fail
if (!jsonDoc.isObject())
{
- qWarning("Invalid group file. Root entry should be an object.");
+ QLOG_WARN() << "Invalid group file. Root entry should be an object.";
return;
}
@@ -217,7 +217,7 @@ void InstanceList::loadGroupList(QMap<QString, QString> &groupMap)
// Get the groups. if it's not an object, fail
if (!rootObj.value("groups").isObject())
{
- qWarning("Invalid group list JSON: 'groups' should be an object.");
+ QLOG_WARN() << "Invalid group list JSON: 'groups' should be an object.";
return;
}
@@ -230,21 +230,21 @@ void InstanceList::loadGroupList(QMap<QString, QString> &groupMap)
// If not an object, complain and skip to the next one.
if (!iter.value().isObject())
{
- qWarning(QString("Group '%1' in the group list should "
- "be an object.")
- .arg(groupName)
- .toUtf8());
+ QLOG_WARN() << QString("Group '%1' in the group list should "
+ "be an object.")
+ .arg(groupName)
+ .toUtf8();
continue;
}
QJsonObject groupObj = iter.value().toObject();
if (!groupObj.value("instances").isArray())
{
- qWarning(QString("Group '%1' in the group list is invalid. "
- "It should contain an array "
- "called 'instances'.")
- .arg(groupName)
- .toUtf8());
+ QLOG_WARN() << QString("Group '%1' in the group list is invalid. "
+ "It should contain an array "
+ "called 'instances'.")
+ .arg(groupName)
+ .toUtf8();
continue;
}
diff --git a/logic/lists/LwjglVersionList.cpp b/logic/lists/LwjglVersionList.cpp
index 3333e86c..df46d7be 100644
--- a/logic/lists/LwjglVersionList.cpp
+++ b/logic/lists/LwjglVersionList.cpp
@@ -83,7 +83,10 @@ void LWJGLVersionList::loadList()
setLoading(true);
auto worker = MMC->qnam();
- reply = worker->get(QNetworkRequest(QUrl(RSS_URL)));
+ QNetworkRequest req(QUrl(RSS_URL));
+ req.setRawHeader("Accept", "text/xml");
+ req.setRawHeader("User-Agent", "MultiMC/5.0 (Uncached)");
+ reply = worker->get(req);
connect(reply, SIGNAL(finished()), SLOT(netRequestComplete()));
}
@@ -127,7 +130,7 @@ void LWJGLVersionList::netRequestComplete()
QDomElement linkElement = getDomElementByTagName(items.at(i).toElement(), "link");
if (linkElement.isNull())
{
- qWarning() << "Link element" << i << "in RSS feed doesn't exist! Skipping.";
+ QLOG_INFO() << "Link element" << i << "in RSS feed doesn't exist! Skipping.";
continue;
}
@@ -143,7 +146,7 @@ void LWJGLVersionList::netRequestComplete()
QUrl url(link);
if (!url.isValid())
{
- qWarning() << "LWJGL version URL isn't valid:" << link << "Skipping.";
+ QLOG_INFO() << "LWJGL version URL isn't valid:" << link << "Skipping.";
continue;
}
@@ -180,7 +183,7 @@ const PtrLWJGLVersion LWJGLVersionList::getVersion(const QString &versionName)
void LWJGLVersionList::failed(QString msg)
{
- qWarning() << msg;
+ QLOG_INFO() << msg;
emit loadListFailed(msg);
}