ImagingTools Core SDK
CMultiSelectionEditorComp.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/QPointer>
7#include <QtWidgets/QCheckBox>
8
9// ACF includes
10#include <iqtgui/TDesignerGuiObserverCompBase.h>
11#include <imod/CMultiModelDispatcherBase.h>
12
13// ImtCore includes
14#include <imtbase/ISelection.h>
15#include <imtbase/ICollectionInfo.h>
16#include <GeneratedFiles/imtgui/ui_CMultiSelectionEditorComp.h>
17
18
19namespace imtgui
20{
21
22
23class CMultiSelectionEditorComp:
24 public iqtgui::TDesignerGuiObserverCompBase<
25 Ui::CMultiSelectionEditorComp, imtbase::ISelection>,
26 protected imod::CMultiModelDispatcherBase
27
28{
29 Q_OBJECT
30
31public:
32 typedef iqtgui::TDesignerGuiObserverCompBase<
33 Ui::CMultiSelectionEditorComp, imtbase::ISelection> BaseClass;
34 typedef imod::CMultiModelDispatcherBase BaseClass2;
35
36 I_BEGIN_COMPONENT(CMultiSelectionEditorComp);
37 I_ASSIGN(m_horizontalOrientationFlagAttrPtr, "HorizontalOrientation", "Arrange selectors in horizontal orientation", true, false);
38 I_END_COMPONENT;
39
40 CMultiSelectionEditorComp();
41
42protected:
43 // reimplemented (imod::CMultiModelDispatcherBase)
44 virtual void OnModelChanged(int modelId, const istd::IChangeable::ChangeSet& changeSet) override;
45
46 // reimplemented (iqtgui::TGuiObserverWrap)
47 virtual void OnGuiModelAttached() override;
48 virtual void OnGuiModelDetached() override;
49 virtual void UpdateGui(const istd::IChangeable::ChangeSet& changeSet) override;
50
51 // reimplemented (iqtgui::CGuiComponentBase)
52 virtual void OnGuiCreated() override;
53 virtual void OnGuiRetranslate() override;
54
55private Q_SLOTS:
56 void OnCheckBoxStateChanged(int checkState);
57 void on_SelectAllButton_clicked();
58 void on_DeselectAllButton_clicked();
59 void on_InvertButton_clicked();
60 void on_ExclusiveModeButton_toggled(bool toggled);
61
62private:
63 I_ATTR(bool, m_horizontalOrientationFlagAttrPtr);
64
65 QMap<imtbase::ICollectionInfo::Id, QPointer<QCheckBox>> m_checkBoxMap;
66};
67
68
69} // namespace imtgui
70
71