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