ImagingTools Core SDK
CSelectionAdapterBase.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QSharedPointer>
7
8// ACF includes
9#include <imod/CMultiModelDispatcherBase.h>
10
11
12namespace imtbase
13{
14
15
16class CSelectionAdapterBase: public imod::CMultiModelDispatcherBase
17{
18public:
19 CSelectionAdapterBase();
20
21protected:
22 class UpdateBlocker
23 {
24 public:
25 UpdateBlocker(bool& flag);
26 ~UpdateBlocker();
27
28 private:
29 bool& m_flag;
30 };
31
32 typedef QSharedPointer<UpdateBlocker> UpdateBlockerPtr;
33
34protected:
35 virtual void OnConstraintsChanged();
36 virtual void OnSelectionChanged();
37 virtual UpdateBlockerPtr CreateUpdateBlocker();
38
39 // reimplemented (imod::CMultiModelDispatcherBase)
40 virtual void OnModelChanged(int modelId, const istd::IChangeable::ChangeSet& changeSet) override;
41
42protected:
43 enum ModelId
44 {
45 MI_CONSTRAINTS = 0,
46 MI_SELECTION
47 };
48
49private:
50 bool m_isUpdateBlocked;
51};
52
53
54} // namespace imtbase
55
56