ImagingTools Core SDK
CEnableableLayoutFittableEditorGui.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/QObject>
7#include <QtCore/QPointer>
8#include <QtWidgets/QCheckBox>
9
10// ACF includes
11#include <istd/TRange.h>
12#include <istd/TPointerVector.h>
13#include <imod/TModelWrap.h>
14#include <imod/TSingleModelObserverBase.h>
15#include <iqtgui/TGuiObserverWrap.h>
16#include <iprm/IEnableableParam.h>
17
18#include <imtgui/ILayoutFittableModelEditor.h>
19
20
21namespace imtgui
22{
23
24
25class CEnableableLayoutFittableEditorGui:
26 public QObject,
27 public ILayoutFittableModelEditor,
28 public imod::TSingleModelObserverBase<iprm::IEnableableParam>
29{
30 Q_OBJECT
31
32public:
33 typedef imod::TSingleModelObserverBase<iprm::IEnableableParam> BaseClass;
34
35 CEnableableLayoutFittableEditorGui(QObject* parentPtr = nullptr);
36
37 // reimplemented (ILayoutFittableWidget)
38 virtual bool PlaceWidgetToGridLayout(QGridLayout& layout, int rowIndex = -1, int columnIndex = 1) override;
39
40 // reimplemented (imod::IObserver)
41 virtual bool OnModelAttached(imod::IModel* modelPtr, istd::IChangeable::ChangeSet& changeMask) override;
42
43 // reimplemented (imod::IModelEditor)
44 virtual void UpdateEditor(const istd::IChangeable::ChangeSet& changeSet) override;
45 virtual void UpdateModelFromEditor() const override;
46 virtual bool IsReadOnly() const override;
47 virtual void SetReadOnly(bool state) override;
48
49protected:
50 // reimplemented (imod::CSingleModelObserverBase)
51 virtual void OnUpdate(const istd::IChangeable::ChangeSet& changeSet) override;
52
53private Q_SLOTS:
54 void OnObjectNameChanged(const QString newObjectName);
55 void OnCheckBoxClicked();
56
57private:
58 QPointer<QCheckBox> m_checkBoxPtr;
59};
60
61
62} // namespace imtgui
63
64
65