Fix settings objects, instances can be started from the GUI now

This commit is contained in:
Petr Mrázek 2013-03-24 15:36:00 +01:00
parent e4f86893a8
commit 40570c3210
8 changed files with 56 additions and 12 deletions

View File

@ -39,6 +39,7 @@
#include "gui/taskdialog.h" #include "gui/taskdialog.h"
#include "gui/browserdialog.h" #include "gui/browserdialog.h"
#include "gui/aboutdialog.h" #include "gui/aboutdialog.h"
#include "gui/consolewindow.h"
#include "kcategorizedview.h" #include "kcategorizedview.h"
#include "kcategorydrawer.h" #include "kcategorydrawer.h"
@ -49,6 +50,7 @@
#include "logintask.h" #include "logintask.h"
#include <instance.h> #include <instance.h>
#include "minecraftprocess.h"
#include "instancemodel.h" #include "instancemodel.h"
#include "instancedelegate.h" #include "instancedelegate.h"
@ -276,9 +278,27 @@ void MainWindow::doLogin ( QString inst, const QString& errorMsg )
void MainWindow::onLoginComplete ( QString inst, LoginResponse response ) void MainWindow::onLoginComplete ( QString inst, LoginResponse response )
{ {
// TODO: console
console = new ConsoleWindow();
auto instance = instList.getInstanceById(inst);
if(instance)
{
proc = new MinecraftProcess(instance, response.username(), response.sessionID());
console->show();
//connect(proc, SIGNAL(ended()), SLOT(onTerminated()));
connect(proc, SIGNAL(log(QString,MessageLevel::Enum)), console, SLOT(write(QString,MessageLevel::Enum)));
proc->launch();
}
else
{
}
/*
QMessageBox::information ( this, "Login Successful", QMessageBox::information ( this, "Login Successful",
QString ( "Logged in as %1 with session ID %2. Instance: %3" ). QString ( "Logged in as %1 with session ID %2. Instance: %3" ).
arg ( response.username(), response.sessionID(), inst ) ); arg ( response.username(), response.sessionID(), inst ) );
*/
} }
void MainWindow::onLoginFailed ( QString inst, const QString& errorMsg ) void MainWindow::onLoginFailed ( QString inst, const QString& errorMsg )

View File

@ -26,6 +26,8 @@ class InstanceModel;
class InstanceProxyModel; class InstanceProxyModel;
class KCategorizedView; class KCategorizedView;
class KCategoryDrawer; class KCategoryDrawer;
class MinecraftProcess;
class ConsoleWindow;
namespace Ui namespace Ui
{ {
@ -94,6 +96,8 @@ private:
InstanceModel * model; InstanceModel * model;
InstanceProxyModel * proxymodel; InstanceProxyModel * proxymodel;
InstanceList instList; InstanceList instList;
MinecraftProcess *proc;
ConsoleWindow *console;
}; };
#endif // MAINWINDOW_H #endif // MAINWINDOW_H

View File

@ -48,6 +48,12 @@ Instance::Instance(const QString &rootDir, QObject *parent) :
settings().registerSetting(new OverrideSetting("PostExitCommand", settings().registerSetting(new OverrideSetting("PostExitCommand",
globalSettings->getSetting("PostExitCommand"))); globalSettings->getSetting("PostExitCommand")));
// Window Size
settings().registerSetting(new OverrideSetting("LaunchCompatMode", globalSettings->getSetting("LaunchCompatMode")));
settings().registerSetting(new OverrideSetting("LaunchMaximized", globalSettings->getSetting("LaunchMaximized")));
settings().registerSetting(new OverrideSetting("MinecraftWinWidth", globalSettings->getSetting("MinecraftWinWidth")));
settings().registerSetting(new OverrideSetting("MinecraftWinHeight", globalSettings->getSetting("MinecraftWinHeight")));
// Memory // Memory
settings().registerSetting(new OverrideSetting("MinMemAlloc", globalSettings->getSetting("MinMemAlloc"))); settings().registerSetting(new OverrideSetting("MinMemAlloc", globalSettings->getSetting("MinMemAlloc")));
settings().registerSetting(new OverrideSetting("MaxMemAlloc", globalSettings->getSetting("MaxMemAlloc"))); settings().registerSetting(new OverrideSetting("MaxMemAlloc", globalSettings->getSetting("MaxMemAlloc")));

View File

@ -182,9 +182,10 @@ void MinecraftProcess::launch()
genArgs(); genArgs();
emit log(QString("Minecraft folder is: '%1'").arg(workingDirectory())); emit log(QString("Minecraft folder is: '%1'").arg(workingDirectory()));
emit log(QString("Instance launched with arguments: '%1'").arg(m_arguments.join("' '"))); QString JavaPath = m_instance->settings().get("JavaPath").toString();
emit log(QString("Java path: '%1'").arg(JavaPath));
start(m_instance->settings().get("JavaPath").toString(), m_arguments); emit log(QString("Arguments: '%1'").arg(m_arguments.join("' '")));
start(JavaPath, m_arguments);
if (!waitForStarted()) if (!waitForStarted())
{ {
emit log("Could not launch minecraft!"); emit log("Could not launch minecraft!");

View File

@ -26,7 +26,10 @@ void BasicSettingsObject::changeSetting(const Setting &setting, QVariant value)
{ {
if (contains(setting.id())) if (contains(setting.id()))
{ {
config.setValue(setting.configKey(), value); if(value.isValid())
config.setValue(setting.configKey(), value);
else
config.remove(setting.configKey());
} }
} }

View File

@ -32,7 +32,10 @@ void INISettingsObject::changeSetting(const Setting &setting, QVariant value)
{ {
if (contains(setting.id())) if (contains(setting.id()))
{ {
m_ini.set(setting.configKey(), value); if(value.isValid())
m_ini.set(setting.configKey(), value);
else
m_ini.remove(setting.configKey());
} }
} }

View File

@ -26,9 +26,16 @@ QVariant Setting::get() const
{ {
SettingsObject *sbase = qobject_cast<SettingsObject *>(parent()); SettingsObject *sbase = qobject_cast<SettingsObject *>(parent());
if (!sbase) if (!sbase)
{
return defValue(); return defValue();
}
else else
return sbase->retrieveValue(*this); {
QVariant test = sbase->retrieveValue(*this);
if(!test.isValid())
return defValue();
return test;
}
} }
QVariant Setting::defValue() const QVariant Setting::defValue() const

View File

@ -14,7 +14,7 @@
height="32" height="32"
id="svg2" id="svg2"
version="1.1" version="1.1"
inkscape:version="0.48.3.1 r9886" inkscape:version="0.48.4 r9939"
sodipodi:docname="clucker.svg" sodipodi:docname="clucker.svg"
inkscape:export-filename="/home/peterix/projects/MultiMC4/src/resources/insticons/chicken128.png" inkscape:export-filename="/home/peterix/projects/MultiMC4/src/resources/insticons/chicken128.png"
inkscape:export-xdpi="360" inkscape:export-xdpi="360"
@ -234,13 +234,13 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="2" inkscape:zoom="11.313708"
inkscape:cx="-92.12757" inkscape:cx="2.6058272"
inkscape:cy="71.871222" inkscape:cy="11.408405"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="false"
inkscape:window-width="1607" inkscape:window-width="1614"
inkscape:window-height="1030" inkscape:window-height="1030"
inkscape:window-x="1676" inkscape:window-x="1676"
inkscape:window-y="-3" inkscape:window-y="-3"
@ -261,7 +261,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title> <dc:title />
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB