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() void DatabasePrivate::createChangeLogs()
{ {
// currentModel.model("change_log") // 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) foreach (QString s, diff)
db.exec(s); db.exec(s);
@ -364,7 +366,6 @@ void DatabasePrivate::createChangeLogs()
Database::Database(QObject *parent) Database::Database(QObject *parent)
: QObject(parent), d_ptr(new DatabasePrivate(this)) : QObject(parent), d_ptr(new DatabasePrivate(this))
{ {
// _d = new QSharedDataPointer<DatabasePrivate>(new DatabasePrivate(this));
DatabasePrivate::lastId++; DatabasePrivate::lastId++;
} }
@ -372,7 +373,6 @@ Database::Database(const Database &other)
: QObject(other.parent()), d_ptr(new DatabasePrivate(this)) : QObject(other.parent()), d_ptr(new DatabasePrivate(this))
{ {
DatabasePrivate::lastId++; DatabasePrivate::lastId++;
// _d = other._d;
setDriver(other.driver()); setDriver(other.driver());
setHostName(other.hostName()); setHostName(other.hostName());
@ -387,7 +387,7 @@ Database::Database(const QSqlDatabase &other)
//TODO: make a polish here //TODO: make a polish here
DatabasePrivate::lastId++; DatabasePrivate::lastId++;
// setDriver(other.driver()); setDriver(other.driverName());
setHostName(other.hostName()); setHostName(other.hostName());
setPort(other.port()); setPort(other.port());
setDatabaseName(other.databaseName()); setDatabaseName(other.databaseName());
@ -396,6 +396,12 @@ Database::Database(const QSqlDatabase &other)
qRegisterMetaType<ChangeLogTable*>(); qRegisterMetaType<ChangeLogTable*>();
} }
Database::Database(Database &&other)
{
d_ptr = other.d_ptr;
other.d_ptr = nullptr;
}
Database::~Database() Database::~Database()
{ {
Q_D(Database); Q_D(Database);

View File

@ -30,7 +30,7 @@
NUT_BEGIN_NAMESPACE NUT_BEGIN_NAMESPACE
class ChangeLogTable; class ChangeLogTable;
class NUT_EXPORT DatabasePrivate //: public QSharedData class NUT_EXPORT DatabasePrivate
{ {
Database *q_ptr; Database *q_ptr;
Q_DECLARE_PUBLIC(Database) Q_DECLARE_PUBLIC(Database)