diff --git a/CMakeLists.txt b/CMakeLists.txt index 885ed3b4..01ca5846 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,8 +2,8 @@ cmake_minimum_required(VERSION 3.0) cmake_policy(SET CMP0017 NEW) # need include() with .cmake project(pip) set(pip_MAJOR 2) -set(pip_MINOR 30) -set(pip_REVISION 1) +set(pip_MINOR 31) +set(pip_REVISION 0) set(pip_SUFFIX ) set(pip_COMPANY SHS) set(pip_DOMAIN org.SHS) diff --git a/libs/main/code/picodeinfo.cpp b/libs/main/code/picodeinfo.cpp index 0495751b..01d8cc89 100644 --- a/libs/main/code/picodeinfo.cpp +++ b/libs/main/code/picodeinfo.cpp @@ -37,6 +37,14 @@ int PICodeInfo::EnumInfo::memberValue(const PIString & name_) const { } +PIVariantTypes::Enum PICodeInfo::EnumInfo::toPIVariantEnum() { + PIVariantTypes::Enum en(name); + for (auto m: members) en << m.toPIVariantEnumerator(); + if (!en.isEmpty()) en.selectValue(members.front().value); + return en; +} + + PIMap * PICodeInfo::classesInfo; PIMap * PICodeInfo::enumsInfo; PIMap * PICodeInfo::accessValueFunctions; diff --git a/libs/main/code/picodeinfo.h b/libs/main/code/picodeinfo.h index ea71fea4..3a577305 100644 --- a/libs/main/code/picodeinfo.h +++ b/libs/main/code/picodeinfo.h @@ -25,6 +25,8 @@ #define PICODEINFO_H #include "pistringlist.h" +#include "pivarianttypes.h" + class PIVariant; @@ -77,6 +79,7 @@ struct PIP_EXPORT ClassInfo { struct PIP_EXPORT EnumeratorInfo { EnumeratorInfo(const PIString & n = PIString(), int v = 0) {name = n; value = v;} + PIVariantTypes::Enumerator toPIVariantEnumerator() {return PIVariantTypes::Enumerator(value, name);} MetaMap meta; PIString name; int value; @@ -85,6 +88,7 @@ struct PIP_EXPORT EnumeratorInfo { struct PIP_EXPORT EnumInfo { PIString memberName(int value) const; int memberValue(const PIString & name) const; + PIVariantTypes::Enum toPIVariantEnum(); MetaMap meta; PIString name; PIVector members; diff --git a/libs/main/core/pivarianttypes.h b/libs/main/core/pivarianttypes.h index 219f2f57..8c2eb4e2 100644 --- a/libs/main/core/pivarianttypes.h +++ b/libs/main/core/pivarianttypes.h @@ -99,9 +99,6 @@ struct PIP_EXPORT Enum { * @brief Make vector of Enum names */ PIStringList names() const; - PIString enum_name; - PIString selected; - PIVector enum_list; /** * @brief Add PIVariantTypes::Enumerator to Enum @@ -119,6 +116,15 @@ struct PIP_EXPORT Enum { * @brief Add PIVariantTypes::Enumerator element for each name in vector */ Enum & operator <<(const PIStringList & v); + + /** + * @brief Return true if Enum is empty + */ + bool isEmpty() const {return enum_list.isEmpty();} + + PIString enum_name; + PIString selected; + PIVector enum_list; }; struct PIP_EXPORT File {