Fix settings objects, instances can be started from the GUI now
This commit is contained in:
parent
e4f86893a8
commit
40570c3210
@ -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 )
|
||||||
|
@ -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
|
||||||
|
@ -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")));
|
||||||
|
@ -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!");
|
||||||
|
@ -26,7 +26,10 @@ void BasicSettingsObject::changeSetting(const Setting &setting, QVariant value)
|
|||||||
{
|
{
|
||||||
if (contains(setting.id()))
|
if (contains(setting.id()))
|
||||||
{
|
{
|
||||||
|
if(value.isValid())
|
||||||
config.setValue(setting.configKey(), value);
|
config.setValue(setting.configKey(), value);
|
||||||
|
else
|
||||||
|
config.remove(setting.configKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,7 +32,10 @@ void INISettingsObject::changeSetting(const Setting &setting, QVariant value)
|
|||||||
{
|
{
|
||||||
if (contains(setting.id()))
|
if (contains(setting.id()))
|
||||||
{
|
{
|
||||||
|
if(value.isValid())
|
||||||
m_ini.set(setting.configKey(), value);
|
m_ini.set(setting.configKey(), value);
|
||||||
|
else
|
||||||
|
m_ini.remove(setting.configKey());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
|
||||||
|
@ -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 |
Loading…
Reference in New Issue
Block a user