commit 5ae606bb068f92187788e7088da260d0eb41cd17
Author: Christian Ehringfeld <c.ehringfeld@t-online.de>
Date:   Sat Oct 15 17:11:45 2016 +0200

    added methods

diff --git a/src/entity.cpp b/src/entity.cpp
index 890bc95..abf813b 100644
--- a/src/entity.cpp
+++ b/src/entity.cpp
@@ -128,6 +128,22 @@ QString Entity::getPrimaryKey() const {
     return "id";
 }
 
+QHash<QString, QVariant> Entity::getProperties() {
+    auto count = this->metaObject()->propertyCount();
+    QHash<QString, QVariant> hash = QHash<QString, QVariant>();
+    for (int i = 0; i < count; ++i) {
+        auto prop = this->metaObject()->property(i);
+        hash.insert(QString(prop.name()),prop.read(this));
+    }
+    return hash;
+}
+
+QHash<QString, QString> Entity::getPropertyLabels() {
+    QHash<QString, QString> hash = QHash<QString, QString>();
+    hash.insert("id","ID");
+    return hash;
+}
+
 QVariant Entity::getProperty(const QString &name) const {
     if (!name.isEmpty()) {
         return QObject::property(name.toLatin1().constData());
diff --git a/src/entity.h b/src/entity.h
index 2c79b01..62b2fdb 100644
--- a/src/entity.h
+++ b/src/entity.h
@@ -82,6 +82,8 @@ class Entity : public QObject {
     virtual bool isInheritanceCascaded() const;
     //return value must be the exact name defined in Q_PROPERTY
     virtual QString getPrimaryKey() const;
+    virtual QHash<QString, QVariant> getProperties();
+    virtual QHash<QString, QString> getPropertyLabels();
 
     QVariant getProperty(const QString &name) const;
     bool setProperty(const QString &name, const QVariant &value);
