From 3781b8d6a5c8a82a8ffb97383ac5e4b5e8872b0b Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周三, 13 12月 2023 23:45:43 +0800
Subject: [PATCH] Add qwk config

---
 src/core/CMakeLists.txt      |    1 -
 src/CMakeLists.txt           |    2 +-
 src/core/windowagentbase.cpp |   10 ++++++----
 src/core/qwkglobal.h         |    4 ++++
 4 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 616d783..4c6bd44 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -14,7 +14,7 @@
 set(QMSETUP_DEFINITION_SCOPE DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
 set(QMSETUP_DEFINITION_NUMERICAL on)
 
-qm_add_definition(QWINDOWKIT_TEST_CONFIG true)
+qm_add_definition(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT CONDITION QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
 
 qm_generate_config(${QWINDOWKIT_BUILD_INCLUDE_DIR}/QWKCore/qwkconfig.h)
 
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
index 7152ac5..88d350b 100644
--- a/src/core/CMakeLists.txt
+++ b/src/core/CMakeLists.txt
@@ -42,7 +42,6 @@
         contexts/qtwindowcontext_p.h
         contexts/qtwindowcontext.cpp
     )
-    list(APPEND _defines_private QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
 else()
     if(WIN32)
         list(APPEND _src
diff --git a/src/core/qwkglobal.h b/src/core/qwkglobal.h
index 20cba76..1d8be98 100644
--- a/src/core/qwkglobal.h
+++ b/src/core/qwkglobal.h
@@ -24,4 +24,8 @@
 using QT_ENTER_EVENT_TYPE = QEvent;
 #endif
 
+#ifndef QWINDOWKIT_CONFIG
+#  define QWINDOWKIT_CONFIG(feature) ((1 / QWINDOWKIT_##feature) == 1)
+#endif
+
 #endif // QWKGLOBAL_H
diff --git a/src/core/windowagentbase.cpp b/src/core/windowagentbase.cpp
index a796b3e..f38fb5d 100644
--- a/src/core/windowagentbase.cpp
+++ b/src/core/windowagentbase.cpp
@@ -1,11 +1,13 @@
 #include "windowagentbase.h"
 #include "windowagentbase_p.h"
 
+#include <QWKCore/qwkconfig.h>
+
 #include "qwkglobal_p.h"
 
-#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
+#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
 #  include "win32windowcontext_p.h"
-#elif defined(Q_OS_MAC) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
+#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
 #  include "cocoawindowcontext_p.h"
 #else
 #  include "qtwindowcontext_p.h"
@@ -31,9 +33,9 @@
             return windowContextFactoryMethod();
         }
 
-#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
+#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
         return new Win32WindowContext();
-#elif defined(Q_OS_MAC) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT)
+#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
         return new CocoaWindowContext();
 #else
         return new QtWindowContext();

--
Gitblit v1.9.1