From 84ef238611127b9d964ecb54bea283e0141d2998 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周三, 13 12月 2023 14:16:42 +0800 Subject: [PATCH] Add qt context option --- src/core/windowagentbase.cpp | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/core/windowagentbase.cpp b/src/core/windowagentbase.cpp index 94d1fca..b179042 100644 --- a/src/core/windowagentbase.cpp +++ b/src/core/windowagentbase.cpp @@ -3,7 +3,7 @@ #include "qwkglobal_p.h" -#ifdef Q_OS_WINDOWS +#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) # include "win32windowcontext_p.h" #else # include "qtwindowcontext_p.h" @@ -12,6 +12,9 @@ Q_LOGGING_CATEGORY(qWindowKitLog, "qwindowkit") namespace QWK { + + WindowAgentBasePrivate::WindowContextFactoryMethod + WindowAgentBasePrivate::windowContextFactoryMethod = nullptr; WindowAgentBasePrivate::WindowAgentBasePrivate() : q_ptr(nullptr), context(nullptr) { } @@ -22,15 +25,15 @@ } AbstractWindowContext *WindowAgentBasePrivate::createContext() const { - return -#ifdef Q_OS_WINDOWS - new Win32WindowContext() + if (windowContextFactoryMethod) { + return windowContextFactoryMethod(); + } +#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) + return new Win32WindowContext(); #else - new QtWindowContext() + return new QtWindowContext(); #endif - ; } - bool WindowAgentBasePrivate::setup(QObject *host, WindowItemDelegate *delegate) { std::unique_ptr<AbstractWindowContext> ctx(createContext()); -- Gitblit v1.9.1