ACF $AcfVersion:0$
CMultiParamsManagerGuiComp.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtCore/QtGlobal>
7#if QT_VERSION >= 0x050000
8#include <QtWidgets/QStackedWidget>
9#else
10#include <QtGui/QStackedWidget>
11#endif
12
13// ACF includes
14#include <iqt2d/IViewExtender.h>
15
17
18
19namespace iqtprm
20{
21
22
24{
25public:
27
28 I_BEGIN_COMPONENT(CMultiParamsManagerGuiComp);
29 I_ASSIGN_MULTI_0(m_paramsGuiCompPtr, "ParamsGui", "GUI object used to display parameters", false);
30 I_ASSIGN_TO(m_paramsObserverCompPtr, m_paramsGuiCompPtr, false);
31 I_ASSIGN_TO(m_viewExtendersCompPtr, m_paramsGuiCompPtr, false);
32 I_ASSIGN_MULTI_0(m_paramsSetTypeIdsAttrPtr, "ParamTypeIds", "The list of type IDs for supported parameter sets", true);
33 I_END_COMPONENT;
34
36
37protected:
38 // reimplemented (CParamsManagerGuiCompBase)
39 virtual imod::IObserver* GetObserverPtr(const iprm::IParamsSet* paramsSetPtr) const override;
40 virtual iqtgui::IGuiObject* GetEditorGuiPtr(const iprm::IParamsSet* paramsSetPtr) const override;
41 virtual void UpdateParamsView(int selectedIndex) override;
43
44 // reimplemented (iqtgui::CComponentBase)
45 virtual void OnGuiCreated() override;
46 virtual void OnGuiDestroyed() override;
47
48private:
49 I_MULTIREF(iqtgui::IGuiObject, m_paramsGuiCompPtr);
50 I_MULTIREF(imod::IObserver, m_paramsObserverCompPtr);
51 I_MULTIREF(iqt2d::IViewExtender, m_viewExtendersCompPtr);
52 I_MULTIATTR(QByteArray, m_paramsSetTypeIdsAttrPtr);
53
54 QStackedWidget* m_parameterEditorStackPtr;
55
56 typedef QMap<QWidget*, iqtgui::IGuiObject*> WidgetGuiMap;
57 typedef QMap<QByteArray /*parameter type ID*/, int /*Position in the page stack*/> TypeToStackPositionMap;
58 typedef QMap<QByteArray /*parameter type ID*/, iqt2d::IViewExtender* /*Corresponding view extender*/> TypeToExtenderMap;
59 typedef QMap<iqt2d::IViewProvider*, int> ConnectedSceneFlags; // maps connected scene provider to connection flags
60
61 WidgetGuiMap m_widgetToGuiMap;
62 TypeToStackPositionMap m_typeToStackPositionMap;
63 TypeToExtenderMap m_typeToExtenderMap;
64};
65
66
67} // namespace iqtprm
68
69
70
71
Common interface for all classes implementing the Observer functionality in the Model/Observer design...
Definition IObserver.h:156
Set of general parameters.
Definition IParamsSet.h:81
Interface for GUI objects presenting its results using extern view objects.
Common interface for GUI objects used in ACF component context.
Definition IGuiObject.h:133
virtual imod::IObserver * GetObserverPtr(const iprm::IParamsSet *paramsSetPtr) const override
Get the observer for a given parameter set.
virtual iqtgui::IGuiObject * GetEditorGuiPtr(const iprm::IParamsSet *paramsSetPtr) const override
Get the editor GUI for a given parameter set.
virtual iqt2d::IViewExtender * GetCurrentViewExtenderPtr() const override
Get the currently active view extender.
virtual void OnGuiDestroyed() override
virtual void OnGuiCreated() override
virtual void UpdateParamsView(int selectedIndex) override
This package contains Qt based implementations of standard parameter components.