From 51039917996909284fbc2d776a9b8f71fe5e6f9a Mon Sep 17 00:00:00 2001 From: Zhao Yuhang <2546789017@qq.com> Date: 周六, 02 12月 2023 17:43:17 +0800 Subject: [PATCH] wip --- src/core/corewindowagent.cpp | 38 +++++++++++++++++++++++++------------- 1 files changed, 25 insertions(+), 13 deletions(-) diff --git a/src/core/corewindowagent.cpp b/src/core/corewindowagent.cpp index a4e4ac4..b705937 100644 --- a/src/core/corewindowagent.cpp +++ b/src/core/corewindowagent.cpp @@ -2,41 +2,53 @@ #include "corewindowagent_p.h" #ifdef Q_OS_WINDOWS -# include "handler/win32windowcontext_p.h" +# include "win32windowcontext_p.h" #else -# include "handler/qtwindowcontext_p.h" +# include "qtwindowcontext_p.h" #endif + +Q_LOGGING_CATEGORY(qWindowKitLog, "qwindowkit") namespace QWK { - CoreWindowAgentPrivate::CoreWindowAgentPrivate() { + CoreWindowAgentPrivate::CoreWindowAgentPrivate() : q_ptr(nullptr), eventHandler(nullptr) { } - CoreWindowAgentPrivate::~CoreWindowAgentPrivate() { - } + CoreWindowAgentPrivate::~CoreWindowAgentPrivate() = default; void CoreWindowAgentPrivate::init() { } - void CoreWindowAgentPrivate::setup(QWindow *window, WindowItemDelegate *delegate) { + bool CoreWindowAgentPrivate::setup(QWindow *window, const WindowItemDelegatePtr &delegate) { + Q_ASSERT(window); + if (!window) { + return false; + } + auto handler = #ifdef Q_OS_WINDOWS - m_eventHandler = new Win32WindowContext(window, delegate); + std::make_shared<Win32WindowContext>(window, delegate) #else - m_eventHandler = new QtWindowContext(window, delegate); + std::make_shared<QtWindowContext>(window, delegate) #endif + ; + + if (!handler->setup()) { + return false; + } + eventHandler = handler; + return true; } - CoreWindowAgent::~CoreWindowAgent() { - } + CoreWindowAgent::~CoreWindowAgent() = default; void CoreWindowAgent::showSystemMenu(const QPoint &pos) { Q_D(CoreWindowAgent); - d->m_eventHandler->showSystemMenu(pos); + d->eventHandler->showSystemMenu(pos); } void CoreWindowAgent::startSystemMove(const QPoint &pos) { Q_D(CoreWindowAgent); - auto win = d->m_eventHandler->window(); + auto win = d->eventHandler->window(); if (!win) { return; } @@ -47,7 +59,7 @@ void CoreWindowAgent::startSystemResize(Qt::Edges edges, const QPoint &pos) { Q_D(CoreWindowAgent); - auto win = d->m_eventHandler->window(); + auto win = d->eventHandler->window(); if (!win) { return; } -- Gitblit v1.9.1