Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_signals_blocker.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2014 Dmitry Kazakov <dimula73@gmail.com>
3
*
4
* SPDX-License-Identifier: GPL-2.0-or-later
5
*/
6
7
#ifndef __KIS_SIGNALS_BLOCKER_H
8
#define __KIS_SIGNALS_BLOCKER_H
9
10
#include <QObject>
11
#include <QVector>
12
28
class
KisSignalsBlocker
29
{
30
public
:
34
KisSignalsBlocker
(QObject *o1,
35
QObject *o2,
36
QObject *o3 = 0,
37
QObject *o4 = 0,
38
QObject *o5 = 0,
39
QObject *o6 = 0)
40
{
41
if
(o1)
addObject
(o1);
42
if
(o2)
addObject
(o2);
43
if
(o3)
addObject
(o3);
44
if
(o4)
addObject
(o4);
45
if
(o5)
addObject
(o5);
46
if
(o6)
addObject
(o6);
47
48
blockObjects
();
49
}
50
51
KisSignalsBlocker
(QObject *
object
)
52
{
53
addObject
(
object
);
54
blockObjects
();
55
}
56
57
~KisSignalsBlocker
()
58
{
59
auto
it =
m_objects
.end();
60
auto
begin =
m_objects
.begin();
61
62
while
(it != begin) {
63
--it;
64
it->first->blockSignals(it->second);
65
}
66
}
67
68
private
:
69
void
blockObjects
() {
70
for
(
auto
it =
m_objects
.begin(); it !=
m_objects
.end(); ++it) {
71
it->first->blockSignals(
true
);
72
}
73
}
74
75
inline
void
addObject
(QObject *
object
) {
76
m_objects
.append(qMakePair(
object
, object->signalsBlocked()));
77
}
78
79
private
:
80
Q_DISABLE_COPY(
KisSignalsBlocker
)
81
82
private
:
83
QVector<QPair<QObject*,bool>
>
m_objects
;
84
};
85
86
#endif
/* __KIS_SIGNALS_BLOCKER_H */
KisSignalsBlocker
Definition
kis_signals_blocker.h:29
KisSignalsBlocker::blockObjects
void blockObjects()
Definition
kis_signals_blocker.h:69
KisSignalsBlocker::KisSignalsBlocker
KisSignalsBlocker(QObject *object)
Definition
kis_signals_blocker.h:51
KisSignalsBlocker::addObject
void addObject(QObject *object)
Definition
kis_signals_blocker.h:75
KisSignalsBlocker::m_objects
QVector< QPair< QObject *, bool > > m_objects
Definition
kis_signals_blocker.h:83
KisSignalsBlocker::~KisSignalsBlocker
~KisSignalsBlocker()
Definition
kis_signals_blocker.h:57
KisSignalsBlocker::KisSignalsBlocker
KisSignalsBlocker(QObject *o1, QObject *o2, QObject *o3=0, QObject *o4=0, QObject *o5=0, QObject *o6=0)
Definition
kis_signals_blocker.h:34
QList
Definition
KisQStringListFwd.h:16
libs
global
kis_signals_blocker.h
Generated at
2025-11-04 02:30:02+01:00
from
Krita
branch
master
, commit
c9dde2e79561a8aea4a7e8d9ac99c98a7bac9e52