Sine Striker
2023-12-18 d3d7430ec9afb94abaf78fa2c9edd9d9f946881c
src/core/windowagentbase.cpp
@@ -1,10 +1,14 @@
#include "windowagentbase.h"
#include "windowagentbase_p.h"
#include <QWKCore/qwkconfig.h>
#include "qwkglobal_p.h"
#ifdef Q_OS_WINDOWS
#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
#  include "win32windowcontext_p.h"
#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
#  include "cocoawindowcontext_p.h"
#else
#  include "qtwindowcontext_p.h"
#endif
@@ -12,6 +16,9 @@
Q_LOGGING_CATEGORY(qWindowKitLog, "qwindowkit")
namespace QWK {
    WindowAgentBasePrivate::WindowContextFactoryMethod
        WindowAgentBasePrivate::windowContextFactoryMethod = nullptr;
    WindowAgentBasePrivate::WindowAgentBasePrivate() : q_ptr(nullptr), context(nullptr) {
    }
@@ -22,23 +29,23 @@
    }
    AbstractWindowContext *WindowAgentBasePrivate::createContext() const {
        return
#ifdef Q_OS_WINDOWS
            new Win32WindowContext()
        if (windowContextFactoryMethod) {
            return windowContextFactoryMethod();
        }
#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
        return new Win32WindowContext();
#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT)
        return new CocoaWindowContext();
#else
            new QtWindowContext()
        return new QtWindowContext();
#endif
                ;
    }
    bool WindowAgentBasePrivate::setup(QObject *host, WindowItemDelegate *delegate) {
        std::unique_ptr<AbstractWindowContext> ctx(createContext());
        if (!ctx->setup(host, delegate)) {
            return false;
        }
        context = std::move(ctx);
        return true;
    void WindowAgentBasePrivate::setup(QObject *host, WindowItemDelegate *delegate) {
        auto ctx = createContext();
        ctx->setup(host, delegate);
        context.reset(ctx);
    }
    WindowAgentBase::~WindowAgentBase() = default;