ImagingTools Core SDK
CDeviceSelectionGuiComp.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// ACF includes
6#include <iqtgui/TDesignerGuiObserverCompBase.h>
7#include <iwidgets/CTextElider.h>
8
9// ImtCore includes
10#include <imtbase/ISelection.h>
11#include <imtbase/ICollectionInfo.h>
12#include <imtbase/TModelUpdateBinder.h>
13#include <imtdev/IDeviceStateProvider.h>
14#include <GeneratedFiles/imtdevgui/ui_CDeviceSelectionGuiComp.h>
15
16
17namespace imtdevgui
18{
19
20
21class CDeviceSelectionGuiComp
22 : public iqtgui::TDesignerGuiObserverCompBase<Ui::CDeviceSelectionGuiComp, imtbase::ISelection>
23{
24 Q_OBJECT
25public:
26 typedef iqtgui::TDesignerGuiObserverCompBase<Ui::CDeviceSelectionGuiComp, imtbase::ISelection>
27 BaseClass;
28
29 enum LabelPosition
30 {
34 LP_LEFT,
35
39 LP_TOP
40 };
41
42 I_BEGIN_COMPONENT(CDeviceSelectionGuiComp)
43 I_ASSIGN(m_measurementDeviceStateCompPtr, "MeasurementDeviceState", "MeasurementDeviceState to highlight current device state in selector", false, "MeasurementDeviceState");
44 I_ASSIGN(m_labelTextAttrPtr, "LabelText", "Selection label text", true, "Measurement Device:");
45 I_ASSIGN(m_labelPositionAttrPtr, "LabelPosition", "Selection label position.\n0 - Left from the selector,\n1 - On top of the selector", true, LP_LEFT);
46 I_END_COMPONENT;
47
48 CDeviceSelectionGuiComp();
49
50Q_SIGNALS:
51 void EmitAutoSelect();
52
53protected:
54 void OnDeviceListUpdated(const istd::IChangeable::ChangeSet& changeSet, const imtbase::ICollectionInfo* objectPtr);
55 void OnDeviceStateUpdated(
56 const istd::IChangeable::ChangeSet& changeSet, const imtdev::IDeviceStateProvider* objectPtr);
57
58 void UpdateDeviceStateIcons();
59
60 // reimplemented (iqtgui::TGuiObserverWrap)
61 void UpdateGui(const istd::IChangeable::ChangeSet& changeSet) override;
62
63 // reimplemented (imod::IModelEditor)
64 void UpdateModel() const override;
65
66 // reimplemented (iqtgui::CGuiComponentBase)
67 void OnGuiCreated() override;
68 void OnGuiDestroyed() override;
69 void OnGuiDesignChanged() override;
70
71protected Q_SLOTS:
72 void OnAutoSelect();
73 void OnDataChanged();
74
75protected:
76 I_REF(imtdev::IDeviceStateProvider, m_measurementDeviceStateCompPtr);
77 I_TEXTATTR(m_labelTextAttrPtr);
78 I_ATTR(int, m_labelPositionAttrPtr);
79
80 iwidgets::CTextElider m_deviceListElider;
81
84 m_deviceStateObserver;
85
86 QIcon m_iconConnected;
87 QIcon m_iconNotConnected;
88};
89
90
91} // namespace imtdevgui
Interface for tracking device connection states.