forked from ondra/server-sdk
62 lines
1.4 KiB
C++
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
|