#include "databasetable.h" #include "logger.h" #include namespace serversdk { DatabaseTable::DatabaseTable(QObject *parent) : QObject(parent) { } /** Creates universal variant structure to hold key / value pairs */ QVariantMap DatabaseTable::toVariantMap() { QVariantMap variantMap; const QMetaObject *metaObj = this->metaObject(); qDebug() << "properties: "; for (int i = metaObj->propertyOffset(); i < metaObj->propertyCount(); ++i) { QMetaProperty prop = metaObj->property(i); // Skip non USER so -> ( Q_PROPERTY( ...... USER false ) only if (!prop.isUser()) continue; // Get key -> value pairs QString name = prop.name(); QVariant::Type type = prop.type(); QVariant value(type); value.setValue(prop.read(this)); variantMap.insert(name, value); } return variantMap; } QString DatabaseTable::createTableSQL() const { QString sql = QString("CREATE TABLE %1").arg(this->metaObject()->className()); QVariantMap variantMap; const QMetaObject *metaObj = this->metaObject(); qDebug() << "properties: "; for (int i = metaObj->propertyOffset(); i < metaObj->propertyCount(); ++i) { QMetaProperty prop = metaObj->property(i); // Skip non USER so -> ( Q_PROPERTY( ...... USER false ) only if (!prop.isUser()) continue; QString name = prop.name(); } } } // namespace serversdk