From 6189c14c042d701c683f8dfaa0d44c8f1463c3b0 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周一, 04 12月 2023 15:22:25 +0800 Subject: [PATCH] minor tweaks --- src/core/corewindowagent.cpp | 25 ++++++++++++++----------- 1 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/core/corewindowagent.cpp b/src/core/corewindowagent.cpp index 54b081c..78ed335 100644 --- a/src/core/corewindowagent.cpp +++ b/src/core/corewindowagent.cpp @@ -1,6 +1,8 @@ #include "corewindowagent.h" #include "corewindowagent_p.h" +#include "qwkcoreglobal_p.h" + #ifdef Q_OS_WINDOWS # include "win32windowcontext_p.h" #else @@ -11,17 +13,20 @@ namespace QWK { - CoreWindowAgentPrivate::CoreWindowAgentPrivate() : m_eventHandler(nullptr) { + CoreWindowAgentPrivate::CoreWindowAgentPrivate() : q_ptr(nullptr), context(nullptr) { } - CoreWindowAgentPrivate::~CoreWindowAgentPrivate() { - delete m_eventHandler; - } + CoreWindowAgentPrivate::~CoreWindowAgentPrivate() = default; void CoreWindowAgentPrivate::init() { } bool CoreWindowAgentPrivate::setup(QWindow *window, WindowItemDelegate *delegate) { + Q_ASSERT(window); + if (!window) { + return false; + } + auto handler = #ifdef Q_OS_WINDOWS new Win32WindowContext(window, delegate) @@ -29,26 +34,24 @@ new QtWindowContext(window, delegate) #endif ; - if (!handler->setup()) { delete handler; return false; } - m_eventHandler = handler; + context.reset(handler); return true; } - CoreWindowAgent::~CoreWindowAgent() { - } + CoreWindowAgent::~CoreWindowAgent() = default; void CoreWindowAgent::showSystemMenu(const QPoint &pos) { Q_D(CoreWindowAgent); - d->m_eventHandler->showSystemMenu(pos); + d->context->showSystemMenu(pos); } void CoreWindowAgent::startSystemMove(const QPoint &pos) { Q_D(CoreWindowAgent); - auto win = d->m_eventHandler->window(); + auto win = d->context->window(); if (!win) { return; } @@ -59,7 +62,7 @@ void CoreWindowAgent::startSystemResize(Qt::Edges edges, const QPoint &pos) { Q_D(CoreWindowAgent); - auto win = d->m_eventHandler->window(); + auto win = d->context->window(); if (!win) { return; } -- Gitblit v1.9.1