Replace QLatin1String with operator _L1

This commit is contained in:
Jonas Kvinge
2024-09-07 04:24:14 +02:00
parent e3e6a22172
commit 4270b12cd1
185 changed files with 2429 additions and 2139 deletions

View File

@@ -28,6 +28,8 @@
#include "smartplaylistsearch.h"
using namespace Qt::StringLiterals;
SmartPlaylistSearch::SmartPlaylistSearch() : search_type_(SearchType::And), sort_type_(SortType::Random), sort_field_(SmartPlaylistSearchTerm::Field::Title), limit_(-1), first_item_(0) { Reset(); }
SmartPlaylistSearch::SmartPlaylistSearch(const SearchType type, const TermList &terms, const SortType sort_type, const SmartPlaylistSearchTerm::Field sort_field, const int limit)
@@ -62,7 +64,7 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
}
if (!terms_.isEmpty() && search_type_ != SearchType::All) {
QString boolean_op = search_type_ == SearchType::And ? QLatin1String(" AND ") : QLatin1String(" OR ");
QString boolean_op = search_type_ == SearchType::And ? " AND "_L1 : " OR "_L1;
where_clauses << QStringLiteral("(") + term_where_clauses.join(boolean_op) + QStringLiteral(")");
}
@@ -70,7 +72,7 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
if (!id_not_in_.isEmpty()) {
QString numbers;
for (int id : id_not_in_) {
numbers += (numbers.isEmpty() ? QLatin1String("") : QLatin1String(",")) + QString::number(id);
numbers += (numbers.isEmpty() ? ""_L1 : ","_L1) + QString::number(id);
}
where_clauses << QStringLiteral("(ROWID NOT IN (") + numbers + QStringLiteral("))");
}
@@ -80,15 +82,15 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
where_clauses << QStringLiteral("unavailable = 0");
if (!where_clauses.isEmpty()) {
sql += QLatin1String(" WHERE ") + where_clauses.join(QLatin1String(" AND "));
sql += " WHERE "_L1 + where_clauses.join(" AND "_L1);
}
// Add sort by
if (sort_type_ == SortType::Random) {
sql += QLatin1String(" ORDER BY random()");
sql += " ORDER BY random()"_L1;
}
else {
sql += QLatin1String(" ORDER BY ") + SmartPlaylistSearchTerm::FieldColumnName(sort_field_) + (sort_type_ == SortType::FieldAsc ? QLatin1String(" ASC") : QLatin1String(" DESC"));
sql += " ORDER BY "_L1 + SmartPlaylistSearchTerm::FieldColumnName(sort_field_) + (sort_type_ == SortType::FieldAsc ? " ASC"_L1 : " DESC"_L1);
}
// Add limit
@@ -96,7 +98,7 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
sql += QStringLiteral(" LIMIT %1 OFFSET %2").arg(limit_).arg(first_item_);
}
else if (limit_ != -1) {
sql += QLatin1String(" LIMIT ") + QString::number(limit_);
sql += " LIMIT "_L1 + QString::number(limit_);
}
//qLog(Debug) << sql;

View File

@@ -29,6 +29,8 @@
#include "smartplaylistsearchterm.h"
#include "playlist/playlist.h"
using namespace Qt::StringLiterals;
SmartPlaylistSearchTerm::SmartPlaylistSearchTerm() : field_(Field::Title), operator_(Operator::Equals), datetype_(DateType::Hour) {}
SmartPlaylistSearchTerm::SmartPlaylistSearchTerm(Field field, Operator op, const QVariant &value)
@@ -39,7 +41,7 @@ QString SmartPlaylistSearchTerm::ToSql() const {
QString col = FieldColumnName(field_);
QString date = DateName(datetype_, true);
QString value = value_.toString();
value.replace(QLatin1Char('\''), QLatin1String("''"));
value.replace(u'\'', "''"_L1);
if (field_ == Field::Filetype) {
Song::FileType filetype = Song::FiletypeByExtension(value);
@@ -62,12 +64,12 @@ QString SmartPlaylistSearchTerm::ToSql() const {
if (TypeOf(field_) == Type::Date) {
if (special_date_query) {
// We have a numeric date, consider also the time for more precision
col = QLatin1String("DATETIME(") + col + QLatin1String(", 'unixepoch', 'localtime')");
col = "DATETIME("_L1 + col + ", 'unixepoch', 'localtime')"_L1;
second_value = second_value_.toString();
second_value.replace(QLatin1Char('\''), QLatin1String("''"));
if (date == QLatin1String("weeks")) {
second_value.replace(u'\'', "''"_L1);
if (date == "weeks"_L1) {
// Sqlite doesn't know weeks, transform them to days
date = QLatin1String("days");
date = "days"_L1;
value = QString::number(value_.toInt() * 7);
second_value = QString::number(second_value_.toInt() * 7);
}
@@ -76,13 +78,13 @@ QString SmartPlaylistSearchTerm::ToSql() const {
// We have the exact date
// The calendar widget specifies no time so ditch the possible time part
// from integers representing the dates.
col = QLatin1String("DATE(") + col + QLatin1String(", 'unixepoch', 'localtime')");
value = QLatin1String("DATE(") + value + QLatin1String(", 'unixepoch', 'localtime')");
col = "DATE("_L1 + col + ", 'unixepoch', 'localtime')"_L1;
value = "DATE("_L1 + value + ", 'unixepoch', 'localtime')"_L1;
}
}
else if (TypeOf(field_) == Type::Time) {
// Convert seconds to nanoseconds
value = QLatin1String("CAST (") + value + QLatin1String(" *1000000000 AS INTEGER)");
value = "CAST ("_L1 + value + " *1000000000 AS INTEGER)"_L1;
}
// File paths need some extra processing since they are stored as encoded urls in the database.
@@ -95,61 +97,61 @@ QString SmartPlaylistSearchTerm::ToSql() const {
}
}
else if (TypeOf(field_) == Type::Rating) {
col = QLatin1String("CAST ((replace(") + col + QLatin1String(", -1, 0) + 0.05) * 10 AS INTEGER)");
value = QLatin1String("CAST ((") + value + QLatin1String(" + 0.05) * 10 AS INTEGER)");
col = "CAST ((replace("_L1 + col + ", -1, 0) + 0.05) * 10 AS INTEGER)"_L1;
value = "CAST (("_L1 + value + " + 0.05) * 10 AS INTEGER)"_L1;
}
switch (operator_) {
case Operator::Contains:
return col + QLatin1String(" LIKE '%") + value + QLatin1String("%'");
return col + " LIKE '%"_L1 + value + "%'"_L1;
case Operator::NotContains:
return col + QLatin1String(" NOT LIKE '%") + value + QLatin1String("%'");
return col + " NOT LIKE '%"_L1 + value + "%'"_L1;
case Operator::StartsWith:
return col + QLatin1String(" LIKE '") + value + QLatin1String("%'");
return col + " LIKE '"_L1 + value + "%'"_L1;
case Operator::EndsWith:
return col + QLatin1String(" LIKE '%") + value + QLatin1Char('\'');
return col + " LIKE '%"_L1 + value + u'\'';
case Operator::Equals:
if (TypeOf(field_) == Type::Text) {
return col + QLatin1String(" LIKE '") + value + QLatin1Char('\'');
return col + " LIKE '"_L1 + value + u'\'';
}
else if (TypeOf(field_) == Type::Date || TypeOf(field_) == Type::Time || TypeOf(field_) == Type::Rating) {
return col + QLatin1String(" = ") + value;
return col + " = "_L1 + value;
}
else {
return col + QLatin1String(" = '") + value + QLatin1Char('\'');
return col + " = '"_L1 + value + u'\'';
}
case Operator::GreaterThan:
if (TypeOf(field_) == Type::Date || TypeOf(field_) == Type::Time || TypeOf(field_) == Type::Rating) {
return col + QLatin1String(" > ") + value;
return col + " > "_L1 + value;
}
else {
return col + QLatin1String(" > '") + value + QLatin1Char('\'');
return col + " > '"_L1 + value + u'\'';
}
case Operator::LessThan:
if (TypeOf(field_) == Type::Date || TypeOf(field_) == Type::Time || TypeOf(field_) == Type::Rating) {
return col + QLatin1String(" < ") + value;
return col + " < "_L1 + value;
}
else {
return col + QLatin1String(" < '") + value + QLatin1Char('\'');
return col + " < '"_L1 + value + u'\'';
}
case Operator::NumericDate:
return col + QLatin1String(" > ") + QLatin1String("DATETIME('now', '-") + value + QLatin1Char(' ') + date + QLatin1String("', 'localtime')");
return col + " > "_L1 + "DATETIME('now', '-"_L1 + value + u' ' + date + "', 'localtime')"_L1;
case Operator::NumericDateNot:
return col + QLatin1String(" < ") + QLatin1String("DATETIME('now', '-") + value + QLatin1Char(' ') + date + QLatin1String("', 'localtime')");
return col + " < "_L1 + "DATETIME('now', '-"_L1 + value + u' ' + date + "', 'localtime')"_L1;
case Operator::RelativeDate:
// Consider the time range before the first date but after the second one
return QLatin1String("(") + col + QLatin1String(" < ") + QLatin1String("DATETIME('now', '-") + value + QLatin1Char(' ') + date + QLatin1String("', 'localtime') AND ") + col + QLatin1String(" > ") + QLatin1String("DATETIME('now', '-") + second_value + QLatin1Char(' ') + date + QLatin1String("', 'localtime'))");
return "("_L1 + col + " < "_L1 + "DATETIME('now', '-"_L1 + value + u' ' + date + "', 'localtime') AND "_L1 + col + " > "_L1 + "DATETIME('now', '-"_L1 + second_value + u' ' + date + "', 'localtime'))"_L1;
case Operator::NotEquals:
if (TypeOf(field_) == Type::Text) {
return col + QLatin1String(" <> '") + value + QLatin1Char('\'');
return col + " <> '"_L1 + value + u'\'';
}
else {
return col + QLatin1String(" <> ") + value;
return col + " <> "_L1 + value;
}
case Operator::Empty:
return col + QLatin1String(" = ''");
return col + " = ''"_L1;
case Operator::NotEmpty:
return col + QLatin1String(" <> ''");
return col + " <> ''"_L1;
}
return QString();

View File

@@ -41,6 +41,8 @@
#include "smartplaylistsearchtermwidgetoverlay.h"
#include "ui_smartplaylistsearchtermwidget.h"
using namespace Qt::StringLiterals;
SmartPlaylistSearchTermWidget::SmartPlaylistSearchTermWidget(SharedPtr<CollectionBackend> collection_backend, QWidget *parent)
: QWidget(parent),
ui_(new Ui_SmartPlaylistSearchTermWidget),
@@ -97,10 +99,10 @@ SmartPlaylistSearchTermWidget::SmartPlaylistSearchTermWidget(SharedPtr<Collectio
QString stylesheet = QString::fromLatin1(stylesheet_file.readAll());
stylesheet_file.close();
const QColor base(222, 97, 97, 128);
stylesheet.replace(QLatin1String("%light2"), Utilities::ColorToRgba(base.lighter(140)));
stylesheet.replace(QLatin1String("%light"), Utilities::ColorToRgba(base.lighter(120)));
stylesheet.replace(QLatin1String("%dark"), Utilities::ColorToRgba(base.darker(120)));
stylesheet.replace(QLatin1String("%base"), Utilities::ColorToRgba(base));
stylesheet.replace("%light2"_L1, Utilities::ColorToRgba(base.lighter(140)));
stylesheet.replace("%light"_L1, Utilities::ColorToRgba(base.lighter(120)));
stylesheet.replace("%dark"_L1, Utilities::ColorToRgba(base.darker(120)));
stylesheet.replace("%base"_L1, Utilities::ColorToRgba(base));
setStyleSheet(stylesheet);
}
@@ -295,7 +297,7 @@ void SmartPlaylistSearchTermWidget::SetTerm(const SmartPlaylistSearchTerm &term)
switch (SmartPlaylistSearchTerm::TypeOf(term.field_)) {
case SmartPlaylistSearchTerm::Type::Text:
if (ui_->value_stack->currentWidget() == ui_->page_empty) {
ui_->value_text->setText(QLatin1String(""));
ui_->value_text->setText(""_L1);
}
else {
ui_->value_text->setText(term.value_.toString());
@@ -350,7 +352,7 @@ SmartPlaylistSearchTerm SmartPlaylistSearchTermWidget::Term() const {
ret.value_ = ui_->value_text->text();
}
else if (value_page == ui_->page_empty) {
ret.value_ = QLatin1String("");
ret.value_ = ""_L1;
}
else if (value_page == ui_->page_number) {
ret.value_ = ui_->value_number->value();