From cc964712ba0d2082155b6783dd8a9f36c4f9cdeb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D0=B5=D0=BB=D0=B8=D0=BF=D0=B5=D0=BD=D0=BA=D0=BE=20?= =?UTF-8?q?=D0=98=D0=B2=D0=B0=D0=BD?= Date: Thu, 28 Mar 2019 13:18:01 +0000 Subject: [PATCH] git-svn-id: svn://db.shs.com.ru/libs@515 a8b55f48-bf90-11e4-a774-851b48703e85 --- qad/utils/qad_types.cpp | 10 ++++++++++ qad/utils/qad_types.h | 2 ++ 2 files changed, 12 insertions(+) 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;}