diff --git a/src/qt/qt_rendererstack.cpp b/src/qt/qt_rendererstack.cpp index 843e84909..afd52af5d 100644 --- a/src/qt/qt_rendererstack.cpp +++ b/src/qt/qt_rendererstack.cpp @@ -164,8 +164,8 @@ void RendererStack::leaveEvent(QEvent* event) void RendererStack::switchRenderer(Renderer renderer) { startblit(); - if (current != nullptr) { - removeWidget(current); + if (current) { + removeWidget(current.get()); } switch (renderer) { @@ -173,7 +173,7 @@ void RendererStack::switchRenderer(Renderer renderer) { { auto sw = new SoftwareRenderer(this); connect(this, &RendererStack::blitToRenderer, sw, &SoftwareRenderer::onBlit); - current = sw; + current.reset(sw); } break; case Renderer::OpenGL: @@ -181,7 +181,7 @@ void RendererStack::switchRenderer(Renderer renderer) { auto hw = new HardwareRenderer(this); connect(this, &RendererStack::blitToRenderer, hw, &HardwareRenderer::onBlit); hw->setRenderType(HardwareRenderer::RenderType::OpenGL); - current = hw; + current.reset(hw); break; } case Renderer::OpenGLES: @@ -189,12 +189,12 @@ void RendererStack::switchRenderer(Renderer renderer) { auto hw = new HardwareRenderer(this); connect(this, &RendererStack::blitToRenderer, hw, &HardwareRenderer::onBlit); hw->setRenderType(HardwareRenderer::RenderType::OpenGLES); - current = hw; + current.reset(hw); break; } } current->setFocusPolicy(Qt::NoFocus); - addWidget(current); + addWidget(current.get()); endblit(); } diff --git a/src/qt/qt_rendererstack.hpp b/src/qt/qt_rendererstack.hpp index b31f3da5e..e8a49a82a 100644 --- a/src/qt/qt_rendererstack.hpp +++ b/src/qt/qt_rendererstack.hpp @@ -4,6 +4,7 @@ #include #include #include +#include namespace Ui { class RendererStack; @@ -62,7 +63,7 @@ private: int currentBuf = 0; QVector imagebufs; - QWidget* current = nullptr; + std::unique_ptr current; }; #endif // QT_RENDERERCONTAINER_HPP