NOISSUE set line limit and overflow behaviour even for hidden console
This commit is contained in:
parent
155de307bc
commit
8bbaab334c
@ -51,6 +51,9 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
|
|||||||
m_settings->registerOverride(globalSettings->getSetting("AutoCloseConsole"), consoleSetting);
|
m_settings->registerOverride(globalSettings->getSetting("AutoCloseConsole"), consoleSetting);
|
||||||
m_settings->registerOverride(globalSettings->getSetting("ShowConsoleOnError"), consoleSetting);
|
m_settings->registerOverride(globalSettings->getSetting("ShowConsoleOnError"), consoleSetting);
|
||||||
m_settings->registerOverride(globalSettings->getSetting("LogPrePostOutput"), consoleSetting);
|
m_settings->registerOverride(globalSettings->getSetting("LogPrePostOutput"), consoleSetting);
|
||||||
|
|
||||||
|
m_settings->registerPassthrough(globalSettings->getSetting("ConsoleMaxLines"), nullptr);
|
||||||
|
m_settings->registerPassthrough(globalSettings->getSetting("ConsoleOverflowStop"), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
QString BaseInstance::getPreLaunchCommand()
|
QString BaseInstance::getPreLaunchCommand()
|
||||||
@ -68,6 +71,24 @@ QString BaseInstance::getPostExitCommand()
|
|||||||
return settings()->get("PostExitCommand").toString();
|
return settings()->get("PostExitCommand").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int BaseInstance::getConsoleMaxLines() const
|
||||||
|
{
|
||||||
|
auto lineSetting = settings()->getSetting("ConsoleMaxLines");
|
||||||
|
bool conversionOk = false;
|
||||||
|
int maxLines = lineSetting->get().toInt(&conversionOk);
|
||||||
|
if(!conversionOk)
|
||||||
|
{
|
||||||
|
maxLines = lineSetting->defValue().toInt();
|
||||||
|
qWarning() << "ConsoleMaxLines has nonsensical value, defaulting to" << maxLines;
|
||||||
|
}
|
||||||
|
return maxLines;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool BaseInstance::shouldStopOnConsoleOverflow() const
|
||||||
|
{
|
||||||
|
return settings()->get("ConsoleOverflowStop").toBool();
|
||||||
|
}
|
||||||
|
|
||||||
void BaseInstance::iconUpdated(QString key)
|
void BaseInstance::iconUpdated(QString key)
|
||||||
{
|
{
|
||||||
if(iconKey() == key)
|
if(iconKey() == key)
|
||||||
|
@ -263,6 +263,9 @@ public:
|
|||||||
|
|
||||||
Status currentStatus() const;
|
Status currentStatus() const;
|
||||||
|
|
||||||
|
int getConsoleMaxLines() const;
|
||||||
|
bool shouldStopOnConsoleOverflow() const;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void changeStatus(Status newStatus);
|
void changeStatus(Status newStatus);
|
||||||
|
|
||||||
|
@ -209,6 +209,12 @@ shared_qobject_ptr<LogModel> LaunchTask::getLogModel()
|
|||||||
if(!m_logModel)
|
if(!m_logModel)
|
||||||
{
|
{
|
||||||
m_logModel.reset(new LogModel());
|
m_logModel.reset(new LogModel());
|
||||||
|
m_logModel->setMaxLines(m_instance->getConsoleMaxLines());
|
||||||
|
m_logModel->setStopOnOverflow(m_instance->shouldStopOnConsoleOverflow());
|
||||||
|
// FIXME: should this really be here?
|
||||||
|
m_logModel->setOverflowMessage(tr("MultiMC stopped watching the game log because the log length surpassed %1 lines.\n"
|
||||||
|
"You may have to fix your mods because the game is still logging to files and"
|
||||||
|
" likely wasting harddrive space at an alarming rate!").arg(m_logModel->getMaxLines()));
|
||||||
}
|
}
|
||||||
return m_logModel;
|
return m_logModel;
|
||||||
}
|
}
|
||||||
|
@ -133,6 +133,11 @@ void LogModel::setMaxLines(int maxLines)
|
|||||||
m_maxLines = maxLines;
|
m_maxLines = maxLines;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int LogModel::getMaxLines()
|
||||||
|
{
|
||||||
|
return m_maxLines;
|
||||||
|
}
|
||||||
|
|
||||||
void LogModel::setStopOnOverflow(bool stop)
|
void LogModel::setStopOnOverflow(bool stop)
|
||||||
{
|
{
|
||||||
m_stopOnOverflow = stop;
|
m_stopOnOverflow = stop;
|
||||||
|
@ -21,6 +21,7 @@ public:
|
|||||||
|
|
||||||
QString toPlainText();
|
QString toPlainText();
|
||||||
|
|
||||||
|
int getMaxLines();
|
||||||
void setMaxLines(int maxLines);
|
void setMaxLines(int maxLines);
|
||||||
void setStopOnOverflow(bool stop);
|
void setStopOnOverflow(bool stop);
|
||||||
void setOverflowMessage(const QString & overflowMessage);
|
void setOverflowMessage(const QString & overflowMessage);
|
||||||
|
@ -19,13 +19,16 @@ PassthroughSetting::PassthroughSetting(std::shared_ptr<Setting> other, std::shar
|
|||||||
: Setting(other->configKeys(), QVariant())
|
: Setting(other->configKeys(), QVariant())
|
||||||
{
|
{
|
||||||
Q_ASSERT(other);
|
Q_ASSERT(other);
|
||||||
Q_ASSERT(gate);
|
|
||||||
m_other = other;
|
m_other = other;
|
||||||
m_gate = gate;
|
m_gate = gate;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool PassthroughSetting::isOverriding() const
|
bool PassthroughSetting::isOverriding() const
|
||||||
{
|
{
|
||||||
|
if(!m_gate)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
return m_gate->get().toBool();
|
return m_gate->get().toBool();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,19 +168,6 @@ void LogPage::on_InstanceLaunchTask_changed(std::shared_ptr<LaunchTask> proc)
|
|||||||
if(m_process)
|
if(m_process)
|
||||||
{
|
{
|
||||||
m_model = proc->getLogModel();
|
m_model = proc->getLogModel();
|
||||||
auto lineSetting = MMC->settings()->getSetting("ConsoleMaxLines");
|
|
||||||
bool conversionOk = false;
|
|
||||||
int maxLines = lineSetting->get().toInt(&conversionOk);
|
|
||||||
if(!conversionOk)
|
|
||||||
{
|
|
||||||
maxLines = lineSetting->defValue().toInt();
|
|
||||||
qWarning() << "ConsoleMaxLines has nonsensical value, defaulting to" << maxLines;
|
|
||||||
}
|
|
||||||
m_model->setMaxLines(maxLines);
|
|
||||||
m_model->setStopOnOverflow(MMC->settings()->get("ConsoleOverflowStop").toBool());
|
|
||||||
m_model->setOverflowMessage(tr("MultiMC stopped watching the game log because the log length surpassed %1 lines.\n"
|
|
||||||
"You may have to fix your mods because the game is still logging to files and"
|
|
||||||
" likely wasting harddrive space at an alarming rate!").arg(maxLines));
|
|
||||||
m_proxy->setSourceModel(m_model.get());
|
m_proxy->setSourceModel(m_model.get());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user