Port to QStringLiteral operator

This commit is contained in:
Jonas Kvinge
2024-10-20 06:38:55 +02:00
parent 722035913e
commit ef9ef63f02
202 changed files with 2036 additions and 1889 deletions

View File

@@ -210,8 +210,8 @@ void CollectionBackend::ChangeDirPath(const int id, const QString &old_path, con
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET path=:path WHERE ROWID=:id").arg(dirs_table_));
q.BindValue(QStringLiteral(":path"), new_path);
q.BindValue(QStringLiteral(":id"), id);
q.BindValue(u":path"_s, new_path);
q.BindValue(u":id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -227,8 +227,8 @@ void CollectionBackend::ChangeDirPath(const int id, const QString &old_path, con
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET path=:path || substr(path, %2) WHERE directory=:id").arg(subdirs_table_).arg(path_len));
q.BindValue(QStringLiteral(":path"), new_url);
q.BindValue(QStringLiteral(":id"), id);
q.BindValue(u":path"_s, new_url);
q.BindValue(u":id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -239,8 +239,8 @@ void CollectionBackend::ChangeDirPath(const int id, const QString &old_path, con
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET url=:path || substr(url, %2) WHERE directory=:id").arg(songs_table_).arg(path_len));
q.BindValue(QStringLiteral(":path"), new_url);
q.BindValue(QStringLiteral(":id"), id);
q.BindValue(u":path"_s, new_url);
q.BindValue(u":id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -288,7 +288,7 @@ CollectionSubdirectoryList CollectionBackend::SubdirsInDirectory(const int id, Q
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT path, mtime FROM %1 WHERE directory_id = :dir").arg(subdirs_table_));
q.BindValue(QStringLiteral(":dir"), id);
q.BindValue(u":dir"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return CollectionSubdirectoryList();
@@ -379,7 +379,7 @@ void CollectionBackend::AddDirectory(const QString &path) {
{
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT ROWID FROM %1 WHERE path = :path").arg(dirs_table_));
q.BindValue(QStringLiteral(":path"), path);
q.BindValue(u":path"_s, path);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -391,7 +391,7 @@ void CollectionBackend::AddDirectory(const QString &path) {
SqlQuery q(db);
q.prepare(QStringLiteral("INSERT INTO %1 (path, subdirs) VALUES (:path, 1)").arg(dirs_table_));
q.BindValue(QStringLiteral(":path"), path);
q.BindValue(u":path"_s, path);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -423,7 +423,7 @@ void CollectionBackend::RemoveDirectory(const CollectionDirectory &dir) {
{
SqlQuery q(db);
q.prepare(QStringLiteral("DELETE FROM %1 WHERE directory_id = :id").arg(subdirs_table_));
q.BindValue(QStringLiteral(":id"), dir.id);
q.BindValue(u":id"_s, dir.id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -434,7 +434,7 @@ void CollectionBackend::RemoveDirectory(const CollectionDirectory &dir) {
{
SqlQuery q(db);
q.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(dirs_table_));
q.BindValue(QStringLiteral(":id"), dir.id);
q.BindValue(u":id"_s, dir.id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -454,7 +454,7 @@ SongList CollectionBackend::FindSongsInDirectory(const int id) {
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE directory_id = :directory_id").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":directory_id"), id);
q.BindValue(u":directory_id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -477,7 +477,7 @@ SongList CollectionBackend::SongsWithMissingFingerprint(const int id) {
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE directory_id = :directory_id AND unavailable = 0 AND (fingerprint IS NULL OR fingerprint = '')").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":directory_id"), id);
q.BindValue(u":directory_id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -500,7 +500,7 @@ SongList CollectionBackend::SongsWithMissingLoudnessCharacteristics(const int id
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE directory_id = :directory_id AND unavailable = 0 AND (ebur128_integrated_loudness_lufs IS NULL OR ebur128_loudness_range_lu IS NULL)").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":directory_id"), id);
q.BindValue(u":directory_id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -543,8 +543,8 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
// Delete the subdirectory
SqlQuery q(db);
q.prepare(QStringLiteral("DELETE FROM %1 WHERE directory_id = :id AND path = :path").arg(subdirs_table_));
q.BindValue(QStringLiteral(":id"), subdir.directory_id);
q.BindValue(QStringLiteral(":path"), subdir.path);
q.BindValue(u":id"_s, subdir.directory_id);
q.BindValue(u":path"_s, subdir.path);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -556,8 +556,8 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
{
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT ROWID FROM %1 WHERE directory_id = :id AND path = :path").arg(subdirs_table_));
q.BindValue(QStringLiteral(":id"), subdir.directory_id);
q.BindValue(QStringLiteral(":path"), subdir.path);
q.BindValue(u":id"_s, subdir.directory_id);
q.BindValue(u":path"_s, subdir.path);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -568,9 +568,9 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
if (exists) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET mtime = :mtime WHERE directory_id = :id AND path = :path").arg(subdirs_table_));
q.BindValue(QStringLiteral(":mtime"), subdir.mtime);
q.BindValue(QStringLiteral(":id"), subdir.directory_id);
q.BindValue(QStringLiteral(":path"), subdir.path);
q.BindValue(u":mtime"_s, subdir.mtime);
q.BindValue(u":id"_s, subdir.directory_id);
q.BindValue(u":path"_s, subdir.path);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -579,9 +579,9 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
else {
SqlQuery q(db);
q.prepare(QStringLiteral("INSERT INTO %1 (directory_id, path, mtime) VALUES (:id, :path, :mtime)").arg(subdirs_table_));
q.BindValue(QStringLiteral(":id"), subdir.directory_id);
q.BindValue(QStringLiteral(":path"), subdir.path);
q.BindValue(QStringLiteral(":mtime"), subdir.mtime);
q.BindValue(u":id"_s, subdir.directory_id);
q.BindValue(u":path"_s, subdir.path);
q.BindValue(u":mtime"_s, subdir.mtime);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -637,7 +637,7 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
if (!dirs_table_.isEmpty()) {
SqlQuery check_dir(db);
check_dir.prepare(QStringLiteral("SELECT ROWID FROM %1 WHERE ROWID = :id").arg(dirs_table_));
check_dir.BindValue(QStringLiteral(":id"), song.directory_id());
check_dir.BindValue(u":id"_s, song.directory_id());
if (!check_dir.Exec()) {
db_->ReportErrors(check_dir);
return;
@@ -658,7 +658,7 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
song.BindToQuery(&q);
q.BindValue(QStringLiteral(":id"), song.id());
q.BindValue(u":id"_s, song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -685,7 +685,7 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
new_song.BindToQuery(&q);
q.BindValue(QStringLiteral(":id"), new_song.id());
q.BindValue(u":id"_s, new_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -770,7 +770,7 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
new_song.BindToQuery(&q);
q.BindValue(QStringLiteral(":id"), old_song.id());
q.BindValue(u":id"_s, old_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -813,7 +813,7 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
{
SqlQuery q(db);
q.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":id"), old_song.id());
q.BindValue(u":id"_s, old_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -844,8 +844,8 @@ void CollectionBackend::UpdateMTimesOnly(const SongList &songs) {
for (const Song &song : songs) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET mtime = :mtime WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":mtime"), song.mtime());
q.BindValue(QStringLiteral(":id"), song.id());
q.BindValue(u":mtime"_s, song.mtime());
q.BindValue(u":id"_s, song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -864,7 +864,7 @@ void CollectionBackend::DeleteSongs(const SongList &songs) {
for (const Song &song : songs) {
SqlQuery q(db);
q.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":id"), song.id());
q.BindValue(u":id"_s, song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -891,7 +891,7 @@ void CollectionBackend::MarkSongsUnavailable(const SongList &songs, const bool u
ScopedTransaction transaction(&db);
for (const Song &song : songs) {
query.BindValue(QStringLiteral(":id"), song.id());
query.BindValue(u":id"_s, song.id());
if (!query.Exec()) {
db_->ReportErrors(query);
return;
@@ -918,7 +918,7 @@ QStringList CollectionBackend::GetAll(const QString &column, const CollectionFil
QSqlDatabase db(db_->Connect());
CollectionQuery query(db, songs_table_, filter_options);
query.SetColumnSpec(QStringLiteral("DISTINCT ") + column);
query.SetColumnSpec(u"DISTINCT "_s + column);
query.AddCompilationRequirement(false);
if (!query.Exec()) {
@@ -936,7 +936,8 @@ QStringList CollectionBackend::GetAll(const QString &column, const CollectionFil
QStringList CollectionBackend::GetAllArtists(const CollectionFilterOptions &opt) {
return GetAll(QStringLiteral("artist"), opt);
return GetAll(u"artist"_s, opt);
}
QStringList CollectionBackend::GetAllArtistsWithAlbums(const CollectionFilterOptions &opt) {
@@ -946,16 +947,16 @@ QStringList CollectionBackend::GetAllArtistsWithAlbums(const CollectionFilterOpt
// Albums with 'albumartist' field set:
CollectionQuery query(db, songs_table_, opt);
query.SetColumnSpec(QStringLiteral("DISTINCT albumartist"));
query.SetColumnSpec(u"DISTINCT albumartist"_s);
query.AddCompilationRequirement(false);
query.AddWhere(QStringLiteral("album"), ""_L1, QStringLiteral("!="));
query.AddWhere(u"album"_s, ""_L1, u"!="_s);
// Albums with no 'albumartist' (extract 'artist'):
CollectionQuery query2(db, songs_table_, opt);
query2.SetColumnSpec(QStringLiteral("DISTINCT artist"));
query2.SetColumnSpec(u"DISTINCT artist"_s);
query2.AddCompilationRequirement(false);
query2.AddWhere(QStringLiteral("album"), ""_L1, QStringLiteral("!="));
query2.AddWhere(QStringLiteral("albumartist"), ""_L1, QStringLiteral("="));
query2.AddWhere(u"album"_s, ""_L1, u"!="_s);
query2.AddWhere(u"albumartist"_s, ""_L1, u"="_s);
if (!query.Exec()) {
ReportErrors(query);
@@ -994,7 +995,7 @@ SongList CollectionBackend::GetArtistSongs(const QString &effective_albumartist,
CollectionQuery query(db, songs_table_, opt);
query.AddCompilationRequirement(false);
query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
query.AddWhere(u"effective_albumartist"_s, effective_albumartist);
SongList songs;
if (!ExecCollectionQuery(&query, songs)) {
@@ -1012,8 +1013,8 @@ SongList CollectionBackend::GetAlbumSongs(const QString &effective_albumartist,
CollectionQuery query(db, songs_table_, opt);
query.AddCompilationRequirement(false);
query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
query.AddWhere(QStringLiteral("album"), album);
query.AddWhere(u"effective_albumartist"_s, effective_albumartist);
query.AddWhere(u"album"_s, album);
SongList songs;
if (!ExecCollectionQuery(&query, songs)) {
@@ -1031,7 +1032,7 @@ SongList CollectionBackend::GetSongsByAlbum(const QString &album, const Collecti
CollectionQuery query(db, songs_table_, opt);
query.AddCompilationRequirement(false);
query.AddWhere(QStringLiteral("album"), album);
query.AddWhere(u"album"_s, album);
SongList songs;
if (!ExecCollectionQuery(&query, songs)) {
@@ -1044,7 +1045,7 @@ SongList CollectionBackend::GetSongsByAlbum(const QString &album, const Collecti
bool CollectionBackend::ExecCollectionQuery(CollectionQuery *query, SongList &songs) {
query->SetColumnSpec(QStringLiteral("%songs_table.ROWID, ") + Song::kColumnSpec);
query->SetColumnSpec(u"%songs_table.ROWID, "_s + Song::kColumnSpec);
if (!query->Exec()) return false;
@@ -1059,7 +1060,7 @@ bool CollectionBackend::ExecCollectionQuery(CollectionQuery *query, SongList &so
bool CollectionBackend::ExecCollectionQuery(CollectionQuery *query, SongMap &songs) {
query->SetColumnSpec(QStringLiteral("%songs_table.ROWID, ") + Song::kColumnSpec);
query->SetColumnSpec(u"%songs_table.ROWID, "_s + Song::kColumnSpec);
if (!query->Exec()) return false;
@@ -1166,11 +1167,11 @@ Song CollectionBackend::GetSongByUrl(const QUrl &url, const qint64 beginning) {
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND beginning = :beginning AND unavailable = 0").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":url1"), url.toString());
q.BindValue(QStringLiteral(":url2"), url.toString(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":url3"), url.toEncoded(QUrl::FullyDecoded));
q.BindValue(QStringLiteral(":url4"), url.toEncoded(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":beginning"), beginning);
q.BindValue(u":url1"_s, url.toString());
q.BindValue(u":url2"_s, url.toString(QUrl::FullyEncoded));
q.BindValue(u":url3"_s, url.toEncoded(QUrl::FullyDecoded));
q.BindValue(u":url4"_s, url.toEncoded(QUrl::FullyEncoded));
q.BindValue(u":beginning"_s, beginning);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1195,11 +1196,11 @@ Song CollectionBackend::GetSongByUrlAndTrack(const QUrl &url, const int track) {
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND track = :track AND unavailable = 0").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":url1"), url.toString());
q.BindValue(QStringLiteral(":url2"), url.toString(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":url3"), url.toEncoded(QUrl::FullyDecoded));
q.BindValue(QStringLiteral(":url4"), url.toEncoded(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":track"), track);
q.BindValue(u":url1"_s, url.toString());
q.BindValue(u":url2"_s, url.toString(QUrl::FullyEncoded));
q.BindValue(u":url3"_s, url.toEncoded(QUrl::FullyDecoded));
q.BindValue(u":url4"_s, url.toEncoded(QUrl::FullyEncoded));
q.BindValue(u":track"_s, track);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1224,11 +1225,11 @@ SongList CollectionBackend::GetSongsByUrl(const QUrl &url, const bool unavailabl
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = :unavailable").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":url1"), url.toString());
q.BindValue(QStringLiteral(":url2"), url.toString(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":url3"), url.toEncoded(QUrl::FullyDecoded));
q.BindValue(QStringLiteral(":url4"), url.toEncoded(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":unavailable"), (unavailable ? 1 : 0));
q.BindValue(u":url1"_s, url.toString());
q.BindValue(u":url2"_s, url.toString(QUrl::FullyEncoded));
q.BindValue(u":url3"_s, url.toEncoded(QUrl::FullyDecoded));
q.BindValue(u":url4"_s, url.toEncoded(QUrl::FullyEncoded));
q.BindValue(u":unavailable"_s, (unavailable ? 1 : 0));
SongList songs;
if (!q.Exec()) {
@@ -1305,7 +1306,7 @@ SongList CollectionBackend::GetSongsByFingerprint(const QString &fingerprint) {
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE fingerprint = :fingerprint").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":fingerprint"), fingerprint);
q.BindValue(u":fingerprint"_s, fingerprint);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -1333,9 +1334,9 @@ SongList CollectionBackend::GetCompilationSongs(const QString &album, const Coll
QSqlDatabase db(db_->Connect());
CollectionQuery query(db, songs_table_, opt);
query.SetColumnSpec(QStringLiteral("%songs_table.ROWID, ") + Song::kColumnSpec);
query.SetColumnSpec(u"%songs_table.ROWID, "_s + Song::kColumnSpec);
query.AddCompilationRequirement(true);
query.AddWhere(QStringLiteral("album"), album);
query.AddWhere(u"album"_s, album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1426,10 +1427,10 @@ bool CollectionBackend::UpdateCompilations(const QSqlDatabase &db, SongList &cha
{ // Get song, so we can tell the model its updated
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = 0").arg(Song::kRowIdColumnSpec, songs_table_));
q.BindValue(QStringLiteral(":url1"), url.toString());
q.BindValue(QStringLiteral(":url2"), url.toString(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":url3"), url.toEncoded(QUrl::FullyDecoded));
q.BindValue(QStringLiteral(":url4"), url.toEncoded(QUrl::FullyEncoded));
q.BindValue(u":url1"_s, url.toString());
q.BindValue(u":url2"_s, url.toString(QUrl::FullyEncoded));
q.BindValue(u":url3"_s, url.toEncoded(QUrl::FullyDecoded));
q.BindValue(u":url4"_s, url.toEncoded(QUrl::FullyEncoded));
if (q.Exec()) {
while (q.next()) {
Song song(source_);
@@ -1447,11 +1448,11 @@ bool CollectionBackend::UpdateCompilations(const QSqlDatabase &db, SongList &cha
// Update the song
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET compilation_detected = :compilation_detected, compilation_effective = ((compilation OR :compilation_detected OR compilation_on) AND NOT compilation_off) + 0 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = 0").arg(songs_table_));
q.BindValue(QStringLiteral(":compilation_detected"), static_cast<int>(compilation_detected));
q.BindValue(QStringLiteral(":url1"), url.toString());
q.BindValue(QStringLiteral(":url2"), url.toString(QUrl::FullyEncoded));
q.BindValue(QStringLiteral(":url3"), url.toEncoded(QUrl::FullyDecoded));
q.BindValue(QStringLiteral(":url4"), url.toEncoded(QUrl::FullyEncoded));
q.BindValue(u":compilation_detected"_s, static_cast<int>(compilation_detected));
q.BindValue(u":url1"_s, url.toString());
q.BindValue(u":url2"_s, url.toString(QUrl::FullyEncoded));
q.BindValue(u":url3"_s, url.toEncoded(QUrl::FullyDecoded));
q.BindValue(u":url4"_s, url.toEncoded(QUrl::FullyEncoded));
if (!q.Exec()) {
db_->ReportErrors(q);
return false;
@@ -1467,15 +1468,15 @@ CollectionBackend::AlbumList CollectionBackend::GetAlbums(const QString &artist,
QSqlDatabase db(db_->Connect());
CollectionQuery query(db, songs_table_, opt);
query.SetColumnSpec(QStringLiteral("url, filetype, cue_path, effective_albumartist, album, compilation_effective, art_embedded, art_automatic, art_manual, art_unset"));
query.SetOrderBy(QStringLiteral("effective_albumartist, album, url"));
query.SetColumnSpec(u"url, filetype, cue_path, effective_albumartist, album, compilation_effective, art_embedded, art_automatic, art_manual, art_unset"_s);
query.SetOrderBy(u"effective_albumartist, album, url"_s);
if (compilation_required) {
query.AddCompilationRequirement(true);
}
else if (!artist.isEmpty()) {
query.AddCompilationRequirement(false);
query.AddWhere(QStringLiteral("effective_albumartist"), artist);
query.AddWhere(u"effective_albumartist"_s, artist);
}
if (!query.Exec()) {
@@ -1503,7 +1504,7 @@ CollectionBackend::AlbumList CollectionBackend::GetAlbums(const QString &artist,
album_info.art_embedded = query.Value(6).toBool();
const QString art_automatic = query.Value(7).toString();
static const QRegularExpression regex_url_schema(QStringLiteral("..+:.*"));
static const QRegularExpression regex_url_schema(u"..+:.*"_s);
if (art_automatic.contains(regex_url_schema)) {
album_info.art_automatic = QUrl::fromEncoded(art_automatic.toUtf8());
}
@@ -1559,11 +1560,11 @@ CollectionBackend::Album CollectionBackend::GetAlbumArt(const QString &effective
ret.album_artist = effective_albumartist;
CollectionQuery query(db, songs_table_);
query.SetColumnSpec(QStringLiteral("url, art_embedded, art_automatic, art_manual, art_unset"));
query.SetColumnSpec(u"url, art_embedded, art_automatic, art_manual, art_unset"_s);
if (!effective_albumartist.isEmpty()) {
query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
query.AddWhere(u"effective_albumartist"_s, effective_albumartist);
}
query.AddWhere(QStringLiteral("album"), album);
query.AddWhere(u"album"_s, album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1596,9 +1597,9 @@ void CollectionBackend::UpdateEmbeddedAlbumArt(const QString &effective_albumart
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET art_embedded = :art_embedded, art_unset = 0 WHERE effective_albumartist = :effective_albumartist AND album = :album AND unavailable = 0").arg(songs_table_));
q.BindValue(QStringLiteral(":art_embedded"), art_embedded ? 1 : 0);
q.BindValue(QStringLiteral(":effective_albumartist"), effective_albumartist);
q.BindValue(QStringLiteral(":album"), album);
q.BindValue(u":art_embedded"_s, art_embedded ? 1 : 0);
q.BindValue(u":effective_albumartist"_s, effective_albumartist);
q.BindValue(u":album"_s, album);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1609,8 +1610,8 @@ void CollectionBackend::UpdateEmbeddedAlbumArt(const QString &effective_albumart
{
CollectionQuery q(db, songs_table_);
q.SetColumnSpec(Song::kRowIdColumnSpec);
q.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
q.AddWhere(QStringLiteral("album"), album);
q.AddWhere(u"effective_albumartist"_s, effective_albumartist);
q.AddWhere(u"album"_s, album);
if (!q.Exec()) {
ReportErrors(q);
return;
@@ -1642,9 +1643,9 @@ void CollectionBackend::UpdateManualAlbumArt(const QString &effective_albumartis
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET art_manual = :art_manual, art_unset = 0 WHERE effective_albumartist = :effective_albumartist AND album = :album AND unavailable = 0").arg(songs_table_));
q.BindValue(QStringLiteral(":art_manual"), art_manual.isValid() ? art_manual.toString(QUrl::FullyEncoded) : ""_L1);
q.BindValue(QStringLiteral(":effective_albumartist"), effective_albumartist);
q.BindValue(QStringLiteral(":album"), album);
q.BindValue(u":art_manual"_s, art_manual.isValid() ? art_manual.toString(QUrl::FullyEncoded) : ""_L1);
q.BindValue(u":effective_albumartist"_s, effective_albumartist);
q.BindValue(u":album"_s, album);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1655,8 +1656,8 @@ void CollectionBackend::UpdateManualAlbumArt(const QString &effective_albumartis
{
CollectionQuery q(db, songs_table_);
q.SetColumnSpec(Song::kRowIdColumnSpec);
q.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
q.AddWhere(QStringLiteral("album"), album);
q.AddWhere(u"effective_albumartist"_s, effective_albumartist);
q.AddWhere(u"album"_s, album);
if (!q.Exec()) {
ReportErrors(q);
return;
@@ -1688,8 +1689,8 @@ void CollectionBackend::UnsetAlbumArt(const QString &effective_albumartist, cons
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET art_unset = 1, art_manual = '', art_automatic = '', art_embedded = '' WHERE effective_albumartist = :effective_albumartist AND album = :album AND unavailable = 0").arg(songs_table_));
q.BindValue(QStringLiteral(":effective_albumartist"), effective_albumartist);
q.BindValue(QStringLiteral(":album"), album);
q.BindValue(u":effective_albumartist"_s, effective_albumartist);
q.BindValue(u":album"_s, album);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1700,8 +1701,8 @@ void CollectionBackend::UnsetAlbumArt(const QString &effective_albumartist, cons
{
CollectionQuery q(db, songs_table_);
q.SetColumnSpec(Song::kRowIdColumnSpec);
q.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
q.AddWhere(QStringLiteral("album"), album);
q.AddWhere(u"effective_albumartist"_s, effective_albumartist);
q.AddWhere(u"album"_s, album);
if (!q.Exec()) {
ReportErrors(q);
return;
@@ -1733,9 +1734,9 @@ void CollectionBackend::ClearAlbumArt(const QString &effective_albumartist, cons
{
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET art_embedded = 0, art_automatic = '', art_manual = '', art_unset = :art_unset WHERE effective_albumartist = :effective_albumartist AND album = :album AND unavailable = 0").arg(songs_table_));
q.BindValue(QStringLiteral(":art_unset"), art_unset ? 1 : 0);
q.BindValue(QStringLiteral(":effective_albumartist"), effective_albumartist);
q.BindValue(QStringLiteral(":album"), album);
q.BindValue(u":art_unset"_s, art_unset ? 1 : 0);
q.BindValue(u":effective_albumartist"_s, effective_albumartist);
q.BindValue(u":album"_s, album);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1746,8 +1747,8 @@ void CollectionBackend::ClearAlbumArt(const QString &effective_albumartist, cons
{
CollectionQuery q(db, songs_table_);
q.SetColumnSpec(Song::kRowIdColumnSpec);
q.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
q.AddWhere(QStringLiteral("album"), album);
q.AddWhere(u"effective_albumartist"_s, effective_albumartist);
q.AddWhere(u"album"_s, album);
if (!q.Exec()) {
ReportErrors(q);
return;
@@ -1779,10 +1780,10 @@ void CollectionBackend::ForceCompilation(const QString &album, const QStringList
SqlQuery q(db);
q.prepare(sql);
q.BindValue(QStringLiteral(":compilation_on"), on ? 1 : 0);
q.BindValue(QStringLiteral(":compilation_off"), on ? 0 : 1);
q.BindValue(QStringLiteral(":album"), album);
if (!artist.isEmpty()) q.BindValue(QStringLiteral(":artist"), artist);
q.BindValue(u":compilation_on"_s, on ? 1 : 0);
q.BindValue(u":compilation_off"_s, on ? 0 : 1);
q.BindValue(u":album"_s, album);
if (!artist.isEmpty()) q.BindValue(u":artist"_s, artist);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1793,8 +1794,8 @@ void CollectionBackend::ForceCompilation(const QString &album, const QStringList
CollectionQuery query(db, songs_table_);
query.SetColumnSpec(Song::kRowIdColumnSpec);
query.AddWhere(QStringLiteral("album"), album);
if (!artist.isEmpty()) query.AddWhere(QStringLiteral("artist"), artist);
query.AddWhere(u"album"_s, album);
if (!artist.isEmpty()) query.AddWhere(u"artist"_s, artist);
if (!query.Exec()) {
ReportErrors(query);
@@ -1823,8 +1824,8 @@ void CollectionBackend::IncrementPlayCount(const int id) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET playcount = playcount + 1, lastplayed = :now WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":now"), QDateTime::currentSecsSinceEpoch());
q.BindValue(QStringLiteral(":id"), id);
q.BindValue(u":now"_s, QDateTime::currentSecsSinceEpoch());
q.BindValue(u":id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1846,7 +1847,7 @@ void CollectionBackend::IncrementSkipCount(const int id, const float progress) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET skipcount = skipcount + 1 WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":id"), id);
q.BindValue(u":id"_s, id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1892,7 +1893,7 @@ bool CollectionBackend::ResetPlayStatistics(const QStringList &id_str_list) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET playcount = 0, skipcount = 0, lastplayed = -1 WHERE ROWID IN (:ids)").arg(songs_table_));
q.BindValue(QStringLiteral(":ids"), id_str_list.join(u','));
q.BindValue(u":ids"_s, id_str_list.join(u','));
if (!q.Exec()) {
db_->ReportErrors(q);
return false;
@@ -1917,7 +1918,7 @@ void CollectionBackend::DeleteAll() {
{
SqlQuery q(db);
q.prepare(QStringLiteral("DELETE FROM ") + songs_table_);
q.prepare(u"DELETE FROM "_s + songs_table_);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1978,9 +1979,9 @@ SongList CollectionBackend::GetSongsBy(const QString &artist, const QString &alb
else {
q.prepare(QStringLiteral("SELECT %1 FROM %2 WHERE artist = :artist COLLATE NOCASE AND album = :album COLLATE NOCASE AND title = :title COLLATE NOCASE").arg(Song::kRowIdColumnSpec, songs_table_));
}
q.BindValue(QStringLiteral(":artist"), artist);
if (!album.isEmpty()) q.BindValue(QStringLiteral(":album"), album);
q.BindValue(QStringLiteral(":title"), title);
q.BindValue(u":artist"_s, artist);
if (!album.isEmpty()) q.BindValue(u":album"_s, album);
q.BindValue(u":title"_s, title);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -2012,8 +2013,8 @@ void CollectionBackend::UpdateLastPlayed(const QString &artist, const QString &a
}
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET lastplayed = :lastplayed WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":lastplayed"), lastplayed);
q.BindValue(QStringLiteral(":id"), song.id());
q.BindValue(u":lastplayed"_s, lastplayed);
q.BindValue(u":id"_s, song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
continue;
@@ -2038,8 +2039,8 @@ void CollectionBackend::UpdatePlayCount(const QString &artist, const QString &ti
for (const Song &song : songs) {
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET playcount = :playcount WHERE ROWID = :id").arg(songs_table_));
q.BindValue(QStringLiteral(":playcount"), playcount);
q.BindValue(QStringLiteral(":id"), song.id());
q.BindValue(u":playcount"_s, playcount);
q.BindValue(u":id"_s, song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2073,7 +2074,7 @@ void CollectionBackend::UpdateSongsRating(const QList<int> &id_list, const float
QString ids = id_str_list.join(u',');
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET rating = :rating WHERE ROWID IN (%2)").arg(songs_table_, ids));
q.BindValue(QStringLiteral(":rating"), rating);
q.BindValue(u":rating"_s, rating);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2101,8 +2102,8 @@ void CollectionBackend::UpdateLastSeen(const int directory_id, const int expire_
SqlQuery q(db);
q.prepare(QStringLiteral("UPDATE %1 SET lastseen = :lastseen WHERE directory_id = :directory_id AND unavailable = 0").arg(songs_table_));
q.BindValue(QStringLiteral(":lastseen"), QDateTime::currentSecsSinceEpoch());
q.BindValue(QStringLiteral(":directory_id"), directory_id);
q.BindValue(u":lastseen"_s, QDateTime::currentSecsSinceEpoch());
q.BindValue(u":directory_id"_s, directory_id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2121,8 +2122,8 @@ void CollectionBackend::ExpireSongs(const int directory_id, const int expire_una
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
q.prepare(QStringLiteral("SELECT %1 FROM %2 LEFT JOIN playlist_items ON %2.ROWID = playlist_items.collection_id WHERE %2.directory_id = :directory_id AND %2.unavailable = 1 AND %2.lastseen > 0 AND %2.lastseen < :time AND playlist_items.collection_id IS NULL").arg(Song::JoinSpec(songs_table_), songs_table_));
q.BindValue(QStringLiteral(":directory_id"), directory_id);
q.BindValue(QStringLiteral(":time"), QDateTime::currentSecsSinceEpoch() - (expire_unavailable_songs_days * 86400LL));
q.BindValue(u":directory_id"_s, directory_id);
q.BindValue(u":time"_s, QDateTime::currentSecsSinceEpoch() - (expire_unavailable_songs_days * 86400LL));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2137,5 +2138,3 @@ void CollectionBackend::ExpireSongs(const int directory_id, const int expire_una
if (!songs.isEmpty()) DeleteSongs(songs);
}

View File

@@ -39,10 +39,11 @@
#include "collectiondirectorymodel.h"
using std::make_shared;
using namespace Qt::Literals::StringLiterals;
CollectionDirectoryModel::CollectionDirectoryModel(SharedPtr<CollectionBackend> backend, QObject *parent)
: QStandardItemModel(parent),
dir_icon_(IconLoader::Load(QStringLiteral("document-open-folder"))),
dir_icon_(IconLoader::Load(u"document-open-folder"_s)),
backend_(backend) {
QObject::connect(&*backend_, &CollectionBackend::DirectoryAdded, this, &CollectionDirectoryModel::AddDirectory);

View File

@@ -22,7 +22,6 @@
#include "config.h"
#include <utility>
#include <memory>
#include <QApplication>
#include <QWidget>
@@ -45,13 +44,11 @@
#include <QKeyEvent>
#include "core/iconloader.h"
#include "core/song.h"
#include "core/logging.h"
#include "core/settings.h"
#include "collectionfilteroptions.h"
#include "collectionmodel.h"
#include "collectionfilter.h"
#include "collectionquery.h"
#include "filterparser/filterparser.h"
#include "savedgroupingmanager.h"
#include "collectionfilterwidget.h"
@@ -93,7 +90,7 @@ CollectionFilterWidget::CollectionFilterWidget(QWidget *parent)
timer_filter_delay_->setSingleShot(true);
// Icons
ui_->options->setIcon(IconLoader::Load(QStringLiteral("configure")));
ui_->options->setIcon(IconLoader::Load(u"configure"_s));
// Filter by age
QActionGroup *filter_age_group = new QActionGroup(this);
@@ -218,7 +215,7 @@ void CollectionFilterWidget::ReloadSettings() {
QString CollectionFilterWidget::group_by_version() const {
if (settings_prefix_.isEmpty()) {
return QStringLiteral("group_by_version");
return u"group_by_version"_s;
}
return QStringLiteral("%1_group_by_version").arg(settings_prefix_);
@@ -228,7 +225,7 @@ QString CollectionFilterWidget::group_by_version() const {
QString CollectionFilterWidget::group_by_key() const {
if (settings_prefix_.isEmpty()) {
return QStringLiteral("group_by");
return u"group_by"_s;
}
return QStringLiteral("%1_group_by").arg(settings_prefix_);
@@ -240,7 +237,7 @@ QString CollectionFilterWidget::group_by_key(const int number) const { return gr
QString CollectionFilterWidget::separate_albums_by_grouping_key() const {
if (settings_prefix_.isEmpty()) {
return QStringLiteral("separate_albums_by_grouping");
return u"separate_albums_by_grouping"_s;
}
return QStringLiteral("%1_separate_albums_by_grouping").arg(settings_prefix_);
@@ -357,7 +354,7 @@ void CollectionFilterWidget::SaveGroupBy() {
QByteArray buffer;
QDataStream datastream(&buffer, QIODevice::WriteOnly);
datastream << model_->GetGroupBy();
s.setValue("version", QStringLiteral("1"));
s.setValue("version", u"1"_s);
s.setValue(name, buffer);
s.endGroup();

View File

@@ -24,8 +24,6 @@
#include "config.h"
#include <memory>
#include <QWidget>
#include <QObject>
#include <QHash>

View File

@@ -95,7 +95,7 @@ CollectionModel::CollectionModel(SharedPtr<CollectionBackend> backend, Applicati
filter_(new CollectionFilter(this)),
timer_reload_(new QTimer(this)),
timer_update_(new QTimer(this)),
icon_artist_(IconLoader::Load(QStringLiteral("folder-sound"))),
icon_artist_(IconLoader::Load(u"folder-sound"_s)),
use_disk_cache_(false),
total_song_count_(0),
total_artist_count_(0),
@@ -112,7 +112,7 @@ CollectionModel::CollectionModel(SharedPtr<CollectionBackend> backend, Applicati
QObject::connect(&*app_->album_cover_loader(), &AlbumCoverLoader::AlbumCoverLoaded, this, &CollectionModel::AlbumCoverLoaded);
}
QIcon nocover = IconLoader::Load(QStringLiteral("cdcase"));
QIcon nocover = IconLoader::Load(u"cdcase"_s);
if (!nocover.isNull()) {
QList<QSize> nocover_sizes = nocover.availableSizes();
pixmap_no_cover_ = nocover.pixmap(nocover_sizes.last()).scaled(kPrettyCoverSize, kPrettyCoverSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
@@ -409,7 +409,7 @@ Qt::ItemFlags CollectionModel::flags(const QModelIndex &idx) const {
}
QStringList CollectionModel::mimeTypes() const {
return QStringList() << QStringLiteral("text/uri-list");
return QStringList() << u"text/uri-list"_s;
}
QMimeData *CollectionModel::mimeData(const QModelIndexList &indexes) const {
@@ -823,7 +823,7 @@ SongList CollectionModel::LoadSongsFromSql(const CollectionFilterOptions &filter
QMutexLocker l(backend_->db()->Mutex());
QSqlDatabase db(backend_->db()->Connect());
CollectionQuery q(db, backend_->songs_table(), filter_options);
q.SetColumnSpec(QStringLiteral("%songs_table.ROWID, ") + Song::kColumnSpec);
q.SetColumnSpec(u"%songs_table.ROWID, "_s + Song::kColumnSpec);
if (q.Exec()) {
while (q.Next()) {
Song song;
@@ -1155,7 +1155,7 @@ QString CollectionModel::SortText(QString text) {
else {
text = text.toLower();
}
static const QRegularExpression regex_not_words(QStringLiteral("[^\\w ]"), QRegularExpression::UseUnicodePropertiesOption);
static const QRegularExpression regex_not_words(u"[^\\w ]"_s, QRegularExpression::UseUnicodePropertiesOption);
text = text.remove(regex_not_words);
return text;
@@ -1338,7 +1338,7 @@ QString CollectionModel::DividerKey(const GroupBy group_by, const Song &song, co
case GroupBy::Format:
case GroupBy::FileType: {
QChar c = sort_text[0];
if (c.isDigit()) return QStringLiteral("0");
if (c.isDigit()) return u"0"_s;
if (c == u' ') return QString();
if (c.decompositionTag() != QChar::NoDecomposition) {
QString decomposition = c.decomposition();
@@ -1388,7 +1388,7 @@ QString CollectionModel::DividerDisplayText(const GroupBy group_by, const QStrin
case GroupBy::Genre:
case GroupBy::FileType:
case GroupBy::Format:
if (key == "0"_L1) return QStringLiteral("0-9");
if (key == "0"_L1) return u"0-9"_s;
return key.toUpper();
case GroupBy::YearAlbum:

View File

@@ -49,14 +49,14 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
if (filter_options.max_age() != -1) {
qint64 cutoff = QDateTime::currentSecsSinceEpoch() - filter_options.max_age();
where_clauses_ << QStringLiteral("ctime > ?");
where_clauses_ << u"ctime > ?"_s;
bound_values_ << cutoff;
}
duplicates_only_ = filter_options.filter_mode() == CollectionFilterOptions::FilterMode::Duplicates;
if (filter_options.filter_mode() == CollectionFilterOptions::FilterMode::Untagged) {
where_clauses_ << QStringLiteral("(artist = '' OR album = '' OR title ='')");
where_clauses_ << u"(artist = '' OR album = '' OR title ='')"_s;
}
}
@@ -69,7 +69,7 @@ void CollectionQuery::AddWhere(const QString &column, const QVariant &value, con
QStringList final_values;
final_values.reserve(values.count());
for (const QString &single_value : values) {
final_values.append(QStringLiteral("?"));
final_values.append(u"?"_s);
bound_values_ << single_value;
}
@@ -113,7 +113,7 @@ bool CollectionQuery::Exec() {
QStringList where_clauses(where_clauses_);
if (!include_unavailable_) {
where_clauses << QStringLiteral("unavailable = 0");
where_clauses << u"unavailable = 0"_s;
}
if (!where_clauses.isEmpty()) sql += " WHERE "_L1 + where_clauses.join(" AND "_L1);

View File

@@ -76,6 +76,7 @@
#include "settings/collectionsettingspage.h"
using std::make_unique;
using namespace Qt::Literals::StringLiterals;
CollectionView::CollectionView(QWidget *parent)
: AutoExpandingTreeView(parent),
@@ -84,7 +85,7 @@ CollectionView::CollectionView(QWidget *parent)
total_song_count_(-1),
total_artist_count_(-1),
total_album_count_(-1),
nomusic_(QStringLiteral(":/pictures/nomusic.png")),
nomusic_(u":/pictures/nomusic.png"_s),
context_menu_(nullptr),
action_load_(nullptr),
action_add_to_playlist_(nullptr),
@@ -116,7 +117,7 @@ CollectionView::CollectionView(QWidget *parent)
setDragDropMode(QAbstractItemView::DragOnly);
setSelectionMode(QAbstractItemView::ExtendedSelection);
setStyleSheet(QStringLiteral("QTreeView::item{padding-top:1px;}"));
setStyleSheet(u"QTreeView::item{padding-top:1px;}"_s);
}
@@ -379,29 +380,29 @@ void CollectionView::contextMenuEvent(QContextMenuEvent *e) {
if (!context_menu_) {
context_menu_ = new QMenu(this);
action_add_to_playlist_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this, &CollectionView::AddToPlaylist);
action_load_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this, &CollectionView::Load);
action_open_in_new_playlist_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this, &CollectionView::OpenInNewPlaylist);
action_add_to_playlist_ = context_menu_->addAction(IconLoader::Load(u"media-playback-start"_s), tr("Append to current playlist"), this, &CollectionView::AddToPlaylist);
action_load_ = context_menu_->addAction(IconLoader::Load(u"media-playback-start"_s), tr("Replace current playlist"), this, &CollectionView::Load);
action_open_in_new_playlist_ = context_menu_->addAction(IconLoader::Load(u"document-new"_s), tr("Open in new playlist"), this, &CollectionView::OpenInNewPlaylist);
context_menu_->addSeparator();
action_add_to_playlist_enqueue_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue track"), this, &CollectionView::AddToPlaylistEnqueue);
action_add_to_playlist_enqueue_next_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue to play next"), this, &CollectionView::AddToPlaylistEnqueueNext);
action_add_to_playlist_enqueue_ = context_menu_->addAction(IconLoader::Load(u"go-next"_s), tr("Queue track"), this, &CollectionView::AddToPlaylistEnqueue);
action_add_to_playlist_enqueue_next_ = context_menu_->addAction(IconLoader::Load(u"go-next"_s), tr("Queue to play next"), this, &CollectionView::AddToPlaylistEnqueueNext);
context_menu_->addSeparator();
action_search_for_this_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-find")), tr("Search for this"), this, &CollectionView::SearchForThis);
action_search_for_this_ = context_menu_->addAction(IconLoader::Load(u"edit-find"_s), tr("Search for this"), this, &CollectionView::SearchForThis);
context_menu_->addSeparator();
action_organize_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Organize files..."), this, &CollectionView::Organize);
action_organize_ = context_menu_->addAction(IconLoader::Load(u"edit-copy"_s), tr("Organize files..."), this, &CollectionView::Organize);
#ifndef Q_OS_WIN
action_copy_to_device_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("device")), tr("Copy to device..."), this, &CollectionView::CopyToDevice);
action_copy_to_device_ = context_menu_->addAction(IconLoader::Load(u"device"_s), tr("Copy to device..."), this, &CollectionView::CopyToDevice);
#endif
action_delete_files_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Delete from disk..."), this, &CollectionView::Delete);
action_delete_files_ = context_menu_->addAction(IconLoader::Load(u"edit-delete"_s), tr("Delete from disk..."), this, &CollectionView::Delete);
context_menu_->addSeparator();
action_edit_track_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-rename")), tr("Edit track information..."), this, &CollectionView::EditTracks);
action_edit_tracks_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-rename")), tr("Edit tracks information..."), this, &CollectionView::EditTracks);
action_show_in_browser_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("document-open-folder")), tr("Show in file browser..."), this, &CollectionView::ShowInBrowser);
action_edit_track_ = context_menu_->addAction(IconLoader::Load(u"edit-rename"_s), tr("Edit track information..."), this, &CollectionView::EditTracks);
action_edit_tracks_ = context_menu_->addAction(IconLoader::Load(u"edit-rename"_s), tr("Edit tracks information..."), this, &CollectionView::EditTracks);
action_show_in_browser_ = context_menu_->addAction(IconLoader::Load(u"document-open-folder"_s), tr("Show in file browser..."), this, &CollectionView::ShowInBrowser);
context_menu_->addSeparator();

View File

@@ -73,7 +73,7 @@
using namespace std::chrono_literals;
using namespace Qt::Literals::StringLiterals;
QStringList CollectionWatcher::sValidImages = QStringList() << QStringLiteral("jpg") << QStringLiteral("png") << QStringLiteral("gif") << QStringLiteral("jpeg");
QStringList CollectionWatcher::sValidImages = QStringList() << u"jpg"_s << u"png"_s << u"gif"_s << u"jpeg"_s;
CollectionWatcher::CollectionWatcher(const Song::Source source, QObject *parent)
: QObject(parent),
@@ -205,7 +205,7 @@ void CollectionWatcher::ReloadSettings() {
scan_on_startup_ = true;
monitor_ = true;
}
const QStringList filters = s.value("cover_art_patterns", QStringList() << QStringLiteral("front") << QStringLiteral("cover")).toStringList();
const QStringList filters = s.value("cover_art_patterns", QStringList() << u"front"_s << u"cover"_s).toStringList();
if (source_ == Song::Source::Collection) {
song_tracking_ = s.value("song_tracking", false).toBool();
song_ebur128_loudness_analysis_ = s.value("song_ebur128_loudness_analysis", false).toBool();
@@ -951,43 +951,43 @@ void CollectionWatcher::AddChangedSong(const QString &file, const Song &matching
}
else {
if (matching_song.url() != new_song.url()) {
changes << QStringLiteral("file path");
changes << u"file path"_s;
notify_new = true;
}
if (matching_song.fingerprint() != new_song.fingerprint()) {
changes << QStringLiteral("fingerprint");
changes << u"fingerprint"_s;
notify_new = true;
}
if (!matching_song.IsMetadataEqual(new_song)) {
changes << QStringLiteral("metadata");
changes << u"metadata"_s;
notify_new = true;
}
if (!matching_song.IsPlayStatisticsEqual(new_song)) {
changes << QStringLiteral("play statistics");
changes << u"play statistics"_s;
notify_new = true;
}
if (!matching_song.IsRatingEqual(new_song)) {
changes << QStringLiteral("rating");
changes << u"rating"_s;
notify_new = true;
}
if (!matching_song.IsArtEqual(new_song)) {
changes << QStringLiteral("album art");
changes << u"album art"_s;
notify_new = true;
}
if (!matching_song.IsAcoustIdEqual(new_song)) {
changes << QStringLiteral("acoustid");
changes << u"acoustid"_s;
notify_new = true;
}
if (!matching_song.IsMusicBrainzEqual(new_song)) {
changes << QStringLiteral("musicbrainz");
changes << u"musicbrainz"_s;
notify_new = true;
}
if (!matching_song.IsEBUR128Equal(new_song)) {
changes << QStringLiteral("ebur128 loudness characteristics");
changes << u"ebur128 loudness characteristics"_s;
notify_new = true;
}
if (matching_song.mtime() != new_song.mtime()) {
changes << QStringLiteral("mtime");
changes << u"mtime"_s;
}
if (changes.isEmpty()) {

View File

@@ -61,7 +61,7 @@ SavedGroupingManager::SavedGroupingManager(const QString &saved_groupings_settin
model_->setHorizontalHeaderItem(2, new QStandardItem(tr("Second Level")));
model_->setHorizontalHeaderItem(3, new QStandardItem(tr("Third Level")));
ui_->list->setModel(model_);
ui_->remove->setIcon(IconLoader::Load(QStringLiteral("edit-delete")));
ui_->remove->setIcon(IconLoader::Load(u"edit-delete"_s));
ui_->remove->setEnabled(false);
ui_->remove->setShortcut(QKeySequence::Delete);