diff --git a/src/nut/database.cpp b/src/nut/database.cpp index 884a9c9..938ee3c 100644 --- a/src/nut/database.cpp +++ b/src/nut/database.cpp @@ -219,7 +219,7 @@ bool DatabasePrivate::getCurrectSchema() if (!nutClassInfoString(q->metaObject()->classInfo(i), type, name, value)) { - errorMessage = QString::fromUtf8("No valid table in %1") + errorMessage = QStringLiteral("No valid table in %1") .arg(q->metaObject()->classInfo(i).value()); continue; } diff --git a/src/nut/generators/mysqlgenerator.cpp b/src/nut/generators/mysqlgenerator.cpp index b166775..9e5f648 100644 --- a/src/nut/generators/mysqlgenerator.cpp +++ b/src/nut/generators/mysqlgenerator.cpp @@ -78,7 +78,7 @@ QString MySqlGenerator::fieldType(FieldModel *field) case QMetaType::QString: if(field->length) - dbType = QString::fromUtf8("VARCHAR(%1)").arg(field->length); + dbType = QStringLiteral("VARCHAR(%1)").arg(field->length); else dbType = QStringLiteral("TEXT"); break; @@ -316,7 +316,7 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::AddMinutesDateTime: case PhraseData::AddSeconds: case PhraseData::AddSecondsDateTime: - return QString::fromUtf8("DATE_ADD(%1, INTERVAL %2 %3)") + return QStringLiteral("DATE_ADD(%1, INTERVAL %2 %3)") .arg(createConditionalPhrase(d->left), d->operand.toString(), SqlGeneratorBase::dateTimePartName(op)); @@ -333,7 +333,7 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::DatePartHour: case PhraseData::DatePartMinute: case PhraseData::DatePartSecond: - return QString::fromUtf8("%2(%1)") + return QStringLiteral("%2(%1)") .arg(createConditionalPhrase(d->left), SqlGeneratorBase::dateTimePartName(op)); @@ -348,11 +348,11 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take) { if (take > 0 && skip > 0) { - sql.append(QString::fromUtf8(" LIMIT %1 OFFSET %2") + sql.append(QStringLiteral(" LIMIT %1 OFFSET %2") .arg(take) .arg(skip)); } else if (take > 0) { - sql.append(QString::fromUtf8(" LIMIT %1").arg(take)); + sql.append(QStringLiteral(" LIMIT %1").arg(take)); } } diff --git a/src/nut/generators/postgresqlgenerator.cpp b/src/nut/generators/postgresqlgenerator.cpp index f8e567d..4af2929 100644 --- a/src/nut/generators/postgresqlgenerator.cpp +++ b/src/nut/generators/postgresqlgenerator.cpp @@ -140,7 +140,7 @@ QString PostgreSqlGenerator::fieldType(FieldModel *field) case QMetaType::QString: if(field->length) - dbType = QString("VARCHAR(%1)").arg(field->length); + dbType = QStringLiteral("VARCHAR(%1)").arg(field->length); else dbType = QStringLiteral("TEXT"); break; @@ -228,11 +228,11 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const if (v.type() == QVariant::Point) { QPoint pt = v.toPoint(); - return QString::fromUtf8("point(%1, %2)").arg(pt.x()).arg(pt.y()); + return QStringLiteral("point(%1, %2)").arg(pt.x()).arg(pt.y()); } if (v.type() == QVariant::PointF) { QPointF pt = v.toPointF(); - return QString::fromUtf8("point(%1, %2)").arg(pt.x()).arg(pt.y()); + return QStringLiteral("point(%1, %2)").arg(pt.x()).arg(pt.y()); } if (v.userType() == QMetaType::QJsonDocument) { return QStringLiteral("'") @@ -249,9 +249,10 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const pt = pol.at(i); if (!ret.isEmpty()) ret.append(QStringLiteral("),(")); - ret.append(QString::number(pt.x()) + ", " + QString::number(pt.y())); + ret.append(QString::number(pt.x()) + + QStringLiteral(", ") + QString::number(pt.y())); } - return "'((" + ret + "))'"; + return QStringLiteral("'((") + ret + QStringLiteral("))'"); } if (v.type() == QVariant::PolygonF) { QString ret; @@ -263,7 +264,7 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const ret.append(QStringLiteral("),(")); ret.append(QString::number(pt.x()) + ", " + QString::number(pt.y())); } - return "'((" + ret + "))'"; + return QStringLiteral("'((") + ret + QStringLiteral("))'"); } #endif @@ -352,7 +353,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const if (d->type == PhraseData::WithVariant) { if (isPostGisType(d->operand.type()) && d->operatorCond == PhraseData::Equal) { - return QString::fromUtf8("%1 ~= %2") + return QStringLiteral("%1 ~= %2") .arg(SqlGeneratorBase::createConditionalPhrase(d->left), escapeValue(d->operand)); } @@ -369,7 +370,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::AddMinutesDateTime: case PhraseData::AddSeconds: case PhraseData::AddSecondsDateTime: - return QString::fromUtf8("%1 + interval '%2 %3'") + return QStringLiteral("%1 + interval '%2 %3'") .arg(createConditionalPhrase(d->left), d->operand.toString(), SqlGeneratorBase::dateTimePartName(op)); @@ -387,7 +388,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::DatePartHour: case PhraseData::DatePartMinute: case PhraseData::DatePartSecond: - return QString::fromUtf8("date_part('%2', %1)") + return QStringLiteral("date_part('%2', %1)") .arg(createConditionalPhrase(d->left), SqlGeneratorBase::dateTimePartName(op)); diff --git a/src/nut/generators/sqlgeneratorbase.cpp b/src/nut/generators/sqlgeneratorbase.cpp index 8f8e669..2290be1 100644 --- a/src/nut/generators/sqlgeneratorbase.cpp +++ b/src/nut/generators/sqlgeneratorbase.cpp @@ -117,7 +117,7 @@ QString SqlGeneratorBase::recordsPhrase(TableModel *table) foreach (FieldModel *f, table->fields()) { if (!ret.isEmpty()) ret.append(QLatin1String(", ")); - ret.append(QString::fromUtf8("%1.%2 AS \"%1.%2\"").arg(table->name(), f->name)); + ret.append(QStringLiteral("%1.%2 AS \"%1.%2\"").arg(table->name(), f->name)); } return ret; } @@ -134,7 +134,7 @@ QString SqlGeneratorBase::insertBulk(const QString &tableName, const PhraseList sql.append(QLatin1String(", ")); sql.append(QLatin1String("(") + values.join(QLatin1String(", ")) + QLatin1String(")")); } - sql = QString::fromUtf8("INSERT INTO %1 (%2) VALUES %3") + sql = QStringLiteral("INSERT INTO %1 (%2) VALUES %3") .arg(tableName, createFieldPhrase(ph), sql); removeTableNames(sql); @@ -165,7 +165,7 @@ QStringList SqlGeneratorBase::constraints(TableModel *table) QString SqlGeneratorBase::relationDeclare(const RelationModel *relation) { - return QString::fromUtf8("FOREIGN KEY (FK_%1) REFERENCES %2(%1)") + return QStringLiteral("FOREIGN KEY (FK_%1) REFERENCES %2(%1)") .arg(relation->localColumn, relation->slaveTable->name()); } @@ -221,7 +221,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) return QStringList(); if (!newTable) - return QStringList() << ("DROP TABLE " + oldTable->name()); + return QStringList() << (QStringLiteral("DROP TABLE ") + oldTable->name()); QList fieldNames; QList relations; @@ -272,7 +272,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) // } QString sql; if (oldTable) { - sql = QString::fromUtf8("ALTER TABLE %1 \n%2") + sql = QStringLiteral("ALTER TABLE %1 \n%2") .arg(newTable->name(), columnSql.join(QStringLiteral(",\n"))); } else { if (!newTable->primaryKey().isNull()) { @@ -282,7 +282,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable) columnSql << constraints(newTable); } - sql = QString::fromUtf8("CREATE TABLE %1 \n(%2)") + sql = QStringLiteral("CREATE TABLE %1 \n(%2)") .arg(newTable->name(), columnSql.join(QStringLiteral(",\n"))); } @@ -343,13 +343,13 @@ QStringList SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel) .arg(newRelation->foreignColumn); */ if (!oldRel) - ret.append(QString::fromUtf8("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) " + ret.append(QStringLiteral("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) " "REFERENCES %2(%3)") .arg(newRel->localColumn, newRel->masterTable->name(), newRel->foreignColumn)); if (!newRel) - ret.append(QString::fromUtf8("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) " + ret.append(QStringLiteral("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) " "REFERENCES %2(%3)") .arg(oldRel->localColumn, oldRel->masterTable->name(), oldRel->foreignColumn)); @@ -366,16 +366,17 @@ QString SqlGeneratorBase::join(const QString &mainTable, QList::const_iterator i; for (i = list.begin(); i != list.end(); ++i) { if ((*i)->masterTable->name() == mainTable) { - ret.append(QString(" INNER JOIN %3 ON %1.%2 = %3.%4") + ret.append(QStringLiteral(" INNER JOIN %3 ON %1.%2 = %3.%4") .arg((*i)->masterTable->name(), (*i)->masterTable->primaryKey(), (*i)->slaveTable->name(), (*i)->localColumn)); if (order != Q_NULLPTR) - order->append((*i)->slaveTable->name() + "." + (*i)->slaveTable->primaryKey()); + order->append((*i)->slaveTable->name() + QStringLiteral(".") + + (*i)->slaveTable->primaryKey()); } else { - ret.append(QString(" INNER JOIN %3 ON %1.%2 = %3.%4") + ret.append(QStringLiteral(" INNER JOIN %3 ON %1.%2 = %3.%4") .arg(mainTable, (*i)->localColumn, (*i)->masterTable->name(), @@ -401,12 +402,16 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) return QString(); if (list.count() == 1) - return "[" + list.first() + "]"; + return QStringLiteral("[") + + list.first() + + QStringLiteral("]"); DatabaseModel model = _database->model(); QStringList clone = list; QString mainTable = clone.takeFirst(); - QString ret = "[" + mainTable + "]"; + QString ret = QStringLiteral("[") + + mainTable + + QStringLiteral("]"); do { if (!clone.count()) @@ -416,7 +421,7 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) RelationModel *rel = model.relationByClassNames(mainTable, clone.first()); if (rel) { //mainTable is master of table - ret.append(QString(" INNER JOIN [%1] ON %4.%2 = %1.%3") + ret.append(QStringLiteral(" INNER JOIN [%1] ON %4.%2 = %1.%3") .arg(table, rel->masterTable->primaryKey(), rel->localColumn, mainTable)); @@ -427,7 +432,7 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order) rel = model.relationByClassNames(clone.first(), mainTable); if (rel) { // table is master of mainTable - ret.append(QString(" INNER JOIN [%1] ON %4.%2 = %1.%3") + ret.append(QStringLiteral(" INNER JOIN [%1] ON %4.%2 = %1.%3") .arg(table, rel->localColumn, rel->masterTable->primaryKey(), mainTable)); @@ -463,12 +468,12 @@ QString SqlGeneratorBase::insertRecord(Table *t, QString tableName) values.append(escapeValue(t->property(f.toLatin1().data()))); - if (changedPropertiesText != "") - changedPropertiesText.append(", "); + if (changedPropertiesText != QStringLiteral("")) + changedPropertiesText.append(QStringLiteral(", ")); changedPropertiesText.append(f); } - sql = QString("INSERT INTO %1 (%2) VALUES (%3)") - .arg(tableName, changedPropertiesText, values.join(", ")); + sql = QStringLiteral("INSERT INTO %1 (%2) VALUES (%3)") + .arg(tableName, changedPropertiesText, values.join(QStringLiteral(", "))); removeTableNames(sql); @@ -484,11 +489,14 @@ QString SqlGeneratorBase::updateRecord(Table *t, QString tableName) foreach (QString f, t->changedProperties()) if (f != key) - values.append(f + "='" + t->property(f.toLatin1().data()).toString() - + "'"); - sql = QString("UPDATE %1 SET %2 WHERE %3=%4") - .arg(tableName, values.join(", "), - key, t->property(key.toUtf8().data()).toString()); + values.append(f + QStringLiteral("='") + + t->property(f.toLatin1().data()).toString() + + QStringLiteral("'")); + sql = QStringLiteral("UPDATE %1 SET %2 WHERE %3=%4") + .arg(tableName, + values.join(QStringLiteral(", ")), + key, + t->property(key.toUtf8().data()).toString()); removeTableNames(sql); @@ -499,7 +507,7 @@ QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName) { auto model = _database->model().tableByName(tableName); QString key = model->primaryKey(); - QString sql = QString("DELETE FROM %1 WHERE %2='%3'") + QString sql = QStringLiteral("DELETE FROM %1 WHERE %2='%3'") .arg(tableName, key, t->property(key.toUtf8().data()).toString()); replaceTableNames(sql); return sql; @@ -510,19 +518,19 @@ QString SqlGeneratorBase::agregateText(const AgregateType &t, { switch (t) { case Min: - return "MIN(" + arg + ")"; + return QStringLiteral("MIN(") + arg + QStringLiteral(")"); case Max: - return "MAX(" + arg + ")"; + return QStringLiteral("MAX(") + arg + QStringLiteral(")"); case Average: - return "AVG(" + arg + ")"; + return QStringLiteral("AVG(") + arg + QStringLiteral(")"); case Count: - return "COUNT(" + arg + ")"; + return QStringLiteral("COUNT(") + arg + QStringLiteral(")"); case Sum: - return "SUM(" + arg + ")"; + return QStringLiteral("SUM(") + arg + QStringLiteral(")"); case SingleField: return arg; @@ -541,7 +549,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName, = _database->model().relationByTableNames(tableName, joinTableName); if (rel) { QString pk = _database->model().tableByName(tableName)->primaryKey(); - tableNameText = QString("%1 INNER JOIN %2 ON (%1.%3 = %2.%4)") + tableNameText = QStringLiteral("%1 INNER JOIN %2 ON (%1.%3 = %2.%4)") .arg(tableName, joinTableName, pk, rel->localColumn); orderBy = tableName + "." + pk; @@ -549,7 +557,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName, qWarning("Relation between table %s and class %s (%s) not exists!", qPrintable(tableName), qPrintable(joinClassName), - qPrintable(joinTableName.isNull() ? "NULL" : joinTableName)); + qPrintable(joinTableName.isNull() ? QStringLiteral("NULL") : joinTableName)); joinClassName = QString(); } } @@ -559,11 +567,10 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName, QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString &where) { - QString sql = QString(); - if (where.isEmpty() || where.isNull()) - sql = "DELETE FROM " + tableName; - else - sql = "DELETE FROM " + tableName + " WHERE " + where; + QString sql = QStringLiteral("DELETE FROM ") + tableName; + + if (!where.isEmpty()) + sql.append(QStringLiteral(" WHERE ") + where); replaceTableNames(sql); @@ -591,7 +598,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, selectText = QString(); foreach (TableModel *t, tables) { if (!selectText.isEmpty()) - selectText.append(", "); + selectText.append(QStringLiteral(", ")); selectText.append(recordsPhrase(t)); } } else { @@ -603,13 +610,14 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, QString whereText = createConditionalPhrase(where.data); QString fromText = join(tableName, joins, &joinedOrders); - QString sql = "SELECT " + selectText + " FROM " + fromText; + QString sql = QStringLiteral("SELECT ") + selectText + + QStringLiteral(" FROM ") + fromText; - if (whereText != "") - sql.append(" WHERE " + whereText); + if (whereText != QStringLiteral("")) + sql.append(QStringLiteral(" WHERE ") + whereText); - if (orderText != "") - sql.append(" ORDER BY " + orderText); + if (orderText != QStringLiteral("")) + sql.append(QStringLiteral(" ORDER BY ") + orderText); // for (int i = 0; i < _database->model().count(); i++) // sql = sql.replace(_database->model().at(i)->className() + ".", @@ -618,7 +626,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, appendSkipTake(sql, skip, take); replaceTableNames(sql); - return sql + " "; + return sql + QStringLiteral(" "); } QString SqlGeneratorBase::selectCommand(const QString &tableName, @@ -634,33 +642,34 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName, QString whereText = createConditionalPhrase(where.data); QString fromText = join(tableName, joins, &joinedOrders); - QString sql = "SELECT " + selectText + " FROM " + fromText; + QString sql = QStringLiteral("SELECT ") + selectText + + QStringLiteral(" FROM ") + fromText; - if (whereText != "") - sql.append(" WHERE " + whereText); + if (whereText != QStringLiteral("")) + sql.append(QStringLiteral(" WHERE ") + whereText); for (int i = 0; i < _database->model().count(); i++) - sql = sql.replace(_database->model().at(i)->className() + ".", - _database->model().at(i)->name() + "."); + sql = sql.replace(_database->model().at(i)->className() + QStringLiteral("."), + _database->model().at(i)->name() + QStringLiteral(".")); appendSkipTake(sql, skip, take); replaceTableNames(sql); - return sql + " "; + return sql + QStringLiteral(" "); } QString SqlGeneratorBase::deleteCommand(const QString &tableName, const ConditionalPhrase &where) { - QString command = "DELETE FROM " + tableName; + QString command = QStringLiteral("DELETE FROM ") + tableName; QString whereText = createConditionalPhrase(where.data); - if (whereText != "") - command.append(" WHERE " + whereText); + if (!whereText.isEmpty()) + command.append(QStringLiteral(" WHERE ") + whereText); for (int i = 0; i < _database->model().count(); i++) - command = command.replace(_database->model().at(i)->className() + ".", - _database->model().at(i)->name() + "."); + command = command.replace(_database->model().at(i)->className() + QStringLiteral("."), + _database->model().at(i)->name() + QStringLiteral(".")); replaceTableNames(command); @@ -673,21 +682,22 @@ QString SqlGeneratorBase::updateCommand(const QString &tableName, { QString assigmentTexts = QString(); foreach (PhraseData *d, assigments.data) { - if (assigmentTexts != "") - assigmentTexts.append(", "); + if (assigmentTexts != QStringLiteral("")) + assigmentTexts.append(QStringLiteral(", ")); assigmentTexts.append(createConditionalPhrase(d)); } QString whereText = createConditionalPhrase(where.data); - QString sql = "UPDATE " + tableName + " SET " + assigmentTexts; + QString sql = QStringLiteral("UPDATE ") + tableName + + QStringLiteral(" SET ") + assigmentTexts; - if (whereText != "") - sql.append(" WHERE " + whereText); + if (!whereText.isEmpty()) + sql.append(QStringLiteral(" WHERE ") + whereText); for (int i = 0; i < _database->model().count(); i++) - sql = sql.replace(_database->model().at(i)->className() + ".", - _database->model().at(i)->name() + "."); + sql = sql.replace(_database->model().at(i)->className() + QStringLiteral("."), + _database->model().at(i)->name() + QStringLiteral(".")); removeTableNames(sql); @@ -700,16 +710,16 @@ QString SqlGeneratorBase::insertCommand(const QString &tableName, const Assignme QString fieldNames; QString values; foreach (PhraseData *d, assigments.data) { - if (fieldNames != "") - fieldNames.append(", "); + if (!fieldNames.isEmpty()) + fieldNames.append(QStringLiteral(", ")); - if (values != "") - values.append(", "); + if (!values.isEmpty()) + values.append(QStringLiteral(", ")); - fieldNames.append(d->left->fieldName); + fieldNames.append(QString::fromUtf8(d->left->fieldName)); values.append(escapeValue(d->operand)); } - return QString("INSERT INTO %1 (%2) VALUES (%3);") + return QStringLiteral("INSERT INTO %1 (%2) VALUES (%3);") .arg(tableName, fieldNames, values); } @@ -786,13 +796,16 @@ void SqlGeneratorBase::replaceTableNames(QString &command) { foreach (TableModel *m, _database->model()) command = command - .replace("[" + m->className() + "]", m->name()); + .replace(QStringLiteral("[") + m->className() + + QStringLiteral("]"), m->name()); } void SqlGeneratorBase::removeTableNames(QString &command) { foreach (TableModel *m, _database->model()) - command = command.replace("[" + m->className() + "].", ""); + command = command.replace(QStringLiteral("[") + + m->className() + + QStringLiteral("]."), QStringLiteral("")); } QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) const @@ -801,27 +814,27 @@ QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) cons case PhraseData::DatePartYear: case PhraseData::AddYears: case PhraseData::AddYearsDateTime: - return "YEAR"; + return QStringLiteral("YEAR"); case PhraseData::DatePartMonth: case PhraseData::AddMonths: case PhraseData::AddMonthsDateTime: - return "MONTH"; + return QStringLiteral("MONTH"); case PhraseData::DatePartDay: case PhraseData::AddDays: case PhraseData::AddDaysDateTime: - return "DAY"; + return QStringLiteral("DAY"); case PhraseData::DatePartHour: case PhraseData::AddHours: case PhraseData::AddHoursDateTime: - return "HOUR"; + return QStringLiteral("HOUR"); case PhraseData::DatePartMinute: case PhraseData::AddMinutes: case PhraseData::AddMinutesDateTime: - return "MINUTE"; + return QStringLiteral("MINUTE"); case PhraseData::DatePartSecond: case PhraseData::AddSeconds: case PhraseData::AddSecondsDateTime: - return "SECOND"; + return QStringLiteral("SECOND"); default: break; @@ -871,7 +884,7 @@ QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) cons QString SqlGeneratorBase::escapeValue(const QVariant &v) const { if (v.type() == QVariant::String && v.toString().isEmpty()) - return "''"; + return QStringLiteral("''"); QString serialized = _serializer->serialize(v); if (serialized.isEmpty()) { @@ -882,7 +895,7 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const if (v.type() == QVariant::List) return serialized; - return "'" + serialized + "'"; + return QStringLiteral("'") + serialized + QStringLiteral("'"); } QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type, @@ -909,7 +922,7 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const break; case PhraseData::WithOther: - ret = phrase(d->left) + " " + operatorString(d->operatorCond) + " " + ret = phrase(d->left) + QStringLiteral(" ") + operatorString(d->operatorCond) + QStringLiteral(" ") + phrase(d->right); break; @@ -919,7 +932,7 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const } if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or) - ret = "(" + ret + ")"; + ret = QStringLiteral("(") + ret + QStringLiteral(")"); return ret; } @@ -929,63 +942,63 @@ SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const { switch (cond) { case PhraseData::Equal: - return "="; + return QStringLiteral("="); case PhraseData::NotEqual: - return "<>"; + return QStringLiteral("<>"); case PhraseData::Less: - return "<"; + return QStringLiteral("<"); case PhraseData::Greater: - return ">"; + return QStringLiteral(">"); case PhraseData::LessEqual: - return "<="; + return QStringLiteral("<="); case PhraseData::GreaterEqual: - return ">="; + return QStringLiteral(">="); case PhraseData::Null: - return "IS NULL"; + return QStringLiteral("IS NULL"); case PhraseData::NotNull: - return "IS NOT NULL"; + return QStringLiteral("IS NOT NULL"); case PhraseData::In: - return "IN"; + return QStringLiteral("IN"); case PhraseData::NotIn: - return "NOT IN"; + return QStringLiteral("NOT IN"); case PhraseData::And: - return "AND"; + return QStringLiteral("AND"); case PhraseData::Or: - return "OR"; + return QStringLiteral("OR"); case PhraseData::Like: - return "LIKE"; + return QStringLiteral("LIKE"); case PhraseData::NotLike: - return "NOT LIKE"; + return QStringLiteral("NOT LIKE"); case PhraseData::Add: - return "+"; + return QStringLiteral("+"); case PhraseData::Minus: - return "-"; + return QStringLiteral("-"); case PhraseData::Multiple: - return "*"; + return QStringLiteral("*"); case PhraseData::Divide: - return "/"; + return QStringLiteral("/"); // case PhraseData::Set: -// return "="; +// return QStringLiteral("="); // case PhraseData::Append: -// return ","; +// return QStringLiteral(","); case PhraseData::Between: - return "BETWEEN"; + return QStringLiteral("BETWEEN"); case PhraseData::Mod: - return "MOD"; + return QStringLiteral("MOD"); default: qDebug() << "Unsupported" << cond; - return QString(" %1").arg(cond); + return QStringLiteral(" %1").arg(cond); } } @@ -998,7 +1011,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)") + return QStringLiteral("CONSTRAINT pk_%1 PRIMARY KEY (%2)") .arg(table->name(), table->primaryKey()); } @@ -1041,44 +1054,47 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const .arg(d->operand.toString(), createConditionalPhrase(d->left)); else */if (op == PhraseData::Between) { QVariantList list = d->operand.toList(); - ret = QString("%1 BETWEEN %2 AND %3") + ret = QStringLiteral("%1 BETWEEN %2 AND %3") .arg(createConditionalPhrase(d->left), escapeValue(list.at(0)), escapeValue(list.at(1))); } else if (op == PhraseData::DatePartYear) - ret = QString("DATEPART(year, %1)") + ret = QStringLiteral("DATEPART(year, %1)") .arg(d->operand.toString()); else if (op == PhraseData::DatePartMonth) - ret = QString("DATEPART(month, %1)") + ret = QStringLiteral("DATEPART(month, %1)") .arg(d->operand.toString()); else if (op == PhraseData::DatePartDay) - ret = QString("DATEPART(day, %1)") + ret = QStringLiteral("DATEPART(day, %1)") .arg(d->operand.toString()); else if (op == PhraseData::DatePartHour) - ret = QString("DATEPART(hour, %1)") + ret = QStringLiteral("DATEPART(hour, %1)") .arg(d->operand.toString()); else if (op == PhraseData::DatePartMinute) - ret = QString("DATEPART(minute, %1)") + ret = QStringLiteral("DATEPART(minute, %1)") .arg(d->operand.toString()); else if (op == PhraseData::DatePartMilisecond) - ret = QString("DATEPART(milisecond, %1)") + ret = QStringLiteral("DATEPART(milisecond, %1)") .arg(d->operand.toString()); else - ret = createConditionalPhrase(d->left) + " " + operatorString(op) + " " - + escapeValue(d->operand); + ret = createConditionalPhrase(d->left) + QStringLiteral(" ") + + operatorString(op) + QStringLiteral(" ") + + escapeValue(d->operand); break; case PhraseData::WithOther: - ret = createConditionalPhrase(d->left) + " " + operatorString(op) + " " + ret = createConditionalPhrase(d->left) + QStringLiteral(" ") + + operatorString(op) + QStringLiteral(" ") + createConditionalPhrase(d->right); break; case PhraseData::WithoutOperand: - ret = createConditionalPhrase(d->left) + " " + operatorString(op); + ret = createConditionalPhrase(d->left) + QStringLiteral(" ") + + operatorString(op); break; } if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or) - ret = "(" + ret + ")"; + ret = QStringLiteral("(") + ret + QStringLiteral(")"); return ret; } @@ -1087,11 +1103,11 @@ QString SqlGeneratorBase::createOrderPhrase(const PhraseList &ph) { QString ret = QString(); foreach (const PhraseData *d, ph.data) { - if (ret != "") - ret.append(", "); + if (!ret.isEmpty()) + ret.append(QStringLiteral(", ")); ret.append(d->toString()); if (d->isNot) - ret.append(" DESC"); + ret.append(QStringLiteral(" DESC")); } return ret; @@ -1101,8 +1117,8 @@ QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph) { QString ret = QString(); foreach (const PhraseData *d, ph.data) { - if (ret != "") - ret.append(", "); + if (!ret.isEmpty()) + ret.append(QStringLiteral(", ")); ret.append(d->toString()); if (d->isNot) qDebug() << "Operator ! is ignored in fields phrase"; @@ -1113,11 +1129,11 @@ QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph) void SqlGeneratorBase::createInsertPhrase(const AssignmentPhraseList &ph, QString &fields, QString &values) { foreach (PhraseData *d, ph.data) { - if (fields != "") - fields.append(", "); + if (!fields.isEmpty()) + fields.append(QStringLiteral(", ")); - if (values != "") - values.append(", "); + if (!values.isEmpty()) + values.append(QStringLiteral(", ")); switch (d->type) { case PhraseData::WithVariant: diff --git a/src/nut/generators/sqlitegenerator.cpp b/src/nut/generators/sqlitegenerator.cpp index 08f04d4..2087989 100644 --- a/src/nut/generators/sqlitegenerator.cpp +++ b/src/nut/generators/sqlitegenerator.cpp @@ -79,7 +79,7 @@ QString SqliteGenerator::fieldType(FieldModel *field) case QMetaType::QString: if(field->length) - return QString::fromUtf8("VARCHAR(%1)").arg(field->length); + return QStringLiteral("VARCHAR(%1)").arg(field->length); else return QStringLiteral("TEXT"); default: @@ -183,7 +183,7 @@ QStringList SqliteGenerator::diff(TableModel *oldTable, TableModel *newTable) ret.append(QStringLiteral("ALTER TABLE ") + newTable->name() + QStringLiteral(" RENAME TO sqlitestudio_temp_table;")); ret.append(newTableSql); - ret.append(QString::fromUtf8("INSERT INTO %1 ( %2 ) SELECT %2 FROM sqlitestudio_temp_table;") + ret.append(QStringLiteral("INSERT INTO %1 ( %2 ) SELECT %2 FROM sqlitestudio_temp_table;") .arg(newTable->name(), columns)); ret.append(QStringLiteral("DROP TABLE sqlitestudio_temp_table;")); return ret; @@ -191,11 +191,11 @@ QStringList SqliteGenerator::diff(TableModel *oldTable, TableModel *newTable) void SqliteGenerator::appendSkipTake(QString &sql, int skip, int take) { if (take > 0 && skip > 0) { - sql.append(QString::fromUtf8(" LIMIT %1 OFFSET %2") + sql.append(QStringLiteral(" LIMIT %1 OFFSET %2") .arg(take) .arg(skip)); } else if (take > 0) { - sql.append(QString::fromUtf8(" LIMIT %1").arg(take)); + sql.append(QStringLiteral(" LIMIT %1").arg(take)); } } @@ -229,7 +229,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::AddMonths: case PhraseData::AddDays: { int i = d->operand.toInt(); - return QString::fromUtf8("DATE(%1,'%2 %3')") + return QStringLiteral("DATE(%1,'%2 %3')") .arg(createConditionalPhrase(d->left), (i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i), dateTimePartName(op)); @@ -239,7 +239,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::AddMinutes: case PhraseData::AddSeconds: { int i = d->operand.toInt(); - return QString::fromUtf8("TIME(%1,'%2 %3')") + return QStringLiteral("TIME(%1,'%2 %3')") .arg(createConditionalPhrase(d->left), (i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i), dateTimePartName(op)); @@ -252,7 +252,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::AddMinutesDateTime: case PhraseData::AddSecondsDateTime: { int i = d->operand.toInt(); - return QString::fromUtf8("DATETIME(%1,'%2 %3')") + return QStringLiteral("DATETIME(%1,'%2 %3')") .arg(createConditionalPhrase(d->left), (i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i), dateTimePartName(op)); @@ -265,27 +265,27 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const if (d->type == PhraseData::WithoutOperand) { switch (op) { case PhraseData::DatePartYear: - return QString::fromUtf8("CAST(strftime('%Y', %1) AS INT)") + return QStringLiteral("CAST(strftime('%Y', %1) AS INT)") .arg(createConditionalPhrase(d->left)); case PhraseData::DatePartMonth: - return QString::fromUtf8("CAST(strftime('%m', %1) AS INT)") + return QStringLiteral("CAST(strftime('%m', %1) AS INT)") .arg(createConditionalPhrase(d->left)); case PhraseData::DatePartDay: - return QString::fromUtf8("CAST(strftime('%d', %1) AS INT)") + return QStringLiteral("CAST(strftime('%d', %1) AS INT)") .arg(createConditionalPhrase(d->left)); case PhraseData::DatePartHour: - return QString::fromUtf8("CAST(strftime('%H', %1) AS INT)") + return QStringLiteral("CAST(strftime('%H', %1) AS INT)") .arg(createConditionalPhrase(d->left)); case PhraseData::DatePartMinute: - return QString::fromUtf8("CAST(strftime('%M', %1) AS INT)") + return QStringLiteral("CAST(strftime('%M', %1) AS INT)") .arg(createConditionalPhrase(d->left)); case PhraseData::DatePartSecond: - return QString::fromUtf8("CAST(strftime('%S', %1) AS INT)") + return QStringLiteral("CAST(strftime('%S', %1) AS INT)") .arg(createConditionalPhrase(d->left)); // case PhraseData::DatePartMilisecond: diff --git a/src/nut/generators/sqlservergenerator.cpp b/src/nut/generators/sqlservergenerator.cpp index 3c1946a..77b0bd2 100644 --- a/src/nut/generators/sqlservergenerator.cpp +++ b/src/nut/generators/sqlservergenerator.cpp @@ -35,86 +35,77 @@ SqlServerGenerator::SqlServerGenerator(Database *parent) QString SqlServerGenerator::masterDatabaseName(QString databaseName) { return databaseName.replace( - QRegularExpression("DATABASE\\=(\\w+)", + QRegularExpression(QStringLiteral("DATABASE\\=(\\w+)"), QRegularExpression::CaseInsensitiveOption), - "DATABASE="); + QStringLiteral("DATABASE=")); } QString SqlServerGenerator::fieldType(FieldModel *field) { - QString dbType; - switch (field->type) { case QMetaType::Bool: - dbType = "BIT"; - break; + return QStringLiteral("BIT"); case QMetaType::Char: case QMetaType::QChar: - dbType = "CHAR(1)"; - break; + return QStringLiteral("CHAR(1)"); case QMetaType::SChar: case QMetaType::UChar: - return "tinyint"; + return QStringLiteral("tinyint"); case QMetaType::Short: case QMetaType::UShort: - return "smallint"; + return QStringLiteral("smallint"); case QMetaType::UInt: case QMetaType::Int: - dbType = "INT"; if (field->isAutoIncrement) - dbType += " IDENTITY(1,1)"; - break; + return QStringLiteral("INT IDENTITY(1,1)"); + else + return QStringLiteral("INT"); case QMetaType::Long: case QMetaType::ULong: case QMetaType::LongLong: case QMetaType::ULongLong: - return "bigint"; + return QStringLiteral("bigint"); case QMetaType::Float: - return "FLOAT(24)"; + return QStringLiteral("FLOAT(24)"); case QMetaType::Double: - return "REAL"; + return QStringLiteral("REAL"); case QMetaType::QBitArray: case QMetaType::QByteArray: - dbType = "VARBINARY"; - if (field->length) - dbType.append(" (" + QString::number(field->length) + ")"); + return QStringLiteral("VARBINARY (") + QString::number(field->length) + QStringLiteral(")"); else - dbType.append(" (MAX)"); + return QStringLiteral("VARBINARY (MAX)"); break; + case QMetaType::QDate: - dbType = "DATE"; - break; + return QStringLiteral("DATE"); + case QMetaType::QDateTime: - dbType = "DATETIME"; - break; + return QStringLiteral("DATETIME"); + case QMetaType::QTime: - dbType = "TIME"; - break; + return QStringLiteral("TIME"); case QMetaType::QPoint: case QMetaType::QPointF: - dbType = "TEXT"; - break; + return QStringLiteral("TEXT"); case QMetaType::QString: if (field->length) - dbType = QString("NVARCHAR(%1)").arg(field->length); + return QStringLiteral("NVARCHAR(%1)").arg(field->length); else - dbType = "NVARCHAR(MAX)"; - break; + return QStringLiteral("NVARCHAR(MAX)"); case QMetaType::QUuid: - dbType = "UNIQUEIDENTIFIER"; - break; + return QStringLiteral("UNIQUEIDENTIFIER"); case QMetaType::QPolygon: case QMetaType::QPolygonF: @@ -131,14 +122,12 @@ QString SqlServerGenerator::fieldType(FieldModel *field) case QMetaType::QJsonObject: case QMetaType::QJsonDocument: case QMetaType::QUrl: - return "TEXT"; + return QStringLiteral("TEXT"); default: // Q_UNREACHABLE(); - dbType = QString(); + return QString(); } - - return dbType; } QString SqlServerGenerator::diff(FieldModel *oldField, FieldModel *newField) @@ -149,12 +138,12 @@ QString SqlServerGenerator::diff(FieldModel *oldField, FieldModel *newField) return sql; if (!newField) { - sql = "DROP COLUMN " + oldField->name; + sql = QStringLiteral("DROP COLUMN ") + oldField->name; } else { if (oldField) - sql = "MODIFY COLUMN "; + sql = QStringLiteral("MODIFY COLUMN "); else - sql = "ADD "; + sql = QStringLiteral("ADD "); sql.append(fieldDeclare(newField)); } @@ -181,7 +170,7 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const // case QVariant::JsonObject: // case QVariant::JsonDocument: case QVariant::Url: - return "N" + SqlGeneratorBase::escapeValue(v); + return QStringLiteral("N") + SqlGeneratorBase::escapeValue(v); // case QVariant::Point: { // QPoint pt = v.toPoint(); @@ -195,18 +184,17 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const // } case QVariant::Time: - return "'" + v.toTime().toString("HH:mm:ss") + "'"; + return v.toTime().toString(QStringLiteral("'HH:mm:ss'")); case QVariant::Date: - return "'" + v.toDate().toString("yyyy-MM-dd") + "'"; + return v.toDate().toString(QStringLiteral("'yyyy-MM-dd'")); case QVariant::DateTime: - return "'" + v.toDateTime().toString("yyyy-MM-dd HH:mm:ss") + "'"; + return v.toDateTime().toString(QStringLiteral("'yyyy-MM-dd HH:mm:ss'")); default: - break; + return SqlGeneratorBase::escapeValue(v); } - return SqlGeneratorBase::escapeValue(v); } QVariant SqlServerGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue) @@ -226,12 +214,12 @@ QVariant SqlServerGenerator::unescapeValue(const QMetaType::Type &type, const QV void SqlServerGenerator::appendSkipTake(QString &sql, int skip, int take) { if (skip != -1) - sql.append(QString(" OFFSET %1 ROWS") + sql.append(QStringLiteral(" OFFSET %1 ROWS") .arg(skip)); if (take > 0) - sql.append(QString(" FETCH %2 %1 ROWS ONLY") - .arg(take) - .arg(skip > 1 ? "NEXT" : "FIRST")); + sql.append(QStringLiteral(" FETCH %2 %1 ROWS ONLY") + .arg(take) + .arg(skip > 1 ? QStringLiteral("NEXT") : QStringLiteral("FIRST"))); } QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const @@ -260,7 +248,7 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::AddMinutesDateTime: case PhraseData::AddSeconds: case PhraseData::AddSecondsDateTime: - return QString("DATEADD(%3, %2, %1)") + return QStringLiteral("DATEADD(%3, %2, %1)") .arg(createConditionalPhrase(d->left), d->operand.toString(), SqlGeneratorBase::dateTimePartName(op)); @@ -278,7 +266,7 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const case PhraseData::DatePartHour: case PhraseData::DatePartMinute: case PhraseData::DatePartSecond: - return QString("DATEPART(%2, %1)") + return QStringLiteral("DATEPART(%2, %1)") .arg(createConditionalPhrase(d->left), SqlGeneratorBase::dateTimePartName(op)); diff --git a/src/nut/phrases/phrasedata.cpp b/src/nut/phrases/phrasedata.cpp index 69a40d5..1005920 100644 --- a/src/nut/phrases/phrasedata.cpp +++ b/src/nut/phrases/phrasedata.cpp @@ -73,7 +73,7 @@ PhraseData &PhraseData::operator =(PhraseData &other) QString PhraseData::toString() const { - return QString("[%1].%2").arg(className, fieldName); + return QString(QStringLiteral("[%1].%2")).arg(className, fieldName); } void PhraseData::cleanUp() diff --git a/src/nut/tablemodel.cpp b/src/nut/tablemodel.cpp index c92bc2b..723cf60 100644 --- a/src/nut/tablemodel.cpp +++ b/src/nut/tablemodel.cpp @@ -335,10 +335,10 @@ QString TableModel::toString() const { QStringList sl; foreach (FieldModel *f, _fields) - sl.append(f->name + " " + QVariant::typeToName(f->type)); + sl.append(f->name + QStringLiteral(" ") + QVariant::typeToName(f->type)); - QString ret = QString("%1 (%2)") - .arg(_name, sl.join(", ")); + QString ret = QStringLiteral("%1 (%2)") + .arg(_name, sl.join(QStringLiteral(", "))); return ret; } diff --git a/src/nut/types/dbgeography.cpp b/src/nut/types/dbgeography.cpp index 11d4407..a0fdbc0 100644 --- a/src/nut/types/dbgeography.cpp +++ b/src/nut/types/dbgeography.cpp @@ -75,7 +75,7 @@ void DbGeography::setLatitude(qreal latitude) } DbGeography::operator QVariant() { - return QVariant::fromValue(QString("%1,%2").arg(longitude()).arg(latitude())); + return QVariant::fromValue(QStringLiteral("%1,%2").arg(longitude()).arg(latitude())); } NUT_END_NAMESPACE diff --git a/tests/auto/common/consts.h b/tests/auto/common/consts.h index 717948d..7db1eb1 100644 --- a/tests/auto/common/consts.h +++ b/tests/auto/common/consts.h @@ -8,7 +8,7 @@ #define PRINT(x) //qDebug() << (#x "=") << (x); #define TIC() QElapsedTimer timer; timer.start() -#define TOC() qDebug() << QString("Elapsed time: %1ms for %2") \ +#define TOC() qDebug() << QStringLiteral("Elapsed time: %1ms for %2") \ .arg(timer.elapsed() / 1000.) \ .arg(__func__) diff --git a/tests/auto/tst_generators/tst_generators.cpp b/tests/auto/tst_generators/tst_generators.cpp index 8eb4d5f..eb8d513 100644 --- a/tests/auto/tst_generators/tst_generators.cpp +++ b/tests/auto/tst_generators/tst_generators.cpp @@ -135,7 +135,7 @@ void GeneratorsTest::cleanupTestCase() QString p = "\n| Type | Sqlite | MySql | Postgresql| Ms Sql server |" "\n|--------|--------|--------|--------|--------|"; for (i = table.constBegin(); i != table.constEnd(); ++i) { - p.append(QString("\n|%1|%2|%3|%4|%5|") + p.append(QStringLiteral("\n|%1|%2|%3|%4|%5|") .arg(i.key(), i.value().sqlite, i.value().mysql, i.value().psql, i.value().mssql)); }