ACF $AcfVersion:0$
CMultiParamsManagerComp.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/QVector>
7
8// ACF includes
10
11
12namespace iprm
13{
14
15
20{
21public:
23
24 I_BEGIN_COMPONENT(CMultiParamsManagerComp);
25 I_ASSIGN_MULTI_0(m_paramSetsFactoriesPtr, "ParamSetsFactories", "List of factories for parameter set creation", true);
26 I_ASSIGN_MULTI_0(m_factoryNameNameAttrPtr, "ParamSetsFactorieNames", "List of names associated with the parameter factories", true);
27 I_ASSIGN_MULTI_0(m_factoryDescriptionAttrPtr, "ParamSetsFactorieDesciption", "List of descriptions associated with the parameter factories", true);
28 I_END_COMPONENT;
29
30 // reimplemented (iprm::IParamsManager)
31 virtual const IOptionsList* GetParamsTypeConstraints() const override;
32
33 // reimplemented (iser::ISerializable)
34 virtual bool Serialize(iser::IArchive& archive) override;
35
36 // reimplemented (iprm::IOptionsManager)
37 virtual int GetOptionOperationFlags(int index = -1) const override;
38 virtual bool SetOptionEnabled(int index, bool isEnabled = true) override;
39 virtual bool RemoveOption(int index) override;
40 virtual bool InsertOption(
41 const QString& optionName,
42 const QByteArray& optionId,
43 const QString& optionDescription = QString(),
44 int index = -1);
45 virtual bool SwapOptions(int index1, int index2) override;
46 virtual bool SetOptionName(int optionIndex, const QString& optionName) override;
47 virtual bool SetOptionDescription(int optionIndex, const QString& optionDescription) override;
48
49 // reimplemented (istd::IChangeable)
51
52protected:
53 struct TypeInfo
54 {
56 QByteArray id;
57 QString name;
58 QString description;
59 };
60
62 {
63 // reimplemented (iprm::IOptionsList)
64 virtual int GetOptionsFlags() const override;
65 virtual int GetOptionsCount() const override;
66 virtual QString GetOptionName(int index) const override;
67 virtual QString GetOptionDescription(int index) const override;
68 virtual QByteArray GetOptionId(int index) const override;
69 virtual bool IsOptionEnabled(int index) const override;
70
71 QVector<TypeInfo> typeInfos;
72
73 QMap<QByteArray, int> typeIdToIndexMap;
74 };
75
85 bool EnsureParamExist(int index, const QByteArray& typeId, const QString& name, const QByteArray& uuid, bool isEnabled);
86
87 // reimplemented (CParamsManagerCompBase)
88 virtual bool IsParameterCreationSupported() const override;
89 virtual int GetCreatedParamsSetsCount() const override;
90 virtual iprm::IParamsSetUniquePtr CreateParamsSetInstance(int typeIndex = -1) const override;
91 virtual QString CalculateNewDefaultName(int typeIndex) const override;
92
93 // reimplemented (icomp::CComponentBase)
94 virtual void OnComponentCreated() override;
95 virtual void OnComponentDestroyed() override;
96
97private:
98 TypeInfoList m_typeInfoList;
99
100private:
101 I_MULTIFACT(iprm::IParamsSet, m_paramSetsFactoriesPtr);
102 I_MULTITEXTATTR(m_factoryNameNameAttrPtr);
103 I_MULTITEXTATTR(m_factoryDescriptionAttrPtr);
104};
105
106
107} // namespace iprm
108
109
110
111
Implementation of parameter manager.
virtual const IOptionsList * GetParamsTypeConstraints() const override
Get selection constraints describing each supported type.
virtual bool SetOptionName(int optionIndex, const QString &optionName) override
Set a new name for the option at the given index.
virtual bool RemoveOption(int index) override
Remove an option at the given index.
virtual bool SetOptionEnabled(int index, bool isEnabled=true) override
Enables or disables a given option.
virtual bool Serialize(iser::IArchive &archive) override
Load or store state of this object as a archive stream.
virtual bool CopyFrom(const istd::IChangeable &object, istd::IChangeable::CompatibilityMode mode=CM_WITHOUT_REFS) override
Copy this object from another one.
bool EnsureParamExist(int index, const QByteArray &typeId, const QString &name, const QByteArray &uuid, bool isEnabled)
Ensure some parameter exist, has correct type and attributes.
virtual iprm::IParamsSetUniquePtr CreateParamsSetInstance(int typeIndex=-1) const override
Create a new instance of the parameter set.
virtual void OnComponentDestroyed() override
virtual bool InsertOption(const QString &optionName, const QByteArray &optionId, const QString &optionDescription=QString(), int index=-1)
Insert an option at some position.
virtual void OnComponentCreated() override
virtual QString CalculateNewDefaultName(int typeIndex) const override
virtual int GetOptionOperationFlags(int index=-1) const override
Get operation control flags of some option or whole manager.
virtual bool SetOptionDescription(int optionIndex, const QString &optionDescription) override
Set a new description for the option at the given index.
virtual bool IsParameterCreationSupported() const override
Return true if creation of parameter sets is supported by the implementation.
virtual bool SwapOptions(int index1, int index2) override
Swap two options.
virtual int GetCreatedParamsSetsCount() const override
Get the number of parameter sets created at the run time.
Implementation of parameter manager.
Constraints of selection from set of possibilities.
Set of general parameters.
Definition IParamsSet.h:81
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
CompatibilityMode
Control how relationship betweeen objects are interpreted.
@ CM_WITHOUT_REFS
External references are simple ignored.
Unique ownership smart pointer for interface types.
#define I_MULTITEXTATTR(member)
Declare translatable multiple text attribute member.
Contains interfaces and implementations of flexible parameter concept.
virtual int GetOptionsFlags() const override
Get constraints flags.
virtual QString GetOptionName(int index) const override
Get name of specified option.
virtual bool IsOptionEnabled(int index) const override
Return true if the option is enabled and can be selected.
virtual int GetOptionsCount() const override
Get number of managed options.
virtual QString GetOptionDescription(int index) const override
Get human-readable description for an option.
virtual QByteArray GetOptionId(int index) const override
Get option ID.