From 3cfe15a9c3db0993d8b8fef5d148625840e5a75c Mon Sep 17 00:00:00 2001
From: Sine Striker <trueful@163.com>
Date: 周二, 05 12月 2023 15:43:39 +0800
Subject: [PATCH] Add host interface

---
 src/core/corewindowagent.cpp |   18 ++++++------------
 1 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/src/core/corewindowagent.cpp b/src/core/corewindowagent.cpp
index 78ed335..bea2239 100644
--- a/src/core/corewindowagent.cpp
+++ b/src/core/corewindowagent.cpp
@@ -21,24 +21,18 @@
     void CoreWindowAgentPrivate::init() {
     }
 
-    bool CoreWindowAgentPrivate::setup(QWindow *window, WindowItemDelegate *delegate) {
-        Q_ASSERT(window);
-        if (!window) {
-            return false;
-        }
-
-        auto handler =
+    bool CoreWindowAgentPrivate::setup(QObject *host, WindowItemDelegate *delegate) {
+        auto ctx =
 #ifdef Q_OS_WINDOWS
-            new Win32WindowContext(window, delegate)
+            std::make_unique<Win32WindowContext>(host, delegate)
 #else
-            new QtWindowContext(window, delegate)
+            std::make_unique<QtWindowContext>(host, window, delegate)
 #endif
             ;
-        if (!handler->setup()) {
-            delete handler;
+        if (!ctx->setup()) {
             return false;
         }
-        context.reset(handler);
+        context = std::move(ctx);
         return true;
     }
 

--
Gitblit v1.9.1