diff --git a/src/database.cpp b/src/database.cpp index 6d61c30..d9d6251 100644 --- a/src/database.cpp +++ b/src/database.cpp @@ -53,7 +53,7 @@ qulonglong DatabasePrivate::lastId = 0; QMap DatabasePrivate::allTableMaps; DatabasePrivate::DatabasePrivate(Database *parent) : q_ptr(parent), - port(0), sqlGenertor(0), changeLogs(0), + port(0), sqlGenertor(nullptr), changeLogs(nullptr), isDatabaseNew(false) { } @@ -74,7 +74,7 @@ bool DatabasePrivate::open(bool update) db.setUserName(userName); db.setPassword(password); - if (driver.toLower().startsWith("qsqlite") + if (driver.startsWith("qsqlite", Qt::CaseInsensitive) && !QFile::exists(databaseName)) { //Force to execute update database isDatabaseNew = true; @@ -108,10 +108,10 @@ bool DatabasePrivate::open(bool update) isDatabaseNew = true; return open(update); - } else { - qWarning("Unknown error detecting change logs, %s", - db.lastError().text().toLatin1().data()); } + qWarning("Unknown error detecting change logs, %s", + db.lastError().text().toLatin1().data()); + } return false; } @@ -335,7 +335,7 @@ bool DatabasePrivate::putModelToDatabase() DatabaseModel current = currentModel; /*current.remove(__CHANGE_LOG_TABLE_NAME)*/; - ChangeLogTable *changeLog = new ChangeLogTable(); + auto *changeLog = new ChangeLogTable(); changeLog->setData(QJsonDocument(current.toJson()).toJson()); changeLog->setVersion(current.version()); changeLogs->append(changeLog); @@ -358,7 +358,7 @@ bool DatabasePrivate::putModelToDatabase() void DatabasePrivate::createChangeLogs() { // currentModel.model("change_log") - QString diff = sqlGenertor->diff(0, currentModel.tableByName("__change_log")); + QString diff = sqlGenertor->diff(nullptr, currentModel.tableByName("__change_log")); db.exec(diff); } @@ -407,8 +407,7 @@ Database::~Database() if (d->db.isOpen()) d->db.close(); - if (d_ptr) - delete d_ptr; + delete d_ptr; } QString Database::databaseName() const @@ -574,9 +573,9 @@ bool Database::open(bool updateDatabase) qFatal("Sql generator for driver %s not found", driver().toLatin1().constData()); return false; - } else { - return d->open(updateDatabase); } + + return d->open(updateDatabase); } void Database::close() @@ -585,7 +584,7 @@ void Database::close() d->db.close(); } -QSqlQuery Database::exec(QString sql) +QSqlQuery Database::exec(const QString &sql) { Q_D(Database); diff --git a/src/database.h b/src/database.h index d85cc29..56692d3 100644 --- a/src/database.h +++ b/src/database.h @@ -52,7 +52,7 @@ public: bool open(bool updateDatabase); void close(); - QSqlQuery exec(QString sql); + QSqlQuery exec(const QString& sql); int saveChanges(bool cleanUp = false); void cleanUp(); diff --git a/src/databasemodel.cpp b/src/databasemodel.cpp index 8957a2a..084d186 100644 --- a/src/databasemodel.cpp +++ b/src/databasemodel.cpp @@ -57,10 +57,6 @@ DatabaseModel::DatabaseModel(const QJsonObject &json) : } } -DatabaseModel::~DatabaseModel() -{ -} - TableModel *DatabaseModel::tableByName(QString tableName) const { for(int i = 0; i < size(); i++){ @@ -72,7 +68,7 @@ TableModel *DatabaseModel::tableByName(QString tableName) const // qWarning("Table with name '%s' not found in model", // qUtf8Printable(tableName)); - return 0; + return nullptr; } TableModel *DatabaseModel::tableByClassName(QString className) const @@ -108,19 +104,19 @@ bool DatabaseModel::operator ==(const DatabaseModel &other) const return true; } -DatabaseModel DatabaseModel::operator +(const DatabaseModel &other) -{ - DatabaseModel model; - DatabaseModel::const_iterator i; +//DatabaseModel DatabaseModel::operator +(const DatabaseModel &other) +//{ +// DatabaseModel model; +// DatabaseModel::const_iterator i; - for (i = constBegin(); i != constEnd(); ++i) - model.append(*i); +// for (i = constBegin(); i != constEnd(); ++i) +// model.append(*i); - for (i = other.constBegin(); i != other.constEnd(); ++i) - model.append(*i); +// for (i = other.constBegin(); i != other.constEnd(); ++i) +// model.append(*i); - return model; -} +// return model; +//} QJsonObject DatabaseModel::toJson() const { @@ -148,13 +144,13 @@ RelationModel *DatabaseModel::relationByClassNames(const QString &masterClassNam TableModel *childTable = tableByClassName(childClassName); if(!childTable) - return 0; + return nullptr; foreach (RelationModel *rel, childTable->foregionKeys()) if(rel->masterClassName == masterClassName) return rel; - return 0; + return nullptr; } RelationModel *DatabaseModel::relationByTableNames(const QString &masterTableName, const QString &childTableName) @@ -162,13 +158,13 @@ RelationModel *DatabaseModel::relationByTableNames(const QString &masterTableNam TableModel *childTable = tableByName(childTableName); if(!childTable) - return 0; + return nullptr; foreach (RelationModel *rel, childTable->foregionKeys()) if(rel->masterTable->name() == masterTableName) return rel; - return 0; + return nullptr; } DatabaseModel DatabaseModel::fromJson(QJsonObject &json) @@ -236,7 +232,21 @@ void DatabaseModel::deleteAllModels() // qDeleteAll(i.value()); } // qDeleteAll(_models.values()); - _models.clear(); + _models.clear(); +} + +DatabaseModel operator +(const DatabaseModel &l, const DatabaseModel &r) +{ + DatabaseModel model; + DatabaseModel::const_iterator i; + + for (i = r.constBegin(); i != r.constEnd(); ++i) + model.append(*i); + + for (i = l.constBegin(); i != l.constEnd(); ++i) + model.append(*i); + + return model; } NUT_END_NAMESPACE diff --git a/src/databasemodel.h b/src/databasemodel.h index 6c73a3a..9abab8e 100644 --- a/src/databasemodel.h +++ b/src/databasemodel.h @@ -43,7 +43,7 @@ public: DatabaseModel(const QString &name = QString()); DatabaseModel(const DatabaseModel &other); DatabaseModel(const QJsonObject &json); - ~DatabaseModel(); + ~DatabaseModel() = default; TableModel *tableByName(QString tableName) const; TableModel *tableByClassName(QString className) const; @@ -54,7 +54,7 @@ public: const QString &childClassName); bool operator==(const DatabaseModel &other) const; - DatabaseModel operator +(const DatabaseModel &other); +// DatabaseModel operator +(const DatabaseModel &other); Q_DECL_DEPRECATED static DatabaseModel fromJson(QJsonObject &json); @@ -73,6 +73,8 @@ public: static void deleteAllModels(); }; +DatabaseModel operator +(const DatabaseModel &l, const DatabaseModel &r); + NUT_END_NAMESPACE #endif // DATABASEMODEL_H diff --git a/src/defines.h b/src/defines.h index 90318e6..6c06cbe 100644 --- a/src/defines.h +++ b/src/defines.h @@ -172,7 +172,7 @@ public: \ #define NUT_IMPLEMENT_CHILD_TABLE(class, type, n) \ type *class::n##Table(){ \ - static type *f = new type(); \ + static auto f = new type(); \ return f; \ } \ NUT_WRAP_NAMESPACE(TableSet) *class::n(){ \ diff --git a/src/generators/mysqlgenerator.cpp b/src/generators/mysqlgenerator.cpp index f53cc3f..978dcfa 100644 --- a/src/generators/mysqlgenerator.cpp +++ b/src/generators/mysqlgenerator.cpp @@ -36,50 +36,50 @@ QString MySqlGenerator::fieldType(FieldModel *field) QString dbType; switch (field->type) { - case QVariant::Bool: + case QMetaType::Bool: dbType = "BOOLEAN"; break; - case QVariant::ByteArray: + case QMetaType::QByteArray: dbType = "BLOB"; break; - case QVariant::DateTime: + case QMetaType::QDateTime: dbType = "DATETIME"; break; - case QVariant::Date: + case QMetaType::QDate: dbType = "DATE"; break; - case QVariant::Time: + case QMetaType::QTime: dbType = "TIME"; break; - case QVariant::Double: + case QMetaType::Double: dbType = "REAL"; break; - case QVariant::Int: + case QMetaType::Int: dbType = "INT(4)"; if(field->isAutoIncrement) dbType += " AUTO_INCREMENT"; break; - case QVariant::String: + case QMetaType::QString: if(field->length) dbType = QString("VARCHAR(%1)").arg(field->length); else dbType = "TEXT"; break; - case QVariant::Point: - case QVariant::PointF: + case QMetaType::QPoint: + case QMetaType::QPointF: dbType = "POINT"; break; - case QVariant::Polygon: - case QVariant::PolygonF: + case QMetaType::QPolygon: + case QMetaType::QPolygonF: dbType = "POLYGON"; break; - case QVariant::Uuid: + case QMetaType::QUuid: dbType = "VARCHAR(64)"; break; @@ -100,12 +100,12 @@ QString MySqlGenerator::fieldType(FieldModel *field) QString MySqlGenerator::escapeValue(const QVariant &v) const { switch (v.type()) { - case QVariant::Point: { + case QMetaType::QPoint: { QPoint pt = v.toPoint(); return QString("GeomFromText('POINT(%1 %2)',0)").arg(pt.x()).arg(pt.y()); } - case QVariant::PointF: { + case QMetaType::QPointF: { QPointF pt = v.toPointF(); return QString("GeomFromText('POINT(%1 %2)',0)").arg(pt.x()).arg(pt.y()); } diff --git a/src/generators/sqlgeneratorbase.cpp b/src/generators/sqlgeneratorbase.cpp index 0b34ab9..0ef93f7 100644 --- a/src/generators/sqlgeneratorbase.cpp +++ b/src/generators/sqlgeneratorbase.cpp @@ -61,10 +61,6 @@ SqlGeneratorBase::SqlGeneratorBase(Database *parent) _serializer = new SqlSerializer; } -SqlGeneratorBase::~SqlGeneratorBase() -{ -} - QString SqlGeneratorBase::masterDatabaseName(QString databaseName) { Q_UNUSED(databaseName); @@ -107,7 +103,7 @@ QString SqlGeneratorBase::recordsPhrase(TableModel *table) foreach (FieldModel *f, table->fields()) { if (!ret.isEmpty()) ret.append(", "); - ret.append(QString("%1.%2 AS [%1.%2]").arg(table->name()).arg(f->name)); + ret.append(QString("%1.%2 AS [%1.%2]").arg(table->name(), f->name)); } return ret; } @@ -123,12 +119,11 @@ QString SqlGeneratorBase::fieldDeclare(FieldModel *field) QString SqlGeneratorBase::relationDeclare(const RelationModel *relation) { return QString("FOREIGN KEY (FK_%1) REFERENCES %2(%1)") - .arg(relation->localColumn) - .arg(relation->slaveTable->name()); + .arg(relation->localColumn, relation->slaveTable->name()); } -QStringList SqlGeneratorBase::diff(DatabaseModel lastModel, - DatabaseModel newModel) +QStringList SqlGeneratorBase::diff(const DatabaseModel &lastModel, + const DatabaseModel &newModel) { QStringList ret; @@ -226,8 +221,7 @@ QString SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) QString sql; if (oldTable) { sql = QString("ALTER TABLE %1 \n%2") - .arg(newTable->name()) - .arg(columnSql.join(",\n")); + .arg(newTable->name(), columnSql.join(",\n")); } else { if (!newTable->primaryKey().isNull()) { QString pkCon = primaryKeyConstraint(newTable); @@ -236,8 +230,7 @@ QString SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) } sql = QString("CREATE TABLE %1 \n(%2)") - .arg(newTable->name()) - .arg(columnSql.join(",\n")); + .arg(newTable->name(), columnSql.join(",\n")); } return sql; } @@ -273,9 +266,8 @@ QString SqlGeneratorBase::diffRelation(TableModel *oldTable, TableModel *newTabl if (columnSql.count()) return "ALTER TABLE " + newTable->name() + "\n" + columnSql.join(",\n"); - else - return QString(); + return QString(); } QString SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel) @@ -295,23 +287,21 @@ QString SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel) if (!oldRel) return QString("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) " "REFERENCES %2(%3)") - .arg(newRel->localColumn) - .arg(newRel->masterTable->name()) - .arg(newRel->foreignColumn); + .arg(newRel->localColumn, newRel->masterTable->name(), + newRel->foreignColumn); if (!newRel) return QString("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) " "REFERENCES %2(%3)") - .arg(oldRel->localColumn) - .arg(oldRel->masterTable->name()) - .arg(oldRel->foreignColumn); + .arg(oldRel->localColumn, oldRel->masterTable->name(), + oldRel->foreignColumn); // if (*oldRel == *newRel) - return QString(); + return QString(); } QString SqlGeneratorBase::join(const QString &mainTable, - const QList list, + const QList &list, QStringList *order) { QString ret = mainTable; @@ -319,19 +309,19 @@ QString SqlGeneratorBase::join(const QString &mainTable, for (i = list.begin(); i != list.end(); ++i) { if ((*i)->masterTable->name() == mainTable) { ret.append(QString(" INNER JOIN %3 ON %1.%2 = %3.%4") - .arg((*i)->masterTable->name()) - .arg((*i)->masterTable->primaryKey()) - .arg((*i)->slaveTable->name()) - .arg((*i)->localColumn)); + .arg((*i)->masterTable->name(), + (*i)->masterTable->primaryKey(), + (*i)->slaveTable->name(), + (*i)->localColumn)); if (order != Q_NULLPTR) order->append((*i)->slaveTable->name() + "." + (*i)->slaveTable->primaryKey()); } else { ret.append(QString(" INNER JOIN %3 ON %1.%2 = %3.%4") - .arg(mainTable) - .arg((*i)->localColumn) - .arg((*i)->masterTable->name()) - .arg((*i)->masterTable->primaryKey())); + .arg(mainTable, + (*i)->localColumn, + (*i)->masterTable->name(), + (*i)->masterTable->primaryKey())); if (order != Q_NULLPTR) order->append((*i)->masterTable->name() + "." + (*i)->masterTable->primaryKey()); @@ -369,10 +359,8 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) if (rel) { //mainTable is master of table ret.append(QString(" INNER JOIN [%1] ON %4.%2 = %1.%3") - .arg(table) - .arg(rel->masterTable->primaryKey()) - .arg(rel->localColumn) - .arg(mainTable)); + .arg(table, rel->masterTable->primaryKey(), + rel->localColumn, mainTable)); if (order != Q_NULLPTR) order->append(mainTable + "." + rel->masterTable->primaryKey()); @@ -382,10 +370,8 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) if (rel) { // table is master of mainTable ret.append(QString(" INNER JOIN [%1] ON %4.%2 = %1.%3") - .arg(table) - .arg(rel->localColumn) - .arg(rel->masterTable->primaryKey()) - .arg(mainTable)); + .arg(table, rel->localColumn, + rel->masterTable->primaryKey(), mainTable)); if (order != Q_NULLPTR) order->append(mainTable + "." + rel->localColumn); @@ -421,9 +407,7 @@ QString SqlGeneratorBase::insertRecord(Table *t, QString tableName) changedPropertiesText.append(s); } sql = QString("INSERT INTO %1 (%2) VALUES (%3)") - .arg(tableName) - .arg(changedPropertiesText) - .arg(values.join(", ")); + .arg(tableName, changedPropertiesText, values.join(", ")); removeTableNames(sql); @@ -441,10 +425,8 @@ QString SqlGeneratorBase::updateRecord(Table *t, QString tableName) values.append(f + "='" + t->property(f.toLatin1().data()).toString() + "'"); sql = QString("UPDATE %1 SET %2 WHERE %3=%4") - .arg(tableName) - .arg(values.join(", ")) - .arg(key) - .arg(t->primaryValue().toString()); + .arg(tableName, values.join(", "), + key, t->primaryValue().toString()); removeTableNames(sql); @@ -454,9 +436,7 @@ QString SqlGeneratorBase::updateRecord(Table *t, QString tableName) QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName) { QString sql = QString("DELETE FROM %1 WHERE %2='%3'") - .arg(tableName) - .arg(t->primaryKey()) - .arg(t->primaryValue().toString()); + .arg(tableName, t->primaryKey(), t->primaryValue().toString()); replaceTableNames(sql); return sql; } @@ -495,10 +475,8 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName, if (rel) { QString pk = _database->model().tableByName(tableName)->primaryKey(); tableNameText = QString("%1 INNER JOIN %2 ON (%1.%3 = %2.%4)") - .arg(tableName) - .arg(joinTableName) - .arg(pk) - .arg(rel->localColumn); + .arg(tableName, joinTableName, + pk, rel->localColumn); orderBy = tableName + "." + pk; } else { qWarning("Relation between table %s and class %s (%s) not exists!", @@ -512,7 +490,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName, return tableNameText; } -QString SqlGeneratorBase::deleteRecords(QString tableName, QString where) +QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString &where) { QString sql = QString(); if (where.isEmpty() || where.isNull()) @@ -529,7 +507,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, const PhraseList &fields, const ConditionalPhrase &where, const PhraseList &order, - const QList joins, + const QList &joins, const int skip, const int take) { @@ -667,9 +645,7 @@ QString SqlGeneratorBase::insertCommand(const QString &tableName, const Assignme values.append(escapeValue(d->operand)); } return QString("INSERT INTO %1 (%2) VALUES (%3);") - .arg(tableName) - .arg(fieldNames) - .arg(values); + .arg(tableName, fieldNames, values); } //QString SqlGeneratorBase::selectCommand(SqlGeneratorBase::AgregateType t, @@ -962,8 +938,7 @@ void SqlGeneratorBase::appendSkipTake(QString &sql, int skip, int take) QString SqlGeneratorBase::primaryKeyConstraint(const TableModel *table) const { return QString("CONSTRAINT pk_%1 PRIMARY KEY (%2)") - .arg(table->name()) - .arg(table->primaryKey()); + .arg(table->name(), table->primaryKey()); } QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const @@ -987,22 +962,22 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const case PhraseData::WithVariant: if (op == PhraseData::AddYears) ret = QString("DATEADD(year, %1, %2)") - .arg(d->operand.toString()).arg(createConditionalPhrase(d->left)); + .arg(d->operand.toString(), createConditionalPhrase(d->left)); else if (op == PhraseData::AddMonths) ret = QString("DATEADD(month, %1, %2)") - .arg(d->operand.toString()).arg(createConditionalPhrase(d->left)); + .arg(d->operand.toString(), createConditionalPhrase(d->left)); else if (op == PhraseData::AddDays) ret = QString("DATEADD(day, %1, %2)") - .arg(d->operand.toString()).arg(createConditionalPhrase(d->left)); + .arg(d->operand.toString(), createConditionalPhrase(d->left)); else if (op == PhraseData::AddHours) ret = QString("DATEADD(hour, %1, %2)") - .arg(d->operand.toString()).arg(createConditionalPhrase(d->left)); + .arg(d->operand.toString(), createConditionalPhrase(d->left)); else if (op == PhraseData::AddMinutes) ret = QString("DATEADD(minute, %1, %2)") - .arg(d->operand.toString()).arg(createConditionalPhrase(d->left)); + .arg(d->operand.toString(), createConditionalPhrase(d->left)); else if (op == PhraseData::AddSeconds) ret = QString("DATEADD(second, %1, %2)") - .arg(d->operand.toString()).arg(createConditionalPhrase(d->left)); + .arg(d->operand.toString(), createConditionalPhrase(d->left)); else ret = createConditionalPhrase(d->left) + " " + operatorString(op) + " " + escapeValue(d->operand); diff --git a/src/generators/sqlgeneratorbase_p.h b/src/generators/sqlgeneratorbase_p.h index 907d678..4819a7e 100644 --- a/src/generators/sqlgeneratorbase_p.h +++ b/src/generators/sqlgeneratorbase_p.h @@ -62,7 +62,7 @@ public: }; explicit SqlGeneratorBase(Database *parent); - virtual ~SqlGeneratorBase(); + virtual ~SqlGeneratorBase() = default; virtual QString masterDatabaseName(QString databaseName); @@ -72,14 +72,14 @@ public: virtual QString fieldDeclare(FieldModel *field); virtual QString relationDeclare(const RelationModel *relation); - virtual QStringList diff(DatabaseModel lastModel, DatabaseModel newModel); + virtual QStringList diff(const DatabaseModel &lastModel, const DatabaseModel &newModel); virtual QString diff(FieldModel *oldField, FieldModel *newField); virtual QString diff(TableModel *oldTable, TableModel *newTable); virtual QString diffRelation(TableModel *oldTable, TableModel *newTable); virtual QString diff(RelationModel *oldRel, RelationModel *newRel); virtual QString join(const QString &mainTable, - const QList list, + const QList &list, QStringList *order = Q_NULLPTR); virtual QString join(const QStringList &list, QStringList *order = Q_NULLPTR); @@ -90,13 +90,13 @@ public: virtual QString insertRecord(Table *t, QString tableName); virtual QString updateRecord(Table *t, QString tableName); virtual QString deleteRecord(Table *t, QString tableName); - virtual QString deleteRecords(QString tableName, QString where); + virtual QString deleteRecords(const QString &tableName, const QString &where); virtual QString selectCommand(const QString &tableName, const PhraseList &fields, const ConditionalPhrase &where, const PhraseList &order, - const QList joins, + const QList &joins, const int skip = -1, const int take = -1); diff --git a/src/generators/sqlitegenerator.cpp b/src/generators/sqlitegenerator.cpp index f69412f..0436882 100644 --- a/src/generators/sqlitegenerator.cpp +++ b/src/generators/sqlitegenerator.cpp @@ -31,8 +31,6 @@ SqliteGenerator::SqliteGenerator(Database *parent) : SqlGeneratorBase(parent) QString SqliteGenerator::fieldType(FieldModel *field) { - QString ret = field->name + " "; - QString dbType; if (field->isPrimaryKey) { QString primaryKeyPerfix = " PRIMARY KEY"; if (field->isAutoIncrement) diff --git a/src/phrase.cpp b/src/phrase.cpp index 84f4125..61d71d9 100644 --- a/src/phrase.cpp +++ b/src/phrase.cpp @@ -27,18 +27,18 @@ NUT_BEGIN_NAMESPACE PhraseData::PhraseData() : className(""), fieldName(""), type(Field), operatorCond(NotAssign), - left(0), right(0), operand(QVariant::Invalid), isNot(false), parents(1) + left(nullptr), right(nullptr), operand(QVariant::Invalid), isNot(false), parents(1) { } PhraseData::PhraseData(const char *className, const char *fieldName) : className(className), fieldName(fieldName), type(Field), operatorCond(NotAssign), - left(0), right(0), operand(QVariant::Invalid), isNot(false), parents(1) + left(nullptr), right(nullptr), operand(QVariant::Invalid), isNot(false), parents(1) { } PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o) - : className(0), fieldName(0), - type(WithoutOperand), operatorCond(o), left(l), right(0), + : className(nullptr), fieldName(nullptr), + type(WithoutOperand), operatorCond(o), left(l), right(nullptr), isNot(false), parents(1) { l->parents++; @@ -46,7 +46,7 @@ PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o) PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o, PhraseData *r) - : className(0), fieldName(0), + : className(nullptr), fieldName(nullptr), type(WithOther), operatorCond(o), left(l), right(r), isNot(false), parents(1) @@ -56,9 +56,9 @@ PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o, } PhraseData::PhraseData(PhraseData *l, PhraseData::Condition o, QVariant r) - : className(0), fieldName(0), + : className(nullptr), fieldName(nullptr), type(WithVariant), operatorCond(o), left(l), - right(0), operand(r), isNot(false), parents(1) + right(nullptr), operand(r), isNot(false), parents(1) { } PhraseData *PhraseData::operator =(PhraseData *other) @@ -75,11 +75,7 @@ PhraseData &PhraseData::operator =(PhraseData &other) QString PhraseData::toString() const { - return QString("[%1].%2").arg(className).arg(fieldName); -} - -PhraseData::~PhraseData() -{ + return QString("[%1].%2").arg(className, fieldName); } void PhraseData::cleanUp() @@ -238,10 +234,6 @@ PhraseList::PhraseList(PhraseList *left, const AbstractFieldPhrase *right) incAllDataParents(); } -PhraseList::~PhraseList() -{ -} - PhraseList &PhraseList::operator =(const PhraseList &other) { data.append(const_cast(other).data); @@ -310,11 +302,6 @@ AssignmentPhraseList AssignmentPhrase::operator &(const AssignmentPhrase &other) return AssignmentPhraseList(this, &other); } -AssignmentPhraseList::AssignmentPhraseList() -{ - -} - AssignmentPhraseList::AssignmentPhraseList(const AssignmentPhrase &l) { data.append(l.data); @@ -366,7 +353,7 @@ void AssignmentPhraseList::incAllDataParents() d->parents++; } -ConditionalPhrase::ConditionalPhrase() : data(0) +ConditionalPhrase::ConditionalPhrase() : data(nullptr) { } ConditionalPhrase::ConditionalPhrase(const ConditionalPhrase &other) @@ -416,7 +403,7 @@ ConditionalPhrase::ConditionalPhrase(AbstractFieldPhrase *l, ConditionalPhrase &r) { data = new PhraseData(l->data, cond, r.data); - r.data = 0; + r.data = nullptr; } ConditionalPhrase::ConditionalPhrase(ConditionalPhrase *l, @@ -424,7 +411,7 @@ ConditionalPhrase::ConditionalPhrase(ConditionalPhrase *l, const AbstractFieldPhrase &r) { data = new PhraseData(l->data, cond, r.data); - l->data = 0; + l->data = nullptr; } ConditionalPhrase::ConditionalPhrase(ConditionalPhrase *l, @@ -432,7 +419,7 @@ ConditionalPhrase::ConditionalPhrase(ConditionalPhrase *l, const QVariant &r) { data = new PhraseData(l->data, cond, r); - l->data = 0; + l->data = nullptr; } ConditionalPhrase::ConditionalPhrase(ConditionalPhrase *l, @@ -440,8 +427,8 @@ ConditionalPhrase::ConditionalPhrase(ConditionalPhrase *l, ConditionalPhrase &r) { data = new PhraseData(l->data, cond, r.data); - l->data = 0; - r.data = 0; + l->data = nullptr; + r.data = nullptr; } ConditionalPhrase::~ConditionalPhrase() @@ -549,9 +536,9 @@ PhraseDataList::PhraseDataList() : QList() PhraseDataList::PhraseDataList(const PhraseDataList &other) : QList() { - PhraseDataList &o = const_cast(other); - PhraseDataList::iterator i; - for (i = o.begin(); i != o.end(); ++i) +// auto &o = const_cast(other); + PhraseDataList::const_iterator i; + for (i = other.constBegin(); i != other.constEnd(); ++i) append(*i); } diff --git a/src/phrase.h b/src/phrase.h index 206b3e6..c35abc6 100644 --- a/src/phrase.h +++ b/src/phrase.h @@ -114,7 +114,7 @@ public: QString toString() const; - ~PhraseData(); + ~PhraseData() = default; void cleanUp(); private: @@ -135,7 +135,7 @@ class AssignmentPhraseList { public: QList data; - explicit AssignmentPhraseList(); + explicit AssignmentPhraseList() = default; AssignmentPhraseList(const AssignmentPhrase &l); AssignmentPhraseList(AssignmentPhraseList *l, const AssignmentPhrase *r); AssignmentPhraseList(AssignmentPhrase *l, const AssignmentPhrase *r); @@ -181,7 +181,7 @@ public: PhraseList(const AbstractFieldPhrase *left, const AbstractFieldPhrase &right); PhraseList(PhraseList *left, PhraseList *right); PhraseList(PhraseList *left, const AbstractFieldPhrase *right); - virtual ~PhraseList(); + virtual ~PhraseList() = default; PhraseList &operator =(const PhraseList &other); PhraseList operator |(PhraseList &other); diff --git a/src/query.cpp b/src/query.cpp index f8c79fd..4ba466c 100644 --- a/src/query.cpp +++ b/src/query.cpp @@ -23,15 +23,11 @@ NUT_BEGIN_NAMESPACE QueryPrivate::QueryPrivate(QueryBase *parent) : q_ptr(parent), - database(0), tableSet(0), skip(-1), take(-1) + database(nullptr), tableSet(nullptr), skip(-1), take(-1) { } -QueryPrivate::~QueryPrivate() -{ -} - /*! * \class Query * \brief This class hold a query. A query can be used for getting database rows, editing or deleting without row fetching. diff --git a/src/query_p.h b/src/query_p.h index f7127cc..7fe9eec 100644 --- a/src/query_p.h +++ b/src/query_p.h @@ -38,7 +38,7 @@ class QueryPrivate{ public: explicit QueryPrivate(QueryBase *parent); - ~QueryPrivate(); + ~QueryPrivate() = default; QString sql; QString className; diff --git a/src/serializableobject.cpp b/src/serializableobject.cpp index 667c57b..0a09db5 100644 --- a/src/serializableobject.cpp +++ b/src/serializableobject.cpp @@ -1,6 +1,2 @@ #include "serializableobject.h" -SerializableObject::SerializableObject() -{ - -} diff --git a/src/serializableobject.h b/src/serializableobject.h index ffc65b1..aac7a23 100644 --- a/src/serializableobject.h +++ b/src/serializableobject.h @@ -6,7 +6,7 @@ class SerializableObject { public: - SerializableObject(); + SerializableObject() = default; virtual void load(const QVariant &value) = 0; virtual QVariant save() = 0; diff --git a/src/sqlmodel.cpp b/src/sqlmodel.cpp index 9f1a870..ff40fa3 100644 --- a/src/sqlmodel.cpp +++ b/src/sqlmodel.cpp @@ -85,9 +85,4 @@ QVariant SqlModel::data(const QModelIndex &index, int role) const return QVariant(); } -SqlModelPrivate::SqlModelPrivate() -{ - -} - NUT_END_NAMESPACE diff --git a/src/sqlmodel_p.h b/src/sqlmodel_p.h index 7b68e88..f359445 100644 --- a/src/sqlmodel_p.h +++ b/src/sqlmodel_p.h @@ -13,7 +13,7 @@ class SqlModelPrivate { SqlModel *q_ptr; Q_DECLARE_PUBLIC(SqlModel) public: - explicit SqlModelPrivate(); + explicit SqlModelPrivate() = default; QString tableName; diff --git a/src/table.cpp b/src/table.cpp index 18d6dcc..f841ced 100644 --- a/src/table.cpp +++ b/src/table.cpp @@ -39,10 +39,9 @@ NUT_BEGIN_NAMESPACE * This should be fixed to v1.2 */ -Table::Table(QObject *parent) : QObject(parent), myModel(nullptr), _parentTableSet(nullptr) -{ - setStatus(NewCreated); -} +Table::Table(QObject *parent) : QObject(parent), myModel(nullptr), + _status(NewCreated), _parentTableSet(nullptr) +{ } void Table::add(TableSetBase *t) { @@ -69,7 +68,7 @@ QVariant Table::primaryValue() const return property(primaryKey().toLatin1().data()); } -void Table::propertyChanged(QString propName) +void Table::propertyChanged(const QString &propName) { if (!myModel) myModel = TableModel::findByClassName(metaObject()->className()); diff --git a/src/table.h b/src/table.h index 858a405..1f8688a 100644 --- a/src/table.h +++ b/src/table.h @@ -70,7 +70,7 @@ signals: public slots: protected: - void propertyChanged(QString propName); + void propertyChanged(const QString &propName); private: TableModel *myModel; diff --git a/src/tablemodel.cpp b/src/tablemodel.cpp index 9224744..aa5d416 100644 --- a/src/tablemodel.cpp +++ b/src/tablemodel.cpp @@ -1,4 +1,4 @@ -/************************************************************************** +/************************************************************************** ** ** This file is part of Nut project. ** https://github.com/HamedMasafi/Nut @@ -74,7 +74,7 @@ FieldModel *TableModel::field(int n) const return _fields.at(n); } -FieldModel *TableModel::field(QString name) const +FieldModel *TableModel::field(const QString &name) const { foreach (FieldModel *f, _fields) if(f->name == name) @@ -123,7 +123,7 @@ TableModel *TableModel::findByTypeId(int typeId) * @param className * @return */ -TableModel *TableModel::findByClassName(QString className) +TableModel *TableModel::findByClassName(const QString &className) { foreach (TableModel *model, _allModels){ if(model->className() == className) @@ -174,7 +174,7 @@ bool TableModel::operator !=(const TableModel &t) const // } //} -TableModel::TableModel(int typeId, QString tableName) +TableModel::TableModel(int typeId, const QString &tableName) { //TODO: check that // if (findByTypeId(typeId)) @@ -203,7 +203,7 @@ TableModel::TableModel(int typeId, QString tableName) } if(type == __nut_FIELD){ - FieldModel *f = new FieldModel; + auto *f = new FieldModel; f->name = f->displayName = name; _fields.append(f); } @@ -234,7 +234,7 @@ TableModel::TableModel(int typeId, QString tableName) } if(type == __nut_FOREGION_KEY){ - RelationModel *fk = new RelationModel; + auto *fk = new RelationModel; fk->slaveTable = this; fk->localColumn = name + "Id"; fk->localProperty = name; @@ -292,7 +292,7 @@ TableModel::TableModel(int typeId, QString tableName) "primary_key": "id" }, */ -TableModel::TableModel(QJsonObject json, QString tableName) +TableModel::TableModel(const QJsonObject &json, const QString &tableName) : _typeId(0) { _name = tableName; @@ -300,7 +300,7 @@ TableModel::TableModel(QJsonObject json, QString tableName) QJsonObject relations = json.value(__FOREIGN_KEYS).toObject(); foreach (QString key, fields.keys()) { QJsonObject fieldObject = fields.value(key).toObject(); - FieldModel *f = new FieldModel; + auto *f = new FieldModel; f->name = fieldObject.value(__NAME).toString(); f->type = static_cast(QMetaType::type(fieldObject.value(__TYPE).toString().toLatin1().data())); f->typeName = QMetaType::typeName(f->type); @@ -398,8 +398,7 @@ QString TableModel::toString() const sl.append(f->name + " " + QVariant::typeToName(f->type)); QString ret = QString("%1 (%2)") - .arg(_name) - .arg(sl.join(", ")); + .arg(_name, sl.join(", ")); return ret; } diff --git a/src/tablemodel.h b/src/tablemodel.h index 429e72f..36a5710 100644 --- a/src/tablemodel.h +++ b/src/tablemodel.h @@ -92,8 +92,8 @@ bool operator !=(const RelationModel &l, const RelationModel &r); class TableModel { public: - explicit TableModel(int typeId, QString tableName = QString()); - explicit TableModel(QJsonObject json, QString tableName); + explicit TableModel(int typeId, const QString &tableName = QString()); + explicit TableModel(const QJsonObject &json, const QString &tableName); virtual ~TableModel(); QJsonObject toJson() const; @@ -103,7 +103,7 @@ public: // static TableModel* model(QString className); FieldModel *field(int n) const; - FieldModel *field(QString name) const; + FieldModel *field(const QString &name) const; RelationModel *foregionKey(const QString &otherTable) const; RelationModel *foregionKeyByField(const QString &fieldName) const; @@ -126,7 +126,7 @@ public: static QSet allModels(); static TableModel *findByTypeId(int typeId); // static TableModel *findByName(QString name); - static TableModel *findByClassName(QString className); + static TableModel *findByClassName(const QString &className); bool operator ==(const TableModel &t) const; bool operator !=(const TableModel &t) const; diff --git a/test/common/consts.h b/test/common/consts.h index c1b10bc..7e63c0e 100644 --- a/test/common/consts.h +++ b/test/common/consts.h @@ -1,8 +1,8 @@ #ifndef CONSTS_H #define CONSTS_H -#define REGISTER(x) qDebug() << #x << "type id:" << qRegisterMetaType() -#define PRINT(x) qDebug() << #x "=" << x; +#define REGISTER(x) qDebug() << (#x) << "type id:" << qMetaTypeId() +#define PRINT(x) qDebug() << (#x "=") << (x); #define TIC() QElapsedTimer timer; timer.start() #define TOC() qDebug() << QString("Elapsed time: %1ms for %2") \ .arg(timer.elapsed() / 1000.) \ diff --git a/test/tst_basic/maintest.cpp b/test/tst_basic/maintest.cpp index 7112a5a..2c4fea9 100644 --- a/test/tst_basic/maintest.cpp +++ b/test/tst_basic/maintest.cpp @@ -74,14 +74,14 @@ void MainTest::createPost() db.posts()->append(newPost); for(int i = 0 ; i < 3; i++){ - Comment *comment = new Comment; + auto *comment = new Comment; comment->setMessage("comment #" + QString::number(i)); comment->setSaveDate(QDateTime::currentDateTime()); comment->setAuthorId(user->id()); newPost->comments()->append(comment); } for (int i = 0; i < 10; ++i) { - Score *score = new Score; + auto *score = new Score; score->setScore(i % 5); newPost->scores()->append(score); } @@ -106,7 +106,7 @@ void MainTest::createPost2() int postId = postIdVar.toInt(); for(int i = 0 ; i < 3; i++){ - Comment *comment = new Comment; + auto *comment = new Comment; comment->setMessage("comment #" + QString::number(i + 2)); comment->setSaveDate(QDateTime::currentDateTime()); comment->setAuthor(user); diff --git a/test/tst_datatypes/maintest.cpp b/test/tst_datatypes/maintest.cpp index 85dfad5..9cceb14 100644 --- a/test/tst_datatypes/maintest.cpp +++ b/test/tst_datatypes/maintest.cpp @@ -16,10 +16,6 @@ #include "generators/sqlitegenerator.h" #include "generators/sqlservergenerator.h" -#define PRINT(x) qDebug() << #x "=" << x; - -#define REGISTER(x) qDebug() << #x << "type id:" << qMetaTypeId() - MainTest::MainTest(QObject *parent) : QObject(parent) { }