From 70ed30f9e6b47fbfb3151078ca61a2bb419feccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sun, 7 Apr 2019 23:59:04 +0200 Subject: [PATCH] GH-2591 less std::shared_ptr and more shared_qobject_ptr This eliminates some weird crashes. --- api/gui/icons/IconList.h | 2 +- api/logic/BaseInstance.cpp | 7 +--- api/logic/BaseInstance.h | 12 +++--- api/logic/NullInstance.h | 23 ++++++------ api/logic/java/JavaChecker.cpp | 4 +- api/logic/java/JavaChecker.h | 6 ++- api/logic/java/JavaCheckerJob.h | 2 +- api/logic/java/JavaInstallList.cpp | 2 +- api/logic/java/JavaInstallList.h | 4 +- api/logic/java/launch/CheckJava.cpp | 2 +- api/logic/launch/LaunchTask.cpp | 8 ++-- api/logic/launch/LaunchTask.h | 8 ++-- api/logic/minecraft/MinecraftInstance.cpp | 41 +++++++++------------ api/logic/minecraft/MinecraftInstance.h | 2 +- api/logic/minecraft/legacy/LegacyInstance.h | 3 +- api/logic/tools/BaseProfiler.cpp | 3 +- api/logic/tools/BaseProfiler.h | 5 ++- api/logic/tools/JProfiler.cpp | 4 +- api/logic/tools/JVisualVM.cpp | 4 +- application/InstanceWindow.cpp | 2 +- application/InstanceWindow.h | 4 +- application/LaunchController.cpp | 2 +- application/LaunchController.h | 2 +- application/pages/instance/LogPage.cpp | 4 +- application/pages/instance/LogPage.h | 6 +-- 25 files changed, 79 insertions(+), 83 deletions(-) diff --git a/api/gui/icons/IconList.h b/api/gui/icons/IconList.h index 2bacdac3b..274a9f022 100644 --- a/api/gui/icons/IconList.h +++ b/api/gui/icons/IconList.h @@ -80,7 +80,7 @@ protected slots: void fileChanged(const QString &path); void SettingChanged(const Setting & setting, QVariant value); private: - std::shared_ptr m_watcher; + shared_qobject_ptr m_watcher; bool is_watching; QMap name_index; QVector icons; diff --git a/api/logic/BaseInstance.cpp b/api/logic/BaseInstance.cpp index 469d0d9ff..7a95e2559 100644 --- a/api/logic/BaseInstance.cpp +++ b/api/logic/BaseInstance.cpp @@ -175,11 +175,6 @@ QString BaseInstance::instanceRoot() const return m_rootDir; } -InstancePtr BaseInstance::getSharedPtr() -{ - return shared_from_this(); -} - SettingsObjectPtr BaseInstance::settings() const { return m_settings; @@ -253,7 +248,7 @@ QStringList BaseInstance::extraArguments() const return Commandline::splitArgs(settings()->get("JvmArgs").toString()); } -std::shared_ptr BaseInstance::getLaunchTask() +shared_qobject_ptr BaseInstance::getLaunchTask() { return m_launchProcess; } diff --git a/api/logic/BaseInstance.h b/api/logic/BaseInstance.h index 73500b1a9..3c342cb3f 100644 --- a/api/logic/BaseInstance.h +++ b/api/logic/BaseInstance.h @@ -134,8 +134,6 @@ class MULTIMC_LOGIC_EXPORT BaseInstance : public QObject, public std::enable_sha /// Sets the last launched time to 'val' milliseconds since epoch void setLastLaunch(qint64 val = QDateTime::currentMSecsSinceEpoch()); - InstancePtr getSharedPtr(); - /*! * \brief Gets this instance's settings object. * This settings object stores instance-specific settings. @@ -147,10 +145,10 @@ class MULTIMC_LOGIC_EXPORT BaseInstance : public QObject, public std::enable_sha virtual shared_qobject_ptr createUpdateTask(Net::Mode mode) = 0; /// returns a valid launcher (task container) - virtual std::shared_ptr createLaunchTask(AuthSessionPtr account) = 0; + virtual shared_qobject_ptr createLaunchTask(AuthSessionPtr account) = 0; /// returns the current launch task (if any) - std::shared_ptr getLaunchTask(); + shared_qobject_ptr getLaunchTask(); /*! * Create envrironment variables for running the instance @@ -241,7 +239,7 @@ class MULTIMC_LOGIC_EXPORT BaseInstance : public QObject, public std::enable_sha */ void propertiesChanged(BaseInstance *inst); - void launchTaskChanged(std::shared_ptr); + void launchTaskChanged(shared_qobject_ptr); void runningStatusChanged(bool running); @@ -255,7 +253,7 @@ protected slots: SettingsObjectPtr m_settings; // InstanceFlags m_flags; bool m_isRunning = false; - std::shared_ptr m_launchProcess; + shared_qobject_ptr m_launchProcess; QDateTime m_timeStarted; private: /* data */ @@ -265,6 +263,6 @@ protected slots: bool m_hasBrokenVersion = false; }; -Q_DECLARE_METATYPE(std::shared_ptr) +Q_DECLARE_METATYPE(shared_qobject_ptr) //Q_DECLARE_METATYPE(BaseInstance::InstanceFlag) //Q_DECLARE_OPERATORS_FOR_FLAGS(BaseInstance::InstanceFlags) diff --git a/api/logic/NullInstance.h b/api/logic/NullInstance.h index ff3551c5f..e9ba1a13c 100644 --- a/api/logic/NullInstance.h +++ b/api/logic/NullInstance.h @@ -1,5 +1,6 @@ #pragma once #include "BaseInstance.h" +#include "launch/LaunchTask.h" class NullInstance: public BaseInstance { @@ -11,46 +12,46 @@ class NullInstance: public BaseInstance setVersionBroken(true); } virtual ~NullInstance() {}; - virtual void saveNow() override + void saveNow() override { } - virtual QString getStatusbarDescription() override + QString getStatusbarDescription() override { return tr("Unknown instance type"); }; - virtual QSet< QString > traits() const override + QSet< QString > traits() const override { return {}; }; - virtual QString instanceConfigFolder() const override + QString instanceConfigFolder() const override { return instanceRoot(); }; - virtual std::shared_ptr createLaunchTask(AuthSessionPtr) override + shared_qobject_ptr createLaunchTask(AuthSessionPtr) override { return nullptr; } - virtual shared_qobject_ptr< Task > createUpdateTask(Net::Mode mode) override + shared_qobject_ptr< Task > createUpdateTask(Net::Mode mode) override { return nullptr; } - virtual QProcessEnvironment createEnvironment() override + QProcessEnvironment createEnvironment() override { return QProcessEnvironment(); } - virtual QMap getVariables() const override + QMap getVariables() const override { return QMap(); } - virtual IPathMatcher::Ptr getLogFileMatcher() override + IPathMatcher::Ptr getLogFileMatcher() override { return nullptr; } - virtual QString getLogFileRoot() override + QString getLogFileRoot() override { return instanceRoot(); } - virtual QString typeName() const override + QString typeName() const override { return "Null"; } diff --git a/api/logic/java/JavaChecker.cpp b/api/logic/java/JavaChecker.cpp index 9ba3933f2..ca0f4bde7 100644 --- a/api/logic/java/JavaChecker.cpp +++ b/api/logic/java/JavaChecker.cpp @@ -75,8 +75,8 @@ void JavaChecker::stderrReady() void JavaChecker::finished(int exitcode, QProcess::ExitStatus status) { killTimer.stop(); - QProcessPtr _process; - _process.swap(process); + QProcessPtr _process = process; + process.reset(); JavaCheckResult result; { diff --git a/api/logic/java/JavaChecker.h b/api/logic/java/JavaChecker.h index d5d4b0de6..af0dcb90c 100644 --- a/api/logic/java/JavaChecker.h +++ b/api/logic/java/JavaChecker.h @@ -3,6 +3,8 @@ #include #include +#include "QObjectPtr.h" + #include "multimc_logic_export.h" #include "JavaVersion.h" @@ -27,8 +29,8 @@ struct MULTIMC_LOGIC_EXPORT JavaCheckResult } validity = Validity::Errored; }; -typedef std::shared_ptr QProcessPtr; -typedef std::shared_ptr JavaCheckerPtr; +typedef shared_qobject_ptr QProcessPtr; +typedef shared_qobject_ptr JavaCheckerPtr; class MULTIMC_LOGIC_EXPORT JavaChecker : public QObject { Q_OBJECT diff --git a/api/logic/java/JavaCheckerJob.h b/api/logic/java/JavaCheckerJob.h index ab8a4bbcd..24d0d1b8f 100644 --- a/api/logic/java/JavaCheckerJob.h +++ b/api/logic/java/JavaCheckerJob.h @@ -20,7 +20,7 @@ #include "tasks/Task.h" class JavaCheckerJob; -typedef std::shared_ptr JavaCheckerJobPtr; +typedef shared_qobject_ptr JavaCheckerJobPtr; // FIXME: this just seems horribly redundant class JavaCheckerJob : public Task diff --git a/api/logic/java/JavaInstallList.cpp b/api/logic/java/JavaInstallList.cpp index a80ee2dac..a71a7dbea 100644 --- a/api/logic/java/JavaInstallList.cpp +++ b/api/logic/java/JavaInstallList.cpp @@ -149,7 +149,7 @@ void JavaListLoadTask::executeTask() JavaUtils ju; QList candidate_paths = ju.FindJavaPaths(); - m_job = std::shared_ptr(new JavaCheckerJob("Java detection")); + m_job = new JavaCheckerJob("Java detection"); connect(m_job.get(), &Task::finished, this, &JavaListLoadTask::javaCheckerFinished); connect(m_job.get(), &Task::progress, this, &Task::setProgress); diff --git a/api/logic/java/JavaInstallList.h b/api/logic/java/JavaInstallList.h index fc7e7a921..b98908f38 100644 --- a/api/logic/java/JavaInstallList.h +++ b/api/logic/java/JavaInstallList.h @@ -24,6 +24,8 @@ #include "JavaCheckerJob.h" #include "JavaInstall.h" +#include "QObjectPtr.h" + #include "multimc_logic_export.h" class JavaListLoadTask; @@ -75,7 +77,7 @@ public slots: void javaCheckerFinished(); protected: - std::shared_ptr m_job; + shared_qobject_ptr m_job; JavaInstallList *m_list; JavaInstall *m_currentRecommended; }; diff --git a/api/logic/java/launch/CheckJava.cpp b/api/logic/java/launch/CheckJava.cpp index f4c852456..b75c6dc62 100644 --- a/api/logic/java/launch/CheckJava.cpp +++ b/api/logic/java/launch/CheckJava.cpp @@ -60,7 +60,7 @@ void CheckJava::executeTask() // if timestamps are not the same, or something is missing, check! if (javaUnixTime != storedUnixTime || storedVersion.size() == 0 || storedArchitecture.size() == 0) { - m_JavaChecker = std::make_shared(); + m_JavaChecker = new JavaChecker(); emit logLine(tr("Checking Java version..."), MessageLevel::MultiMC); connect(m_JavaChecker.get(), &JavaChecker::checkFinished, this, &CheckJava::checkJavaFinished); m_JavaChecker->m_path = realJavaPath; diff --git a/api/logic/launch/LaunchTask.cpp b/api/logic/launch/LaunchTask.cpp index d39a92083..841b83633 100644 --- a/api/logic/launch/LaunchTask.cpp +++ b/api/logic/launch/LaunchTask.cpp @@ -33,9 +33,9 @@ void LaunchTask::init() m_instance->setRunning(true); } -std::shared_ptr LaunchTask::create(InstancePtr inst) +shared_qobject_ptr LaunchTask::create(InstancePtr inst) { - std::shared_ptr proc(new LaunchTask(inst)); + shared_qobject_ptr proc(new LaunchTask(inst)); proc->init(); return proc; } @@ -44,12 +44,12 @@ LaunchTask::LaunchTask(InstancePtr instance): m_instance(instance) { } -void LaunchTask::appendStep(std::shared_ptr step) +void LaunchTask::appendStep(shared_qobject_ptr step) { m_steps.append(step); } -void LaunchTask::prependStep(std::shared_ptr step) +void LaunchTask::prependStep(shared_qobject_ptr step) { m_steps.prepend(step); } diff --git a/api/logic/launch/LaunchTask.h b/api/logic/launch/LaunchTask.h index 4f6efe0a1..ee04bd9af 100644 --- a/api/logic/launch/LaunchTask.h +++ b/api/logic/launch/LaunchTask.h @@ -45,11 +45,11 @@ class MULTIMC_LOGIC_EXPORT LaunchTask: public Task }; public: /* methods */ - static std::shared_ptr create(InstancePtr inst); + static shared_qobject_ptr create(InstancePtr inst); virtual ~LaunchTask() {}; - void appendStep(std::shared_ptr step); - void prependStep(std::shared_ptr step); + void appendStep(shared_qobject_ptr step); + void prependStep(shared_qobject_ptr step); void setCensorFilter(QMap filter); InstancePtr instance() @@ -117,7 +117,7 @@ public slots: protected: /* data */ InstancePtr m_instance; shared_qobject_ptr m_logModel; - QList > m_steps; + QList > m_steps; QMap m_censorFilter; int currentStep = -1; State state = NotStarted; diff --git a/api/logic/minecraft/MinecraftInstance.cpp b/api/logic/minecraft/MinecraftInstance.cpp index 449a2ed5b..0d97e4aff 100644 --- a/api/logic/minecraft/MinecraftInstance.cpp +++ b/api/logic/minecraft/MinecraftInstance.cpp @@ -777,22 +777,22 @@ shared_qobject_ptr MinecraftInstance::createUpdateTask(Net::Mode mode) return nullptr; } -std::shared_ptr MinecraftInstance::createLaunchTask(AuthSessionPtr session) +shared_qobject_ptr MinecraftInstance::createLaunchTask(AuthSessionPtr session) { - auto process = LaunchTask::create(std::dynamic_pointer_cast(getSharedPtr())); + // FIXME: get rid of shared_from_this ... + auto process = LaunchTask::create(std::dynamic_pointer_cast(shared_from_this())); auto pptr = process.get(); ENV.icons()->saveIcon(iconKey(), FS::PathCombine(gameRoot(), "icon.png"), "PNG"); // print a header { - process->appendStep(std::make_shared(pptr, "Minecraft folder is:\n" + gameRoot() + "\n\n", MessageLevel::MultiMC)); + process->appendStep(new TextPrint(pptr, "Minecraft folder is:\n" + gameRoot() + "\n\n", MessageLevel::MultiMC)); } // check java { - auto step = std::make_shared(pptr); - process->appendStep(step); + process->appendStep(new CheckJava(pptr)); } // check launch method @@ -800,14 +800,14 @@ std::shared_ptr MinecraftInstance::createLaunchTask(AuthSessionPtr s QString method = launchMethod(); if(!validMethods.contains(method)) { - process->appendStep(std::make_shared(pptr, "Selected launch method \"" + method + "\" is not valid.\n", MessageLevel::Fatal)); + process->appendStep(new TextPrint(pptr, "Selected launch method \"" + method + "\" is not valid.\n", MessageLevel::Fatal)); return process; } // run pre-launch command if that's needed if(getPreLaunchCommand().size()) { - auto step = std::make_shared(pptr); + auto step = new PreLaunchCommand(pptr); step->setWorkingDirectory(gameRoot()); process->appendStep(step); } @@ -815,42 +815,37 @@ std::shared_ptr MinecraftInstance::createLaunchTask(AuthSessionPtr s // if we aren't in offline mode,. if(session->status != AuthSession::PlayableOffline) { - process->appendStep(std::make_shared(pptr, session)); - process->appendStep(std::make_shared(pptr, Net::Mode::Online)); + process->appendStep(new ClaimAccount(pptr, session)); + process->appendStep(new Update(pptr, Net::Mode::Online)); } else { - process->appendStep(std::make_shared(pptr, Net::Mode::Offline)); + process->appendStep(new Update(pptr, Net::Mode::Offline)); } // if there are any jar mods { - auto step = std::make_shared(pptr); - process->appendStep(step); + process->appendStep(new ModMinecraftJar(pptr)); } // print some instance info here... { - auto step = std::make_shared(pptr, session); - process->appendStep(step); + process->appendStep(new PrintInstanceInfo(pptr, session)); } // create the server-resource-packs folder (workaround for Minecraft bug MCL-3732) { - auto step = std::make_shared(pptr); - process->appendStep(step); + process->appendStep(new CreateServerResourcePacksFolder(pptr)); } // extract native jars if needed { - auto step = std::make_shared(pptr); - process->appendStep(step); + process->appendStep(new ExtractNatives(pptr)); } // reconstruct assets if needed { - auto step = std::make_shared(pptr); - process->appendStep(step); + process->appendStep(new ReconstructAssets(pptr)); } { @@ -858,14 +853,14 @@ std::shared_ptr MinecraftInstance::createLaunchTask(AuthSessionPtr s auto method = launchMethod(); if(method == "LauncherPart") { - auto step = std::make_shared(pptr); + auto step = new LauncherPartLaunch(pptr); step->setWorkingDirectory(gameRoot()); step->setAuthSession(session); process->appendStep(step); } else if (method == "DirectJava") { - auto step = std::make_shared(pptr); + auto step = new DirectJavaLaunch(pptr); step->setWorkingDirectory(gameRoot()); step->setAuthSession(session); process->appendStep(step); @@ -875,7 +870,7 @@ std::shared_ptr MinecraftInstance::createLaunchTask(AuthSessionPtr s // run post-exit command if that's needed if(getPostExitCommand().size()) { - auto step = std::make_shared(pptr); + auto step = new PostLaunchCommand(pptr); step->setWorkingDirectory(gameRoot()); process->appendStep(step); } diff --git a/api/logic/minecraft/MinecraftInstance.h b/api/logic/minecraft/MinecraftInstance.h index d9fffe576..fac309c25 100644 --- a/api/logic/minecraft/MinecraftInstance.h +++ b/api/logic/minecraft/MinecraftInstance.h @@ -78,7 +78,7 @@ class MULTIMC_LOGIC_EXPORT MinecraftInstance: public BaseInstance ////// Launch stuff ////// shared_qobject_ptr createUpdateTask(Net::Mode mode) override; - std::shared_ptr createLaunchTask(AuthSessionPtr account) override; + shared_qobject_ptr createLaunchTask(AuthSessionPtr account) override; QStringList extraArguments() const override; QStringList verboseDescription(AuthSessionPtr session) override; QList getJarMods() const; diff --git a/api/logic/minecraft/legacy/LegacyInstance.h b/api/logic/minecraft/legacy/LegacyInstance.h index 56602a1e5..8bbc2d887 100644 --- a/api/logic/minecraft/legacy/LegacyInstance.h +++ b/api/logic/minecraft/legacy/LegacyInstance.h @@ -17,6 +17,7 @@ #include "BaseInstance.h" #include "minecraft/Mod.h" +#include "launch/LaunchTask.h" #include "multimc_logic_export.h" @@ -112,7 +113,7 @@ class MULTIMC_LOGIC_EXPORT LegacyInstance : public BaseInstance { return false; } - std::shared_ptr createLaunchTask(AuthSessionPtr account) override + shared_qobject_ptr createLaunchTask(AuthSessionPtr account) override { return nullptr; } diff --git a/api/logic/tools/BaseProfiler.cpp b/api/logic/tools/BaseProfiler.cpp index c7d83549d..300d1a736 100644 --- a/api/logic/tools/BaseProfiler.cpp +++ b/api/logic/tools/BaseProfiler.cpp @@ -1,4 +1,5 @@ #include "BaseProfiler.h" +#include "QObjectPtr.h" #include @@ -7,7 +8,7 @@ BaseProfiler::BaseProfiler(SettingsObjectPtr settings, InstancePtr instance, QOb { } -void BaseProfiler::beginProfiling(std::shared_ptr process) +void BaseProfiler::beginProfiling(shared_qobject_ptr process) { beginProfilingImpl(process); } diff --git a/api/logic/tools/BaseProfiler.h b/api/logic/tools/BaseProfiler.h index f3e1ce3d9..da817f523 100644 --- a/api/logic/tools/BaseProfiler.h +++ b/api/logic/tools/BaseProfiler.h @@ -1,6 +1,7 @@ #pragma once #include "BaseExternalTool.h" +#include "QObjectPtr.h" #include "multimc_logic_export.h" @@ -17,13 +18,13 @@ class MULTIMC_LOGIC_EXPORT BaseProfiler : public BaseExternalTool public slots: - void beginProfiling(std::shared_ptr process); + void beginProfiling(shared_qobject_ptr process); void abortProfiling(); protected: QProcess *m_profilerProcess; - virtual void beginProfilingImpl(std::shared_ptr process) = 0; + virtual void beginProfilingImpl(shared_qobject_ptr process) = 0; virtual void abortProfilingImpl(); signals: diff --git a/api/logic/tools/JProfiler.cpp b/api/logic/tools/JProfiler.cpp index b50322fe9..1dc0d109f 100644 --- a/api/logic/tools/JProfiler.cpp +++ b/api/logic/tools/JProfiler.cpp @@ -17,7 +17,7 @@ private slots: void profilerFinished(int exit, QProcess::ExitStatus status); protected: - void beginProfilingImpl(std::shared_ptr process); + void beginProfilingImpl(shared_qobject_ptr process); private: int listeningPort = 0; @@ -47,7 +47,7 @@ void JProfiler::profilerFinished(int exit, QProcess::ExitStatus status) } } -void JProfiler::beginProfilingImpl(std::shared_ptr process) +void JProfiler::beginProfilingImpl(shared_qobject_ptr process) { listeningPort = globalSettings->get("JProfilerPort").toInt(); QProcess *profiler = new QProcess(this); diff --git a/api/logic/tools/JVisualVM.cpp b/api/logic/tools/JVisualVM.cpp index 108868570..b1acc3c0a 100644 --- a/api/logic/tools/JVisualVM.cpp +++ b/api/logic/tools/JVisualVM.cpp @@ -18,7 +18,7 @@ private slots: void profilerFinished(int exit, QProcess::ExitStatus status); protected: - void beginProfilingImpl(std::shared_ptr process); + void beginProfilingImpl(shared_qobject_ptr process); }; @@ -45,7 +45,7 @@ void JVisualVM::profilerFinished(int exit, QProcess::ExitStatus status) } } -void JVisualVM::beginProfilingImpl(std::shared_ptr process) +void JVisualVM::beginProfilingImpl(shared_qobject_ptr process) { QProcess *profiler = new QProcess(this); QStringList profilerArgs = diff --git a/application/InstanceWindow.cpp b/application/InstanceWindow.cpp index 8a9c3bdf4..cf445f121 100644 --- a/application/InstanceWindow.cpp +++ b/application/InstanceWindow.cpp @@ -144,7 +144,7 @@ void InstanceWindow::on_btnLaunchMinecraftOffline_clicked() MMC->launch(m_instance, false, nullptr); } -void InstanceWindow::on_InstanceLaunchTask_changed(std::shared_ptr proc) +void InstanceWindow::on_InstanceLaunchTask_changed(shared_qobject_ptr proc) { m_proc = proc; } diff --git a/application/InstanceWindow.h b/application/InstanceWindow.h index 792624e2c..e5bd4464f 100644 --- a/application/InstanceWindow.h +++ b/application/InstanceWindow.h @@ -52,7 +52,7 @@ private void on_btnKillMinecraft_clicked(); void on_btnLaunchMinecraftOffline_clicked(); - void on_InstanceLaunchTask_changed(std::shared_ptr proc); + void on_InstanceLaunchTask_changed(shared_qobject_ptr proc); void on_RunningState_changed(bool running); void on_instanceStatusChanged(BaseInstance::Status, BaseInstance::Status newStatus); @@ -63,7 +63,7 @@ private void updateLaunchButtons(); private: - std::shared_ptr m_proc; + shared_qobject_ptr m_proc; InstancePtr m_instance; bool m_doNotSave = false; PageContainer *m_container = nullptr; diff --git a/application/LaunchController.cpp b/application/LaunchController.cpp index 0115bba46..8f3e6596f 100644 --- a/application/LaunchController.cpp +++ b/application/LaunchController.cpp @@ -218,7 +218,7 @@ void LaunchController::launchInstance() connect(m_launcher.get(), &LaunchTask::requestProgress, this, &LaunchController::onProgressRequested); - m_launcher->prependStep(std::make_shared(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC)); + m_launcher->prependStep(new TextPrint(m_launcher.get(), "MultiMC version: " + BuildConfig.printableVersionString() + "\n\n", MessageLevel::MultiMC)); m_launcher->start(); } diff --git a/application/LaunchController.h b/application/LaunchController.h index 1434dec9b..1d879028d 100644 --- a/application/LaunchController.h +++ b/application/LaunchController.h @@ -57,5 +57,5 @@ private slots: QWidget * m_parentWidget = nullptr; InstanceWindow *m_console = nullptr; AuthSessionPtr m_session; - std::shared_ptr m_launcher; + shared_qobject_ptr m_launcher; }; diff --git a/application/pages/instance/LogPage.cpp b/application/pages/instance/LogPage.cpp index 0e480a3a6..94ada4248 100644 --- a/application/pages/instance/LogPage.cpp +++ b/application/pages/instance/LogPage.cpp @@ -192,7 +192,7 @@ void LogPage::UIToModelState() m_model->suspend(ui->trackLogCheckbox->checkState() != Qt::Checked); } -void LogPage::setInstanceLaunchTaskChanged(std::shared_ptr proc, bool initial) +void LogPage::setInstanceLaunchTaskChanged(shared_qobject_ptr proc, bool initial) { m_process = proc; if(m_process) @@ -215,7 +215,7 @@ void LogPage::setInstanceLaunchTaskChanged(std::shared_ptr proc, boo } } -void LogPage::onInstanceLaunchTaskChanged(std::shared_ptr proc) +void LogPage::onInstanceLaunchTaskChanged(shared_qobject_ptr proc) { setInstanceLaunchTaskChanged(proc, false); } diff --git a/application/pages/instance/LogPage.h b/application/pages/instance/LogPage.h index 34ed210a0..9c3b56a9a 100644 --- a/application/pages/instance/LogPage.h +++ b/application/pages/instance/LogPage.h @@ -69,17 +69,17 @@ private slots: void findNextActivated(); void findPreviousActivated(); - void onInstanceLaunchTaskChanged(std::shared_ptr proc); + void onInstanceLaunchTaskChanged(shared_qobject_ptr proc); private: void modelStateToUI(); void UIToModelState(); - void setInstanceLaunchTaskChanged(std::shared_ptr proc, bool initial); + void setInstanceLaunchTaskChanged(shared_qobject_ptr proc, bool initial); private: Ui::LogPage *ui; InstancePtr m_instance; - std::shared_ptr m_process; + shared_qobject_ptr m_process; LogFormatProxyModel * m_proxy; shared_qobject_ptr m_model;