Sine Striker
2024-11-21 c3ef42dad254f6d04cab521c9ae619a46bb84f7a
src/quick/quickwindowagent.cpp
@@ -1,3 +1,7 @@
// Copyright (C) 2023-2024 Stdware Collections (https://www.github.com/stdware)
// Copyright (C) 2021-2023 wangwenx190 (Yuhang Zhao)
// SPDX-License-Identifier: Apache-2.0
#include "quickwindowagent.h"
#include "quickwindowagent_p.h"
@@ -7,6 +11,14 @@
#include "quickitemdelegate_p.h"
namespace QWK {
    /*!
        \class QuickWindowAgent
        \brief QuickWindowAgent is the window agent for QtQuick.
        It provides interfaces for QtQuick and processes some Qt events related to the QQuickItem
        instance. The usage of all APIs is consistent with the \a Widgets module.
    */
    QuickWindowAgentPrivate::QuickWindowAgentPrivate() = default;
@@ -35,8 +47,14 @@
        d->setup(window, new QuickItemDelegate());
        d->hostWindow = window;
#if defined(Q_OS_WINDOWS) && QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER)
#if defined(Q_OS_WINDOWS) && QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDERS)
        d->setupWindows10BorderWorkaround();
#endif
#ifdef Q_OS_WINDOWS
        if (!windowAttribute(QStringLiteral("windows-system-border-enabled")).toBool()) {
            window->setFlag(Qt::FramelessWindowHint);
        }
#endif
        return true;
    }
@@ -51,6 +69,9 @@
        if (!d->context->setTitleBar(item)) {
            return;
        }
#ifdef Q_OS_MAC
        setSystemButtonArea(nullptr);
#endif
        Q_EMIT titleBarWidgetChanged(item);
    }
@@ -67,19 +88,26 @@
        Q_EMIT systemButtonChanged(button, item);
    }
#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
    bool QuickWindowAgent::isHitTestVisible(QQuickItem *item) const {
#else
    bool QuickWindowAgent::isHitTestVisible(const QQuickItem *item) const {
#endif
        Q_D(const QuickWindowAgent);
        return d->context->isHitTestVisible(item);
    }
    void QuickWindowAgent::setHitTestVisible(const QQuickItem *item, bool visible) {
    void QuickWindowAgent::setHitTestVisible(QQuickItem *item, bool visible) {
        Q_D(QuickWindowAgent);
        d->context->setHitTestVisible(item, visible);
    }
    /*!
        \internal
    */
    QuickWindowAgent::QuickWindowAgent(QuickWindowAgentPrivate &d, QObject *parent)
        : WindowAgentBase(d, parent) {
        d.init();
    }
}
}