Skip to content
This repository has been archived by the owner on Dec 19, 2023. It is now read-only.

Commit

Permalink
common: improve robustness
Browse files Browse the repository at this point in the history
Signed-off-by: Yuhang Zhao <[email protected]>
  • Loading branch information
wangwenx190 committed May 20, 2022
1 parent 44b3730 commit 5754f2e
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 16 deletions.
2 changes: 1 addition & 1 deletion include/FramelessHelper/Quick/framelessquickhelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
2 changes: 1 addition & 1 deletion include/FramelessHelper/Widgets/framelesswidgetshelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
11 changes: 5 additions & 6 deletions src/quick/framelessquickhelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ struct QuickHelperData
bool attached = false;
SystemParameters params = {};
QPointer<QQuickItem> titleBarItem = nullptr;
QList<QQuickItem *> hitTestVisibleItems = {};
QList<QPointer<QQuickItem>> hitTestVisibleItems = {};
QPointer<QQuickItem> windowIconButton = nullptr;
QPointer<QQuickItem> contextHelpButton = nullptr;
QPointer<QQuickItem> minimizeButton = nullptr;
Expand Down Expand Up @@ -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) {
Expand All @@ -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);
}
}
Expand Down Expand Up @@ -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)
Expand Down
11 changes: 5 additions & 6 deletions src/widgets/framelesswidgetshelper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ struct WidgetsHelperData
bool attached = false;
SystemParameters params = {};
QPointer<QWidget> titleBarWidget = nullptr;
QWidgetList hitTestVisibleWidgets = {};
QList<QPointer<QWidget>> hitTestVisibleWidgets = {};
QPointer<QWidget> windowIconButton = nullptr;
QPointer<QWidget> contextHelpButton = nullptr;
QPointer<QWidget> minimizeButton = nullptr;
Expand Down Expand Up @@ -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) {
Expand All @@ -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);
}
}
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit 5754f2e

Please sign in to comment.