Screenshot upload dialog(s) now have the console window as parent.
This commit is contained in:
@ -163,7 +163,7 @@ public:
|
||||
virtual std::shared_ptr<Task> doUpdate() = 0;
|
||||
|
||||
/// returns a valid minecraft process, ready for launch with the given account.
|
||||
virtual MinecraftProcess *prepareForLaunch(AuthSessionPtr account) = 0;
|
||||
virtual bool prepareForLaunch(AuthSessionPtr account, QString & launchScript) = 0;
|
||||
|
||||
/// do any necessary cleanups after the instance finishes. also runs before
|
||||
/// 'prepareForLaunch'
|
||||
|
@ -50,16 +50,13 @@ std::shared_ptr<Task> LegacyInstance::doUpdate()
|
||||
return std::shared_ptr<Task>(new LegacyUpdate(this, this));
|
||||
}
|
||||
|
||||
MinecraftProcess *LegacyInstance::prepareForLaunch(AuthSessionPtr account)
|
||||
bool LegacyInstance::prepareForLaunch(AuthSessionPtr account, QString & launchScript)
|
||||
{
|
||||
MinecraftProcess *proc = new MinecraftProcess(this);
|
||||
|
||||
QIcon icon = MMC->icons()->getIcon(iconKey());
|
||||
auto pixmap = icon.pixmap(128, 128);
|
||||
pixmap.save(PathCombine(minecraftRoot(), "icon.png"), "PNG");
|
||||
|
||||
// create the launch script
|
||||
QString launchScript;
|
||||
{
|
||||
// window size
|
||||
QString windowParams;
|
||||
@ -79,12 +76,7 @@ MinecraftProcess *LegacyInstance::prepareForLaunch(AuthSessionPtr account)
|
||||
launchScript += "lwjgl " + lwjgl + "\n";
|
||||
launchScript += "launcher legacy\n";
|
||||
}
|
||||
proc->setLaunchScript(launchScript);
|
||||
|
||||
// set the process work path
|
||||
proc->setWorkdir(minecraftRoot());
|
||||
|
||||
return proc;
|
||||
return true;
|
||||
}
|
||||
|
||||
void LegacyInstance::cleanupAfterRun()
|
||||
|
@ -79,7 +79,7 @@ public:
|
||||
virtual void setShouldUpdate(bool val) override;
|
||||
virtual std::shared_ptr<Task> doUpdate() override;
|
||||
|
||||
virtual MinecraftProcess *prepareForLaunch(AuthSessionPtr account) override;
|
||||
virtual bool prepareForLaunch(AuthSessionPtr account, QString & launchScript) override;
|
||||
virtual void cleanupAfterRun() override;
|
||||
virtual QDialog *createModEditDialog(QWidget *parent) override;
|
||||
|
||||
|
@ -34,7 +34,7 @@
|
||||
#define IBUS "@im=ibus"
|
||||
|
||||
// constructor
|
||||
MinecraftProcess::MinecraftProcess(BaseInstance *inst) : m_instance(inst)
|
||||
MinecraftProcess::MinecraftProcess(InstancePtr inst) : m_instance(inst)
|
||||
{
|
||||
connect(this, SIGNAL(finished(int, QProcess::ExitStatus)),
|
||||
SLOT(finish(int, QProcess::ExitStatus)));
|
||||
|
@ -52,8 +52,13 @@ public:
|
||||
* @brief MinecraftProcess constructor
|
||||
* @param inst the Instance pointer to launch
|
||||
*/
|
||||
MinecraftProcess(BaseInstance *inst);
|
||||
MinecraftProcess(InstancePtr inst);
|
||||
|
||||
virtual ~MinecraftProcess()
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief start the launcher part with the provided launch script
|
||||
*/
|
||||
@ -69,7 +74,7 @@ public:
|
||||
*/
|
||||
void abort();
|
||||
|
||||
BaseInstance *instance()
|
||||
InstancePtr instance()
|
||||
{
|
||||
return m_instance;
|
||||
}
|
||||
@ -97,22 +102,22 @@ signals:
|
||||
/**
|
||||
* @brief emitted when Minecraft immediately fails to run
|
||||
*/
|
||||
void launch_failed(BaseInstance *);
|
||||
void launch_failed(InstancePtr);
|
||||
|
||||
/**
|
||||
* @brief emitted when the PreLaunchCommand fails
|
||||
*/
|
||||
void prelaunch_failed(BaseInstance *, int code, QProcess::ExitStatus status);
|
||||
void prelaunch_failed(InstancePtr, int code, QProcess::ExitStatus status);
|
||||
|
||||
/**
|
||||
* @brief emitted when the PostLaunchCommand fails
|
||||
*/
|
||||
void postlaunch_failed(BaseInstance *, int code, QProcess::ExitStatus status);
|
||||
void postlaunch_failed(InstancePtr, int code, QProcess::ExitStatus status);
|
||||
|
||||
/**
|
||||
* @brief emitted when mc has finished and the PostLaunchCommand was run
|
||||
*/
|
||||
void ended(BaseInstance *, int code, QProcess::ExitStatus status);
|
||||
void ended(InstancePtr, int code, QProcess::ExitStatus status);
|
||||
|
||||
/**
|
||||
* @brief emitted when we want to log something
|
||||
@ -122,7 +127,7 @@ signals:
|
||||
void log(QString text, MessageLevel::Enum level = MessageLevel::MultiMC);
|
||||
|
||||
protected:
|
||||
BaseInstance *m_instance = nullptr;
|
||||
InstancePtr m_instance;
|
||||
QString m_err_leftover;
|
||||
QString m_out_leftover;
|
||||
QProcess m_prepostlaunchprocess;
|
||||
|
@ -189,7 +189,7 @@ QStringList OneSixInstance::processMinecraftArgs(AuthSessionPtr session)
|
||||
return parts;
|
||||
}
|
||||
|
||||
MinecraftProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session)
|
||||
bool OneSixInstance::prepareForLaunch(AuthSessionPtr account, QString &launchScript)
|
||||
{
|
||||
I_D(OneSixInstance);
|
||||
|
||||
@ -200,7 +200,6 @@ MinecraftProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session)
|
||||
auto version = d->version;
|
||||
if (!version)
|
||||
return nullptr;
|
||||
QString launchScript;
|
||||
{
|
||||
auto libs = version->getActiveNormalLibs();
|
||||
for (auto lib : libs)
|
||||
@ -212,7 +211,7 @@ MinecraftProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session)
|
||||
}
|
||||
launchScript += "mainClass " + version->mainClass + "\n";
|
||||
|
||||
for (auto param : processMinecraftArgs(session))
|
||||
for (auto param : processMinecraftArgs(account))
|
||||
{
|
||||
launchScript += "param " + param + "\n";
|
||||
}
|
||||
@ -240,13 +239,7 @@ MinecraftProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session)
|
||||
}
|
||||
launchScript += "natives " + natives_dir.absolutePath() + "\n";
|
||||
launchScript += "launcher onesix\n";
|
||||
|
||||
// create the process and set its parameters
|
||||
MinecraftProcess *proc = new MinecraftProcess(this);
|
||||
proc->setWorkdir(minecraftRoot());
|
||||
proc->setLaunchScript(launchScript);
|
||||
// proc->setNativeFolder(natives_dir.absolutePath());
|
||||
return proc;
|
||||
return true;
|
||||
}
|
||||
|
||||
void OneSixInstance::cleanupAfterRun()
|
||||
|
@ -40,7 +40,7 @@ public:
|
||||
virtual QString instanceConfigFolder() const override;
|
||||
|
||||
virtual std::shared_ptr<Task> doUpdate() override;
|
||||
virtual MinecraftProcess *prepareForLaunch(AuthSessionPtr session) override;
|
||||
virtual bool prepareForLaunch(AuthSessionPtr account, QString & launchScript) override;
|
||||
|
||||
virtual void cleanupAfterRun() override;
|
||||
|
||||
|
Reference in New Issue
Block a user