ACF $AcfVersion:0$
CWidgetWheelEventBlocker.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4// Qt includes
5#include <QtCore/QObject>
6#include <QtCore/QSet>
7#include <QtWidgets/QWidget>
8
9
10namespace iwidgets
11{
12
13
18class CWidgetWheelEventBlocker: public QObject
19{
20
21public:
23 {
27 AW_SPIN_BOXES = 1 << 0,
28
36 AW_SLIDERS = 1 << 2
37 };
38
39 CWidgetWheelEventBlocker(QWidget* parentPtr, int flags = AW_SPIN_BOXES | AW_COMBO_BOXES | AW_SLIDERS, bool setStrongFocusToAffectedWidgets = true);
40
41protected:
42 typedef QList<QObject*> ObjectPtrList;
43
50 void FilterWidgets(ObjectPtrList& widgetPtrsList);
51
52 // reimplemented (QObject)
53 virtual bool eventFilter(QObject* objectPtr, QEvent* eventPtr) override;
54
55private:
62 void AddSupportedChildWidgets(QWidget& parentObject);
63
67 void AcquireWidget(QWidget& widget);
68
69private:
70 int m_processingFlags;
71 bool m_isSetStrongFocusToAffectedWidgets;
72 QSet<QWidget*> m_filteredWidgets;
73
74};
75
76
77} // namespace iwidgets
78
This class created to avoid an accident changing values in comboBoxes or spinBoxes.
@ AW_SLIDERS
If set, the wheel events will be blocked for comboBoxes (QComboBox class)
@ AW_SPIN_BOXES
If set, the wheel events will be blocked for spinBoxes (QAbstractSpinBox class)
@ AW_COMBO_BOXES
If set, the wheel events will be blocked for comboBoxes (QComboBox class)
CWidgetWheelEventBlocker(QWidget *parentPtr, int flags=AW_SPIN_BOXES|AW_COMBO_BOXES|AW_SLIDERS, bool setStrongFocusToAffectedWidgets=true)
virtual bool eventFilter(QObject *objectPtr, QEvent *eventPtr) override
void FilterWidgets(ObjectPtrList &widgetPtrsList)
Namespace contains implementation of Qt widget extensions.