From 070254bd021aabfcd2187ae8e331faf369530aaf Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Thu, 6 Jun 2019 15:32:02 +0430 Subject: [PATCH] continue --- src/table.cpp | 21 ++++++++++++--------- test/tst_basic/tst_basic.cpp | 4 ++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/table.cpp b/src/table.cpp index 8f43d19..3d75143 100644 --- a/src/table.cpp +++ b/src/table.cpp @@ -86,15 +86,15 @@ QVariant Table::primaryValue() const void Table::propertyChanged(const QString &propName) { Q_D(Table); -// if (!d->model) -// d->model = TableModel::findByClassName(metaObject()->className()); + if (!d->model) + d->model = TableModel::findByClassName(metaObject()->className()); -// if (!d->model) -// qFatal ("model for class '%s' not found", qPrintable(metaObject()->className())); + if (!d->model) + qFatal ("model for class '%s' not found", qPrintable(metaObject()->className())); -// foreach (FieldModel *f, d->model->fields()) -// if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement) -// return; + foreach (FieldModel *f, d->model->fields()) + if(f->isPrimaryKey && propName == f->name && f->isAutoIncrement) + return; d->changedProperties.insert(propName); if (d->status == FeatchedFromDB) @@ -122,6 +122,9 @@ bool Table::setParentTable(Table *master) QString masterClassName = master->metaObject()->className(); + if (!d->model) + d->model = TableModel::findByClassName(metaObject()->className()); + foreach (RelationModel *r, d->model->foregionKeys()) if(r->masterClassName == masterClassName) { @@ -164,7 +167,7 @@ int Table::save(Database *db) QSqlQuery q = db->exec(db->sqlGenertor()->saveRecord(this, db->tableName(metaObject()->className()))); - auto model = db->model().tableByName(metaObject()->className()); + auto model = db->model().tableByClassName(metaObject()->className()); if(status() == Added && model->isPrimaryKeyAutoIncrement()) setProperty(model->primaryKey().toLatin1().data(), q.lastInsertId()); @@ -190,7 +193,7 @@ void Table::setStatus(const Status &status) TablePrivate::TablePrivate(Table *parent) : q_ptr(parent), - status(Table::NewCreated), parentTableSet(nullptr) + model(nullptr), status(Table::NewCreated), parentTableSet(nullptr) { } diff --git a/test/tst_basic/tst_basic.cpp b/test/tst_basic/tst_basic.cpp index 29f7a97..df3c568 100644 --- a/test/tst_basic/tst_basic.cpp +++ b/test/tst_basic/tst_basic.cpp @@ -274,8 +274,8 @@ void BasicTest::emptyDatabase() void BasicTest::cleanupTestCase() { - post->deleteLater(); - user->deleteLater(); +// post->deleteLater(); +// user->deleteLater(); //release models before exiting // qDeleteAll(TableModel::allModels());