ImagingTools Core SDK
COptionsListAdapterComp.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 <icomp/CComponentBase.h>
7#include <imod/CMultiModelDispatcherBase.h>
8#include <iprm/COptionsManager.h>
9
10// ImtCore includes
11#include <imtbase/ICollectionInfo.h>
12
13
14namespace imtbase
15{
16
17
23 public icomp::CComponentBase,
24 private imod::CMultiModelDispatcherBase,
25 virtual public iprm::IOptionsList
26{
27public:
28 typedef icomp::CComponentBase BaseClass;
29 typedef imod::CMultiModelDispatcherBase BaseClass2;
30
31 I_BEGIN_COMPONENT(COptionsListAdapterComp);
32 I_REGISTER_INTERFACE(iprm::IOptionsList);
33 I_ASSIGN(m_collectionInfoCompPtr, "CollectionInfo", "Collection information", false, "CollectionInfo");
34 I_ASSIGN_TO(m_collectionInfoModelCompPtr, m_collectionInfoCompPtr, false);
35 I_END_COMPONENT;
36
37 // reimplemented (iprm::IOptionsList)
38 virtual int GetOptionsFlags() const override;
39 virtual int GetOptionsCount() const override;
40 virtual QString GetOptionName(int index) const override;
41 virtual QString GetOptionDescription(int index) const override;
42 virtual QByteArray GetOptionId(int index) const override;
43 virtual bool IsOptionEnabled(int index) const override;
44
45protected:
46 // reimplemented (imod::CMultiModelDispatcherBase)
47 virtual void OnModelChanged(int modelId, const istd::IChangeable::ChangeSet & changeSet) override;
48
49 // reimplemented (icomp::CComponentBase)
50 virtual void OnComponentCreated() override;
51 virtual void OnComponentDestroyed() override;
52
53private:
54 void UpdateList();
55
56private:
57 I_REF(ICollectionInfo, m_collectionInfoCompPtr);
58 I_REF(imod::IModel, m_collectionInfoModelCompPtr);
59
60 iprm::COptionsManager m_options;
61};
62
63
64} // namespace imtbase
65
66