server-sdk/src/serversdk/databasetable.cpp

62 lines
1.4 KiB
C++

#include "databasetable.h"
#include "logger.h"
#include <QMetaProperty>
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