mirror of
https://github.com/MultiMC/MultiMC5.git
synced 2024-12-27 03:14:49 +00:00
Filter console output, no more sea of red when there's nothing to report.
This commit is contained in:
parent
d2eef6974b
commit
d24c4823ef
@ -104,6 +104,8 @@ protected:
|
|||||||
InstancePtr m_instance;
|
InstancePtr m_instance;
|
||||||
QString m_user;
|
QString m_user;
|
||||||
QString m_session;
|
QString m_session;
|
||||||
|
QString m_err_leftover;
|
||||||
|
QString m_out_leftover;
|
||||||
QProcess m_prepostlaunchprocess;
|
QProcess m_prepostlaunchprocess;
|
||||||
QStringList m_arguments;
|
QStringList m_arguments;
|
||||||
|
|
||||||
|
@ -125,12 +125,41 @@ MinecraftProcess::MinecraftProcess(InstancePtr inst, QString user, QString sessi
|
|||||||
// console window
|
// console window
|
||||||
void MinecraftProcess::on_stdErr()
|
void MinecraftProcess::on_stdErr()
|
||||||
{
|
{
|
||||||
emit log(readAllStandardError(), MessageLevel::Error);
|
QByteArray data = readAllStandardError();
|
||||||
|
QString str = m_err_leftover + QString::fromLocal8Bit(data);
|
||||||
|
m_err_leftover.clear();
|
||||||
|
QStringList lines = str.split("\n");
|
||||||
|
bool complete = str.endsWith("\n");
|
||||||
|
|
||||||
|
for(int i = 0; i < lines.size() - 1; i++)
|
||||||
|
{
|
||||||
|
QString & line = lines[i];
|
||||||
|
MessageLevel::Enum level = MessageLevel::Error;
|
||||||
|
if(line.contains("[INFO]") || line.contains("[CONFIG]") || line.contains("[FINE]") || line.contains("[FINER]") || line.contains("[FINEST]") )
|
||||||
|
level = MessageLevel::Message;
|
||||||
|
if(line.contains("[SEVERE]") || line.contains("[WARNING]") || line.contains("[STDERR]"))
|
||||||
|
level = MessageLevel::Error;
|
||||||
|
emit log(lines[i].toLocal8Bit(), level);
|
||||||
|
}
|
||||||
|
if(!complete)
|
||||||
|
m_err_leftover = lines.last();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MinecraftProcess::on_stdOut()
|
void MinecraftProcess::on_stdOut()
|
||||||
{
|
{
|
||||||
emit log(readAllStandardOutput(), MessageLevel::Message);
|
QByteArray data = readAllStandardOutput();
|
||||||
|
QString str = m_out_leftover + QString::fromLocal8Bit(data);
|
||||||
|
m_out_leftover.clear();
|
||||||
|
QStringList lines = str.split("\n");
|
||||||
|
bool complete = str.endsWith("\n");
|
||||||
|
|
||||||
|
for(int i = 0; i < lines.size() - 1; i++)
|
||||||
|
{
|
||||||
|
QString & line = lines[i];
|
||||||
|
emit log(lines[i].toLocal8Bit(), MessageLevel::Message);
|
||||||
|
}
|
||||||
|
if(!complete)
|
||||||
|
m_out_leftover = lines.last();
|
||||||
}
|
}
|
||||||
|
|
||||||
// exit handler
|
// exit handler
|
||||||
|
Loading…
Reference in New Issue
Block a user