Fix console not staying open on minecraft crash
This commit is contained in:
@ -122,14 +122,15 @@ void ConsoleWindow::on_btnKillMinecraft_clicked()
|
||||
ui->btnKillMinecraft->setEnabled(true);
|
||||
}
|
||||
|
||||
void ConsoleWindow::onEnded(BaseInstance *instance)
|
||||
void ConsoleWindow::onEnded(BaseInstance* instance, int code, QProcess::ExitStatus status)
|
||||
{
|
||||
ui->btnKillMinecraft->setEnabled(false);
|
||||
|
||||
// TODO: Might need an option to forcefully close, even on an error
|
||||
if(instance->settings().get("AutoCloseConsole").toBool())
|
||||
{
|
||||
// TODO: Check why this doesn't work
|
||||
if (!proc->exitCode()) this->close();
|
||||
if (code == 0 && status != QProcess::CrashExit)
|
||||
{
|
||||
this->close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ private
|
||||
slots:
|
||||
void on_closeButton_clicked();
|
||||
void on_btnKillMinecraft_clicked();
|
||||
void onEnded(BaseInstance *instance);
|
||||
void onEnded(BaseInstance *instance, int code, QProcess::ExitStatus status);
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
|
@ -131,8 +131,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWi
|
||||
view->installEventFilter(this);
|
||||
|
||||
proxymodel = new InstanceProxyModel(this);
|
||||
// proxymodel->setSortRole(KCategorizedSortFilterProxyModel::CategorySortRole);
|
||||
//proxymodel->setFilterRole(KCategorizedSortFilterProxyModel::CategorySortRole);
|
||||
// proxymodel->setSortRole(KCategorizedSortFilterProxyModel::CategorySortRole);
|
||||
// proxymodel->setFilterRole(KCategorizedSortFilterProxyModel::CategorySortRole);
|
||||
// proxymodel->setDynamicSortFilter ( true );
|
||||
|
||||
// FIXME: instList should be global-ish, or at least not tied to the main window...
|
||||
@ -422,7 +422,7 @@ void MainWindow::on_actionSettings_triggered()
|
||||
{
|
||||
SettingsDialog dialog(this);
|
||||
dialog.exec();
|
||||
//FIXME: quick HACK to make this work. improve, optimize.
|
||||
// FIXME: quick HACK to make this work. improve, optimize.
|
||||
proxymodel->invalidate();
|
||||
proxymodel->sort(0);
|
||||
}
|
||||
@ -725,7 +725,8 @@ void MainWindow::launchInstance(BaseInstance *instance, LoginResponse response)
|
||||
|
||||
connect(proc, SIGNAL(log(QString, MessageLevel::Enum)), console,
|
||||
SLOT(write(QString, MessageLevel::Enum)));
|
||||
connect(proc, SIGNAL(ended(BaseInstance *)), this, SLOT(instanceEnded(BaseInstance *)));
|
||||
connect(proc, SIGNAL(ended(BaseInstance *, int, ExitStatus)), this,
|
||||
SLOT(instanceEnded(BaseInstance *, int, ExitStatus)));
|
||||
|
||||
if (instance->settings().get("ShowConsole").toBool())
|
||||
{
|
||||
@ -882,7 +883,7 @@ void MainWindow::on_actionEditInstNotes_triggered()
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::instanceEnded(BaseInstance *instance)
|
||||
void MainWindow::instanceEnded(BaseInstance *instance, int code, QProcess::ExitStatus status)
|
||||
{
|
||||
this->show();
|
||||
ui->actionLaunchInstance->setEnabled(m_selectedInstance);
|
||||
|
@ -16,6 +16,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QProcess>
|
||||
|
||||
#include "logic/lists/InstanceList.h"
|
||||
#include "logic/net/LoginTask.h"
|
||||
@ -115,7 +116,7 @@ slots:
|
||||
|
||||
void on_actionChangeInstLWJGLVersion_triggered();
|
||||
|
||||
void instanceEnded(BaseInstance *instance);
|
||||
void instanceEnded(BaseInstance *instance, int code, QProcess::ExitStatus status);
|
||||
|
||||
void on_actionInstanceSettings_triggered();
|
||||
|
||||
|
Reference in New Issue
Block a user