From d3ac69d499b7f4880e1230442383e69e27fe8095 Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Thu, 13 Aug 2020 20:37:32 +0430 Subject: [PATCH] move constructor for database --- src/nut/core/database.cpp | 14 ++++++++++---- src/nut/core/database_p.h | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/nut/core/database.cpp b/src/nut/core/database.cpp index 9eced3d..f29ff5e 100644 --- a/src/nut/core/database.cpp +++ b/src/nut/core/database.cpp @@ -350,7 +350,9 @@ bool DatabasePrivate::putModelToDatabase() void DatabasePrivate::createChangeLogs() { // currentModel.model("change_log") - QStringList diff = sqlGenerator->diff(nullptr, currentModel.tableByName(QStringLiteral("__change_log"))); + QStringList diff = sqlGenerator->diff(nullptr, + currentModel.tableByName( + QStringLiteral("__change_log"))); foreach (QString s, diff) db.exec(s); @@ -364,7 +366,6 @@ void DatabasePrivate::createChangeLogs() Database::Database(QObject *parent) : QObject(parent), d_ptr(new DatabasePrivate(this)) { -// _d = new QSharedDataPointer(new DatabasePrivate(this)); DatabasePrivate::lastId++; } @@ -372,7 +373,6 @@ Database::Database(const Database &other) : QObject(other.parent()), d_ptr(new DatabasePrivate(this)) { DatabasePrivate::lastId++; -// _d = other._d; setDriver(other.driver()); setHostName(other.hostName()); @@ -387,7 +387,7 @@ Database::Database(const QSqlDatabase &other) //TODO: make a polish here DatabasePrivate::lastId++; -// setDriver(other.driver()); + setDriver(other.driverName()); setHostName(other.hostName()); setPort(other.port()); setDatabaseName(other.databaseName()); @@ -396,6 +396,12 @@ Database::Database(const QSqlDatabase &other) qRegisterMetaType(); } +Database::Database(Database &&other) +{ + d_ptr = other.d_ptr; + other.d_ptr = nullptr; +} + Database::~Database() { Q_D(Database); diff --git a/src/nut/core/database_p.h b/src/nut/core/database_p.h index c401b6a..394825b 100644 --- a/src/nut/core/database_p.h +++ b/src/nut/core/database_p.h @@ -30,7 +30,7 @@ NUT_BEGIN_NAMESPACE class ChangeLogTable; -class NUT_EXPORT DatabasePrivate //: public QSharedData +class NUT_EXPORT DatabasePrivate { Database *q_ptr; Q_DECLARE_PUBLIC(Database)