Redo the console window. Log is now a page. Console window has relevant pages.
Dirty fix for screenshot thumbnail generation. Needs more QTimer.
This commit is contained in:
@ -106,6 +106,18 @@ QString BaseInstance::id() const
|
||||
return QFileInfo(instanceRoot()).fileName();
|
||||
}
|
||||
|
||||
bool BaseInstance::isRunning() const
|
||||
{
|
||||
I_D(BaseInstance);
|
||||
return d->m_isRunning;
|
||||
}
|
||||
|
||||
void BaseInstance::setRunning(bool running) const
|
||||
{
|
||||
I_D(BaseInstance);
|
||||
d->m_isRunning = running;
|
||||
}
|
||||
|
||||
QString BaseInstance::instanceType() const
|
||||
{
|
||||
I_D(BaseInstance);
|
||||
|
@ -65,6 +65,9 @@ public:
|
||||
/// be unique.
|
||||
virtual QString id() const;
|
||||
|
||||
virtual void setRunning(bool running) const;
|
||||
virtual bool isRunning() const;
|
||||
|
||||
/// get the type of this instance
|
||||
QString instanceType() const;
|
||||
|
||||
|
@ -32,4 +32,5 @@ public:
|
||||
QString m_group;
|
||||
std::shared_ptr<SettingsObject> m_settings;
|
||||
QSet<BaseInstance::InstanceFlag> m_flags;
|
||||
bool m_isRunning = false;
|
||||
};
|
||||
|
@ -52,14 +52,14 @@ QList<BasePage *> LegacyInstance::getPages()
|
||||
QList<BasePage *> values;
|
||||
values.append(new LegacyUpgradePage(this));
|
||||
values.append(new LegacyJarModPage(this));
|
||||
values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader mods"),
|
||||
values.append(new ModFolderPage(this, loaderModList(), "mods", "plugin-blue", tr("Loader mods"),
|
||||
"Loader-mods"));
|
||||
values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core mods"),
|
||||
values.append(new ModFolderPage(this, coreModList(), "coremods", "plugin-green", tr("Core mods"),
|
||||
"Core-mods"));
|
||||
values.append(new TexturePackPage(this));
|
||||
values.append(new NotesPage(this));
|
||||
values.append(new ScreenshotsPage(this));
|
||||
values.append(new InstanceSettingsPage(&settings()));
|
||||
values.append(new InstanceSettingsPage(this));
|
||||
return values;
|
||||
}
|
||||
|
||||
|
@ -71,6 +71,9 @@ MinecraftProcess::MinecraftProcess(InstancePtr inst) : m_instance(inst)
|
||||
connect(&m_prepostlaunchprocess, &QProcess::readyReadStandardOutput, this,
|
||||
&MinecraftProcess::on_prepost_stdOut);
|
||||
}
|
||||
|
||||
// a process has been constructed for the instance. It is running from MultiMC POV
|
||||
m_instance->setRunning(true);
|
||||
}
|
||||
|
||||
void MinecraftProcess::setWorkdir(QString path)
|
||||
@ -254,6 +257,8 @@ void MinecraftProcess::finish(int code, ExitStatus status)
|
||||
// run post-exit
|
||||
postLaunch();
|
||||
m_instance->cleanupAfterRun();
|
||||
// no longer running...
|
||||
m_instance->setRunning(false);
|
||||
emit ended(m_instance, code, status);
|
||||
}
|
||||
|
||||
@ -304,6 +309,8 @@ bool MinecraftProcess::preLaunch()
|
||||
m_instance->cleanupAfterRun();
|
||||
emit prelaunch_failed(m_instance, m_prepostlaunchprocess.exitCode(),
|
||||
m_prepostlaunchprocess.exitStatus());
|
||||
// not running, failed
|
||||
m_instance->setRunning(false);
|
||||
return false;
|
||||
}
|
||||
else
|
||||
@ -343,6 +350,8 @@ bool MinecraftProcess::postLaunch()
|
||||
MessageLevel::Error);
|
||||
emit postlaunch_failed(m_instance, m_prepostlaunchprocess.exitCode(),
|
||||
m_prepostlaunchprocess.exitStatus());
|
||||
// not running, failed
|
||||
m_instance->setRunning(false);
|
||||
}
|
||||
else
|
||||
emit log(tr("Post-Launch command ran successfully.\n\n"));
|
||||
@ -460,6 +469,8 @@ void MinecraftProcess::arm()
|
||||
emit log(tr("Could not launch minecraft!"), MessageLevel::Error);
|
||||
m_instance->cleanupAfterRun();
|
||||
emit launch_failed(m_instance);
|
||||
// not running, failed
|
||||
m_instance->setRunning(false);
|
||||
return;
|
||||
}
|
||||
// send the launch script to the launcher part
|
||||
|
@ -63,15 +63,15 @@ QList<BasePage *> OneSixInstance::getPages()
|
||||
{
|
||||
QList<BasePage *> values;
|
||||
values.append(new VersionPage(this));
|
||||
values.append(new ModFolderPage(loaderModList(), "mods", "plugin-blue", tr("Loader mods"),
|
||||
values.append(new ModFolderPage(this, loaderModList(), "mods", "plugin-blue", tr("Loader mods"),
|
||||
"Loader-mods"));
|
||||
values.append(new ModFolderPage(coreModList(), "coremods", "plugin-green", tr("Core mods"),
|
||||
values.append(new ModFolderPage(this, coreModList(), "coremods", "plugin-green", tr("Core mods"),
|
||||
"Core-mods"));
|
||||
values.append(new ResourcePackPage(this));
|
||||
values.append(new TexturePackPage(this));
|
||||
values.append(new NotesPage(this));
|
||||
values.append(new ScreenshotsPage(this));
|
||||
values.append(new InstanceSettingsPage(&settings()));
|
||||
values.append(new InstanceSettingsPage(this));
|
||||
return values;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user