move constructor for database

This commit is contained in:
Hamed Masafi 2020-08-13 20:37:32 +04:30
parent ca9fa939a4
commit d3ac69d499
2 changed files with 11 additions and 5 deletions

View File

@ -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<DatabasePrivate>(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<ChangeLogTable*>();
}
Database::Database(Database &&other)
{
d_ptr = other.d_ptr;
other.d_ptr = nullptr;
}
Database::~Database()
{
Q_D(Database);

View File

@ -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)