diff --git a/include/FramelessHelper/Quick/framelessquickhelper.h b/include/FramelessHelper/Quick/framelessquickhelper.h index 161a9435..3e317a4c 100644 --- a/include/FramelessHelper/Quick/framelessquickhelper.h +++ b/include/FramelessHelper/Quick/framelessquickhelper.h @@ -56,7 +56,7 @@ public Q_SLOTS: void setTitleBarItem(QQuickItem *value); void setSystemButton(QQuickItem *item, const QuickGlobal::SystemButtonType buttonType); - void setHitTestVisible(QQuickItem *item); + void setHitTestVisible(QQuickItem *item, const bool visible = true); void showSystemMenu(const QPoint &pos); void windowStartSystemMove2(const QPoint &pos); diff --git a/include/FramelessHelper/Quick/private/framelessquickhelper_p.h b/include/FramelessHelper/Quick/private/framelessquickhelper_p.h index b3880b3c..8bb00e5e 100644 --- a/include/FramelessHelper/Quick/private/framelessquickhelper_p.h +++ b/include/FramelessHelper/Quick/private/framelessquickhelper_p.h @@ -54,7 +54,7 @@ class FRAMELESSHELPER_QUICK_API FramelessQuickHelperPrivate : public QObject void attachToWindow(); void setSystemButton(QQuickItem *item, const QuickGlobal::SystemButtonType buttonType); - void setHitTestVisible(QQuickItem *item); + void setHitTestVisible(QQuickItem *item, const bool visible = true); void showSystemMenu(const QPoint &pos); void windowStartSystemMove2(const QPoint &pos); void windowStartSystemResize2(const Qt::Edges edges, const QPoint &pos); diff --git a/include/FramelessHelper/Widgets/framelesswidgetshelper.h b/include/FramelessHelper/Widgets/framelesswidgetshelper.h index 7d753ffd..c949078e 100644 --- a/include/FramelessHelper/Widgets/framelesswidgetshelper.h +++ b/include/FramelessHelper/Widgets/framelesswidgetshelper.h @@ -52,7 +52,7 @@ public Q_SLOTS: void setTitleBarWidget(QWidget *widget); void setSystemButton(QWidget *widget, const Global::SystemButtonType buttonType); - void setHitTestVisible(QWidget *widget); + void setHitTestVisible(QWidget *widget, const bool visible = true); void showSystemMenu(const QPoint &pos); void windowStartSystemMove2(const QPoint &pos); diff --git a/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h b/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h index b7137d82..f1d69f40 100644 --- a/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h +++ b/include/FramelessHelper/Widgets/private/framelesswidgetshelper_p.h @@ -50,7 +50,7 @@ class FRAMELESSHELPER_WIDGETS_API FramelessWidgetsHelperPrivate : public QObject void attachToWindow(); void setSystemButton(QWidget *widget, const Global::SystemButtonType buttonType); - void setHitTestVisible(QWidget *widget); + void setHitTestVisible(QWidget *widget, const bool visible = true); void showSystemMenu(const QPoint &pos); void windowStartSystemMove2(const QPoint &pos); void windowStartSystemResize2(const Qt::Edges edges, const QPoint &pos); diff --git a/src/quick/framelessquickhelper.cpp b/src/quick/framelessquickhelper.cpp index a1ba24e0..3b610337 100644 --- a/src/quick/framelessquickhelper.cpp +++ b/src/quick/framelessquickhelper.cpp @@ -46,7 +46,7 @@ struct QuickHelperData bool attached = false; SystemParameters params = {}; QPointer titleBarItem = nullptr; - QList hitTestVisibleItems = {}; + QList> hitTestVisibleItems = {}; QPointer windowIconButton = nullptr; QPointer contextHelpButton = nullptr; QPointer minimizeButton = nullptr; @@ -223,7 +223,7 @@ void FramelessQuickHelperPrivate::setSystemButton(QQuickItem *item, const QuickG } } -void FramelessQuickHelperPrivate::setHitTestVisible(QQuickItem *item) +void FramelessQuickHelperPrivate::setHitTestVisible(QQuickItem *item, const bool visible) { Q_ASSERT(item); if (!item) { @@ -234,12 +234,11 @@ void FramelessQuickHelperPrivate::setHitTestVisible(QQuickItem *item) if (!data) { return; } - static constexpr const bool visible = true; const bool exists = data->hitTestVisibleItems.contains(item); if (visible && !exists) { data->hitTestVisibleItems.append(item); } - if constexpr (!visible && exists) { + if (!visible && exists) { data->hitTestVisibleItems.removeAll(item); } } @@ -672,14 +671,14 @@ void FramelessQuickHelper::setSystemButton(QQuickItem *item, const QuickGlobal:: d->setSystemButton(item, buttonType); } -void FramelessQuickHelper::setHitTestVisible(QQuickItem *item) +void FramelessQuickHelper::setHitTestVisible(QQuickItem *item, const bool visible) { Q_ASSERT(item); if (!item) { return; } Q_D(FramelessQuickHelper); - d->setHitTestVisible(item); + d->setHitTestVisible(item, visible); } void FramelessQuickHelper::showSystemMenu(const QPoint &pos) diff --git a/src/widgets/framelesswidgetshelper.cpp b/src/widgets/framelesswidgetshelper.cpp index 6717c7f9..b45828c3 100644 --- a/src/widgets/framelesswidgetshelper.cpp +++ b/src/widgets/framelesswidgetshelper.cpp @@ -43,7 +43,7 @@ struct WidgetsHelperData bool attached = false; SystemParameters params = {}; QPointer titleBarWidget = nullptr; - QWidgetList hitTestVisibleWidgets = {}; + QList> hitTestVisibleWidgets = {}; QPointer windowIconButton = nullptr; QPointer contextHelpButton = nullptr; QPointer minimizeButton = nullptr; @@ -170,7 +170,7 @@ QWidget *FramelessWidgetsHelperPrivate::getTitleBarWidget() const return getWindowData().titleBarWidget; } -void FramelessWidgetsHelperPrivate::setHitTestVisible(QWidget *widget) +void FramelessWidgetsHelperPrivate::setHitTestVisible(QWidget *widget, const bool visible) { Q_ASSERT(widget); if (!widget) { @@ -181,12 +181,11 @@ void FramelessWidgetsHelperPrivate::setHitTestVisible(QWidget *widget) if (!data) { return; } - static constexpr const bool visible = true; const bool exists = data->hitTestVisibleWidgets.contains(widget); if (visible && !exists) { data->hitTestVisibleWidgets.append(widget); } - if constexpr (!visible && exists) { + if (!visible && exists) { data->hitTestVisibleWidgets.removeAll(widget); } } @@ -665,14 +664,14 @@ void FramelessWidgetsHelper::setSystemButton(QWidget *widget, const SystemButton d->setSystemButton(widget, buttonType); } -void FramelessWidgetsHelper::setHitTestVisible(QWidget *widget) +void FramelessWidgetsHelper::setHitTestVisible(QWidget *widget, const bool visible) { Q_ASSERT(widget); if (!widget) { return; } Q_D(FramelessWidgetsHelper); - d->setHitTestVisible(widget); + d->setHitTestVisible(widget, visible); } void FramelessWidgetsHelper::showSystemMenu(const QPoint &pos)