diff --git a/qad/utils/qad_types.cpp b/qad/utils/qad_types.cpp index 3acc86e..c15e0f7 100644 --- a/qad/utils/qad_types.cpp +++ b/qad/utils/qad_types.cpp @@ -1,6 +1,7 @@ #include "qad_types.h" #include #include +#include #include #if QT_VERSION >= 0x050000 # include @@ -57,6 +58,15 @@ __QADTypesRegistrator__::__QADTypesRegistrator__() { __QADTypesRegistrator__ __registrator__(1); +QAD::Enum::Enum(const QMetaEnum & meta, int selected) { + enum_name = meta.enumName(); + for (int i = 0; i < meta.keyCount(); ++i) { + enum_list << QAD::Enumerator(meta.value(i), meta.key(i)); + } + selectValue(selected); +} + + int QAD::Enum::selectedValue() const { foreach (const Enumerator & e, enum_list) if (e.name == selected) diff --git a/qad/utils/qad_types.h b/qad/utils/qad_types.h index 71cbeb3..3803578 100644 --- a/qad/utils/qad_types.h +++ b/qad/utils/qad_types.h @@ -3,6 +3,7 @@ #include "propertystorage.h" +class QMetaEnum; namespace QAD { @@ -14,6 +15,7 @@ namespace QAD { struct Enum { Enum(const QString & n = QString()): enum_name(n) {} + Enum(const QMetaEnum & meta, int selected = 0); QString toString() const {return selected;} // obsolete, use selectedName() int selectedValue() const; QString selectedName() const {return selected;}