join works on shared pointer mode
This commit is contained in:
parent
04bfecd66e
commit
3b39018985
|
|
@ -87,9 +87,9 @@ public: \
|
||||||
NUT_DECLARE_FIELD(keytype, name##Id, read##Id, write##Id) \
|
NUT_DECLARE_FIELD(keytype, name##Id, read##Id, write##Id) \
|
||||||
NUT_INFO(__nut_FOREIGN_KEY, name, type) \
|
NUT_INFO(__nut_FOREIGN_KEY, name, type) \
|
||||||
Nut::Row<type> m_##name; \
|
Nut::Row<type> m_##name; \
|
||||||
public: \
|
public slots: \
|
||||||
Nut::Row<type> read() const { return m_##name ; } \
|
Nut::Row<type> read() const { return m_##name ; } \
|
||||||
void write(Nut::Row<type> name){ \
|
Q_INVOKABLE void write(Nut::Row<type> name){ \
|
||||||
m_##name = name; \
|
m_##name = name; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
15
src/query.h
15
src/query.h
|
|
@ -317,9 +317,20 @@ Q_OUTOFLINE_TEMPLATE RowList<T> Query<T>::toList(int count)
|
||||||
|
|
||||||
for (int i = 0; i < data.masters.count(); ++i) {
|
for (int i = 0; i < data.masters.count(); ++i) {
|
||||||
int master = data.masters[i];
|
int master = data.masters[i];
|
||||||
table->setProperty(data.masterFields[i].toLocal8Bit().data(),
|
#ifdef NUT_SHARED_POINTER
|
||||||
|
QString mName = QString("set%1").arg(levels[master].lastRow->metaObject()->className());
|
||||||
|
QString type = QString("Nut::Row<%1>").arg(levels[master].lastRow->metaObject()->className());
|
||||||
|
bool ok = table->metaObject()->invokeMethod(table,
|
||||||
|
mName.toLocal8Bit().data(),
|
||||||
|
QGenericArgument(type.toLatin1().data(), levels[master].lastRow));
|
||||||
|
#else
|
||||||
|
bool ok = table->setProperty(data.masterFields[i].toLocal8Bit().data(),
|
||||||
QVariant::fromValue(levels[master].lastRow));
|
QVariant::fromValue(levels[master].lastRow));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
if (!ok)
|
||||||
|
qWarning("Unable to set property %s::%s",
|
||||||
|
table->metaObject()->className(), data.masterFields[i].toLocal8Bit().data());
|
||||||
table->setParentTableSet(
|
table->setParentTableSet(
|
||||||
levels[master].lastRow->childTableSet(
|
levels[master].lastRow->childTableSet(
|
||||||
data.table->className()));
|
data.table->className()));
|
||||||
|
|
@ -330,7 +341,7 @@ Q_OUTOFLINE_TEMPLATE RowList<T> Query<T>::toList(int count)
|
||||||
table->clear();
|
table->clear();
|
||||||
|
|
||||||
//set last created row
|
//set last created row
|
||||||
data.lastRow = table;
|
data.lastRow = /*QSharedPointer<Table>*/(table);
|
||||||
} //while
|
} //while
|
||||||
} // while
|
} // while
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue