From 58944993b88af24be0e2cf6904dabbc6c959f005 Mon Sep 17 00:00:00 2001
From: Jonas Kvinge
Date: Tue, 9 Apr 2024 23:20:26 +0200
Subject: [PATCH] Use QStringLiteral
---
ext/libstrawberry-common/core/logging.cpp | 10 +-
ext/libstrawberry-common/core/workerpool.h | 8 +-
ext/libstrawberry-tagreader/tagreaderbase.cpp | 2 +-
ext/libstrawberry-tagreader/tagreadergme.cpp | 12 +-
.../tagreadertaglib.cpp | 18 +-
src/analyzer/rainbowanalyzer.cpp | 4 +-
src/collection/collectionbackend.cpp | 380 ++++----
src/collection/collectiondirectorymodel.cpp | 2 +-
src/collection/collectionfilterwidget.cpp | 50 +-
src/collection/collectionmodel.cpp | 158 ++--
src/collection/collectionquery.cpp | 70 +-
src/collection/collectionquery.h | 4 +-
src/collection/collectionqueryoptions.h | 2 +-
src/collection/collectionview.cpp | 60 +-
src/collection/collectionwatcher.cpp | 32 +-
src/collection/collectionwatcher.h | 4 +-
src/collection/savedgroupingmanager.cpp | 2 +-
src/context/contextalbum.cpp | 2 +-
src/context/contextview.cpp | 20 +-
src/core/commandlineoptions.cpp | 8 +-
src/core/database.cpp | 64 +-
src/core/database.h | 2 +-
src/core/iconloader.cpp | 2 +-
src/core/mainwindow.cpp | 198 ++--
src/core/mpris2.cpp | 140 +--
src/core/mpris_common.h | 2 +-
src/core/networkaccessmanager.cpp | 2 +-
src/core/networkproxyfactory.cpp | 2 +-
src/core/qtsystemtrayicon.cpp | 14 +-
src/core/song.cpp | 888 +++++++++---------
src/core/songloader.cpp | 22 +-
src/core/sqlquery.cpp | 4 +-
src/core/stylesheetloader.cpp | 42 +-
.../albumcoverchoicecontroller.cpp | 26 +-
src/covermanager/albumcoverexport.cpp | 2 +-
src/covermanager/albumcoverfetchersearch.cpp | 86 +-
src/covermanager/albumcoverloaderoptions.cpp | 2 +-
src/covermanager/albumcovermanager.cpp | 22 +-
src/covermanager/coverexportrunnable.cpp | 6 +-
src/covermanager/coverfromurldialog.cpp | 2 +-
src/covermanager/coversearchstatistics.cpp | 2 +-
.../coversearchstatisticsdialog.cpp | 2 +-
src/covermanager/currentalbumcoverloader.cpp | 2 +-
src/covermanager/deezercoverprovider.cpp | 88 +-
src/covermanager/discogscoverprovider.cpp | 88 +-
src/covermanager/jsoncoverprovider.cpp | 8 +-
src/covermanager/lastfmcoverprovider.cpp | 92 +-
src/covermanager/musicbrainzcoverprovider.cpp | 64 +-
src/covermanager/musixmatchcoverprovider.cpp | 68 +-
src/covermanager/opentidalcoverprovider.cpp | 76 +-
src/covermanager/qobuzcoverprovider.cpp | 78 +-
src/covermanager/spotifycoverprovider.cpp | 108 +--
src/covermanager/tidalcoverprovider.cpp | 68 +-
src/device/cddadevice.h | 2 +-
src/device/cddalister.cpp | 4 +-
src/device/cddasongloader.cpp | 10 +-
src/device/connecteddevice.cpp | 8 +-
src/device/devicedatabasebackend.cpp | 42 +-
src/device/deviceinfo.cpp | 14 +-
src/device/devicelister.cpp | 40 +-
src/device/devicemanager.cpp | 6 +-
src/device/deviceproperties.cpp | 14 +-
src/device/deviceview.cpp | 18 +-
src/device/filesystemdevice.h | 2 +-
src/device/giolister.cpp | 30 +-
src/device/gpoddevice.h | 2 +-
src/device/mtpconnection.cpp | 30 +-
src/device/mtpdevice.cpp | 4 +-
src/device/mtpdevice.h | 2 +-
src/device/udisks2lister.cpp | 10 +-
src/dialogs/about.cpp | 144 +--
src/dialogs/console.cpp | 4 +-
src/dialogs/edittagdialog.cpp | 26 +-
src/dialogs/errordialog.cpp | 2 +-
src/dialogs/lastfmimportdialog.cpp | 2 +-
src/dialogs/snapdialog.cpp | 66 +-
src/dialogs/trackselectiondialog.cpp | 4 +-
src/engine/alsadevicefinder.cpp | 8 +-
src/engine/alsapcmdevicefinder.cpp | 2 +-
src/engine/chromaprinter.cpp | 10 +-
src/engine/ebur128analysis.cpp | 10 +-
src/engine/enginebase.cpp | 22 +-
src/engine/enginedevice.cpp | 30 +-
src/engine/gstengine.cpp | 44 +-
src/engine/gstenginepipeline.cpp | 86 +-
src/engine/pulsedevicefinder.cpp | 2 +-
src/engine/vlcengine.cpp | 16 +-
src/engine/vlcengine.h | 2 +-
src/equalizer/equalizer.cpp | 4 +-
.../globalshortcutsbackend-gnome.cpp | 8 +-
.../globalshortcutsbackend-mate.cpp | 8 +-
.../globalshortcutsbackend.cpp | 14 +-
.../globalshortcutsmanager.cpp | 38 +-
src/internet/internetcollectionview.cpp | 16 +-
src/internet/internetsearchmodel.cpp | 16 +-
src/internet/internetsearchview.cpp | 28 +-
src/internet/internetsongsview.cpp | 2 +-
src/internet/internettabsview.cpp | 8 +-
src/internet/localredirectserver.cpp | 14 +-
src/lyrics/azlyricscomlyricsprovider.cpp | 4 +-
src/lyrics/chartlyricsprovider.cpp | 10 +-
src/lyrics/elyricsnetlyricsprovider.cpp | 6 +-
src/lyrics/geniuslyricsprovider.cpp | 138 +--
src/lyrics/htmllyricsprovider.cpp | 16 +-
src/lyrics/jsonlyricsprovider.cpp | 12 +-
src/lyrics/letraslyricsprovider.cpp | 6 +-
src/lyrics/lololyricsprovider.cpp | 10 +-
src/lyrics/lyricsfetchersearch.cpp | 2 +-
src/lyrics/musixmatchlyricsprovider.cpp | 166 ++--
src/lyrics/ovhlyricsprovider.cpp | 10 +-
src/lyrics/songlyricscomlyricsprovider.cpp | 8 +-
src/main.cpp | 18 +-
src/moodbar/moodbarpipeline.cpp | 8 +-
src/musicbrainz/acoustidclient.cpp | 16 +-
src/musicbrainz/musicbrainzclient.cpp | 10 +-
src/musicbrainz/musicbrainzclient.h | 8 +-
src/organize/organize.cpp | 2 +-
src/organize/organizedialog.cpp | 48 +-
src/organize/organizeformat.cpp | 60 +-
src/osd/osdbase.cpp | 18 +-
src/osd/osdbase.h | 2 +-
src/osd/osddbus.cpp | 10 +-
src/osd/osdpretty.cpp | 6 +-
src/playlist/playlist.cpp | 8 +-
src/playlist/playlistbackend.cpp | 82 +-
src/playlist/playlistcontainer.cpp | 38 +-
src/playlist/playlistdelegates.cpp | 26 +-
src/playlist/playlistfilter.cpp | 44 +-
src/playlist/playlistitem.cpp | 4 +-
src/playlist/playlistlistcontainer.cpp | 14 +-
src/playlist/playlistlistmodel.cpp | 2 +-
src/playlist/playlistmanager.cpp | 2 +-
src/playlist/playlistsequence.cpp | 16 +-
src/playlist/playlisttabbar.cpp | 16 +-
src/playlist/playlistview.cpp | 20 +-
src/playlistparsers/asxiniparser.cpp | 2 +-
src/playlistparsers/asxiniparser.h | 6 +-
src/playlistparsers/asxparser.cpp | 16 +-
src/playlistparsers/asxparser.h | 6 +-
src/playlistparsers/cueparser.cpp | 8 +-
src/playlistparsers/cueparser.h | 8 +-
src/playlistparsers/m3uparser.cpp | 10 +-
src/playlistparsers/m3uparser.h | 8 +-
src/playlistparsers/parserbase.cpp | 4 +-
src/playlistparsers/parserbase.h | 2 +-
src/playlistparsers/playlistparser.cpp | 6 +-
src/playlistparsers/plsparser.cpp | 8 +-
src/playlistparsers/plsparser.h | 8 +-
src/playlistparsers/wplparser.cpp | 16 +-
src/playlistparsers/wplparser.h | 6 +-
src/playlistparsers/xspfparser.cpp | 10 +-
src/playlistparsers/xspfparser.h | 6 +-
src/providers/musixmatchprovider.cpp | 6 +-
src/qobuz/qobuzbaserequest.cpp | 30 +-
src/qobuz/qobuzfavoriterequest.cpp | 16 +-
src/qobuz/qobuzrequest.cpp | 312 +++---
src/qobuz/qobuzservice.cpp | 72 +-
src/qobuz/qobuzstreamurlrequest.cpp | 34 +-
src/qobuz/qobuzurlhandler.cpp | 2 +-
src/queue/queue.cpp | 2 +-
src/queue/queueview.cpp | 8 +-
src/radios/radiobackend.cpp | 14 +-
src/radios/radiomodel.cpp | 6 +-
src/radios/radioparadiseservice.cpp | 28 +-
src/radios/radioservice.cpp | 12 +-
src/radios/radioview.cpp | 12 +-
src/radios/radioviewcontainer.cpp | 2 +-
src/radios/somafmservice.cpp | 30 +-
src/scrobbler/lastfmimport.cpp | 180 ++--
src/scrobbler/listenbrainzscrobbler.cpp | 122 +--
src/scrobbler/scrobblercache.cpp | 114 +--
src/scrobbler/scrobblingapi20.cpp | 286 +++---
src/settings/appearancesettingspage.cpp | 12 +-
src/settings/backendsettingspage.cpp | 54 +-
src/settings/behavioursettingspage.cpp | 2 +-
src/settings/collectionsettingspage.cpp | 22 +-
src/settings/contextsettingspage.cpp | 8 +-
src/settings/coverssettingspage.cpp | 12 +-
src/settings/globalshortcutssettingspage.cpp | 14 +-
src/settings/lyricssettingspage.cpp | 8 +-
src/settings/moodbarsettingspage.cpp | 4 +-
src/settings/networkproxysettingspage.cpp | 2 +-
src/settings/notificationssettingspage.cpp | 8 +-
src/settings/playlistsettingspage.cpp | 2 +-
src/settings/qobuzsettingspage.cpp | 12 +-
src/settings/scrobblersettingspage.cpp | 8 +-
src/settings/subsonicsettingspage.cpp | 2 +-
src/settings/tidalsettingspage.cpp | 30 +-
src/settings/transcodersettingspage.cpp | 2 +-
src/smartplaylists/smartplaylistsearch.cpp | 10 +-
.../smartplaylistsearchterm.cpp | 68 +-
.../smartplaylistsearchtermwidget.cpp | 18 +-
src/smartplaylists/smartplaylistsmodel.cpp | 4 +-
.../smartplaylistsviewcontainer.cpp | 20 +-
src/smartplaylists/smartplaylistwizard.cpp | 4 +-
src/subsonic/subsonicbaserequest.cpp | 38 +-
src/subsonic/subsonicrequest.cpp | 222 ++---
src/subsonic/subsonicscrobblerequest.cpp | 18 +-
src/subsonic/subsonicservice.cpp | 68 +-
src/subsonic/subsonicurlhandler.cpp | 2 +-
src/tidal/tidalbaserequest.cpp | 32 +-
src/tidal/tidalfavoriterequest.cpp | 16 +-
src/tidal/tidalrequest.cpp | 272 +++---
src/tidal/tidalservice.cpp | 96 +-
src/tidal/tidalstreamurlrequest.cpp | 60 +-
src/tidal/tidalurlhandler.cpp | 2 +-
src/transcoder/transcodedialog.cpp | 14 +-
src/transcoder/transcoder.cpp | 56 +-
src/transcoder/transcoder.h | 2 +-
src/utilities/colorutils.cpp | 2 +-
src/utilities/coverutils.cpp | 10 +-
src/utilities/envutils.cpp | 18 +-
src/utilities/filemanagerutils.cpp | 28 +-
src/utilities/imageutils.cpp | 2 +-
src/utilities/macaddrutils.cpp | 2 +-
src/utilities/randutils.cpp | 6 +-
src/utilities/strutils.cpp | 26 +-
src/utilities/timeutils.cpp | 52 +-
src/widgets/busyindicator.cpp | 2 +-
src/widgets/fancytabwidget.cpp | 6 +-
src/widgets/favoritewidget.cpp | 4 +-
src/widgets/fileview.cpp | 12 +-
src/widgets/fileviewlist.cpp | 18 +-
src/widgets/freespacebar.cpp | 2 +-
src/widgets/groupediconview.cpp | 2 +-
src/widgets/lineedit.cpp | 10 +-
src/widgets/linetextedit.cpp | 2 +-
src/widgets/loginstatewidget.cpp | 8 +-
src/widgets/multiloadingindicator.cpp | 6 +-
src/widgets/playingwidget.cpp | 14 +-
src/widgets/qsearchfield_qt.cpp | 8 +-
src/widgets/trackslider.cpp | 8 +-
src/widgets/volumeslider.cpp | 20 +-
233 files changed, 3885 insertions(+), 3885 deletions(-)
diff --git a/ext/libstrawberry-common/core/logging.cpp b/ext/libstrawberry-common/core/logging.cpp
index 924c438d..8cf8e6e8 100644
--- a/ext/libstrawberry-common/core/logging.cpp
+++ b/ext/libstrawberry-common/core/logging.cpp
@@ -158,7 +158,7 @@ static void MessageHandler(QtMsgType type, const QMessageLogContext&, const QStr
}
for (const QString &line : message.split('\n')) {
- BufferedDebug d = CreateLogger(level, "unknown", -1, nullptr);
+ BufferedDebug d = CreateLogger(level, QStringLiteral("unknown"), -1, nullptr);
d << line.toLocal8Bit().constData();
if (d.buf_) {
d.buf_->close();
@@ -228,7 +228,7 @@ static QString ParsePrettyFunction(const char *pretty_function) {
QString class_name = pretty_function;
const qint64 paren = class_name.indexOf('(');
if (paren != -1) {
- const qint64 colons = class_name.lastIndexOf("::", paren);
+ const qint64 colons = class_name.lastIndexOf(QLatin1String("::"), paren);
if (colons != -1) {
class_name = class_name.left(colons);
}
@@ -284,7 +284,7 @@ static T CreateLogger(Level level, const QString &class_name, int line, const ch
}
T ret(type);
- ret.nospace() << QDateTime::currentDateTime().toString("hh:mm:ss.zzz").toLatin1().constData() << level_name << function_line.leftJustified(32).toLatin1().constData();
+ ret.nospace() << QDateTime::currentDateTime().toString(QStringLiteral("hh:mm:ss.zzz")).toLatin1().constData() << level_name << function_line.leftJustified(32).toLatin1().constData();
return ret.space();
@@ -310,7 +310,7 @@ QString CXXDemangle(const QString &mangled_function) {
QString LinuxDemangle(const QString &symbol);
QString LinuxDemangle(const QString &symbol) {
- QRegularExpression regex("\\(([^+]+)");
+ QRegularExpression regex(QStringLiteral("\\(([^+]+)"));
QRegularExpressionMatch match = regex.match(symbol);
if (!match.hasMatch()) {
return symbol;
@@ -392,7 +392,7 @@ namespace {
template
QString print_duration(T duration, const std::string &unit) {
- return QString("%1%2").arg(duration.count()).arg(unit.c_str());
+ return QStringLiteral("%1%2").arg(duration.count()).arg(unit.c_str());
}
} // namespace
diff --git a/ext/libstrawberry-common/core/workerpool.h b/ext/libstrawberry-common/core/workerpool.h
index 246f97f2..c53d9758 100644
--- a/ext/libstrawberry-common/core/workerpool.h
+++ b/ext/libstrawberry-common/core/workerpool.h
@@ -171,7 +171,7 @@ WorkerPool::WorkerPool(QObject *parent)
local_server_name_ = qApp->applicationName().toLower();
if (local_server_name_.isEmpty()) {
- local_server_name_ = "workerpool";
+ local_server_name_ = QStringLiteral("workerpool");
}
}
@@ -243,8 +243,8 @@ void WorkerPool::DoStart() {
QStringList search_path;
search_path << QCoreApplication::applicationDirPath();
#if defined(Q_OS_UNIX)
- search_path << "/usr/libexec";
- search_path << "/usr/local/libexec";
+ search_path << QStringLiteral("/usr/libexec");
+ search_path << QStringLiteral("/usr/local/libexec");
#endif
#if defined(Q_OS_MACOS)
search_path << QDir::cleanPath(QCoreApplication::applicationDirPath() + "/../PlugIns");
@@ -294,7 +294,7 @@ void WorkerPool::StartOneWorker(Worker *worker) {
// Create a server, find an unused name and start listening
forever {
const quint32 unique_number = QRandomGenerator::global()->bounded(static_cast(quint64(this) & 0xFFFFFFFF));
- const QString name = QString("%1_%2").arg(local_server_name_).arg(unique_number);
+ const QString name = QStringLiteral("%1_%2").arg(local_server_name_).arg(unique_number);
if (worker->local_server_->listen(name)) {
break;
diff --git a/ext/libstrawberry-tagreader/tagreaderbase.cpp b/ext/libstrawberry-tagreader/tagreaderbase.cpp
index 18c07c89..13eab8d2 100644
--- a/ext/libstrawberry-tagreader/tagreaderbase.cpp
+++ b/ext/libstrawberry-tagreader/tagreaderbase.cpp
@@ -135,7 +135,7 @@ TagReaderBase::Cover TagReaderBase::LoadCoverFromRequest(const QString &song_fil
cover_image.save(&buffer, "JPEG");
buffer.close();
}
- return Cover(cover_data, "image/jpeg");
+ return Cover(cover_data, QStringLiteral("image/jpeg"));
}
return Cover();
diff --git a/ext/libstrawberry-tagreader/tagreadergme.cpp b/ext/libstrawberry-tagreader/tagreadergme.cpp
index 2883aee4..96be7f68 100644
--- a/ext/libstrawberry-tagreader/tagreadergme.cpp
+++ b/ext/libstrawberry-tagreader/tagreadergme.cpp
@@ -36,16 +36,16 @@
#include "tagreadertaglib.h"
bool GME::IsSupportedFormat(const QFileInfo &file_info) {
- return file_info.exists() && (file_info.completeSuffix().endsWith("spc", Qt::CaseInsensitive) || file_info.completeSuffix().endsWith("vgm"), Qt::CaseInsensitive);
+ return file_info.exists() && (file_info.completeSuffix().endsWith(QLatin1String("spc"), Qt::CaseInsensitive) || file_info.completeSuffix().endsWith(QLatin1String("vgm")), Qt::CaseInsensitive);
}
bool GME::ReadFile(const QFileInfo &file_info, spb::tagreader::SongMetadata *song_info) {
- if (file_info.completeSuffix().endsWith("spc"), Qt::CaseInsensitive) {
+ if (file_info.completeSuffix().endsWith(QLatin1String("spc")), Qt::CaseInsensitive) {
SPC::Read(file_info, song_info);
return true;
}
- if (file_info.completeSuffix().endsWith("vgm", Qt::CaseInsensitive)) {
+ if (file_info.completeSuffix().endsWith(QLatin1String("vgm"), Qt::CaseInsensitive)) {
VGM::Read(file_info, song_info);
return true;
}
@@ -75,7 +75,7 @@ void GME::SPC::Read(const QFileInfo &file_info, spb::tagreader::SongMetadata *so
qLog(Debug) << "Reading tags from SPC file" << file_info.fileName();
// Check for header -- more reliable than file name alone.
- if (!file.read(33).startsWith(QString("SNES-SPC700").toLatin1())) return;
+ if (!file.read(33).startsWith(QStringLiteral("SNES-SPC700").toLatin1())) return;
// First order of business -- get any tag values that exist within the core file information.
// These only allow for a certain number of bytes per field,
@@ -125,7 +125,7 @@ void GME::SPC::Read(const QFileInfo &file_info, spb::tagreader::SongMetadata *so
// Check for XID6 data -- this is infrequently used, but being able to fill in data from this is ideal before trying to rely on APETAG values.
// XID6 format follows EA's binary file format standard named "IFF"
file.seek(XID6_OFFSET);
- if (has_id6 && file.read(4) == QString("xid6").toLatin1()) {
+ if (has_id6 && file.read(4) == QStringLiteral("xid6").toLatin1()) {
QByteArray xid6_head_data = file.read(4);
if (xid6_head_data.size() >= 4) {
qint64 xid6_size = xid6_head_data[0] | (xid6_head_data[1] << 8) | (xid6_head_data[2] << 16) | xid6_head_data[3];
@@ -195,7 +195,7 @@ void GME::VGM::Read(const QFileInfo &file_info, spb::tagreader::SongMetadata *so
qLog(Debug) << "Reading tags from VGM file" << file_info.fileName();
- if (!file.read(4).startsWith(QString("Vgm ").toLatin1())) return;
+ if (!file.read(4).startsWith(QStringLiteral("Vgm ").toLatin1())) return;
file.seek(GD3_TAG_PTR);
QByteArray gd3_head = file.read(4);
diff --git a/ext/libstrawberry-tagreader/tagreadertaglib.cpp b/ext/libstrawberry-tagreader/tagreadertaglib.cpp
index 7660e283..fca4e0f9 100644
--- a/ext/libstrawberry-tagreader/tagreadertaglib.cpp
+++ b/ext/libstrawberry-tagreader/tagreadertaglib.cpp
@@ -677,7 +677,7 @@ bool TagReaderTagLib::ReadFile(const QString &filename, spb::tagreader::SongMeta
// well, it wasn't set, but if the artist is VA assume it's a compilation
const QString albumartist = QString::fromUtf8(song->albumartist().data(), static_cast(song->albumartist().size()));
const QString artist = QString::fromUtf8(song->artist().data(), static_cast(song->artist().size()));
- if (artist.compare("various artists") == 0 || albumartist.compare("various artists") == 0) {
+ if (artist.compare(QLatin1String("various artists")) == 0 || albumartist.compare(QLatin1String("various artists")) == 0) {
song->set_compilation(true);
}
}
@@ -824,7 +824,7 @@ void TagReaderTagLib::SetVorbisComments(TagLib::Ogg::XiphComment *vorbis_comment
vorbis_comment->addField("PERFORMER", StdStringToTaglibString(song.performer()), true);
vorbis_comment->addField("GROUPING", StdStringToTaglibString(song.grouping()), true);
vorbis_comment->addField("DISCNUMBER", QStringToTaglibString(song.disc() <= 0 ? QString() : QString::number(song.disc())), true);
- vorbis_comment->addField("COMPILATION", QStringToTaglibString(song.compilation() ? "1" : QString()), true);
+ vorbis_comment->addField("COMPILATION", QStringToTaglibString(song.compilation() ? QStringLiteral("1") : QString()), true);
// Try to be coherent, the two forms are used but the first one is preferred
@@ -849,19 +849,19 @@ bool TagReaderTagLib::SaveFile(const spb::tagreader::SaveFileRequest &request) c
QStringList save_tags_options;
if (save_tags) {
- save_tags_options << "tags";
+ save_tags_options << QStringLiteral("tags");
}
if (save_playcount) {
- save_tags_options << "playcount";
+ save_tags_options << QStringLiteral("playcount");
}
if (save_rating) {
- save_tags_options << "rating";
+ save_tags_options << QStringLiteral("rating");
}
if (save_cover) {
- save_tags_options << "embedded cover";
+ save_tags_options << QStringLiteral("embedded cover");
}
- qLog(Debug) << "Saving" << save_tags_options.join(", ") << "to" << filename;
+ qLog(Debug) << "Saving" << save_tags_options.join(QStringLiteral(", ")) << "to" << filename;
const Cover cover = LoadCoverFromRequest(request);
@@ -1427,7 +1427,7 @@ void TagReaderTagLib::SetPlaycount(TagLib::APE::Tag *tag, const spb::tagreader::
void TagReaderTagLib::SetPlaycount(TagLib::ID3v2::Tag *tag, const spb::tagreader::SongMetadata &song) const {
- SetUserTextFrame("FMPS_Playcount", QString::number(song.playcount()), tag);
+ SetUserTextFrame(QStringLiteral("FMPS_Playcount"), QString::number(song.playcount()), tag);
TagLib::ID3v2::PopularimeterFrame *frame = GetPOPMFrameFromTag(tag);
if (frame) {
frame->setCounter(song.playcount());
@@ -1546,7 +1546,7 @@ void TagReaderTagLib::SetRating(TagLib::APE::Tag *tag, const spb::tagreader::Son
void TagReaderTagLib::SetRating(TagLib::ID3v2::Tag *tag, const spb::tagreader::SongMetadata &song) const {
- SetUserTextFrame("FMPS_Rating", QString::number(song.rating()), tag);
+ SetUserTextFrame(QStringLiteral("FMPS_Rating"), QString::number(song.rating()), tag);
TagLib::ID3v2::PopularimeterFrame *frame = GetPOPMFrameFromTag(tag);
if (frame) {
frame->setRating(ConvertToPOPMRating(song.rating()));
diff --git a/src/analyzer/rainbowanalyzer.cpp b/src/analyzer/rainbowanalyzer.cpp
index 49267315..56d514f4 100644
--- a/src/analyzer/rainbowanalyzer.cpp
+++ b/src/analyzer/rainbowanalyzer.cpp
@@ -65,8 +65,8 @@ RainbowAnalyzer::RainbowAnalyzer(const RainbowType rbtype, QWidget *parent)
background_brush_(QColor(0x0f, 0x43, 0x73)) {
rainbowtype = rbtype;
- cat_dash_[0] = QPixmap(":/pictures/nyancat.png");
- cat_dash_[1] = QPixmap(":/pictures/rainbowdash.png");
+ cat_dash_[0] = QPixmap(QStringLiteral(":/pictures/nyancat.png"));
+ cat_dash_[1] = QPixmap(QStringLiteral(":/pictures/rainbowdash.png"));
memset(history_, 0, sizeof(history_));
for (int i = 0; i < kRainbowBands; ++i) {
diff --git a/src/collection/collectionbackend.cpp b/src/collection/collectionbackend.cpp
index e02d1003..2807bc20 100644
--- a/src/collection/collectionbackend.cpp
+++ b/src/collection/collectionbackend.cpp
@@ -175,9 +175,9 @@ void CollectionBackend::ChangeDirPath(const int id, const QString &old_path, con
// Do the dirs table
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET path=:path WHERE ROWID=:id").arg(dirs_table_));
- q.BindValue(":path", new_path);
- q.BindValue(":id", id);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -192,9 +192,9 @@ void CollectionBackend::ChangeDirPath(const int id, const QString &old_path, con
// Do the subdirs table
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET path=:path || substr(path, %2) WHERE directory=:id").arg(subdirs_table_).arg(path_len));
- q.BindValue(":path", new_url);
- q.BindValue(":id", id);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -204,9 +204,9 @@ void CollectionBackend::ChangeDirPath(const int id, const QString &old_path, con
// Do the songs table
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET url=:path || substr(url, %2) WHERE directory=:id").arg(songs_table_).arg(path_len));
- q.BindValue(":path", new_url);
- q.BindValue(":id", id);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -225,7 +225,7 @@ CollectionDirectoryList CollectionBackend::GetAllDirectories() {
CollectionDirectoryList ret;
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, path FROM %1").arg(dirs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, path FROM %1").arg(dirs_table_));
if (!q.Exec()) {
db_->ReportErrors(q);
return ret;
@@ -253,8 +253,8 @@ CollectionSubdirectoryList CollectionBackend::SubdirsInDirectory(const int id) {
CollectionSubdirectoryList CollectionBackend::SubdirsInDirectory(const int id, QSqlDatabase &db) {
SqlQuery q(db);
- q.prepare(QString("SELECT path, mtime FROM %1 WHERE directory_id = :dir").arg(subdirs_table_));
- q.BindValue(":dir", id);
+ q.prepare(QStringLiteral("SELECT path, mtime FROM %1 WHERE directory_id = :dir").arg(subdirs_table_));
+ q.BindValue(QStringLiteral(":dir"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return CollectionSubdirectoryList();
@@ -279,7 +279,7 @@ void CollectionBackend::UpdateTotalSongCount() {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT COUNT(*) FROM %1 WHERE unavailable = 0").arg(songs_table_));
+ q.prepare(QStringLiteral("SELECT COUNT(*) FROM %1 WHERE unavailable = 0").arg(songs_table_));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -299,7 +299,7 @@ void CollectionBackend::UpdateTotalArtistCount() {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT COUNT(DISTINCT artist) FROM %1 WHERE unavailable = 0").arg(songs_table_));
+ q.prepare(QStringLiteral("SELECT COUNT(DISTINCT artist) FROM %1 WHERE unavailable = 0").arg(songs_table_));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -319,7 +319,7 @@ void CollectionBackend::UpdateTotalAlbumCount() {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT COUNT(*) FROM (SELECT DISTINCT effective_albumartist, album FROM %1 WHERE unavailable = 0)").arg(songs_table_));
+ q.prepare(QStringLiteral("SELECT COUNT(*) FROM (SELECT DISTINCT effective_albumartist, album FROM %1 WHERE unavailable = 0)").arg(songs_table_));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -342,8 +342,8 @@ void CollectionBackend::AddDirectory(const QString &path) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("INSERT INTO %1 (path, subdirs) VALUES (:path, 1)").arg(dirs_table_));
- q.BindValue(":path", db_path);
+ q.prepare(QStringLiteral("INSERT INTO %1 (path, subdirs) VALUES (:path, 1)").arg(dirs_table_));
+ q.BindValue(QStringLiteral(":path"), db_path);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -370,8 +370,8 @@ void CollectionBackend::RemoveDirectory(const CollectionDirectory &dir) {
// Delete the subdirs that were in this directory
{
SqlQuery q(db);
- q.prepare(QString("DELETE FROM %1 WHERE directory_id = :id").arg(subdirs_table_));
- q.BindValue(":id", dir.id);
+ q.prepare(QStringLiteral("DELETE FROM %1 WHERE directory_id = :id").arg(subdirs_table_));
+ q.BindValue(QStringLiteral(":id"), dir.id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -381,8 +381,8 @@ void CollectionBackend::RemoveDirectory(const CollectionDirectory &dir) {
// Now remove the directory itself
{
SqlQuery q(db);
- q.prepare(QString("DELETE FROM %1 WHERE ROWID = :id").arg(dirs_table_));
- q.BindValue(":id", dir.id);
+ q.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(dirs_table_));
+ q.BindValue(QStringLiteral(":id"), dir.id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -401,8 +401,8 @@ SongList CollectionBackend::FindSongsInDirectory(const int id) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE directory_id = :directory_id").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":directory_id", id);
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE directory_id = :directory_id").arg(Song::kColumnSpec, songs_table_));
+ q.BindValue(QStringLiteral(":directory_id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -424,8 +424,8 @@ SongList CollectionBackend::SongsWithMissingFingerprint(const int id) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE directory_id = :directory_id AND unavailable = 0 AND (fingerprint IS NULL OR fingerprint = '')").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":directory_id", id);
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE directory_id = :directory_id AND unavailable = 0 AND (fingerprint IS NULL OR fingerprint = '')").arg(Song::kColumnSpec, songs_table_));
+ q.BindValue(QStringLiteral(":directory_id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -447,8 +447,8 @@ SongList CollectionBackend::SongsWithMissingLoudnessCharacteristics(const int id
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %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::kColumnSpec, songs_table_));
- q.BindValue(":directory_id", id);
+ q.prepare(QStringLiteral("SELECT ROWID, %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::kColumnSpec, songs_table_));
+ q.BindValue(QStringLiteral(":directory_id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -490,9 +490,9 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
if (subdir.mtime == 0) {
// Delete the subdirectory
SqlQuery q(db);
- q.prepare(QString("DELETE FROM %1 WHERE directory_id = :id AND path = :path").arg(subdirs_table_));
- q.BindValue(":id", subdir.directory_id);
- q.BindValue(":path", subdir.path);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -503,9 +503,9 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
bool exists = false;
{
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID FROM %1 WHERE directory_id = :id AND path = :path").arg(subdirs_table_));
- q.BindValue(":id", subdir.directory_id);
- q.BindValue(":path", subdir.path);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -515,10 +515,10 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
if (exists) {
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET mtime = :mtime WHERE directory_id = :id AND path = :path").arg(subdirs_table_));
- q.BindValue(":mtime", subdir.mtime);
- q.BindValue(":id", subdir.directory_id);
- q.BindValue(":path", subdir.path);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -526,10 +526,10 @@ void CollectionBackend::AddOrUpdateSubdirs(const CollectionSubdirectoryList &sub
}
else {
SqlQuery q(db);
- q.prepare(QString("INSERT INTO %1 (directory_id, path, mtime) VALUES (:id, :path, :mtime)").arg(subdirs_table_));
- q.BindValue(":id", subdir.directory_id);
- q.BindValue(":path", subdir.path);
- q.BindValue(":mtime", subdir.mtime);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -548,7 +548,7 @@ SongList CollectionBackend::GetAllSongs() {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2").arg(Song::kColumnSpec, songs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2").arg(Song::kColumnSpec, songs_table_));
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -584,8 +584,8 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
// This is to fix a possible race condition when a directory is removed while CollectionWatcher is scanning it.
if (!dirs_table_.isEmpty()) {
SqlQuery check_dir(db);
- check_dir.prepare(QString("SELECT ROWID FROM %1 WHERE ROWID = :id").arg(dirs_table_));
- check_dir.BindValue(":id", song.directory_id());
+ check_dir.prepare(QStringLiteral("SELECT ROWID FROM %1 WHERE ROWID = :id").arg(dirs_table_));
+ check_dir.BindValue(QStringLiteral(":id"), song.directory_id());
if (!check_dir.Exec()) {
db_->ReportErrors(check_dir);
return;
@@ -604,9 +604,9 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
// Update
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
+ q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
song.BindToQuery(&q);
- q.BindValue(":id", song.id());
+ q.BindValue(QStringLiteral(":id"), song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -615,9 +615,9 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET %2 WHERE ROWID = :id").arg(fts_table_, Song::kFtsUpdateSpec));
+ q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(fts_table_, Song::kFtsUpdateSpec));
song.BindToFtsQuery(&q);
- q.BindValue(":id", song.id());
+ q.BindValue(QStringLiteral(":id"), song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -643,9 +643,9 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
// Update
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
+ q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
new_song.BindToQuery(&q);
- q.BindValue(":id", new_song.id());
+ q.BindValue(QStringLiteral(":id"), new_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -654,9 +654,9 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET %2 WHERE ROWID = :id").arg(fts_table_, Song::kFtsUpdateSpec));
+ q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(fts_table_, Song::kFtsUpdateSpec));
new_song.BindToFtsQuery(&q);
- q.BindValue(":id", new_song.id());
+ q.BindValue(QStringLiteral(":id"), new_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -675,7 +675,7 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
int id = -1;
{ // Insert the row and create a new ID
SqlQuery q(db);
- q.prepare(QString("INSERT INTO %1 (%2) VALUES (%3)").arg(songs_table_, Song::kColumnSpec, Song::kBindSpec));
+ q.prepare(QStringLiteral("INSERT INTO %1 (%2) VALUES (%3)").arg(songs_table_, Song::kColumnSpec, Song::kBindSpec));
song.BindToQuery(&q);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -689,8 +689,8 @@ void CollectionBackend::AddOrUpdateSongs(const SongList &songs) {
{ // Add to the FTS index
SqlQuery q(db);
- q.prepare(QString("INSERT INTO %1 (ROWID, %2) VALUES (:id, %3)").arg(fts_table_, Song::kFtsColumnSpec, Song::kFtsBindSpec));
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("INSERT INTO %1 (ROWID, %2) VALUES (:id, %3)").arg(fts_table_, Song::kFtsColumnSpec, Song::kFtsBindSpec));
+ q.BindValue(QStringLiteral(":id"), id);
song.BindToFtsQuery(&q);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -750,9 +750,9 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
+ q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(songs_table_, Song::kUpdateSpec));
new_song.BindToQuery(&q);
- q.BindValue(":id", old_song.id());
+ q.BindValue(QStringLiteral(":id"), old_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -760,9 +760,9 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
}
{
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET %2 WHERE ROWID = :id").arg(fts_table_, Song::kFtsUpdateSpec));
+ q.prepare(QStringLiteral("UPDATE %1 SET %2 WHERE ROWID = :id").arg(fts_table_, Song::kFtsUpdateSpec));
new_song.BindToFtsQuery(&q);
- q.BindValue(":id", old_song.id());
+ q.BindValue(QStringLiteral(":id"), old_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -781,7 +781,7 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
int id = -1;
{
SqlQuery q(db);
- q.prepare(QString("INSERT INTO %1 (%2) VALUES (%3)").arg(songs_table_, Song::kColumnSpec, Song::kBindSpec));
+ q.prepare(QStringLiteral("INSERT INTO %1 (%2) VALUES (%3)").arg(songs_table_, Song::kColumnSpec, Song::kBindSpec));
new_song.BindToQuery(&q);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -795,8 +795,8 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
{ // Add to the FTS index
SqlQuery q(db);
- q.prepare(QString("INSERT INTO %1 (ROWID, %2) VALUES (:id, %3)").arg(fts_table_, Song::kFtsColumnSpec, Song::kFtsBindSpec));
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("INSERT INTO %1 (ROWID, %2) VALUES (:id, %3)").arg(fts_table_, Song::kFtsColumnSpec, Song::kFtsBindSpec));
+ q.BindValue(QStringLiteral(":id"), id);
new_song.BindToFtsQuery(&q);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -816,8 +816,8 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
if (!new_songs.contains(old_song.song_id())) {
{
SqlQuery q(db);
- q.prepare(QString("DELETE FROM %1 WHERE ROWID = :id").arg(songs_table_));
- q.BindValue(":id", old_song.id());
+ q.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(songs_table_));
+ q.BindValue(QStringLiteral(":id"), old_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -825,8 +825,8 @@ void CollectionBackend::UpdateSongsBySongID(const SongMap &new_songs) {
}
{
SqlQuery q(db);
- q.prepare(QString("DELETE FROM %1 WHERE ROWID = :id").arg(fts_table_));
- q.BindValue(":id", old_song.id());
+ q.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(fts_table_));
+ q.BindValue(QStringLiteral(":id"), old_song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -853,12 +853,12 @@ void CollectionBackend::UpdateMTimesOnly(const SongList &songs) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET mtime = :mtime WHERE ROWID = :id").arg(songs_table_));
+ q.prepare(QStringLiteral("UPDATE %1 SET mtime = :mtime WHERE ROWID = :id").arg(songs_table_));
ScopedTransaction transaction(&db);
for (const Song &song : songs) {
- q.BindValue(":mtime", song.mtime());
- q.BindValue(":id", song.id());
+ q.BindValue(QStringLiteral(":mtime"), song.mtime());
+ q.BindValue(QStringLiteral(":id"), song.id());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -874,19 +874,19 @@ void CollectionBackend::DeleteSongs(const SongList &songs) {
QSqlDatabase db(db_->Connect());
SqlQuery remove(db);
- remove.prepare(QString("DELETE FROM %1 WHERE ROWID = :id").arg(songs_table_));
+ remove.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(songs_table_));
SqlQuery remove_fts(db);
- remove_fts.prepare(QString("DELETE FROM %1 WHERE ROWID = :id").arg(fts_table_));
+ remove_fts.prepare(QStringLiteral("DELETE FROM %1 WHERE ROWID = :id").arg(fts_table_));
ScopedTransaction transaction(&db);
for (const Song &song : songs) {
- remove.BindValue(":id", song.id());
+ remove.BindValue(QStringLiteral(":id"), song.id());
if (!remove.Exec()) {
db_->ReportErrors(remove);
return;
}
- remove_fts.BindValue(":id", song.id());
+ remove_fts.BindValue(QStringLiteral(":id"), song.id());
if (!remove_fts.Exec()) {
db_->ReportErrors(remove_fts);
return;
@@ -908,11 +908,11 @@ void CollectionBackend::MarkSongsUnavailable(const SongList &songs, const bool u
QSqlDatabase db(db_->Connect());
SqlQuery query(db);
- query.prepare(QString("UPDATE %1 SET unavailable = %2 WHERE ROWID = :id").arg(songs_table_).arg(static_cast(unavailable)));
+ query.prepare(QStringLiteral("UPDATE %1 SET unavailable = %2 WHERE ROWID = :id").arg(songs_table_).arg(static_cast(unavailable)));
ScopedTransaction transaction(&db);
for (const Song &song : songs) {
- query.BindValue(":id", song.id());
+ query.BindValue(QStringLiteral(":id"), song.id());
if (!query.Exec()) {
db_->ReportErrors(query);
return;
@@ -957,7 +957,7 @@ QStringList CollectionBackend::GetAll(const QString &column, const CollectionFil
QStringList CollectionBackend::GetAllArtists(const CollectionFilterOptions &opt) {
- return GetAll("artist", opt);
+ return GetAll(QStringLiteral("artist"), opt);
}
QStringList CollectionBackend::GetAllArtistsWithAlbums(const CollectionFilterOptions &opt) {
@@ -967,16 +967,16 @@ QStringList CollectionBackend::GetAllArtistsWithAlbums(const CollectionFilterOpt
// Albums with 'albumartist' field set:
CollectionQuery query(db, songs_table_, fts_table_, opt);
- query.SetColumnSpec("DISTINCT albumartist");
+ query.SetColumnSpec(QStringLiteral("DISTINCT albumartist"));
query.AddCompilationRequirement(false);
- query.AddWhere("album", "", "!=");
+ query.AddWhere(QStringLiteral("album"), "", QStringLiteral("!="));
// Albums with no 'albumartist' (extract 'artist'):
CollectionQuery query2(db, songs_table_, fts_table_, opt);
- query2.SetColumnSpec("DISTINCT artist");
+ query2.SetColumnSpec(QStringLiteral("DISTINCT artist"));
query2.AddCompilationRequirement(false);
- query2.AddWhere("album", "", "!=");
- query2.AddWhere("albumartist", "", "=");
+ query2.AddWhere(QStringLiteral("album"), "", QStringLiteral("!="));
+ query2.AddWhere(QStringLiteral("albumartist"), "", QStringLiteral("="));
if (!query.Exec()) {
ReportErrors(query);
@@ -1015,7 +1015,7 @@ SongList CollectionBackend::GetArtistSongs(const QString &effective_albumartist,
CollectionQuery query(db, songs_table_, fts_table_, opt);
query.AddCompilationRequirement(false);
- query.AddWhere("effective_albumartist", effective_albumartist);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
SongList songs;
if (!ExecCollectionQuery(&query, songs)) {
@@ -1033,8 +1033,8 @@ SongList CollectionBackend::GetAlbumSongs(const QString &effective_albumartist,
CollectionQuery query(db, songs_table_, fts_table_, opt);
query.AddCompilationRequirement(false);
- query.AddWhere("effective_albumartist", effective_albumartist);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
+ query.AddWhere(QStringLiteral("album"), album);
SongList songs;
if (!ExecCollectionQuery(&query, songs)) {
@@ -1052,7 +1052,7 @@ SongList CollectionBackend::GetSongsByAlbum(const QString &album, const Collecti
CollectionQuery query(db, songs_table_, fts_table_, opt);
query.AddCompilationRequirement(false);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("album"), album);
SongList songs;
if (!ExecCollectionQuery(&query, songs)) {
@@ -1130,10 +1130,10 @@ SongList CollectionBackend::GetSongsByForeignId(const QStringList &ids, const QS
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
- QString in = ids.join(",");
+ QString in = ids.join(QStringLiteral(","));
SqlQuery q(db);
- q.prepare(QString("SELECT %3.ROWID, %2, %3.%4 FROM %3, %1 WHERE %3.%4 IN (in) AND %1.ROWID = %3.ROWID AND unavailable = 0").arg(songs_table_, Song::kColumnSpec, table, column, in));
+ q.prepare(QStringLiteral("SELECT %3.ROWID, %2, %3.%4 FROM %3, %1 WHERE %3.%4 IN (in) AND %1.ROWID = %3.ROWID AND unavailable = 0").arg(songs_table_, Song::kColumnSpec, table, column, in));
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -1161,10 +1161,10 @@ Song CollectionBackend::GetSongById(const int id, QSqlDatabase &db) {
SongList CollectionBackend::GetSongsById(const QStringList &ids, QSqlDatabase &db) {
- QString in = ids.join(",");
+ QString in = ids.join(QStringLiteral(","));
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE ROWID IN (%3)").arg(Song::kColumnSpec, songs_table_, in));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE ROWID IN (%3)").arg(Song::kColumnSpec, songs_table_, in));
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -1186,13 +1186,13 @@ Song CollectionBackend::GetSongByUrl(const QUrl &url, const qint64 beginning) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND beginning = :beginning AND unavailable = 0").arg(Song::kColumnSpec, songs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND beginning = :beginning AND unavailable = 0").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":url1", url);
- q.BindValue(":url2", url.toString());
- q.BindValue(":url3", url.toString(QUrl::FullyEncoded));
- q.BindValue(":url4", url.toEncoded());
- q.BindValue(":beginning", beginning);
+ q.BindValue(QStringLiteral(":url1"), url);
+ q.BindValue(QStringLiteral(":url2"), url.toString());
+ q.BindValue(QStringLiteral(":url3"), url.toString(QUrl::FullyEncoded));
+ q.BindValue(QStringLiteral(":url4"), url.toEncoded());
+ q.BindValue(QStringLiteral(":beginning"), beginning);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1216,13 +1216,13 @@ Song CollectionBackend::GetSongByUrlAndTrack(const QUrl &url, const int track) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND track = :track AND unavailable = 0").arg(Song::kColumnSpec, songs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND track = :track AND unavailable = 0").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":url1", url);
- q.BindValue(":url2", url.toString());
- q.BindValue(":url3", url.toString(QUrl::FullyEncoded));
- q.BindValue(":url4", url.toEncoded());
- q.BindValue(":track", track);
+ q.BindValue(QStringLiteral(":url1"), url);
+ q.BindValue(QStringLiteral(":url2"), url.toString());
+ q.BindValue(QStringLiteral(":url3"), url.toString(QUrl::FullyEncoded));
+ q.BindValue(QStringLiteral(":url4"), url.toEncoded());
+ q.BindValue(QStringLiteral(":track"), track);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1246,13 +1246,13 @@ SongList CollectionBackend::GetSongsByUrl(const QUrl &url, const bool unavailabl
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = :unavailable").arg(Song::kColumnSpec, songs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = :unavailable").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":url1", url);
- q.BindValue(":url2", url.toString());
- q.BindValue(":url3", url.toString(QUrl::FullyEncoded));
- q.BindValue(":url4", url.toEncoded());
- q.BindValue(":unavailable", (unavailable ? 1 : 0));
+ q.BindValue(QStringLiteral(":url1"), url);
+ q.BindValue(QStringLiteral(":url2"), url.toString());
+ q.BindValue(QStringLiteral(":url3"), url.toString(QUrl::FullyEncoded));
+ q.BindValue(QStringLiteral(":url4"), url.toEncoded());
+ q.BindValue(QStringLiteral(":unavailable"), (unavailable ? 1 : 0));
SongList songs;
if (q.Exec()) {
@@ -1303,10 +1303,10 @@ SongList CollectionBackend::GetSongsBySongId(const QStringList &song_ids, QSqlDa
for (const QString &song_id : song_ids) {
song_ids2 << "'" + song_id + "'";
}
- QString in = song_ids2.join(",");
+ QString in = song_ids2.join(QStringLiteral(","));
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE SONG_ID IN (%3)").arg(Song::kColumnSpec, songs_table_, in));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE SONG_ID IN (%3)").arg(Song::kColumnSpec, songs_table_, in));
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -1329,8 +1329,8 @@ SongList CollectionBackend::GetSongsByFingerprint(const QString &fingerprint) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE fingerprint = :fingerprint").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":fingerprint", fingerprint);
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE fingerprint = :fingerprint").arg(Song::kColumnSpec, songs_table_));
+ q.BindValue(QStringLiteral(":fingerprint"), fingerprint);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -1360,7 +1360,7 @@ SongList CollectionBackend::GetCompilationSongs(const QString &album, const Coll
CollectionQuery query(db, songs_table_, fts_table_, opt);
query.SetColumnSpec("%songs_table.ROWID, " + Song::kColumnSpec);
query.AddCompilationRequirement(true);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("album"), album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1385,7 +1385,7 @@ void CollectionBackend::CompilationsNeedUpdating() {
// Look for albums that have songs by more than one 'effective album artist' in the same directory
SqlQuery q(db);
- q.prepare(QString("SELECT effective_albumartist, album, url, compilation_detected FROM %1 WHERE unavailable = 0 ORDER BY album").arg(songs_table_));
+ q.prepare(QStringLiteral("SELECT effective_albumartist, album, url, compilation_detected FROM %1 WHERE unavailable = 0 ORDER BY album").arg(songs_table_));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1452,11 +1452,11 @@ bool CollectionBackend::UpdateCompilations(const QSqlDatabase &db, SongList &del
{ // Get song, so we can tell the model its updated
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = 0").arg(Song::kColumnSpec, songs_table_));
- q.BindValue(":url1", url);
- q.BindValue(":url2", url.toString());
- q.BindValue(":url3", url.toString(QUrl::FullyEncoded));
- q.BindValue(":url4", url.toEncoded());
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE (url = :url1 OR url = :url2 OR url = :url3 OR url = :url4) AND unavailable = 0").arg(Song::kColumnSpec, songs_table_));
+ q.BindValue(QStringLiteral(":url1"), url);
+ q.BindValue(QStringLiteral(":url2"), url.toString());
+ q.BindValue(QStringLiteral(":url3"), url.toString(QUrl::FullyEncoded));
+ q.BindValue(QStringLiteral(":url4"), url.toEncoded());
if (q.Exec()) {
while (q.next()) {
Song song(source_);
@@ -1474,12 +1474,12 @@ bool CollectionBackend::UpdateCompilations(const QSqlDatabase &db, SongList &del
// Update the song
SqlQuery q(db);
- q.prepare(QString("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(":compilation_detected", static_cast(compilation_detected));
- q.BindValue(":url1", url);
- q.BindValue(":url2", url.toString());
- q.BindValue(":url3", url.toString(QUrl::FullyEncoded));
- q.BindValue(":url4", url.toEncoded());
+ 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(compilation_detected));
+ q.BindValue(QStringLiteral(":url1"), url);
+ q.BindValue(QStringLiteral(":url2"), url.toString());
+ q.BindValue(QStringLiteral(":url3"), url.toString(QUrl::FullyEncoded));
+ q.BindValue(QStringLiteral(":url4"), url.toEncoded());
if (!q.Exec()) {
db_->ReportErrors(q);
return false;
@@ -1495,15 +1495,15 @@ CollectionBackend::AlbumList CollectionBackend::GetAlbums(const QString &artist,
QSqlDatabase db(db_->Connect());
CollectionQuery query(db, songs_table_, fts_table_, opt);
- query.SetColumnSpec("url, filetype, cue_path, effective_albumartist, album, compilation_effective, art_embedded, art_automatic, art_manual, art_unset");
- query.SetOrderBy("effective_albumartist, album, url");
+ 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"));
if (compilation_required) {
query.AddCompilationRequirement(true);
}
else if (!artist.isEmpty()) {
query.AddCompilationRequirement(false);
- query.AddWhere("effective_albumartist", artist);
+ query.AddWhere(QStringLiteral("effective_albumartist"), artist);
}
if (!query.Exec()) {
@@ -1531,7 +1531,7 @@ CollectionBackend::AlbumList CollectionBackend::GetAlbums(const QString &artist,
album_info.art_embedded = query.Value(6).toBool();
const QString art_automatic = query.Value(7).toString();
- if (art_automatic.contains(QRegularExpression("..+:.*"))) {
+ if (art_automatic.contains(QRegularExpression(QStringLiteral("..+:.*")))) {
album_info.art_automatic = QUrl::fromEncoded(art_automatic.toUtf8());
}
else {
@@ -1539,7 +1539,7 @@ CollectionBackend::AlbumList CollectionBackend::GetAlbums(const QString &artist,
}
const QString art_manual = query.Value(8).toString();
- if (art_manual.contains(QRegularExpression("..+:.*"))) {
+ if (art_manual.contains(QRegularExpression(QStringLiteral("..+:.*")))) {
album_info.art_manual = QUrl::fromEncoded(art_manual.toUtf8());
}
else {
@@ -1586,11 +1586,11 @@ CollectionBackend::Album CollectionBackend::GetAlbumArt(const QString &effective
ret.album_artist = effective_albumartist;
CollectionQuery query(db, songs_table_, fts_table_);
- query.SetColumnSpec("url, art_embedded, art_automatic, art_manual, art_unset");
+ query.SetColumnSpec(QStringLiteral("url, art_embedded, art_automatic, art_manual, art_unset"));
if (!effective_albumartist.isEmpty()) {
- query.AddWhere("effective_albumartist", effective_albumartist);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
}
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("album"), album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1623,8 +1623,8 @@ void CollectionBackend::UpdateEmbeddedAlbumArt(const QString &effective_albumart
// Get the songs before they're updated
CollectionQuery query(db, songs_table_, fts_table_);
query.SetColumnSpec("ROWID, " + Song::kColumnSpec);
- query.AddWhere("effective_albumartist", effective_albumartist);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
+ query.AddWhere(QStringLiteral("album"), album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1639,13 +1639,13 @@ void CollectionBackend::UpdateEmbeddedAlbumArt(const QString &effective_albumart
}
// Update the songs
- QString sql = QString("UPDATE %1 SET art_embedded = :art_embedded, art_unset = 0 WHERE effective_albumartist = :effective_albumartist AND album = :album AND unavailable = 0").arg(songs_table_);
+ QString sql = 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_);
SqlQuery q(db);
q.prepare(sql);
- q.BindValue(":art_embedded", art_embedded ? 1 : 0);
- q.BindValue(":effective_albumartist", effective_albumartist);
- q.BindValue(":album", album);
+ q.BindValue(QStringLiteral(":art_embedded"), art_embedded ? 1 : 0);
+ q.BindValue(QStringLiteral(":effective_albumartist"), effective_albumartist);
+ q.BindValue(QStringLiteral(":album"), album);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1685,8 +1685,8 @@ void CollectionBackend::UpdateManualAlbumArt(const QString &effective_albumartis
CollectionQuery query(db, songs_table_, fts_table_);
query.SetColumnSpec("ROWID, " + Song::kColumnSpec);
- query.AddWhere("effective_albumartist", effective_albumartist);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
+ query.AddWhere(QStringLiteral("album"), album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1701,10 +1701,10 @@ void CollectionBackend::UpdateManualAlbumArt(const QString &effective_albumartis
}
SqlQuery q(db);
- q.prepare(QString("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(":art_manual", art_manual.isValid() ? art_manual.toString(QUrl::FullyEncoded) : "");
- q.BindValue(":effective_albumartist", effective_albumartist);
- q.BindValue(":album", album);
+ 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) : QLatin1String(""));
+ q.BindValue(QStringLiteral(":effective_albumartist"), effective_albumartist);
+ q.BindValue(QStringLiteral(":album"), album);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1743,8 +1743,8 @@ void CollectionBackend::UnsetAlbumArt(const QString &effective_albumartist, cons
CollectionQuery query(db, songs_table_, fts_table_);
query.SetColumnSpec("ROWID, " + Song::kColumnSpec);
- query.AddWhere("effective_albumartist", effective_albumartist);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
+ query.AddWhere(QStringLiteral("album"), album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1759,9 +1759,9 @@ void CollectionBackend::UnsetAlbumArt(const QString &effective_albumartist, cons
}
SqlQuery q(db);
- q.prepare(QString("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(":effective_albumartist", effective_albumartist);
- q.BindValue(":album", album);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1800,8 +1800,8 @@ void CollectionBackend::ClearAlbumArt(const QString &effective_albumartist, cons
CollectionQuery query(db, songs_table_, fts_table_);
query.SetColumnSpec("ROWID, " + Song::kColumnSpec);
- query.AddWhere("effective_albumartist", effective_albumartist);
- query.AddWhere("album", album);
+ query.AddWhere(QStringLiteral("effective_albumartist"), effective_albumartist);
+ query.AddWhere(QStringLiteral("album"), album);
if (!query.Exec()) {
ReportErrors(query);
@@ -1816,10 +1816,10 @@ void CollectionBackend::ClearAlbumArt(const QString &effective_albumartist, cons
}
SqlQuery q(db);
- q.prepare(QString("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(":art_unset", art_unset ? 1 : 0);
- q.BindValue(":effective_albumartist", effective_albumartist);
- q.BindValue(":album", album);
+ 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);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -1855,8 +1855,8 @@ void CollectionBackend::ForceCompilation(const QString &album, const QListReportErrors(q);
@@ -1913,9 +1913,9 @@ void CollectionBackend::IncrementPlayCount(const int id) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET playcount = playcount + 1, lastplayed = :now WHERE ROWID = :id").arg(songs_table_));
- q.BindValue(":now", QDateTime::currentDateTime().toSecsSinceEpoch());
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("UPDATE %1 SET playcount = playcount + 1, lastplayed = :now WHERE ROWID = :id").arg(songs_table_));
+ q.BindValue(QStringLiteral(":now"), QDateTime::currentDateTime().toSecsSinceEpoch());
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1936,8 +1936,8 @@ void CollectionBackend::IncrementSkipCount(const int id, const float progress) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET skipcount = skipcount + 1 WHERE ROWID = :id").arg(songs_table_));
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("UPDATE %1 SET skipcount = skipcount + 1 WHERE ROWID = :id").arg(songs_table_));
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -1982,8 +1982,8 @@ bool CollectionBackend::ResetPlayStatistics(const QStringList &id_str_list) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET playcount = 0, skipcount = 0, lastplayed = -1 WHERE ROWID IN (:ids)").arg(songs_table_));
- q.BindValue(":ids", id_str_list.join(","));
+ 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(QStringLiteral(",")));
if (!q.Exec()) {
db_->ReportErrors(q);
return false;
@@ -2073,14 +2073,14 @@ SongList CollectionBackend::GetSongsBy(const QString &artist, const QString &alb
SongList songs;
SqlQuery q(db);
if (album.isEmpty()) {
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE artist = :artist COLLATE NOCASE AND title = :title COLLATE NOCASE").arg(Song::kColumnSpec, songs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE artist = :artist COLLATE NOCASE AND title = :title COLLATE NOCASE").arg(Song::kColumnSpec, songs_table_));
}
else {
- q.prepare(QString("SELECT ROWID, %1 FROM %2 WHERE artist = :artist COLLATE NOCASE AND album = :album COLLATE NOCASE AND title = :title COLLATE NOCASE").arg(Song::kColumnSpec, songs_table_));
+ q.prepare(QStringLiteral("SELECT ROWID, %1 FROM %2 WHERE artist = :artist COLLATE NOCASE AND album = :album COLLATE NOCASE AND title = :title COLLATE NOCASE").arg(Song::kColumnSpec, songs_table_));
}
- q.BindValue(":artist", artist);
- if (!album.isEmpty()) q.BindValue(":album", album);
- q.BindValue(":title", title);
+ q.BindValue(QStringLiteral(":artist"), artist);
+ if (!album.isEmpty()) q.BindValue(QStringLiteral(":album"), album);
+ q.BindValue(QStringLiteral(":title"), title);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -2111,9 +2111,9 @@ void CollectionBackend::UpdateLastPlayed(const QString &artist, const QString &a
continue;
}
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET lastplayed = :lastplayed WHERE ROWID = :id").arg(songs_table_));
- q.BindValue(":lastplayed", lastplayed);
- q.BindValue(":id", song.id());
+ 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());
if (!q.Exec()) {
db_->ReportErrors(q);
continue;
@@ -2137,9 +2137,9 @@ void CollectionBackend::UpdatePlayCount(const QString &artist, const QString &ti
for (const Song &song : songs) {
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET playcount = :playcount WHERE ROWID = :id").arg(songs_table_));
- q.BindValue(":playcount", playcount);
- q.BindValue(":id", song.id());
+ 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());
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2170,10 +2170,10 @@ void CollectionBackend::UpdateSongsRating(const QList &id_list, const float
for (int i : id_list) {
id_str_list << QString::number(i);
}
- QString ids = id_str_list.join(",");
+ QString ids = id_str_list.join(QStringLiteral(","));
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET rating = :rating WHERE ROWID IN (%2)").arg(songs_table_, ids));
- q.BindValue(":rating", rating);
+ q.prepare(QStringLiteral("UPDATE %1 SET rating = :rating WHERE ROWID IN (%2)").arg(songs_table_, ids));
+ q.BindValue(QStringLiteral(":rating"), rating);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2200,9 +2200,9 @@ void CollectionBackend::UpdateLastSeen(const int directory_id, const int expire_
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("UPDATE %1 SET lastseen = :lastseen WHERE directory_id = :directory_id AND unavailable = 0").arg(songs_table_));
- q.BindValue(":lastseen", QDateTime::currentDateTime().toSecsSinceEpoch());
- q.BindValue(":directory_id", directory_id);
+ q.prepare(QStringLiteral("UPDATE %1 SET lastseen = :lastseen WHERE directory_id = :directory_id AND unavailable = 0").arg(songs_table_));
+ q.BindValue(QStringLiteral(":lastseen"), QDateTime::currentDateTime().toSecsSinceEpoch());
+ q.BindValue(QStringLiteral(":directory_id"), directory_id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -2220,9 +2220,9 @@ void CollectionBackend::ExpireSongs(const int directory_id, const int expire_una
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("SELECT %1.ROWID, " + Song::JoinSpec("%1") + " FROM %1 LEFT JOIN playlist_items ON %1.ROWID = playlist_items.collection_id WHERE %1.directory_id = :directory_id AND %1.unavailable = 1 AND %1.lastseen > 0 AND %1.lastseen < :time AND playlist_items.collection_id IS NULL").arg(songs_table_));
- q.BindValue(":directory_id", directory_id);
- q.BindValue(":time", QDateTime::currentDateTime().toSecsSinceEpoch() - (expire_unavailable_songs_days * 86400));
+ q.prepare(QString("SELECT %1.ROWID, " + Song::JoinSpec(QStringLiteral("%1")) + " FROM %1 LEFT JOIN playlist_items ON %1.ROWID = playlist_items.collection_id WHERE %1.directory_id = :directory_id AND %1.unavailable = 1 AND %1.lastseen > 0 AND %1.lastseen < :time AND playlist_items.collection_id IS NULL").arg(songs_table_));
+ q.BindValue(QStringLiteral(":directory_id"), directory_id);
+ q.BindValue(QStringLiteral(":time"), QDateTime::currentDateTime().toSecsSinceEpoch() - (expire_unavailable_songs_days * 86400));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
diff --git a/src/collection/collectiondirectorymodel.cpp b/src/collection/collectiondirectorymodel.cpp
index dccbeeff..ef0453f7 100644
--- a/src/collection/collectiondirectorymodel.cpp
+++ b/src/collection/collectiondirectorymodel.cpp
@@ -41,7 +41,7 @@ using std::make_shared;
CollectionDirectoryModel::CollectionDirectoryModel(SharedPtr backend, QObject *parent)
: QStandardItemModel(parent),
- dir_icon_(IconLoader::Load("document-open-folder")),
+ dir_icon_(IconLoader::Load(QStringLiteral("document-open-folder"))),
backend_(backend) {
QObject::connect(&*backend_, &CollectionBackend::DirectoryDiscovered, this, &CollectionDirectoryModel::DirectoryDiscovered);
diff --git a/src/collection/collectionfilterwidget.cpp b/src/collection/collectionfilterwidget.cpp
index c183c108..19dde695 100644
--- a/src/collection/collectionfilterwidget.cpp
+++ b/src/collection/collectionfilterwidget.cpp
@@ -72,34 +72,34 @@ CollectionFilterWidget::CollectionFilterWidget(QWidget *parent)
ui_->setupUi(this);
- QString available_fields = Song::kFtsColumns.join(", ").replace(QRegularExpression("\\bfts"), "");
- available_fields += QString(", ") + Song::kNumericalColumns.join(", ");
+ QString available_fields = Song::kFtsColumns.join(QStringLiteral(", ")).replace(QRegularExpression(QStringLiteral("\\bfts")), QLatin1String(""));
+ available_fields += QStringLiteral(", ") + Song::kNumericalColumns.join(QStringLiteral(", "));
ui_->search_field->setToolTip(
- QString(" ") +
+ QStringLiteral("
") +
tr("Prefix a word with a field name to limit the search to that field, e.g.:") +
- QString(" ") +
- QString("") +
+ QStringLiteral(" ") +
+ QStringLiteral("") +
tr("artist") +
- QString(": Strawbs ") +
- tr("searches the collection for all artists that contain the word %1. ").arg("Strawbs") +
- QString("
") +
+ QStringLiteral(":Strawbs ") +
+ tr("searches the collection for all artists that contain the word %1. ").arg(QStringLiteral("Strawbs")) +
+ QStringLiteral("
") +
tr("Search terms for numerical fields can be prefixed with %1 or %2 to refine the search, e.g.: ")
.arg(" =, !=, <, >, <=", ">=") +
- QString("") +
+ QStringLiteral("") +
tr("rating") +
- QString(" ") +
- QString(":>=") +
- QString("4 ") +
+ QStringLiteral(" ") +
+ QStringLiteral(":>=") +
+ QStringLiteral("4 ") +
- QString("
") +
+ QStringLiteral("
") +
tr("Available fields") +
- QString(": ") +
- QString(" ") +
- QString("") +
+ QStringLiteral(": ") +
+ QStringLiteral(" ") +
+ QStringLiteral("") +
available_fields +
- QString(" .") +
- QString("
")
+ QStringLiteral(".") +
+ QStringLiteral("
")
);
QObject::connect(ui_->search_field, &QSearchField::returnPressed, this, &CollectionFilterWidget::ReturnPressed);
@@ -109,7 +109,7 @@ CollectionFilterWidget::CollectionFilterWidget(QWidget *parent)
filter_delay_->setSingleShot(true);
// Icons
- ui_->options->setIcon(IconLoader::Load("configure"));
+ ui_->options->setIcon(IconLoader::Load(QStringLiteral("configure")));
// Filter by age
QActionGroup *filter_age_group = new QActionGroup(this);
@@ -229,10 +229,10 @@ void CollectionFilterWidget::ReloadSettings() {
QString CollectionFilterWidget::group_by_version() const {
if (settings_prefix_.isEmpty()) {
- return "group_by_version";
+ return QStringLiteral("group_by_version");
}
else {
- return QString("%1_group_by_version").arg(settings_prefix_);
+ return QStringLiteral("%1_group_by_version").arg(settings_prefix_);
}
}
@@ -240,10 +240,10 @@ QString CollectionFilterWidget::group_by_version() const {
QString CollectionFilterWidget::group_by_key() const {
if (settings_prefix_.isEmpty()) {
- return "group_by";
+ return QStringLiteral("group_by");
}
else {
- return QString("%1_group_by").arg(settings_prefix_);
+ return QStringLiteral("%1_group_by").arg(settings_prefix_);
}
}
@@ -253,10 +253,10 @@ QString CollectionFilterWidget::group_by_key(const int number) const { return gr
QString CollectionFilterWidget::separate_albums_by_grouping_key() const {
if (settings_prefix_.isEmpty()) {
- return "separate_albums_by_grouping";
+ return QStringLiteral("separate_albums_by_grouping");
}
else {
- return QString("%1_separate_albums_by_grouping").arg(settings_prefix_);
+ return QStringLiteral("%1_separate_albums_by_grouping").arg(settings_prefix_);
}
}
diff --git a/src/collection/collectionmodel.cpp b/src/collection/collectionmodel.cpp
index e5b12ac2..ab977cca 100644
--- a/src/collection/collectionmodel.cpp
+++ b/src/collection/collectionmodel.cpp
@@ -91,8 +91,8 @@ CollectionModel::CollectionModel(SharedPtr backend, Applicati
total_artist_count_(0),
total_album_count_(0),
separate_albums_by_grouping_(false),
- artist_icon_(IconLoader::Load("folder-sound")),
- album_icon_(IconLoader::Load("cdcase")),
+ artist_icon_(IconLoader::Load(QStringLiteral("folder-sound"))),
+ album_icon_(IconLoader::Load(QStringLiteral("cdcase"))),
init_task_id_(-1),
use_pretty_covers_(true),
show_dividers_(true),
@@ -109,7 +109,7 @@ CollectionModel::CollectionModel(SharedPtr backend, Applicati
QObject::connect(&*app_->album_cover_loader(), &AlbumCoverLoader::AlbumCoverLoaded, this, &CollectionModel::AlbumCoverLoaded);
}
- QIcon nocover = IconLoader::Load("cdcase");
+ QIcon nocover = IconLoader::Load(QStringLiteral("cdcase"));
if (!nocover.isNull()) {
QList nocover_sizes = nocover.availableSizes();
no_cover_icon_ = nocover.pixmap(nocover_sizes.last()).scaled(kPrettyCoverSize, kPrettyCoverSize, Qt::KeepAspectRatio, Qt::SmoothTransformation);
@@ -307,7 +307,7 @@ CollectionItem *CollectionModel::CreateCompilationArtistNode(const bool signal,
if (parent != root_ && !parent->key.isEmpty()) parent->compilation_artist_node_->key.append(parent->key);
parent->compilation_artist_node_->key.append(tr("Various artists"));
parent->compilation_artist_node_->display_text = tr("Various artists");
- parent->compilation_artist_node_->sort_text = " various";
+ parent->compilation_artist_node_->sort_text = QStringLiteral(" various");
parent->compilation_artist_node_->container_level = parent->container_level + 1;
if (signal) endInsertRows();
@@ -396,10 +396,10 @@ QString CollectionModel::ContainerKey(const GroupBy group_by, const bool separat
}
else {
if (song.bitdepth() <= 0) {
- key = QString("%1 (%2)").arg(song.TextForFiletype(), QString::number(song.samplerate() / 1000.0, 'G', 5));
+ key = QStringLiteral("%1 (%2)").arg(song.TextForFiletype(), QString::number(song.samplerate() / 1000.0, 'G', 5));
}
else {
- key = QString("%1 (%2/%3)").arg(song.TextForFiletype(), QString::number(song.samplerate() / 1000.0, 'G', 5)).arg(song.bitdepth());
+ key = QStringLiteral("%1 (%2/%3)").arg(song.TextForFiletype(), QString::number(song.samplerate() / 1000.0, 'G', 5)).arg(song.bitdepth());
}
}
break;
@@ -432,7 +432,7 @@ QString CollectionModel::DividerKey(const GroupBy group_by, CollectionItem *item
case GroupBy::Format:
case GroupBy::FileType: {
QChar c = item->sort_text[0];
- if (c.isDigit()) return "0";
+ if (c.isDigit()) return QStringLiteral("0");
if (c == ' ') return QString();
if (c.decompositionTag() != QChar::NoDecomposition) {
QString decomposition = c.decomposition();
@@ -487,7 +487,7 @@ QString CollectionModel::DividerDisplayText(const GroupBy group_by, const QStrin
case GroupBy::Genre:
case GroupBy::FileType:
case GroupBy::Format:
- if (key == "0") return "0-9";
+ if (key == "0") return QStringLiteral("0-9");
return key.toUpper();
case GroupBy::YearAlbum:
@@ -631,7 +631,7 @@ QString CollectionModel::AlbumIconPixmapCacheKey(const QModelIndex &idx) const {
idx_copy = idx_copy.parent();
}
- return Song::TextForSource(backend_->source()) + "/" + path.join("/");
+ return Song::TextForSource(backend_->source()) + "/" + path.join(QStringLiteral("/"));
}
@@ -1054,82 +1054,82 @@ void CollectionModel::SetQueryColumnSpec(const GroupBy group_by, const bool sepa
// Say what group_by of thing we want to get back from the database.
switch (group_by) {
case GroupBy::AlbumArtist:
- query_options->set_column_spec("DISTINCT effective_albumartist");
+ query_options->set_column_spec(QStringLiteral("DISTINCT effective_albumartist"));
break;
case GroupBy::Artist:
- query_options->set_column_spec("DISTINCT artist");
+ query_options->set_column_spec(QStringLiteral("DISTINCT artist"));
break;
case GroupBy::Album:{
- QString query("DISTINCT album, album_id");
+ QString query(QStringLiteral("DISTINCT album, album_id"));
if (separate_albums_by_grouping) query.append(", grouping");
query_options->set_column_spec(query);
break;
}
case GroupBy::AlbumDisc:{
- QString query("DISTINCT album, album_id, disc");
+ QString query(QStringLiteral("DISTINCT album, album_id, disc"));
if (separate_albums_by_grouping) query.append(", grouping");
query_options->set_column_spec(query);
break;
}
case GroupBy::YearAlbum:{
- QString query("DISTINCT year, album, album_id");
+ QString query(QStringLiteral("DISTINCT year, album, album_id"));
if (separate_albums_by_grouping) query.append(", grouping");
query_options->set_column_spec(query);
break;
}
case GroupBy::YearAlbumDisc:{
- QString query("DISTINCT year, album, album_id, disc");
+ QString query(QStringLiteral("DISTINCT year, album, album_id, disc"));
if (separate_albums_by_grouping) query.append(", grouping");
query_options->set_column_spec(query);
break;
}
case GroupBy::OriginalYearAlbum:{
- QString query("DISTINCT year, originalyear, album, album_id");
+ QString query(QStringLiteral("DISTINCT year, originalyear, album, album_id"));
if (separate_albums_by_grouping) query.append(", grouping");
query_options->set_column_spec(query);
break;
}
case GroupBy::OriginalYearAlbumDisc:{
- QString query("DISTINCT year, originalyear, album, album_id, disc");
+ QString query(QStringLiteral("DISTINCT year, originalyear, album, album_id, disc"));
if (separate_albums_by_grouping) query.append(", grouping");
query_options->set_column_spec(query);
break;
}
case GroupBy::Disc:
- query_options->set_column_spec("DISTINCT disc");
+ query_options->set_column_spec(QStringLiteral("DISTINCT disc"));
break;
case GroupBy::Year:
- query_options->set_column_spec("DISTINCT year");
+ query_options->set_column_spec(QStringLiteral("DISTINCT year"));
break;
case GroupBy::OriginalYear:
- query_options->set_column_spec("DISTINCT effective_originalyear");
+ query_options->set_column_spec(QStringLiteral("DISTINCT effective_originalyear"));
break;
case GroupBy::Genre:
- query_options->set_column_spec("DISTINCT genre");
+ query_options->set_column_spec(QStringLiteral("DISTINCT genre"));
break;
case GroupBy::Composer:
- query_options->set_column_spec("DISTINCT composer");
+ query_options->set_column_spec(QStringLiteral("DISTINCT composer"));
break;
case GroupBy::Performer:
- query_options->set_column_spec("DISTINCT performer");
+ query_options->set_column_spec(QStringLiteral("DISTINCT performer"));
break;
case GroupBy::Grouping:
- query_options->set_column_spec("DISTINCT grouping");
+ query_options->set_column_spec(QStringLiteral("DISTINCT grouping"));
break;
case GroupBy::FileType:
- query_options->set_column_spec("DISTINCT filetype");
+ query_options->set_column_spec(QStringLiteral("DISTINCT filetype"));
break;
case GroupBy::Format:
- query_options->set_column_spec("DISTINCT filetype, samplerate, bitdepth");
+ query_options->set_column_spec(QStringLiteral("DISTINCT filetype, samplerate, bitdepth"));
break;
case GroupBy::Samplerate:
- query_options->set_column_spec("DISTINCT samplerate");
+ query_options->set_column_spec(QStringLiteral("DISTINCT samplerate"));
break;
case GroupBy::Bitdepth:
- query_options->set_column_spec("DISTINCT bitdepth");
+ query_options->set_column_spec(QStringLiteral("DISTINCT bitdepth"));
break;
case GroupBy::Bitrate:
- query_options->set_column_spec("DISTINCT bitrate");
+ query_options->set_column_spec(QStringLiteral("DISTINCT bitrate"));
break;
case GroupBy::None:
case GroupBy::GroupByCount:
@@ -1151,7 +1151,7 @@ void CollectionModel::AddQueryWhere(const GroupBy group_by, const bool separate_
else {
// Don't duplicate compilations outside the Various artists node
query_options->set_compilation_requirement(CollectionQueryOptions::CompilationRequirement::Off);
- query_options->AddWhere("effective_albumartist", item->metadata.effective_albumartist());
+ query_options->AddWhere(QStringLiteral("effective_albumartist"), item->metadata.effective_albumartist());
}
break;
case GroupBy::Artist:
@@ -1161,85 +1161,85 @@ void CollectionModel::AddQueryWhere(const GroupBy group_by, const bool separate_
else {
// Don't duplicate compilations outside the Various artists node
query_options->set_compilation_requirement(CollectionQueryOptions::CompilationRequirement::Off);
- query_options->AddWhere("artist", item->metadata.artist());
+ query_options->AddWhere(QStringLiteral("artist"), item->metadata.artist());
}
break;
case GroupBy::Album:
- query_options->AddWhere("album", item->metadata.album());
- query_options->AddWhere("album_id", item->metadata.album_id());
- if (separate_albums_by_grouping) query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("album"), item->metadata.album());
+ query_options->AddWhere(QStringLiteral("album_id"), item->metadata.album_id());
+ if (separate_albums_by_grouping) query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::AlbumDisc:
- query_options->AddWhere("album", item->metadata.album());
- query_options->AddWhere("album_id", item->metadata.album_id());
- query_options->AddWhere("disc", item->metadata.disc());
- if (separate_albums_by_grouping) query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("album"), item->metadata.album());
+ query_options->AddWhere(QStringLiteral("album_id"), item->metadata.album_id());
+ query_options->AddWhere(QStringLiteral("disc"), item->metadata.disc());
+ if (separate_albums_by_grouping) query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::YearAlbum:
- query_options->AddWhere("year", item->metadata.year());
- query_options->AddWhere("album", item->metadata.album());
- query_options->AddWhere("album_id", item->metadata.album_id());
- if (separate_albums_by_grouping) query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("year"), item->metadata.year());
+ query_options->AddWhere(QStringLiteral("album"), item->metadata.album());
+ query_options->AddWhere(QStringLiteral("album_id"), item->metadata.album_id());
+ if (separate_albums_by_grouping) query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::YearAlbumDisc:
- query_options->AddWhere("year", item->metadata.year());
- query_options->AddWhere("album", item->metadata.album());
- query_options->AddWhere("album_id", item->metadata.album_id());
- query_options->AddWhere("disc", item->metadata.disc());
- if (separate_albums_by_grouping) query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("year"), item->metadata.year());
+ query_options->AddWhere(QStringLiteral("album"), item->metadata.album());
+ query_options->AddWhere(QStringLiteral("album_id"), item->metadata.album_id());
+ query_options->AddWhere(QStringLiteral("disc"), item->metadata.disc());
+ if (separate_albums_by_grouping) query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::OriginalYearAlbum:
- query_options->AddWhere("year", item->metadata.year());
- query_options->AddWhere("originalyear", item->metadata.originalyear());
- query_options->AddWhere("album", item->metadata.album());
- query_options->AddWhere("album_id", item->metadata.album_id());
- if (separate_albums_by_grouping) query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("year"), item->metadata.year());
+ query_options->AddWhere(QStringLiteral("originalyear"), item->metadata.originalyear());
+ query_options->AddWhere(QStringLiteral("album"), item->metadata.album());
+ query_options->AddWhere(QStringLiteral("album_id"), item->metadata.album_id());
+ if (separate_albums_by_grouping) query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::OriginalYearAlbumDisc:
- query_options->AddWhere("year", item->metadata.year());
- query_options->AddWhere("originalyear", item->metadata.originalyear());
- query_options->AddWhere("album", item->metadata.album());
- query_options->AddWhere("album_id", item->metadata.album_id());
- query_options->AddWhere("disc", item->metadata.disc());
- if (separate_albums_by_grouping) query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("year"), item->metadata.year());
+ query_options->AddWhere(QStringLiteral("originalyear"), item->metadata.originalyear());
+ query_options->AddWhere(QStringLiteral("album"), item->metadata.album());
+ query_options->AddWhere(QStringLiteral("album_id"), item->metadata.album_id());
+ query_options->AddWhere(QStringLiteral("disc"), item->metadata.disc());
+ if (separate_albums_by_grouping) query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::Disc:
- query_options->AddWhere("disc", item->metadata.disc());
+ query_options->AddWhere(QStringLiteral("disc"), item->metadata.disc());
break;
case GroupBy::Year:
- query_options->AddWhere("year", item->metadata.year());
+ query_options->AddWhere(QStringLiteral("year"), item->metadata.year());
break;
case GroupBy::OriginalYear:
- query_options->AddWhere("effective_originalyear", item->metadata.effective_originalyear());
+ query_options->AddWhere(QStringLiteral("effective_originalyear"), item->metadata.effective_originalyear());
break;
case GroupBy::Genre:
- query_options->AddWhere("genre", item->metadata.genre());
+ query_options->AddWhere(QStringLiteral("genre"), item->metadata.genre());
break;
case GroupBy::Composer:
- query_options->AddWhere("composer", item->metadata.composer());
+ query_options->AddWhere(QStringLiteral("composer"), item->metadata.composer());
break;
case GroupBy::Performer:
- query_options->AddWhere("performer", item->metadata.performer());
+ query_options->AddWhere(QStringLiteral("performer"), item->metadata.performer());
break;
case GroupBy::Grouping:
- query_options->AddWhere("grouping", item->metadata.grouping());
+ query_options->AddWhere(QStringLiteral("grouping"), item->metadata.grouping());
break;
case GroupBy::FileType:
- query_options->AddWhere("filetype", static_cast(item->metadata.filetype()));
+ query_options->AddWhere(QStringLiteral("filetype"), static_cast(item->metadata.filetype()));
break;
case GroupBy::Format:
- query_options->AddWhere("filetype", static_cast(item->metadata.filetype()));
- query_options->AddWhere("samplerate", item->metadata.samplerate());
- query_options->AddWhere("bitdepth", item->metadata.bitdepth());
+ query_options->AddWhere(QStringLiteral("filetype"), static_cast(item->metadata.filetype()));
+ query_options->AddWhere(QStringLiteral("samplerate"), item->metadata.samplerate());
+ query_options->AddWhere(QStringLiteral("bitdepth"), item->metadata.bitdepth());
break;
case GroupBy::Samplerate:
- query_options->AddWhere("samplerate", item->metadata.samplerate());
+ query_options->AddWhere(QStringLiteral("samplerate"), item->metadata.samplerate());
break;
case GroupBy::Bitdepth:
- query_options->AddWhere("bitdepth", item->metadata.bitdepth());
+ query_options->AddWhere(QStringLiteral("bitdepth"), item->metadata.bitdepth());
break;
case GroupBy::Bitrate:
- query_options->AddWhere("bitrate", item->metadata.bitrate());
+ query_options->AddWhere(QStringLiteral("bitrate"), item->metadata.bitrate());
break;
case GroupBy::None:
case GroupBy::GroupByCount:
@@ -1745,12 +1745,12 @@ QString CollectionModel::PrettyDisc(const int disc) {
QString CollectionModel::SortText(QString text) {
if (text.isEmpty()) {
- text = " unknown";
+ text = QStringLiteral(" unknown");
}
else {
text = text.toLower();
}
- text = text.remove(QRegularExpression("[^\\w ]", QRegularExpression::UseUnicodePropertiesOption));
+ text = text.remove(QRegularExpression(QStringLiteral("[^\\w ]"), QRegularExpression::UseUnicodePropertiesOption));
return text;
@@ -1776,27 +1776,27 @@ QString CollectionModel::SortTextForArtist(QString artist, const bool skip_artic
QString CollectionModel::SortTextForNumber(const int number) {
- return QString("%1").arg(number, 4, 10, QChar('0'));
+ return QStringLiteral("%1").arg(number, 4, 10, QChar('0'));
}
QString CollectionModel::SortTextForYear(const int year) {
QString str = QString::number(year);
- return QString("0").repeated(qMax(0, 4 - str.length())) + str;
+ return QStringLiteral("0").repeated(qMax(0, 4 - str.length())) + str;
}
QString CollectionModel::SortTextForBitrate(const int bitrate) {
QString str = QString::number(bitrate);
- return QString("0").repeated(qMax(0, 3 - str.length())) + str;
+ return QStringLiteral("0").repeated(qMax(0, 3 - str.length())) + str;
}
QString CollectionModel::SortTextForSong(const Song &song) {
QString ret = QString::number(std::max(0, song.disc()) * 1000 + std::max(0, song.track()));
- ret.prepend(QString("0").repeated(6 - ret.length()));
+ ret.prepend(QStringLiteral("0").repeated(6 - ret.length()));
ret.append(song.url().toString());
return ret;
@@ -1818,7 +1818,7 @@ Qt::ItemFlags CollectionModel::flags(const QModelIndex &idx) const {
}
QStringList CollectionModel::mimeTypes() const {
- return QStringList() << "text/uri-list";
+ return QStringList() << QStringLiteral("text/uri-list");
}
QMimeData *CollectionModel::mimeData(const QModelIndexList &indexes) const {
diff --git a/src/collection/collectionquery.cpp b/src/collection/collectionquery.cpp
index e7b6f60d..62d060bb 100644
--- a/src/collection/collectionquery.cpp
+++ b/src/collection/collectionquery.cpp
@@ -54,9 +54,9 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
// 3) Remove colons which don't correspond to column names.
// Split on whitespace
- QString filter_text = filter_options.filter_text().replace(QRegularExpression(":\\s+"), ":");
+ QString filter_text = filter_options.filter_text().replace(QRegularExpression(QStringLiteral(":\\s+")), QStringLiteral(":"));
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
- QStringList tokens(filter_text.split(QRegularExpression("\\s+"), Qt::SkipEmptyParts));
+ QStringList tokens(filter_text.split(QRegularExpression(QStringLiteral("\\s+")), Qt::SkipEmptyParts));
#else
QStringList tokens(filter_text.split(QRegularExpression("\\s+"), QString::SkipEmptyParts));
#endif
@@ -69,7 +69,7 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
if (token.contains(':')) {
const QString columntoken = token.section(':', 0, 0);
- QString subtoken = token.section(':', 1, -1).replace(":", " ").trimmed();
+ QString subtoken = token.section(':', 1, -1).replace(QLatin1String(":"), QLatin1String(" ")).trimmed();
if (subtoken.isEmpty()) continue;
if (Song::kFtsColumns.contains("fts" + columntoken, Qt::CaseInsensitive)) {
if (!query.isEmpty()) query.append(" ");
@@ -77,10 +77,10 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
}
else if (Song::kNumericalColumns.contains(columntoken, Qt::CaseInsensitive)) {
QString comparator = RemoveSqlOperator(subtoken);
- if (columntoken.compare("rating", Qt::CaseInsensitive) == 0) {
+ if (columntoken.compare(QLatin1String("rating"), Qt::CaseInsensitive) == 0) {
AddWhereRating(subtoken, comparator);
}
- else if (columntoken.compare("length", Qt::CaseInsensitive) == 0) {
+ else if (columntoken.compare(QLatin1String("length"), Qt::CaseInsensitive) == 0) {
// Time is saved in nanoseconds, so add 9 0's
QString parsedTime = QString::number(Utilities::ParseSearchTime(subtoken)) + "000000000";
AddWhere(columntoken, parsedTime, comparator);
@@ -91,7 +91,7 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
}
// Not a valid filter, remove
else {
- token = token.replace(":", " ").trimmed();
+ token = token.replace(QLatin1String(":"), QLatin1String(" ")).trimmed();
if (!token.isEmpty()) {
if (!query.isEmpty()) query.append(" ");
query += "\"" + token + "\"*";
@@ -104,7 +104,7 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
}
}
if (!query.isEmpty()) {
- where_clauses_ << "fts.%fts_table_noprefix MATCH ?";
+ where_clauses_ << QStringLiteral("fts.%fts_table_noprefix MATCH ?");
bound_values_ << query;
join_with_fts_ = true;
}
@@ -113,7 +113,7 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
if (filter_options.max_age() != -1) {
qint64 cutoff = QDateTime::currentDateTime().toSecsSinceEpoch() - filter_options.max_age();
- where_clauses_ << "ctime > ?";
+ where_clauses_ << QStringLiteral("ctime > ?");
bound_values_ << cutoff;
}
@@ -126,15 +126,15 @@ CollectionQuery::CollectionQuery(const QSqlDatabase &db, const QString &songs_ta
duplicates_only_ = filter_options.filter_mode() == CollectionFilterOptions::FilterMode::Duplicates;
if (filter_options.filter_mode() == CollectionFilterOptions::FilterMode::Untagged) {
- where_clauses_ << "(artist = '' OR album = '' OR title ='')";
+ where_clauses_ << QStringLiteral("(artist = '' OR album = '' OR title ='')");
}
}
QString CollectionQuery::RemoveSqlOperator(QString &token) {
- QString op = "=";
- static QRegularExpression rxOp("^(=|<[>=]?|>=?|!=)");
+ QString op = QStringLiteral("=");
+ static QRegularExpression rxOp(QStringLiteral("^(=|<[>=]?|>=?|!=)"));
QRegularExpressionMatch match = rxOp.match(token);
if (match.hasMatch()) {
op = match.captured(0);
@@ -142,7 +142,7 @@ QString CollectionQuery::RemoveSqlOperator(QString &token) {
token.remove(rxOp);
if (op == "!=") {
- op = "<>";
+ op = QStringLiteral("<>");
}
return op;
@@ -152,16 +152,16 @@ QString CollectionQuery::RemoveSqlOperator(QString &token) {
void CollectionQuery::AddWhere(const QString &column, const QVariant &value, const QString &op) {
// Ignore 'literal' for IN
- if (op.compare("IN", Qt::CaseInsensitive) == 0) {
+ if (op.compare(QLatin1String("IN"), Qt::CaseInsensitive) == 0) {
QStringList values = value.toStringList();
QStringList final_values;
final_values.reserve(values.count());
for (const QString &single_value : values) {
- final_values.append("?");
+ final_values.append(QStringLiteral("?"));
bound_values_ << single_value;
}
- where_clauses_ << QString("%1 IN (" + final_values.join(",") + ")").arg(column);
+ where_clauses_ << QString("%1 IN (" + final_values.join(QStringLiteral(",")) + ")").arg(column);
}
else {
// Do integers inline - sqlite seems to get confused when you pass integers to bound parameters
@@ -170,7 +170,7 @@ void CollectionQuery::AddWhere(const QString &column, const QVariant &value, con
#else
if (value.type() == QVariant::Int) {
#endif
- where_clauses_ << QString("%1 %2 %3").arg(column, op, value.toString());
+ where_clauses_ << QStringLiteral("%1 %2 %3").arg(column, op, value.toString());
}
else if (
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
@@ -179,11 +179,11 @@ void CollectionQuery::AddWhere(const QString &column, const QVariant &value, con
value.type() == QVariant::String
#endif
&& value.toString().isNull()) {
- where_clauses_ << QString("%1 %2 ?").arg(column, op);
- bound_values_ << QString("");
+ where_clauses_ << QStringLiteral("%1 %2 ?").arg(column, op);
+ bound_values_ << QLatin1String("");
}
else {
- where_clauses_ << QString("%1 %2 ?").arg(column, op);
+ where_clauses_ << QStringLiteral("%1 %2 ?").arg(column, op);
bound_values_ << value;
}
}
@@ -192,7 +192,7 @@ void CollectionQuery::AddWhere(const QString &column, const QVariant &value, con
void CollectionQuery::AddWhereArtist(const QVariant &value) {
- where_clauses_ << QString("((artist = ? AND albumartist = '') OR albumartist = ?)");
+ where_clauses_ << QStringLiteral("((artist = ? AND albumartist = '') OR albumartist = ?)");
bound_values_ << value;
bound_values_ << value;
@@ -206,25 +206,25 @@ void CollectionQuery::AddWhereRating(const QVariant &value, const QString &op) {
// So we have to use a certain tolerance, so that the searched value is definetly included.
const float tolerance = 0.001F;
if (op == "<") {
- AddWhere("rating", parsed_rating-tolerance, "<");
+ AddWhere(QStringLiteral("rating"), parsed_rating-tolerance, QStringLiteral("<"));
}
else if (op == ">") {
- AddWhere("rating", parsed_rating+tolerance, ">");
+ AddWhere(QStringLiteral("rating"), parsed_rating+tolerance, QStringLiteral(">"));
}
else if (op == "<=") {
- AddWhere("rating", parsed_rating+tolerance, "<=");
+ AddWhere(QStringLiteral("rating"), parsed_rating+tolerance, QStringLiteral("<="));
}
else if (op == ">=") {
- AddWhere("rating", parsed_rating-tolerance, ">=");
+ AddWhere(QStringLiteral("rating"), parsed_rating-tolerance, QStringLiteral(">="));
}
else if (op == "<>") {
- where_clauses_ << QString("(rating OR rating>?)");
+ where_clauses_ << QStringLiteral("(rating OR rating>?)");
bound_values_ << parsed_rating - tolerance;
bound_values_ << parsed_rating + tolerance;
}
else /* (op == "=") */ {
- AddWhere("rating", parsed_rating+tolerance, "<");
- AddWhere("rating", parsed_rating-tolerance, ">");
+ AddWhere(QStringLiteral("rating"), parsed_rating+tolerance, QStringLiteral("<"));
+ AddWhere(QStringLiteral("rating"), parsed_rating-tolerance, QStringLiteral(">"));
}
}
@@ -233,7 +233,7 @@ void CollectionQuery::AddCompilationRequirement(const bool compilation) {
// The unary + is added to prevent sqlite from using the index idx_comp_artist.
// When joining with fts, sqlite 3.8 has a tendency to use this index and thereby nesting the tables in an order which gives very poor performance
- where_clauses_ << QString("+compilation_effective = %1").arg(compilation ? 1 : 0);
+ where_clauses_ << QStringLiteral("+compilation_effective = %1").arg(compilation ? 1 : 0);
}
@@ -251,26 +251,26 @@ bool CollectionQuery::Exec() {
QString sql;
if (join_with_fts_) {
- sql = QString("SELECT %1 FROM %2 INNER JOIN %3 AS fts ON %2.ROWID = fts.ROWID").arg(column_spec_, songs_table_, fts_table_);
+ sql = QStringLiteral("SELECT %1 FROM %2 INNER JOIN %3 AS fts ON %2.ROWID = fts.ROWID").arg(column_spec_, songs_table_, fts_table_);
}
else {
- sql = QString("SELECT %1 FROM %2 %3").arg(column_spec_, songs_table_, GetInnerQuery());
+ sql = QStringLiteral("SELECT %1 FROM %2 %3").arg(column_spec_, songs_table_, GetInnerQuery());
}
QStringList where_clauses(where_clauses_);
if (!include_unavailable_) {
- where_clauses << "unavailable = 0";
+ where_clauses << QStringLiteral("unavailable = 0");
}
- if (!where_clauses.isEmpty()) sql += " WHERE " + where_clauses.join(" AND ");
+ if (!where_clauses.isEmpty()) sql += " WHERE " + where_clauses.join(QStringLiteral(" AND "));
if (!order_by_.isEmpty()) sql += " ORDER BY " + order_by_;
if (limit_ != -1) sql += " LIMIT " + QString::number(limit_);
- sql.replace("%songs_table", songs_table_);
- sql.replace("%fts_table_noprefix", fts_table_.section('.', -1, -1));
- sql.replace("%fts_table", fts_table_);
+ sql.replace(QLatin1String("%songs_table"), songs_table_);
+ sql.replace(QLatin1String("%fts_table_noprefix"), fts_table_.section('.', -1, -1));
+ sql.replace(QLatin1String("%fts_table"), fts_table_);
if (!QSqlQuery::prepare(sql)) return false;
diff --git a/src/collection/collectionquery.h b/src/collection/collectionquery.h
index 0121bdd8..c8952706 100644
--- a/src/collection/collectionquery.h
+++ b/src/collection/collectionquery.h
@@ -67,9 +67,9 @@ class CollectionQuery : public QSqlQuery {
QString RemoveSqlOperator(QString &token);
// Adds a fragment of WHERE clause. When executed, this Query will connect all the fragments with AND operator.
// Please note that IN operator expects a QStringList as value.
- void AddWhere(const QString &column, const QVariant &value, const QString &op = "=");
+ void AddWhere(const QString &column, const QVariant &value, const QString &op = QStringLiteral("="));
void AddWhereArtist(const QVariant &value);
- void AddWhereRating(const QVariant &value, const QString &op = "=");
+ void AddWhereRating(const QVariant &value, const QString &op = QStringLiteral("="));
void SetBoundValues(const QVariantList &bound_values) { bound_values_ = bound_values; }
void SetDuplicatesOnly(const bool duplicates_only) { duplicates_only_ = duplicates_only; }
diff --git a/src/collection/collectionqueryoptions.h b/src/collection/collectionqueryoptions.h
index 785315ff..33764b9e 100644
--- a/src/collection/collectionqueryoptions.h
+++ b/src/collection/collectionqueryoptions.h
@@ -51,7 +51,7 @@ class CollectionQueryOptions {
void set_query_have_compilations(const bool query_have_compilations) { query_have_compilations_ = query_have_compilations; }
QList where_clauses() const { return where_clauses_; }
- void AddWhere(const QString &column, const QVariant &value, const QString &op = "=");
+ void AddWhere(const QString &column, const QVariant &value, const QString &op = QStringLiteral("="));
private:
QString column_spec_;
diff --git a/src/collection/collectionview.cpp b/src/collection/collectionview.cpp
index f64f33b9..0b438dc3 100644
--- a/src/collection/collectionview.cpp
+++ b/src/collection/collectionview.cpp
@@ -80,7 +80,7 @@ CollectionView::CollectionView(QWidget *parent)
total_song_count_(-1),
total_artist_count_(-1),
total_album_count_(-1),
- nomusic_(":/pictures/nomusic.png"),
+ nomusic_(QStringLiteral(":/pictures/nomusic.png")),
context_menu_(nullptr),
action_load_(nullptr),
action_add_to_playlist_(nullptr),
@@ -109,7 +109,7 @@ CollectionView::CollectionView(QWidget *parent)
setDragDropMode(QAbstractItemView::DragOnly);
setSelectionMode(QAbstractItemView::ExtendedSelection);
- setStyleSheet("QTreeView::item{padding-top:1px;}");
+ setStyleSheet(QStringLiteral("QTreeView::item{padding-top:1px;}"));
}
@@ -364,29 +364,29 @@ void CollectionView::contextMenuEvent(QContextMenuEvent *e) {
if (!context_menu_) {
context_menu_ = new QMenu(this);
- action_add_to_playlist_ = context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this, &CollectionView::AddToPlaylist);
- action_load_ = context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this, &CollectionView::Load);
- action_open_in_new_playlist_ = context_menu_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this, &CollectionView::OpenInNewPlaylist);
+ 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);
context_menu_->addSeparator();
- action_add_to_playlist_enqueue_ = context_menu_->addAction(IconLoader::Load("go-next"), tr("Queue track"), this, &CollectionView::AddToPlaylistEnqueue);
- action_add_to_playlist_enqueue_next_ = context_menu_->addAction(IconLoader::Load("go-next"), tr("Queue to play next"), this, &CollectionView::AddToPlaylistEnqueueNext);
+ 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);
context_menu_->addSeparator();
- action_search_for_this_ = context_menu_->addAction(IconLoader::Load("edit-find"), tr("Search for this"), this, &CollectionView::SearchForThis);
+ action_search_for_this_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-find")), tr("Search for this"), this, &CollectionView::SearchForThis);
context_menu_->addSeparator();
- action_organize_ = context_menu_->addAction(IconLoader::Load("edit-copy"), tr("Organize files..."), this, &CollectionView::Organize);
+ action_organize_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Organize files..."), this, &CollectionView::Organize);
#ifndef Q_OS_WIN
- action_copy_to_device_ = context_menu_->addAction(IconLoader::Load("device"), tr("Copy to device..."), this, &CollectionView::CopyToDevice);
+ action_copy_to_device_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("device")), tr("Copy to device..."), this, &CollectionView::CopyToDevice);
#endif
- action_delete_files_ = context_menu_->addAction(IconLoader::Load("edit-delete"), tr("Delete from disk..."), this, &CollectionView::Delete);
+ action_delete_files_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Delete from disk..."), this, &CollectionView::Delete);
context_menu_->addSeparator();
- action_edit_track_ = context_menu_->addAction(IconLoader::Load("edit-rename"), tr("Edit track information..."), this, &CollectionView::EditTracks);
- action_edit_tracks_ = context_menu_->addAction(IconLoader::Load("edit-rename"), tr("Edit tracks information..."), this, &CollectionView::EditTracks);
- action_show_in_browser_ = context_menu_->addAction(IconLoader::Load("document-open-folder"), tr("Show in file browser..."), this, &CollectionView::ShowInBrowser);
+ 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);
context_menu_->addSeparator();
@@ -582,7 +582,7 @@ void CollectionView::SearchForThis() {
if (!songs.isEmpty()) {
last_selected_song_ = songs.last();
}
- search = QString("title:%1").arg(last_selected_song_.title());
+ search = QStringLiteral("title:%1").arg(last_selected_song_.title());
break;
}
@@ -598,53 +598,53 @@ void CollectionView::SearchForThis() {
switch (container_group_by) {
case CollectionModel::GroupBy::AlbumArtist:
- search = QString("albumartist:%1").arg(item->metadata.effective_albumartist());
+ search = QStringLiteral("albumartist:%1").arg(item->metadata.effective_albumartist());
break;
case CollectionModel::GroupBy::Artist:
- search = QString("artist:%1").arg(item->metadata.artist());
+ search = QStringLiteral("artist:%1").arg(item->metadata.artist());
break;
case CollectionModel::GroupBy::Album:
- search = QString("album:%1").arg(item->metadata.album());
+ search = QStringLiteral("album:%1").arg(item->metadata.album());
break;
case CollectionModel::GroupBy::AlbumDisc:
- search = QString("album:%1").arg(item->metadata.album());
+ search = QStringLiteral("album:%1").arg(item->metadata.album());
break;
case CollectionModel::GroupBy::YearAlbum:
case CollectionModel::GroupBy::YearAlbumDisc:{
- search = QString("year:%1 album:%2").arg(item->metadata.year()).arg(item->metadata.album());
+ search = QStringLiteral("year:%1 album:%2").arg(item->metadata.year()).arg(item->metadata.album());
break;
}
case CollectionModel::GroupBy::OriginalYearAlbum:
case CollectionModel::GroupBy::OriginalYearAlbumDisc:{
- search = QString("year:%1 album:%2").arg(item->metadata.effective_originalyear()).arg(item->metadata.album());
+ search = QStringLiteral("year:%1 album:%2").arg(item->metadata.effective_originalyear()).arg(item->metadata.album());
break;
}
case CollectionModel::GroupBy::Year:
- search = QString("year:%1").arg(item->metadata.year());
+ search = QStringLiteral("year:%1").arg(item->metadata.year());
break;
case CollectionModel::GroupBy::OriginalYear:
- search = QString("year:%1").arg(item->metadata.effective_originalyear());
+ search = QStringLiteral("year:%1").arg(item->metadata.effective_originalyear());
break;
case CollectionModel::GroupBy::Genre:
- search = QString("genre:%1").arg(item->metadata.genre());
+ search = QStringLiteral("genre:%1").arg(item->metadata.genre());
break;
case CollectionModel::GroupBy::Composer:
- search = QString("composer:%1").arg(item->metadata.composer());
+ search = QStringLiteral("composer:%1").arg(item->metadata.composer());
break;
case CollectionModel::GroupBy::Performer:
- search = QString("performer:%1").arg(item->metadata.performer());
+ search = QStringLiteral("performer:%1").arg(item->metadata.performer());
break;
case CollectionModel::GroupBy::Grouping:
- search = QString("grouping:%1").arg(item->metadata.grouping());
+ search = QStringLiteral("grouping:%1").arg(item->metadata.grouping());
break;
case CollectionModel::GroupBy::Samplerate:
- search = QString("samplerate:%1").arg(item->metadata.samplerate());
+ search = QStringLiteral("samplerate:%1").arg(item->metadata.samplerate());
break;
case CollectionModel::GroupBy::Bitdepth:
- search = QString("bitdepth:%1").arg(item->metadata.bitdepth());
+ search = QStringLiteral("bitdepth:%1").arg(item->metadata.bitdepth());
break;
case CollectionModel::GroupBy::Bitrate:
- search = QString("bitrate:%1").arg(item->metadata.bitrate());
+ search = QStringLiteral("bitrate:%1").arg(item->metadata.bitrate());
break;
default:
search = model()->data(current, Qt::DisplayRole).toString();
diff --git a/src/collection/collectionwatcher.cpp b/src/collection/collectionwatcher.cpp
index 34cf221d..86310bf8 100644
--- a/src/collection/collectionwatcher.cpp
+++ b/src/collection/collectionwatcher.cpp
@@ -70,8 +70,8 @@
using namespace std::chrono_literals;
-QStringList CollectionWatcher::sValidImages = QStringList() << "jpg" << "png" << "gif" << "jpeg";
-QStringList CollectionWatcher::kIgnoredExtensions = QStringList() << "tmp" << "tar" << "gz" << "bz2" << "xz" << "tbz" << "tgz" << "z" << "zip" << "rar";
+QStringList CollectionWatcher::sValidImages = QStringList() << QStringLiteral("jpg") << QStringLiteral("png") << QStringLiteral("gif") << QStringLiteral("jpeg");
+QStringList CollectionWatcher::kIgnoredExtensions = QStringList() << QStringLiteral("tmp") << QStringLiteral("tar") << QStringLiteral("gz") << QStringLiteral("bz2") << QStringLiteral("xz") << QStringLiteral("tbz") << QStringLiteral("tgz") << QStringLiteral("z") << QStringLiteral("zip") << QStringLiteral("rar");
CollectionWatcher::CollectionWatcher(Song::Source source, QObject *parent)
: QObject(parent),
@@ -154,7 +154,7 @@ void CollectionWatcher::ReloadSettings() {
s.beginGroup(CollectionSettingsPage::kSettingsGroup);
scan_on_startup_ = s.value("startup_scan", true).toBool();
monitor_ = s.value("monitor", true).toBool();
- QStringList filters = s.value("cover_art_patterns", QStringList() << "front" << "cover").toStringList();
+ QStringList filters = s.value("cover_art_patterns", QStringList() << QStringLiteral("front") << QStringLiteral("cover")).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();
@@ -612,7 +612,7 @@ void CollectionWatcher::ScanSubdirectory(const QString &path, const CollectionSu
Chromaprinter chromaprinter(file);
fingerprint = chromaprinter.CreateFingerprint();
if (fingerprint.isEmpty()) {
- fingerprint = "NONE";
+ fingerprint = QStringLiteral("NONE");
}
}
#endif
@@ -639,7 +639,7 @@ void CollectionWatcher::ScanSubdirectory(const QString &path, const CollectionSu
Chromaprinter chromaprinter(file);
fingerprint = chromaprinter.CreateFingerprint();
if (fingerprint.isEmpty()) {
- fingerprint = "NONE";
+ fingerprint = QStringLiteral("NONE");
}
}
#endif
@@ -892,50 +892,50 @@ void CollectionWatcher::AddChangedSong(const QString &file, const Song &matching
}
else {
if (matching_song.url() != new_song.url()) {
- changes << "file path";
+ changes << QStringLiteral("file path");
notify_new = true;
}
if (matching_song.fingerprint() != new_song.fingerprint()) {
- changes << "fingerprint";
+ changes << QStringLiteral("fingerprint");
notify_new = true;
}
if (!matching_song.IsMetadataEqual(new_song)) {
- changes << "metadata";
+ changes << QStringLiteral("metadata");
notify_new = true;
}
if (!matching_song.IsPlayStatisticsEqual(new_song)) {
- changes << "play statistics";
+ changes << QStringLiteral("play statistics");
notify_new = true;
}
if (!matching_song.IsRatingEqual(new_song)) {
- changes << "rating";
+ changes << QStringLiteral("rating");
notify_new = true;
}
if (!matching_song.IsArtEqual(new_song)) {
- changes << "album art";
+ changes << QStringLiteral("album art");
notify_new = true;
}
if (!matching_song.IsAcoustIdEqual(new_song)) {
- changes << "acoustid";
+ changes << QStringLiteral("acoustid");
notify_new = true;
}
if (!matching_song.IsMusicBrainzEqual(new_song)) {
- changes << "musicbrainz";
+ changes << QStringLiteral("musicbrainz");
notify_new = true;
}
if (!matching_song.IsEBUR128Equal(new_song)) {
- changes << "ebur128 loudness characteristics";
+ changes << QStringLiteral("ebur128 loudness characteristics");
notify_new = true;
}
if (matching_song.mtime() != new_song.mtime()) {
- changes << "mtime";
+ changes << QStringLiteral("mtime");
}
if (changes.isEmpty()) {
qLog(Debug) << "Song" << file << "unchanged.";
}
else {
- qLog(Debug) << "Song" << file << changes.join(", ") << "changed.";
+ qLog(Debug) << "Song" << file << changes.join(QStringLiteral(", ")) << "changed.";
}
}
diff --git a/src/collection/collectionwatcher.h b/src/collection/collectionwatcher.h
index f3d07091..4b1c0a01 100644
--- a/src/collection/collectionwatcher.h
+++ b/src/collection/collectionwatcher.h
@@ -252,11 +252,11 @@ class CollectionWatcher : public QObject {
};
inline QString CollectionWatcher::NoExtensionPart(const QString &fileName) {
- return fileName.contains('.') ? fileName.section('.', 0, -2) : "";
+ return fileName.contains('.') ? fileName.section('.', 0, -2) : QLatin1String("");
}
// Thanks Amarok
inline QString CollectionWatcher::ExtensionPart(const QString &fileName) {
- return fileName.contains( '.' ) ? fileName.mid( fileName.lastIndexOf('.') + 1 ).toLower() : "";
+ return fileName.contains( '.' ) ? fileName.mid( fileName.lastIndexOf('.') + 1 ).toLower() : QLatin1String("");
}
inline QString CollectionWatcher::DirectoryPart(const QString &fileName) {
return fileName.section('/', 0, -2);
diff --git a/src/collection/savedgroupingmanager.cpp b/src/collection/savedgroupingmanager.cpp
index c553dd56..c58b7643 100644
--- a/src/collection/savedgroupingmanager.cpp
+++ b/src/collection/savedgroupingmanager.cpp
@@ -56,7 +56,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("edit-delete"));
+ ui_->remove->setIcon(IconLoader::Load(QStringLiteral("edit-delete")));
ui_->remove->setEnabled(false);
ui_->remove->setShortcut(QKeySequence::Delete);
diff --git a/src/context/contextalbum.cpp b/src/context/contextalbum.cpp
index 7e4b080c..bb718a22 100644
--- a/src/context/contextalbum.cpp
+++ b/src/context/contextalbum.cpp
@@ -56,7 +56,7 @@ ContextAlbum::ContextAlbum(QWidget *parent)
album_cover_choice_controller_(nullptr),
downloading_covers_(false),
timeline_fade_(new QTimeLine(kFadeTimeLineMs, this)),
- image_strawberry_(":/pictures/strawberry.png"),
+ image_strawberry_(QStringLiteral(":/pictures/strawberry.png")),
image_original_(image_strawberry_),
pixmap_current_opacity_(1.0),
desired_height_(width()) {
diff --git a/src/context/contextview.cpp b/src/context/contextview.cpp
index 7a946b4a..48d40d5b 100644
--- a/src/context/contextview.cpp
+++ b/src/context/contextview.cpp
@@ -409,15 +409,15 @@ void ContextView::NoSong() {
QString html;
if (collectionview_->TotalSongs() == 1) html += tr("%1 song").arg(collectionview_->TotalSongs());
else html += tr("%1 songs").arg(collectionview_->TotalSongs());
- html += " ";
+ html += QLatin1String(" ");
if (collectionview_->TotalArtists() == 1) html += tr("%1 artist").arg(collectionview_->TotalArtists());
else html += tr("%1 artists").arg(collectionview_->TotalArtists());
- html += " ";
+ html += QLatin1String(" ");
if (collectionview_->TotalAlbums() == 1) html += tr("%1 album").arg(collectionview_->TotalAlbums());
else html += tr("%1 albums").arg(collectionview_->TotalAlbums());
- html += " ";
+ html += QLatin1String(" ");
label_stop_summary_->setFont(font_normal_);
label_stop_summary_->setText(html);
@@ -438,7 +438,7 @@ void ContextView::UpdateFonts() {
void ContextView::SetSong() {
textedit_top_->setFont(font_headline_);
- textedit_top_->SetText(QString("%1 %2").arg(Utilities::ReplaceMessage(title_fmt_, song_playing_, " ", true), Utilities::ReplaceMessage(summary_fmt_, song_playing_, " ", true)));
+ textedit_top_->SetText(QStringLiteral("%1 %2").arg(Utilities::ReplaceMessage(title_fmt_, song_playing_, QStringLiteral(" "), true), Utilities::ReplaceMessage(summary_fmt_, song_playing_, QStringLiteral(" "), true)));
label_stop_summary_->clear();
@@ -474,7 +474,7 @@ void ContextView::SetSong() {
else {
label_samplerate_title_->show();
label_samplerate_->show();
- SetLabelText(label_samplerate_, song_playing_.samplerate(), "Hz");
+ SetLabelText(label_samplerate_, song_playing_.samplerate(), QStringLiteral("Hz"));
}
if (song_playing_.bitdepth() <= 0) {
label_bitdepth_title_->hide();
@@ -484,7 +484,7 @@ void ContextView::SetSong() {
else {
label_bitdepth_title_->show();
label_bitdepth_->show();
- SetLabelText(label_bitdepth_, song_playing_.bitdepth(), "Bit");
+ SetLabelText(label_bitdepth_, song_playing_.bitdepth(), QStringLiteral("Bit"));
}
if (song_playing_.bitrate() <= 0) {
label_bitrate_title_->hide();
@@ -546,7 +546,7 @@ void ContextView::SetSong() {
void ContextView::UpdateSong(const Song &song) {
- textedit_top_->SetText(QString("%1 %2").arg(Utilities::ReplaceMessage(title_fmt_, song, " ", true), Utilities::ReplaceMessage(summary_fmt_, song, " ", true)));
+ textedit_top_->SetText(QStringLiteral("%1 %2").arg(Utilities::ReplaceMessage(title_fmt_, song, QStringLiteral(" "), true), Utilities::ReplaceMessage(summary_fmt_, song, QStringLiteral(" "), true)));
if (action_show_data_->isChecked()) {
if (song.filetype() != song_playing_.filetype()) label_filetype_->setText(song.TextForFiletype());
@@ -571,7 +571,7 @@ void ContextView::UpdateSong(const Song &song) {
else {
label_samplerate_title_->show();
label_samplerate_->show();
- SetLabelText(label_samplerate_, song.samplerate(), "Hz");
+ SetLabelText(label_samplerate_, song.samplerate(), QStringLiteral("Hz"));
}
}
if (song.bitdepth() != song_playing_.bitdepth()) {
@@ -583,7 +583,7 @@ void ContextView::UpdateSong(const Song &song) {
else {
label_bitdepth_title_->show();
label_bitdepth_->show();
- SetLabelText(label_bitdepth_, song.bitdepth(), "Bit");
+ SetLabelText(label_bitdepth_, song.bitdepth(), QStringLiteral("Bit"));
}
}
if (song.bitrate() != song_playing_.bitrate()) {
@@ -632,7 +632,7 @@ void ContextView::UpdateLyrics(const quint64 id, const QString &provider, const
if (static_cast(id) != lyrics_id_) return;
if (lyrics.isEmpty()) {
- lyrics_ = "No lyrics found.\n";
+ lyrics_ = QStringLiteral("No lyrics found.\n");
}
else {
lyrics_ = lyrics + "\n\n(Lyrics from " + provider + ")\n";
diff --git a/src/core/commandlineoptions.cpp b/src/core/commandlineoptions.cpp
index ef62d84c..9c995f7a 100644
--- a/src/core/commandlineoptions.cpp
+++ b/src/core/commandlineoptions.cpp
@@ -112,7 +112,7 @@ CommandlineOptions::CommandlineOptions(int argc, char **argv)
#endif
// Remove the -session option that KDE passes
- RemoveArg("-session", 2);
+ RemoveArg(QStringLiteral("-session"), 2);
}
@@ -301,16 +301,16 @@ bool CommandlineOptions::Parse() {
volume_modifier_ = -4;
break;
case LongOptions::Quiet:
- log_levels_ = "1";
+ log_levels_ = QStringLiteral("1");
break;
case LongOptions::Verbose:
- log_levels_ = "3";
+ log_levels_ = QStringLiteral("3");
break;
case LongOptions::LogLevels:
log_levels_ = OptArgToString(optarg);
break;
case LongOptions::Version: {
- QString version_text = QString(kVersionText).arg(STRAWBERRY_VERSION_DISPLAY);
+ QString version_text = QString::fromUtf8(kVersionText).arg(QStringLiteral(STRAWBERRY_VERSION_DISPLAY));
std::cout << version_text.toLocal8Bit().constData() << std::endl;
std::exit(0);
}
diff --git a/src/core/database.cpp b/src/core/database.cpp
index 3797a871..8e42214a 100644
--- a/src/core/database.cpp
+++ b/src/core/database.cpp
@@ -114,7 +114,7 @@ QSqlDatabase Database::Connect() {
}
}
- const QString connection_id = QString("%1_thread_%2").arg(connection_id_).arg(reinterpret_cast(QThread::currentThread()));
+ const QString connection_id = QStringLiteral("%1_thread_%2").arg(connection_id_).arg(reinterpret_cast(QThread::currentThread()));
// Try to find an existing connection for this thread
QSqlDatabase db;
@@ -122,12 +122,12 @@ QSqlDatabase Database::Connect() {
db = QSqlDatabase::database(connection_id);
}
else {
- db = QSqlDatabase::addDatabase("QSQLITE", connection_id);
+ db = QSqlDatabase::addDatabase(QStringLiteral("QSQLITE"), connection_id);
}
if (db.isOpen()) {
return db;
}
- db.setConnectOptions("QSQLITE_BUSY_TIMEOUT=30000");
+ db.setConnectOptions(QStringLiteral("QSQLITE_BUSY_TIMEOUT=30000"));
//qLog(Debug) << "Opened database with connection id" << connection_id;
if (injected_database_name_.isNull()) {
@@ -161,9 +161,9 @@ QSqlDatabase Database::Connect() {
// Attach the db
SqlQuery q(db);
- q.prepare("ATTACH DATABASE :filename AS :alias");
- q.BindValue(":filename", filename);
- q.BindValue(":alias", key);
+ q.prepare(QStringLiteral("ATTACH DATABASE :filename AS :alias"));
+ q.BindValue(QStringLiteral(":filename"), filename);
+ q.BindValue(QStringLiteral(":alias"), key);
if (!q.Exec()) {
qFatal("Couldn't attach external database '%s'", key.toLatin1().constData());
}
@@ -181,7 +181,7 @@ QSqlDatabase Database::Connect() {
}
// Find out if there are any tables in this database
SqlQuery q(db);
- q.prepare(QString("SELECT ROWID FROM %1.sqlite_master WHERE type='table'").arg(key));
+ q.prepare(QStringLiteral("SELECT ROWID FROM %1.sqlite_master WHERE type='table'").arg(key));
if (!q.Exec() || !q.next()) {
q.finish();
ExecSchemaCommandsFromFile(db, attached_databases_[key].schema_, 0);
@@ -196,7 +196,7 @@ void Database::Close() {
QMutexLocker l(&connect_mutex_);
- const QString connection_id = QString("%1_thread_%2").arg(connection_id_).arg(reinterpret_cast(QThread::currentThread()));
+ const QString connection_id = QStringLiteral("%1_thread_%2").arg(connection_id_).arg(reinterpret_cast(QThread::currentThread()));
// Try to find an existing connection for this thread
if (QSqlDatabase::connectionNames().contains(connection_id)) {
@@ -218,7 +218,7 @@ int Database::SchemaVersion(QSqlDatabase *db) {
int schema_version = 0;
{
SqlQuery q(*db);
- q.prepare("SELECT version FROM schema_version");
+ q.prepare(QStringLiteral("SELECT version FROM schema_version"));
if (q.Exec() && q.next()) {
schema_version = q.value(0).toInt();
}
@@ -259,8 +259,8 @@ void Database::RecreateAttachedDb(const QString &database_name) {
QSqlDatabase db(Connect());
SqlQuery q(db);
- q.prepare("DETACH DATABASE :alias");
- q.BindValue(":alias", database_name);
+ q.prepare(QStringLiteral("DETACH DATABASE :alias"));
+ q.BindValue(QStringLiteral(":alias"), database_name);
if (!q.Exec()) {
qLog(Warning) << "Failed to detach database" << database_name;
return;
@@ -289,9 +289,9 @@ void Database::AttachDatabaseOnDbConnection(const QString &database_name, const
// Attach the db
SqlQuery q(db);
- q.prepare("ATTACH DATABASE :filename AS :alias");
- q.BindValue(":filename", database.filename_);
- q.BindValue(":alias", database_name);
+ q.prepare(QStringLiteral("ATTACH DATABASE :filename AS :alias"));
+ q.BindValue(QStringLiteral(":filename"), database.filename_);
+ q.BindValue(QStringLiteral(":alias"), database_name);
if (!q.Exec()) {
qFatal("Couldn't attach external database '%s'", database_name.toLatin1().constData());
}
@@ -305,8 +305,8 @@ void Database::DetachDatabase(const QString &database_name) {
QSqlDatabase db(Connect());
SqlQuery q(db);
- q.prepare("DETACH DATABASE :alias");
- q.BindValue(":alias", database_name);
+ q.prepare(QStringLiteral("DETACH DATABASE :alias"));
+ q.BindValue(QStringLiteral(":alias"), database_name);
if (!q.Exec()) {
qLog(Warning) << "Failed to detach database" << database_name;
return;
@@ -321,10 +321,10 @@ void Database::UpdateDatabaseSchema(int version, QSqlDatabase &db) {
QString filename;
if (version == 0) {
- filename = ":/schema/schema.sql";
+ filename = QStringLiteral(":/schema/schema.sql");
}
else {
- filename = QString(":/schema/schema-%1.sql").arg(version);
+ filename = QStringLiteral(":/schema/schema-%1.sql").arg(version);
qLog(Debug) << "Applying database schema update" << version << "from" << filename;
}
@@ -335,9 +335,9 @@ void Database::UpdateDatabaseSchema(int version, QSqlDatabase &db) {
void Database::UrlEncodeFilenameColumn(const QString &table, QSqlDatabase &db) {
SqlQuery select(db);
- select.prepare(QString("SELECT ROWID, filename FROM %1").arg(table));
+ select.prepare(QStringLiteral("SELECT ROWID, filename FROM %1").arg(table));
SqlQuery update(db);
- update.prepare(QString("UPDATE %1 SET filename=:filename WHERE ROWID=:id").arg(table));
+ update.prepare(QStringLiteral("UPDATE %1 SET filename=:filename WHERE ROWID=:id").arg(table));
if (!select.Exec()) {
ReportErrors(select);
}
@@ -346,14 +346,14 @@ void Database::UrlEncodeFilenameColumn(const QString &table, QSqlDatabase &db) {
const int rowid = select.value(0).toInt();
const QString filename = select.value(1).toString();
- if (filename.isEmpty() || filename.contains("://")) {
+ if (filename.isEmpty() || filename.contains(QLatin1String("://"))) {
continue;
}
const QUrl url = QUrl::fromLocalFile(filename);
- update.BindValue(":filename", url.toEncoded());
- update.BindValue(":id", rowid);
+ update.BindValue(QStringLiteral(":filename"), url.toEncoded());
+ update.BindValue(QStringLiteral(":id"), rowid);
if (!update.Exec()) {
ReportErrors(update);
}
@@ -370,8 +370,8 @@ void Database::ExecSchemaCommandsFromFile(QSqlDatabase &db, const QString &filen
}
QByteArray data = schema_file.readAll();
QString schema = QString::fromUtf8(data);
- if (schema.contains("\r\n")) {
- schema = schema.replace("\r\n", "\n");
+ if (schema.contains(QLatin1String("\r\n"))) {
+ schema = schema.replace(QLatin1String("\r\n"), QLatin1String("\n"));
}
schema_file.close();
ExecSchemaCommands(db, schema, schema_version, in_transaction);
@@ -382,7 +382,7 @@ void Database::ExecSchemaCommands(QSqlDatabase &db, const QString &schema, int s
// Run each command
QStringList commands;
- commands = schema.split(QRegularExpression("; *\n\n"));
+ commands = schema.split(QRegularExpression(QStringLiteral("; *\n\n")));
// We don't want this list to reflect possible DB schema changes, so we initialize it before executing any statements.
// If no outer transaction is provided the song tables need to be queried before beginning an inner transaction!
@@ -408,7 +408,7 @@ void Database::ExecSongTablesCommands(QSqlDatabase &db, const QStringList &song_
if (command.contains(kMagicAllSongsTables)) {
for (const QString &table : song_tables) {
// Another horrible hack: device songs tables don't have matching _fts tables, so if this command tries to touch one, ignore it.
- if (table.startsWith("device_") && command.contains(QString(kMagicAllSongsTables) + "_fts")) {
+ if (table.startsWith(QLatin1String("device_")) && command.contains(QString(kMagicAllSongsTables) + "_fts")) {
continue;
}
@@ -443,14 +443,14 @@ QStringList Database::SongsTables(QSqlDatabase &db, const int schema_version) {
// look for the tables in the main db
for (const QString &table : db.tables()) {
- if (table == "songs" || table.endsWith("_songs")) ret << table;
+ if (table == "songs" || table.endsWith(QLatin1String("_songs"))) ret << table;
}
// look for the tables in attached dbs
QStringList keys = attached_databases_.keys();
for (const QString &key : keys) {
SqlQuery q(db);
- q.prepare(QString("SELECT NAME FROM %1.sqlite_master WHERE type='table' AND name='songs' OR name LIKE '%songs'").arg(key));
+ q.prepare(QStringLiteral("SELECT NAME FROM %1.sqlite_master WHERE type='table' AND name='songs' OR name LIKE '%songs'").arg(key));
if (q.Exec()) {
while (q.next()) {
QString tab_name = key + "." + q.value(0).toString();
@@ -462,7 +462,7 @@ QStringList Database::SongsTables(QSqlDatabase &db, const int schema_version) {
}
}
- ret << "playlist_items";
+ ret << QStringLiteral("playlist_items");
return ret;
@@ -488,7 +488,7 @@ bool Database::IntegrityCheck(const QSqlDatabase &db) {
bool ok = false;
// Ask for 10 error messages at most.
SqlQuery q(db);
- q.prepare("PRAGMA integrity_check(10)");
+ q.prepare(QStringLiteral("PRAGMA integrity_check(10)"));
if (q.Exec()) {
bool error_reported = false;
while (q.next()) {
@@ -553,7 +553,7 @@ bool Database::OpenDatabase(const QString &filename, sqlite3 **connection) {
void Database::BackupFile(const QString &filename) {
qLog(Debug) << "Starting database backup";
- QString dest_filename = QString("%1.bak").arg(filename);
+ QString dest_filename = QStringLiteral("%1.bak").arg(filename);
const int task_id = app_->task_manager()->StartTask(tr("Backing up database"));
sqlite3 *source_connection = nullptr;
diff --git a/src/core/database.h b/src/core/database.h
index 4ea1b15e..4cd0ec80 100644
--- a/src/core/database.h
+++ b/src/core/database.h
@@ -148,7 +148,7 @@ class MemoryDatabase : public Database {
public:
explicit MemoryDatabase(Application *app, QObject *parent = nullptr)
- : Database(app, parent, ":memory:") {}
+ : Database(app, parent, QStringLiteral(":memory:")) {}
~MemoryDatabase() override {
// Make sure Qt doesn't reuse the same database
QSqlDatabase::removeDatabase(Connect().connectionName());
diff --git a/src/core/iconloader.cpp b/src/core/iconloader.cpp
index f1cbed86..4a2c2ec3 100644
--- a/src/core/iconloader.cpp
+++ b/src/core/iconloader.cpp
@@ -127,7 +127,7 @@ QIcon IconLoader::Load(const QString &name, const bool system_icon, const int fi
qLog(Warning) << "Couldn't load icon" << name << "from custom icons.";
}
- const QString path(":/icons/%1x%2/%3.png");
+ const QString path(QStringLiteral(":/icons/%1x%2/%3.png"));
for (int s : sizes) {
QString filename(path.arg(s).arg(s).arg(name));
if (QFile::exists(filename)) ret.addFile(filename, QSize(s, s));
diff --git a/src/core/mainwindow.cpp b/src/core/mainwindow.cpp
index 027532be..49d9e58d 100644
--- a/src/core/mainwindow.cpp
+++ b/src/core/mainwindow.cpp
@@ -363,7 +363,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
// Initialize the UI
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("strawberry"));
+ setWindowIcon(IconLoader::Load(QStringLiteral("strawberry")));
album_cover_choice_controller_->Init(app);
@@ -375,24 +375,24 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
StyleHelper::setBaseColor(palette().color(QPalette::Highlight).darker());
// Add tabs to the fancy tab widget
- ui_->tabs->AddTab(context_view_, "context", IconLoader::Load("strawberry", true, 0, 32), tr("Context"));
- ui_->tabs->AddTab(collection_view_, "collection", IconLoader::Load("library-music", true, 0, 32), tr("Collection"));
- ui_->tabs->AddTab(queue_view_, "queue", IconLoader::Load("footsteps", true, 0, 32), tr("Queue"));
- ui_->tabs->AddTab(playlist_list_, "playlists", IconLoader::Load("view-media-playlist", true, 0, 32), tr("Playlists"));
- ui_->tabs->AddTab(smartplaylists_view_, "smartplaylists", IconLoader::Load("view-media-playlist", true, 0, 32), tr("Smart playlists"));
- ui_->tabs->AddTab(file_view_, "files", IconLoader::Load("document-open", true, 0, 32), tr("Files"));
- ui_->tabs->AddTab(radio_view_, "radios", IconLoader::Load("radio", true, 0, 32), tr("Radios"));
+ ui_->tabs->AddTab(context_view_, QStringLiteral("context"), IconLoader::Load(QStringLiteral("strawberry"), true, 0, 32), tr("Context"));
+ ui_->tabs->AddTab(collection_view_, QStringLiteral("collection"), IconLoader::Load(QStringLiteral("library-music"), true, 0, 32), tr("Collection"));
+ ui_->tabs->AddTab(queue_view_, QStringLiteral("queue"), IconLoader::Load(QStringLiteral("footsteps"), true, 0, 32), tr("Queue"));
+ ui_->tabs->AddTab(playlist_list_, QStringLiteral("playlists"), IconLoader::Load(QStringLiteral("view-media-playlist"), true, 0, 32), tr("Playlists"));
+ ui_->tabs->AddTab(smartplaylists_view_, QStringLiteral("smartplaylists"), IconLoader::Load(QStringLiteral("view-media-playlist"), true, 0, 32), tr("Smart playlists"));
+ ui_->tabs->AddTab(file_view_, QStringLiteral("files"), IconLoader::Load(QStringLiteral("document-open"), true, 0, 32), tr("Files"));
+ ui_->tabs->AddTab(radio_view_, QStringLiteral("radios"), IconLoader::Load(QStringLiteral("radio"), true, 0, 32), tr("Radios"));
#ifndef Q_OS_WIN
- ui_->tabs->AddTab(device_view_, "devices", IconLoader::Load("device", true, 0, 32), tr("Devices"));
+ ui_->tabs->AddTab(device_view_, QStringLiteral("devices"), IconLoader::Load(QStringLiteral("device"), true, 0, 32), tr("Devices"));
#endif
#ifdef HAVE_SUBSONIC
- ui_->tabs->AddTab(subsonic_view_, "subsonic", IconLoader::Load("subsonic", true, 0, 32), tr("Subsonic"));
+ ui_->tabs->AddTab(subsonic_view_, QStringLiteral("subsonic"), IconLoader::Load(QStringLiteral("subsonic"), true, 0, 32), tr("Subsonic"));
#endif
#ifdef HAVE_TIDAL
- ui_->tabs->AddTab(tidal_view_, "tidal", IconLoader::Load("tidal", true, 0, 32), tr("Tidal"));
+ ui_->tabs->AddTab(tidal_view_, QStringLiteral("tidal"), IconLoader::Load(QStringLiteral("tidal"), true, 0, 32), tr("Tidal"));
#endif
#ifdef HAVE_QOBUZ
- ui_->tabs->AddTab(qobuz_view_, "qobuz", IconLoader::Load("qobuz", true, 0, 32), tr("Qobuz"));
+ ui_->tabs->AddTab(qobuz_view_, QStringLiteral("qobuz"), IconLoader::Load(QStringLiteral("qobuz"), true, 0, 32), tr("Qobuz"));
#endif
// Add the playing widget to the fancy tab widget
@@ -447,59 +447,59 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
// Help menu
- ui_->action_about_strawberry->setIcon(IconLoader::Load("strawberry"));
+ ui_->action_about_strawberry->setIcon(IconLoader::Load(QStringLiteral("strawberry")));
ui_->action_about_qt->setIcon(QIcon(":/qt-project.org/qmessagebox/images/qtlogo-64.png"));
// Music menu
- ui_->action_open_file->setIcon(IconLoader::Load("document-open"));
- ui_->action_open_cd->setIcon(IconLoader::Load("media-optical"));
- ui_->action_previous_track->setIcon(IconLoader::Load("media-skip-backward"));
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start"));
- ui_->action_stop->setIcon(IconLoader::Load("media-playback-stop"));
- ui_->action_stop_after_this_track->setIcon(IconLoader::Load("media-playback-stop"));
- ui_->action_next_track->setIcon(IconLoader::Load("media-skip-forward"));
- ui_->action_quit->setIcon(IconLoader::Load("application-exit"));
+ ui_->action_open_file->setIcon(IconLoader::Load(QStringLiteral("document-open")));
+ ui_->action_open_cd->setIcon(IconLoader::Load(QStringLiteral("media-optical")));
+ ui_->action_previous_track->setIcon(IconLoader::Load(QStringLiteral("media-skip-backward")));
+ ui_->action_play_pause->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
+ ui_->action_stop->setIcon(IconLoader::Load(QStringLiteral("media-playback-stop")));
+ ui_->action_stop_after_this_track->setIcon(IconLoader::Load(QStringLiteral("media-playback-stop")));
+ ui_->action_next_track->setIcon(IconLoader::Load(QStringLiteral("media-skip-forward")));
+ ui_->action_quit->setIcon(IconLoader::Load(QStringLiteral("application-exit")));
// Playlist
- ui_->action_add_file->setIcon(IconLoader::Load("document-open"));
- ui_->action_add_folder->setIcon(IconLoader::Load("document-open-folder"));
- ui_->action_add_stream->setIcon(IconLoader::Load("document-open-remote"));
- ui_->action_shuffle_mode->setIcon(IconLoader::Load("media-playlist-shuffle"));
- ui_->action_repeat_mode->setIcon(IconLoader::Load("media-playlist-repeat"));
- ui_->action_new_playlist->setIcon(IconLoader::Load("document-new"));
- ui_->action_save_playlist->setIcon(IconLoader::Load("document-save"));
- ui_->action_load_playlist->setIcon(IconLoader::Load("document-open"));
- ui_->action_jump->setIcon(IconLoader::Load("go-jump"));
- ui_->action_clear_playlist->setIcon(IconLoader::Load("edit-clear-list"));
- ui_->action_shuffle->setIcon(IconLoader::Load("media-playlist-shuffle"));
- ui_->action_remove_duplicates->setIcon(IconLoader::Load("list-remove"));
- ui_->action_remove_unavailable->setIcon(IconLoader::Load("list-remove"));
- ui_->action_remove_from_playlist->setIcon(IconLoader::Load("list-remove"));
- ui_->action_save_all_playlists->setIcon(IconLoader::Load("document-save-all"));
+ ui_->action_add_file->setIcon(IconLoader::Load(QStringLiteral("document-open")));
+ ui_->action_add_folder->setIcon(IconLoader::Load(QStringLiteral("document-open-folder")));
+ ui_->action_add_stream->setIcon(IconLoader::Load(QStringLiteral("document-open-remote")));
+ ui_->action_shuffle_mode->setIcon(IconLoader::Load(QStringLiteral("media-playlist-shuffle")));
+ ui_->action_repeat_mode->setIcon(IconLoader::Load(QStringLiteral("media-playlist-repeat")));
+ ui_->action_new_playlist->setIcon(IconLoader::Load(QStringLiteral("document-new")));
+ ui_->action_save_playlist->setIcon(IconLoader::Load(QStringLiteral("document-save")));
+ ui_->action_load_playlist->setIcon(IconLoader::Load(QStringLiteral("document-open")));
+ ui_->action_jump->setIcon(IconLoader::Load(QStringLiteral("go-jump")));
+ ui_->action_clear_playlist->setIcon(IconLoader::Load(QStringLiteral("edit-clear-list")));
+ ui_->action_shuffle->setIcon(IconLoader::Load(QStringLiteral("media-playlist-shuffle")));
+ ui_->action_remove_duplicates->setIcon(IconLoader::Load(QStringLiteral("list-remove")));
+ ui_->action_remove_unavailable->setIcon(IconLoader::Load(QStringLiteral("list-remove")));
+ ui_->action_remove_from_playlist->setIcon(IconLoader::Load(QStringLiteral("list-remove")));
+ ui_->action_save_all_playlists->setIcon(IconLoader::Load(QStringLiteral("document-save-all")));
// Configure
- ui_->action_cover_manager->setIcon(IconLoader::Load("document-download"));
- ui_->action_edit_track->setIcon(IconLoader::Load("edit-rename"));
- ui_->action_edit_value->setIcon(IconLoader::Load("edit-rename"));
- ui_->action_selection_set_value->setIcon(IconLoader::Load("edit-rename"));
- ui_->action_equalizer->setIcon(IconLoader::Load("equalizer"));
- ui_->action_transcoder->setIcon(IconLoader::Load("tools-wizard"));
- ui_->action_update_collection->setIcon(IconLoader::Load("view-refresh"));
- ui_->action_full_collection_scan->setIcon(IconLoader::Load("view-refresh"));
- ui_->action_abort_collection_scan->setIcon(IconLoader::Load("dialog-error"));
- ui_->action_settings->setIcon(IconLoader::Load("configure"));
- ui_->action_import_data_from_last_fm->setIcon(IconLoader::Load("scrobble"));
- ui_->action_console->setIcon(IconLoader::Load("keyboard"));
- ui_->action_toggle_show_sidebar->setIcon(IconLoader::Load("view-choose"));
- ui_->action_auto_complete_tags->setIcon(IconLoader::Load("musicbrainz"));
+ ui_->action_cover_manager->setIcon(IconLoader::Load(QStringLiteral("document-download")));
+ ui_->action_edit_track->setIcon(IconLoader::Load(QStringLiteral("edit-rename")));
+ ui_->action_edit_value->setIcon(IconLoader::Load(QStringLiteral("edit-rename")));
+ ui_->action_selection_set_value->setIcon(IconLoader::Load(QStringLiteral("edit-rename")));
+ ui_->action_equalizer->setIcon(IconLoader::Load(QStringLiteral("equalizer")));
+ ui_->action_transcoder->setIcon(IconLoader::Load(QStringLiteral("tools-wizard")));
+ ui_->action_update_collection->setIcon(IconLoader::Load(QStringLiteral("view-refresh")));
+ ui_->action_full_collection_scan->setIcon(IconLoader::Load(QStringLiteral("view-refresh")));
+ ui_->action_abort_collection_scan->setIcon(IconLoader::Load(QStringLiteral("dialog-error")));
+ ui_->action_settings->setIcon(IconLoader::Load(QStringLiteral("configure")));
+ ui_->action_import_data_from_last_fm->setIcon(IconLoader::Load(QStringLiteral("scrobble")));
+ ui_->action_console->setIcon(IconLoader::Load(QStringLiteral("keyboard")));
+ ui_->action_toggle_show_sidebar->setIcon(IconLoader::Load(QStringLiteral("view-choose")));
+ ui_->action_auto_complete_tags->setIcon(IconLoader::Load(QStringLiteral("musicbrainz")));
// Scrobble
- ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("scrobble-disabled"));
- ui_->action_love->setIcon(IconLoader::Load("love"));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load(QStringLiteral("scrobble-disabled")));
+ ui_->action_love->setIcon(IconLoader::Load(QStringLiteral("love")));
// File view connections
QObject::connect(file_view_, &FileView::AddToPlaylist, this, &MainWindow::AddToPlaylist);
@@ -558,7 +558,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
QObject::connect(ui_->action_abort_collection_scan, &QAction::triggered, &*app_->collection(), &SCollection::AbortScan);
#if defined(HAVE_GSTREAMER)
QObject::connect(ui_->action_add_files_to_transcoder, &QAction::triggered, this, &MainWindow::AddFilesToTranscoder);
- ui_->action_add_files_to_transcoder->setIcon(IconLoader::Load("tools-wizard"));
+ ui_->action_add_files_to_transcoder->setIcon(IconLoader::Load(QStringLiteral("tools-wizard")));
#else
ui_->action_add_files_to_transcoder->setDisabled(true);
#endif
@@ -568,8 +568,8 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
QObject::connect(&*app_->scrobbler(), &AudioScrobbler::ErrorMessage, this, &MainWindow::ShowErrorDialog);
// Playlist view actions
- ui_->action_next_playlist->setShortcuts(QList() << QKeySequence::fromString("Ctrl+Tab") << QKeySequence::fromString("Ctrl+PgDown"));
- ui_->action_previous_playlist->setShortcuts(QList() << QKeySequence::fromString("Ctrl+Shift+Tab") << QKeySequence::fromString("Ctrl+PgUp"));
+ ui_->action_next_playlist->setShortcuts(QList() << QKeySequence::fromString(QStringLiteral("Ctrl+Tab")) << QKeySequence::fromString(QStringLiteral("Ctrl+PgDown")));
+ ui_->action_previous_playlist->setShortcuts(QList() << QKeySequence::fromString(QStringLiteral("Ctrl+Shift+Tab")) << QKeySequence::fromString(QStringLiteral("Ctrl+PgUp")));
// Actions for switching tabs will be global to the entire window, so adding them here
addAction(ui_->action_next_playlist);
@@ -688,7 +688,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
QObject::connect(collection_view_group, &QActionGroup::triggered, this, &MainWindow::ChangeCollectionFilterMode);
- QAction *collection_config_action = new QAction(IconLoader::Load("configure"), tr("Configure collection..."), this);
+ QAction *collection_config_action = new QAction(IconLoader::Load(QStringLiteral("configure")), tr("Configure collection..."), this);
QObject::connect(collection_config_action, &QAction::triggered, this, &MainWindow::ShowCollectionConfig);
collection_view_->filter_widget()->SetSettingsGroup(CollectionSettingsPage::kSettingsGroup);
collection_view_->filter_widget()->Init(app_->collection()->model());
@@ -731,14 +731,14 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
QObject::connect(playlist_menu_, &QMenu::aboutToHide, this, &MainWindow::PlaylistMenuHidden);
playlist_play_pause_ = playlist_menu_->addAction(tr("Play"), this, &MainWindow::PlaylistPlay);
playlist_menu_->addAction(ui_->action_stop);
- playlist_stop_after_ = playlist_menu_->addAction(IconLoader::Load("media-playback-stop"), tr("Stop after this track"), this, &MainWindow::PlaylistStopAfter);
- playlist_queue_ = playlist_menu_->addAction(IconLoader::Load("go-next"), tr("Toggle queue status"), this, &MainWindow::PlaylistQueue);
- playlist_queue_->setShortcut(QKeySequence("Ctrl+D"));
+ playlist_stop_after_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-stop")), tr("Stop after this track"), this, &MainWindow::PlaylistStopAfter);
+ playlist_queue_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Toggle queue status"), this, &MainWindow::PlaylistQueue);
+ playlist_queue_->setShortcut(QKeySequence(QStringLiteral("Ctrl+D")));
ui_->playlist->addAction(playlist_queue_);
- playlist_queue_play_next_ = playlist_menu_->addAction(IconLoader::Load("go-next"), tr("Queue selected tracks to play next"), this, &MainWindow::PlaylistQueuePlayNext);
- playlist_queue_play_next_->setShortcut(QKeySequence("Ctrl+Shift+D"));
+ playlist_queue_play_next_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue selected tracks to play next"), this, &MainWindow::PlaylistQueuePlayNext);
+ playlist_queue_play_next_->setShortcut(QKeySequence(QStringLiteral("Ctrl+Shift+D")));
ui_->playlist->addAction(playlist_queue_play_next_);
- playlist_skip_ = playlist_menu_->addAction(IconLoader::Load("media-skip-forward"), tr("Toggle skip status"), this, &MainWindow::PlaylistSkip);
+ playlist_skip_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("media-skip-forward")), tr("Toggle skip status"), this, &MainWindow::PlaylistSkip);
ui_->playlist->addAction(playlist_skip_);
playlist_menu_->addSeparator();
@@ -751,22 +751,22 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
#ifdef HAVE_MUSICBRAINZ
playlist_menu_->addAction(ui_->action_auto_complete_tags);
#endif
- playlist_rescan_songs_ = playlist_menu_->addAction(IconLoader::Load("view-refresh"), tr("Rescan song(s)..."), this, &MainWindow::RescanSongs);
+ playlist_rescan_songs_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("view-refresh")), tr("Rescan song(s)..."), this, &MainWindow::RescanSongs);
playlist_menu_->addAction(playlist_rescan_songs_);
#ifdef HAVE_GSTREAMER
playlist_menu_->addAction(ui_->action_add_files_to_transcoder);
#endif
playlist_menu_->addSeparator();
- playlist_copy_url_ = playlist_menu_->addAction(IconLoader::Load("edit-copy"), tr("Copy URL(s)..."), this, &MainWindow::PlaylistCopyUrl);
- playlist_show_in_collection_ = playlist_menu_->addAction(IconLoader::Load("edit-find"), tr("Show in collection..."), this, &MainWindow::ShowInCollection);
- playlist_open_in_browser_ = playlist_menu_->addAction(IconLoader::Load("document-open-folder"), tr("Show in file browser..."), this, &MainWindow::PlaylistOpenInBrowser);
- playlist_organize_ = playlist_menu_->addAction(IconLoader::Load("edit-copy"), tr("Organize files..."), this, &MainWindow::PlaylistMoveToCollection);
- playlist_copy_to_collection_ = playlist_menu_->addAction(IconLoader::Load("edit-copy"), tr("Copy to collection..."), this, &MainWindow::PlaylistCopyToCollection);
- playlist_move_to_collection_ = playlist_menu_->addAction(IconLoader::Load("go-jump"), tr("Move to collection..."), this, &MainWindow::PlaylistMoveToCollection);
+ playlist_copy_url_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Copy URL(s)..."), this, &MainWindow::PlaylistCopyUrl);
+ playlist_show_in_collection_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("edit-find")), tr("Show in collection..."), this, &MainWindow::ShowInCollection);
+ playlist_open_in_browser_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("document-open-folder")), tr("Show in file browser..."), this, &MainWindow::PlaylistOpenInBrowser);
+ playlist_organize_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Organize files..."), this, &MainWindow::PlaylistMoveToCollection);
+ playlist_copy_to_collection_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Copy to collection..."), this, &MainWindow::PlaylistCopyToCollection);
+ playlist_move_to_collection_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("go-jump")), tr("Move to collection..."), this, &MainWindow::PlaylistMoveToCollection);
#if defined(HAVE_GSTREAMER) && !defined(Q_OS_WIN)
- playlist_copy_to_device_ = playlist_menu_->addAction(IconLoader::Load("device"), tr("Copy to device..."), this, &MainWindow::PlaylistCopyToDevice);
+ playlist_copy_to_device_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("device")), tr("Copy to device..."), this, &MainWindow::PlaylistCopyToDevice);
#endif
- playlist_delete_ = playlist_menu_->addAction(IconLoader::Load("edit-delete"), tr("Delete from disk..."), this, &MainWindow::PlaylistDelete);
+ playlist_delete_ = playlist_menu_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Delete from disk..."), this, &MainWindow::PlaylistDelete);
playlist_menu_->addSeparator();
playlistitem_actions_separator_ = playlist_menu_->addSeparator();
playlist_menu_->addAction(ui_->action_clear_playlist);
@@ -854,7 +854,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
QObject::connect(ui_->analyzer, &AnalyzerContainer::WheelEvent, this, &MainWindow::VolumeWheelEvent);
// Statusbar widgets
- ui_->playlist_summary->setMinimumWidth(QFontMetrics(font()).horizontalAdvance("WW selected of WW tracks - [ WW:WW ]"));
+ ui_->playlist_summary->setMinimumWidth(QFontMetrics(font()).horizontalAdvance(QStringLiteral("WW selected of WW tracks - [ WW:WW ]")));
ui_->status_bar_stack->setCurrentWidget(ui_->playlist_summary_page);
QObject::connect(ui_->multi_loading_indicator, &MultiLoadingIndicator::TaskCountChange, this, &MainWindow::TaskCountChanged);
@@ -881,7 +881,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
PlayingWidgetPositionChanged(ui_->widget_playing->show_above_status_bar());
StyleSheetLoader *css_loader = new StyleSheetLoader(this);
- css_loader->SetStyleSheet(this, ":/style/strawberry.css");
+ css_loader->SetStyleSheet(this, QStringLiteral(":/style/strawberry.css"));
// Load playlists
app_->playlist_manager()->Init(app_->collection_backend(), app_->playlist_backend(), ui_->playlist_sequence, ui_->playlist);
@@ -1008,7 +1008,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
QObject::connect(close_window_shortcut, &QShortcut::activated, this, &MainWindow::ToggleHide);
QAction *action_focus_search = new QAction(this);
- action_focus_search->setShortcuts(QList() << QKeySequence("Ctrl+F"));
+ action_focus_search->setShortcuts(QList() << QKeySequence(QStringLiteral("Ctrl+F")));
addAction(action_focus_search);
QObject::connect(action_focus_search, &QAction::triggered, this, &MainWindow::FocusSearchField);
@@ -1034,7 +1034,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
#endif
#ifdef Q_OS_LINUX
- if (!Utilities::GetEnv("SNAP").isEmpty() && !Utilities::GetEnv("SNAP_NAME").isEmpty()) {
+ if (!Utilities::GetEnv(QStringLiteral("SNAP")).isEmpty() && !Utilities::GetEnv(QStringLiteral("SNAP_NAME")).isEmpty()) {
QSettings s;
s.beginGroup(kSettingsGroup);
const bool ignore_snap = s.value("ignore_snap", false).toBool();
@@ -1066,7 +1066,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
{
QSettings s;
s.beginGroup(kSettingsGroup);
- const QString do_not_show_sponsor_message_key = QString("do_not_show_sponsor_message");
+ const QString do_not_show_sponsor_message_key = QStringLiteral("do_not_show_sponsor_message");
const bool do_not_show_sponsor_message = s.value(do_not_show_sponsor_message_key, false).toBool();
s.endGroup();
if (!do_not_show_sponsor_message) {
@@ -1074,7 +1074,7 @@ MainWindow::MainWindow(Application *app, SharedPtr tray_icon, OS
sponsor_message->set_settings_group(kSettingsGroup);
sponsor_message->set_do_not_show_message_again(do_not_show_sponsor_message_key);
sponsor_message->setAttribute(Qt::WA_DeleteOnClose);
- sponsor_message->ShowMessage(tr("Sponsoring Strawberry"), tr("Strawberry is free and open source software. If you like Strawberry, please consider sponsoring the project. For more information about sponsorship see our website %1").arg("www.strawberrymusicplayer.org "), IconLoader::Load("dialog-information"));
+ sponsor_message->ShowMessage(tr("Sponsoring Strawberry"), tr("Strawberry is free and open source software. If you like Strawberry, please consider sponsoring the project. For more information about sponsorship see our website %1").arg(QStringLiteral("www.strawberrymusicplayer.org ")), IconLoader::Load(QStringLiteral("dialog-information")));
}
}
@@ -1243,7 +1243,7 @@ void MainWindow::ReloadAllSettings() {
void MainWindow::RefreshStyleSheet() {
QString contents(styleSheet());
- setStyleSheet("");
+ setStyleSheet(QLatin1String(""));
setStyleSheet(contents);
}
@@ -1328,11 +1328,11 @@ void MainWindow::EngineChanged(const EngineBase::Type enginetype) {
void MainWindow::MediaStopped() {
- setWindowTitle("Strawberry Music Player");
+ setWindowTitle(QStringLiteral("Strawberry Music Player"));
ui_->action_stop->setEnabled(false);
ui_->action_stop_after_this_track->setEnabled(false);
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start"));
+ ui_->action_play_pause->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
ui_->action_play_pause->setText(tr("Play"));
ui_->action_play_pause->setEnabled(true);
@@ -1365,7 +1365,7 @@ void MainWindow::MediaPaused() {
ui_->action_stop->setEnabled(true);
ui_->action_stop_after_this_track->setEnabled(true);
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-start"));
+ ui_->action_play_pause->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
ui_->action_play_pause->setText(tr("Play"));
ui_->action_play_pause->setEnabled(true);
@@ -1381,7 +1381,7 @@ void MainWindow::MediaPlaying() {
ui_->action_stop->setEnabled(true);
ui_->action_stop_after_this_track->setEnabled(true);
- ui_->action_play_pause->setIcon(IconLoader::Load("media-playback-pause"));
+ ui_->action_play_pause->setIcon(IconLoader::Load(QStringLiteral("media-playback-pause")));
ui_->action_play_pause->setText(tr("Pause"));
bool enable_play_pause(false);
@@ -1784,7 +1784,7 @@ void MainWindow::UpdateTaskbarProgress(const bool visible, const double position
map.insert(QStringLiteral("progress-visible"), visible);
map.insert(QStringLiteral("progress"), position / length);
- msg << QString("application://org.strawberrymusicplayer.strawberry.desktop") << map;
+ msg << QStringLiteral("application://org.strawberrymusicplayer.strawberry.desktop") << map;
QDBusConnection::sessionBus().send(msg);
@@ -1915,11 +1915,11 @@ void MainWindow::PlaylistRightClick(const QPoint global_pos, const QModelIndex &
// Is this song currently playing?
if (app_->playlist_manager()->current()->current_row() == source_index.row() && app_->player()->GetState() == EngineBase::State::Playing) {
playlist_play_pause_->setText(tr("Pause"));
- playlist_play_pause_->setIcon(IconLoader::Load("media-playback-pause"));
+ playlist_play_pause_->setIcon(IconLoader::Load(QStringLiteral("media-playback-pause")));
}
else {
playlist_play_pause_->setText(tr("Play"));
- playlist_play_pause_->setIcon(IconLoader::Load("media-playback-start"));
+ playlist_play_pause_->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
}
// Are we allowed to pause?
@@ -2033,11 +2033,11 @@ void MainWindow::PlaylistRightClick(const QPoint global_pos, const QModelIndex &
else playlist_skip_->setText(tr("Toggle skip status"));
}
- if (not_in_queue == 0) playlist_queue_->setIcon(IconLoader::Load("go-previous"));
- else playlist_queue_->setIcon(IconLoader::Load("go-next"));
+ if (not_in_queue == 0) playlist_queue_->setIcon(IconLoader::Load(QStringLiteral("go-previous")));
+ else playlist_queue_->setIcon(IconLoader::Load(QStringLiteral("go-next")));
- if (in_skipped < selected) playlist_skip_->setIcon(IconLoader::Load("media-skip-forward"));
- else playlist_skip_->setIcon(IconLoader::Load("media-playback-start"));
+ if (in_skipped < selected) playlist_skip_->setIcon(IconLoader::Load(QStringLiteral("media-skip-forward")));
+ else playlist_skip_->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
if (!index.isValid()) {
@@ -2100,7 +2100,7 @@ void MainWindow::PlaylistRightClick(const QPoint global_pos, const QModelIndex &
// Create the playlist submenu if songs are selected.
if (selected > 0) {
QMenu *add_to_another_menu = new QMenu(tr("Add to another playlist"), this);
- add_to_another_menu->setIcon(IconLoader::Load("list-add"));
+ add_to_another_menu->setIcon(IconLoader::Load(QStringLiteral("list-add")));
for (const PlaylistBackend::Playlist &playlist : app_->playlist_backend()->GetAllOpenPlaylists()) {
// don't add the current playlist
@@ -2297,7 +2297,7 @@ void MainWindow::AddFile() {
PlaylistParser parser(app_->collection_backend());
// Show dialog
- QStringList file_names = QFileDialog::getOpenFileNames(this, tr("Add file"), directory, QString("%1 (%2);;%3;;%4").arg(tr("Music"), FileView::kFileFilter, parser.filters(PlaylistParser::Type::Load), tr(kAllFilesFilterSpec)));
+ QStringList file_names = QFileDialog::getOpenFileNames(this, tr("Add file"), directory, QStringLiteral("%1 (%2);;%3;;%4").arg(tr("Music"), FileView::kFileFilter, parser.filters(PlaylistParser::Type::Load), tr(kAllFilesFilterSpec)));
if (file_names.isEmpty()) return;
@@ -2587,7 +2587,7 @@ bool MainWindow::LoadUrl(const QString &url) {
return true;
}
#ifdef HAVE_TIDAL
- else if (url.startsWith("tidal://login")) {
+ else if (url.startsWith(QLatin1String("tidal://login"))) {
emit AuthorizationUrlReceived(QUrl(url));
return true;
}
@@ -3066,10 +3066,10 @@ void MainWindow::HandleNotificationPreview(const OSDBase::Behaviour type, const
qLog(Debug) << "The current playlist is empty, showing a fake song";
// Create a fake song
Song fake(Song::Source::LocalFile);
- fake.Init("Title", "Artist", "Album", 123);
- fake.set_genre("Classical");
- fake.set_composer("Anonymous");
- fake.set_performer("Anonymous");
+ fake.Init(QStringLiteral("Title"), QStringLiteral("Artist"), QStringLiteral("Album"), 123);
+ fake.set_genre(QStringLiteral("Classical"));
+ fake.set_composer(QStringLiteral("Anonymous"));
+ fake.set_performer(QStringLiteral("Anonymous"));
fake.set_track(1);
fake.set_disc(1);
fake.set_year(2011);
@@ -3212,12 +3212,12 @@ void MainWindow::SetToggleScrobblingIcon(const bool value) {
if (value) {
if (app_->playlist_manager()->active() && app_->playlist_manager()->active()->scrobbled())
- ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("scrobble", true, 22));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load(QStringLiteral("scrobble"), true, 22));
else
- ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("scrobble", true, 22)); // TODO: Create a faint version of the icon
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load(QStringLiteral("scrobble"), true, 22)); // TODO: Create a faint version of the icon
}
else {
- ui_->action_toggle_scrobbling->setIcon(IconLoader::Load("scrobble-disabled", true, 22));
+ ui_->action_toggle_scrobbling->setIcon(IconLoader::Load(QStringLiteral("scrobble-disabled"), true, 22));
}
}
diff --git a/src/core/mpris2.cpp b/src/core/mpris2.cpp
index cb10d385..13a0ffb8 100644
--- a/src/core/mpris2.cpp
+++ b/src/core/mpris2.cpp
@@ -131,18 +131,18 @@ Mpris2::Mpris2(Application *app, QObject *parent)
app_name_[0] = app_name_[0].toUpper();
- QStringList data_dirs = QString(qgetenv("XDG_DATA_DIRS")).split(":");
+ QStringList data_dirs = QString(qgetenv("XDG_DATA_DIRS")).split(QStringLiteral(":"));
if (!data_dirs.contains("/usr/local/share")) {
- data_dirs.append("/usr/local/share");
+ data_dirs.append(QStringLiteral("/usr/local/share"));
}
if (!data_dirs.contains("/usr/share")) {
- data_dirs.append("/usr/share");
+ data_dirs.append(QStringLiteral("/usr/share"));
}
for (const QString &data_dir : data_dirs) {
- const QString desktopfilepath = QString("%1/applications/%2.desktop").arg(data_dir, QGuiApplication::desktopFileName());
+ const QString desktopfilepath = QStringLiteral("%1/applications/%2.desktop").arg(data_dir, QGuiApplication::desktopFileName());
if (QFile::exists(desktopfilepath)) {
desktopfilepath_ = desktopfilepath;
break;
@@ -165,37 +165,37 @@ void Mpris2::EngineStateChanged(EngineBase::State newState) {
if (newState != EngineBase::State::Playing && newState != EngineBase::State::Paused) {
last_metadata_ = QVariantMap();
- EmitNotification("Metadata");
+ EmitNotification(QStringLiteral("Metadata"));
}
- EmitNotification("CanPlay");
- EmitNotification("CanPause");
- EmitNotification("PlaybackStatus", PlaybackStatus(newState));
- if (newState == EngineBase::State::Playing) EmitNotification("CanSeek", CanSeek(newState));
+ EmitNotification(QStringLiteral("CanPlay"));
+ EmitNotification(QStringLiteral("CanPause"));
+ EmitNotification(QStringLiteral("PlaybackStatus"), PlaybackStatus(newState));
+ if (newState == EngineBase::State::Playing) EmitNotification(QStringLiteral("CanSeek"), CanSeek(newState));
}
void Mpris2::VolumeChanged() {
- EmitNotification("Volume");
+ EmitNotification(QStringLiteral("Volume"));
}
-void Mpris2::ShuffleModeChanged() { EmitNotification("Shuffle"); }
+void Mpris2::ShuffleModeChanged() { EmitNotification(QStringLiteral("Shuffle")); }
void Mpris2::RepeatModeChanged() {
- EmitNotification("LoopStatus");
- EmitNotification("CanGoNext", CanGoNext());
- EmitNotification("CanGoPrevious", CanGoPrevious());
+ EmitNotification(QStringLiteral("LoopStatus"));
+ EmitNotification(QStringLiteral("CanGoNext"), CanGoNext());
+ EmitNotification(QStringLiteral("CanGoPrevious"), CanGoPrevious());
}
void Mpris2::EmitNotification(const QString &name, const QVariant &value) {
- EmitNotification(name, value, "org.mpris.MediaPlayer2.Player");
+ EmitNotification(name, value, QStringLiteral("org.mpris.MediaPlayer2.Player"));
}
void Mpris2::EmitNotification(const QString &name, const QVariant &value, const QString &mprisEntity) {
- QDBusMessage msg = QDBusMessage::createSignal(kMprisObjectPath, kFreedesktopPath, "PropertiesChanged");
+ QDBusMessage msg = QDBusMessage::createSignal(kMprisObjectPath, kFreedesktopPath, QStringLiteral("PropertiesChanged"));
QVariantMap map;
map.insert(name, value);
QVariantList args = QVariantList() << mprisEntity << map << QStringList();
@@ -244,45 +244,45 @@ QString Mpris2::DesktopEntry() const { return QGuiApplication::desktopFileName()
QStringList Mpris2::SupportedUriSchemes() const {
- static QStringList res = QStringList() << "file"
- << "http"
- << "cdda"
- << "smb"
- << "sftp";
+ static QStringList res = QStringList() << QStringLiteral("file")
+ << QStringLiteral("http")
+ << QStringLiteral("cdda")
+ << QStringLiteral("smb")
+ << QStringLiteral("sftp");
return res;
}
QStringList Mpris2::SupportedMimeTypes() const {
- static QStringList res = QStringList() << "x-content/audio-player"
- << "application/ogg"
- << "application/x-ogg"
- << "application/x-ogm-audio"
- << "audio/flac"
- << "audio/ogg"
- << "audio/vorbis"
- << "audio/aac"
- << "audio/mp4"
- << "audio/mpeg"
- << "audio/mpegurl"
- << "audio/vnd.rn-realaudio"
- << "audio/x-flac"
- << "audio/x-oggflac"
- << "audio/x-vorbis"
- << "audio/x-vorbis+ogg"
- << "audio/x-speex"
- << "audio/x-wav"
- << "audio/x-wavpack"
- << "audio/x-ape"
- << "audio/x-mp3"
- << "audio/x-mpeg"
- << "audio/x-mpegurl"
- << "audio/x-ms-wma"
- << "audio/x-musepack"
- << "audio/x-pn-realaudio"
- << "audio/x-scpls"
- << "video/x-ms-asf";
+ static QStringList res = QStringList() << QStringLiteral("x-content/audio-player")
+ << QStringLiteral("application/ogg")
+ << QStringLiteral("application/x-ogg")
+ << QStringLiteral("application/x-ogm-audio")
+ << QStringLiteral("audio/flac")
+ << QStringLiteral("audio/ogg")
+ << QStringLiteral("audio/vorbis")
+ << QStringLiteral("audio/aac")
+ << QStringLiteral("audio/mp4")
+ << QStringLiteral("audio/mpeg")
+ << QStringLiteral("audio/mpegurl")
+ << QStringLiteral("audio/vnd.rn-realaudio")
+ << QStringLiteral("audio/x-flac")
+ << QStringLiteral("audio/x-oggflac")
+ << QStringLiteral("audio/x-vorbis")
+ << QStringLiteral("audio/x-vorbis+ogg")
+ << QStringLiteral("audio/x-speex")
+ << QStringLiteral("audio/x-wav")
+ << QStringLiteral("audio/x-wavpack")
+ << QStringLiteral("audio/x-ape")
+ << QStringLiteral("audio/x-mp3")
+ << QStringLiteral("audio/x-mpeg")
+ << QStringLiteral("audio/x-mpegurl")
+ << QStringLiteral("audio/x-ms-wma")
+ << QStringLiteral("audio/x-musepack")
+ << QStringLiteral("audio/x-pn-realaudio")
+ << QStringLiteral("audio/x-scpls")
+ << QStringLiteral("video/x-ms-asf");
return res;
@@ -299,9 +299,9 @@ QString Mpris2::PlaybackStatus() const {
QString Mpris2::PlaybackStatus(EngineBase::State state) const {
switch (state) {
- case EngineBase::State::Playing: return "Playing";
- case EngineBase::State::Paused: return "Paused";
- default: return "Stopped";
+ case EngineBase::State::Playing: return QStringLiteral("Playing");
+ case EngineBase::State::Paused: return QStringLiteral("Paused");
+ default: return QStringLiteral("Stopped");
}
}
@@ -309,14 +309,14 @@ QString Mpris2::PlaybackStatus(EngineBase::State state) const {
QString Mpris2::LoopStatus() const {
if (!app_->playlist_manager()->sequence()) {
- return "None";
+ return QStringLiteral("None");
}
switch (app_->playlist_manager()->active() ? app_->playlist_manager()->active()->RepeatMode() : app_->playlist_manager()->sequence()->repeat_mode()) {
case PlaylistSequence::RepeatMode::Album:
- case PlaylistSequence::RepeatMode::Playlist: return "Playlist";
- case PlaylistSequence::RepeatMode::Track: return "Track";
- default: return "None";
+ case PlaylistSequence::RepeatMode::Playlist: return QStringLiteral("Playlist");
+ case PlaylistSequence::RepeatMode::Track: return QStringLiteral("Track");
+ default: return QStringLiteral("None");
}
}
@@ -381,18 +381,18 @@ void Mpris2::SetRating(double rating) {
}
QDBusObjectPath Mpris2::current_track_id() const {
- return QDBusObjectPath(QString("/org/strawberrymusicplayer/strawberry/Track/%1").arg(QString::number(app_->playlist_manager()->active()->current_row())));
+ return QDBusObjectPath(QStringLiteral("/org/strawberrymusicplayer/strawberry/Track/%1").arg(QString::number(app_->playlist_manager()->active()->current_row())));
}
// We send Metadata change notification as soon as the process of changing song starts...
void Mpris2::CurrentSongChanged(const Song &song) {
AlbumCoverLoaded(song);
- EmitNotification("CanPlay");
- EmitNotification("CanPause");
- EmitNotification("CanGoNext", CanGoNext());
- EmitNotification("CanGoPrevious", CanGoPrevious());
- EmitNotification("CanSeek", CanSeek());
+ EmitNotification(QStringLiteral("CanPlay"));
+ EmitNotification(QStringLiteral("CanPause"));
+ EmitNotification(QStringLiteral("CanGoNext"), CanGoNext());
+ EmitNotification(QStringLiteral("CanGoPrevious"), CanGoPrevious());
+ EmitNotification(QStringLiteral("CanSeek"), CanSeek());
}
@@ -403,7 +403,7 @@ void Mpris2::AlbumCoverLoaded(const Song &song, const AlbumCoverLoaderResult &re
song.ToXesam(&last_metadata_);
using mpris::AddMetadata;
- AddMetadata("mpris:trackid", current_track_id(), &last_metadata_);
+ AddMetadata(QStringLiteral("mpris:trackid"), current_track_id(), &last_metadata_);
QUrl cover_url;
if (result.album_cover.cover_url.isValid() && result.album_cover.cover_url.isLocalFile() && QFile(result.album_cover.cover_url.toLocalFile()).exists()) {
@@ -420,13 +420,13 @@ void Mpris2::AlbumCoverLoaded(const Song &song, const AlbumCoverLoaderResult &re
}
if (cover_url.isValid()) {
- AddMetadata("mpris:artUrl", cover_url.toString(), &last_metadata_);
+ AddMetadata(QStringLiteral("mpris:artUrl"), cover_url.toString(), &last_metadata_);
}
- AddMetadata("year", song.year(), &last_metadata_);
- AddMetadata("bitrate", song.bitrate(), &last_metadata_);
+ AddMetadata(QStringLiteral("year"), song.year(), &last_metadata_);
+ AddMetadata(QStringLiteral("bitrate"), song.bitrate(), &last_metadata_);
- EmitNotification("Metadata", last_metadata_);
+ EmitNotification(QStringLiteral("Metadata"), last_metadata_);
}
@@ -567,12 +567,12 @@ quint32 Mpris2::PlaylistCount() const {
return app_->playlist_manager()->GetAllPlaylists().size();
}
-QStringList Mpris2::Orderings() const { return QStringList() << "User"; }
+QStringList Mpris2::Orderings() const { return QStringList() << QStringLiteral("User"); }
namespace {
QDBusObjectPath MakePlaylistPath(int id) {
- return QDBusObjectPath(QString("/org/strawberrymusicplayer/strawberry/PlaylistId/%1").arg(id));
+ return QDBusObjectPath(QStringLiteral("/org/strawberrymusicplayer/strawberry/PlaylistId/%1").arg(id));
}
} // namespace
@@ -648,7 +648,7 @@ void Mpris2::PlaylistChangedSlot(Playlist *playlist) {
void Mpris2::PlaylistCollectionChanged(Playlist *playlist) {
Q_UNUSED(playlist);
- EmitNotification("PlaylistCount", "", "org.mpris.MediaPlayer2.Playlists");
+ EmitNotification(QStringLiteral("PlaylistCount"), "", QStringLiteral("org.mpris.MediaPlayer2.Playlists"));
}
} // namespace mpris
diff --git a/src/core/mpris_common.h b/src/core/mpris_common.h
index e120eb22..adffabde 100644
--- a/src/core/mpris_common.h
+++ b/src/core/mpris_common.h
@@ -61,7 +61,7 @@ inline void AddMetadata(const QString &key, const QDBusObjectPath &metadata, QVa
}
inline QString AsMPRISDateTimeType(const qint64 time) {
- return time != -1 ? QDateTime::fromSecsSinceEpoch(time).toString(Qt::ISODate) : "";
+ return time != -1 ? QDateTime::fromSecsSinceEpoch(time).toString(Qt::ISODate) : QLatin1String("");
}
} // namespace mpris
diff --git a/src/core/networkaccessmanager.cpp b/src/core/networkaccessmanager.cpp
index ad9ac22f..0a5d260e 100644
--- a/src/core/networkaccessmanager.cpp
+++ b/src/core/networkaccessmanager.cpp
@@ -49,7 +49,7 @@ QNetworkReply *NetworkAccessManager::createRequest(Operation op, const QNetworkR
user_agent = request.header(QNetworkRequest::UserAgentHeader).toByteArray();
}
else {
- user_agent = QString("%1 %2").arg(QCoreApplication::applicationName(), QCoreApplication::applicationVersion()).toUtf8();
+ user_agent = QStringLiteral("%1 %2").arg(QCoreApplication::applicationName(), QCoreApplication::applicationVersion()).toUtf8();
}
QNetworkRequest new_request(request);
diff --git a/src/core/networkproxyfactory.cpp b/src/core/networkproxyfactory.cpp
index 316f6b0d..479329db 100644
--- a/src/core/networkproxyfactory.cpp
+++ b/src/core/networkproxyfactory.cpp
@@ -112,7 +112,7 @@ QList NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &q
ret.setPort(env_url_.port());
ret.setUser(env_url_.userName());
ret.setPassword(env_url_.password());
- if (env_url_.scheme().startsWith("http")) {
+ if (env_url_.scheme().startsWith(QLatin1String("http"))) {
ret.setType(QNetworkProxy::HttpProxy);
}
else {
diff --git a/src/core/qtsystemtrayicon.cpp b/src/core/qtsystemtrayicon.cpp
index 459a4e48..5be0f521 100644
--- a/src/core/qtsystemtrayicon.cpp
+++ b/src/core/qtsystemtrayicon.cpp
@@ -38,8 +38,8 @@ SystemTrayIcon::SystemTrayIcon(QObject *parent)
: QSystemTrayIcon(parent),
menu_(new QMenu),
app_name_(QCoreApplication::applicationName()),
- pixmap_playing_(":/pictures/tiny-play.png"),
- pixmap_paused_(":/pictures/tiny-pause.png"),
+ pixmap_playing_(QStringLiteral(":/pictures/tiny-play.png")),
+ pixmap_paused_(QStringLiteral(":/pictures/tiny-pause.png")),
action_play_pause_(nullptr),
action_stop_(nullptr),
action_stop_after_this_track_(nullptr),
@@ -51,8 +51,8 @@ SystemTrayIcon::SystemTrayIcon(QObject *parent)
app_name_[0] = app_name_[0].toUpper();
- const QIcon icon = IconLoader::Load("strawberry");
- const QIcon icon_grey = IconLoader::Load("strawberry-grey");
+ const QIcon icon = IconLoader::Load(QStringLiteral("strawberry"));
+ const QIcon icon_grey = IconLoader::Load(QStringLiteral("strawberry-grey"));
pixmap_normal_ = icon.pixmap(48, QIcon::Normal);
if (icon_grey.isNull()) {
pixmap_grey_ = icon.pixmap(48, QIcon::Disabled);
@@ -143,7 +143,7 @@ void SystemTrayIcon::SetPlaying(bool enable_play_pause) {
action_stop_->setEnabled(true);
action_stop_after_this_track_->setEnabled(true);
- action_play_pause_->setIcon(IconLoader::Load("media-playback-pause"));
+ action_play_pause_->setIcon(IconLoader::Load(QStringLiteral("media-playback-pause")));
action_play_pause_->setText(tr("Pause"));
action_play_pause_->setEnabled(enable_play_pause);
@@ -156,7 +156,7 @@ void SystemTrayIcon::SetPaused() {
action_stop_->setEnabled(true);
action_stop_after_this_track_->setEnabled(true);
- action_play_pause_->setIcon(IconLoader::Load("media-playback-start"));
+ action_play_pause_->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
action_play_pause_->setText(tr("Play"));
action_play_pause_->setEnabled(true);
@@ -170,7 +170,7 @@ void SystemTrayIcon::SetStopped() {
action_stop_->setEnabled(false);
action_stop_after_this_track_->setEnabled(false);
- action_play_pause_->setIcon(IconLoader::Load("media-playback-start"));
+ action_play_pause_->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
action_play_pause_->setText(tr("Play"));
action_play_pause_->setEnabled(true);
diff --git a/src/core/song.cpp b/src/core/song.cpp
index 471d4135..5c5f26db 100644
--- a/src/core/song.cpp
+++ b/src/core/song.cpp
@@ -61,128 +61,128 @@
#endif
#include "tagreadermessages.pb.h"
-const QStringList Song::kColumns = QStringList() << "title"
- << "album"
- << "artist"
- << "albumartist"
- << "track"
- << "disc"
- << "year"
- << "originalyear"
- << "genre"
- << "compilation"
- << "composer"
- << "performer"
- << "grouping"
- << "comment"
- << "lyrics"
+const QStringList Song::kColumns = QStringList() << QStringLiteral("title")
+ << QStringLiteral("album")
+ << QStringLiteral("artist")
+ << QStringLiteral("albumartist")
+ << QStringLiteral("track")
+ << QStringLiteral("disc")
+ << QStringLiteral("year")
+ << QStringLiteral("originalyear")
+ << QStringLiteral("genre")
+ << QStringLiteral("compilation")
+ << QStringLiteral("composer")
+ << QStringLiteral("performer")
+ << QStringLiteral("grouping")
+ << QStringLiteral("comment")
+ << QStringLiteral("lyrics")
- << "artist_id"
- << "album_id"
- << "song_id"
+ << QStringLiteral("artist_id")
+ << QStringLiteral("album_id")
+ << QStringLiteral("song_id")
- << "beginning"
- << "length"
+ << QStringLiteral("beginning")
+ << QStringLiteral("length")
- << "bitrate"
- << "samplerate"
- << "bitdepth"
+ << QStringLiteral("bitrate")
+ << QStringLiteral("samplerate")
+ << QStringLiteral("bitdepth")
- << "source"
- << "directory_id"
- << "url"
- << "filetype"
- << "filesize"
- << "mtime"
- << "ctime"
- << "unavailable"
+ << QStringLiteral("source")
+ << QStringLiteral("directory_id")
+ << QStringLiteral("url")
+ << QStringLiteral("filetype")
+ << QStringLiteral("filesize")
+ << QStringLiteral("mtime")
+ << QStringLiteral("ctime")
+ << QStringLiteral("unavailable")
- << "fingerprint"
+ << QStringLiteral("fingerprint")
- << "playcount"
- << "skipcount"
- << "lastplayed"
- << "lastseen"
+ << QStringLiteral("playcount")
+ << QStringLiteral("skipcount")
+ << QStringLiteral("lastplayed")
+ << QStringLiteral("lastseen")
- << "compilation_detected"
- << "compilation_on"
- << "compilation_off"
- << "compilation_effective"
+ << QStringLiteral("compilation_detected")
+ << QStringLiteral("compilation_on")
+ << QStringLiteral("compilation_off")
+ << QStringLiteral("compilation_effective")
- << "art_embedded"
- << "art_automatic"
- << "art_manual"
- << "art_unset"
+ << QStringLiteral("art_embedded")
+ << QStringLiteral("art_automatic")
+ << QStringLiteral("art_manual")
+ << QStringLiteral("art_unset")
- << "effective_albumartist"
- << "effective_originalyear"
+ << QStringLiteral("effective_albumartist")
+ << QStringLiteral("effective_originalyear")
- << "cue_path"
+ << QStringLiteral("cue_path")
- << "rating"
+ << QStringLiteral("rating")
- << "acoustid_id"
- << "acoustid_fingerprint"
+ << QStringLiteral("acoustid_id")
+ << QStringLiteral("acoustid_fingerprint")
- << "musicbrainz_album_artist_id"
- << "musicbrainz_artist_id"
- << "musicbrainz_original_artist_id"
- << "musicbrainz_album_id"
- << "musicbrainz_original_album_id"
- << "musicbrainz_recording_id"
- << "musicbrainz_track_id"
- << "musicbrainz_disc_id"
- << "musicbrainz_release_group_id"
- << "musicbrainz_work_id"
+ << QStringLiteral("musicbrainz_album_artist_id")
+ << QStringLiteral("musicbrainz_artist_id")
+ << QStringLiteral("musicbrainz_original_artist_id")
+ << QStringLiteral("musicbrainz_album_id")
+ << QStringLiteral("musicbrainz_original_album_id")
+ << QStringLiteral("musicbrainz_recording_id")
+ << QStringLiteral("musicbrainz_track_id")
+ << QStringLiteral("musicbrainz_disc_id")
+ << QStringLiteral("musicbrainz_release_group_id")
+ << QStringLiteral("musicbrainz_work_id")
- << "ebur128_integrated_loudness_lufs"
- << "ebur128_loudness_range_lu"
+ << QStringLiteral("ebur128_integrated_loudness_lufs")
+ << QStringLiteral("ebur128_loudness_range_lu")
;
-const QString Song::kColumnSpec = Song::kColumns.join(", ");
-const QString Song::kBindSpec = Utilities::Prepend(":", Song::kColumns).join(", ");
-const QString Song::kUpdateSpec = Utilities::Updateify(Song::kColumns).join(", ");
+const QString Song::kColumnSpec = Song::kColumns.join(QStringLiteral(", "));
+const QString Song::kBindSpec = Utilities::Prepend(QStringLiteral(":"), Song::kColumns).join(QStringLiteral(", "));
+const QString Song::kUpdateSpec = Utilities::Updateify(Song::kColumns).join(QStringLiteral(", "));
// used to indicate, what columns can be filtered numerically. Used by the CollectionQuery.
-const QStringList Song::kNumericalColumns = QStringList() << "year"
- << "length"
- << "samplerate"
- << "bitdepth"
- << "bitrate"
- << "rating"
- << "playcount"
- << "skipcount";
+const QStringList Song::kNumericalColumns = QStringList() << QStringLiteral("year")
+ << QStringLiteral("length")
+ << QStringLiteral("samplerate")
+ << QStringLiteral("bitdepth")
+ << QStringLiteral("bitrate")
+ << QStringLiteral("rating")
+ << QStringLiteral("playcount")
+ << QStringLiteral("skipcount");
-const QStringList Song::kFtsColumns = QStringList() << "ftstitle"
- << "ftsalbum"
- << "ftsartist"
- << "ftsalbumartist"
- << "ftscomposer"
- << "ftsperformer"
- << "ftsgrouping"
- << "ftsgenre"
- << "ftscomment";
+const QStringList Song::kFtsColumns = QStringList() << QStringLiteral("ftstitle")
+ << QStringLiteral("ftsalbum")
+ << QStringLiteral("ftsartist")
+ << QStringLiteral("ftsalbumartist")
+ << QStringLiteral("ftscomposer")
+ << QStringLiteral("ftsperformer")
+ << QStringLiteral("ftsgrouping")
+ << QStringLiteral("ftsgenre")
+ << QStringLiteral("ftscomment");
-const QString Song::kFtsColumnSpec = Song::kFtsColumns.join(", ");
-const QString Song::kFtsBindSpec = Utilities::Prepend(":", Song::kFtsColumns).join(", ");
-const QString Song::kFtsUpdateSpec = Utilities::Updateify(Song::kFtsColumns).join(", ");
+const QString Song::kFtsColumnSpec = Song::kFtsColumns.join(QStringLiteral(", "));
+const QString Song::kFtsBindSpec = Utilities::Prepend(QStringLiteral(":"), Song::kFtsColumns).join(QStringLiteral(", "));
+const QString Song::kFtsUpdateSpec = Utilities::Updateify(Song::kFtsColumns).join(QStringLiteral(", "));
const Song::RegularExpressionList Song::kAlbumDisc = Song::RegularExpressionList()
- << QRegularExpression("\\s+-*\\s*(Disc|CD)\\s*([0-9]{1,2})$", QRegularExpression::CaseInsensitiveOption)
- << QRegularExpression("\\s+-*\\s*\\(\\s*(Disc|CD)\\s*([0-9]{1,2})\\)$", QRegularExpression::CaseInsensitiveOption)
- << QRegularExpression("\\s+-*\\s*\\[\\s*(Disc|CD)\\s*([0-9]{1,2})\\]$", QRegularExpression::CaseInsensitiveOption);
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*(Disc|CD)\\s*([0-9]{1,2})$"), QRegularExpression::CaseInsensitiveOption)
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*\\(\\s*(Disc|CD)\\s*([0-9]{1,2})\\)$"), QRegularExpression::CaseInsensitiveOption)
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*\\[\\s*(Disc|CD)\\s*([0-9]{1,2})\\]$"), QRegularExpression::CaseInsensitiveOption);
const Song::RegularExpressionList Song::kRemastered = Song::RegularExpressionList()
- << QRegularExpression("\\s+-*\\s*(([0-9]{4})*\\s*Remastered|([0-9]{4})*\\s*Remaster)\\s*(Version)*\\s*$", QRegularExpression::CaseInsensitiveOption)
- << QRegularExpression("\\s+-*\\s*\\(\\s*(([0-9]{4})*\\s*Remastered|([0-9]{4})*\\s*Remaster)\\s*(Version)*\\s*\\)\\s*$", QRegularExpression::CaseInsensitiveOption)
- << QRegularExpression("\\s+-*\\s*\\[\\s*(([0-9]{4})*\\s*Remastered|([0-9]{4})*\\s*Remaster)\\s*(Version)*\\s*\\]\\s*$", QRegularExpression::CaseInsensitiveOption);
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*(([0-9]{4})*\\s*Remastered|([0-9]{4})*\\s*Remaster)\\s*(Version)*\\s*$"), QRegularExpression::CaseInsensitiveOption)
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*\\(\\s*(([0-9]{4})*\\s*Remastered|([0-9]{4})*\\s*Remaster)\\s*(Version)*\\s*\\)\\s*$"), QRegularExpression::CaseInsensitiveOption)
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*\\[\\s*(([0-9]{4})*\\s*Remastered|([0-9]{4})*\\s*Remaster)\\s*(Version)*\\s*\\]\\s*$"), QRegularExpression::CaseInsensitiveOption);
const Song::RegularExpressionList Song::kExplicit = Song::RegularExpressionList()
- << QRegularExpression("\\s+-*\\s*Explicit\\s*$", QRegularExpression::CaseInsensitiveOption)
- << QRegularExpression("\\s+-*\\s*\\(\\s*Explicit\\s*\\)\\s*$", QRegularExpression::CaseInsensitiveOption)
- << QRegularExpression("\\s+-*\\s*\\[\\s*Explicit\\s*\\]\\s*$", QRegularExpression::CaseInsensitiveOption);
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*Explicit\\s*$"), QRegularExpression::CaseInsensitiveOption)
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*\\(\\s*Explicit\\s*\\)\\s*$"), QRegularExpression::CaseInsensitiveOption)
+ << QRegularExpression(QStringLiteral("\\s+-*\\s*\\[\\s*Explicit\\s*\\]\\s*$"), QRegularExpression::CaseInsensitiveOption);
const Song::RegularExpressionList Song::kAlbumMisc = Song::RegularExpressionList()
<< kRemastered
@@ -192,12 +192,12 @@ const Song::RegularExpressionList Song::kTitleMisc = Song::RegularExpressionList
<< kRemastered
<< kExplicit;
-const QStringList Song::kArticles = QStringList() << "the " << "a " << "an ";
+const QStringList Song::kArticles = QStringList() << QStringLiteral("the ") << QStringLiteral("a ") << QStringLiteral("an ");
-const QStringList Song::kAcceptedExtensions = QStringList() << "wav" << "flac" << "wv" << "ogg" << "oga" << "opus" << "spx" << "ape" << "mpc"
- << "mp2" << "mp3" << "m4a" << "mp4" << "aac" << "asf" << "asx" << "wma"
- << "aif << aiff" << "mka" << "tta" << "dsf" << "dsd"
- << "ac3" << "dts" << "spc" << "vgm";
+const QStringList Song::kAcceptedExtensions = QStringList() << QStringLiteral("wav") << QStringLiteral("flac") << QStringLiteral("wv") << QStringLiteral("ogg") << QStringLiteral("oga") << QStringLiteral("opus") << QStringLiteral("spx") << QStringLiteral("ape") << QStringLiteral("mpc")
+ << QStringLiteral("mp2") << QStringLiteral("mp3") << QStringLiteral("m4a") << QStringLiteral("mp4") << QStringLiteral("aac") << QStringLiteral("asf") << QStringLiteral("asx") << QStringLiteral("wma")
+ << QStringLiteral("aif << aiff") << QStringLiteral("mka") << QStringLiteral("tta") << QStringLiteral("dsf") << QStringLiteral("dsd")
+ << QStringLiteral("ac3") << QStringLiteral("dts") << QStringLiteral("spc") << QStringLiteral("vgm");
struct Song::Private : public QSharedData {
@@ -373,9 +373,9 @@ const QString &Song::grouping() const { return d->grouping_; }
const QString &Song::comment() const { return d->comment_; }
const QString &Song::lyrics() const { return d->lyrics_; }
-QString Song::artist_id() const { return d->artist_id_.isNull() ? "" : d->artist_id_; }
-QString Song::album_id() const { return d->album_id_.isNull() ? "" : d->album_id_; }
-QString Song::song_id() const { return d->song_id_.isNull() ? "" : d->song_id_; }
+QString Song::artist_id() const { return d->artist_id_.isNull() ? QLatin1String("") : d->artist_id_; }
+QString Song::album_id() const { return d->album_id_.isNull() ? QLatin1String("") : d->album_id_; }
+QString Song::song_id() const { return d->song_id_.isNull() ? QLatin1String("") : d->song_id_; }
qint64 Song::beginning_nanosec() const { return d->beginning_; }
qint64 Song::end_nanosec() const { return d->end_; }
@@ -668,7 +668,7 @@ QString Song::sortable(const QString &v) {
}
QString Song::JoinSpec(const QString &table) {
- return Utilities::Prepend(table + ".", kColumns).join(", ");
+ return Utilities::Prepend(table + ".", kColumns).join(QStringLiteral(", "));
}
QString Song::PrettyTitle() const {
@@ -722,7 +722,7 @@ QString Song::TitleWithCompilationArtist() const {
if (title.isEmpty()) title = d->basefilename_;
- if (is_compilation() && !d->artist_.isEmpty() && !d->artist_.contains("various", Qt::CaseInsensitive)) title = d->artist_ + " - " + title;
+ if (is_compilation() && !d->artist_.isEmpty() && !d->artist_.contains(QLatin1String("various"), Qt::CaseInsensitive)) title = d->artist_ + " - " + title;
return title;
@@ -730,10 +730,10 @@ QString Song::TitleWithCompilationArtist() const {
QString Song::SampleRateBitDepthToText() const {
- if (d->samplerate_ == -1) return QString("");
- if (d->bitdepth_ == -1) return QString("%1 hz").arg(d->samplerate_);
+ if (d->samplerate_ == -1) return QLatin1String("");
+ if (d->bitdepth_ == -1) return QStringLiteral("%1 hz").arg(d->samplerate_);
- return QString("%1 hz / %2 bit").arg(d->samplerate_).arg(d->bitdepth_);
+ return QStringLiteral("%1 hz / %2 bit").arg(d->samplerate_).arg(d->bitdepth_);
}
@@ -765,7 +765,7 @@ QString Song::PrettyRating() const {
float rating = d->rating_;
- if (rating == -1.0F) return "0";
+ if (rating == -1.0F) return QStringLiteral("0");
return QString::number(static_cast(rating * 100));
@@ -899,10 +899,10 @@ Song::Source Song::SourceFromURL(const QUrl &url) {
else if (url.scheme() == "subsonic") return Source::Subsonic;
else if (url.scheme() == "qobuz") return Source::Qobuz;
else if (url.scheme() == "http" || url.scheme() == "https" || url.scheme() == "rtsp") {
- if (url.host().endsWith("tidal.com", Qt::CaseInsensitive)) { return Source::Tidal; }
- if (url.host().endsWith("qobuz.com", Qt::CaseInsensitive)) { return Source::Qobuz; }
- if (url.host().endsWith("somafm.com", Qt::CaseInsensitive)) { return Source::SomaFM; }
- if (url.host().endsWith("radioparadise.com", Qt::CaseInsensitive)) { return Source::RadioParadise; }
+ if (url.host().endsWith(QLatin1String("tidal.com"), Qt::CaseInsensitive)) { return Source::Tidal; }
+ if (url.host().endsWith(QLatin1String("qobuz.com"), Qt::CaseInsensitive)) { return Source::Qobuz; }
+ if (url.host().endsWith(QLatin1String("somafm.com"), Qt::CaseInsensitive)) { return Source::SomaFM; }
+ if (url.host().endsWith(QLatin1String("radioparadise.com"), Qt::CaseInsensitive)) { return Source::RadioParadise; }
return Source::Stream;
}
else return Source::Unknown;
@@ -912,53 +912,53 @@ Song::Source Song::SourceFromURL(const QUrl &url) {
QString Song::TextForSource(const Source source) {
switch (source) {
- case Source::LocalFile: return "file";
- case Source::Collection: return "collection";
- case Source::CDDA: return "cd";
- case Source::Device: return "device";
- case Source::Stream: return "stream";
- case Source::Tidal: return "tidal";
- case Source::Subsonic: return "subsonic";
- case Source::Qobuz: return "qobuz";
- case Source::SomaFM: return "somafm";
- case Source::RadioParadise: return "radioparadise";
- case Source::Unknown: return "unknown";
+ case Source::LocalFile: return QStringLiteral("file");
+ case Source::Collection: return QStringLiteral("collection");
+ case Source::CDDA: return QStringLiteral("cd");
+ case Source::Device: return QStringLiteral("device");
+ case Source::Stream: return QStringLiteral("stream");
+ case Source::Tidal: return QStringLiteral("tidal");
+ case Source::Subsonic: return QStringLiteral("subsonic");
+ case Source::Qobuz: return QStringLiteral("qobuz");
+ case Source::SomaFM: return QStringLiteral("somafm");
+ case Source::RadioParadise: return QStringLiteral("radioparadise");
+ case Source::Unknown: return QStringLiteral("unknown");
}
- return "unknown";
+ return QStringLiteral("unknown");
}
QString Song::DescriptionForSource(const Source source) {
switch (source) {
- case Source::LocalFile: return "File";
- case Source::Collection: return "Collection";
- case Source::CDDA: return "CD";
- case Source::Device: return "Device";
- case Source::Stream: return "Stream";
- case Source::Tidal: return "Tidal";
- case Source::Subsonic: return "Subsonic";
- case Source::Qobuz: return "Qobuz";
- case Source::SomaFM: return "SomaFM";
- case Source::RadioParadise: return "Radio Paradise";
- case Source::Unknown: return "Unknown";
+ case Source::LocalFile: return QStringLiteral("File");
+ case Source::Collection: return QStringLiteral("Collection");
+ case Source::CDDA: return QStringLiteral("CD");
+ case Source::Device: return QStringLiteral("Device");
+ case Source::Stream: return QStringLiteral("Stream");
+ case Source::Tidal: return QStringLiteral("Tidal");
+ case Source::Subsonic: return QStringLiteral("Subsonic");
+ case Source::Qobuz: return QStringLiteral("Qobuz");
+ case Source::SomaFM: return QStringLiteral("SomaFM");
+ case Source::RadioParadise: return QStringLiteral("Radio Paradise");
+ case Source::Unknown: return QStringLiteral("Unknown");
}
- return "unknown";
+ return QStringLiteral("unknown");
}
Song::Source Song::SourceFromText(const QString &source) {
- if (source.compare("file", Qt::CaseInsensitive) == 0) return Source::LocalFile;
- if (source.compare("collection", Qt::CaseInsensitive) == 0) return Source::Collection;
- if (source.compare("cd", Qt::CaseInsensitive) == 0) return Source::CDDA;
- if (source.compare("device", Qt::CaseInsensitive) == 0) return Source::Device;
- if (source.compare("stream", Qt::CaseInsensitive) == 0) return Source::Stream;
- if (source.compare("tidal", Qt::CaseInsensitive) == 0) return Source::Tidal;
- if (source.compare("subsonic", Qt::CaseInsensitive) == 0) return Source::Subsonic;
- if (source.compare("qobuz", Qt::CaseInsensitive) == 0) return Source::Qobuz;
- if (source.compare("somafm", Qt::CaseInsensitive) == 0) return Source::SomaFM;
- if (source.compare("radioparadise", Qt::CaseInsensitive) == 0) return Source::RadioParadise;
+ if (source.compare(QLatin1String("file"), Qt::CaseInsensitive) == 0) return Source::LocalFile;
+ if (source.compare(QLatin1String("collection"), Qt::CaseInsensitive) == 0) return Source::Collection;
+ if (source.compare(QLatin1String("cd"), Qt::CaseInsensitive) == 0) return Source::CDDA;
+ if (source.compare(QLatin1String("device"), Qt::CaseInsensitive) == 0) return Source::Device;
+ if (source.compare(QLatin1String("stream"), Qt::CaseInsensitive) == 0) return Source::Stream;
+ if (source.compare(QLatin1String("tidal"), Qt::CaseInsensitive) == 0) return Source::Tidal;
+ if (source.compare(QLatin1String("subsonic"), Qt::CaseInsensitive) == 0) return Source::Subsonic;
+ if (source.compare(QLatin1String("qobuz"), Qt::CaseInsensitive) == 0) return Source::Qobuz;
+ if (source.compare(QLatin1String("somafm"), Qt::CaseInsensitive) == 0) return Source::SomaFM;
+ if (source.compare(QLatin1String("radioparadise"), Qt::CaseInsensitive) == 0) return Source::RadioParadise;
return Source::Unknown;
@@ -967,50 +967,50 @@ Song::Source Song::SourceFromText(const QString &source) {
QIcon Song::IconForSource(const Source source) {
switch (source) {
- case Source::LocalFile: return IconLoader::Load("folder-sound");
- case Source::Collection: return IconLoader::Load("library-music");
- case Source::CDDA: return IconLoader::Load("media-optical");
- case Source::Device: return IconLoader::Load("device");
- case Source::Stream: return IconLoader::Load("applications-internet");
- case Source::Tidal: return IconLoader::Load("tidal");
- case Source::Subsonic: return IconLoader::Load("subsonic");
- case Source::Qobuz: return IconLoader::Load("qobuz");
- case Source::SomaFM: return IconLoader::Load("somafm");
- case Source::RadioParadise: return IconLoader::Load("radioparadise");
- case Source::Unknown: return IconLoader::Load("edit-delete");
+ case Source::LocalFile: return IconLoader::Load(QStringLiteral("folder-sound"));
+ case Source::Collection: return IconLoader::Load(QStringLiteral("library-music"));
+ case Source::CDDA: return IconLoader::Load(QStringLiteral("media-optical"));
+ case Source::Device: return IconLoader::Load(QStringLiteral("device"));
+ case Source::Stream: return IconLoader::Load(QStringLiteral("applications-internet"));
+ case Source::Tidal: return IconLoader::Load(QStringLiteral("tidal"));
+ case Source::Subsonic: return IconLoader::Load(QStringLiteral("subsonic"));
+ case Source::Qobuz: return IconLoader::Load(QStringLiteral("qobuz"));
+ case Source::SomaFM: return IconLoader::Load(QStringLiteral("somafm"));
+ case Source::RadioParadise: return IconLoader::Load(QStringLiteral("radioparadise"));
+ case Source::Unknown: return IconLoader::Load(QStringLiteral("edit-delete"));
}
- return IconLoader::Load("edit-delete");
+ return IconLoader::Load(QStringLiteral("edit-delete"));
}
QString Song::TextForFiletype(const FileType filetype) {
switch (filetype) {
- case FileType::WAV: return "Wav";
- case FileType::FLAC: return "FLAC";
- case FileType::WavPack: return "WavPack";
- case FileType::OggFlac: return "Ogg FLAC";
- case FileType::OggVorbis: return "Ogg Vorbis";
- case FileType::OggOpus: return "Ogg Opus";
- case FileType::OggSpeex: return "Ogg Speex";
- case FileType::MPEG: return "MPEG";
- case FileType::MP4: return "MP4 AAC";
- case FileType::ASF: return "Windows Media audio";
- case FileType::AIFF: return "AIFF";
- case FileType::MPC: return "MPC";
- case FileType::TrueAudio: return "TrueAudio";
- case FileType::DSF: return "DSF";
- case FileType::DSDIFF: return "DSDIFF";
- case FileType::PCM: return "PCM";
- case FileType::APE: return "Monkey's Audio";
- case FileType::MOD: return "Module Music Format";
- case FileType::S3M: return "Module Music Format";
- case FileType::XM: return "Module Music Format";
- case FileType::IT: return "Module Music Format";
- case FileType::CDDA: return "CDDA";
- case FileType::SPC: return "SNES SPC700";
- case FileType::VGM: return "VGM";
- case FileType::Stream: return "Stream";
+ case FileType::WAV: return QStringLiteral("Wav");
+ case FileType::FLAC: return QStringLiteral("FLAC");
+ case FileType::WavPack: return QStringLiteral("WavPack");
+ case FileType::OggFlac: return QStringLiteral("Ogg FLAC");
+ case FileType::OggVorbis: return QStringLiteral("Ogg Vorbis");
+ case FileType::OggOpus: return QStringLiteral("Ogg Opus");
+ case FileType::OggSpeex: return QStringLiteral("Ogg Speex");
+ case FileType::MPEG: return QStringLiteral("MPEG");
+ case FileType::MP4: return QStringLiteral("MP4 AAC");
+ case FileType::ASF: return QStringLiteral("Windows Media audio");
+ case FileType::AIFF: return QStringLiteral("AIFF");
+ case FileType::MPC: return QStringLiteral("MPC");
+ case FileType::TrueAudio: return QStringLiteral("TrueAudio");
+ case FileType::DSF: return QStringLiteral("DSF");
+ case FileType::DSDIFF: return QStringLiteral("DSDIFF");
+ case FileType::PCM: return QStringLiteral("PCM");
+ case FileType::APE: return QStringLiteral("Monkey's Audio");
+ case FileType::MOD: return QStringLiteral("Module Music Format");
+ case FileType::S3M: return QStringLiteral("Module Music Format");
+ case FileType::XM: return QStringLiteral("Module Music Format");
+ case FileType::IT: return QStringLiteral("Module Music Format");
+ case FileType::CDDA: return QStringLiteral("CDDA");
+ case FileType::SPC: return QStringLiteral("SNES SPC700");
+ case FileType::VGM: return QStringLiteral("VGM");
+ case FileType::Stream: return QStringLiteral("Stream");
case FileType::Unknown:
default: return QObject::tr("Unknown");
}
@@ -1020,30 +1020,30 @@ QString Song::TextForFiletype(const FileType filetype) {
QString Song::ExtensionForFiletype(const FileType filetype) {
switch (filetype) {
- case FileType::WAV: return "wav";
- case FileType::FLAC: return "flac";
- case FileType::WavPack: return "wv";
- case FileType::OggFlac: return "flac";
- case FileType::OggVorbis: return "ogg";
- case FileType::OggOpus: return "opus";
- case FileType::OggSpeex: return "spx";
- case FileType::MPEG: return "mp3";
- case FileType::MP4: return "mp4";
- case FileType::ASF: return "wma";
- case FileType::AIFF: return "aiff";
- case FileType::MPC: return "mpc";
- case FileType::TrueAudio: return "tta";
- case FileType::DSF: return "dsf";
- case FileType::DSDIFF: return "dsd";
- case FileType::APE: return "ape";
- case FileType::MOD: return "mod";
- case FileType::S3M: return "s3m";
- case FileType::XM: return "xm";
- case FileType::IT: return "it";
- case FileType::SPC: return "spc";
- case FileType::VGM: return "vgm";
+ case FileType::WAV: return QStringLiteral("wav");
+ case FileType::FLAC: return QStringLiteral("flac");
+ case FileType::WavPack: return QStringLiteral("wv");
+ case FileType::OggFlac: return QStringLiteral("flac");
+ case FileType::OggVorbis: return QStringLiteral("ogg");
+ case FileType::OggOpus: return QStringLiteral("opus");
+ case FileType::OggSpeex: return QStringLiteral("spx");
+ case FileType::MPEG: return QStringLiteral("mp3");
+ case FileType::MP4: return QStringLiteral("mp4");
+ case FileType::ASF: return QStringLiteral("wma");
+ case FileType::AIFF: return QStringLiteral("aiff");
+ case FileType::MPC: return QStringLiteral("mpc");
+ case FileType::TrueAudio: return QStringLiteral("tta");
+ case FileType::DSF: return QStringLiteral("dsf");
+ case FileType::DSDIFF: return QStringLiteral("dsd");
+ case FileType::APE: return QStringLiteral("ape");
+ case FileType::MOD: return QStringLiteral("mod");
+ case FileType::S3M: return QStringLiteral("s3m");
+ case FileType::XM: return QStringLiteral("xm");
+ case FileType::IT: return QStringLiteral("it");
+ case FileType::SPC: return QStringLiteral("spc");
+ case FileType::VGM: return QStringLiteral("vgm");
case FileType::Unknown:
- default: return "dat";
+ default: return QStringLiteral("dat");
}
}
@@ -1051,31 +1051,31 @@ QString Song::ExtensionForFiletype(const FileType filetype) {
QIcon Song::IconForFiletype(const FileType filetype) {
switch (filetype) {
- case FileType::WAV: return IconLoader::Load("wav");
- case FileType::FLAC: return IconLoader::Load("flac");
- case FileType::WavPack: return IconLoader::Load("wavpack");
- case FileType::OggFlac: return IconLoader::Load("flac");
- case FileType::OggVorbis: return IconLoader::Load("vorbis");
- case FileType::OggOpus: return IconLoader::Load("opus");
- case FileType::OggSpeex: return IconLoader::Load("speex");
- case FileType::MPEG: return IconLoader::Load("mp3");
- case FileType::MP4: return IconLoader::Load("mp4");
- case FileType::ASF: return IconLoader::Load("wma");
- case FileType::AIFF: return IconLoader::Load("aiff");
- case FileType::MPC: return IconLoader::Load("mpc");
- case FileType::TrueAudio: return IconLoader::Load("trueaudio");
- case FileType::DSF: return IconLoader::Load("dsf");
- case FileType::DSDIFF: return IconLoader::Load("dsd");
- case FileType::PCM: return IconLoader::Load("pcm");
- case FileType::APE: return IconLoader::Load("ape");
- case FileType::MOD: return IconLoader::Load("mod");
- case FileType::S3M: return IconLoader::Load("s3m");
- case FileType::XM: return IconLoader::Load("xm");
- case FileType::IT: return IconLoader::Load("it");
- case FileType::CDDA: return IconLoader::Load("cd");
- case FileType::Stream: return IconLoader::Load("applications-internet");
+ case FileType::WAV: return IconLoader::Load(QStringLiteral("wav"));
+ case FileType::FLAC: return IconLoader::Load(QStringLiteral("flac"));
+ case FileType::WavPack: return IconLoader::Load(QStringLiteral("wavpack"));
+ case FileType::OggFlac: return IconLoader::Load(QStringLiteral("flac"));
+ case FileType::OggVorbis: return IconLoader::Load(QStringLiteral("vorbis"));
+ case FileType::OggOpus: return IconLoader::Load(QStringLiteral("opus"));
+ case FileType::OggSpeex: return IconLoader::Load(QStringLiteral("speex"));
+ case FileType::MPEG: return IconLoader::Load(QStringLiteral("mp3"));
+ case FileType::MP4: return IconLoader::Load(QStringLiteral("mp4"));
+ case FileType::ASF: return IconLoader::Load(QStringLiteral("wma"));
+ case FileType::AIFF: return IconLoader::Load(QStringLiteral("aiff"));
+ case FileType::MPC: return IconLoader::Load(QStringLiteral("mpc"));
+ case FileType::TrueAudio: return IconLoader::Load(QStringLiteral("trueaudio"));
+ case FileType::DSF: return IconLoader::Load(QStringLiteral("dsf"));
+ case FileType::DSDIFF: return IconLoader::Load(QStringLiteral("dsd"));
+ case FileType::PCM: return IconLoader::Load(QStringLiteral("pcm"));
+ case FileType::APE: return IconLoader::Load(QStringLiteral("ape"));
+ case FileType::MOD: return IconLoader::Load(QStringLiteral("mod"));
+ case FileType::S3M: return IconLoader::Load(QStringLiteral("s3m"));
+ case FileType::XM: return IconLoader::Load(QStringLiteral("xm"));
+ case FileType::IT: return IconLoader::Load(QStringLiteral("it"));
+ case FileType::CDDA: return IconLoader::Load(QStringLiteral("cd"));
+ case FileType::Stream: return IconLoader::Load(QStringLiteral("applications-internet"));
case FileType::Unknown:
- default: return IconLoader::Load("edit-delete");
+ default: return IconLoader::Load(QStringLiteral("edit-delete"));
}
}
@@ -1103,26 +1103,26 @@ bool Song::IsFileLossless() const {
Song::FileType Song::FiletypeByMimetype(const QString &mimetype) {
- if (mimetype.compare("audio/wav", Qt::CaseInsensitive) == 0 || mimetype.compare("audio/x-wav", Qt::CaseInsensitive) == 0) return FileType::WAV;
- else if (mimetype.compare("audio/x-flac", Qt::CaseInsensitive) == 0) return FileType::FLAC;
- else if (mimetype.compare("audio/x-wavpack", Qt::CaseInsensitive) == 0) return FileType::WavPack;
- else if (mimetype.compare("audio/x-vorbis", Qt::CaseInsensitive) == 0) return FileType::OggVorbis;
- else if (mimetype.compare("audio/x-opus", Qt::CaseInsensitive) == 0) return FileType::OggOpus;
- else if (mimetype.compare("audio/x-speex", Qt::CaseInsensitive) == 0) return FileType::OggSpeex;
+ if (mimetype.compare(QLatin1String("audio/wav"), Qt::CaseInsensitive) == 0 || mimetype.compare(QLatin1String("audio/x-wav"), Qt::CaseInsensitive) == 0) return FileType::WAV;
+ else if (mimetype.compare(QLatin1String("audio/x-flac"), Qt::CaseInsensitive) == 0) return FileType::FLAC;
+ else if (mimetype.compare(QLatin1String("audio/x-wavpack"), Qt::CaseInsensitive) == 0) return FileType::WavPack;
+ else if (mimetype.compare(QLatin1String("audio/x-vorbis"), Qt::CaseInsensitive) == 0) return FileType::OggVorbis;
+ else if (mimetype.compare(QLatin1String("audio/x-opus"), Qt::CaseInsensitive) == 0) return FileType::OggOpus;
+ else if (mimetype.compare(QLatin1String("audio/x-speex"), Qt::CaseInsensitive) == 0) return FileType::OggSpeex;
// Gstreamer returns audio/mpeg for both MP3 and MP4/AAC.
// else if (mimetype.compare("audio/mpeg", Qt::CaseInsensitive) == 0) return FileType::MPEG;
- else if (mimetype.compare("audio/aac", Qt::CaseInsensitive) == 0) return FileType::MP4;
- else if (mimetype.compare("audio/x-wma", Qt::CaseInsensitive) == 0) return FileType::ASF;
- else if (mimetype.compare("audio/aiff", Qt::CaseInsensitive) == 0 || mimetype.compare("audio/x-aiff", Qt::CaseInsensitive) == 0) return FileType::AIFF;
- else if (mimetype.compare("audio/x-musepack", Qt::CaseInsensitive) == 0) return FileType::MPC;
- else if (mimetype.compare("application/x-project", Qt::CaseInsensitive) == 0) return FileType::MPC;
- else if (mimetype.compare("audio/x-dsf", Qt::CaseInsensitive) == 0) return FileType::DSF;
- else if (mimetype.compare("audio/x-dsd", Qt::CaseInsensitive) == 0) return FileType::DSDIFF;
- else if (mimetype.compare("audio/x-ape", Qt::CaseInsensitive) == 0 || mimetype.compare("application/x-ape", Qt::CaseInsensitive) == 0 || mimetype.compare("audio/x-ffmpeg-parsed-ape", Qt::CaseInsensitive) == 0) return FileType::APE;
- else if (mimetype.compare("audio/x-mod", Qt::CaseInsensitive) == 0) return FileType::MOD;
- else if (mimetype.compare("audio/x-s3m", Qt::CaseInsensitive) == 0) return FileType::S3M;
- else if (mimetype.compare("audio/x-spc", Qt::CaseInsensitive) == 0) return FileType::SPC;
- else if (mimetype.compare("audio/x-vgm", Qt::CaseInsensitive) == 0) return FileType::VGM;
+ else if (mimetype.compare(QLatin1String("audio/aac"), Qt::CaseInsensitive) == 0) return FileType::MP4;
+ else if (mimetype.compare(QLatin1String("audio/x-wma"), Qt::CaseInsensitive) == 0) return FileType::ASF;
+ else if (mimetype.compare(QLatin1String("audio/aiff"), Qt::CaseInsensitive) == 0 || mimetype.compare(QLatin1String("audio/x-aiff"), Qt::CaseInsensitive) == 0) return FileType::AIFF;
+ else if (mimetype.compare(QLatin1String("audio/x-musepack"), Qt::CaseInsensitive) == 0) return FileType::MPC;
+ else if (mimetype.compare(QLatin1String("application/x-project"), Qt::CaseInsensitive) == 0) return FileType::MPC;
+ else if (mimetype.compare(QLatin1String("audio/x-dsf"), Qt::CaseInsensitive) == 0) return FileType::DSF;
+ else if (mimetype.compare(QLatin1String("audio/x-dsd"), Qt::CaseInsensitive) == 0) return FileType::DSDIFF;
+ else if (mimetype.compare(QLatin1String("audio/x-ape"), Qt::CaseInsensitive) == 0 || mimetype.compare(QLatin1String("application/x-ape"), Qt::CaseInsensitive) == 0 || mimetype.compare(QLatin1String("audio/x-ffmpeg-parsed-ape"), Qt::CaseInsensitive) == 0) return FileType::APE;
+ else if (mimetype.compare(QLatin1String("audio/x-mod"), Qt::CaseInsensitive) == 0) return FileType::MOD;
+ else if (mimetype.compare(QLatin1String("audio/x-s3m"), Qt::CaseInsensitive) == 0) return FileType::S3M;
+ else if (mimetype.compare(QLatin1String("audio/x-spc"), Qt::CaseInsensitive) == 0) return FileType::SPC;
+ else if (mimetype.compare(QLatin1String("audio/x-vgm"), Qt::CaseInsensitive) == 0) return FileType::VGM;
else return FileType::Unknown;
@@ -1130,56 +1130,56 @@ Song::FileType Song::FiletypeByMimetype(const QString &mimetype) {
Song::FileType Song::FiletypeByDescription(const QString &text) {
- if (text.compare("WAV", Qt::CaseInsensitive) == 0) return FileType::WAV;
- else if (text.compare("Free Lossless Audio Codec (FLAC)", Qt::CaseInsensitive) == 0) return FileType::FLAC;
- else if (text.compare("Wavpack", Qt::CaseInsensitive) == 0) return FileType::WavPack;
- else if (text.compare("Vorbis", Qt::CaseInsensitive) == 0) return FileType::OggVorbis;
- else if (text.compare("Opus", Qt::CaseInsensitive) == 0) return FileType::OggOpus;
- else if (text.compare("Speex", Qt::CaseInsensitive) == 0) return FileType::OggSpeex;
- else if (text.compare("MPEG-1 Layer 2 (MP2)", Qt::CaseInsensitive) == 0) return FileType::MPEG;
- else if (text.compare("MPEG-1 Layer 3 (MP3)", Qt::CaseInsensitive) == 0) return FileType::MPEG;
- else if (text.compare("MPEG-4 AAC", Qt::CaseInsensitive) == 0) return FileType::MP4;
- else if (text.compare("WMA", Qt::CaseInsensitive) == 0) return FileType::ASF;
- else if (text.compare("Audio Interchange File Format", Qt::CaseInsensitive) == 0) return FileType::AIFF;
- else if (text.compare("MPC", Qt::CaseInsensitive) == 0) return FileType::MPC;
- else if (text.compare("Musepack (MPC)", Qt::CaseInsensitive) == 0) return FileType::MPC;
- else if (text.compare("audio/x-dsf", Qt::CaseInsensitive) == 0) return FileType::DSF;
- else if (text.compare("audio/x-dsd", Qt::CaseInsensitive) == 0) return FileType::DSDIFF;
- else if (text.compare("audio/x-ffmpeg-parsed-ape", Qt::CaseInsensitive) == 0) return FileType::APE;
- else if (text.compare("Module Music Format (MOD)", Qt::CaseInsensitive) == 0) return FileType::MOD;
- else if (text.compare("Module Music Format (MOD)", Qt::CaseInsensitive) == 0) return FileType::S3M;
- else if (text.compare("SNES SPC700", Qt::CaseInsensitive) == 0) return FileType::SPC;
- else if (text.compare("VGM", Qt::CaseInsensitive) == 0) return FileType::VGM;
+ if (text.compare(QLatin1String("WAV"), Qt::CaseInsensitive) == 0) return FileType::WAV;
+ else if (text.compare(QLatin1String("Free Lossless Audio Codec (FLAC)"), Qt::CaseInsensitive) == 0) return FileType::FLAC;
+ else if (text.compare(QLatin1String("Wavpack"), Qt::CaseInsensitive) == 0) return FileType::WavPack;
+ else if (text.compare(QLatin1String("Vorbis"), Qt::CaseInsensitive) == 0) return FileType::OggVorbis;
+ else if (text.compare(QLatin1String("Opus"), Qt::CaseInsensitive) == 0) return FileType::OggOpus;
+ else if (text.compare(QLatin1String("Speex"), Qt::CaseInsensitive) == 0) return FileType::OggSpeex;
+ else if (text.compare(QLatin1String("MPEG-1 Layer 2 (MP2)"), Qt::CaseInsensitive) == 0) return FileType::MPEG;
+ else if (text.compare(QLatin1String("MPEG-1 Layer 3 (MP3)"), Qt::CaseInsensitive) == 0) return FileType::MPEG;
+ else if (text.compare(QLatin1String("MPEG-4 AAC"), Qt::CaseInsensitive) == 0) return FileType::MP4;
+ else if (text.compare(QLatin1String("WMA"), Qt::CaseInsensitive) == 0) return FileType::ASF;
+ else if (text.compare(QLatin1String("Audio Interchange File Format"), Qt::CaseInsensitive) == 0) return FileType::AIFF;
+ else if (text.compare(QLatin1String("MPC"), Qt::CaseInsensitive) == 0) return FileType::MPC;
+ else if (text.compare(QLatin1String("Musepack (MPC)"), Qt::CaseInsensitive) == 0) return FileType::MPC;
+ else if (text.compare(QLatin1String("audio/x-dsf"), Qt::CaseInsensitive) == 0) return FileType::DSF;
+ else if (text.compare(QLatin1String("audio/x-dsd"), Qt::CaseInsensitive) == 0) return FileType::DSDIFF;
+ else if (text.compare(QLatin1String("audio/x-ffmpeg-parsed-ape"), Qt::CaseInsensitive) == 0) return FileType::APE;
+ else if (text.compare(QLatin1String("Module Music Format (MOD)"), Qt::CaseInsensitive) == 0) return FileType::MOD;
+ else if (text.compare(QLatin1String("Module Music Format (MOD)"), Qt::CaseInsensitive) == 0) return FileType::S3M;
+ else if (text.compare(QLatin1String("SNES SPC700"), Qt::CaseInsensitive) == 0) return FileType::SPC;
+ else if (text.compare(QLatin1String("VGM"), Qt::CaseInsensitive) == 0) return FileType::VGM;
else return FileType::Unknown;
}
Song::FileType Song::FiletypeByExtension(const QString &ext) {
- if (ext.compare("wav", Qt::CaseInsensitive) == 0 || ext.compare("wave", Qt::CaseInsensitive) == 0) return FileType::WAV;
- else if (ext.compare("flac", Qt::CaseInsensitive) == 0) return FileType::FLAC;
- else if (ext.compare("wavpack", Qt::CaseInsensitive) == 0 || ext.compare("wv", Qt::CaseInsensitive) == 0) return FileType::WavPack;
- else if (ext.compare("ogg", Qt::CaseInsensitive) == 0 || ext.compare("oga", Qt::CaseInsensitive) == 0) return FileType::OggVorbis;
- else if (ext.compare("opus", Qt::CaseInsensitive) == 0) return FileType::OggOpus;
- else if (ext.compare("speex", Qt::CaseInsensitive) == 0 || ext.compare("spx", Qt::CaseInsensitive) == 0) return FileType::OggSpeex;
- else if (ext.compare("mp2", Qt::CaseInsensitive) == 0) return FileType::MPEG;
- else if (ext.compare("mp3", Qt::CaseInsensitive) == 0) return FileType::MPEG;
- else if (ext.compare("mp4", Qt::CaseInsensitive) == 0 || ext.compare("m4a", Qt::CaseInsensitive) == 0 || ext.compare("aac", Qt::CaseInsensitive) == 0) return FileType::MP4;
- else if (ext.compare("asf", Qt::CaseInsensitive) == 0 || ext.compare("wma", Qt::CaseInsensitive) == 0) return FileType::ASF;
- else if (ext.compare("aiff", Qt::CaseInsensitive) == 0 || ext.compare("aif", Qt::CaseInsensitive) == 0 || ext.compare("aifc", Qt::CaseInsensitive) == 0) return FileType::AIFF;
- else if (ext.compare("mpc", Qt::CaseInsensitive) == 0 || ext.compare("mp+", Qt::CaseInsensitive) == 0 || ext.compare("mpp", Qt::CaseInsensitive) == 0) return FileType::MPC;
- else if (ext.compare("dsf", Qt::CaseInsensitive) == 0) return FileType::DSF;
- else if (ext.compare("dsd", Qt::CaseInsensitive) == 0 || ext.compare("dff", Qt::CaseInsensitive) == 0) return FileType::DSDIFF;
- else if (ext.compare("ape", Qt::CaseInsensitive) == 0) return FileType::APE;
- else if (ext.compare("mod", Qt::CaseInsensitive) == 0 ||
- ext.compare("module", Qt::CaseInsensitive) == 0 ||
- ext.compare("nst", Qt::CaseInsensitive) == 0||
- ext.compare("wow", Qt::CaseInsensitive) == 0) return FileType::MOD;
- else if (ext.compare("s3m", Qt::CaseInsensitive) == 0) return FileType::S3M;
- else if (ext.compare("xm", Qt::CaseInsensitive) == 0) return FileType::XM;
- else if (ext.compare("it", Qt::CaseInsensitive) == 0) return FileType::IT;
- else if (ext.compare("spc", Qt::CaseInsensitive) == 0) return FileType::SPC;
- else if (ext.compare("vgm", Qt::CaseInsensitive) == 0) return FileType::VGM;
+ if (ext.compare(QLatin1String("wav"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("wave"), Qt::CaseInsensitive) == 0) return FileType::WAV;
+ else if (ext.compare(QLatin1String("flac"), Qt::CaseInsensitive) == 0) return FileType::FLAC;
+ else if (ext.compare(QLatin1String("wavpack"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("wv"), Qt::CaseInsensitive) == 0) return FileType::WavPack;
+ else if (ext.compare(QLatin1String("ogg"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("oga"), Qt::CaseInsensitive) == 0) return FileType::OggVorbis;
+ else if (ext.compare(QLatin1String("opus"), Qt::CaseInsensitive) == 0) return FileType::OggOpus;
+ else if (ext.compare(QLatin1String("speex"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("spx"), Qt::CaseInsensitive) == 0) return FileType::OggSpeex;
+ else if (ext.compare(QLatin1String("mp2"), Qt::CaseInsensitive) == 0) return FileType::MPEG;
+ else if (ext.compare(QLatin1String("mp3"), Qt::CaseInsensitive) == 0) return FileType::MPEG;
+ else if (ext.compare(QLatin1String("mp4"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("m4a"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("aac"), Qt::CaseInsensitive) == 0) return FileType::MP4;
+ else if (ext.compare(QLatin1String("asf"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("wma"), Qt::CaseInsensitive) == 0) return FileType::ASF;
+ else if (ext.compare(QLatin1String("aiff"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("aif"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("aifc"), Qt::CaseInsensitive) == 0) return FileType::AIFF;
+ else if (ext.compare(QLatin1String("mpc"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("mp+"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("mpp"), Qt::CaseInsensitive) == 0) return FileType::MPC;
+ else if (ext.compare(QLatin1String("dsf"), Qt::CaseInsensitive) == 0) return FileType::DSF;
+ else if (ext.compare(QLatin1String("dsd"), Qt::CaseInsensitive) == 0 || ext.compare(QLatin1String("dff"), Qt::CaseInsensitive) == 0) return FileType::DSDIFF;
+ else if (ext.compare(QLatin1String("ape"), Qt::CaseInsensitive) == 0) return FileType::APE;
+ else if (ext.compare(QLatin1String("mod"), Qt::CaseInsensitive) == 0 ||
+ ext.compare(QLatin1String("module"), Qt::CaseInsensitive) == 0 ||
+ ext.compare(QLatin1String("nst"), Qt::CaseInsensitive) == 0||
+ ext.compare(QLatin1String("wow"), Qt::CaseInsensitive) == 0) return FileType::MOD;
+ else if (ext.compare(QLatin1String("s3m"), Qt::CaseInsensitive) == 0) return FileType::S3M;
+ else if (ext.compare(QLatin1String("xm"), Qt::CaseInsensitive) == 0) return FileType::XM;
+ else if (ext.compare(QLatin1String("it"), Qt::CaseInsensitive) == 0) return FileType::IT;
+ else if (ext.compare(QLatin1String("spc"), Qt::CaseInsensitive) == 0) return FileType::SPC;
+ else if (ext.compare(QLatin1String("vgm"), Qt::CaseInsensitive) == 0) return FileType::VGM;
else return FileType::Unknown;
@@ -1366,76 +1366,76 @@ void Song::ToProtobuf(spb::tagreader::SongMetadata *pb) const {
void Song::InitFromQuery(const SqlRow &q, const bool reliable_metadata) {
- d->id_ = q.value("rowid").isNull() ? -1 : q.value("rowid").toInt();
+ d->id_ = q.value(QStringLiteral("rowid")).isNull() ? -1 : q.value(QStringLiteral("rowid")).toInt();
- set_title(q.ValueToString("title"));
- set_album(q.ValueToString("album"));
- set_artist(q.ValueToString("artist"));
- set_albumartist(q.ValueToString("albumartist"));
- d->track_ = q.ValueToInt("track");
- d->disc_ = q.ValueToInt("disc");
- d->year_ = q.ValueToInt("year");
- d->originalyear_ = q.ValueToInt("originalyear");
- d->genre_ = q.ValueToString("genre");
- d->compilation_ = q.value("compilation").toBool();
- d->composer_ = q.ValueToString("composer");
- d->performer_ = q.ValueToString("performer");
- d->grouping_ = q.ValueToString("grouping");
- d->comment_ = q.ValueToString("comment");
- d->lyrics_ = q.ValueToString("lyrics");
- d->artist_id_ = q.ValueToString("artist_id");
- d->album_id_ = q.ValueToString("album_id");
- d->song_id_ = q.ValueToString("song_id");
- d->beginning_ = q.value("beginning").isNull() ? 0 : q.value("beginning").toLongLong();
- set_length_nanosec(q.ValueToLongLong("length"));
- d->bitrate_ = q.ValueToInt("bitrate");
- d->samplerate_ = q.ValueToInt("samplerate");
- d->bitdepth_ = q.ValueToInt("bitdepth");
- if (!q.value("ebur128_integrated_loudness_lufs").isNull()) {
- d->ebur128_integrated_loudness_lufs_ = q.value("ebur128_integrated_loudness_lufs").toDouble();
+ set_title(q.ValueToString(QStringLiteral("title")));
+ set_album(q.ValueToString(QStringLiteral("album")));
+ set_artist(q.ValueToString(QStringLiteral("artist")));
+ set_albumartist(q.ValueToString(QStringLiteral("albumartist")));
+ d->track_ = q.ValueToInt(QStringLiteral("track"));
+ d->disc_ = q.ValueToInt(QStringLiteral("disc"));
+ d->year_ = q.ValueToInt(QStringLiteral("year"));
+ d->originalyear_ = q.ValueToInt(QStringLiteral("originalyear"));
+ d->genre_ = q.ValueToString(QStringLiteral("genre"));
+ d->compilation_ = q.value(QStringLiteral("compilation")).toBool();
+ d->composer_ = q.ValueToString(QStringLiteral("composer"));
+ d->performer_ = q.ValueToString(QStringLiteral("performer"));
+ d->grouping_ = q.ValueToString(QStringLiteral("grouping"));
+ d->comment_ = q.ValueToString(QStringLiteral("comment"));
+ d->lyrics_ = q.ValueToString(QStringLiteral("lyrics"));
+ d->artist_id_ = q.ValueToString(QStringLiteral("artist_id"));
+ d->album_id_ = q.ValueToString(QStringLiteral("album_id"));
+ d->song_id_ = q.ValueToString(QStringLiteral("song_id"));
+ d->beginning_ = q.value(QStringLiteral("beginning")).isNull() ? 0 : q.value(QStringLiteral("beginning")).toLongLong();
+ set_length_nanosec(q.ValueToLongLong(QStringLiteral("length")));
+ d->bitrate_ = q.ValueToInt(QStringLiteral("bitrate"));
+ d->samplerate_ = q.ValueToInt(QStringLiteral("samplerate"));
+ d->bitdepth_ = q.ValueToInt(QStringLiteral("bitdepth"));
+ if (!q.value(QStringLiteral("ebur128_integrated_loudness_lufs")).isNull()) {
+ d->ebur128_integrated_loudness_lufs_ = q.value(QStringLiteral("ebur128_integrated_loudness_lufs")).toDouble();
}
- if (!q.value("ebur128_loudness_range_lu").isNull()) {
- d->ebur128_loudness_range_lu_ = q.value("ebur128_loudness_range_lu").toDouble();
+ if (!q.value(QStringLiteral("ebur128_loudness_range_lu")).isNull()) {
+ d->ebur128_loudness_range_lu_ = q.value(QStringLiteral("ebur128_loudness_range_lu")).toDouble();
}
- d->source_ = static_cast(q.value("source").isNull() ? 0 : q.value("source").toInt());
- d->directory_id_ = q.ValueToInt("directory_id");
- set_url(QUrl::fromEncoded(q.ValueToString("url").toUtf8()));
+ d->source_ = static_cast(q.value(QStringLiteral("source")).isNull() ? 0 : q.value(QStringLiteral("source")).toInt());
+ d->directory_id_ = q.ValueToInt(QStringLiteral("directory_id"));
+ set_url(QUrl::fromEncoded(q.ValueToString(QStringLiteral("url")).toUtf8()));
d->basefilename_ = QFileInfo(d->url_.toLocalFile()).fileName();
- d->filetype_ = FileType(q.value("filetype").isNull() ? 0 : q.value("filetype").toInt());
- d->filesize_ = q.ValueToLongLong("filesize");
- d->mtime_ = q.ValueToLongLong("mtime");
- d->ctime_ = q.ValueToLongLong("ctime");
- d->unavailable_ = q.value("unavailable").toBool();
- d->fingerprint_ = q.ValueToString("fingerprint");
- d->playcount_ = q.ValueToUInt("playcount");
- d->skipcount_ = q.ValueToUInt("skipcount");
- d->lastplayed_ = q.ValueToLongLong("lastplayed");
- d->lastseen_ = q.ValueToLongLong("lastseen");
- d->compilation_detected_ = q.ValueToBool("compilation_detected");
- d->compilation_on_ = q.ValueToBool("compilation_on");
- d->compilation_off_ = q.ValueToBool("compilation_off");
+ d->filetype_ = FileType(q.value(QStringLiteral("filetype")).isNull() ? 0 : q.value(QStringLiteral("filetype")).toInt());
+ d->filesize_ = q.ValueToLongLong(QStringLiteral("filesize"));
+ d->mtime_ = q.ValueToLongLong(QStringLiteral("mtime"));
+ d->ctime_ = q.ValueToLongLong(QStringLiteral("ctime"));
+ d->unavailable_ = q.value(QStringLiteral("unavailable")).toBool();
+ d->fingerprint_ = q.ValueToString(QStringLiteral("fingerprint"));
+ d->playcount_ = q.ValueToUInt(QStringLiteral("playcount"));
+ d->skipcount_ = q.ValueToUInt(QStringLiteral("skipcount"));
+ d->lastplayed_ = q.ValueToLongLong(QStringLiteral("lastplayed"));
+ d->lastseen_ = q.ValueToLongLong(QStringLiteral("lastseen"));
+ d->compilation_detected_ = q.ValueToBool(QStringLiteral("compilation_detected"));
+ d->compilation_on_ = q.ValueToBool(QStringLiteral("compilation_on"));
+ d->compilation_off_ = q.ValueToBool(QStringLiteral("compilation_off"));
- d->art_embedded_ = q.ValueToBool("art_embedded");
- d->art_automatic_ = QUrl::fromEncoded(q.ValueToString("art_automatic").toUtf8());
- d->art_manual_ = QUrl::fromEncoded(q.ValueToString("art_manual").toUtf8());
- d->art_unset_ = q.ValueToBool("art_unset");
+ d->art_embedded_ = q.ValueToBool(QStringLiteral("art_embedded"));
+ d->art_automatic_ = QUrl::fromEncoded(q.ValueToString(QStringLiteral("art_automatic")).toUtf8());
+ d->art_manual_ = QUrl::fromEncoded(q.ValueToString(QStringLiteral("art_manual")).toUtf8());
+ d->art_unset_ = q.ValueToBool(QStringLiteral("art_unset"));
- d->cue_path_ = q.ValueToString("cue_path");
- d->rating_ = q.ValueToFloat("rating");
+ d->cue_path_ = q.ValueToString(QStringLiteral("cue_path"));
+ d->rating_ = q.ValueToFloat(QStringLiteral("rating"));
- d->acoustid_id_ = q.ValueToString("acoustid_id");
- d->acoustid_fingerprint_ = q.ValueToString("acoustid_fingerprint");
+ d->acoustid_id_ = q.ValueToString(QStringLiteral("acoustid_id"));
+ d->acoustid_fingerprint_ = q.ValueToString(QStringLiteral("acoustid_fingerprint"));
- d->musicbrainz_album_artist_id_ = q.ValueToString("musicbrainz_album_artist_id");
- d->musicbrainz_artist_id_ = q.ValueToString("musicbrainz_artist_id");
- d->musicbrainz_original_artist_id_ = q.ValueToString("musicbrainz_original_artist_id");
- d->musicbrainz_album_id_ = q.ValueToString("musicbrainz_album_id");
- d->musicbrainz_original_album_id_ = q.ValueToString("musicbrainz_original_album_id");
- d->musicbrainz_recording_id_ = q.ValueToString("musicbrainz_recording_id");
- d->musicbrainz_track_id_ = q.ValueToString("musicbrainz_track_id");
- d->musicbrainz_disc_id_ = q.ValueToString("musicbrainz_disc_id");
- d->musicbrainz_release_group_id_ = q.ValueToString("musicbrainz_release_group_id");
- d->musicbrainz_work_id_ = q.ValueToString("musicbrainz_work_id");
+ d->musicbrainz_album_artist_id_ = q.ValueToString(QStringLiteral("musicbrainz_album_artist_id"));
+ d->musicbrainz_artist_id_ = q.ValueToString(QStringLiteral("musicbrainz_artist_id"));
+ d->musicbrainz_original_artist_id_ = q.ValueToString(QStringLiteral("musicbrainz_original_artist_id"));
+ d->musicbrainz_album_id_ = q.ValueToString(QStringLiteral("musicbrainz_album_id"));
+ d->musicbrainz_original_album_id_ = q.ValueToString(QStringLiteral("musicbrainz_original_album_id"));
+ d->musicbrainz_recording_id_ = q.ValueToString(QStringLiteral("musicbrainz_recording_id"));
+ d->musicbrainz_track_id_ = q.ValueToString(QStringLiteral("musicbrainz_track_id"));
+ d->musicbrainz_disc_id_ = q.ValueToString(QStringLiteral("musicbrainz_disc_id"));
+ d->musicbrainz_release_group_id_ = q.ValueToString(QStringLiteral("musicbrainz_release_group_id"));
+ d->musicbrainz_work_id_ = q.ValueToString(QStringLiteral("musicbrainz_work_id"));
d->valid_ = true;
d->init_from_file_ = reliable_metadata;
@@ -1475,7 +1475,7 @@ void Song::InitArtAutomatic() {
// Pick the first image file in the album directory.
QFileInfo file(d->url_.toLocalFile());
QDir dir(file.path());
- QStringList files = dir.entryList(QStringList() << "*.jpg" << "*.png" << "*.gif" << "*.jpeg", QDir::Files|QDir::Readable, QDir::Name);
+ QStringList files = dir.entryList(QStringList() << QStringLiteral("*.jpg") << QStringLiteral("*.png") << QStringLiteral("*.gif") << QStringLiteral("*.jpeg"), QDir::Files|QDir::Readable, QDir::Name);
if (files.count() > 0) {
d->art_automatic_ = QUrl::fromLocalFile(file.path() + QDir::separator() + files.first());
}
@@ -1510,7 +1510,7 @@ void Song::InitFromItdb(Itdb_Track *track, const QString &prefix) {
d->source_ = Source::Device;
QString filename = QString::fromLocal8Bit(track->ipod_path);
filename.replace(':', '/');
- if (prefix.contains("://")) {
+ if (prefix.contains(QLatin1String("://"))) {
set_url(QUrl(prefix + filename));
}
else {
@@ -1591,7 +1591,7 @@ void Song::InitFromMTP(const LIBMTP_track_t *track, const QString &host) {
d->composer_ = QString::fromUtf8(track->composer);
d->track_ = track->tracknumber;
- d->url_ = QUrl(QString("mtp://%1/%2").arg(host, QString::number(track->item_id)));
+ d->url_ = QUrl(QStringLiteral("mtp://%1/%2").arg(host, QString::number(track->item_id)));
d->basefilename_ = QString::number(track->item_id);
d->filesize_ = static_cast(track->filesize);
d->mtime_ = track->modificationdate;
@@ -1674,96 +1674,96 @@ void Song::BindToQuery(SqlQuery *query) const {
// Remember to bind these in the same order as kBindSpec
- query->BindStringValue(":title", d->title_);
- query->BindStringValue(":album", d->album_);
- query->BindStringValue(":artist", d->artist_);
- query->BindStringValue(":albumartist", d->albumartist_);
- query->BindIntValue(":track", d->track_);
- query->BindIntValue(":disc", d->disc_);
- query->BindIntValue(":year", d->year_);
- query->BindIntValue(":originalyear", d->originalyear_);
- query->BindStringValue(":genre", d->genre_);
- query->BindBoolValue(":compilation", d->compilation_);
- query->BindStringValue(":composer", d->composer_);
- query->BindStringValue(":performer", d->performer_);
- query->BindStringValue(":grouping", d->grouping_);
- query->BindStringValue(":comment", d->comment_);
- query->BindStringValue(":lyrics", d->lyrics_);
+ query->BindStringValue(QStringLiteral(":title"), d->title_);
+ query->BindStringValue(QStringLiteral(":album"), d->album_);
+ query->BindStringValue(QStringLiteral(":artist"), d->artist_);
+ query->BindStringValue(QStringLiteral(":albumartist"), d->albumartist_);
+ query->BindIntValue(QStringLiteral(":track"), d->track_);
+ query->BindIntValue(QStringLiteral(":disc"), d->disc_);
+ query->BindIntValue(QStringLiteral(":year"), d->year_);
+ query->BindIntValue(QStringLiteral(":originalyear"), d->originalyear_);
+ query->BindStringValue(QStringLiteral(":genre"), d->genre_);
+ query->BindBoolValue(QStringLiteral(":compilation"), d->compilation_);
+ query->BindStringValue(QStringLiteral(":composer"), d->composer_);
+ query->BindStringValue(QStringLiteral(":performer"), d->performer_);
+ query->BindStringValue(QStringLiteral(":grouping"), d->grouping_);
+ query->BindStringValue(QStringLiteral(":comment"), d->comment_);
+ query->BindStringValue(QStringLiteral(":lyrics"), d->lyrics_);
- query->BindStringValue(":artist_id", d->artist_id_);
- query->BindStringValue(":album_id", d->album_id_);
- query->BindStringValue(":song_id", d->song_id_);
+ query->BindStringValue(QStringLiteral(":artist_id"), d->artist_id_);
+ query->BindStringValue(QStringLiteral(":album_id"), d->album_id_);
+ query->BindStringValue(QStringLiteral(":song_id"), d->song_id_);
- query->BindValue(":beginning", d->beginning_);
- query->BindLongLongValue(":length", length_nanosec());
+ query->BindValue(QStringLiteral(":beginning"), d->beginning_);
+ query->BindLongLongValue(QStringLiteral(":length"), length_nanosec());
- query->BindIntValue(":bitrate", d->bitrate_);
- query->BindIntValue(":samplerate", d->samplerate_);
- query->BindIntValue(":bitdepth", d->bitdepth_);
+ query->BindIntValue(QStringLiteral(":bitrate"), d->bitrate_);
+ query->BindIntValue(QStringLiteral(":samplerate"), d->samplerate_);
+ query->BindIntValue(QStringLiteral(":bitdepth"), d->bitdepth_);
- query->BindValue(":source", static_cast(d->source_));
- query->BindNotNullIntValue(":directory_id", d->directory_id_);
- query->BindUrlValue(":url", d->url_);
- query->BindValue(":filetype", static_cast(d->filetype_));
- query->BindLongLongValueOrZero(":filesize", d->filesize_);
- query->BindLongLongValueOrZero(":mtime", d->mtime_);
- query->BindLongLongValueOrZero(":ctime", d->ctime_);
- query->BindBoolValue(":unavailable", d->unavailable_);
+ query->BindValue(QStringLiteral(":source"), static_cast(d->source_));
+ query->BindNotNullIntValue(QStringLiteral(":directory_id"), d->directory_id_);
+ query->BindUrlValue(QStringLiteral(":url"), d->url_);
+ query->BindValue(QStringLiteral(":filetype"), static_cast(d->filetype_));
+ query->BindLongLongValueOrZero(QStringLiteral(":filesize"), d->filesize_);
+ query->BindLongLongValueOrZero(QStringLiteral(":mtime"), d->mtime_);
+ query->BindLongLongValueOrZero(QStringLiteral(":ctime"), d->ctime_);
+ query->BindBoolValue(QStringLiteral(":unavailable"), d->unavailable_);
- query->BindStringValue(":fingerprint", d->fingerprint_);
+ query->BindStringValue(QStringLiteral(":fingerprint"), d->fingerprint_);
- query->BindValue(":playcount", d->playcount_);
- query->BindValue(":skipcount", d->skipcount_);
- query->BindLongLongValue(":lastplayed", d->lastplayed_);
- query->BindLongLongValue(":lastseen", d->lastseen_);
+ query->BindValue(QStringLiteral(":playcount"), d->playcount_);
+ query->BindValue(QStringLiteral(":skipcount"), d->skipcount_);
+ query->BindLongLongValue(QStringLiteral(":lastplayed"), d->lastplayed_);
+ query->BindLongLongValue(QStringLiteral(":lastseen"), d->lastseen_);
- query->BindBoolValue(":compilation_detected", d->compilation_detected_);
- query->BindBoolValue(":compilation_on", d->compilation_on_);
- query->BindBoolValue(":compilation_off", d->compilation_off_);
- query->BindBoolValue(":compilation_effective", is_compilation());
+ query->BindBoolValue(QStringLiteral(":compilation_detected"), d->compilation_detected_);
+ query->BindBoolValue(QStringLiteral(":compilation_on"), d->compilation_on_);
+ query->BindBoolValue(QStringLiteral(":compilation_off"), d->compilation_off_);
+ query->BindBoolValue(QStringLiteral(":compilation_effective"), is_compilation());
- query->BindBoolValue(":art_embedded", d->art_embedded_);
- query->BindUrlValue(":art_automatic", d->art_automatic_);
- query->BindUrlValue(":art_manual", d->art_manual_);
- query->BindBoolValue(":art_unset", d->art_unset_);
+ query->BindBoolValue(QStringLiteral(":art_embedded"), d->art_embedded_);
+ query->BindUrlValue(QStringLiteral(":art_automatic"), d->art_automatic_);
+ query->BindUrlValue(QStringLiteral(":art_manual"), d->art_manual_);
+ query->BindBoolValue(QStringLiteral(":art_unset"), d->art_unset_);
- query->BindStringValue(":effective_albumartist", effective_albumartist());
- query->BindIntValue(":effective_originalyear", effective_originalyear());
+ query->BindStringValue(QStringLiteral(":effective_albumartist"), effective_albumartist());
+ query->BindIntValue(QStringLiteral(":effective_originalyear"), effective_originalyear());
- query->BindValue(":cue_path", d->cue_path_);
+ query->BindValue(QStringLiteral(":cue_path"), d->cue_path_);
- query->BindFloatValue(":rating", d->rating_);
+ query->BindFloatValue(QStringLiteral(":rating"), d->rating_);
- query->BindStringValue(":acoustid_id", d->acoustid_id_);
- query->BindStringValue(":acoustid_fingerprint", d->acoustid_fingerprint_);
+ query->BindStringValue(QStringLiteral(":acoustid_id"), d->acoustid_id_);
+ query->BindStringValue(QStringLiteral(":acoustid_fingerprint"), d->acoustid_fingerprint_);
- query->BindStringValue(":musicbrainz_album_artist_id", d->musicbrainz_album_artist_id_);
- query->BindStringValue(":musicbrainz_artist_id", d->musicbrainz_artist_id_);
- query->BindStringValue(":musicbrainz_original_artist_id", d->musicbrainz_original_artist_id_);
- query->BindStringValue(":musicbrainz_album_id", d->musicbrainz_album_id_);
- query->BindStringValue(":musicbrainz_original_album_id", d->musicbrainz_original_album_id_);
- query->BindStringValue(":musicbrainz_recording_id", d->musicbrainz_recording_id_);
- query->BindStringValue(":musicbrainz_track_id", d->musicbrainz_track_id_);
- query->BindStringValue(":musicbrainz_disc_id", d->musicbrainz_disc_id_);
- query->BindStringValue(":musicbrainz_release_group_id", d->musicbrainz_release_group_id_);
- query->BindStringValue(":musicbrainz_work_id", d->musicbrainz_work_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_album_artist_id"), d->musicbrainz_album_artist_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_artist_id"), d->musicbrainz_artist_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_original_artist_id"), d->musicbrainz_original_artist_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_album_id"), d->musicbrainz_album_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_original_album_id"), d->musicbrainz_original_album_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_recording_id"), d->musicbrainz_recording_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_track_id"), d->musicbrainz_track_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_disc_id"), d->musicbrainz_disc_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_release_group_id"), d->musicbrainz_release_group_id_);
+ query->BindStringValue(QStringLiteral(":musicbrainz_work_id"), d->musicbrainz_work_id_);
- query->BindDoubleOrNullValue(":ebur128_integrated_loudness_lufs", d->ebur128_integrated_loudness_lufs_);
- query->BindDoubleOrNullValue(":ebur128_loudness_range_lu", d->ebur128_loudness_range_lu_);
+ query->BindDoubleOrNullValue(QStringLiteral(":ebur128_integrated_loudness_lufs"), d->ebur128_integrated_loudness_lufs_);
+ query->BindDoubleOrNullValue(QStringLiteral(":ebur128_loudness_range_lu"), d->ebur128_loudness_range_lu_);
}
void Song::BindToFtsQuery(SqlQuery *query) const {
- query->BindValue(":ftstitle", d->title_);
- query->BindValue(":ftsalbum", d->album_);
- query->BindValue(":ftsartist", d->artist_);
- query->BindValue(":ftsalbumartist", d->albumartist_);
- query->BindValue(":ftscomposer", d->composer_);
- query->BindValue(":ftsperformer", d->performer_);
- query->BindValue(":ftsgrouping", d->grouping_);
- query->BindValue(":ftsgenre", d->genre_);
- query->BindValue(":ftscomment", d->comment_);
+ query->BindValue(QStringLiteral(":ftstitle"), d->title_);
+ query->BindValue(QStringLiteral(":ftsalbum"), d->album_);
+ query->BindValue(QStringLiteral(":ftsartist"), d->artist_);
+ query->BindValue(QStringLiteral(":ftsalbumartist"), d->albumartist_);
+ query->BindValue(QStringLiteral(":ftscomposer"), d->composer_);
+ query->BindValue(QStringLiteral(":ftsperformer"), d->performer_);
+ query->BindValue(QStringLiteral(":ftsgrouping"), d->grouping_);
+ query->BindValue(QStringLiteral(":ftsgenre"), d->genre_);
+ query->BindValue(QStringLiteral(":ftscomment"), d->comment_);
}
@@ -1774,23 +1774,23 @@ void Song::ToXesam(QVariantMap *map) const {
using mpris::AddMetadataAsList;
using mpris::AsMPRISDateTimeType;
- AddMetadata("xesam:url", effective_stream_url().toString(), map);
- AddMetadata("xesam:title", PrettyTitle(), map);
- AddMetadataAsList("xesam:artist", artist(), map);
- AddMetadata("xesam:album", album(), map);
- AddMetadataAsList("xesam:albumArtist", albumartist(), map);
- AddMetadata("mpris:length", (length_nanosec() / kNsecPerUsec), map);
- AddMetadata("xesam:trackNumber", track(), map);
- AddMetadataAsList("xesam:genre", genre(), map);
- AddMetadata("xesam:discNumber", disc(), map);
- AddMetadataAsList("xesam:comment", comment(), map);
- AddMetadata("xesam:contentCreated", AsMPRISDateTimeType(ctime()), map);
- AddMetadata("xesam:lastUsed", AsMPRISDateTimeType(lastplayed()), map);
- AddMetadataAsList("xesam:composer", composer(), map);
- AddMetadata("xesam:useCount", static_cast(playcount()), map);
+ AddMetadata(QStringLiteral("xesam:url"), effective_stream_url().toString(), map);
+ AddMetadata(QStringLiteral("xesam:title"), PrettyTitle(), map);
+ AddMetadataAsList(QStringLiteral("xesam:artist"), artist(), map);
+ AddMetadata(QStringLiteral("xesam:album"), album(), map);
+ AddMetadataAsList(QStringLiteral("xesam:albumArtist"), albumartist(), map);
+ AddMetadata(QStringLiteral("mpris:length"), (length_nanosec() / kNsecPerUsec), map);
+ AddMetadata(QStringLiteral("xesam:trackNumber"), track(), map);
+ AddMetadataAsList(QStringLiteral("xesam:genre"), genre(), map);
+ AddMetadata(QStringLiteral("xesam:discNumber"), disc(), map);
+ AddMetadataAsList(QStringLiteral("xesam:comment"), comment(), map);
+ AddMetadata(QStringLiteral("xesam:contentCreated"), AsMPRISDateTimeType(ctime()), map);
+ AddMetadata(QStringLiteral("xesam:lastUsed"), AsMPRISDateTimeType(lastplayed()), map);
+ AddMetadataAsList(QStringLiteral("xesam:composer"), composer(), map);
+ AddMetadata(QStringLiteral("xesam:useCount"), static_cast(playcount()), map);
if (rating() != -1.0) {
- AddMetadata("xesam:userRating", rating(), map);
+ AddMetadata(QStringLiteral("xesam:userRating"), rating(), map);
}
}
@@ -1870,7 +1870,7 @@ void Song::MergeUserSetData(const Song &other, const bool merge_playcount, const
}
QString Song::AlbumKey() const {
- return QString("%1|%2|%3").arg(is_compilation() ? "_compilation" : effective_albumartist(), has_cue() ? cue_path() : "", effective_album());
+ return QStringLiteral("%1|%2|%3").arg(is_compilation() ? QStringLiteral("_compilation") : effective_albumartist(), has_cue() ? cue_path() : QLatin1String(""), effective_album());
}
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
diff --git a/src/core/songloader.cpp b/src/core/songloader.cpp
index 66839c3a..1ded5ff0 100644
--- a/src/core/songloader.cpp
+++ b/src/core/songloader.cpp
@@ -82,15 +82,15 @@ SongLoader::SongLoader(SharedPtr collection_backend,
success_(false) {
if (sRawUriSchemes.isEmpty()) {
- sRawUriSchemes << "udp"
- << "mms"
- << "mmsh"
- << "mmst"
- << "mmsu"
- << "rtsp"
- << "rtspu"
- << "rtspt"
- << "rtsph";
+ sRawUriSchemes << QStringLiteral("udp")
+ << QStringLiteral("mms")
+ << QStringLiteral("mmsh")
+ << QStringLiteral("mmst")
+ << QStringLiteral("mmsu")
+ << QStringLiteral("rtsp")
+ << QStringLiteral("rtspu")
+ << QStringLiteral("rtspt")
+ << QStringLiteral("rtsph");
}
timeout_timer_->setSingleShot(true);
@@ -238,7 +238,7 @@ SongLoader::Result SongLoader::LoadLocal(const QString &filename) {
CollectionQuery query(db, collection_backend_->songs_table(), collection_backend_->fts_table());
query.SetColumnSpec("%songs_table.ROWID, " + Song::kColumnSpec);
- query.AddWhere("url", url.toEncoded());
+ query.AddWhere(QStringLiteral("url"), url.toEncoded());
if (query.Exec() && query.Next()) {
// We may have many results when the file has many sections
@@ -700,7 +700,7 @@ void SongLoader::MagicReady() {
if (parser_->name() == "ASX/INI" && url_.scheme() == "http") {
// This is actually a weird MS-WMSP stream. Changing the protocol to MMS from HTTP makes it playable.
parser_ = nullptr;
- url_.setScheme("mms");
+ url_.setScheme(QStringLiteral("mms"));
StopTypefindAsync(true);
}
diff --git a/src/core/sqlquery.cpp b/src/core/sqlquery.cpp
index a342ad47..e19d77d7 100644
--- a/src/core/sqlquery.cpp
+++ b/src/core/sqlquery.cpp
@@ -38,13 +38,13 @@ void SqlQuery::BindValue(const QString &placeholder, const QVariant &value) {
void SqlQuery::BindStringValue(const QString &placeholder, const QString &value) {
- BindValue(placeholder, value.isNull() ? "" : value);
+ BindValue(placeholder, value.isNull() ? QLatin1String("") : value);
}
void SqlQuery::BindUrlValue(const QString &placeholder, const QUrl &value) {
- BindValue(placeholder, value.isValid() ? value.toString(QUrl::FullyEncoded) : "");
+ BindValue(placeholder, value.isValid() ? value.toString(QUrl::FullyEncoded) : QLatin1String(""));
}
diff --git a/src/core/stylesheetloader.cpp b/src/core/stylesheetloader.cpp
index 0b2ebd1a..ac452931 100644
--- a/src/core/stylesheetloader.cpp
+++ b/src/core/stylesheetloader.cpp
@@ -90,29 +90,29 @@ void StyleSheetLoader::UpdateStyleSheet(QWidget *widget, SharedPtrsetSeparator(true);
- show_cover_ = new QAction(IconLoader::Load("zoom-in"), tr("Show fullsize..."), this);
+ show_cover_ = new QAction(IconLoader::Load(QStringLiteral("zoom-in")), tr("Show fullsize..."), this);
search_cover_auto_ = new QAction(tr("Search automatically"), this);
search_cover_auto_->setCheckable(true);
@@ -230,14 +230,14 @@ QUrl AlbumCoverChoiceController::LoadCoverFromFile(Song *song) {
void AlbumCoverChoiceController::SaveCoverToFileManual(const Song &song, const AlbumCoverImageResult &result) {
- QString initial_file_name = "/";
+ QString initial_file_name = QStringLiteral("/");
if (!song.effective_albumartist().isEmpty()) {
initial_file_name = initial_file_name + song.effective_albumartist();
}
initial_file_name = initial_file_name + "-" + (song.effective_album().isEmpty() ? tr("unknown") : song.effective_album()) + ".jpg";
initial_file_name = initial_file_name.toLower();
- initial_file_name.replace(QRegularExpression("\\s"), "-");
+ initial_file_name.replace(QRegularExpression(QStringLiteral("\\s")), QStringLiteral("-"));
initial_file_name.remove(QRegularExpression(QString(kInvalidFatCharactersRegex), QRegularExpression::CaseInsensitiveOption));
QString save_filename = QFileDialog::getSaveFileName(this, tr("Save album cover"), GetInitialPathForFileDialog(song, initial_file_name), tr(kSaveImageFileFilter) + ";;" + tr(kAllFilesFilter));
@@ -255,7 +255,7 @@ void AlbumCoverChoiceController::SaveCoverToFileManual(const Song &song, const A
fileinfo.setFile(save_filename);
}
- if (result.is_jpeg() && fileinfo.completeSuffix().compare("jpg", Qt::CaseInsensitive) == 0) {
+ if (result.is_jpeg() && fileinfo.completeSuffix().compare(QLatin1String("jpg"), Qt::CaseInsensitive) == 0) {
QFile file(save_filename);
if (!file.open(QIODevice::WriteOnly)) {
qLog(Error) << "Failed to open cover file" << save_filename << "for writing:" << file.errorString();
@@ -655,7 +655,7 @@ QUrl AlbumCoverChoiceController::SaveCoverToFileAutomatic(const Song::Source sou
const AlbumCoverImageResult &result,
const bool force_overwrite) {
- QString filepath = CoverUtils::CoverFilePath(cover_options_, source, artist, album, album_id, album_dir, result.cover_url, "jpg");
+ QString filepath = CoverUtils::CoverFilePath(cover_options_, source, artist, album, album_id, album_dir, result.cover_url, QStringLiteral("jpg"));
if (filepath.isEmpty()) return QUrl();
QFile file(filepath);
@@ -744,7 +744,7 @@ bool AlbumCoverChoiceController::IsKnownImageExtension(const QString &suffix) {
if (!sImageExtensions) {
sImageExtensions = new QSet();
- (*sImageExtensions) << "png" << "jpg" << "jpeg" << "bmp" << "gif" << "xpm" << "pbm" << "pgm" << "ppm" << "xbm";
+ (*sImageExtensions) << QStringLiteral("png") << QStringLiteral("jpg") << QStringLiteral("jpeg") << QStringLiteral("bmp") << QStringLiteral("gif") << QStringLiteral("xpm") << QStringLiteral("pbm") << QStringLiteral("pgm") << QStringLiteral("ppm") << QStringLiteral("xbm");
}
return sImageExtensions->contains(suffix);
diff --git a/src/covermanager/albumcoverexport.cpp b/src/covermanager/albumcoverexport.cpp
index de357958..96b3a256 100644
--- a/src/covermanager/albumcoverexport.cpp
+++ b/src/covermanager/albumcoverexport.cpp
@@ -69,7 +69,7 @@ AlbumCoverExport::DialogResult AlbumCoverExport::Exec() {
if (!result.cancelled_) {
QString fileName = ui_->fileName->text();
if (fileName.isEmpty()) {
- fileName = "cover";
+ fileName = QStringLiteral("cover");
}
OverwriteMode overwrite_mode = ui_->doNotOverwrite->isChecked() ? OverwriteMode::None : (ui_->overwriteAll->isChecked() ? OverwriteMode::All : OverwriteMode::Smaller);
bool forceSize = ui_->forceSize->isChecked();
diff --git a/src/covermanager/albumcoverfetchersearch.cpp b/src/covermanager/albumcoverfetchersearch.cpp
index 7995cab9..2b04a697 100644
--- a/src/covermanager/albumcoverfetchersearch.cpp
+++ b/src/covermanager/albumcoverfetchersearch.cpp
@@ -83,7 +83,7 @@ void AlbumCoverFetcherSearch::TerminateSearch() {
void AlbumCoverFetcherSearch::Start(SharedPtr cover_providers) {
// Ignore Radio Paradise "commercial" break.
- if (request_.artist.compare("commercial-free", Qt::CaseInsensitive) == 0 && request_.title.compare("listener-supported", Qt::CaseInsensitive) == 0) {
+ if (request_.artist.compare(QLatin1String("commercial-free"), Qt::CaseInsensitive) == 0 && request_.title.compare(QLatin1String("listener-supported"), Qt::CaseInsensitive) == 0) {
TerminateSearch();
return;
}
@@ -167,51 +167,51 @@ void AlbumCoverFetcherSearch::ProviderSearchResults(CoverProvider *provider, con
// This is done since we can't match the album titles, and we want to prevent compilation or live albums from being picked before studio albums for streams.
// TODO: Make these regular expressions.
if (request_album.isEmpty() && (
- result_album.contains("hits", Qt::CaseInsensitive) ||
- result_album.contains("greatest", Qt::CaseInsensitive) ||
- result_album.contains("best", Qt::CaseInsensitive) ||
- result_album.contains("collection", Qt::CaseInsensitive) ||
- result_album.contains("classics", Qt::CaseInsensitive) ||
- result_album.contains("singles", Qt::CaseInsensitive) ||
- result_album.contains("bootleg", Qt::CaseInsensitive) ||
- result_album.contains("live", Qt::CaseInsensitive) ||
- result_album.contains("concert", Qt::CaseInsensitive) ||
- result_album.contains("essential", Qt::CaseInsensitive) ||
- result_album.contains("ultimate", Qt::CaseInsensitive) ||
- result_album.contains("karaoke", Qt::CaseInsensitive) ||
- result_album.contains("mixtape", Qt::CaseInsensitive) ||
- result_album.contains("country rock", Qt::CaseInsensitive) ||
- result_album.contains("indie folk", Qt::CaseInsensitive) ||
- result_album.contains("soft rock", Qt::CaseInsensitive) ||
- result_album.contains("folk music", Qt::CaseInsensitive) ||
- result_album.contains("60's rock", Qt::CaseInsensitive) ||
- result_album.contains("60's romance", Qt::CaseInsensitive) ||
- result_album.contains("60s music", Qt::CaseInsensitive) ||
- result_album.contains("late 60s", Qt::CaseInsensitive) ||
- result_album.contains("the 60s", Qt::CaseInsensitive) ||
- result_album.contains("folk and blues", Qt::CaseInsensitive) ||
- result_album.contains("60 from the 60's", Qt::CaseInsensitive) ||
- result_album.contains("classic psychedelic", Qt::CaseInsensitive) ||
- result_album.contains("playlist: acoustic", Qt::CaseInsensitive) ||
- result_album.contains("90's rnb playlist", Qt::CaseInsensitive) ||
- result_album.contains("rock 80s", Qt::CaseInsensitive) ||
- result_album.contains("classic 80s", Qt::CaseInsensitive) ||
- result_album.contains("rock anthems", Qt::CaseInsensitive) ||
- result_album.contains("rock songs", Qt::CaseInsensitive) ||
- result_album.contains("rock 2019", Qt::CaseInsensitive) ||
- result_album.contains("guitar anthems", Qt::CaseInsensitive) ||
- result_album.contains("driving anthems", Qt::CaseInsensitive) ||
- result_album.contains("traffic jam jams", Qt::CaseInsensitive) ||
- result_album.contains("perfect background music", Qt::CaseInsensitive) ||
- result_album.contains("70's gold", Qt::CaseInsensitive) ||
- result_album.contains("rockfluence", Qt::CaseInsensitive) ||
- result_album.contains("acoustic dinner accompaniment", Qt::CaseInsensitive) ||
- result_album.contains("complete studio albums", Qt::CaseInsensitive) ||
- result_album.contains("mellow rock", Qt::CaseInsensitive)
+ result_album.contains(QLatin1String("hits"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("greatest"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("best"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("collection"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("classics"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("singles"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("bootleg"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("live"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("concert"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("essential"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("ultimate"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("karaoke"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("mixtape"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("country rock"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("indie folk"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("soft rock"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("folk music"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("60's rock"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("60's romance"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("60s music"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("late 60s"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("the 60s"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("folk and blues"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("60 from the 60's"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("classic psychedelic"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("playlist: acoustic"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("90's rnb playlist"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("rock 80s"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("classic 80s"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("rock anthems"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("rock songs"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("rock 2019"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("guitar anthems"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("driving anthems"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("traffic jam jams"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("perfect background music"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("70's gold"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("rockfluence"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("acoustic dinner accompaniment"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("complete studio albums"), Qt::CaseInsensitive) ||
+ result_album.contains(QLatin1String("mellow rock"), Qt::CaseInsensitive)
)) {
results_copy[i].score_match -= 1;
}
- else if (request_album.isEmpty() && result_album.contains("soundtrack", Qt::CaseInsensitive)) {
+ else if (request_album.isEmpty() && result_album.contains(QLatin1String("soundtrack"), Qt::CaseInsensitive)) {
results_copy[i].score_match -= 0.5;
}
diff --git a/src/covermanager/albumcoverloaderoptions.cpp b/src/covermanager/albumcoverloaderoptions.cpp
index 163ba418..2a0826a7 100644
--- a/src/covermanager/albumcoverloaderoptions.cpp
+++ b/src/covermanager/albumcoverloaderoptions.cpp
@@ -35,7 +35,7 @@ AlbumCoverLoaderOptions::Types AlbumCoverLoaderOptions::LoadTypes() {
QSettings s;
s.beginGroup(CoversSettingsPage::kSettingsGroup);
- const QStringList all_cover_types = QStringList() << "art_unset" << "art_embedded" << "art_manual" << "art_automatic";
+ const QStringList all_cover_types = QStringList() << QStringLiteral("art_unset") << QStringLiteral("art_embedded") << QStringLiteral("art_manual") << QStringLiteral("art_automatic");
const QStringList cover_types_strlist = s.value(CoversSettingsPage::kTypes, all_cover_types).toStringList();
for (const QString &cover_type_str : cover_types_strlist) {
if (cover_type_str == "art_unset") {
diff --git a/src/covermanager/albumcovermanager.cpp b/src/covermanager/albumcovermanager.cpp
index 467e9c9d..9c752131 100644
--- a/src/covermanager/albumcovermanager.cpp
+++ b/src/covermanager/albumcovermanager.cpp
@@ -112,8 +112,8 @@ AlbumCoverManager::AlbumCoverManager(Application *app, SharedPtralbums->set_cover_manager(this);
// Icons
- ui_->action_fetch->setIcon(IconLoader::Load("download"));
- ui_->export_covers->setIcon(IconLoader::Load("document-save"));
- ui_->view->setIcon(IconLoader::Load("view-choose"));
- ui_->button_fetch->setIcon(IconLoader::Load("download"));
- ui_->action_add_to_playlist->setIcon(IconLoader::Load("media-playback-start"));
- ui_->action_load->setIcon(IconLoader::Load("media-playback-start"));
+ ui_->action_fetch->setIcon(IconLoader::Load(QStringLiteral("download")));
+ ui_->export_covers->setIcon(IconLoader::Load(QStringLiteral("document-save")));
+ ui_->view->setIcon(IconLoader::Load(QStringLiteral("view-choose")));
+ ui_->button_fetch->setIcon(IconLoader::Load(QStringLiteral("download")));
+ ui_->action_add_to_playlist->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
+ ui_->action_load->setIcon(IconLoader::Load(QStringLiteral("media-playback-start")));
album_cover_choice_controller_->Init(app_);
@@ -877,12 +877,12 @@ SongList AlbumCoverManager::GetSongsInAlbum(const QModelIndex &idx) const {
CollectionQuery q(db, collection_backend_->songs_table(), collection_backend_->fts_table());
q.SetColumnSpec("ROWID," + Song::kColumnSpec);
- q.AddWhere("album", idx.data(Role_Album).toString());
- q.SetOrderBy("disc, track, title");
+ q.AddWhere(QStringLiteral("album"), idx.data(Role_Album).toString());
+ q.SetOrderBy(QStringLiteral("disc, track, title"));
QString albumartist = idx.data(Role_AlbumArtist).toString();
if (!albumartist.isEmpty()) {
- q.AddWhere("effective_albumartist", albumartist);
+ q.AddWhere(QStringLiteral("effective_albumartist"), albumartist);
}
q.AddCompilationRequirement(albumartist.isEmpty());
diff --git a/src/covermanager/coverexportrunnable.cpp b/src/covermanager/coverexportrunnable.cpp
index 6857a976..050af0fe 100644
--- a/src/covermanager/coverexportrunnable.cpp
+++ b/src/covermanager/coverexportrunnable.cpp
@@ -76,7 +76,7 @@ void CoverExportRunnable::ProcessAndExportCover() {
if (song_.art_embedded() && dialog_result_.export_embedded_) {
image = TagReaderClient::Instance()->LoadEmbeddedArtAsImageBlocking(song_.url().toLocalFile());
if (!image.isNull()) {
- extension = "jpg";
+ extension = QStringLiteral("jpg");
}
}
break;
@@ -111,7 +111,7 @@ void CoverExportRunnable::ProcessAndExportCover() {
}
QString cover_dir = song_.url().toLocalFile().section('/', 0, -2);
- QString new_file = cover_dir + '/' + dialog_result_.filename_ + '.' + (song_.art_embedded() ? "jpg" : extension);
+ QString new_file = cover_dir + '/' + dialog_result_.filename_ + '.' + (song_.art_embedded() ? QStringLiteral("jpg") : extension);
// If the file exists, do not override!
if (dialog_result_.overwrite_ == AlbumCoverExport::OverwriteMode::None && QFile::exists(new_file)) {
@@ -169,7 +169,7 @@ void CoverExportRunnable::ExportCover() {
image = TagReaderClient::Instance()->LoadEmbeddedArtAsImageBlocking(song_.url().toLocalFile());
if (!image.isNull()) {
embedded_cover = true;
- extension = "jpg";
+ extension = QStringLiteral("jpg");
}
}
break;
diff --git a/src/covermanager/coverfromurldialog.cpp b/src/covermanager/coverfromurldialog.cpp
index ffb45505..d97e57c9 100644
--- a/src/covermanager/coverfromurldialog.cpp
+++ b/src/covermanager/coverfromurldialog.cpp
@@ -56,7 +56,7 @@ CoverFromURLDialog::~CoverFromURLDialog() {
AlbumCoverImageResult CoverFromURLDialog::Exec() {
// reset state
- ui_->url->setText("");
+ ui_->url->setText(QLatin1String(""));
last_album_cover_ = AlbumCoverImageResult();
QClipboard *clipboard = QApplication::clipboard();
diff --git a/src/covermanager/coversearchstatistics.cpp b/src/covermanager/coversearchstatistics.cpp
index 824a7371..2ad4d4b4 100644
--- a/src/covermanager/coversearchstatistics.cpp
+++ b/src/covermanager/coversearchstatistics.cpp
@@ -60,7 +60,7 @@ CoverSearchStatistics &CoverSearchStatistics::operator+=(const CoverSearchStatis
QString CoverSearchStatistics::AverageDimensions() const {
if (chosen_images_ == 0) {
- return "0x0";
+ return QStringLiteral("0x0");
}
return QString::number(chosen_width_ / chosen_images_) + "x" + QString::number(chosen_height_ / chosen_images_);
diff --git a/src/covermanager/coversearchstatisticsdialog.cpp b/src/covermanager/coversearchstatisticsdialog.cpp
index b30d94e5..0b553967 100644
--- a/src/covermanager/coversearchstatisticsdialog.cpp
+++ b/src/covermanager/coversearchstatisticsdialog.cpp
@@ -79,7 +79,7 @@ void CoverSearchStatisticsDialog::Show(const CoverSearchStatistics &statistics)
AddLine(tr("Total network requests made"), QString::number(statistics.network_requests_made_));
AddLine(tr("Average image size"), statistics.AverageDimensions());
- AddLine(tr("Total bytes transferred"), statistics.bytes_transferred_ > 0 ? Utilities::PrettySize(statistics.bytes_transferred_) : "0 bytes");
+ AddLine(tr("Total bytes transferred"), statistics.bytes_transferred_ > 0 ? Utilities::PrettySize(statistics.bytes_transferred_) : QStringLiteral("0 bytes"));
details_layout_->addStretch();
diff --git a/src/covermanager/currentalbumcoverloader.cpp b/src/covermanager/currentalbumcoverloader.cpp
index 7667ffa5..5f5a97ee 100644
--- a/src/covermanager/currentalbumcoverloader.cpp
+++ b/src/covermanager/currentalbumcoverloader.cpp
@@ -46,7 +46,7 @@ CurrentAlbumCoverLoader::CurrentAlbumCoverLoader(Application *app, QObject *pare
options_.options = AlbumCoverLoaderOptions::Option::RawImageData | AlbumCoverLoaderOptions::Option::OriginalImage | AlbumCoverLoaderOptions::Option::ScaledImage;
options_.desired_scaled_size = QSize(120, 120);
- options_.default_cover = ":/pictures/cdcase.png";
+ options_.default_cover = QStringLiteral(":/pictures/cdcase.png");
QObject::connect(&*app_->playlist_manager(), &PlaylistManager::CurrentSongChanged, this, &CurrentAlbumCoverLoader::LoadAlbumCover);
QObject::connect(&*app_->album_cover_loader(), &AlbumCoverLoader::AlbumCoverLoaded, this, &CurrentAlbumCoverLoader::AlbumCoverReady);
diff --git a/src/covermanager/deezercoverprovider.cpp b/src/covermanager/deezercoverprovider.cpp
index ebc902cd..82a0967b 100644
--- a/src/covermanager/deezercoverprovider.cpp
+++ b/src/covermanager/deezercoverprovider.cpp
@@ -51,7 +51,7 @@ const char *DeezerCoverProvider::kApiUrl = "https://api.deezer.com";
const int DeezerCoverProvider::kLimit = 10;
DeezerCoverProvider::DeezerCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Deezer", true, false, 2.0, true, true, app, network, parent) {}
+ : JsonCoverProvider(QStringLiteral("Deezer"), true, false, 2.0, true, true, app, network, parent) {}
DeezerCoverProvider::~DeezerCoverProvider() {
@@ -71,12 +71,12 @@ bool DeezerCoverProvider::StartSearch(const QString &artist, const QString &albu
QString resource;
QString query = artist;
if (album.isEmpty() && !title.isEmpty()) {
- resource = "search/track";
+ resource = QStringLiteral("search/track");
if (!query.isEmpty()) query.append(" ");
query.append(title);
}
else {
- resource = "search/album";
+ resource = QStringLiteral("search/album");
if (!album.isEmpty()) {
if (!query.isEmpty()) query.append(" ");
query.append(album);
@@ -92,7 +92,7 @@ bool DeezerCoverProvider::StartSearch(const QString &artist, const QString &albu
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(kApiUrl + QString("/") + resource);
+ QUrl url(kApiUrl + QStringLiteral("/") + resource);
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -116,7 +116,7 @@ QByteArray DeezerCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- QString error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ QString error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
Error(error);
}
else {
@@ -127,22 +127,22 @@ QByteArray DeezerCoverProvider::GetReplyData(QNetworkReply *reply) {
QString error;
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (json_obj.contains("error")) {
- QJsonValue value_error = json_obj["error"];
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue value_error = json_obj[QStringLiteral("error")];
if (value_error.isObject()) {
QJsonObject obj_error = value_error.toObject();
- int code = obj_error["code"].toInt();
- QString message = obj_error["message"].toString();
- error = QString("%1 (%2)").arg(message).arg(code);
+ int code = obj_error[QStringLiteral("code")].toInt();
+ QString message = obj_error[QStringLiteral("message")].toString();
+ error = QStringLiteral("%1 (%2)").arg(message).arg(code);
}
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -159,27 +159,27 @@ QJsonValue DeezerCoverProvider::ExtractData(const QByteArray &data) {
QJsonObject json_obj = ExtractJsonObj(data);
if (json_obj.isEmpty()) return QJsonObject();
- if (json_obj.contains("error")) {
- QJsonValue value_error = json_obj["error"];
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue value_error = json_obj[QStringLiteral("error")];
if (!value_error.isObject()) {
- Error("Error missing object", json_obj);
+ Error(QStringLiteral("Error missing object"), json_obj);
return QJsonValue();
}
QJsonObject obj_error = value_error.toObject();
- const int code = obj_error["code"].toInt();
- QString message = obj_error["message"].toString();
- Error(QString("%1 (%2)").arg(message).arg(code));
+ const int code = obj_error[QStringLiteral("code")].toInt();
+ QString message = obj_error[QStringLiteral("message")].toString();
+ Error(QStringLiteral("%1 (%2)").arg(message).arg(code));
return QJsonValue();
}
- if (!json_obj.contains("data") && !json_obj.contains("DATA")) {
- Error("Json reply object is missing data.", json_obj);
+ if (!json_obj.contains(QStringLiteral("data")) && !json_obj.contains(QStringLiteral("DATA"))) {
+ Error(QStringLiteral("Json reply object is missing data."), json_obj);
return QJsonValue();
}
QJsonValue value_data;
- if (json_obj.contains("data")) value_data = json_obj["data"];
- else value_data = json_obj["DATA"];
+ if (json_obj.contains(QStringLiteral("data"))) value_data = json_obj[QStringLiteral("data")];
+ else value_data = json_obj[QStringLiteral("DATA")];
return value_data;
@@ -215,63 +215,63 @@ void DeezerCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
for (const QJsonValueRef json_value : array_data) {
if (!json_value.isObject()) {
- Error("Invalid Json reply, data array value is not a object.");
+ Error(QStringLiteral("Invalid Json reply, data array value is not a object."));
continue;
}
QJsonObject json_obj = json_value.toObject();
QJsonObject obj_album;
- if (json_obj.contains("album") && json_obj["album"].isObject()) { // Song search, so extract the album.
- obj_album = json_obj["album"].toObject();
+ if (json_obj.contains(QStringLiteral("album")) && json_obj[QStringLiteral("album")].isObject()) { // Song search, so extract the album.
+ obj_album = json_obj[QStringLiteral("album")].toObject();
}
else {
obj_album = json_obj;
}
- if (!json_obj.contains("id") || !obj_album.contains("id")) {
- Error("Invalid Json reply, data array value object is missing ID.", json_obj);
+ if (!json_obj.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("id"))) {
+ Error(QStringLiteral("Invalid Json reply, data array value object is missing ID."), json_obj);
continue;
}
- if (!obj_album.contains("type")) {
- Error("Invalid Json reply, data array value album object is missing type.", obj_album);
+ if (!obj_album.contains(QStringLiteral("type"))) {
+ Error(QStringLiteral("Invalid Json reply, data array value album object is missing type."), obj_album);
continue;
}
- QString type = obj_album["type"].toString();
+ QString type = obj_album[QStringLiteral("type")].toString();
if (type != "album") {
- Error("Invalid Json reply, data array value album object has incorrect type returned", obj_album);
+ Error(QStringLiteral("Invalid Json reply, data array value album object has incorrect type returned"), obj_album);
continue;
}
- if (!json_obj.contains("artist")) {
- Error("Invalid Json reply, data array value object is missing artist.", json_obj);
+ if (!json_obj.contains(QStringLiteral("artist"))) {
+ Error(QStringLiteral("Invalid Json reply, data array value object is missing artist."), json_obj);
continue;
}
- QJsonValue value_artist = json_obj["artist"];
+ QJsonValue value_artist = json_obj[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, data array value artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, data array value artist is not a object."), value_artist);
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("name")) {
- Error("Invalid Json reply, data array value artist object is missing name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, data array value artist object is missing name."), obj_artist);
continue;
}
- QString artist = obj_artist["name"].toString();
+ QString artist = obj_artist[QStringLiteral("name")].toString();
- if (!obj_album.contains("title")) {
- Error("Invalid Json reply, data array value album object is missing title.", obj_album);
+ if (!obj_album.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Invalid Json reply, data array value album object is missing title."), obj_album);
continue;
}
- QString album = obj_album["title"].toString();
+ QString album = obj_album[QStringLiteral("title")].toString();
CoverProviderSearchResult cover_result;
cover_result.artist = artist;
cover_result.album = Song::AlbumRemoveDiscMisc(album);
bool have_cover = false;
- QList> cover_sizes = QList>() << qMakePair(QString("cover_xl"), QSize(1000, 1000))
- << qMakePair(QString("cover_big"), QSize(500, 500));
+ QList> cover_sizes = QList>() << qMakePair(QStringLiteral("cover_xl"), QSize(1000, 1000))
+ << qMakePair(QStringLiteral("cover_big"), QSize(500, 500));
for (const QPair &cover_size : cover_sizes) {
if (!obj_album.contains(cover_size.first)) continue;
QString cover = obj_album[cover_size.first].toString();
@@ -289,7 +289,7 @@ void DeezerCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
}
if (!have_cover) {
- Error("Invalid Json reply, data array value album object is missing cover.", obj_album);
+ Error(QStringLiteral("Invalid Json reply, data array value album object is missing cover."), obj_album);
}
}
diff --git a/src/covermanager/discogscoverprovider.cpp b/src/covermanager/discogscoverprovider.cpp
index df2928ef..d519d1fc 100644
--- a/src/covermanager/discogscoverprovider.cpp
+++ b/src/covermanager/discogscoverprovider.cpp
@@ -58,7 +58,7 @@ const char *DiscogsCoverProvider::kSecretKeyB64 = "ZkFIcmlaSER4aHhRSlF2U3d0bm5ZV
const int DiscogsCoverProvider::kRequestsDelay = 1000;
DiscogsCoverProvider::DiscogsCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Discogs", false, false, 0.0, false, false, app, network, parent),
+ : JsonCoverProvider(QStringLiteral("Discogs"), false, false, 0.0, false, false, app, network, parent),
timer_flush_requests_(new QTimer(this)) {
timer_flush_requests_->setInterval(kRequestsDelay);
@@ -163,11 +163,11 @@ QNetworkReply *DiscogsCoverProvider::CreateRequest(QUrl url, const ParamList &pa
url.setQuery(url_query);
// Sign the request
- const QByteArray data_to_sign = QString("GET\n%1\n%2\n%3").arg(url.host(), url.path(), query_items.join("&")).toUtf8();
+ const QByteArray data_to_sign = QStringLiteral("GET\n%1\n%2\n%3").arg(url.host(), url.path(), query_items.join(QStringLiteral("&"))).toUtf8();
const QByteArray signature(Utilities::HmacSha256(QByteArray::fromBase64(kSecretKeyB64), data_to_sign));
// Add the signature to the request
- url_query.addQueryItem("Signature", QUrl::toPercentEncoding(signature.toBase64()));
+ url_query.addQueryItem(QStringLiteral("Signature"), QUrl::toPercentEncoding(signature.toBase64()));
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -190,7 +190,7 @@ QByteArray DiscogsCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- QString error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ QString error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
Error(error);
}
else {
@@ -201,16 +201,16 @@ QByteArray DiscogsCoverProvider::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (json_obj.contains("message")) {
- error = json_obj["message"].toString();
+ if (json_obj.contains(QStringLiteral("message"))) {
+ error = json_obj[QStringLiteral("message")].toString();
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -245,23 +245,23 @@ void DiscogsCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
}
QJsonValue value_results;
- if (json_obj.contains("results")) {
- value_results = json_obj["results"];
+ if (json_obj.contains(QStringLiteral("results"))) {
+ value_results = json_obj[QStringLiteral("results")];
}
- else if (json_obj.contains("message")) {
- QString message = json_obj["message"].toString();
- Error(QString("%1").arg(message));
+ else if (json_obj.contains(QStringLiteral("message"))) {
+ QString message = json_obj[QStringLiteral("message")].toString();
+ Error(QStringLiteral("%1").arg(message));
EndSearch(search);
return;
}
else {
- Error("Json object is missing results.", json_obj);
+ Error(QStringLiteral("Json object is missing results."), json_obj);
EndSearch(search);
return;
}
if (!value_results.isArray()) {
- Error("Missing results array.", value_results);
+ Error(QStringLiteral("Missing results array."), value_results);
EndSearch(search);
return;
}
@@ -270,20 +270,20 @@ void DiscogsCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id)
for (QJsonValueRef value_result : array_results) {
if (!value_result.isObject()) {
- Error("Invalid Json reply, results value is not a object.");
+ Error(QStringLiteral("Invalid Json reply, results value is not a object."));
continue;
}
QJsonObject obj_result = value_result.toObject();
- if (!obj_result.contains("id") || !obj_result.contains("title") || !obj_result.contains("resource_url")) {
- Error("Invalid Json reply, results value object is missing ID, title or resource_url.", obj_result);
+ if (!obj_result.contains(QStringLiteral("id")) || !obj_result.contains(QStringLiteral("title")) || !obj_result.contains(QStringLiteral("resource_url"))) {
+ Error(QStringLiteral("Invalid Json reply, results value object is missing ID, title or resource_url."), obj_result);
continue;
}
- quint64 release_id = obj_result["id"].toInt();
- QUrl resource_url(obj_result["resource_url"].toString());
- QString title = obj_result["title"].toString();
+ quint64 release_id = obj_result[QStringLiteral("id")].toInt();
+ QUrl resource_url(obj_result[QStringLiteral("resource_url")].toString());
+ QString title = obj_result[QStringLiteral("title")].toString();
- if (title.contains(" - ")) {
- QStringList title_splitted = title.split(" - ");
+ if (title.contains(QLatin1String(" - "))) {
+ QStringList title_splitted = title.split(QStringLiteral(" - "));
if (title_splitted.count() == 2) {
QString artist = title_splitted.first();
title = title_splitted.last();
@@ -354,20 +354,20 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
return;
}
- if (!json_obj.contains("artists") || !json_obj.contains("title")) {
- Error("Json reply object is missing artists or title.", json_obj);
+ if (!json_obj.contains(QStringLiteral("artists")) || !json_obj.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Json reply object is missing artists or title."), json_obj);
EndSearch(search, release.id);
return;
}
- if (!json_obj.contains("images")) {
+ if (!json_obj.contains(QStringLiteral("images"))) {
EndSearch(search, release.id);
return;
}
- QJsonValue value_artists = json_obj["artists"];
+ QJsonValue value_artists = json_obj[QStringLiteral("artists")];
if (!value_artists.isArray()) {
- Error("Json reply object artists is not a array.", value_artists);
+ Error(QStringLiteral("Json reply object artists is not a array."), value_artists);
EndSearch(search, release.id);
return;
}
@@ -376,15 +376,15 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
QString artist;
for (const QJsonValueRef value_artist : array_artists) {
if (!value_artist.isObject()) {
- Error("Invalid Json reply, atists array value is not a object.");
+ Error(QStringLiteral("Invalid Json reply, atists array value is not a object."));
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("name")) {
- Error("Invalid Json reply, artists array value object is missing name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, artists array value object is missing name."), obj_artist);
continue;
}
- artist = obj_artist["name"].toString();
+ artist = obj_artist[QStringLiteral("name")].toString();
++i;
if (artist == search->artist) break;
}
@@ -393,24 +393,24 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
EndSearch(search, release.id);
return;
}
- if (i > 1 && artist != search->artist) artist = "Various artists";
+ if (i > 1 && artist != search->artist) artist = QStringLiteral("Various artists");
- QString album = json_obj["title"].toString();
+ QString album = json_obj[QStringLiteral("title")].toString();
if (artist != search->artist && album != search->album) {
EndSearch(search, release.id);
return;
}
- QJsonValue value_images = json_obj["images"];
+ QJsonValue value_images = json_obj[QStringLiteral("images")];
if (!value_images.isArray()) {
- Error("Json images is not an array.");
+ Error(QStringLiteral("Json images is not an array."));
EndSearch(search, release.id);
return;
}
QJsonArray array_images = value_images.toArray();
if (array_images.isEmpty()) {
- Error("Invalid Json reply, images array is empty.");
+ Error(QStringLiteral("Invalid Json reply, images array is empty."));
EndSearch(search, release.id);
return;
}
@@ -418,27 +418,27 @@ void DiscogsCoverProvider::HandleReleaseReply(QNetworkReply *reply, const int se
for (const QJsonValueRef value_image : array_images) {
if (!value_image.isObject()) {
- Error("Invalid Json reply, images array value is not an object.");
+ Error(QStringLiteral("Invalid Json reply, images array value is not an object."));
continue;
}
QJsonObject obj_image = value_image.toObject();
- if (!obj_image.contains("type") || !obj_image.contains("resource_url") || !obj_image.contains("width") || !obj_image.contains("height")) {
- Error("Invalid Json reply, images array value object is missing type, resource_url, width or height.", obj_image);
+ if (!obj_image.contains(QStringLiteral("type")) || !obj_image.contains(QStringLiteral("resource_url")) || !obj_image.contains(QStringLiteral("width")) || !obj_image.contains(QStringLiteral("height"))) {
+ Error(QStringLiteral("Invalid Json reply, images array value object is missing type, resource_url, width or height."), obj_image);
continue;
}
- QString type = obj_image["type"].toString();
+ QString type = obj_image[QStringLiteral("type")].toString();
if (type != "primary") {
continue;
}
- int width = obj_image["width"].toInt();
- int height = obj_image["height"].toInt();
+ int width = obj_image[QStringLiteral("width")].toInt();
+ int height = obj_image[QStringLiteral("height")].toInt();
if (width < 300 || height < 300) continue;
const float aspect_score = static_cast(1.0) - static_cast(std::max(width, height) - std::min(width, height)) / static_cast(std::max(height, width));
if (aspect_score < 0.85) continue;
CoverProviderSearchResult result;
result.artist = artist;
result.album = album;
- result.image_url = QUrl(obj_image["resource_url"].toString());
+ result.image_url = QUrl(obj_image[QStringLiteral("resource_url")].toString());
if (result.image_url.isEmpty()) continue;
search->results.append(result);
}
diff --git a/src/covermanager/jsoncoverprovider.cpp b/src/covermanager/jsoncoverprovider.cpp
index 4ac98c62..5ec3d5db 100644
--- a/src/covermanager/jsoncoverprovider.cpp
+++ b/src/covermanager/jsoncoverprovider.cpp
@@ -40,23 +40,23 @@ QJsonObject JsonCoverProvider::ExtractJsonObj(const QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error(QString("Failed to parse json data: %1").arg(json_error.errorString()));
+ Error(QStringLiteral("Failed to parse json data: %1").arg(json_error.errorString()));
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", data);
+ Error(QStringLiteral("Received empty Json document."), data);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
return QJsonObject();
}
diff --git a/src/covermanager/lastfmcoverprovider.cpp b/src/covermanager/lastfmcoverprovider.cpp
index 2b5b44da..ce1a97d5 100644
--- a/src/covermanager/lastfmcoverprovider.cpp
+++ b/src/covermanager/lastfmcoverprovider.cpp
@@ -51,7 +51,7 @@ const char *LastFmCoverProvider::kApiKey = "211990b4c96782c05d1536e7219eb56e";
const char *LastFmCoverProvider::kSecret = "80fd738f49596e9709b1bf9319c444a8";
LastFmCoverProvider::LastFmCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Last.fm", true, false, 1.0, true, false, app, network, parent) {}
+ : JsonCoverProvider(QStringLiteral("Last.fm"), true, false, 1.0, true, false, app, network, parent) {}
LastFmCoverProvider::~LastFmCoverProvider() {
@@ -72,14 +72,14 @@ bool LastFmCoverProvider::StartSearch(const QString &artist, const QString &albu
QString type;
QString query = artist;
if (album.isEmpty() && !title.isEmpty()) {
- method = "track.search";
- type = "track";
+ method = QStringLiteral("track.search");
+ type = QStringLiteral("track");
if (!query.isEmpty()) query.append(" ");
query.append(title);
}
else {
- method = "album.search";
- type = "album";
+ method = QStringLiteral("album.search");
+ type = QStringLiteral("album");
if (!album.isEmpty()) {
if (!query.isEmpty()) query.append(" ");
query.append(album);
@@ -104,8 +104,8 @@ bool LastFmCoverProvider::StartSearch(const QString &artist, const QString &albu
QByteArray const digest = QCryptographicHash::hash(data_to_sign.toUtf8(), QCryptographicHash::Md5);
QString signature = QString::fromLatin1(digest.toHex()).rightJustified(32, '0').toLower();
- url_query.addQueryItem(QUrl::toPercentEncoding("api_sig"), QUrl::toPercentEncoding(signature));
- url_query.addQueryItem(QUrl::toPercentEncoding("format"), QUrl::toPercentEncoding("json"));
+ url_query.addQueryItem(QUrl::toPercentEncoding(QStringLiteral("api_sig")), QUrl::toPercentEncoding(signature));
+ url_query.addQueryItem(QUrl::toPercentEncoding(QStringLiteral("format")), QUrl::toPercentEncoding(QStringLiteral("json")));
QUrl url(kUrl);
QNetworkRequest req(url);
@@ -141,31 +141,31 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
}
QJsonValue value_results;
- if (json_obj.contains("results")) {
- value_results = json_obj["results"];
+ if (json_obj.contains(QStringLiteral("results"))) {
+ value_results = json_obj[QStringLiteral("results")];
}
- else if (json_obj.contains("error") && json_obj.contains("message")) {
- int error = json_obj["error"].toInt();
- QString message = json_obj["message"].toString();
- Error(QString("Error: %1: %2").arg(QString::number(error), message));
+ else if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
+ int error = json_obj[QStringLiteral("error")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ Error(QStringLiteral("Error: %1: %2").arg(QString::number(error), message));
emit SearchFinished(id, results);
return;
}
else {
- Error(QString("Json reply is missing results."), json_obj);
+ Error(QStringLiteral("Json reply is missing results."), json_obj);
emit SearchFinished(id, results);
return;
}
if (!value_results.isObject()) {
- Error("Json results is not a object.", value_results);
+ Error(QStringLiteral("Json results is not a object."), value_results);
emit SearchFinished(id, results);
return;
}
QJsonObject obj_results = value_results.toObject();
if (obj_results.isEmpty()) {
- Error("Json results object is empty.", value_results);
+ Error(QStringLiteral("Json results object is empty."), value_results);
emit SearchFinished(id, results);
return;
}
@@ -173,49 +173,49 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
QJsonValue value_matches;
if (type == "album") {
- if (obj_results.contains("albummatches")) {
- value_matches = obj_results["albummatches"];
+ if (obj_results.contains(QStringLiteral("albummatches"))) {
+ value_matches = obj_results[QStringLiteral("albummatches")];
}
else {
- Error("Json results object is missing albummatches.", obj_results);
+ Error(QStringLiteral("Json results object is missing albummatches."), obj_results);
emit SearchFinished(id, results);
return;
}
}
else if (type == "track") {
- if (obj_results.contains("trackmatches")) {
- value_matches = obj_results["trackmatches"];
+ if (obj_results.contains(QStringLiteral("trackmatches"))) {
+ value_matches = obj_results[QStringLiteral("trackmatches")];
}
else {
- Error("Json results object is missing trackmatches.", obj_results);
+ Error(QStringLiteral("Json results object is missing trackmatches."), obj_results);
emit SearchFinished(id, results);
return;
}
}
if (!value_matches.isObject()) {
- Error("Json albummatches or trackmatches is not an object.", value_matches);
+ Error(QStringLiteral("Json albummatches or trackmatches is not an object."), value_matches);
emit SearchFinished(id, results);
return;
}
QJsonObject obj_matches = value_matches.toObject();
if (obj_matches.isEmpty()) {
- Error("Json albummatches or trackmatches object is empty.", value_matches);
+ Error(QStringLiteral("Json albummatches or trackmatches object is empty."), value_matches);
emit SearchFinished(id, results);
return;
}
QJsonValue value_type;
if (!obj_matches.contains(type)) {
- Error(QString("Json object is missing %1.").arg(type), obj_matches);
+ Error(QStringLiteral("Json object is missing %1.").arg(type), obj_matches);
emit SearchFinished(id, results);
return;
}
value_type = obj_matches[type];
if (!value_type.isArray()) {
- Error("Json album value in albummatches object is not an array.", value_type);
+ Error(QStringLiteral("Json album value in albummatches object is not an array."), value_type);
emit SearchFinished(id, results);
return;
}
@@ -224,23 +224,23 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
for (const QJsonValueRef value : array_type) {
if (!value.isObject()) {
- Error("Invalid Json reply, value in albummatches/trackmatches array is not a object.");
+ Error(QStringLiteral("Invalid Json reply, value in albummatches/trackmatches array is not a object."));
continue;
}
QJsonObject obj = value.toObject();
- if (!obj.contains("artist") || !obj.contains("image") || !obj.contains("name")) {
- Error("Invalid Json reply, album is missing artist, image or name.", obj);
+ if (!obj.contains(QStringLiteral("artist")) || !obj.contains(QStringLiteral("image")) || !obj.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, album is missing artist, image or name."), obj);
continue;
}
- QString artist = obj["artist"].toString();
+ QString artist = obj[QStringLiteral("artist")].toString();
QString album;
if (type == "album") {
- album = obj["name"].toString();
+ album = obj[QStringLiteral("name")].toString();
}
- QJsonValue json_image = obj["image"];
+ QJsonValue json_image = obj[QStringLiteral("image")];
if (!json_image.isArray()) {
- Error("Invalid Json reply, album image is not a array.", json_image);
+ Error(QStringLiteral("Invalid Json reply, album image is not a array."), json_image);
continue;
}
QJsonArray array_image = json_image.toArray();
@@ -248,17 +248,17 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
LastFmImageSize image_size_use(LastFmImageSize::Unknown);
for (const QJsonValueRef value_image : array_image) {
if (!value_image.isObject()) {
- Error("Invalid Json reply, album image value is not an object.");
+ Error(QStringLiteral("Invalid Json reply, album image value is not an object."));
continue;
}
QJsonObject obj_image = value_image.toObject();
- if (!obj_image.contains("#text") || !obj_image.contains("size")) {
- Error("Invalid Json reply, album image value is missing #text or size.", obj_image);
+ if (!obj_image.contains(QStringLiteral("#text")) || !obj_image.contains(QStringLiteral("size"))) {
+ Error(QStringLiteral("Invalid Json reply, album image value is missing #text or size."), obj_image);
continue;
}
- QString image_url = obj_image["#text"].toString();
+ QString image_url = obj_image[QStringLiteral("#text")].toString();
if (image_url.isEmpty()) continue;
- LastFmImageSize image_size = ImageSizeFromString(obj_image["size"].toString().toLower());
+ LastFmImageSize image_size = ImageSizeFromString(obj_image[QStringLiteral("size")].toString().toLower());
if (image_url_use.isEmpty() || image_size > image_size_use) {
image_url_use = image_url;
image_size_use = image_size;
@@ -268,8 +268,8 @@ void LastFmCoverProvider::QueryFinished(QNetworkReply *reply, const int id, cons
if (image_url_use.isEmpty()) continue;
// Workaround for API limiting to 300x300 images.
- if (image_url_use.contains("/300x300/")) {
- image_url_use = image_url_use.replace("/300x300/", "/740x0/");
+ if (image_url_use.contains(QLatin1String("/300x300/"))) {
+ image_url_use = image_url_use.replace(QLatin1String("/300x300/"), QLatin1String("/740x0/"));
}
QUrl url(image_url_use);
if (!url.isValid()) continue;
@@ -295,7 +295,7 @@ QByteArray LastFmCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
// See if there is Json data containing "error" and "message" - then use that instead.
@@ -305,18 +305,18 @@ QByteArray LastFmCoverProvider::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (json_obj.contains("error") && json_obj.contains("message")) {
- int code = json_obj["error"].toInt();
- QString message = json_obj["message"].toString();
+ if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("error")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
error = "Error: " + QString::number(code) + ": " + message;
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
diff --git a/src/covermanager/musicbrainzcoverprovider.cpp b/src/covermanager/musicbrainzcoverprovider.cpp
index 41f974e3..ddac33e2 100644
--- a/src/covermanager/musicbrainzcoverprovider.cpp
+++ b/src/covermanager/musicbrainzcoverprovider.cpp
@@ -50,7 +50,7 @@ const int MusicbrainzCoverProvider::kLimit = 8;
const int MusicbrainzCoverProvider::kRequestsDelay = 1000;
MusicbrainzCoverProvider::MusicbrainzCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("MusicBrainz", true, false, 1.5, true, false, app, network, parent),
+ : JsonCoverProvider(QStringLiteral("MusicBrainz"), true, false, 1.5, true, false, app, network, parent),
timer_flush_requests_(new QTimer(this)) {
timer_flush_requests_->setInterval(kRequestsDelay);
@@ -89,12 +89,12 @@ bool MusicbrainzCoverProvider::StartSearch(const QString &artist, const QString
void MusicbrainzCoverProvider::SendSearchRequest(const SearchRequest &request) {
- QString query = QString("release:\"%1\" AND artist:\"%2\"").arg(request.album.trimmed().replace('"', "\\\""), request.artist.trimmed().replace('"', "\\\""));
+ QString query = QStringLiteral("release:\"%1\" AND artist:\"%2\"").arg(request.album.trimmed().replace('"', QLatin1String("\\\"")), request.artist.trimmed().replace('"', QLatin1String("\\\"")));
QUrlQuery url_query;
- url_query.addQueryItem("query", query);
- url_query.addQueryItem("limit", QString::number(kLimit));
- url_query.addQueryItem("fmt", "json");
+ url_query.addQueryItem(QStringLiteral("query"), query);
+ url_query.addQueryItem(QStringLiteral("limit"), QString::number(kLimit));
+ url_query.addQueryItem(QStringLiteral("fmt"), QStringLiteral("json"));
QUrl url(kReleaseSearchUrl);
url.setQuery(url_query);
@@ -138,21 +138,21 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
return;
}
- if (!json_obj.contains("releases")) {
- if (json_obj.contains("error")) {
- QString error = json_obj["error"].toString();
+ if (!json_obj.contains(QStringLiteral("releases"))) {
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QString error = json_obj[QStringLiteral("error")].toString();
Error(error);
}
else {
- Error(QString("Json reply is missing releases."), json_obj);
+ Error(QStringLiteral("Json reply is missing releases."), json_obj);
}
emit SearchFinished(search_id, results);
return;
}
- QJsonValue value_releases = json_obj["releases"];
+ QJsonValue value_releases = json_obj[QStringLiteral("releases")];
if (!value_releases.isArray()) {
- Error("Json releases is not an array.", value_releases);
+ Error(QStringLiteral("Json releases is not an array."), value_releases);
emit SearchFinished(search_id, results);
return;
}
@@ -166,18 +166,18 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
for (const QJsonValueRef value_release : array_releases) {
if (!value_release.isObject()) {
- Error("Invalid Json reply, releases array value is not an object.");
+ Error(QStringLiteral("Invalid Json reply, releases array value is not an object."));
continue;
}
QJsonObject obj_release = value_release.toObject();
- if (!obj_release.contains("id") || !obj_release.contains("artist-credit") || !obj_release.contains("title")) {
- Error("Invalid Json reply, releases array object is missing id, artist-credit or title.", obj_release);
+ if (!obj_release.contains(QStringLiteral("id")) || !obj_release.contains(QStringLiteral("artist-credit")) || !obj_release.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Invalid Json reply, releases array object is missing id, artist-credit or title."), obj_release);
continue;
}
- QJsonValue json_artists = obj_release["artist-credit"];
+ QJsonValue json_artists = obj_release[QStringLiteral("artist-credit")];
if (!json_artists.isArray()) {
- Error("Invalid Json reply, artist-credit is not a array.", json_artists);
+ Error(QStringLiteral("Invalid Json reply, artist-credit is not a array."), json_artists);
continue;
}
QJsonArray array_artists = json_artists.toArray();
@@ -185,33 +185,33 @@ void MusicbrainzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
QString artist;
for (const QJsonValueRef value_artist : array_artists) {
if (!value_artist.isObject()) {
- Error("Invalid Json reply, artist is not a object.");
+ Error(QStringLiteral("Invalid Json reply, artist is not a object."));
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("artist")) {
- Error("Invalid Json reply, artist is missing.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("artist"))) {
+ Error(QStringLiteral("Invalid Json reply, artist is missing."), obj_artist);
continue;
}
- QJsonValue value_artist2 = obj_artist["artist"];
+ QJsonValue value_artist2 = obj_artist[QStringLiteral("artist")];
if (!value_artist2.isObject()) {
- Error("Invalid Json reply, artist is not an object.", value_artist2);
+ Error(QStringLiteral("Invalid Json reply, artist is not an object."), value_artist2);
continue;
}
QJsonObject obj_artist2 = value_artist2.toObject();
- if (!obj_artist2.contains("name")) {
- Error("Invalid Json reply, artist is missing name.", value_artist2);
+ if (!obj_artist2.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, artist is missing name."), value_artist2);
continue;
}
- artist = obj_artist2["name"].toString();
+ artist = obj_artist2[QStringLiteral("name")].toString();
++i;
}
- if (i > 1) artist = "Various artists";
+ if (i > 1) artist = QStringLiteral("Various artists");
- QString id = obj_release["id"].toString();
- QString album = obj_release["title"].toString();
+ QString id = obj_release[QStringLiteral("id")].toString();
+ QString album = obj_release[QStringLiteral("title")].toString();
CoverProviderSearchResult cover_result;
QUrl url(QString(kAlbumCoverUrl).arg(id));
@@ -234,7 +234,7 @@ QByteArray MusicbrainzCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- QString failure_reason = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ QString failure_reason = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
Error(failure_reason);
}
else {
@@ -245,16 +245,16 @@ QByteArray MusicbrainzCoverProvider::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (json_obj.contains("error")) {
- error = json_obj["error"].toString();
+ if (json_obj.contains(QStringLiteral("error"))) {
+ error = json_obj[QStringLiteral("error")].toString();
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
diff --git a/src/covermanager/musixmatchcoverprovider.cpp b/src/covermanager/musixmatchcoverprovider.cpp
index d5c1257c..f8b17473 100644
--- a/src/covermanager/musixmatchcoverprovider.cpp
+++ b/src/covermanager/musixmatchcoverprovider.cpp
@@ -41,7 +41,7 @@
#include "musixmatchcoverprovider.h"
MusixmatchCoverProvider::MusixmatchCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Musixmatch", true, false, 1.0, true, false, app, network, parent) {}
+ : JsonCoverProvider(QStringLiteral("Musixmatch"), true, false, 1.0, true, false, app, network, parent) {}
MusixmatchCoverProvider::~MusixmatchCoverProvider() {
@@ -65,7 +65,7 @@ bool MusixmatchCoverProvider::StartSearch(const QString &artist, const QString &
if (artist_stripped.isEmpty() || album_stripped.isEmpty()) return false;
- QUrl url(QString("https://www.musixmatch.com/album/%1/%2").arg(artist_stripped, album_stripped));
+ QUrl url(QStringLiteral("https://www.musixmatch.com/album/%1/%2").arg(artist_stripped, album_stripped));
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
QNetworkReply *reply = network_->get(req);
@@ -90,25 +90,25 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
CoverProviderSearchResults results;
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
emit SearchFinished(id, results);
return;
}
else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
emit SearchFinished(id, results);
return;
}
QByteArray data = reply->readAll();
if (data.isEmpty()) {
- Error("Empty reply received from server.");
+ Error(QStringLiteral("Empty reply received from server."));
emit SearchFinished(id, results);
return;
}
QString content = data;
- const QString data_begin = "";
+ const QString data_begin = QStringLiteral("");
if (!content.contains(data_begin) || !content.contains(data_end)) {
emit SearchFinished(id, results);
return;
@@ -128,7 +128,7 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
return;
}
- if (content_json.contains(QRegularExpression("<[^>]*>"))) { // Make sure it's not HTML code.
+ if (content_json.contains(QRegularExpression(QStringLiteral("<[^>]*>")))) { // Make sure it's not HTML code.
emit SearchFinished(id, results);
return;
}
@@ -137,71 +137,71 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
QJsonDocument json_doc = QJsonDocument::fromJson(content_json.toUtf8(), &error);
if (error.error != QJsonParseError::NoError) {
- Error(QString("Failed to parse json data: %1").arg(error.errorString()));
+ Error(QStringLiteral("Failed to parse json data: %1").arg(error.errorString()));
emit SearchFinished(id, results);
return;
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", data);
+ Error(QStringLiteral("Received empty Json document."), data);
emit SearchFinished(id, results);
return;
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
emit SearchFinished(id, results);
return;
}
QJsonObject obj_data = json_doc.object();
if (obj_data.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
emit SearchFinished(id, results);
return;
}
- if (!obj_data.contains("props") || !obj_data["props"].isObject()) {
- Error("Json reply is missing props.", obj_data);
+ if (!obj_data.contains(QStringLiteral("props")) || !obj_data[QStringLiteral("props")].isObject()) {
+ Error(QStringLiteral("Json reply is missing props."), obj_data);
emit SearchFinished(id, results);
return;
}
- obj_data = obj_data["props"].toObject();
+ obj_data = obj_data[QStringLiteral("props")].toObject();
- if (!obj_data.contains("pageProps") || !obj_data["pageProps"].isObject()) {
- Error("Json props is missing pageProps.", obj_data);
+ if (!obj_data.contains(QStringLiteral("pageProps")) || !obj_data[QStringLiteral("pageProps")].isObject()) {
+ Error(QStringLiteral("Json props is missing pageProps."), obj_data);
emit SearchFinished(id, results);
return;
}
- obj_data = obj_data["pageProps"].toObject();
+ obj_data = obj_data[QStringLiteral("pageProps")].toObject();
- if (!obj_data.contains("data") || !obj_data["data"].isObject()) {
- Error("Json pageProps is missing data.", obj_data);
+ if (!obj_data.contains(QStringLiteral("data")) || !obj_data[QStringLiteral("data")].isObject()) {
+ Error(QStringLiteral("Json pageProps is missing data."), obj_data);
emit SearchFinished(id, results);
return;
}
- obj_data = obj_data["data"].toObject();
+ obj_data = obj_data[QStringLiteral("data")].toObject();
- if (!obj_data.contains("albumGet") || !obj_data["albumGet"].isObject()) {
- Error("Json data is missing albumGet.", obj_data);
+ if (!obj_data.contains(QStringLiteral("albumGet")) || !obj_data[QStringLiteral("albumGet")].isObject()) {
+ Error(QStringLiteral("Json data is missing albumGet."), obj_data);
emit SearchFinished(id, results);
return;
}
- obj_data = obj_data["albumGet"].toObject();
+ obj_data = obj_data[QStringLiteral("albumGet")].toObject();
- if (!obj_data.contains("data") || !obj_data["data"].isObject()) {
- Error("Json albumGet reply is missing data.", obj_data);
+ if (!obj_data.contains(QStringLiteral("data")) || !obj_data[QStringLiteral("data")].isObject()) {
+ Error(QStringLiteral("Json albumGet reply is missing data."), obj_data);
emit SearchFinished(id, results);
return;
}
- obj_data = obj_data["data"].toObject();
+ obj_data = obj_data[QStringLiteral("data")].toObject();
CoverProviderSearchResult result;
- if (obj_data.contains("artistName") && obj_data["artistName"].isString()) {
- result.artist = obj_data["artistName"].toString();
+ if (obj_data.contains(QStringLiteral("artistName")) && obj_data[QStringLiteral("artistName")].isString()) {
+ result.artist = obj_data[QStringLiteral("artistName")].toString();
}
- if (obj_data.contains("name") && obj_data["name"].isString()) {
- result.album = obj_data["name"].toString();
+ if (obj_data.contains(QStringLiteral("name")) && obj_data[QStringLiteral("name")].isString()) {
+ result.album = obj_data[QStringLiteral("name")].toString();
}
if (result.artist.compare(artist, Qt::CaseInsensitive) != 0 && result.album.compare(album, Qt::CaseInsensitive) != 0) {
@@ -209,9 +209,9 @@ void MusixmatchCoverProvider::HandleSearchReply(QNetworkReply *reply, const int
return;
}
- QList> cover_sizes = QList>() << qMakePair(QString("coverImage800x800"), QSize(800, 800))
- << qMakePair(QString("coverImage500x500"), QSize(500, 500))
- << qMakePair(QString("coverImage350x350"), QSize(350, 350));
+ QList> cover_sizes = QList>() << qMakePair(QStringLiteral("coverImage800x800"), QSize(800, 800))
+ << qMakePair(QStringLiteral("coverImage500x500"), QSize(500, 500))
+ << qMakePair(QStringLiteral("coverImage350x350"), QSize(350, 350));
for (const QPair &cover_size : cover_sizes) {
if (!obj_data.contains(cover_size.first)) continue;
diff --git a/src/covermanager/opentidalcoverprovider.cpp b/src/covermanager/opentidalcoverprovider.cpp
index 618d34f7..e3294776 100644
--- a/src/covermanager/opentidalcoverprovider.cpp
+++ b/src/covermanager/opentidalcoverprovider.cpp
@@ -57,7 +57,7 @@ constexpr const int kRequestsDelay = 1000;
using std::make_shared;
OpenTidalCoverProvider::OpenTidalCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("OpenTidal", true, false, 2.5, true, false, app, network, parent),
+ : JsonCoverProvider(QStringLiteral("OpenTidal"), true, false, 2.5, true, false, app, network, parent),
login_timer_(new QTimer(this)),
timer_flush_requests_(new QTimer(this)),
login_in_progress_(false),
@@ -160,7 +160,7 @@ void OpenTidalCoverProvider::Login() {
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
req.setRawHeader("Authorization", "Basic " + QByteArray(QByteArray::fromBase64(kApiClientIdB64) + ":" + QByteArray::fromBase64(kApiClientSecretB64)).toBase64());
QUrlQuery url_query;
- url_query.addQueryItem("grant_type", "client_credentials");
+ url_query.addQueryItem(QStringLiteral("grant_type"), QStringLiteral("client_credentials"));
QNetworkReply *reply = network_->post(req, url_query.toString(QUrl::FullyEncoded).toUtf8());
replies_ << reply;
QObject::connect(reply, &QNetworkReply::sslErrors, this, &OpenTidalCoverProvider::HandleLoginSSLErrors);
@@ -192,21 +192,21 @@ void OpenTidalCoverProvider::LoginFinished(QNetworkReply *reply) {
return;
}
- if (!json_obj.contains("access_token") ||
- !json_obj.contains("token_type") ||
- !json_obj.contains("expires_in") ||
- !json_obj["access_token"].isString() ||
- !json_obj["token_type"].isString()) {
+ if (!json_obj.contains(QStringLiteral("access_token")) ||
+ !json_obj.contains(QStringLiteral("token_type")) ||
+ !json_obj.contains(QStringLiteral("expires_in")) ||
+ !json_obj[QStringLiteral("access_token")].isString() ||
+ !json_obj[QStringLiteral("token_type")].isString()) {
qLog(Error) << "OpenTidal: Invalid login reply.";
FinishAllSearches();
return;
}
have_login_ = true;
- token_type_ = json_obj["token_type"].toString();
- access_token_ = json_obj["access_token"].toString();
+ token_type_ = json_obj[QStringLiteral("token_type")].toString();
+ access_token_ = json_obj[QStringLiteral("access_token")].toString();
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
- expires_in_ = json_obj["expires_in"].toInt();
+ expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
QSettings s;
s.beginGroup(kSettingsGroup);
@@ -261,19 +261,19 @@ QJsonObject OpenTidalCoverProvider::GetJsonObject(QNetworkReply *reply) {
return QJsonObject();
}
QJsonObject json_obj = ExtractJsonObj(data);
- if (json_obj.contains("errors") && json_obj["errors"].isArray()) {
- QJsonArray array = json_obj["errors"].toArray();
+ if (json_obj.contains(QStringLiteral("errors")) && json_obj[QStringLiteral("errors")].isArray()) {
+ QJsonArray array = json_obj[QStringLiteral("errors")].toArray();
for (const QJsonValue &value : array) {
if (!value.isObject()) continue;
QJsonObject obj = value.toObject();
- if (!obj.contains("category") ||
- !obj.contains("code") ||
- !obj.contains("detail")) {
+ if (!obj.contains(QStringLiteral("category")) ||
+ !obj.contains(QStringLiteral("code")) ||
+ !obj.contains(QStringLiteral("detail"))) {
continue;
}
- QString category = obj["category"].toString();
- QString code = obj["code"].toString();
- QString detail = obj["detail"].toString();
+ QString category = obj[QStringLiteral("category")].toString();
+ QString code = obj[QStringLiteral("code")].toString();
+ QString detail = obj[QStringLiteral("detail")].toString();
qLog(Error) << "OpenTidal:" << category << code << detail;
}
}
@@ -302,10 +302,10 @@ void OpenTidalCoverProvider::SendSearchRequest(SearchRequestPtr search_request)
}
QUrlQuery url_query;
- url_query.addQueryItem("query", QUrl::toPercentEncoding(query));
- url_query.addQueryItem("limit", QString::number(kLimit));
- url_query.addQueryItem("countryCode", "US");
- QUrl url(QString(kApiUrl) + QString("/search"));
+ url_query.addQueryItem(QStringLiteral("query"), QUrl::toPercentEncoding(query));
+ url_query.addQueryItem(QStringLiteral("limit"), QString::number(kLimit));
+ url_query.addQueryItem(QStringLiteral("countryCode"), QStringLiteral("US"));
+ QUrl url(QString(kApiUrl) + QStringLiteral("/search"));
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -331,13 +331,13 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
return;
}
- if (!json_obj.contains("albums") || !json_obj["albums"].isArray()) {
+ if (!json_obj.contains(QStringLiteral("albums")) || !json_obj[QStringLiteral("albums")].isArray()) {
qLog(Debug) << "OpenTidal: Json object is missing albums.";
emit SearchFinished(search_request->id, CoverProviderSearchResults());
return;
}
- QJsonArray array_albums = json_obj["albums"].toArray();
+ QJsonArray array_albums = json_obj[QStringLiteral("albums")].toArray();
if (array_albums.isEmpty()) {
emit SearchFinished(search_request->id, CoverProviderSearchResults());
return;
@@ -353,55 +353,55 @@ void OpenTidalCoverProvider::HandleSearchReply(QNetworkReply *reply, SearchReque
}
QJsonObject obj_album = value_album.toObject();
- if (!obj_album.contains("resource") || !obj_album["resource"].isObject()) {
+ if (!obj_album.contains(QStringLiteral("resource")) || !obj_album[QStringLiteral("resource")].isObject()) {
qLog(Debug) << "OpenTidal: Invalid Json reply: Albums array album is missing resource object.";
continue;
}
- QJsonObject obj_resource = obj_album["resource"].toObject();
+ QJsonObject obj_resource = obj_album[QStringLiteral("resource")].toObject();
- if (!obj_resource.contains("artists") || !obj_resource["artists"].isArray()) {
+ if (!obj_resource.contains(QStringLiteral("artists")) || !obj_resource[QStringLiteral("artists")].isArray()) {
qLog(Debug) << "OpenTidal: Invalid Json reply: Resource is missing artists array.";
continue;
}
- if (!obj_resource.contains("title") || !obj_resource["title"].isString()) {
+ if (!obj_resource.contains(QStringLiteral("title")) || !obj_resource[QStringLiteral("title")].isString()) {
qLog(Debug) << "OpenTidal: Invalid Json reply: Resource is missing title.";
continue;
}
- if (!obj_resource.contains("imageCover") || !obj_resource["imageCover"].isArray()) {
+ if (!obj_resource.contains(QStringLiteral("imageCover")) || !obj_resource[QStringLiteral("imageCover")].isArray()) {
qLog(Debug) << "OpenTidal: Invalid Json reply: Resource is missing imageCover array.";
continue;
}
QString artist;
- const QString album = obj_resource["title"].toString();
+ const QString album = obj_resource[QStringLiteral("title")].toString();
- QJsonArray array_artists = obj_resource["artists"].toArray();
+ QJsonArray array_artists = obj_resource[QStringLiteral("artists")].toArray();
for (const QJsonValueRef value_artist : array_artists) {
if (!value_artist.isObject()) {
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("name")) {
+ if (!obj_artist.contains(QStringLiteral("name"))) {
continue;
}
- artist = obj_artist["name"].toString();
+ artist = obj_artist[QStringLiteral("name")].toString();
break;
}
- QJsonArray array_covers = obj_resource["imageCover"].toArray();
+ QJsonArray array_covers = obj_resource[QStringLiteral("imageCover")].toArray();
for (const QJsonValueRef value_cover : array_covers) {
if (!value_cover.isObject()) {
continue;
}
QJsonObject obj_cover = value_cover.toObject();
- if (!obj_cover.contains("url") || !obj_cover.contains("width") || !obj_cover.contains("height")) {
+ if (!obj_cover.contains(QStringLiteral("url")) || !obj_cover.contains(QStringLiteral("width")) || !obj_cover.contains(QStringLiteral("height"))) {
continue;
}
- const QUrl url(obj_cover["url"].toString());
- const int width = obj_cover["width"].toInt();
- const int height = obj_cover["height"].toInt();
+ const QUrl url(obj_cover[QStringLiteral("url")].toString());
+ const int width = obj_cover[QStringLiteral("width")].toInt();
+ const int height = obj_cover[QStringLiteral("height")].toInt();
if (!url.isValid()) continue;
if (width < 640 || height < 640) continue;
CoverProviderSearchResult cover_result;
diff --git a/src/covermanager/qobuzcoverprovider.cpp b/src/covermanager/qobuzcoverprovider.cpp
index b987b9ea..749f1ea1 100644
--- a/src/covermanager/qobuzcoverprovider.cpp
+++ b/src/covermanager/qobuzcoverprovider.cpp
@@ -49,7 +49,7 @@
constexpr int QobuzCoverProvider::kLimit = 10;
QobuzCoverProvider::QobuzCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Qobuz", true, true, 2.0, true, true, app, network, parent),
+ : JsonCoverProvider(QStringLiteral("Qobuz"), true, true, 2.0, true, true, app, network, parent),
service_(app->internet_services()->Service()) {}
QobuzCoverProvider::~QobuzCoverProvider() {
@@ -70,12 +70,12 @@ bool QobuzCoverProvider::StartSearch(const QString &artist, const QString &album
QString resource;
QString query = artist;
if (album.isEmpty() && !title.isEmpty()) {
- resource = "track/search";
+ resource = QStringLiteral("track/search");
if (!query.isEmpty()) query.append(" ");
query.append(title);
}
else {
- resource = "album/search";
+ resource = QStringLiteral("album/search");
if (!album.isEmpty()) {
if (!query.isEmpty()) query.append(" ");
query.append(album);
@@ -93,7 +93,7 @@ bool QobuzCoverProvider::StartSearch(const QString &artist, const QString &album
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(QString(QobuzService::kApiUrl) + QString("/") + resource);
+ QUrl url(QString(QobuzService::kApiUrl) + QStringLiteral("/") + resource);
url.setQuery(url_query);
QNetworkRequest req(url);
@@ -121,7 +121,7 @@ QByteArray QobuzCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
// See if there is Json data containing "status", "code" and "message" - then use that instead.
@@ -131,18 +131,18 @@ QByteArray QobuzCoverProvider::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &parse_error);
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- error = QString("%1 (%2)").arg(message).arg(code);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ error = QStringLiteral("%1 (%2)").arg(message).arg(code);
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -176,34 +176,34 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
}
QJsonValue value_type;
- if (json_obj.contains("albums")) {
- value_type = json_obj["albums"];
+ if (json_obj.contains(QStringLiteral("albums"))) {
+ value_type = json_obj[QStringLiteral("albums")];
}
- else if (json_obj.contains("tracks")) {
- value_type = json_obj["tracks"];
+ else if (json_obj.contains(QStringLiteral("tracks"))) {
+ value_type = json_obj[QStringLiteral("tracks")];
}
else {
- Error("Json reply is missing albums and tracks object.", json_obj);
+ Error(QStringLiteral("Json reply is missing albums and tracks object."), json_obj);
emit SearchFinished(id, results);
return;
}
if (!value_type.isObject()) {
- Error("Json albums or tracks is not a object.", value_type);
+ Error(QStringLiteral("Json albums or tracks is not a object."), value_type);
emit SearchFinished(id, results);
return;
}
QJsonObject obj_type = value_type.toObject();
- if (!obj_type.contains("items")) {
- Error("Json albums or tracks object does not contain items.", obj_type);
+ if (!obj_type.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json albums or tracks object does not contain items."), obj_type);
emit SearchFinished(id, results);
return;
}
- QJsonValue value_items = obj_type["items"];
+ QJsonValue value_items = obj_type[QStringLiteral("items")];
if (!value_items.isArray()) {
- Error("Json albums or track object items is not a array.", value_items);
+ Error(QStringLiteral("Json albums or track object items is not a array."), value_items);
emit SearchFinished(id, results);
return;
}
@@ -212,55 +212,55 @@ void QobuzCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
for (const QJsonValueRef value : array_items) {
if (!value.isObject()) {
- Error("Invalid Json reply, value in items is not a object.");
+ Error(QStringLiteral("Invalid Json reply, value in items is not a object."));
continue;
}
QJsonObject item_obj = value.toObject();
QJsonObject obj_album;
- if (item_obj.contains("album")) {
- if (!item_obj["album"].isObject()) {
- Error("Invalid Json reply, items album is not a object.", item_obj);
+ if (item_obj.contains(QStringLiteral("album"))) {
+ if (!item_obj[QStringLiteral("album")].isObject()) {
+ Error(QStringLiteral("Invalid Json reply, items album is not a object."), item_obj);
continue;
}
- obj_album = item_obj["album"].toObject();
+ obj_album = item_obj[QStringLiteral("album")].toObject();
}
else {
obj_album = item_obj;
}
- if (!obj_album.contains("artist") || !obj_album.contains("image") || !obj_album.contains("title")) {
- Error("Invalid Json reply, item is missing artist, title or image.", obj_album);
+ if (!obj_album.contains(QStringLiteral("artist")) || !obj_album.contains(QStringLiteral("image")) || !obj_album.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Invalid Json reply, item is missing artist, title or image."), obj_album);
continue;
}
- QString album = obj_album["title"].toString();
+ QString album = obj_album[QStringLiteral("title")].toString();
// Artist
- QJsonValue value_artist = obj_album["artist"];
+ QJsonValue value_artist = obj_album[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, items (album) artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, items (album) artist is not a object."), value_artist);
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("name")) {
- Error("Invalid Json reply, items (album) artist is missing name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, items (album) artist is missing name."), obj_artist);
continue;
}
- QString artist = obj_artist["name"].toString();
+ QString artist = obj_artist[QStringLiteral("name")].toString();
// Image
- QJsonValue value_image = obj_album["image"];
+ QJsonValue value_image = obj_album[QStringLiteral("image")];
if (!value_image.isObject()) {
- Error("Invalid Json reply, items (album) image is not a object.", value_image);
+ Error(QStringLiteral("Invalid Json reply, items (album) image is not a object."), value_image);
continue;
}
QJsonObject obj_image = value_image.toObject();
- if (!obj_image.contains("large")) {
- Error("Invalid Json reply, items (album) image is missing large.", obj_image);
+ if (!obj_image.contains(QStringLiteral("large"))) {
+ Error(QStringLiteral("Invalid Json reply, items (album) image is missing large."), obj_image);
continue;
}
- QUrl cover_url(obj_image["large"].toString());
+ QUrl cover_url(obj_image[QStringLiteral("large")].toString());
CoverProviderSearchResult cover_result;
cover_result.artist = artist;
diff --git a/src/covermanager/spotifycoverprovider.cpp b/src/covermanager/spotifycoverprovider.cpp
index 375c7bc6..897133c9 100644
--- a/src/covermanager/spotifycoverprovider.cpp
+++ b/src/covermanager/spotifycoverprovider.cpp
@@ -62,7 +62,7 @@ const char *SpotifyCoverProvider::kApiUrl = "https://api.spotify.com/v1";
const int SpotifyCoverProvider::kLimit = 10;
SpotifyCoverProvider::SpotifyCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Spotify", true, true, 2.5, true, true, app, network, parent),
+ : JsonCoverProvider(QStringLiteral("Spotify"), true, true, 2.5, true, true, app, network, parent),
server_(nullptr),
expires_in_(0),
login_time_(0) {
@@ -146,7 +146,7 @@ void SpotifyCoverProvider::Authenticate() {
const bool result = QDesktopServices::openUrl(url);
if (!result) {
- QMessageBox messagebox(QMessageBox::Information, tr("Spotify Authentication"), tr("Please open this URL in your browser") + QString(":%1 ").arg(url.toString()), QMessageBox::Ok);
+ QMessageBox messagebox(QMessageBox::Information, tr("Spotify Authentication"), tr("Please open this URL in your browser") + QStringLiteral(":%1 ").arg(url.toString()), QMessageBox::Ok);
messagebox.setTextFormat(Qt::RichText);
messagebox.exec();
}
@@ -180,12 +180,12 @@ void SpotifyCoverProvider::RedirectArrived() {
QUrl url = server_->request_url();
if (url.isValid()) {
QUrlQuery url_query(url);
- if (url_query.hasQueryItem("error")) {
- AuthError(QUrlQuery(url).queryItemValue("error"));
+ if (url_query.hasQueryItem(QStringLiteral("error"))) {
+ AuthError(QUrlQuery(url).queryItemValue(QStringLiteral("error")));
}
- else if (url_query.hasQueryItem("code") && url_query.hasQueryItem("state")) {
+ else if (url_query.hasQueryItem(QStringLiteral("code")) && url_query.hasQueryItem(QStringLiteral("state"))) {
qLog(Debug) << "Spotify: Authorization URL Received" << url;
- QString code = url_query.queryItemValue("code");
+ QString code = url_query.queryItemValue(QStringLiteral("code"));
QUrl redirect_url(kOAuthRedirectUrl);
redirect_url.setPort(server_->url().port());
RequestAccessToken(code, redirect_url);
@@ -237,7 +237,7 @@ void SpotifyCoverProvider::RequestAccessToken(const QString &code, const QUrl &r
QNetworkRequest req(new_url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
- QString auth_header_data = QByteArray::fromBase64(kClientIDB64) + QString(":") + QByteArray::fromBase64(kClientSecretB64);
+ QString auth_header_data = QByteArray::fromBase64(kClientIDB64) + QStringLiteral(":") + QByteArray::fromBase64(kClientSecretB64);
req.setRawHeader("Authorization", "Basic " + auth_header_data.toUtf8().toBase64());
QByteArray query = url_query.toString(QUrl::FullyEncoded).toUtf8();
@@ -267,7 +267,7 @@ void SpotifyCoverProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- AuthError(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ AuthError(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
return;
}
else {
@@ -277,18 +277,18 @@ void SpotifyCoverProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("error") && json_obj.contains("error_description")) {
- QString error = json_obj["error"].toString();
- QString error_description = json_obj["error_description"].toString();
- login_errors_ << QString("Authentication failure: %1 (%2)").arg(error, error_description);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("error_description"))) {
+ QString error = json_obj[QStringLiteral("error")].toString();
+ QString error_description = json_obj[QStringLiteral("error_description")].toString();
+ login_errors_ << QStringLiteral("Authentication failure: %1 (%2)").arg(error, error_description);
}
}
if (login_errors_.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- login_errors_ << QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ login_errors_ << QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- login_errors_ << QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ login_errors_ << QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
AuthError();
@@ -302,36 +302,36 @@ void SpotifyCoverProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error(QString("Failed to parse Json data in authentication reply: %1").arg(json_error.errorString()));
+ Error(QStringLiteral("Failed to parse Json data in authentication reply: %1").arg(json_error.errorString()));
return;
}
if (json_doc.isEmpty()) {
- AuthError("Authentication reply from server has empty Json document.");
+ AuthError(QStringLiteral("Authentication reply from server has empty Json document."));
return;
}
if (!json_doc.isObject()) {
- AuthError("Authentication reply from server has Json document that is not an object.", json_doc);
+ AuthError(QStringLiteral("Authentication reply from server has Json document that is not an object."), json_doc);
return;
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- AuthError("Authentication reply from server has empty Json object.", json_doc);
+ AuthError(QStringLiteral("Authentication reply from server has empty Json object."), json_doc);
return;
}
- if (!json_obj.contains("access_token") || !json_obj.contains("expires_in")) {
- AuthError("Authentication reply from server is missing access token or expires in.", json_obj);
+ if (!json_obj.contains(QStringLiteral("access_token")) || !json_obj.contains(QStringLiteral("expires_in"))) {
+ AuthError(QStringLiteral("Authentication reply from server is missing access token or expires in."), json_obj);
return;
}
- access_token_ = json_obj["access_token"].toString();
- if (json_obj.contains("refresh_token")) {
- refresh_token_ = json_obj["refresh_token"].toString();
+ access_token_ = json_obj[QStringLiteral("access_token")].toString();
+ if (json_obj.contains(QStringLiteral("refresh_token"))) {
+ refresh_token_ = json_obj[QStringLiteral("refresh_token")].toString();
}
- expires_in_ = json_obj["expires_in"].toInt();
+ expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
QSettings s;
@@ -364,14 +364,14 @@ bool SpotifyCoverProvider::StartSearch(const QString &artist, const QString &alb
QString extract;
QString query = artist;
if (album.isEmpty() && !title.isEmpty()) {
- type = "track";
- extract = "tracks";
+ type = QStringLiteral("track");
+ extract = QStringLiteral("tracks");
if (!query.isEmpty()) query.append(" ");
query.append(title);
}
else {
- type = "album";
- extract = "albums";
+ type = QStringLiteral("album");
+ extract = QStringLiteral("albums");
if (!album.isEmpty()) {
if (!query.isEmpty()) query.append(" ");
query.append(album);
@@ -387,7 +387,7 @@ bool SpotifyCoverProvider::StartSearch(const QString &artist, const QString &alb
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(kApiUrl + QString("/search"));
+ QUrl url(kApiUrl + QStringLiteral("/search"));
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -414,7 +414,7 @@ QByteArray SpotifyCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
data = reply->readAll();
@@ -423,12 +423,12 @@ QByteArray SpotifyCoverProvider::GetReplyData(QNetworkReply *reply) {
QString error;
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("error") && json_obj["error"].isObject()) {
- QJsonObject obj_error = json_obj["error"].toObject();
- if (obj_error.contains("status") && obj_error.contains("message")) {
- int status = obj_error["status"].toInt();
- QString message = obj_error["message"].toString();
- error = QString("%1 (%2)").arg(message).arg(status);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error")) && json_obj[QStringLiteral("error")].isObject()) {
+ QJsonObject obj_error = json_obj[QStringLiteral("error")].toObject();
+ if (obj_error.contains(QStringLiteral("status")) && obj_error.contains(QStringLiteral("message"))) {
+ int status = obj_error[QStringLiteral("status")].toInt();
+ QString message = obj_error[QStringLiteral("message")].toString();
+ error = QStringLiteral("%1 (%2)").arg(message).arg(status);
if (status == 401) access_token_.clear();
}
}
@@ -436,10 +436,10 @@ QByteArray SpotifyCoverProvider::GetReplyData(QNetworkReply *reply) {
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
if (reply->error() == 204) access_token_.clear();
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -471,19 +471,19 @@ void SpotifyCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id,
}
if (!json_obj.contains(extract) || !json_obj[extract].isObject()) {
- Error(QString("Json object is missing %1 object.").arg(extract), json_obj);
+ Error(QStringLiteral("Json object is missing %1 object.").arg(extract), json_obj);
emit SearchFinished(id, CoverProviderSearchResults());
return;
}
json_obj = json_obj[extract].toObject();
- if (!json_obj.contains("items") || !json_obj["items"].isArray()) {
- Error(QString("%1 object is missing items array.").arg(extract), json_obj);
+ if (!json_obj.contains(QStringLiteral("items")) || !json_obj[QStringLiteral("items")].isArray()) {
+ Error(QStringLiteral("%1 object is missing items array.").arg(extract), json_obj);
emit SearchFinished(id, CoverProviderSearchResults());
return;
}
- QJsonArray array_items = json_obj["items"].toArray();
+ QJsonArray array_items = json_obj[QStringLiteral("items")].toArray();
if (array_items.isEmpty()) {
emit SearchFinished(id, CoverProviderSearchResults());
return;
@@ -498,33 +498,33 @@ void SpotifyCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id,
QJsonObject obj_item = value_item.toObject();
QJsonObject obj_album = obj_item;
- if (obj_item.contains("album") && obj_item["album"].isObject()) {
- obj_album = obj_item["album"].toObject();
+ if (obj_item.contains(QStringLiteral("album")) && obj_item[QStringLiteral("album")].isObject()) {
+ obj_album = obj_item[QStringLiteral("album")].toObject();
}
- if (!obj_album.contains("artists") || !obj_album.contains("name") || !obj_album.contains("images") || !obj_album["artists"].isArray() || !obj_album["images"].isArray()) {
+ if (!obj_album.contains(QStringLiteral("artists")) || !obj_album.contains(QStringLiteral("name")) || !obj_album.contains(QStringLiteral("images")) || !obj_album[QStringLiteral("artists")].isArray() || !obj_album[QStringLiteral("images")].isArray()) {
continue;
}
- QJsonArray array_artists = obj_album["artists"].toArray();
- QJsonArray array_images = obj_album["images"].toArray();
- QString album = obj_album["name"].toString();
+ QJsonArray array_artists = obj_album[QStringLiteral("artists")].toArray();
+ QJsonArray array_images = obj_album[QStringLiteral("images")].toArray();
+ QString album = obj_album[QStringLiteral("name")].toString();
QStringList artists;
for (const QJsonValueRef value_artist : array_artists) {
if (!value_artist.isObject()) continue;
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("name")) continue;
- artists << obj_artist["name"].toString();
+ if (!obj_artist.contains(QStringLiteral("name"))) continue;
+ artists << obj_artist[QStringLiteral("name")].toString();
}
for (const QJsonValueRef value_image : array_images) {
if (!value_image.isObject()) continue;
QJsonObject obj_image = value_image.toObject();
- if (!obj_image.contains("url") || !obj_image.contains("width") || !obj_image.contains("height")) continue;
- int width = obj_image["width"].toInt();
- int height = obj_image["height"].toInt();
+ if (!obj_image.contains(QStringLiteral("url")) || !obj_image.contains(QStringLiteral("width")) || !obj_image.contains(QStringLiteral("height"))) continue;
+ int width = obj_image[QStringLiteral("width")].toInt();
+ int height = obj_image[QStringLiteral("height")].toInt();
if (width < 300 || height < 300) continue;
- QUrl url(obj_image["url"].toString());
+ QUrl url(obj_image[QStringLiteral("url")].toString());
CoverProviderSearchResult result;
result.album = album;
result.image_url = url;
diff --git a/src/covermanager/tidalcoverprovider.cpp b/src/covermanager/tidalcoverprovider.cpp
index bf0fb73a..c0892da8 100644
--- a/src/covermanager/tidalcoverprovider.cpp
+++ b/src/covermanager/tidalcoverprovider.cpp
@@ -48,7 +48,7 @@
constexpr int TidalCoverProvider::kLimit = 10;
TidalCoverProvider::TidalCoverProvider(Application *app, SharedPtr network, QObject *parent)
- : JsonCoverProvider("Tidal", true, true, 2.5, true, true, app, network, parent),
+ : JsonCoverProvider(QStringLiteral("Tidal"), true, true, 2.5, true, true, app, network, parent),
service_(app->internet_services()->Service()) {}
TidalCoverProvider::~TidalCoverProvider() {
@@ -71,12 +71,12 @@ bool TidalCoverProvider::StartSearch(const QString &artist, const QString &album
QString resource;
QString query = artist;
if (album.isEmpty() && !title.isEmpty()) {
- resource = "search/tracks";
+ resource = QStringLiteral("search/tracks");
if (!query.isEmpty()) query.append(" ");
query.append(title);
}
else {
- resource = "search/albums";
+ resource = QStringLiteral("search/albums");
if (!album.isEmpty()) {
if (!query.isEmpty()) query.append(" ");
query.append(album);
@@ -92,7 +92,7 @@ bool TidalCoverProvider::StartSearch(const QString &artist, const QString &album
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(QString(TidalService::kApiUrl) + QString("/") + resource);
+ QUrl url(QString(TidalService::kApiUrl) + QStringLiteral("/") + resource);
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -120,7 +120,7 @@ QByteArray TidalCoverProvider::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
// See if there is Json data containing "status" and "userMessage" - then use that instead.
@@ -132,19 +132,19 @@ QByteArray TidalCoverProvider::GetReplyData(QNetworkReply *reply) {
QString error;
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("userMessage")) {
- status = json_obj["status"].toInt();
- sub_status = json_obj["subStatus"].toInt();
- QString user_message = json_obj["userMessage"].toString();
- error = QString("%1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
+ status = json_obj[QStringLiteral("status")].toInt();
+ sub_status = json_obj[QStringLiteral("subStatus")].toInt();
+ QString user_message = json_obj[QStringLiteral("userMessage")].toString();
+ error = QStringLiteral("%1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
if (status == 401 && sub_status == 6001) { // User does not have a valid session
@@ -178,12 +178,12 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
return;
}
- if (!json_obj.contains("items")) {
- Error("Json object is missing items.", json_obj);
+ if (!json_obj.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json object is missing items."), json_obj);
emit SearchFinished(id, CoverProviderSearchResults());
return;
}
- QJsonValue value_items = json_obj["items"];
+ QJsonValue value_items = json_obj[QStringLiteral("items")];
if (!value_items.isArray()) {
emit SearchFinished(id, CoverProviderSearchResults());
@@ -200,35 +200,35 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
for (const QJsonValueRef value_item : array_items) {
if (!value_item.isObject()) {
- Error("Invalid Json reply, items array item is not a object.");
+ Error(QStringLiteral("Invalid Json reply, items array item is not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
- if (!obj_item.contains("artist")) {
- Error("Invalid Json reply, items array item is missing artist.", obj_item);
+ if (!obj_item.contains(QStringLiteral("artist"))) {
+ Error(QStringLiteral("Invalid Json reply, items array item is missing artist."), obj_item);
continue;
}
- QJsonValue value_artist = obj_item["artist"];
+ QJsonValue value_artist = obj_item[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, items array item artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, items array item artist is not a object."), value_artist);
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("name")) {
- Error("Invalid Json reply, items array item artist is missing name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, items array item artist is missing name."), obj_artist);
continue;
}
- QString artist = obj_artist["name"].toString();
+ QString artist = obj_artist[QStringLiteral("name")].toString();
QJsonObject obj_album;
- if (obj_item.contains("album")) {
- QJsonValue value_album = obj_item["album"];
+ if (obj_item.contains(QStringLiteral("album"))) {
+ QJsonValue value_album = obj_item[QStringLiteral("album")];
if (value_album.isObject()) {
obj_album = value_album.toObject();
}
else {
- Error("Invalid Json reply, items array item album is not a object.", value_album);
+ Error(QStringLiteral("Invalid Json reply, items array item album is not a object."), value_album);
continue;
}
}
@@ -236,23 +236,23 @@ void TidalCoverProvider::HandleSearchReply(QNetworkReply *reply, const int id) {
obj_album = obj_item;
}
- if (!obj_album.contains("title") || !obj_album.contains("cover")) {
- Error("Invalid Json reply, items array item album is missing title or cover.", obj_album);
+ if (!obj_album.contains(QStringLiteral("title")) || !obj_album.contains(QStringLiteral("cover"))) {
+ Error(QStringLiteral("Invalid Json reply, items array item album is missing title or cover."), obj_album);
continue;
}
- QString album = obj_album["title"].toString();
- QString cover = obj_album["cover"].toString().replace("-", "/");
+ QString album = obj_album[QStringLiteral("title")].toString();
+ QString cover = obj_album[QStringLiteral("cover")].toString().replace(QLatin1String("-"), QLatin1String("/"));
CoverProviderSearchResult cover_result;
cover_result.artist = artist;
cover_result.album = Song::AlbumRemoveDiscMisc(album);
cover_result.number = ++i;
- QList> cover_sizes = QList>() << qMakePair(QString("1280x1280"), QSize(1280, 1280))
- << qMakePair(QString("750x750"), QSize(750, 750))
- << qMakePair(QString("640x640"), QSize(640, 640));
+ QList> cover_sizes = QList>() << qMakePair(QStringLiteral("1280x1280"), QSize(1280, 1280))
+ << qMakePair(QStringLiteral("750x750"), QSize(750, 750))
+ << qMakePair(QStringLiteral("640x640"), QSize(640, 640));
for (const QPair &cover_size : cover_sizes) {
- QUrl cover_url(QString("%1/images/%2/%3.jpg").arg(TidalService::kResourcesUrl, cover, cover_size.first));
+ QUrl cover_url(QStringLiteral("%1/images/%2/%3.jpg").arg(TidalService::kResourcesUrl, cover, cover_size.first));
cover_result.image_url = cover_url;
cover_result.image_size = cover_size.second;
results << cover_result;
diff --git a/src/device/cddadevice.h b/src/device/cddadevice.h
index a0c9953d..04b903ef 100644
--- a/src/device/cddadevice.h
+++ b/src/device/cddadevice.h
@@ -54,7 +54,7 @@ class CddaDevice : public ConnectedDevice {
bool CopyToStorage(const CopyJob&, QString&) override { return false; }
bool DeleteFromStorage(const MusicStorage::DeleteJob&) override { return false; }
- static QStringList url_schemes() { return QStringList() << "cdda"; }
+ static QStringList url_schemes() { return QStringList() << QStringLiteral("cdda"); }
signals:
void SongsDiscovered(const SongList &songs);
diff --git a/src/device/cddalister.cpp b/src/device/cddalister.cpp
index 02f9a6e8..77e44f62 100644
--- a/src/device/cddalister.cpp
+++ b/src/device/cddalister.cpp
@@ -41,7 +41,7 @@ QStringList CddaLister::DeviceUniqueIDs() { return devices_list_; }
QVariantList CddaLister::DeviceIcons(const QString &) {
QVariantList icons;
- icons << QString("media-optical");
+ icons << QStringLiteral("media-optical");
return icons;
}
@@ -88,7 +88,7 @@ QString CddaLister::MakeFriendlyName(const QString &id) {
return QString(cd_info.psz_model);
}
cdio_destroy(cdio);
- return QString("CD (") + id + ")";
+ return QStringLiteral("CD (") + id + ")";
}
diff --git a/src/device/cddasongloader.cpp b/src/device/cddasongloader.cpp
index f9fcf80c..75c2235e 100644
--- a/src/device/cddasongloader.cpp
+++ b/src/device/cddasongloader.cpp
@@ -61,10 +61,10 @@ CddaSongLoader::~CddaSongLoader() {
QUrl CddaSongLoader::GetUrlFromTrack(int track_number) const {
if (url_.isEmpty()) {
- return QUrl(QString("cdda://%1a").arg(track_number));
+ return QUrl(QStringLiteral("cdda://%1a").arg(track_number));
}
else {
- return QUrl(QString("cdda://%1/%2").arg(url_.path()).arg(track_number));
+ return QUrl(QStringLiteral("cdda://%1/%2").arg(url_.path()).arg(track_number));
}
}
@@ -74,7 +74,7 @@ void CddaSongLoader::LoadSongs() {
QMutexLocker locker(&mutex_load_);
cdio_ = cdio_open(url_.path().toLocal8Bit().constData(), DRIVER_DEVICE);
if (cdio_ == nullptr) {
- Error("Unable to open CDIO device.");
+ Error(QStringLiteral("Unable to open CDIO device."));
return;
}
@@ -82,7 +82,7 @@ void CddaSongLoader::LoadSongs() {
GError *error = nullptr;
cdda_ = gst_element_make_from_uri(GST_URI_SRC, "cdda://", nullptr, &error);
if (error) {
- Error(QString("%1: %2").arg(error->code).arg(error->message));
+ Error(QStringLiteral("%1: %2").arg(error->code).arg(error->message));
}
if (!cdda_) return;
@@ -140,7 +140,7 @@ void CddaSongLoader::LoadSongs() {
song.set_valid(true);
song.set_filetype(Song::FileType::CDDA);
song.set_url(GetUrlFromTrack(track_number));
- song.set_title(QString("Track %1").arg(track_number));
+ song.set_title(QStringLiteral("Track %1").arg(track_number));
song.set_track(track_number);
songs << song;
}
diff --git a/src/device/connecteddevice.cpp b/src/device/connecteddevice.cpp
index fb156bff..134e5001 100644
--- a/src/device/connecteddevice.cpp
+++ b/src/device/connecteddevice.cpp
@@ -67,10 +67,10 @@ ConnectedDevice::ConnectedDevice(const QUrl &url, DeviceLister *lister, const QS
backend_->Init(app_->database(),
app_->task_manager(),
Song::Source::Device,
- QString("device_%1_songs").arg(database_id),
- QString("device_%1_fts").arg(database_id),
- QString("device_%1_directories").arg(database_id),
- QString("device_%1_subdirectories").arg(database_id));
+ QStringLiteral("device_%1_songs").arg(database_id),
+ QStringLiteral("device_%1_fts").arg(database_id),
+ QStringLiteral("device_%1_directories").arg(database_id),
+ QStringLiteral("device_%1_subdirectories").arg(database_id));
// Create the model
model_ = new CollectionModel(backend_, app_, this);
diff --git a/src/device/devicedatabasebackend.cpp b/src/device/devicedatabasebackend.cpp
index 43b0b3f3..de93c208 100644
--- a/src/device/devicedatabasebackend.cpp
+++ b/src/device/devicedatabasebackend.cpp
@@ -80,7 +80,7 @@ DeviceDatabaseBackend::DeviceList DeviceDatabaseBackend::GetAllDevices() {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("SELECT ROWID, unique_id, friendly_name, size, icon, schema_version, transcode_mode, transcode_format FROM devices");
+ q.prepare(QStringLiteral("SELECT ROWID, unique_id, friendly_name, size, icon, schema_version, transcode_mode, transcode_format FROM devices"));
if (!q.Exec()) {
db_->ReportErrors(q);
return ret;
@@ -124,13 +124,13 @@ int DeviceDatabaseBackend::AddDevice(const Device &device) {
// Insert the device into the devices table
SqlQuery q(db);
- q.prepare("INSERT INTO devices (unique_id, friendly_name, size, icon, transcode_mode, transcode_format) VALUES (:unique_id, :friendly_name, :size, :icon, :transcode_mode, :transcode_format)");
- q.BindValue(":unique_id", device.unique_id_);
- q.BindValue(":friendly_name", device.friendly_name_);
- q.BindValue(":size", device.size_);
- q.BindValue(":icon", device.icon_name_);
- q.BindValue(":transcode_mode", static_cast(device.transcode_mode_));
- q.BindValue(":transcode_format", static_cast(device.transcode_format_));
+ q.prepare(QStringLiteral("INSERT INTO devices (unique_id, friendly_name, size, icon, transcode_mode, transcode_format) VALUES (:unique_id, :friendly_name, :size, :icon, :transcode_mode, :transcode_format)"));
+ q.BindValue(QStringLiteral(":unique_id"), device.unique_id_);
+ q.BindValue(QStringLiteral(":friendly_name"), device.friendly_name_);
+ q.BindValue(QStringLiteral(":size"), device.size_);
+ q.BindValue(QStringLiteral(":icon"), device.icon_name_);
+ q.BindValue(QStringLiteral(":transcode_mode"), static_cast(device.transcode_mode_));
+ q.BindValue(QStringLiteral(":transcode_format"), static_cast(device.transcode_format_));
if (!q.Exec()) {
db_->ReportErrors(q);
return -1;
@@ -138,13 +138,13 @@ int DeviceDatabaseBackend::AddDevice(const Device &device) {
int id = q.lastInsertId().toInt();
// Create the songs tables for the device
- QString filename(":/schema/device-schema.sql");
+ QString filename(QStringLiteral(":/schema/device-schema.sql"));
QFile schema_file(filename);
if (!schema_file.open(QIODevice::ReadOnly)) {
qFatal("Couldn't open schema file %s: %s", filename.toUtf8().constData(), schema_file.errorString().toUtf8().constData());
}
QString schema = QString::fromUtf8(schema_file.readAll());
- schema.replace("%deviceid", QString::number(id));
+ schema.replace(QLatin1String("%deviceid"), QString::number(id));
db_->ExecSchemaCommands(db, schema, 0, true);
@@ -164,8 +164,8 @@ void DeviceDatabaseBackend::RemoveDevice(const int id) {
// Remove the device from the devices table
{
SqlQuery q(db);
- q.prepare("DELETE FROM devices WHERE ROWID=:id");
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("DELETE FROM devices WHERE ROWID=:id"));
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -175,7 +175,7 @@ void DeviceDatabaseBackend::RemoveDevice(const int id) {
// Remove the songs tables for the device
{
SqlQuery q(db);
- q.prepare(QString("DROP TABLE device_%1_songs").arg(id));
+ q.prepare(QStringLiteral("DROP TABLE device_%1_songs").arg(id));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -184,7 +184,7 @@ void DeviceDatabaseBackend::RemoveDevice(const int id) {
{
SqlQuery q(db);
- q.prepare(QString("DROP TABLE device_%1_fts").arg(id));
+ q.prepare(QStringLiteral("DROP TABLE device_%1_fts").arg(id));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -193,7 +193,7 @@ void DeviceDatabaseBackend::RemoveDevice(const int id) {
{
SqlQuery q(db);
- q.prepare(QString("DROP TABLE device_%1_directories").arg(id));
+ q.prepare(QStringLiteral("DROP TABLE device_%1_directories").arg(id));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -202,7 +202,7 @@ void DeviceDatabaseBackend::RemoveDevice(const int id) {
{
SqlQuery q(db);
- q.prepare(QString("DROP TABLE device_%1_subdirectories").arg(id));
+ q.prepare(QStringLiteral("DROP TABLE device_%1_subdirectories").arg(id));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -226,11 +226,11 @@ void DeviceDatabaseBackend::SetDeviceOptions(const int id, const QString &friend
" transcode_mode=:transcode_mode,"
" transcode_format=:transcode_format"
" WHERE ROWID=:id");
- q.BindValue(":friendly_name", friendly_name);
- q.BindValue(":icon_name", icon_name);
- q.BindValue(":transcode_mode", static_cast(mode));
- q.BindValue(":transcode_format", static_cast(format));
- q.BindValue(":id", id);
+ q.BindValue(QStringLiteral(":friendly_name"), friendly_name);
+ q.BindValue(QStringLiteral(":icon_name"), icon_name);
+ q.BindValue(QStringLiteral(":transcode_mode"), static_cast(mode));
+ q.BindValue(QStringLiteral(":transcode_format"), static_cast(format));
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
}
diff --git a/src/device/deviceinfo.cpp b/src/device/deviceinfo.cpp
index 1b39a93c..6d08981c 100644
--- a/src/device/deviceinfo.cpp
+++ b/src/device/deviceinfo.cpp
@@ -49,7 +49,7 @@ DeviceDatabaseBackend::Device DeviceInfo::SaveToDb() const {
for (const Backend &backend : backends_) {
unique_ids << backend.unique_id_;
}
- ret.unique_id_ = unique_ids.join(",");
+ ret.unique_id_ = unique_ids.join(QStringLiteral(","));
return ret;
@@ -90,7 +90,7 @@ const DeviceInfo::Backend *DeviceInfo::BestBackend() const {
void DeviceInfo::LoadIcon(const QVariantList &icons, const QString &name_hint) {
- icon_name_ = "device";
+ icon_name_ = QStringLiteral("device");
if (icons.isEmpty()) {
icon_ = IconLoader::Load(icon_name_);
@@ -121,10 +121,10 @@ void DeviceInfo::LoadIcon(const QVariantList &icons, const QString &name_hint) {
QString icon_name = icon.toString();
if (!icon_name.isEmpty()) {
QString hint = icons.first().toString().toLower() + name_hint.toLower();
- if (hint.contains("phone")) icon_name_ = "device-phone";
- else if (hint.contains("ipod") || hint.contains("apple")) icon_name_ = "device-ipod";
- else if ((hint.contains("usb")) && (hint.contains("reader"))) icon_name_ = "device-usb-flash";
- else if (hint.contains("usb")) icon_name_ = "device-usb-drive";
+ if (hint.contains(QLatin1String("phone"))) icon_name_ = QStringLiteral("device-phone");
+ else if (hint.contains(QLatin1String("ipod")) || hint.contains(QLatin1String("apple"))) icon_name_ = QStringLiteral("device-ipod");
+ else if ((hint.contains(QLatin1String("usb"))) && (hint.contains(QLatin1String("reader")))) icon_name_ = QStringLiteral("device-usb-flash");
+ else if (hint.contains(QLatin1String("usb"))) icon_name_ = QStringLiteral("device-usb-drive");
icon_ = IconLoader::Load(icon_name_);
if (!icon_.isNull()) {
return;
@@ -133,7 +133,7 @@ void DeviceInfo::LoadIcon(const QVariantList &icons, const QString &name_hint) {
}
}
- icon_name_ = "device";
+ icon_name_ = QStringLiteral("device");
icon_ = IconLoader::Load(icon_name_);
}
diff --git a/src/device/devicelister.cpp b/src/device/devicelister.cpp
index 093a0272..9ffa31b0 100644
--- a/src/device/devicelister.cpp
+++ b/src/device/devicelister.cpp
@@ -110,48 +110,48 @@ QString GetIpodColour(Itdb_IpodModel model) {
case ITDB_IPOD_MODEL_MINI_GREEN:
case ITDB_IPOD_MODEL_NANO_GREEN:
case ITDB_IPOD_MODEL_SHUFFLE_GREEN:
- return "green";
+ return QStringLiteral("green");
case ITDB_IPOD_MODEL_MINI_BLUE:
case ITDB_IPOD_MODEL_NANO_BLUE:
case ITDB_IPOD_MODEL_SHUFFLE_BLUE:
- return "blue";
+ return QStringLiteral("blue");
case ITDB_IPOD_MODEL_MINI_PINK:
case ITDB_IPOD_MODEL_NANO_PINK:
case ITDB_IPOD_MODEL_SHUFFLE_PINK:
- return "pink";
+ return QStringLiteral("pink");
case ITDB_IPOD_MODEL_MINI_GOLD:
- return "gold";
+ return QStringLiteral("gold");
case ITDB_IPOD_MODEL_NANO_WHITE:
case ITDB_IPOD_MODEL_VIDEO_WHITE:
- return "white";
+ return QStringLiteral("white");
case ITDB_IPOD_MODEL_NANO_SILVER:
case ITDB_IPOD_MODEL_CLASSIC_SILVER:
- return "silver";
+ return QStringLiteral("silver");
case ITDB_IPOD_MODEL_NANO_RED:
case ITDB_IPOD_MODEL_SHUFFLE_RED:
- return "red";
+ return QStringLiteral("red");
case ITDB_IPOD_MODEL_NANO_YELLOW:
- return "yellow";
+ return QStringLiteral("yellow");
case ITDB_IPOD_MODEL_NANO_PURPLE:
case ITDB_IPOD_MODEL_SHUFFLE_PURPLE:
- return "purple";
+ return QStringLiteral("purple");
case ITDB_IPOD_MODEL_NANO_ORANGE:
case ITDB_IPOD_MODEL_SHUFFLE_ORANGE:
- return "orange";
+ return QStringLiteral("orange");
case ITDB_IPOD_MODEL_NANO_BLACK:
case ITDB_IPOD_MODEL_VIDEO_BLACK:
case ITDB_IPOD_MODEL_CLASSIC_BLACK:
- return "black";
+ return QStringLiteral("black");
default:
return QString();
@@ -167,7 +167,7 @@ QString GetIpodModel(Itdb_IpodModel model) {
case ITDB_IPOD_MODEL_MINI_PINK:
case ITDB_IPOD_MODEL_MINI_GREEN:
case ITDB_IPOD_MODEL_MINI_GOLD:
- return "mini";
+ return QStringLiteral("mini");
case ITDB_IPOD_MODEL_NANO_WHITE:
case ITDB_IPOD_MODEL_NANO_BLACK:
@@ -179,7 +179,7 @@ QString GetIpodModel(Itdb_IpodModel model) {
case ITDB_IPOD_MODEL_NANO_YELLOW:
case ITDB_IPOD_MODEL_NANO_PURPLE:
case ITDB_IPOD_MODEL_NANO_ORANGE:
- return "nano";
+ return QStringLiteral("nano");
case ITDB_IPOD_MODEL_SHUFFLE:
case ITDB_IPOD_MODEL_SHUFFLE_SILVER:
@@ -188,17 +188,17 @@ QString GetIpodModel(Itdb_IpodModel model) {
case ITDB_IPOD_MODEL_SHUFFLE_GREEN:
case ITDB_IPOD_MODEL_SHUFFLE_ORANGE:
case ITDB_IPOD_MODEL_SHUFFLE_RED:
- return "shuffle";
+ return QStringLiteral("shuffle");
case ITDB_IPOD_MODEL_COLOR:
case ITDB_IPOD_MODEL_REGULAR:
case ITDB_IPOD_MODEL_CLASSIC_SILVER:
case ITDB_IPOD_MODEL_CLASSIC_BLACK:
- return "standard";
+ return QStringLiteral("standard");
case ITDB_IPOD_MODEL_COLOR_U2:
case ITDB_IPOD_MODEL_REGULAR_U2:
- return "U2";
+ return QStringLiteral("U2");
default:
return QString();
@@ -213,7 +213,7 @@ QUrl DeviceLister::MakeUrlFromLocalPath(const QString &path) const {
if (IsIpod(path)) {
QUrl ret;
- ret.setScheme("ipod");
+ ret.setScheme(QStringLiteral("ipod"));
ret.setPath(QDir::fromNativeSeparators(path));
return ret;
}
@@ -246,10 +246,10 @@ QVariantList DeviceLister::GuessIconForPath(const QString &path) {
QString colour = GetIpodColour(info->ipod_model);
if (!model.isEmpty()) {
- QString model_icon = QString("multimedia-player-ipod-%1").arg(model);
+ QString model_icon = QStringLiteral("multimedia-player-ipod-%1").arg(model);
if (QFile(model_icon).exists()) ret << model_icon;
if (!colour.isEmpty()) {
- QString colour_icon = QString("multimedia-player-ipod-%1-%2").arg(model, colour);
+ QString colour_icon = QStringLiteral("multimedia-player-ipod-%1-%2").arg(model, colour);
if (QFile(colour_icon).exists()) ret << colour_icon;
}
}
@@ -274,7 +274,7 @@ QVariantList DeviceLister::GuessIconForPath(const QString &path) {
QVariantList DeviceLister::GuessIconForModel(const QString &vendor, const QString &model) {
QVariantList ret;
- if (vendor.startsWith("Google") && model.contains("Nexus")) {
+ if (vendor.startsWith(QLatin1String("Google")) && model.contains(QLatin1String("Nexus"))) {
ret << "phone-google-nexus-one";
}
return ret;
diff --git a/src/device/devicemanager.cpp b/src/device/devicemanager.cpp
index 1269f646..f20e7a46 100644
--- a/src/device/devicemanager.cpp
+++ b/src/device/devicemanager.cpp
@@ -91,7 +91,7 @@ const int DeviceManager::kDeviceIconOverlaySize = 16;
DeviceManager::DeviceManager(Application *app, QObject *parent)
: SimpleTreeModel(new DeviceInfo(this), parent),
app_(app),
- not_connected_overlay_(IconLoader::Load("edit-delete")) {
+ not_connected_overlay_(IconLoader::Load(QStringLiteral("edit-delete"))) {
thread_pool_.setMaxThreadCount(1);
QObject::connect(&*app_->task_manager(), &TaskManager::TasksChanged, this, &DeviceManager::TasksChanged);
@@ -289,7 +289,7 @@ QVariant DeviceManager::data(const QModelIndex &idx, int role) const {
}
if (info->size_ > 0) {
- text = text + QString(" (%1)").arg(Utilities::PrettySize(info->size_));
+ text = text + QStringLiteral(" (%1)").arg(Utilities::PrettySize(info->size_));
}
if (info->device_) info->device_->Refresh();
return text;
@@ -629,7 +629,7 @@ SharedPtr DeviceManager::Connect(DeviceInfo *info) {
url_strings << url.toString();
}
- app_->AddError(tr("This type of device is not supported: %1").arg(url_strings.join(", ")));
+ app_->AddError(tr("This type of device is not supported: %1").arg(url_strings.join(QStringLiteral(", "))));
return ret;
}
diff --git a/src/device/deviceproperties.cpp b/src/device/deviceproperties.cpp
index 4c337375..ae4bd390 100644
--- a/src/device/deviceproperties.cpp
+++ b/src/device/deviceproperties.cpp
@@ -89,13 +89,13 @@ void DeviceProperties::ShowDevice(const QModelIndex &idx) {
if (ui_->icon->count() == 0) {
// Only load the icons the first time the dialog is shown
QStringList icon_names = QStringList()
- << "device"
- << "device-usb-drive"
- << "device-usb-flash"
- << "media-optical"
- << "device-ipod"
- << "device-ipod-nano"
- << "device-phone";
+ << QStringLiteral("device")
+ << QStringLiteral("device-usb-drive")
+ << QStringLiteral("device-usb-flash")
+ << QStringLiteral("media-optical")
+ << QStringLiteral("device-ipod")
+ << QStringLiteral("device-ipod-nano")
+ << QStringLiteral("device-phone");
for (const QString &icon_name : icon_names) {
diff --git a/src/device/deviceview.cpp b/src/device/deviceview.cpp
index 3c751c2d..145ae664 100644
--- a/src/device/deviceview.cpp
+++ b/src/device/deviceview.cpp
@@ -143,7 +143,7 @@ void DeviceItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
QVariant song_count = idx.data(DeviceManager::Role_SongCount);
if (song_count.isValid()) {
int count = song_count.toInt();
- status_text = tr("%1 song%2").arg(count).arg(count == 1 ? "" : "s");
+ status_text = tr("%1 song%2").arg(count).arg(count == 1 ? QLatin1String("") : QLatin1String("s"));
}
else {
status_text = idx.data(DeviceManager::Role_MountPath).toString();
@@ -235,19 +235,19 @@ void DeviceView::contextMenuEvent(QContextMenuEvent *e) {
collection_menu_ = new QMenu(this);
// Device menu
- eject_action_ = device_menu_->addAction(IconLoader::Load("media-eject"), tr("Safely remove device"), this, &DeviceView::Unmount);
- forget_action_ = device_menu_->addAction(IconLoader::Load("list-remove"), tr("Forget device"), this, &DeviceView::Forget);
+ eject_action_ = device_menu_->addAction(IconLoader::Load(QStringLiteral("media-eject")), tr("Safely remove device"), this, &DeviceView::Unmount);
+ forget_action_ = device_menu_->addAction(IconLoader::Load(QStringLiteral("list-remove")), tr("Forget device"), this, &DeviceView::Forget);
device_menu_->addSeparator();
- properties_action_ = device_menu_->addAction(IconLoader::Load("configure"), tr("Device properties..."), this, &DeviceView::Properties);
+ properties_action_ = device_menu_->addAction(IconLoader::Load(QStringLiteral("configure")), tr("Device properties..."), this, &DeviceView::Properties);
// Collection menu
- add_to_playlist_action_ = collection_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this, &DeviceView::AddToPlaylist);
- load_action_ = collection_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this, &DeviceView::Load);
- open_in_new_playlist_ = collection_menu_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this, &DeviceView::OpenInNewPlaylist);
+ add_to_playlist_action_ = collection_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this, &DeviceView::AddToPlaylist);
+ load_action_ = collection_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this, &DeviceView::Load);
+ open_in_new_playlist_ = collection_menu_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this, &DeviceView::OpenInNewPlaylist);
collection_menu_->addSeparator();
- organize_action_ = collection_menu_->addAction(IconLoader::Load("edit-copy"), tr("Copy to collection..."), this, &DeviceView::Organize);
- delete_action_ = collection_menu_->addAction(IconLoader::Load("edit-delete"), tr("Delete from device..."), this, &DeviceView::Delete);
+ organize_action_ = collection_menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Copy to collection..."), this, &DeviceView::Organize);
+ delete_action_ = collection_menu_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Delete from device..."), this, &DeviceView::Delete);
}
menu_index_ = currentIndex();
diff --git a/src/device/filesystemdevice.h b/src/device/filesystemdevice.h
index d481b4a8..63847cf6 100644
--- a/src/device/filesystemdevice.h
+++ b/src/device/filesystemdevice.h
@@ -52,7 +52,7 @@ class FilesystemDevice : public ConnectedDevice, public virtual FilesystemMusicS
bool Init() override;
void CloseAsync();
- static QStringList url_schemes() { return QStringList() << "file"; }
+ static QStringList url_schemes() { return QStringList() << QStringLiteral("file"); }
private slots:
void Close() override;
diff --git a/src/device/giolister.cpp b/src/device/giolister.cpp
index 910e6d2b..c20f9a9c 100644
--- a/src/device/giolister.cpp
+++ b/src/device/giolister.cpp
@@ -51,10 +51,10 @@ QString GioLister::DeviceInfo::unique_id() const {
if (!volume_root_uri.isEmpty()) return volume_root_uri;
if (mount_ptr) {
- return QString("Gio/%1/%2/%3").arg(mount_uuid, filesystem_type).arg(filesystem_size);
+ return QStringLiteral("Gio/%1/%2/%3").arg(mount_uuid, filesystem_type).arg(filesystem_size);
}
else {
- return QString("Gio/unmounted/%1").arg(reinterpret_cast(volume_ptr.get()));
+ return QStringLiteral("Gio/unmounted/%1").arg(reinterpret_cast(volume_ptr.get()));
}
}
@@ -225,11 +225,11 @@ QList GioLister::MakeDeviceUrls(const QString &id) {
for (QString uri : uris) {
// gphoto2 gives invalid hostnames with []:, characters in
- uri.replace(QRegularExpression("//\\[usb:(\\d+),(\\d+)\\]"), "//usb-\\1-\\2");
+ uri.replace(QRegularExpression(QStringLiteral("//\\[usb:(\\d+),(\\d+)\\]")), QStringLiteral("//usb-\\1-\\2"));
QUrl url;
- if (uri.contains(QRegularExpression("..+:.*"))) {
+ if (uri.contains(QRegularExpression(QStringLiteral("..+:.*")))) {
url = QUrl::fromEncoded(uri.toUtf8());
}
else {
@@ -240,15 +240,15 @@ QList GioLister::MakeDeviceUrls(const QString &id) {
// Special case for file:// GIO URIs - we have to check whether they point to an ipod.
if (url.isLocalFile() && IsIpod(url.path())) {
- url.setScheme("ipod");
+ url.setScheme(QStringLiteral("ipod"));
}
- QRegularExpression device_re("usb/(\\d+)/(\\d+)");
+ QRegularExpression device_re(QStringLiteral("usb/(\\d+)/(\\d+)"));
QRegularExpressionMatch re_match = device_re.match(unix_device);
if (re_match.hasMatch()) {
QUrlQuery url_query(url);
- url_query.addQueryItem("busnum", re_match.captured(1));
- url_query.addQueryItem("devnum", re_match.captured(2));
+ url_query.addQueryItem(QStringLiteral("busnum"), re_match.captured(1));
+ url_query.addQueryItem(QStringLiteral("devnum"), re_match.captured(2));
url.setQuery(url_query);
}
@@ -292,12 +292,12 @@ void GioLister::VolumeAdded(GVolume *volume) {
DeviceInfo info;
info.ReadVolumeInfo(volume);
- if (info.volume_root_uri.startsWith("afc://") || info.volume_root_uri.startsWith("gphoto2://")) {
+ if (info.volume_root_uri.startsWith(QLatin1String("afc://")) || info.volume_root_uri.startsWith(QLatin1String("gphoto2://"))) {
// Handled by iLister.
return;
}
#ifdef HAVE_AUDIOCD
- if (info.volume_root_uri.startsWith("cdda")) {
+ if (info.volume_root_uri.startsWith(QLatin1String("cdda"))) {
// Audio CD devices are already handled by CDDA lister
return;
}
@@ -336,12 +336,12 @@ void GioLister::MountAdded(GMount *mount) {
DeviceInfo info;
info.ReadVolumeInfo(g_mount_get_volume(mount));
- if (info.volume_root_uri.startsWith("afc://") || info.volume_root_uri.startsWith("gphoto2://")) {
+ if (info.volume_root_uri.startsWith(QLatin1String("afc://")) || info.volume_root_uri.startsWith(QLatin1String("gphoto2://"))) {
// Handled by iLister.
return;
}
#ifdef HAVE_AUDIOCD
- if (info.volume_root_uri.startsWith("cdda")) {
+ if (info.volume_root_uri.startsWith(QLatin1String("cdda"))) {
// Audio CD devices are already handled by CDDA lister
return;
}
@@ -577,7 +577,7 @@ void GioLister::UpdateDeviceFreeSpace(const QString &id) {
{
QMutexLocker l(&mutex_);
- if (!devices_.contains(id) || !devices_[id].mount_ptr || devices_[id].volume_root_uri.startsWith("mtp://")) return;
+ if (!devices_.contains(id) || !devices_[id].mount_ptr || devices_[id].volume_root_uri.startsWith(QLatin1String("mtp://"))) return;
DeviceInfo &device_info = devices_[id];
@@ -604,7 +604,7 @@ void GioLister::UpdateDeviceFreeSpace(const QString &id) {
bool GioLister::DeviceNeedsMount(const QString &id) {
QMutexLocker l(&mutex_);
- return devices_.contains(id) && !devices_[id].mount_ptr && !devices_[id].volume_root_uri.startsWith("mtp://") && !devices_[id].volume_root_uri.startsWith("gphoto2://");
+ return devices_.contains(id) && !devices_[id].mount_ptr && !devices_[id].volume_root_uri.startsWith(QLatin1String("mtp://")) && !devices_[id].volume_root_uri.startsWith(QLatin1String("gphoto2://"));
}
@@ -631,7 +631,7 @@ void GioLister::MountDevice(const QString &id, const int request_id) {
void GioLister::UnmountDevice(const QString &id) {
QMutexLocker l(&mutex_);
- if (!devices_.contains(id) || !devices_[id].mount_ptr || devices_[id].volume_root_uri.startsWith("mtp://")) return;
+ if (!devices_.contains(id) || !devices_[id].mount_ptr || devices_[id].volume_root_uri.startsWith(QLatin1String("mtp://"))) return;
const DeviceInfo &info = devices_[id];
diff --git a/src/device/gpoddevice.h b/src/device/gpoddevice.h
index 31783dec..3352ef4f 100644
--- a/src/device/gpoddevice.h
+++ b/src/device/gpoddevice.h
@@ -59,7 +59,7 @@ class GPodDevice : public ConnectedDevice, public virtual MusicStorage {
bool IsLoading() override { return loader_; }
QObject *Loader() { return loader_; }
- static QStringList url_schemes() { return QStringList() << "ipod"; }
+ static QStringList url_schemes() { return QStringList() << QStringLiteral("ipod"); }
bool GetSupportedFiletypes(QList *ret) override;
diff --git a/src/device/mtpconnection.cpp b/src/device/mtpconnection.cpp
index 412f5484..f8ce86d2 100644
--- a/src/device/mtpconnection.cpp
+++ b/src/device/mtpconnection.cpp
@@ -37,7 +37,7 @@ MtpConnection::MtpConnection(const QUrl &url, QObject *parent) : QObject(parent)
QString hostname = url.host();
// Parse the URL
- QRegularExpression host_re("^usb-(\\d+)-(\\d+)$");
+ QRegularExpression host_re(QStringLiteral("^usb-(\\d+)-(\\d+)$"));
unsigned int bus_location = 0;
unsigned int device_num = 0;
@@ -49,9 +49,9 @@ MtpConnection::MtpConnection(const QUrl &url, QObject *parent) : QObject(parent)
bus_location = re_match.captured(1).toUInt();
device_num = re_match.captured(2).toUInt();
}
- else if (url_query.hasQueryItem("busnum")) {
- bus_location = url_query.queryItemValue("busnum").toUInt();
- device_num = url_query.queryItemValue("devnum").toUInt();
+ else if (url_query.hasQueryItem(QStringLiteral("busnum"))) {
+ bus_location = url_query.queryItemValue(QStringLiteral("busnum")).toUInt();
+ device_num = url_query.queryItemValue(QStringLiteral("devnum")).toUInt();
}
else {
error_text_ = tr("Invalid MTP device: %1").arg(hostname);
@@ -59,13 +59,13 @@ MtpConnection::MtpConnection(const QUrl &url, QObject *parent) : QObject(parent)
return;
}
- if (url_query.hasQueryItem("vendor")) {
+ if (url_query.hasQueryItem(QStringLiteral("vendor"))) {
LIBMTP_raw_device_t *raw_device = static_cast(malloc(sizeof(LIBMTP_raw_device_t)));
- raw_device->device_entry.vendor = url_query.queryItemValue("vendor").toLatin1().data();
- raw_device->device_entry.product = url_query.queryItemValue("product").toLatin1().data();
- raw_device->device_entry.vendor_id = url_query.queryItemValue("vendor_id").toUShort();
- raw_device->device_entry.product_id = url_query.queryItemValue("product_id").toUShort();
- raw_device->device_entry.device_flags = url_query.queryItemValue("quirks").toUInt();
+ raw_device->device_entry.vendor = url_query.queryItemValue(QStringLiteral("vendor")).toLatin1().data();
+ raw_device->device_entry.product = url_query.queryItemValue(QStringLiteral("product")).toLatin1().data();
+ raw_device->device_entry.vendor_id = url_query.queryItemValue(QStringLiteral("vendor_id")).toUShort();
+ raw_device->device_entry.product_id = url_query.queryItemValue(QStringLiteral("product_id")).toUShort();
+ raw_device->device_entry.device_flags = url_query.queryItemValue(QStringLiteral("quirks")).toUInt();
raw_device->bus_location = bus_location;
raw_device->devnum = device_num;
@@ -122,16 +122,16 @@ QString MtpConnection::ErrorString(const LIBMTP_error_number_t error_number) {
switch(error_number) {
case LIBMTP_ERROR_NO_DEVICE_ATTACHED:
- return "No Devices have been found.";
+ return QStringLiteral("No Devices have been found.");
case LIBMTP_ERROR_CONNECTING:
- return "There has been an error connecting.";
+ return QStringLiteral("There has been an error connecting.");
case LIBMTP_ERROR_MEMORY_ALLOCATION:
- return "Memory Allocation Error.";
+ return QStringLiteral("Memory Allocation Error.");
case LIBMTP_ERROR_GENERAL:
default:
- return "Unknown error, please report this to the libmtp developers.";
+ return QStringLiteral("Unknown error, please report this to the libmtp developers.");
case LIBMTP_ERROR_NONE:
- return "Successfully connected.";
+ return QStringLiteral("Successfully connected.");
}
}
diff --git a/src/device/mtpdevice.cpp b/src/device/mtpdevice.cpp
index 15b05d6d..a3ecf06d 100644
--- a/src/device/mtpdevice.cpp
+++ b/src/device/mtpdevice.cpp
@@ -76,7 +76,7 @@ MtpDevice::~MtpDevice() {
bool MtpDevice::Init() {
- InitBackendDirectory("/", first_time_, false);
+ InitBackendDirectory(QStringLiteral("/"), first_time_, false);
model_->Init();
loader_ = new MtpLoader(url_, app_->task_manager(), backend_);
@@ -187,7 +187,7 @@ bool MtpDevice::CopyToStorage(const CopyJob &job, QString &error_text) {
metadata_on_device.InitFromMTP(&track, url_.host());
metadata_on_device.set_directory_id(1);
metadata_on_device.set_artist(metadata_on_device.effective_albumartist());
- metadata_on_device.set_albumartist("");
+ metadata_on_device.set_albumartist(QLatin1String(""));
songs_to_add_ << metadata_on_device;
// Remove the original if requested
diff --git a/src/device/mtpdevice.h b/src/device/mtpdevice.h
index 8abad40b..0aa22ce3 100644
--- a/src/device/mtpdevice.h
+++ b/src/device/mtpdevice.h
@@ -51,7 +51,7 @@ class MtpDevice : public ConnectedDevice {
Q_INVOKABLE MtpDevice(const QUrl &url, DeviceLister *lister, const QString &unique_id, SharedPtr manager, Application *app, const int database_id, const bool first_time, QObject *parent = nullptr);
~MtpDevice() override;
- static QStringList url_schemes() { return QStringList() << "mtp"; }
+ static QStringList url_schemes() { return QStringList() << QStringLiteral("mtp"); }
bool Init() override;
void ConnectAsync() override;
diff --git a/src/device/udisks2lister.cpp b/src/device/udisks2lister.cpp
index bf66e465..d6f268bb 100644
--- a/src/device/udisks2lister.cpp
+++ b/src/device/udisks2lister.cpp
@@ -79,7 +79,7 @@ QVariantList Udisks2Lister::DeviceIcons(const QString &id) {
QString Udisks2Lister::DeviceManufacturer(const QString &id) {
QReadLocker locker(&device_data_lock_);
- if (!device_data_.contains(id)) return "";
+ if (!device_data_.contains(id)) return QLatin1String("");
return device_data_[id].vendor;
}
@@ -87,7 +87,7 @@ QString Udisks2Lister::DeviceManufacturer(const QString &id) {
QString Udisks2Lister::DeviceModel(const QString &id) {
QReadLocker locker(&device_data_lock_);
- if (!device_data_.contains(id)) return "";
+ if (!device_data_.contains(id)) return QLatin1String("");
return device_data_[id].model;
}
@@ -118,7 +118,7 @@ QVariantMap Udisks2Lister::DeviceHardwareInfo(const QString &id) {
const PartitionData &data = device_data_[id];
result[QT_TR_NOOP("D-Bus path")] = data.dbus_path;
result[QT_TR_NOOP("Serial number")] = data.serial;
- result[QT_TR_NOOP("Mount points")] = data.mount_paths.join(", ");
+ result[QT_TR_NOOP("Mount points")] = data.mount_paths.join(QStringLiteral(", "));
result[QT_TR_NOOP("Partition label")] = data.label;
result[QT_TR_NOOP("UUID")] = data.uuid;
@@ -129,7 +129,7 @@ QVariantMap Udisks2Lister::DeviceHardwareInfo(const QString &id) {
QString Udisks2Lister::MakeFriendlyName(const QString &id) {
QReadLocker locker(&device_data_lock_);
- if (!device_data_.contains(id)) return "";
+ if (!device_data_.contains(id)) return QLatin1String("");
return device_data_[id].friendly_name;
}
@@ -408,7 +408,7 @@ Udisks2Lister::PartitionData Udisks2Lister::ReadPartitionData(const QDBusObjectP
}
QString Udisks2Lister::PartitionData::unique_id() const {
- return QString("Udisks2/%1/%2/%3/%4/%5")
+ return QStringLiteral("Udisks2/%1/%2/%3/%4/%5")
.arg(serial, vendor, model)
.arg(capacity)
.arg(uuid);
diff --git a/src/dialogs/about.cpp b/src/dialogs/about.cpp
index d9a7561e..8963f8ba 100644
--- a/src/dialogs/about.cpp
+++ b/src/dialogs/about.cpp
@@ -43,47 +43,47 @@ About::About(QWidget *parent) : QDialog(parent), ui_{} {
setWindowTitle(tr("About Strawberry"));
strawberry_authors_ \
- << Person("Jonas Kvinge");
+ << Person(QStringLiteral("Jonas Kvinge"));
strawberry_contributors_ \
- << Person("Gavin D. Howard")
- << Person("Martin Delille");
+ << Person(QStringLiteral("Gavin D. Howard"))
+ << Person(QStringLiteral("Martin Delille"));
clementine_authors_
- << Person("David Sansome")
- << Person("John Maguire")
- << Person(QString::fromUtf8("Paweł Bara"))
- << Person("Arnaud Bienner");
+ << Person(QStringLiteral("David Sansome"))
+ << Person(QStringLiteral("John Maguire"))
+ << Person(QStringLiteral("Paweł Bara"))
+ << Person(QStringLiteral("Arnaud Bienner"));
clementine_contributors_ \
- << Person("Jakub Stachowski")
- << Person("Paul Cifarelli")
- << Person("Felipe Rivera")
- << Person("Alexander Peitz")
- << Person("Andreas Muttscheller")
- << Person("Mark Furneaux")
- << Person("Florian Bigard")
- << Person("Alex Bikadorov")
- << Person("Mattias Andersson")
- << Person("Alan Briolat")
- << Person("Arun Narayanankutty")
- << Person(QString::fromUtf8("Bartłomiej Burdukiewicz"))
- << Person("Andre Siviero")
- << Person("Santiago Gil")
- << Person("Tyler Rhodes")
- << Person("Vikram Ambrose")
- << Person("David Guillen")
- << Person("Krzysztof Sobiecki")
- << Person("Valeriy Malov")
- << Person("Nick Lanham");
+ << Person(QStringLiteral("Jakub Stachowski"))
+ << Person(QStringLiteral("Paul Cifarelli"))
+ << Person(QStringLiteral("Felipe Rivera"))
+ << Person(QStringLiteral("Alexander Peitz"))
+ << Person(QStringLiteral("Andreas Muttscheller"))
+ << Person(QStringLiteral("Mark Furneaux"))
+ << Person(QStringLiteral("Florian Bigard"))
+ << Person(QStringLiteral("Alex Bikadorov"))
+ << Person(QStringLiteral("Mattias Andersson"))
+ << Person(QStringLiteral("Alan Briolat"))
+ << Person(QStringLiteral("Arun Narayanankutty"))
+ << Person(QStringLiteral("Bartłomiej Burdukiewicz"))
+ << Person(QStringLiteral("Andre Siviero"))
+ << Person(QStringLiteral("Santiago Gil"))
+ << Person(QStringLiteral("Tyler Rhodes"))
+ << Person(QStringLiteral("Vikram Ambrose"))
+ << Person(QStringLiteral("David Guillen"))
+ << Person(QStringLiteral("Krzysztof Sobiecki"))
+ << Person(QStringLiteral("Valeriy Malov"))
+ << Person(QStringLiteral("Nick Lanham"));
strawberry_thanks_ \
- << Person("Mark Kretschmann")
- << Person("Max Howell")
- << Person("Artur Rona")
- << Person("Robert-André Mauchin")
- << Person("Thomas Pierson")
- << Person("Fabio Loli");
+ << Person(QStringLiteral("Mark Kretschmann"))
+ << Person(QStringLiteral("Max Howell"))
+ << Person(QStringLiteral("Artur Rona"))
+ << Person(QStringLiteral("Robert-André Mauchin"))
+ << Person(QStringLiteral("Thomas Pierson"))
+ << Person(QStringLiteral("Fabio Loli"));
QFont title_font;
title_font.setBold(true);
@@ -92,7 +92,7 @@ About::About(QWidget *parent) : QDialog(parent), ui_{} {
ui_.label_title->setFont(title_font);
ui_.label_title->setText(windowTitle());
ui_.label_text->setText(MainHtml());
- ui_.text_contributors->document()->setDefaultStyleSheet(QString("a {color: %1; }").arg(palette().text().color().name()));
+ ui_.text_contributors->document()->setDefaultStyleSheet(QStringLiteral("a {color: %1; }").arg(palette().text().color().name()));
ui_.text_contributors->setText(ContributorsHtml());
ui_.buttonBox->button(QDialogButtonBox::Close)->setShortcut(QKeySequence::Close);
@@ -103,31 +103,31 @@ QString About::MainHtml() const {
QString ret;
- ret += QString("");
+ ret += QStringLiteral("
");
ret += tr("Version %1").arg(QCoreApplication::applicationVersion());
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
+ ret += QStringLiteral("
");
ret += tr("Strawberry is a music player and music collection organizer.");
- ret += QString(" ");
+ ret += QStringLiteral(" ");
ret += tr("It is a fork of Clementine released in 2018 aimed at music collectors and audiophiles.");
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
- ret += tr("Strawberry is free software released under GPL. The source code is available on %1").arg(QString("GitHub .").arg(palette().text().color().name()));
- ret += QString(" ");
- ret += tr("You should have received a copy of the GNU General Public License along with this program. If not, see %1").arg(QString("http://www.gnu.org/licenses/ ").arg(palette().text().color().name()));
- ret += QString("
");
+ ret += QStringLiteral("");
+ ret += tr("Strawberry is free software released under GPL. The source code is available on %1").arg(QStringLiteral("GitHub .").arg(palette().text().color().name()));
+ ret += QStringLiteral(" ");
+ ret += tr("You should have received a copy of the GNU General Public License along with this program. If not, see %1").arg(QStringLiteral("http://www.gnu.org/licenses/ ").arg(palette().text().color().name()));
+ ret += QStringLiteral("
");
- ret += QString("");
+ ret += QStringLiteral("
");
ret += tr("If you like Strawberry and can make use of it, consider sponsoring or donating.");
- ret += QString(" ");
+ ret += QStringLiteral(" ");
ret += tr("You can sponsor the author on %1. You can also make a one-time payment through %2.").arg(
- QString("GitHub sponsors ").arg(palette().text().color().name()),
- QString("paypal.me/jonaskvinge ").arg(palette().text().color().name())
+ QStringLiteral("GitHub sponsors ").arg(palette().text().color().name()),
+ QStringLiteral("paypal.me/jonaskvinge ").arg(palette().text().color().name())
);
- ret += QString("
");
+ ret += QStringLiteral("");
return ret;
@@ -137,54 +137,54 @@ QString About::ContributorsHtml() const {
QString ret;
- ret += QString("");
- ret += "";
+ ret += QStringLiteral("
");
+ ret += QLatin1String("");
ret += tr("Author and maintainer");
- ret += " ";
+ ret += QLatin1String("");
for (const Person &person : strawberry_authors_) {
ret += " " + PersonToHtml(person);
}
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
- ret += "";
+ ret += QStringLiteral("
");
+ ret += QLatin1String("");
ret += tr("Contributors");
- ret += " ";
+ ret += QLatin1String("");
for (const Person &person : strawberry_contributors_) {
ret += " " + PersonToHtml(person);
}
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
- ret += "";
+ ret += QStringLiteral("
");
+ ret += QLatin1String("");
ret += tr("Clementine authors");
- ret += " ";
+ ret += QLatin1String("");
for (const Person &person : clementine_authors_) {
ret += " " + PersonToHtml(person);
}
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
- ret += "";
+ ret += QStringLiteral("
");
+ ret += QLatin1String("");
ret += tr("Clementine contributors");
- ret += " ";
+ ret += QLatin1String("");
for (const Person &person : clementine_contributors_) {
ret += " " + PersonToHtml(person);
}
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
- ret += "";
+ ret += QStringLiteral("
");
+ ret += QLatin1String("");
ret += tr("Thanks to");
- ret += " ";
+ ret += QLatin1String("");
for (const Person &person : strawberry_thanks_) {
ret += " " + PersonToHtml(person);
}
- ret += QString("
");
+ ret += QStringLiteral("");
- ret += QString("");
+ ret += QStringLiteral("
");
ret += tr("Thanks to all the other Amarok and Clementine contributors.");
- ret += QString("
");
+ ret += QStringLiteral("");
return ret;
}
@@ -195,6 +195,6 @@ QString About::PersonToHtml(const Person &person) {
return person.name;
}
else {
- return QString("%1 <%3 >").arg(person.name, person.email, person.email);
+ return QStringLiteral("%1 <%3 >").arg(person.name, person.email, person.email);
}
}
diff --git a/src/dialogs/console.cpp b/src/dialogs/console.cpp
index 25966089..a58dc681 100644
--- a/src/dialogs/console.cpp
+++ b/src/dialogs/console.cpp
@@ -48,7 +48,7 @@ Console::Console(Application *app, QWidget *parent) : QDialog(parent), ui_{}, ap
QObject::connect(ui_.run, &QPushButton::clicked, this, &Console::RunQuery);
- QFont font("Monospace");
+ QFont font(QStringLiteral("Monospace"));
font.setStyleHint(QFont::TypeWriter);
ui_.output->setFont(font);
@@ -79,7 +79,7 @@ void Console::RunQuery() {
values.append(record.value(i).toString());
}
- ui_.output->append(values.join("|"));
+ ui_.output->append(values.join(QStringLiteral("|")));
}
diff --git a/src/dialogs/edittagdialog.cpp b/src/dialogs/edittagdialog.cpp
index 60c24235..bf643111 100644
--- a/src/dialogs/edittagdialog.cpp
+++ b/src/dialogs/edittagdialog.cpp
@@ -225,8 +225,8 @@ EditTagDialog::EditTagDialog(Application *app, QWidget *parent)
ui_->summary_art->installEventFilter(this);
// Add the next/previous buttons
- previous_button_ = new QPushButton(IconLoader::Load("go-previous"), tr("Previous"), this);
- next_button_ = new QPushButton(IconLoader::Load("go-next"), tr("Next"), this);
+ previous_button_ = new QPushButton(IconLoader::Load(QStringLiteral("go-previous")), tr("Previous"), this);
+ next_button_ = new QPushButton(IconLoader::Load(QStringLiteral("go-next")), tr("Next"), this);
ui_->button_box->addButton(previous_button_, QDialogButtonBox::ResetRole);
ui_->button_box->addButton(next_button_, QDialogButtonBox::ResetRole);
@@ -240,11 +240,11 @@ EditTagDialog::EditTagDialog(Application *app, QWidget *parent)
new QShortcut(QKeySequence::MoveToNextPage, next_button_, SLOT(click()));
// Show the shortcuts as tooltips
- previous_button_->setToolTip(QString("%1 (%2 / %3)").arg(
+ previous_button_->setToolTip(QStringLiteral("%1 (%2 / %3)").arg(
previous_button_->text(),
QKeySequence(QKeySequence::Back).toString(QKeySequence::NativeText),
QKeySequence(QKeySequence::MoveToPreviousPage).toString(QKeySequence::NativeText)));
- next_button_->setToolTip(QString("%1 (%2 / %3)").arg(
+ next_button_->setToolTip(QStringLiteral("%1 (%2 / %3)").arg(
next_button_->text(),
QKeySequence(QKeySequence::Forward).toString(QKeySequence::NativeText),
QKeySequence(QKeySequence::MoveToNextPage).toString(QKeySequence::NativeText)));
@@ -690,9 +690,9 @@ void EditTagDialog::SelectionChanged() {
summary += "" + first_song.PrettyTitleWithArtist().toHtmlEscaped() + "
";
}
else {
- summary += "";
+ summary += QLatin1String("
");
summary += tr("%1 songs selected.").arg(indexes.count());
- summary += "
";
+ summary += QLatin1String("");
}
ui_->tags_summary->setText(summary);
@@ -787,8 +787,8 @@ void EditTagDialog::UpdateSummaryTab(const Song &song) {
ui_->length->setText(Utilities::PrettyTimeNanosec(song.length_nanosec()));
- SetText(ui_->samplerate, song.samplerate(), "Hz");
- SetText(ui_->bitdepth, song.bitdepth(), "Bit");
+ SetText(ui_->samplerate, song.samplerate(), QStringLiteral("Hz"));
+ SetText(ui_->bitdepth, song.bitdepth(), QStringLiteral("Bit"));
SetText(ui_->bitrate, song.bitrate(), tr("kbps"));
ui_->ebur128_integrated_loudness->setText(song.Ebur128LoudnessLUFSToText());
ui_->ebur128_loudness_range->setText(song.Ebur128LoudnessRangeLUToText());
@@ -859,7 +859,7 @@ QString EditTagDialog::GetArtSummary(const Song &song, const AlbumCoverLoaderRes
}
if (!song.is_collection_song()) {
- if (!summary.isEmpty()) summary += " ";
+ if (!summary.isEmpty()) summary += QLatin1String(" ");
summary = tr("Album cover editing is only available for collection songs.");
}
@@ -906,8 +906,8 @@ void EditTagDialog::AlbumCoverLoaded(const quint64 id, const AlbumCoverLoaderRes
if (ui_->song_list->selectionModel()->selectedIndexes().count() > 0) {
const QModelIndex idx = ui_->song_list->selectionModel()->selectedIndexes().first();
QString summary = ui_->summary->toPlainText();
- summary += " ";
- summary += " ";
+ summary += QLatin1String(" ");
+ summary += QLatin1String(" ");
summary += GetArtSummary(data_[idx.row()].current_, result.type);
ui_->summary->setText(summary);
}
@@ -932,8 +932,8 @@ void EditTagDialog::AlbumCoverLoaded(const quint64 id, const AlbumCoverLoaderRes
bool enable_change_art = false;
if (first_song.is_valid()) {
QString summary = ui_->tags_summary->toPlainText();
- summary += " ";
- summary += " ";
+ summary += QLatin1String(" ");
+ summary += QLatin1String(" ");
if (cover_action == UpdateCoverAction::None) {
summary += GetArtSummary(first_song, result.type);
}
diff --git a/src/dialogs/errordialog.cpp b/src/dialogs/errordialog.cpp
index 304803d1..5afced14 100644
--- a/src/dialogs/errordialog.cpp
+++ b/src/dialogs/errordialog.cpp
@@ -81,7 +81,7 @@ void ErrorDialog::UpdateContent() {
QString html;
for (const QString &message : current_messages_) {
if (!html.isEmpty()) {
- html += " ";
+ html += QLatin1String(" ");
}
html += message.toHtmlEscaped();
}
diff --git a/src/dialogs/lastfmimportdialog.cpp b/src/dialogs/lastfmimportdialog.cpp
index fd41f8af..f452c1d6 100644
--- a/src/dialogs/lastfmimportdialog.cpp
+++ b/src/dialogs/lastfmimportdialog.cpp
@@ -41,7 +41,7 @@ LastFMImportDialog::LastFMImportDialog(SharedPtr lastfm_import, QW
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("scrobble"));
+ setWindowIcon(IconLoader::Load(QStringLiteral("scrobble")));
ui_->stackedWidget->setCurrentWidget(ui_->page_start);
diff --git a/src/dialogs/snapdialog.cpp b/src/dialogs/snapdialog.cpp
index e7cc492e..67b50b0f 100644
--- a/src/dialogs/snapdialog.cpp
+++ b/src/dialogs/snapdialog.cpp
@@ -29,7 +29,7 @@ SnapDialog::SnapDialog(QWidget *parent) : MessageDialog(parent) {
setWindowTitle(tr("Strawberry is running as a Snap"));
- const QIcon icon = IconLoader::Load("dialog-warning");
+ const QIcon icon = IconLoader::Load(QStringLiteral("dialog-warning"));
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
const QPixmap pixmap = icon.pixmap(QSize(64, 64), devicePixelRatioF());
#else
@@ -38,56 +38,56 @@ SnapDialog::SnapDialog(QWidget *parent) : MessageDialog(parent) {
ui_->label_logo->setPixmap(pixmap);
QString text;
- text += QString("");
+ text += QStringLiteral("
");
text += tr("It is detected that Strawberry is running as a Snap");
- text += QString("
");
+ text += QStringLiteral("");
- text += QString("");
+ text += QStringLiteral("
");
text += tr("Strawberry is slower, and has restrictions when running as a Snap. Accessing the root filesystem (/) will not work. There also might be other restrictions such as accessing certain devices or network shares.");
- text += QString("
");
+ text += QStringLiteral("");
- text += QString("");
- text += QString("Strawberry is available natively in the official package repositories for Fedora, openSUSE, Mageia, Arch, Manjaro, MX Linux and most other popular Linux distributions.");
- text += QString("
");
+ text += QStringLiteral("");
+ text += QStringLiteral("Strawberry is available natively in the official package repositories for Fedora, openSUSE, Mageia, Arch, Manjaro, MX Linux and most other popular Linux distributions.");
+ text += QStringLiteral("
");
- text += QString("");
- text += tr("For Ubuntu there is an official PPA repository available at %1.").arg(QString("https://launchpad.net/~jonaski/+archive/ubuntu/strawberry ").arg(palette().text().color().name()));
- text += QString("
");
+ text += QStringLiteral("");
+ text += tr("For Ubuntu there is an official PPA repository available at %1.").arg(QStringLiteral("https://launchpad.net/~jonaski/+archive/ubuntu/strawberry ").arg(palette().text().color().name()));
+ text += QStringLiteral("
");
- text += QString("");
- text += tr("Official releases are available for Debian and Ubuntu which also work on most of their derivatives. See %1 for more information.").arg(QString("https://www.strawberrymusicplayer.org/ ").arg(palette().text().color().name()));
- text += QString("
");
+ text += QStringLiteral("");
+ text += tr("Official releases are available for Debian and Ubuntu which also work on most of their derivatives. See %1 for more information.").arg(QStringLiteral("https://www.strawberrymusicplayer.org/ ").arg(palette().text().color().name()));
+ text += QStringLiteral("
");
- text += QString("");
+ text += QStringLiteral("
");
text += tr("For a better experience please consider the other options above.");
- text += QString("
");
+ text += QStringLiteral("");
- text += QString("");
+ text += QStringLiteral("
");
text += tr("Copy your strawberry.conf and strawberry.db from your ~/snap directory to avoid losing configuration before you uninstall the snap:");
- text += QString(" ");
- text += QString("cp ~/snap/strawberry/current/.config/strawberry/strawberry.conf ~/.config/strawberry/strawberry.conf ");
- text += QString("cp ~/snap/strawberry/current/.local/share/strawberry/strawberry/strawberry.db ~/.local/share/strawberry/strawberry/strawberry.db ");
- text += QString("
");
- text += QString("");
+ text += QStringLiteral(" ");
+ text += QStringLiteral("cp ~/snap/strawberry/current/.config/strawberry/strawberry.conf ~/.config/strawberry/strawberry.conf ");
+ text += QStringLiteral("cp ~/snap/strawberry/current/.local/share/strawberry/strawberry/strawberry.db ~/.local/share/strawberry/strawberry/strawberry.db ");
+ text += QStringLiteral("
");
+ text += QStringLiteral("");
text += tr("Uninstall the snap with:");
- text += QString(" ");
- text += QString("snap remove strawberry");
- text += QString("
");
- text += QString("");
+ text += QStringLiteral(" ");
+ text += QStringLiteral("snap remove strawberry");
+ text += QStringLiteral("
");
+ text += QStringLiteral("");
text += tr("Install strawberry through PPA:");
- text += QString(" ");
- text += QString("sudo add-apt-repository ppa:jonaski/strawberry ");
- text += QString("sudo apt-get update ");
- text += QString("sudo apt install strawberry");
- text += QString("
");
- text += QString("
");
+ text += QStringLiteral(" ");
+ text += QStringLiteral("sudo add-apt-repository ppa:jonaski/strawberry ");
+ text += QStringLiteral("sudo apt-get update ");
+ text += QStringLiteral("sudo apt install strawberry");
+ text += QStringLiteral("");
+ text += QStringLiteral("
");
ui_->label_text->setText(text);
ui_->label_text->adjustSize();
adjustSize();
settings_group_ = MainWindow::kSettingsGroup;
- do_not_show_message_again_ = "ignore_snap";
+ do_not_show_message_again_ = QStringLiteral("ignore_snap");
if (parent) {
Utilities::CenterWidgetOnScreen(Utilities::GetScreen(parent), this);
diff --git a/src/dialogs/trackselectiondialog.cpp b/src/dialogs/trackselectiondialog.cpp
index 99ec36ab..5f51daa2 100644
--- a/src/dialogs/trackselectiondialog.cpp
+++ b/src/dialogs/trackselectiondialog.cpp
@@ -66,8 +66,8 @@ TrackSelectionDialog::TrackSelectionDialog(QWidget *parent)
SetLoading(QString());
// Add the next/previous buttons
- previous_button_ = new QPushButton(IconLoader::Load("go-previous"), tr("Previous"), this);
- next_button_ = new QPushButton(IconLoader::Load("go-next"), tr("Next"), this);
+ previous_button_ = new QPushButton(IconLoader::Load(QStringLiteral("go-previous")), tr("Previous"), this);
+ next_button_ = new QPushButton(IconLoader::Load(QStringLiteral("go-next")), tr("Next"), this);
ui_->button_box->addButton(previous_button_, QDialogButtonBox::ResetRole);
ui_->button_box->addButton(next_button_, QDialogButtonBox::ResetRole);
diff --git a/src/engine/alsadevicefinder.cpp b/src/engine/alsadevicefinder.cpp
index ae1bd0c4..58da7a27 100644
--- a/src/engine/alsadevicefinder.cpp
+++ b/src/engine/alsadevicefinder.cpp
@@ -31,7 +31,7 @@
#include "alsadevicefinder.h"
#include "enginedevice.h"
-AlsaDeviceFinder::AlsaDeviceFinder() : DeviceFinder("alsa", { "alsa", "alsasink" }) {}
+AlsaDeviceFinder::AlsaDeviceFinder() : DeviceFinder(QStringLiteral("alsa"), { "alsa", "alsasink" }) {}
EngineDeviceList AlsaDeviceFinder::ListDevices() {
@@ -91,14 +91,14 @@ EngineDeviceList AlsaDeviceFinder::ListDevices() {
}
EngineDevice device;
- device.description = QString("%1 %2").arg(snd_ctl_card_info_get_name(cardinfo), snd_pcm_info_get_name(pcminfo));
+ device.description = QStringLiteral("%1 %2").arg(snd_ctl_card_info_get_name(cardinfo), snd_pcm_info_get_name(pcminfo));
device.iconname = device.GuessIconName();
device.card = card;
device.device = dev;
- device.value = QString("hw:%1,%2").arg(card).arg(dev);
+ device.value = QStringLiteral("hw:%1,%2").arg(card).arg(dev);
devices.append(device);
- device.value = QString("plughw:%1,%2").arg(card).arg(dev);
+ device.value = QStringLiteral("plughw:%1,%2").arg(card).arg(dev);
devices.append(device);
}
diff --git a/src/engine/alsapcmdevicefinder.cpp b/src/engine/alsapcmdevicefinder.cpp
index 2f24fd07..ebe5084d 100644
--- a/src/engine/alsapcmdevicefinder.cpp
+++ b/src/engine/alsapcmdevicefinder.cpp
@@ -28,7 +28,7 @@
#include "alsapcmdevicefinder.h"
#include "enginedevice.h"
-AlsaPCMDeviceFinder::AlsaPCMDeviceFinder() : DeviceFinder("alsa", { "alsa", "alsasink" }) {}
+AlsaPCMDeviceFinder::AlsaPCMDeviceFinder() : DeviceFinder(QStringLiteral("alsa"), { "alsa", "alsasink" }) {}
EngineDeviceList AlsaPCMDeviceFinder::ListDevices() {
diff --git a/src/engine/chromaprinter.cpp b/src/engine/chromaprinter.cpp
index 8e723ae5..fd81c5f1 100644
--- a/src/engine/chromaprinter.cpp
+++ b/src/engine/chromaprinter.cpp
@@ -78,11 +78,11 @@ QString Chromaprinter::CreateFingerprint() {
return QString();
}
- GstElement *src = CreateElement("filesrc", pipeline);
- GstElement *decode = CreateElement("decodebin", pipeline);
- GstElement *convert = CreateElement("audioconvert", pipeline);
- GstElement *resample = CreateElement("audioresample", pipeline);
- GstElement *sink = CreateElement("appsink", pipeline);
+ GstElement *src = CreateElement(QStringLiteral("filesrc"), pipeline);
+ GstElement *decode = CreateElement(QStringLiteral("decodebin"), pipeline);
+ GstElement *convert = CreateElement(QStringLiteral("audioconvert"), pipeline);
+ GstElement *resample = CreateElement(QStringLiteral("audioresample"), pipeline);
+ GstElement *sink = CreateElement(QStringLiteral("appsink"), pipeline);
if (!src || !decode || !convert || !resample || !sink) {
gst_object_unref(pipeline);
diff --git a/src/engine/ebur128analysis.cpp b/src/engine/ebur128analysis.cpp
index f41a8949..da71c08a 100644
--- a/src/engine/ebur128analysis.cpp
+++ b/src/engine/ebur128analysis.cpp
@@ -394,11 +394,11 @@ std::optional EBUR128AnalysisImpl::Compute(const Song &song) {
return std::nullopt;
}
- GstElement *src = CreateElement("filesrc", pipeline);
- GstElement *decode = CreateElement("decodebin", pipeline);
- GstElement *convert = CreateElement("audioconvert", pipeline);
- GstElement *queue = CreateElement("queue2", pipeline);
- GstElement *sink = CreateElement("appsink", pipeline);
+ GstElement *src = CreateElement(QStringLiteral("filesrc"), pipeline);
+ GstElement *decode = CreateElement(QStringLiteral("decodebin"), pipeline);
+ GstElement *convert = CreateElement(QStringLiteral("audioconvert"), pipeline);
+ GstElement *queue = CreateElement(QStringLiteral("queue2"), pipeline);
+ GstElement *sink = CreateElement(QStringLiteral("appsink"), pipeline);
if (!src || !decode || !convert || !queue || !sink) {
gst_object_unref(pipeline);
diff --git a/src/engine/enginebase.cpp b/src/engine/enginebase.cpp
index fdd93017..4019d357 100644
--- a/src/engine/enginebase.cpp
+++ b/src/engine/enginebase.cpp
@@ -79,8 +79,8 @@ EngineBase::~EngineBase() = default;
EngineBase::Type EngineBase::TypeFromName(const QString &name) {
- if (name.compare("gstreamer", Qt::CaseInsensitive) == 0) return Type::GStreamer;
- if (name.compare("vlc", Qt::CaseInsensitive) == 0) return Type::VLC;
+ if (name.compare(QLatin1String("gstreamer"), Qt::CaseInsensitive) == 0) return Type::GStreamer;
+ if (name.compare(QLatin1String("vlc"), Qt::CaseInsensitive) == 0) return Type::VLC;
return Type::None;
@@ -89,10 +89,10 @@ EngineBase::Type EngineBase::TypeFromName(const QString &name) {
QString EngineBase::Name(const Type type) {
switch (type) {
- case Type::GStreamer: return QString("gstreamer");
- case Type::VLC: return QString("vlc");
+ case Type::GStreamer: return QStringLiteral("gstreamer");
+ case Type::VLC: return QStringLiteral("vlc");
case Type::None:
- default: return QString("None");
+ default: return QStringLiteral("None");
}
}
@@ -100,10 +100,10 @@ QString EngineBase::Name(const Type type) {
QString EngineBase::Description(const Type type) {
switch (type) {
- case Type::GStreamer: return QString("GStreamer");
- case Type::VLC: return QString("VLC");
+ case Type::GStreamer: return QStringLiteral("GStreamer");
+ case Type::VLC: return QStringLiteral("VLC");
case Type::None:
- default: return QString("None");
+ default: return QStringLiteral("None");
}
}
@@ -203,8 +203,8 @@ void EngineBase::ReloadSettings() {
bool http2_enabled = s.value("http2", false).toBool();
if (http2_enabled != http2_enabled_) {
http2_enabled_ = http2_enabled;
- Utilities::SetEnv("SOUP_FORCE_HTTP1", http2_enabled_ ? "" : "1");
- qLog(Debug) << "SOUP_FORCE_HTTP1:" << (http2_enabled_ ? "OFF" : "ON");
+ Utilities::SetEnv("SOUP_FORCE_HTTP1", http2_enabled_ ? QLatin1String("") : QStringLiteral("1"));
+ qLog(Debug) << "SOUP_FORCE_HTTP1:" << (http2_enabled_ ? QLatin1String("OFF") : QLatin1String("ON"));
}
strict_ssl_enabled_ = s.value("strict_ssl", false).toBool();
@@ -223,7 +223,7 @@ void EngineBase::ReloadSettings() {
proxy_pass_.clear();
}
else {
- proxy_address_ = QString("%1:%2").arg(proxy_host).arg(proxy_port);
+ proxy_address_ = QStringLiteral("%1:%2").arg(proxy_host).arg(proxy_port);
proxy_authentication_ = s.value("use_authentication").toBool();
proxy_user_ = s.value("username").toString();
proxy_pass_ = s.value("password").toString();
diff --git a/src/engine/enginedevice.cpp b/src/engine/enginedevice.cpp
index 5e1b1ad5..f618492c 100644
--- a/src/engine/enginedevice.cpp
+++ b/src/engine/enginedevice.cpp
@@ -23,28 +23,28 @@ EngineDevice::EngineDevice() : card(0), device(0) {}
QString EngineDevice::GuessIconName() const {
- if (description.contains("mcintosh", Qt::CaseInsensitive)) {
- return "mcintosh";
+ if (description.contains(QLatin1String("mcintosh"), Qt::CaseInsensitive)) {
+ return QStringLiteral("mcintosh");
}
- if (description.contains("electrocompaniet", Qt::CaseInsensitive)) {
- return "electrocompaniet";
+ if (description.contains(QLatin1String("electrocompaniet"), Qt::CaseInsensitive)) {
+ return QStringLiteral("electrocompaniet");
}
- if (description.contains("intel", Qt::CaseInsensitive)) {
- return "intel";
+ if (description.contains(QLatin1String("intel"), Qt::CaseInsensitive)) {
+ return QStringLiteral("intel");
}
- if (description.contains("realtek", Qt::CaseInsensitive)) {
- return "realtek";
+ if (description.contains(QLatin1String("realtek"), Qt::CaseInsensitive)) {
+ return QStringLiteral("realtek");
}
- if (description.contains("nvidia", Qt::CaseInsensitive)) {
- return "nvidia";
+ if (description.contains(QLatin1String("nvidia"), Qt::CaseInsensitive)) {
+ return QStringLiteral("nvidia");
}
- if (description.contains("headset", Qt::CaseInsensitive)) {
- return "headset";
+ if (description.contains(QLatin1String("headset"), Qt::CaseInsensitive)) {
+ return QStringLiteral("headset");
}
- if (description.contains("pulseaudio", Qt::CaseInsensitive)) {
- return "pulseaudio";
+ if (description.contains(QLatin1String("pulseaudio"), Qt::CaseInsensitive)) {
+ return QStringLiteral("pulseaudio");
}
- return "soundcard";
+ return QStringLiteral("soundcard");
}
diff --git a/src/engine/gstengine.cpp b/src/engine/gstengine.cpp
index 980187cd..e220cdd6 100644
--- a/src/engine/gstengine.cpp
+++ b/src/engine/gstengine.cpp
@@ -416,23 +416,23 @@ EngineBase::OutputDetailsList GstEngine::GetOutputsList() const {
GstElementFactory *factory = GST_ELEMENT_FACTORY(future->data);
const QString metadata = QString::fromUtf8(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS));
const QString name = QString::fromUtf8(gst_plugin_feature_get_name(future->data));
- if (metadata.startsWith("Sink/Audio", Qt::CaseInsensitive) || name == "pipewiresink" || (metadata.startsWith("Source/Audio", Qt::CaseInsensitive) && name.contains("sink"))) {
+ if (metadata.startsWith(QLatin1String("Sink/Audio"), Qt::CaseInsensitive) || name == "pipewiresink" || (metadata.startsWith(QLatin1String("Source/Audio"), Qt::CaseInsensitive) && name.contains(QLatin1String("sink")))) {
QString description = QString::fromUtf8(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_DESCRIPTION));
if (name == "wasapi2sink" && description == "Stream audio to an audio capture device through WASAPI") {
description.append("2");
}
else if (name == "pipewiresink" && description == "Send video to PipeWire") {
- description = "Send audio to PipeWire";
+ description = QStringLiteral("Send audio to PipeWire");
}
OutputDetails output;
output.name = name;
output.description = description;
- if (output.name == kAutoSink) output.iconname = "soundcard";
- else if (output.name == kALSASink || output.name == kOSS4Sink) output.iconname = "alsa";
- else if (output.name == kJackAudioSink) output.iconname = "jack";
- else if (output.name == kPulseSink) output.iconname = "pulseaudio";
- else if (output.name == kA2DPSink || output.name == kAVDTPSink) output.iconname = "bluetooth";
- else output.iconname = "soundcard";
+ if (output.name == kAutoSink) output.iconname = QStringLiteral("soundcard");
+ else if (output.name == kALSASink || output.name == kOSS4Sink) output.iconname = QStringLiteral("alsa");
+ else if (output.name == kJackAudioSink) output.iconname = QStringLiteral("jack");
+ else if (output.name == kPulseSink) output.iconname = QStringLiteral("pulseaudio");
+ else if (output.name == kA2DPSink || output.name == kAVDTPSink) output.iconname = QStringLiteral("bluetooth");
+ else output.iconname = QStringLiteral("soundcard");
outputs << output;
}
}
@@ -736,8 +736,8 @@ QByteArray GstEngine::FixupUrl(const QUrl &url) {
// So we handle them ourselves: we extract the track number and re-create a URL with only cdda:// + the track number (which can be handled by Gstreamer).
// We keep the device in mind, and we will set it later using SourceSetupCallback
QStringList path = url.path().split('/');
- str = QString("cdda://%1").arg(path.takeLast());
- QString device = path.join("/");
+ str = QStringLiteral("cdda://%1").arg(path.takeLast());
+ QString device = path.join(QStringLiteral("/"));
if (current_pipeline_) current_pipeline_->SetSourceDevice(device);
}
uri = str.toUtf8();
@@ -886,12 +886,12 @@ void GstEngine::UpdateScope(const int chunk_length) {
scope_chunk_++;
- if (buffer_format_.startsWith("S16LE") ||
- buffer_format_.startsWith("U16LE") ||
- buffer_format_.startsWith("S24LE") ||
- buffer_format_.startsWith("S24_32LE") ||
- buffer_format_.startsWith("S32LE") ||
- buffer_format_.startsWith("F32LE")
+ if (buffer_format_.startsWith(QLatin1String("S16LE")) ||
+ buffer_format_.startsWith(QLatin1String("U16LE")) ||
+ buffer_format_.startsWith(QLatin1String("S24LE")) ||
+ buffer_format_.startsWith(QLatin1String("S24_32LE")) ||
+ buffer_format_.startsWith(QLatin1String("S32LE")) ||
+ buffer_format_.startsWith(QLatin1String("F32LE"))
) {
memcpy(dest, source, bytes);
}
@@ -919,7 +919,7 @@ void GstEngine::StreamDiscovered(GstDiscoverer*, GstDiscovererInfo *info, GError
GstDiscovererResult result = gst_discoverer_info_get_result(info);
if (result != GST_DISCOVERER_OK) {
QString error_message = GSTdiscovererErrorMessage(result);
- qLog(Error) << QString("Stream discovery for %1 failed: %2").arg(discovered_url, error_message);
+ qLog(Error) << QStringLiteral("Stream discovery for %1 failed: %2").arg(discovered_url, error_message);
return;
}
@@ -989,12 +989,12 @@ void GstEngine::StreamDiscoveryFinished(GstDiscoverer*, gpointer) {}
QString GstEngine::GSTdiscovererErrorMessage(GstDiscovererResult result) {
switch (result) {
- case GST_DISCOVERER_URI_INVALID: return "The URI is invalid";
- case GST_DISCOVERER_TIMEOUT: return "The discovery timed-out";
- case GST_DISCOVERER_BUSY: return "The discoverer was already discovering a file";
- case GST_DISCOVERER_MISSING_PLUGINS: return "Some plugins are missing for full discovery";
+ case GST_DISCOVERER_URI_INVALID: return QStringLiteral("The URI is invalid");
+ case GST_DISCOVERER_TIMEOUT: return QStringLiteral("The discovery timed-out");
+ case GST_DISCOVERER_BUSY: return QStringLiteral("The discoverer was already discovering a file");
+ case GST_DISCOVERER_MISSING_PLUGINS: return QStringLiteral("Some plugins are missing for full discovery");
case GST_DISCOVERER_ERROR:
- default: return "An error happened and the GError is set";
+ default: return QStringLiteral("An error happened and the GError is set");
}
}
diff --git a/src/engine/gstenginepipeline.cpp b/src/engine/gstenginepipeline.cpp
index ceed691e..237befbb 100644
--- a/src/engine/gstenginepipeline.cpp
+++ b/src/engine/gstenginepipeline.cpp
@@ -304,29 +304,29 @@ QString GstEnginePipeline::GstStateText(const GstState state) {
switch (state) {
case GST_STATE_VOID_PENDING:
- return "Pending";
+ return QStringLiteral("Pending");
case GST_STATE_NULL:
- return "Null";
+ return QStringLiteral("Null");
case GST_STATE_READY:
- return "Ready";
+ return QStringLiteral("Ready");
case GST_STATE_PAUSED:
- return "Paused";
+ return QStringLiteral("Paused");
case GST_STATE_PLAYING:
- return "Playing";
+ return QStringLiteral("Playing");
default:
- return "Unknown";
+ return QStringLiteral("Unknown");
}
}
GstElement *GstEnginePipeline::CreateElement(const QString &factory_name, const QString &name, GstElement *bin, QString &error) const {
- QString unique_name = QString("pipeline") + "-" + QString::number(id_) + "-" + (name.isEmpty() ? factory_name : name);
+ QString unique_name = QStringLiteral("pipeline") + "-" + QString::number(id_) + "-" + (name.isEmpty() ? factory_name : name);
GstElement *element = gst_element_factory_make(factory_name.toUtf8().constData(), unique_name.toUtf8().constData());
if (!element) {
qLog(Error) << "GStreamer could not create the element" << factory_name << "with name" << unique_name;
- error = QString("GStreamer could not create the element %1 with name %2.").arg(factory_name, unique_name);
+ error = QStringLiteral("GStreamer could not create the element %1 with name %2.").arg(factory_name, unique_name);
}
if (bin && element) gst_bin_add(GST_BIN(bin), element);
@@ -346,10 +346,10 @@ bool GstEnginePipeline::InitFromUrl(const QUrl &media_url, const QUrl &stream_ur
guint version_major = 0, version_minor = 0, version_micro = 0, version_nano = 0;
gst_plugins_base_version(&version_major, &version_minor, &version_micro, &version_nano);
if (QVersionNumber::compare(QVersionNumber(static_cast(version_major), static_cast(version_minor)), QVersionNumber(1, 22)) >= 0) {
- pipeline_ = CreateElement("playbin3", "pipeline", nullptr, error);
+ pipeline_ = CreateElement(QStringLiteral("playbin3"), QStringLiteral("pipeline"), nullptr, error);
}
else {
- pipeline_ = CreateElement("playbin", "pipeline", nullptr, error);
+ pipeline_ = CreateElement(QStringLiteral("playbin"), QStringLiteral("pipeline"), nullptr, error);
}
if (!pipeline_) return false;
@@ -566,31 +566,31 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Create all the other elements
- audioqueue_ = CreateElement("queue2", "audioqueue", audiobin_, error);
+ audioqueue_ = CreateElement(QStringLiteral("queue2"), QStringLiteral("audioqueue"), audiobin_, error);
if (!audioqueue_) {
return false;
}
- audioqueueconverter_ = CreateElement("audioconvert", "audioqueueconverter", audiobin_, error);
+ audioqueueconverter_ = CreateElement(QStringLiteral("audioconvert"), QStringLiteral("audioqueueconverter"), audiobin_, error);
if (!audioqueueconverter_) {
return false;
}
- GstElement *audiosinkconverter = CreateElement("audioconvert", "audiosinkconverter", audiobin_, error);
+ GstElement *audiosinkconverter = CreateElement(QStringLiteral("audioconvert"), QStringLiteral("audiosinkconverter"), audiobin_, error);
if (!audiosinkconverter) {
return false;
}
// Create the volume element if it's enabled.
if (volume_enabled_ && !volume_) {
- volume_sw_ = CreateElement("volume", "volume_sw", audiobin_, error);
+ volume_sw_ = CreateElement(QStringLiteral("volume"), QStringLiteral("volume_sw"), audiobin_, error);
if (!volume_sw_) {
return false;
}
}
if (fading_enabled_) {
- volume_fading_ = CreateElement("volume", "volume_fading", audiobin_, error);
+ volume_fading_ = CreateElement(QStringLiteral("volume"), QStringLiteral("volume_fading"), audiobin_, error);
if (!volume_fading_) {
return false;
}
@@ -598,7 +598,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Create the stereo balancer elements if it's enabled.
if (stereo_balancer_enabled_) {
- audiopanorama_ = CreateElement("audiopanorama", "audiopanorama", audiobin_, error);
+ audiopanorama_ = CreateElement(QStringLiteral("audiopanorama"), QStringLiteral("audiopanorama"), audiobin_, error);
if (!audiopanorama_) {
return false;
}
@@ -608,11 +608,11 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Create the equalizer elements if it's enabled.
if (eq_enabled_) {
- equalizer_preamp_ = CreateElement("volume", "equalizer_preamp", audiobin_, error);
+ equalizer_preamp_ = CreateElement(QStringLiteral("volume"), QStringLiteral("equalizer_preamp"), audiobin_, error);
if (!equalizer_preamp_) {
return false;
}
- equalizer_ = CreateElement("equalizer-nbands", "equalizer_nbands", audiobin_, error);
+ equalizer_ = CreateElement(QStringLiteral("equalizer-nbands"), QStringLiteral("equalizer_nbands"), audiobin_, error);
if (!equalizer_) {
return false;
}
@@ -662,15 +662,15 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
GstElement *rglimiter = nullptr;
GstElement *rgconverter = nullptr;
if (rg_enabled_) {
- rgvolume = CreateElement("rgvolume", "rgvolume", audiobin_, error);
+ rgvolume = CreateElement(QStringLiteral("rgvolume"), QStringLiteral("rgvolume"), audiobin_, error);
if (!rgvolume) {
return false;
}
- rglimiter = CreateElement("rglimiter", "rglimiter", audiobin_, error);
+ rglimiter = CreateElement(QStringLiteral("rglimiter"), QStringLiteral("rglimiter"), audiobin_, error);
if (!rglimiter) {
return false;
}
- rgconverter = CreateElement("audioconvert", "rgconverter", audiobin_, error);
+ rgconverter = CreateElement(QStringLiteral("audioconvert"), QStringLiteral("rgconverter"), audiobin_, error);
if (!rgconverter) {
return false;
}
@@ -684,7 +684,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Create the EBU R 128 loudness normalization volume element if enabled.
if (ebur128_loudness_normalization_) {
- volume_ebur128_ = CreateElement("volume", "ebur128_volume", audiobin_, error);
+ volume_ebur128_ = CreateElement(QStringLiteral("volume"), QStringLiteral("ebur128_volume"), audiobin_, error);
if (!volume_ebur128_) {
return false;
}
@@ -696,7 +696,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
GstElement *bs2b = nullptr;
if (bs2b_enabled_) {
- bs2b = CreateElement("bs2b", "bs2b", audiobin_, error);
+ bs2b = CreateElement(QStringLiteral("bs2b"), QStringLiteral("bs2b"), audiobin_, error);
if (!bs2b) {
return false;
}
@@ -742,7 +742,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Link all elements
if (!gst_element_link(audioqueue_, audioqueueconverter_)) {
- error = "Failed to link audio queue to audio queue converter.";
+ error = QStringLiteral("Failed to link audio queue to audio queue converter.");
return false;
}
@@ -751,7 +751,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Link replaygain elements if enabled.
if (rg_enabled_ && rgvolume && rglimiter && rgconverter) {
if (!gst_element_link_many(element_link, rgvolume, rglimiter, rgconverter, nullptr)) {
- error = "Failed to link replaygain volume, limiter and converter elements.";
+ error = QStringLiteral("Failed to link replaygain volume, limiter and converter elements.");
return false;
}
element_link = rgconverter;
@@ -764,7 +764,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
"format = (string) { F32LE, F64LE }");
GstCaps *raw_fp_audio_caps = gst_static_caps_get(&static_raw_fp_audio_caps);
if (!gst_element_link_filtered(element_link, volume_ebur128_, raw_fp_audio_caps)) {
- error = "Failed to link EBU R 128 volume element.";
+ error = QStringLiteral("Failed to link EBU R 128 volume element.");
return false;
}
gst_caps_unref(raw_fp_audio_caps);
@@ -774,7 +774,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Link equalizer elements if enabled.
if (eq_enabled_ && equalizer_ && equalizer_preamp_) {
if (!gst_element_link_many(element_link, equalizer_preamp_, equalizer_, nullptr)) {
- error = "Failed to link equalizer and equalizer preamp elements.";
+ error = QStringLiteral("Failed to link equalizer and equalizer preamp elements.");
return false;
}
element_link = equalizer_;
@@ -783,7 +783,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Link stereo balancer elements if enabled.
if (stereo_balancer_enabled_ && audiopanorama_) {
if (!gst_element_link(element_link, audiopanorama_)) {
- error = "Failed to link audio panorama (stereo balancer).";
+ error = QStringLiteral("Failed to link audio panorama (stereo balancer).");
return false;
}
element_link = audiopanorama_;
@@ -792,7 +792,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Link software volume element if enabled.
if (volume_enabled_ && volume_sw_) {
if (!gst_element_link(element_link, volume_sw_)) {
- error = "Failed to link software volume.";
+ error = QStringLiteral("Failed to link software volume.");
return false;
}
element_link = volume_sw_;
@@ -801,7 +801,7 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
// Link fading volume element if enabled.
if (fading_enabled_ && volume_fading_) {
if (!gst_element_link(element_link, volume_fading_)) {
- error = "Failed to link fading volume.";
+ error = QStringLiteral("Failed to link fading volume.");
return false;
}
element_link = volume_fading_;
@@ -811,21 +811,21 @@ bool GstEnginePipeline::InitAudioBin(QString &error) {
if (bs2b_enabled_ && bs2b) {
qLog(Debug) << "Enabling bs2b";
if (!gst_element_link(element_link, bs2b)) {
- error = "Failed to link bs2b.";
+ error = QStringLiteral("Failed to link bs2b.");
return false;
}
element_link = bs2b;
}
if (!gst_element_link(element_link, audiosinkconverter)) {
- error = "Failed to link audio sink converter.";
+ error = QStringLiteral("Failed to link audio sink converter.");
return false;
}
{
GstCaps *caps = gst_caps_new_empty_simple("audio/x-raw");
if (!caps) {
- error = "Failed to create caps for raw audio.";
+ error = QStringLiteral("Failed to create caps for raw audio.");
return false;
}
if (channels_enabled_ && channels_ > 0) {
@@ -974,7 +974,7 @@ void GstEnginePipeline::SourceSetupCallback(GstElement *playbin, GstElement *sou
if (g_object_class_find_property(G_OBJECT_GET_CLASS(source), "user-agent")) {
qLog(Debug) << "Setting user-agent";
- QString user_agent = QString("%1 %2").arg(QCoreApplication::applicationName(), QCoreApplication::applicationVersion());
+ QString user_agent = QStringLiteral("%1 %2").arg(QCoreApplication::applicationName(), QCoreApplication::applicationVersion());
g_object_set(source, "user-agent", user_agent.toUtf8().constData(), nullptr);
}
@@ -1108,7 +1108,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb
if (caps) {
GstStructure *structure = gst_caps_get_structure(caps, 0);
if (structure) {
- format = QString(gst_structure_get_string(structure, "format"));
+ format = QString::fromUtf8(gst_structure_get_string(structure, "format"));
gst_structure_get_int(structure, "channels", &channels);
gst_structure_get_int(structure, "rate", &rate);
}
@@ -1122,10 +1122,10 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb
quint64 duration = GST_BUFFER_DURATION(buf);
qint64 end_time = static_cast(start_time + duration);
- if (format.startsWith("S16LE")) {
+ if (format.startsWith(QLatin1String("S16LE"))) {
instance->logged_unsupported_analyzer_format_ = false;
}
- else if (format.startsWith("S32LE")) {
+ else if (format.startsWith(QLatin1String("S32LE"))) {
GstMapInfo map_info;
gst_buffer_map(buf, &map_info, GST_MAP_READ);
@@ -1146,7 +1146,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb
instance->logged_unsupported_analyzer_format_ = false;
}
- else if (format.startsWith("F32LE")) {
+ else if (format.startsWith(QLatin1String("F32LE"))) {
GstMapInfo map_info;
gst_buffer_map(buf, &map_info, GST_MAP_READ);
@@ -1167,7 +1167,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb
instance->logged_unsupported_analyzer_format_ = false;
}
- else if (format.startsWith("S24LE")) {
+ else if (format.startsWith(QLatin1String("S24LE"))) {
GstMapInfo map_info;
gst_buffer_map(buf, &map_info, GST_MAP_READ);
@@ -1190,7 +1190,7 @@ GstPadProbeReturn GstEnginePipeline::BufferProbeCallback(GstPad *pad, GstPadProb
instance->logged_unsupported_analyzer_format_ = false;
}
- else if (format.startsWith("S24_32LE")) {
+ else if (format.startsWith(QLatin1String("S24_32LE"))) {
GstMapInfo map_info;
gst_buffer_map(buf, &map_info, GST_MAP_READ);
@@ -1448,7 +1448,7 @@ void GstEnginePipeline::ErrorMessageReceived(GstMessage *msg) {
qLog(Error) << __FUNCTION__ << "ID:" << id() << "Domain:" << domain << "Code:" << code << "Error:" << message;
qLog(Error) << __FUNCTION__ << "ID:" << id() << "Domain:" << domain << "Code:" << code << "Debug:" << debugstr;
- if (!redirect_url_.isEmpty() && debugstr.contains("A redirect message was posted on the bus and should have been handled by the application.")) {
+ if (!redirect_url_.isEmpty() && debugstr.contains(QLatin1String("A redirect message was posted on the bus and should have been handled by the application."))) {
// mmssrc posts a message on the bus *and* makes an error message when it wants to do a redirect.
// We handle the message, but now we have to ignore the error too.
return;
@@ -1485,8 +1485,8 @@ void GstEnginePipeline::TagMessageReceived(GstMessage *msg) {
if (!engine_metadata.title.isEmpty() && engine_metadata.artist.isEmpty() && engine_metadata.album.isEmpty()) {
QStringList title_splitted;
- if (engine_metadata.title.contains(" - ")) {
- title_splitted = engine_metadata.title.split(" - ");
+ if (engine_metadata.title.contains(QLatin1String(" - "))) {
+ title_splitted = engine_metadata.title.split(QStringLiteral(" - "));
}
else if (engine_metadata.title.contains('~')) {
title_splitted = engine_metadata.title.split('~');
diff --git a/src/engine/pulsedevicefinder.cpp b/src/engine/pulsedevicefinder.cpp
index 72ba86ba..67efe2f4 100644
--- a/src/engine/pulsedevicefinder.cpp
+++ b/src/engine/pulsedevicefinder.cpp
@@ -33,7 +33,7 @@
#include "pulsedevicefinder.h"
#include "enginedevice.h"
-PulseDeviceFinder::PulseDeviceFinder() : DeviceFinder("pulseaudio", { "pulseaudio", "pulse", "pulsesink" }), mainloop_(nullptr), context_(nullptr) {}
+PulseDeviceFinder::PulseDeviceFinder() : DeviceFinder(QStringLiteral("pulseaudio"), { "pulseaudio", "pulse", "pulsesink" }), mainloop_(nullptr), context_(nullptr) {}
bool PulseDeviceFinder::Initialize() {
diff --git a/src/engine/vlcengine.cpp b/src/engine/vlcengine.cpp
index a1bc449e..88f8bd40 100644
--- a/src/engine/vlcengine.cpp
+++ b/src/engine/vlcengine.cpp
@@ -226,8 +226,8 @@ EngineBase::OutputDetailsList VLCEngine::GetOutputsList() const {
OutputDetailsList outputs;
OutputDetails output_auto;
- output_auto.name = "auto";
- output_auto.description = "Automatically detected";
+ output_auto.name = QStringLiteral("auto");
+ output_auto.description = QStringLiteral("Automatically detected");
outputs << output_auto;
libvlc_audio_output_t *audio_output_list = libvlc_audio_output_list_get(instance_);
@@ -235,12 +235,12 @@ EngineBase::OutputDetailsList VLCEngine::GetOutputsList() const {
OutputDetails output;
output.name = QString::fromUtf8(audio_output->psz_name);
output.description = QString::fromUtf8(audio_output->psz_description);
- if (output.name == "auto") output.iconname = "soundcard";
- else if ((output.name == "alsa")||(output.name == "oss")) output.iconname = "alsa";
- else if (output.name== "jack") output.iconname = "jack";
- else if (output.name == "pulse") output.iconname = "pulseaudio";
- else if (output.name == "afile") output.iconname = "document-new";
- else output.iconname = "soundcard";
+ if (output.name == "auto") output.iconname = QStringLiteral("soundcard");
+ else if ((output.name == "alsa")||(output.name == "oss")) output.iconname = QStringLiteral("alsa");
+ else if (output.name== "jack") output.iconname = QStringLiteral("jack");
+ else if (output.name == "pulse") output.iconname = QStringLiteral("pulseaudio");
+ else if (output.name == "afile") output.iconname = QStringLiteral("document-new");
+ else output.iconname = QStringLiteral("soundcard");
outputs << output;
}
libvlc_audio_output_list_release(audio_output_list);
diff --git a/src/engine/vlcengine.h b/src/engine/vlcengine.h
index c7982ba7..50e991a0 100644
--- a/src/engine/vlcengine.h
+++ b/src/engine/vlcengine.h
@@ -67,7 +67,7 @@ class VLCEngine : public EngineBase {
OutputDetailsList GetOutputsList() const override;
bool ValidOutput(const QString &output) override;
- QString DefaultOutput() override { return ""; }
+ QString DefaultOutput() override { return QLatin1String(""); }
bool CustomDeviceSupport(const QString &output) override;
bool ALSADeviceSupport(const QString &output) override;
bool ExclusiveModeSupport(const QString &output) override;
diff --git a/src/equalizer/equalizer.cpp b/src/equalizer/equalizer.cpp
index 0ed1614c..1a6ca30d 100644
--- a/src/equalizer/equalizer.cpp
+++ b/src/equalizer/equalizer.cpp
@@ -60,8 +60,8 @@ Equalizer::Equalizer(QWidget *parent)
ui_->setupUi(this);
// Icons
- ui_->preset_del->setIcon(IconLoader::Load("list-remove"));
- ui_->preset_save->setIcon(IconLoader::Load("document-save"));
+ ui_->preset_del->setIcon(IconLoader::Load(QStringLiteral("list-remove")));
+ ui_->preset_save->setIcon(IconLoader::Load(QStringLiteral("document-save")));
preamp_ = AddSlider(tr("Pre-amp"));
diff --git a/src/globalshortcuts/globalshortcutsbackend-gnome.cpp b/src/globalshortcuts/globalshortcutsbackend-gnome.cpp
index 470ae2b3..fd3f8073 100644
--- a/src/globalshortcuts/globalshortcutsbackend-gnome.cpp
+++ b/src/globalshortcuts/globalshortcutsbackend-gnome.cpp
@@ -116,9 +116,9 @@ void GlobalShortcutsBackendGnome::DoUnregister() {
void GlobalShortcutsBackendGnome::GnomeMediaKeyPressed(const QString&, const QString &key) {
auto shortcuts = manager_->shortcuts();
- if (key == "Play") shortcuts["play_pause"].action->trigger();
- if (key == "Stop") shortcuts["stop"].action->trigger();
- if (key == "Next") shortcuts["next_track"].action->trigger();
- if (key == "Previous") shortcuts["prev_track"].action->trigger();
+ if (key == "Play") shortcuts[QStringLiteral("play_pause")].action->trigger();
+ if (key == "Stop") shortcuts[QStringLiteral("stop")].action->trigger();
+ if (key == "Next") shortcuts[QStringLiteral("next_track")].action->trigger();
+ if (key == "Previous") shortcuts[QStringLiteral("prev_track")].action->trigger();
}
diff --git a/src/globalshortcuts/globalshortcutsbackend-mate.cpp b/src/globalshortcuts/globalshortcutsbackend-mate.cpp
index d67df2da..76c41560 100644
--- a/src/globalshortcuts/globalshortcutsbackend-mate.cpp
+++ b/src/globalshortcuts/globalshortcutsbackend-mate.cpp
@@ -116,9 +116,9 @@ void GlobalShortcutsBackendMate::DoUnregister() {
void GlobalShortcutsBackendMate::MateMediaKeyPressed(const QString&, const QString &key) {
auto shortcuts = manager_->shortcuts();
- if (key == "Play") shortcuts["play_pause"].action->trigger();
- if (key == "Stop") shortcuts["stop"].action->trigger();
- if (key == "Next") shortcuts["next_track"].action->trigger();
- if (key == "Previous") shortcuts["prev_track"].action->trigger();
+ if (key == "Play") shortcuts[QStringLiteral("play_pause")].action->trigger();
+ if (key == "Stop") shortcuts[QStringLiteral("stop")].action->trigger();
+ if (key == "Next") shortcuts[QStringLiteral("next_track")].action->trigger();
+ if (key == "Previous") shortcuts[QStringLiteral("prev_track")].action->trigger();
}
diff --git a/src/globalshortcuts/globalshortcutsbackend.cpp b/src/globalshortcuts/globalshortcutsbackend.cpp
index 0facf0ec..74819b2d 100644
--- a/src/globalshortcuts/globalshortcutsbackend.cpp
+++ b/src/globalshortcuts/globalshortcutsbackend.cpp
@@ -35,19 +35,19 @@ QString GlobalShortcutsBackend::name() const {
switch (type_) {
case Type::None:
- return "None";
+ return QStringLiteral("None");
case Type::KDE:
- return "KDE";
+ return QStringLiteral("KDE");
case Type::Gnome:
- return "Gnome";
+ return QStringLiteral("Gnome");
case Type::Mate:
- return "Mate";
+ return QStringLiteral("Mate");
case Type::X11:
- return "X11";
+ return QStringLiteral("X11");
case Type::macOS:
- return "macOS";
+ return QStringLiteral("macOS");
case Type::Win:
- return "Windows";
+ return QStringLiteral("Windows");
}
return QString();
diff --git a/src/globalshortcuts/globalshortcutsmanager.cpp b/src/globalshortcuts/globalshortcutsmanager.cpp
index 8bce74b6..fc2857a2 100644
--- a/src/globalshortcuts/globalshortcutsmanager.cpp
+++ b/src/globalshortcuts/globalshortcutsmanager.cpp
@@ -58,25 +58,25 @@ GlobalShortcutsManager::GlobalShortcutsManager(QWidget *parent) : QWidget(parent
settings_.beginGroup(GlobalShortcutsSettingsPage::kSettingsGroup);
// Create actions
- AddShortcut("play", tr("Play"), std::bind(&GlobalShortcutsManager::Play, this));
- AddShortcut("pause", tr("Pause"), std::bind(&GlobalShortcutsManager::Pause, this));
- AddShortcut("play_pause", tr("Play/Pause"), std::bind(&GlobalShortcutsManager::PlayPause, this), QKeySequence(Qt::Key_MediaPlay));
- AddShortcut("stop", tr("Stop"), std::bind(&GlobalShortcutsManager::Stop, this), QKeySequence(Qt::Key_MediaStop));
- AddShortcut("stop_after", tr("Stop playing after current track"), std::bind(&GlobalShortcutsManager::StopAfter, this));
- AddShortcut("next_track", tr("Next track"), std::bind(&GlobalShortcutsManager::Next, this), QKeySequence(Qt::Key_MediaNext));
- AddShortcut("prev_track", tr("Previous track"), std::bind(&GlobalShortcutsManager::Previous, this), QKeySequence(Qt::Key_MediaPrevious));
- AddShortcut("inc_volume", tr("Increase volume"), std::bind(&GlobalShortcutsManager::IncVolume, this));
- AddShortcut("dec_volume", tr("Decrease volume"), std::bind(&GlobalShortcutsManager::DecVolume, this));
- AddShortcut("mute", tr("Mute"), std::bind(&GlobalShortcutsManager::Mute, this));
- AddShortcut("seek_forward", tr("Seek forward"), std::bind(&GlobalShortcutsManager::SeekForward, this));
- AddShortcut("seek_backward", tr("Seek backward"), std::bind(&GlobalShortcutsManager::SeekBackward, this));
- AddShortcut("show_hide", tr("Show/Hide"), std::bind(&GlobalShortcutsManager::ShowHide, this));
- AddShortcut("show_osd", tr("Show OSD"), std::bind(&GlobalShortcutsManager::ShowOSD, this));
- AddShortcut("toggle_pretty_osd", tr("Toggle Pretty OSD"), std::bind(&GlobalShortcutsManager::TogglePrettyOSD, this)); // Toggling possible only for pretty OSD
- AddShortcut("shuffle_mode", tr("Change shuffle mode"), std::bind(&GlobalShortcutsManager::CycleShuffleMode, this));
- AddShortcut("repeat_mode", tr("Change repeat mode"), std::bind(&GlobalShortcutsManager::CycleRepeatMode, this));
- AddShortcut("toggle_scrobbling", tr("Enable/disable scrobbling"), std::bind(&GlobalShortcutsManager::ToggleScrobbling, this));
- AddShortcut("love", tr("Love"), std::bind(&GlobalShortcutsManager::Love, this));
+ AddShortcut(QStringLiteral("play"), tr("Play"), std::bind(&GlobalShortcutsManager::Play, this));
+ AddShortcut(QStringLiteral("pause"), tr("Pause"), std::bind(&GlobalShortcutsManager::Pause, this));
+ AddShortcut(QStringLiteral("play_pause"), tr("Play/Pause"), std::bind(&GlobalShortcutsManager::PlayPause, this), QKeySequence(Qt::Key_MediaPlay));
+ AddShortcut(QStringLiteral("stop"), tr("Stop"), std::bind(&GlobalShortcutsManager::Stop, this), QKeySequence(Qt::Key_MediaStop));
+ AddShortcut(QStringLiteral("stop_after"), tr("Stop playing after current track"), std::bind(&GlobalShortcutsManager::StopAfter, this));
+ AddShortcut(QStringLiteral("next_track"), tr("Next track"), std::bind(&GlobalShortcutsManager::Next, this), QKeySequence(Qt::Key_MediaNext));
+ AddShortcut(QStringLiteral("prev_track"), tr("Previous track"), std::bind(&GlobalShortcutsManager::Previous, this), QKeySequence(Qt::Key_MediaPrevious));
+ AddShortcut(QStringLiteral("inc_volume"), tr("Increase volume"), std::bind(&GlobalShortcutsManager::IncVolume, this));
+ AddShortcut(QStringLiteral("dec_volume"), tr("Decrease volume"), std::bind(&GlobalShortcutsManager::DecVolume, this));
+ AddShortcut(QStringLiteral("mute"), tr("Mute"), std::bind(&GlobalShortcutsManager::Mute, this));
+ AddShortcut(QStringLiteral("seek_forward"), tr("Seek forward"), std::bind(&GlobalShortcutsManager::SeekForward, this));
+ AddShortcut(QStringLiteral("seek_backward"), tr("Seek backward"), std::bind(&GlobalShortcutsManager::SeekBackward, this));
+ AddShortcut(QStringLiteral("show_hide"), tr("Show/Hide"), std::bind(&GlobalShortcutsManager::ShowHide, this));
+ AddShortcut(QStringLiteral("show_osd"), tr("Show OSD"), std::bind(&GlobalShortcutsManager::ShowOSD, this));
+ AddShortcut(QStringLiteral("toggle_pretty_osd"), tr("Toggle Pretty OSD"), std::bind(&GlobalShortcutsManager::TogglePrettyOSD, this)); // Toggling possible only for pretty OSD
+ AddShortcut(QStringLiteral("shuffle_mode"), tr("Change shuffle mode"), std::bind(&GlobalShortcutsManager::CycleShuffleMode, this));
+ AddShortcut(QStringLiteral("repeat_mode"), tr("Change repeat mode"), std::bind(&GlobalShortcutsManager::CycleRepeatMode, this));
+ AddShortcut(QStringLiteral("toggle_scrobbling"), tr("Enable/disable scrobbling"), std::bind(&GlobalShortcutsManager::ToggleScrobbling, this));
+ AddShortcut(QStringLiteral("love"), tr("Love"), std::bind(&GlobalShortcutsManager::Love, this));
// Create backends - these do the actual shortcut registration
diff --git a/src/internet/internetcollectionview.cpp b/src/internet/internetcollectionview.cpp
index 227b1c1f..afe4fb25 100644
--- a/src/internet/internetcollectionview.cpp
+++ b/src/internet/internetcollectionview.cpp
@@ -57,7 +57,7 @@ InternetCollectionView::InternetCollectionView(QWidget *parent)
total_song_count_(0),
total_artist_count_(0),
total_album_count_(0),
- nomusic_(":/pictures/nomusic.png"),
+ nomusic_(QStringLiteral(":/pictures/nomusic.png")),
context_menu_(nullptr),
load_(nullptr),
add_to_playlist_(nullptr),
@@ -76,7 +76,7 @@ InternetCollectionView::InternetCollectionView(QWidget *parent)
setSelectionMode(QAbstractItemView::ExtendedSelection);
SetAutoOpen(false);
- setStyleSheet("QTreeView::item{padding-top:1px;}");
+ setStyleSheet(QStringLiteral("QTreeView::item{padding-top:1px;}"));
}
@@ -313,18 +313,18 @@ void InternetCollectionView::contextMenuEvent(QContextMenuEvent *e) {
if (!context_menu_) {
context_menu_ = new QMenu(this);
- add_to_playlist_ = context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this, &InternetCollectionView::AddToPlaylist);
- load_ = context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this, &InternetCollectionView::Load);
- open_in_new_playlist_ = context_menu_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this, &InternetCollectionView::OpenInNewPlaylist);
+ add_to_playlist_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this, &InternetCollectionView::AddToPlaylist);
+ load_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this, &InternetCollectionView::Load);
+ open_in_new_playlist_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this, &InternetCollectionView::OpenInNewPlaylist);
context_menu_->addSeparator();
- add_to_playlist_enqueue_ = context_menu_->addAction(IconLoader::Load("go-next"), tr("Queue track"), this, &InternetCollectionView::AddToPlaylistEnqueue);
- add_to_playlist_enqueue_next_ = context_menu_->addAction(IconLoader::Load("go-next"), tr("Queue to play next"), this, &InternetCollectionView::AddToPlaylistEnqueueNext);
+ add_to_playlist_enqueue_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue track"), this, &InternetCollectionView::AddToPlaylistEnqueue);
+ add_to_playlist_enqueue_next_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue to play next"), this, &InternetCollectionView::AddToPlaylistEnqueueNext);
context_menu_->addSeparator();
if (favorite_) {
- remove_songs_ = context_menu_->addAction(IconLoader::Load("edit-delete"), tr("Remove from favorites"), this, &InternetCollectionView::RemoveSelectedSongs);
+ remove_songs_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Remove from favorites"), this, &InternetCollectionView::RemoveSelectedSongs);
context_menu_->addSeparator();
}
diff --git a/src/internet/internetsearchmodel.cpp b/src/internet/internetsearchmodel.cpp
index f7030614..eb9ab1d4 100644
--- a/src/internet/internetsearchmodel.cpp
+++ b/src/internet/internetsearchmodel.cpp
@@ -42,8 +42,8 @@ InternetSearchModel::InternetSearchModel(InternetServicePtr service, QObject *pa
service_(service),
proxy_(nullptr),
use_pretty_covers_(true),
- artist_icon_(IconLoader::Load("folder-sound")),
- album_icon_(IconLoader::Load("cdcase")) {
+ artist_icon_(IconLoader::Load(QStringLiteral("folder-sound"))),
+ album_icon_(IconLoader::Load(QStringLiteral("cdcase"))) {
group_by_[0] = CollectionModel::GroupBy::AlbumArtist;
group_by_[1] = CollectionModel::GroupBy::AlbumDisc;
@@ -91,7 +91,7 @@ QStandardItem *InternetSearchModel::BuildContainers(const Song &s, QStandardItem
case CollectionModel::GroupBy::AlbumArtist:
if (s.is_compilation()) {
display_text = tr("Various artists");
- sort_text = "aaaaaa";
+ sort_text = QStringLiteral("aaaaaa");
}
else {
display_text = CollectionModel::TextOrUnknown(s.effective_albumartist());
@@ -103,7 +103,7 @@ QStandardItem *InternetSearchModel::BuildContainers(const Song &s, QStandardItem
case CollectionModel::GroupBy::Artist:
if (s.is_compilation()) {
display_text = tr("Various artists");
- sort_text = "aaaaaa";
+ sort_text = QStringLiteral("aaaaaa");
}
else {
display_text = CollectionModel::TextOrUnknown(s.artist());
@@ -221,10 +221,10 @@ QStandardItem *InternetSearchModel::BuildContainers(const Song &s, QStandardItem
}
else {
if (s.bitdepth() <= 0) {
- display_text = QString("%1 (%2)").arg(s.TextForFiletype(), QString::number(s.samplerate() / 1000.0, 'G', 5));
+ display_text = QStringLiteral("%1 (%2)").arg(s.TextForFiletype(), QString::number(s.samplerate() / 1000.0, 'G', 5));
}
else {
- display_text = QString("%1 (%2/%3)").arg(s.TextForFiletype(), QString::number(s.samplerate() / 1000.0, 'G', 5), QString::number(s.bitdepth()));
+ display_text = QStringLiteral("%1 (%2/%3)").arg(s.TextForFiletype(), QString::number(s.samplerate() / 1000.0, 'G', 5), QString::number(s.bitdepth()));
}
}
sort_text = display_text;
@@ -250,8 +250,8 @@ QStandardItem *InternetSearchModel::BuildContainers(const Song &s, QStandardItem
return parent;
}
- if (display_text.isEmpty()) display_text = "Unknown";
- if (sort_text.isEmpty()) sort_text = "Unknown";
+ if (display_text.isEmpty()) display_text = QStringLiteral("Unknown");
+ if (sort_text.isEmpty()) sort_text = QStringLiteral("Unknown");
// Find a container for this level
key->group_[level] = display_text + unique_tag;
diff --git a/src/internet/internetsearchview.cpp b/src/internet/internetsearchview.cpp
index 4628826e..efa59786 100644
--- a/src/internet/internetsearchview.cpp
+++ b/src/internet/internetsearchview.cpp
@@ -114,12 +114,12 @@ InternetSearchView::InternetSearchView(QWidget *parent)
ui_->search->installEventFilter(this);
ui_->results_stack->installEventFilter(this);
- ui_->settings->setIcon(IconLoader::Load("configure"));
+ ui_->settings->setIcon(IconLoader::Load(QStringLiteral("configure")));
// Set the appearance of the results list
ui_->results->setItemDelegate(new InternetSearchItemDelegate(this));
ui_->results->setAttribute(Qt::WA_MacShowFocusRect, false);
- ui_->results->setStyleSheet("QTreeView::item{padding-top:1px;}");
+ ui_->results->setStyleSheet(QStringLiteral("QTreeView::item{padding-top:1px;}"));
// Show the help page initially
ui_->results_stack->setCurrentWidget(ui_->help_page);
@@ -176,7 +176,7 @@ void InternetSearchView::Init(Application *app, InternetServicePtr service) {
QMenu *settings_menu = new QMenu(this);
settings_menu->addActions(group_by_actions_->actions());
settings_menu->addSeparator();
- settings_menu->addAction(IconLoader::Load("configure"), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this, &InternetSearchView::OpenSettingsDialog);
+ settings_menu->addAction(IconLoader::Load(QStringLiteral("configure")), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this, &InternetSearchView::OpenSettingsDialog);
ui_->settings->setMenu(settings_menu);
swap_models_timer_->setSingleShot(true);
@@ -313,36 +313,36 @@ bool InternetSearchView::ResultsContextMenuEvent(QContextMenuEvent *e) {
if (!context_menu_) {
context_menu_ = new QMenu(this);
- context_actions_ << context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this, &InternetSearchView::AddSelectedToPlaylist);
- context_actions_ << context_menu_->addAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this, &InternetSearchView::LoadSelected);
- context_actions_ << context_menu_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this, &InternetSearchView::OpenSelectedInNewPlaylist);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this, &InternetSearchView::AddSelectedToPlaylist);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this, &InternetSearchView::LoadSelected);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this, &InternetSearchView::OpenSelectedInNewPlaylist);
context_menu_->addSeparator();
- context_actions_ << context_menu_->addAction(IconLoader::Load("go-next"), tr("Queue track"), this, &InternetSearchView::AddSelectedToPlaylistEnqueue);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue track"), this, &InternetSearchView::AddSelectedToPlaylistEnqueue);
context_menu_->addSeparator();
if (service_->artists_collection_model() || service_->albums_collection_model() || service_->songs_collection_model()) {
if (service_->artists_collection_model()) {
- context_actions_ << context_menu_->addAction(IconLoader::Load("folder-new"), tr("Add to artists"), this, &InternetSearchView::AddArtists);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("folder-new")), tr("Add to artists"), this, &InternetSearchView::AddArtists);
}
if (service_->albums_collection_model()) {
- context_actions_ << context_menu_->addAction(IconLoader::Load("folder-new"), tr("Add to albums"), this, &InternetSearchView::AddAlbums);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("folder-new")), tr("Add to albums"), this, &InternetSearchView::AddAlbums);
}
if (service_->songs_collection_model()) {
- context_actions_ << context_menu_->addAction(IconLoader::Load("folder-new"), tr("Add to songs"), this, &InternetSearchView::AddSongs);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("folder-new")), tr("Add to songs"), this, &InternetSearchView::AddSongs);
}
context_menu_->addSeparator();
}
if (ui_->results->selectionModel() && ui_->results->selectionModel()->selectedRows().length() == 1) {
- context_actions_ << context_menu_->addAction(IconLoader::Load("search"), tr("Search for this"), this, &InternetSearchView::SearchForThis);
+ context_actions_ << context_menu_->addAction(IconLoader::Load(QStringLiteral("search")), tr("Search for this"), this, &InternetSearchView::SearchForThis);
}
context_menu_->addSeparator();
context_menu_->addMenu(tr("Group by"))->addActions(group_by_actions_->actions());
- context_menu_->addAction(IconLoader::Load("configure"), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this, &InternetSearchView::OpenSettingsDialog);
+ context_menu_->addAction(IconLoader::Load(QStringLiteral("configure")), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this, &InternetSearchView::OpenSettingsDialog);
}
@@ -433,14 +433,14 @@ void InternetSearchView::SwapModels() {
QStringList InternetSearchView::TokenizeQuery(const QString &query) {
- QStringList tokens(query.split(QRegularExpression("\\s+")));
+ QStringList tokens(query.split(QRegularExpression(QStringLiteral("\\s+"))));
for (QStringList::iterator it = tokens.begin(); it != tokens.end(); ++it) {
(*it).remove('(');
(*it).remove(')');
(*it).remove('"');
- const qint64 colon = (*it).indexOf(":");
+ const qint64 colon = (*it).indexOf(QLatin1String(":"));
if (colon != -1) {
(*it).remove(0, colon + 1);
}
diff --git a/src/internet/internetsongsview.cpp b/src/internet/internetsongsview.cpp
index 8eff8896..94621094 100644
--- a/src/internet/internetsongsview.cpp
+++ b/src/internet/internetsongsview.cpp
@@ -56,7 +56,7 @@ InternetSongsView::InternetSongsView(Application *app, InternetServicePtr servic
ui_->filter_widget->SetSettingsGroup(settings_group);
ui_->filter_widget->Init(service_->songs_collection_model());
- QAction *action_configure = new QAction(IconLoader::Load("configure"), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this);
+ QAction *action_configure = new QAction(IconLoader::Load(QStringLiteral("configure")), tr("Configure %1...").arg(Song::DescriptionForSource(service_->source())), this);
QObject::connect(action_configure, &QAction::triggered, this, &InternetSongsView::OpenSettingsDialog);
ui_->filter_widget->AddMenuAction(action_configure);
diff --git a/src/internet/internettabsview.cpp b/src/internet/internettabsview.cpp
index 43f79b0d..657604fa 100644
--- a/src/internet/internettabsview.cpp
+++ b/src/internet/internettabsview.cpp
@@ -59,7 +59,7 @@ InternetTabsView::InternetTabsView(Application *app, InternetServicePtr service,
QObject::connect(ui_->search_view, &InternetSearchView::AddAlbumsSignal, &*service_, &InternetService::AddAlbums);
QObject::connect(ui_->search_view, &InternetSearchView::AddSongsSignal, &*service_, &InternetService::AddSongs);
- QAction *action_configure = new QAction(IconLoader::Load("configure"), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this);
+ QAction *action_configure = new QAction(IconLoader::Load(QStringLiteral("configure")), tr("Configure %1...").arg(Song::TextForSource(service_->source())), this);
QObject::connect(action_configure, &QAction::triggered, this, &InternetTabsView::OpenSettingsDialog);
if (service_->artists_collection_model()) {
@@ -68,7 +68,7 @@ InternetTabsView::InternetTabsView(Application *app, InternetServicePtr service,
ui_->artists_collection->view()->setModel(service_->artists_collection_sort_model());
ui_->artists_collection->view()->SetFilter(ui_->artists_collection->filter_widget());
ui_->artists_collection->filter_widget()->SetSettingsGroup(settings_group);
- ui_->artists_collection->filter_widget()->SetSettingsPrefix("artists");
+ ui_->artists_collection->filter_widget()->SetSettingsPrefix(QStringLiteral("artists"));
ui_->artists_collection->filter_widget()->Init(service_->artists_collection_model());
ui_->artists_collection->filter_widget()->AddMenuAction(action_configure);
@@ -100,7 +100,7 @@ InternetTabsView::InternetTabsView(Application *app, InternetServicePtr service,
ui_->albums_collection->view()->setModel(service_->albums_collection_sort_model());
ui_->albums_collection->view()->SetFilter(ui_->albums_collection->filter_widget());
ui_->albums_collection->filter_widget()->SetSettingsGroup(settings_group);
- ui_->albums_collection->filter_widget()->SetSettingsPrefix("albums");
+ ui_->albums_collection->filter_widget()->SetSettingsPrefix(QStringLiteral("albums"));
ui_->albums_collection->filter_widget()->Init(service_->albums_collection_model());
ui_->albums_collection->filter_widget()->AddMenuAction(action_configure);
@@ -132,7 +132,7 @@ InternetTabsView::InternetTabsView(Application *app, InternetServicePtr service,
ui_->songs_collection->view()->setModel(service_->songs_collection_sort_model());
ui_->songs_collection->view()->SetFilter(ui_->songs_collection->filter_widget());
ui_->songs_collection->filter_widget()->SetSettingsGroup(settings_group);
- ui_->songs_collection->filter_widget()->SetSettingsPrefix("songs");
+ ui_->songs_collection->filter_widget()->SetSettingsPrefix(QStringLiteral("songs"));
ui_->songs_collection->filter_widget()->Init(service_->songs_collection_model());
ui_->songs_collection->filter_widget()->AddMenuAction(action_configure);
diff --git a/src/internet/localredirectserver.cpp b/src/internet/localredirectserver.cpp
index c461526c..6b52315e 100644
--- a/src/internet/localredirectserver.cpp
+++ b/src/internet/localredirectserver.cpp
@@ -55,10 +55,10 @@ bool LocalRedirectServer::Listen() {
return false;
}
- url_.setScheme("http");
- url_.setHost("localhost");
+ url_.setScheme(QStringLiteral("http"));
+ url_.setHost(QStringLiteral("localhost"));
url_.setPort(serverPort());
- url_.setPath("/");
+ url_.setPath(QStringLiteral("/"));
QObject::connect(this, &QTcpServer::newConnection, this, &LocalRedirectServer::NewConnection);
return true;
@@ -86,7 +86,7 @@ void LocalRedirectServer::incomingConnection(qintptr socket_descriptor) {
if (!tcp_socket->setSocketDescriptor(socket_descriptor)) {
delete tcp_socket;
close();
- error_ = "Unable to set socket descriptor";
+ error_ = QStringLiteral("Unable to set socket descriptor");
emit Finished();
return;
}
@@ -124,12 +124,12 @@ void LocalRedirectServer::ReadyRead() {
void LocalRedirectServer::WriteTemplate() const {
- QFile page_file(":/html/oauthsuccess.html");
+ QFile page_file(QStringLiteral(":/html/oauthsuccess.html"));
if (!page_file.open(QIODevice::ReadOnly)) return;
QString page_data = QString::fromUtf8(page_file.readAll());
page_file.close();
- QRegularExpression tr_regexp("tr\\(\"([^\"]+)\"\\)");
+ QRegularExpression tr_regexp(QStringLiteral("tr\\(\"([^\"]+)\"\\)"));
qint64 offset = 0;
forever {
QRegularExpressionMatch re_match = tr_regexp.match(page_data, offset);
@@ -151,7 +151,7 @@ void LocalRedirectServer::WriteTemplate() const {
.pixmap(16)
.toImage()
.save(&image_buffer, "PNG");
- page_data.replace("@IMAGE_DATA@", image_buffer.data().toBase64());
+ page_data.replace(QLatin1String("@IMAGE_DATA@"), image_buffer.data().toBase64());
image_buffer.close();
}
diff --git a/src/lyrics/azlyricscomlyricsprovider.cpp b/src/lyrics/azlyricscomlyricsprovider.cpp
index facd3fea..7f2d7d0c 100644
--- a/src/lyrics/azlyricscomlyricsprovider.cpp
+++ b/src/lyrics/azlyricscomlyricsprovider.cpp
@@ -34,7 +34,7 @@ const char AzLyricsComLyricsProvider::kEndTag[] = "";
const char AzLyricsComLyricsProvider::kLyricsStart[] = "";
AzLyricsComLyricsProvider::AzLyricsComLyricsProvider(SharedPtr network, QObject *parent)
- : HtmlLyricsProvider("azlyrics.com", true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
+ : HtmlLyricsProvider(QStringLiteral("azlyrics.com"), true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
QUrl AzLyricsComLyricsProvider::Url(const LyricsSearchRequest &request) {
@@ -44,6 +44,6 @@ QUrl AzLyricsComLyricsProvider::Url(const LyricsSearchRequest &request) {
QString AzLyricsComLyricsProvider::StringFixup(const QString &text) {
- return Utilities::Transliterate(text).remove(QRegularExpression("[^\\w0-9\\-]")).toLower();
+ return Utilities::Transliterate(text).remove(QRegularExpression(QStringLiteral("[^\\w0-9\\-]"))).toLower();
}
diff --git a/src/lyrics/chartlyricsprovider.cpp b/src/lyrics/chartlyricsprovider.cpp
index 7cccdfcf..45b7c75a 100644
--- a/src/lyrics/chartlyricsprovider.cpp
+++ b/src/lyrics/chartlyricsprovider.cpp
@@ -39,7 +39,7 @@
const char *ChartLyricsProvider::kUrlSearch = "http://api.chartlyrics.com/apiv1.asmx/SearchLyricDirect";
-ChartLyricsProvider::ChartLyricsProvider(SharedPtr network, QObject *parent) : LyricsProvider("ChartLyrics", false, false, network, parent) {}
+ChartLyricsProvider::ChartLyricsProvider(SharedPtr network, QObject *parent) : LyricsProvider(QStringLiteral("ChartLyrics"), false, false, network, parent) {}
ChartLyricsProvider::~ChartLyricsProvider() {
@@ -55,8 +55,8 @@ ChartLyricsProvider::~ChartLyricsProvider() {
bool ChartLyricsProvider::StartSearch(const int id, const LyricsSearchRequest &request) {
QUrlQuery url_query;
- url_query.addQueryItem("artist", QUrl::toPercentEncoding(request.artist));
- url_query.addQueryItem("song", QUrl::toPercentEncoding(request.title));
+ url_query.addQueryItem(QStringLiteral("artist"), QUrl::toPercentEncoding(request.artist));
+ url_query.addQueryItem(QStringLiteral("song"), QUrl::toPercentEncoding(request.title));
QUrl url(kUrlSearch);
url.setQuery(url_query);
@@ -80,13 +80,13 @@ void ChartLyricsProvider::HandleSearchReply(QNetworkReply *reply, const int id,
reply->deleteLater();
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
emit SearchFinished(id);
return;
}
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
emit SearchFinished(id);
return;
}
diff --git a/src/lyrics/elyricsnetlyricsprovider.cpp b/src/lyrics/elyricsnetlyricsprovider.cpp
index a128b07a..824cfcd9 100644
--- a/src/lyrics/elyricsnetlyricsprovider.cpp
+++ b/src/lyrics/elyricsnetlyricsprovider.cpp
@@ -34,7 +34,7 @@ const char ElyricsNetLyricsProvider::kEndTag[] = "<\\/div>";
const char ElyricsNetLyricsProvider::kLyricsStart[] = "";
ElyricsNetLyricsProvider::ElyricsNetLyricsProvider(SharedPtr
network, QObject *parent)
- : HtmlLyricsProvider("elyrics.net", true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
+ : HtmlLyricsProvider(QStringLiteral("elyrics.net"), true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
QUrl ElyricsNetLyricsProvider::Url(const LyricsSearchRequest &request) {
@@ -45,8 +45,8 @@ QUrl ElyricsNetLyricsProvider::Url(const LyricsSearchRequest &request) {
QString ElyricsNetLyricsProvider::StringFixup(const QString &text) {
return Utilities::Transliterate(text)
- .replace(QRegularExpression("[^\\w0-9_,&\\-\\(\\) ]"), "_")
- .replace(QRegularExpression(" {2,}"), " ")
+ .replace(QRegularExpression(QStringLiteral("[^\\w0-9_,&\\-\\(\\) ]")), QStringLiteral("_"))
+ .replace(QRegularExpression(QStringLiteral(" {2,}")), QStringLiteral(" "))
.simplified()
.replace(' ', '-')
.toLower();
diff --git a/src/lyrics/geniuslyricsprovider.cpp b/src/lyrics/geniuslyricsprovider.cpp
index 62745caf..a35a4fd1 100644
--- a/src/lyrics/geniuslyricsprovider.cpp
+++ b/src/lyrics/geniuslyricsprovider.cpp
@@ -61,7 +61,7 @@ const char *GeniusLyricsProvider::kUrlSearch = "https://api.genius.com/search/";
const char *GeniusLyricsProvider::kClientIDB64 = "RUNTNXU4U1VyMU1KUU5hdTZySEZteUxXY2hkanFiY3lfc2JjdXBpNG5WMU9SNUg4dTBZelEtZTZCdFg2dl91SQ==";
const char *GeniusLyricsProvider::kClientSecretB64 = "VE9pMU9vUjNtTXZ3eFR3YVN0QVRyUjVoUlhVWDI1Ylp5X240eEt1M0ZkYlNwRG5JUnd0LXFFbHdGZkZkRWY2VzJ1S011UnQzM3c2Y3hqY0tVZ3NGN2c=";
-GeniusLyricsProvider::GeniusLyricsProvider(SharedPtr network, QObject *parent) : JsonLyricsProvider("Genius", true, true, network, parent), server_(nullptr) {
+GeniusLyricsProvider::GeniusLyricsProvider(SharedPtr network, QObject *parent) : JsonLyricsProvider(QStringLiteral("Genius"), true, true, network, parent), server_(nullptr) {
QSettings s;
s.beginGroup(kSettingsGroup);
@@ -106,18 +106,18 @@ void GeniusLyricsProvider::Authenticate() {
}
QUrlQuery url_query;
- url_query.addQueryItem("client_id", QUrl::toPercentEncoding(QByteArray::fromBase64(kClientIDB64)));
- url_query.addQueryItem("redirect_uri", QUrl::toPercentEncoding(redirect_url.toString()));
- url_query.addQueryItem("scope", "me");
- url_query.addQueryItem("state", QUrl::toPercentEncoding(code_challenge_));
- url_query.addQueryItem("response_type", "code");
+ url_query.addQueryItem(QStringLiteral("client_id"), QUrl::toPercentEncoding(QByteArray::fromBase64(kClientIDB64)));
+ url_query.addQueryItem(QStringLiteral("redirect_uri"), QUrl::toPercentEncoding(redirect_url.toString()));
+ url_query.addQueryItem(QStringLiteral("scope"), QStringLiteral("me"));
+ url_query.addQueryItem(QStringLiteral("state"), QUrl::toPercentEncoding(code_challenge_));
+ url_query.addQueryItem(QStringLiteral("response_type"), QStringLiteral("code"));
QUrl url(kOAuthAuthorizeUrl);
url.setQuery(url_query);
const bool result = QDesktopServices::openUrl(url);
if (!result) {
- QMessageBox messagebox(QMessageBox::Information, tr("Genius Authentication"), tr("Please open this URL in your browser") + QString(":%1 ").arg(url.toString()), QMessageBox::Ok);
+ QMessageBox messagebox(QMessageBox::Information, tr("Genius Authentication"), tr("Please open this URL in your browser") + QStringLiteral(":%1 ").arg(url.toString()), QMessageBox::Ok);
messagebox.setTextFormat(Qt::RichText);
messagebox.exec();
}
@@ -132,10 +132,10 @@ void GeniusLyricsProvider::RedirectArrived() {
QUrl url = server_->request_url();
if (url.isValid()) {
QUrlQuery url_query(url);
- if (url_query.hasQueryItem("error")) {
- AuthError(QUrlQuery(url).queryItemValue("error"));
+ if (url_query.hasQueryItem(QStringLiteral("error"))) {
+ AuthError(QUrlQuery(url).queryItemValue(QStringLiteral("error")));
}
- else if (url_query.hasQueryItem("code")) {
+ else if (url_query.hasQueryItem(QStringLiteral("code"))) {
QUrl redirect_url(kOAuthRedirectUrl);
redirect_url.setPort(server_->url().port());
RequestAccessToken(url, redirect_url);
@@ -164,17 +164,17 @@ void GeniusLyricsProvider::RequestAccessToken(const QUrl &url, const QUrl &redir
QUrlQuery url_query(url);
- if (url.hasQuery() && url_query.hasQueryItem("code") && url_query.hasQueryItem("state")) {
+ if (url.hasQuery() && url_query.hasQueryItem(QStringLiteral("code")) && url_query.hasQueryItem(QStringLiteral("state"))) {
- const QString code = url_query.queryItemValue("code");
+ const QString code = url_query.queryItemValue(QStringLiteral("code"));
QUrlQuery new_url_query;
- new_url_query.addQueryItem("code", QUrl::toPercentEncoding(code));
- new_url_query.addQueryItem("client_id", QUrl::toPercentEncoding(QByteArray::fromBase64(kClientIDB64)));
- new_url_query.addQueryItem("client_secret", QUrl::toPercentEncoding(QByteArray::fromBase64(kClientSecretB64)));
- new_url_query.addQueryItem("redirect_uri", QUrl::toPercentEncoding(redirect_url.toString()));
- new_url_query.addQueryItem("grant_type", "authorization_code");
- new_url_query.addQueryItem("response_type", "code");
+ new_url_query.addQueryItem(QStringLiteral("code"), QUrl::toPercentEncoding(code));
+ new_url_query.addQueryItem(QStringLiteral("client_id"), QUrl::toPercentEncoding(QByteArray::fromBase64(kClientIDB64)));
+ new_url_query.addQueryItem(QStringLiteral("client_secret"), QUrl::toPercentEncoding(QByteArray::fromBase64(kClientSecretB64)));
+ new_url_query.addQueryItem(QStringLiteral("redirect_uri"), QUrl::toPercentEncoding(redirect_url.toString()));
+ new_url_query.addQueryItem(QStringLiteral("grant_type"), QStringLiteral("authorization_code"));
+ new_url_query.addQueryItem(QStringLiteral("response_type"), QStringLiteral("code"));
QUrl new_url(kOAuthAccessTokenUrl);
QNetworkRequest req(new_url);
@@ -213,7 +213,7 @@ void GeniusLyricsProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- AuthError(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ AuthError(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
return;
}
else {
@@ -223,18 +223,18 @@ void GeniusLyricsProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("error") && json_obj.contains("error_description")) {
- QString error = json_obj["error"].toString();
- QString error_description = json_obj["error_description"].toString();
- login_errors_ << QString("Authentication failure: %1 (%2)").arg(error, error_description);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("error_description"))) {
+ QString error = json_obj[QStringLiteral("error")].toString();
+ QString error_description = json_obj[QStringLiteral("error_description")].toString();
+ login_errors_ << QStringLiteral("Authentication failure: %1 (%2)").arg(error, error_description);
}
}
if (login_errors_.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- login_errors_ << QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ login_errors_ << QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- login_errors_ << QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ login_errors_ << QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
AuthError();
@@ -248,32 +248,32 @@ void GeniusLyricsProvider::AccessTokenRequestFinished(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error(QString("Failed to parse Json data in authentication reply: %1").arg(json_error.errorString()));
+ Error(QStringLiteral("Failed to parse Json data in authentication reply: %1").arg(json_error.errorString()));
return;
}
if (json_doc.isEmpty()) {
- AuthError("Authentication reply from server has empty Json document.");
+ AuthError(QStringLiteral("Authentication reply from server has empty Json document."));
return;
}
if (!json_doc.isObject()) {
- AuthError("Authentication reply from server has Json document that is not an object.", json_doc);
+ AuthError(QStringLiteral("Authentication reply from server has Json document that is not an object."), json_doc);
return;
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- AuthError("Authentication reply from server has empty Json object.", json_doc);
+ AuthError(QStringLiteral("Authentication reply from server has empty Json object."), json_doc);
return;
}
- if (!json_obj.contains("access_token")) {
- AuthError("Authentication reply from server is missing access token.", json_obj);
+ if (!json_obj.contains(QStringLiteral("access_token"))) {
+ AuthError(QStringLiteral("Authentication reply from server is missing access token."), json_obj);
return;
}
- access_token_ = json_obj["access_token"].toString();
+ access_token_ = json_obj[QStringLiteral("access_token")].toString();
QSettings s;
s.beginGroup(kSettingsGroup);
@@ -297,7 +297,7 @@ bool GeniusLyricsProvider::StartSearch(const int id, const LyricsSearchRequest &
requests_search_.insert(id, search);
QUrlQuery url_query;
- url_query.addQueryItem("q", QUrl::toPercentEncoding(QString("%1 %2").arg(request.artist, request.title)));
+ url_query.addQueryItem(QStringLiteral("q"), QUrl::toPercentEncoding(QStringLiteral("%1 %2").arg(request.artist, request.title)));
QUrl url(kUrlSearch);
url.setQuery(url_query);
@@ -330,78 +330,78 @@ void GeniusLyricsProvider::HandleSearchReply(QNetworkReply *reply, const int id)
return;
}
- if (!json_obj.contains("meta")) {
- Error("Json reply is missing meta object.", json_obj);
+ if (!json_obj.contains(QStringLiteral("meta"))) {
+ Error(QStringLiteral("Json reply is missing meta object."), json_obj);
EndSearch(search);
return;
}
- if (!json_obj["meta"].isObject()) {
- Error("Json reply meta is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("meta")].isObject()) {
+ Error(QStringLiteral("Json reply meta is not an object."), json_obj);
EndSearch(search);
return;
}
- QJsonObject obj_meta = json_obj["meta"].toObject();
- if (!obj_meta.contains("status")) {
- Error("Json reply meta object is missing status.", obj_meta);
+ QJsonObject obj_meta = json_obj[QStringLiteral("meta")].toObject();
+ if (!obj_meta.contains(QStringLiteral("status"))) {
+ Error(QStringLiteral("Json reply meta object is missing status."), obj_meta);
EndSearch(search);
return;
}
- int status = obj_meta["status"].toInt();
+ int status = obj_meta[QStringLiteral("status")].toInt();
if (status != 200) {
- if (obj_meta.contains("message")) {
- Error(QString("Received error %1: %2.").arg(status).arg(obj_meta["message"].toString()));
+ if (obj_meta.contains(QStringLiteral("message"))) {
+ Error(QStringLiteral("Received error %1: %2.").arg(status).arg(obj_meta[QStringLiteral("message")].toString()));
}
else {
- Error(QString("Received error %1.").arg(status));
+ Error(QStringLiteral("Received error %1.").arg(status));
}
EndSearch(search);
return;
}
- if (!json_obj.contains("response")) {
- Error("Json reply is missing response.", json_obj);
+ if (!json_obj.contains(QStringLiteral("response"))) {
+ Error(QStringLiteral("Json reply is missing response."), json_obj);
EndSearch(search);
return;
}
- if (!json_obj["response"].isObject()) {
- Error("Json response is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("response")].isObject()) {
+ Error(QStringLiteral("Json response is not an object."), json_obj);
EndSearch(search);
return;
}
- QJsonObject obj_response = json_obj["response"].toObject();
- if (!obj_response.contains("hits")) {
- Error("Json response is missing hits.", obj_response);
+ QJsonObject obj_response = json_obj[QStringLiteral("response")].toObject();
+ if (!obj_response.contains(QStringLiteral("hits"))) {
+ Error(QStringLiteral("Json response is missing hits."), obj_response);
EndSearch(search);
return;
}
- if (!obj_response["hits"].isArray()) {
- Error("Json hits is not an array.", obj_response);
+ if (!obj_response[QStringLiteral("hits")].isArray()) {
+ Error(QStringLiteral("Json hits is not an array."), obj_response);
EndSearch(search);
return;
}
- QJsonArray array_hits = obj_response["hits"].toArray();
+ QJsonArray array_hits = obj_response[QStringLiteral("hits")].toArray();
for (const QJsonValueRef value_hit : array_hits) {
if (!value_hit.isObject()) {
continue;
}
QJsonObject obj_hit = value_hit.toObject();
- if (!obj_hit.contains("result")) {
+ if (!obj_hit.contains(QStringLiteral("result"))) {
continue;
}
- if (!obj_hit["result"].isObject()) {
+ if (!obj_hit[QStringLiteral("result")].isObject()) {
continue;
}
- QJsonObject obj_result = obj_hit["result"].toObject();
- if (!obj_result.contains("title") || !obj_result.contains("primary_artist") || !obj_result.contains("url") || !obj_result["primary_artist"].isObject()) {
- Error("Missing one or more values in result object", obj_result);
+ QJsonObject obj_result = obj_hit[QStringLiteral("result")].toObject();
+ if (!obj_result.contains(QStringLiteral("title")) || !obj_result.contains(QStringLiteral("primary_artist")) || !obj_result.contains(QStringLiteral("url")) || !obj_result[QStringLiteral("primary_artist")].isObject()) {
+ Error(QStringLiteral("Missing one or more values in result object"), obj_result);
continue;
}
- QJsonObject primary_artist = obj_result["primary_artist"].toObject();
- if (!primary_artist.contains("name")) continue;
+ QJsonObject primary_artist = obj_result[QStringLiteral("primary_artist")].toObject();
+ if (!primary_artist.contains(QStringLiteral("name"))) continue;
- QString artist = primary_artist["name"].toString();
- QString title = obj_result["title"].toString();
+ QString artist = primary_artist[QStringLiteral("name")].toString();
+ QString title = obj_result[QStringLiteral("title")].toString();
// Ignore results where both the artist and title don't match.
if (!artist.startsWith(search->request.albumartist, Qt::CaseInsensitive) &&
@@ -410,7 +410,7 @@ void GeniusLyricsProvider::HandleSearchReply(QNetworkReply *reply, const int id)
continue;
}
- QUrl url(obj_result["url"].toString());
+ QUrl url(obj_result[QStringLiteral("url")].toString());
if (!url.isValid()) continue;
if (search->requests_lyric_.contains(url)) continue;
@@ -450,27 +450,27 @@ void GeniusLyricsProvider::HandleLyricReply(QNetworkReply *reply, const int sear
const GeniusLyricsLyricContext lyric = search->requests_lyric_.value(url);
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
EndSearch(search, lyric);
return;
}
else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
EndSearch(search, lyric);
return;
}
QByteArray data = reply->readAll();
if (data.isEmpty()) {
- Error("Empty reply received from server.");
+ Error(QStringLiteral("Empty reply received from server."));
EndSearch(search, lyric);
return;
}
QString content = QString::fromUtf8(data);
- QString lyrics = HtmlLyricsProvider::ParseLyricsFromHTML(content, QRegularExpression("]*>"), QRegularExpression("<\\/div>"), QRegularExpression("
]+>"), true);
+ QString lyrics = HtmlLyricsProvider::ParseLyricsFromHTML(content, QRegularExpression(QStringLiteral("
]*>")), QRegularExpression(QStringLiteral("<\\/div>")), QRegularExpression(QStringLiteral("
]+>")), true);
if (lyrics.isEmpty()) {
- lyrics = HtmlLyricsProvider::ParseLyricsFromHTML(content, QRegularExpression("
]*>"), QRegularExpression("<\\/div>"), QRegularExpression("
"), true);
+ lyrics = HtmlLyricsProvider::ParseLyricsFromHTML(content, QRegularExpression(QStringLiteral("
]*>")), QRegularExpression(QStringLiteral("<\\/div>")), QRegularExpression(QStringLiteral("
")), true);
}
if (!lyrics.isEmpty()) {
diff --git a/src/lyrics/htmllyricsprovider.cpp b/src/lyrics/htmllyricsprovider.cpp
index bf4c041d..f989c87a 100644
--- a/src/lyrics/htmllyricsprovider.cpp
+++ b/src/lyrics/htmllyricsprovider.cpp
@@ -101,7 +101,7 @@ void HtmlLyricsProvider::HandleLyricsReply(QNetworkReply *reply, const int id, c
}
const QString lyrics = ParseLyricsFromHTML(QString::fromUtf8(data), QRegularExpression(start_tag_), QRegularExpression(end_tag_), QRegularExpression(lyrics_start_), multiple_);
- if (lyrics.isEmpty() || lyrics.contains("we do not have the lyrics for", Qt::CaseInsensitive)) {
+ if (lyrics.isEmpty() || lyrics.contains(QLatin1String("we do not have the lyrics for"), Qt::CaseInsensitive)) {
qLog(Debug) << name_ << "No lyrics for" << request.artist << request.album << request.title;
emit SearchFinished(id);
return;
@@ -159,12 +159,12 @@ QString HtmlLyricsProvider::ParseLyricsFromHTML(const QString &content, const QR
lyrics.append(content.mid(start_lyrics_idx, end_lyrics_idx - start_lyrics_idx)
.remove('\r')
.remove('\n')
- .remove(QRegularExpression("
]*>[^<]* "))
- .remove(QRegularExpression(""))
- .remove(QRegularExpression("
]*>×
"))
- .replace(QRegularExpression("
]*>"), "\n")
- .replace(QRegularExpression(""), "\n\n")
- .remove(QRegularExpression("<[^>]*>"))
+ .remove(QRegularExpression(QStringLiteral("
]*>[^<]* ")))
+ .remove(QRegularExpression(QStringLiteral("")))
+ .remove(QRegularExpression(QStringLiteral("
]*>×
")))
+ .replace(QRegularExpression(QStringLiteral("
]*>")), QStringLiteral("\n"))
+ .replace(QRegularExpression(QStringLiteral("")), QStringLiteral("\n\n"))
+ .remove(QRegularExpression(QStringLiteral("<[^>]*>")))
.trimmed());
}
else {
@@ -174,7 +174,7 @@ QString HtmlLyricsProvider::ParseLyricsFromHTML(const QString &content, const QR
}
while (start_idx > 0 && multiple);
- if (lyrics.length() > 6000 || lyrics.contains("there are no lyrics to", Qt::CaseInsensitive)) {
+ if (lyrics.length() > 6000 || lyrics.contains(QLatin1String("there are no lyrics to"), Qt::CaseInsensitive)) {
return QString();
}
diff --git a/src/lyrics/jsonlyricsprovider.cpp b/src/lyrics/jsonlyricsprovider.cpp
index 7a340b9c..53480484 100644
--- a/src/lyrics/jsonlyricsprovider.cpp
+++ b/src/lyrics/jsonlyricsprovider.cpp
@@ -36,13 +36,13 @@ JsonLyricsProvider::JsonLyricsProvider(const QString &name, const bool enabled,
QByteArray JsonLyricsProvider::ExtractData(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
if (reply->error() < 200) {
return QByteArray();
}
}
else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
}
return reply->readAll();
@@ -59,23 +59,23 @@ QJsonObject JsonLyricsProvider::ExtractJsonObj(const QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error(QString("Failed to parse json data: %1").arg(json_error.errorString()));
+ Error(QStringLiteral("Failed to parse json data: %1").arg(json_error.errorString()));
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", data);
+ Error(QStringLiteral("Received empty Json document."), data);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
return QJsonObject();
}
diff --git a/src/lyrics/letraslyricsprovider.cpp b/src/lyrics/letraslyricsprovider.cpp
index c4d8ec5b..db046884 100644
--- a/src/lyrics/letraslyricsprovider.cpp
+++ b/src/lyrics/letraslyricsprovider.cpp
@@ -35,7 +35,7 @@ const char LetrasLyricsProvider::kEndTag[] = "<\\/div>";
const char LetrasLyricsProvider::kLyricsStart[] = "
";
LetrasLyricsProvider::LetrasLyricsProvider(SharedPtr
network, QObject *parent)
- : HtmlLyricsProvider("letras.mus.br", true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
+ : HtmlLyricsProvider(QStringLiteral("letras.mus.br"), true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
QUrl LetrasLyricsProvider::Url(const LyricsSearchRequest &request) {
@@ -46,8 +46,8 @@ QUrl LetrasLyricsProvider::Url(const LyricsSearchRequest &request) {
QString LetrasLyricsProvider::StringFixup(const QString &text) {
return QUrl::toPercentEncoding(Utilities::Transliterate(text)
- .replace(QRegularExpression("[^\\w0-9_,&\\-\\(\\) ]"), "_")
- .replace(QRegularExpression(" {2,}"), " ")
+ .replace(QRegularExpression(QStringLiteral("[^\\w0-9_,&\\-\\(\\) ]")), QStringLiteral("_"))
+ .replace(QRegularExpression(QStringLiteral(" {2,}")), QStringLiteral(" "))
.simplified()
.replace(' ', '-')
.toLower()
diff --git a/src/lyrics/lololyricsprovider.cpp b/src/lyrics/lololyricsprovider.cpp
index c9fc3931..bb9df97c 100644
--- a/src/lyrics/lololyricsprovider.cpp
+++ b/src/lyrics/lololyricsprovider.cpp
@@ -39,7 +39,7 @@
const char *LoloLyricsProvider::kUrlSearch = "http://api.lololyrics.com/0.5/getLyric";
-LoloLyricsProvider::LoloLyricsProvider(SharedPtr network, QObject *parent) : LyricsProvider("LoloLyrics", true, false, network, parent) {}
+LoloLyricsProvider::LoloLyricsProvider(SharedPtr network, QObject *parent) : LyricsProvider(QStringLiteral("LoloLyrics"), true, false, network, parent) {}
LoloLyricsProvider::~LoloLyricsProvider() {
@@ -55,8 +55,8 @@ LoloLyricsProvider::~LoloLyricsProvider() {
bool LoloLyricsProvider::StartSearch(const int id, const LyricsSearchRequest &request) {
QUrlQuery url_query;
- url_query.addQueryItem("artist", QUrl::toPercentEncoding(request.artist));
- url_query.addQueryItem("track", QUrl::toPercentEncoding(request.title));
+ url_query.addQueryItem(QStringLiteral("artist"), QUrl::toPercentEncoding(request.artist));
+ url_query.addQueryItem(QStringLiteral("track"), QUrl::toPercentEncoding(request.title));
QUrl url(kUrlSearch);
url.setQuery(url_query);
@@ -81,7 +81,7 @@ void LoloLyricsProvider::HandleSearchReply(QNetworkReply *reply, const int id, c
QString failure_reason;
if (reply->error() != QNetworkReply::NoError) {
- failure_reason = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ failure_reason = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
if (reply->error() < 200) {
Error(failure_reason);
emit SearchFinished(id);
@@ -89,7 +89,7 @@ void LoloLyricsProvider::HandleSearchReply(QNetworkReply *reply, const int id, c
}
}
else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- failure_reason = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ failure_reason = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
QByteArray data = reply->readAll();
diff --git a/src/lyrics/lyricsfetchersearch.cpp b/src/lyrics/lyricsfetchersearch.cpp
index 0aa4e7a4..7c7f8e3f 100644
--- a/src/lyrics/lyricsfetchersearch.cpp
+++ b/src/lyrics/lyricsfetchersearch.cpp
@@ -60,7 +60,7 @@ void LyricsFetcherSearch::TerminateSearch() {
void LyricsFetcherSearch::Start(SharedPtr lyrics_providers) {
// Ignore Radio Paradise "commercial" break.
- if (request_.artist.compare("commercial-free", Qt::CaseInsensitive) == 0 && request_.title.compare("listener-supported", Qt::CaseInsensitive) == 0) {
+ if (request_.artist.compare(QLatin1String("commercial-free"), Qt::CaseInsensitive) == 0 && request_.title.compare(QLatin1String("listener-supported"), Qt::CaseInsensitive) == 0) {
TerminateSearch();
return;
}
diff --git a/src/lyrics/musixmatchlyricsprovider.cpp b/src/lyrics/musixmatchlyricsprovider.cpp
index 774116cf..0d9a18ae 100644
--- a/src/lyrics/musixmatchlyricsprovider.cpp
+++ b/src/lyrics/musixmatchlyricsprovider.cpp
@@ -45,7 +45,7 @@
using std::make_shared;
-MusixmatchLyricsProvider::MusixmatchLyricsProvider(SharedPtr network, QObject *parent) : JsonLyricsProvider("Musixmatch", true, false, network, parent), use_api_(true) {}
+MusixmatchLyricsProvider::MusixmatchLyricsProvider(SharedPtr network, QObject *parent) : JsonLyricsProvider(QStringLiteral("Musixmatch"), true, false, network, parent), use_api_(true) {}
MusixmatchLyricsProvider::~MusixmatchLyricsProvider() {
@@ -79,12 +79,12 @@ void MusixmatchLyricsProvider::CancelSearch(const int id) { Q_UNUSED(id); }
bool MusixmatchLyricsProvider::SendSearchRequest(LyricsSearchContextPtr search) {
QUrlQuery url_query;
- url_query.addQueryItem("apikey", QByteArray::fromBase64(kApiKey));
- url_query.addQueryItem("q_artist", QUrl::toPercentEncoding(search->request.artist));
- url_query.addQueryItem("q_track", QUrl::toPercentEncoding(search->request.title));
- url_query.addQueryItem("f_has_lyrics", "1");
+ url_query.addQueryItem(QStringLiteral("apikey"), QByteArray::fromBase64(kApiKey));
+ url_query.addQueryItem(QStringLiteral("q_artist"), QUrl::toPercentEncoding(search->request.artist));
+ url_query.addQueryItem(QStringLiteral("q_track"), QUrl::toPercentEncoding(search->request.title));
+ url_query.addQueryItem(QStringLiteral("f_has_lyrics"), QStringLiteral("1"));
- QUrl url(QString(kApiUrl) + QString("/track.search"));
+ QUrl url(QString(kApiUrl) + QStringLiteral("/track.search"));
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -107,24 +107,24 @@ void MusixmatchLyricsProvider::HandleSearchReply(QNetworkReply *reply, LyricsSea
if (reply->error() != QNetworkReply::NoError) {
if (reply->error() == 401 || reply->error() == 402) {
- Error(QString("Error %1 (%2) using API, switching to URL based lookup.").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("Error %1 (%2) using API, switching to URL based lookup.").arg(reply->errorString()).arg(reply->error()));
use_api_ = false;
CreateLyricsRequest(search);
return;
}
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
EndSearch(search);
return;
}
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 401 || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() == 402) {
- Error(QString("Received HTTP code %1 using API, switching to URL based lookup.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1 using API, switching to URL based lookup.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
use_api_ = false;
CreateLyricsRequest(search);
return;
}
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
EndSearch(search);
return;
}
@@ -136,61 +136,61 @@ void MusixmatchLyricsProvider::HandleSearchReply(QNetworkReply *reply, LyricsSea
return;
}
- if (!json_obj.contains("message")) {
- Error("Json reply is missing message object.", json_obj);
+ if (!json_obj.contains(QStringLiteral("message"))) {
+ Error(QStringLiteral("Json reply is missing message object."), json_obj);
EndSearch(search);
return;
}
- if (!json_obj["message"].isObject()) {
- Error("Json reply message is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("message")].isObject()) {
+ Error(QStringLiteral("Json reply message is not an object."), json_obj);
EndSearch(search);
return;
}
- QJsonObject obj_message = json_obj["message"].toObject();
+ QJsonObject obj_message = json_obj[QStringLiteral("message")].toObject();
- if (!obj_message.contains("header")) {
- Error("Json reply message object is missing header.", obj_message);
+ if (!obj_message.contains(QStringLiteral("header"))) {
+ Error(QStringLiteral("Json reply message object is missing header."), obj_message);
EndSearch(search);
return;
}
- if (!obj_message["header"].isObject()) {
- Error("Json reply message header is not an object.", obj_message);
+ if (!obj_message[QStringLiteral("header")].isObject()) {
+ Error(QStringLiteral("Json reply message header is not an object."), obj_message);
EndSearch(search);
return;
}
- QJsonObject obj_header = obj_message["header"].toObject();
+ QJsonObject obj_header = obj_message[QStringLiteral("header")].toObject();
- int status_code = obj_header["status_code"].toInt();
+ int status_code = obj_header[QStringLiteral("status_code")].toInt();
if (status_code != 200) {
- Error(QString("Received status code %1, switching to URL based lookup.").arg(status_code));
+ Error(QStringLiteral("Received status code %1, switching to URL based lookup.").arg(status_code));
use_api_ = false;
CreateLyricsRequest(search);
return;
}
- if (!obj_message.contains("body")) {
- Error("Json reply is missing body.", json_obj);
+ if (!obj_message.contains(QStringLiteral("body"))) {
+ Error(QStringLiteral("Json reply is missing body."), json_obj);
EndSearch(search);
return;
}
- if (!obj_message["body"].isObject()) {
- Error("Json body is not an object.", json_obj);
+ if (!obj_message[QStringLiteral("body")].isObject()) {
+ Error(QStringLiteral("Json body is not an object."), json_obj);
EndSearch(search);
return;
}
- QJsonObject obj_body = obj_message["body"].toObject();
+ QJsonObject obj_body = obj_message[QStringLiteral("body")].toObject();
- if (!obj_body.contains("track_list")) {
- Error("Json response is missing body.", obj_body);
+ if (!obj_body.contains(QStringLiteral("track_list"))) {
+ Error(QStringLiteral("Json response is missing body."), obj_body);
EndSearch(search);
return;
}
- if (!obj_body["track_list"].isArray()) {
- Error("Json hits is not an array.", obj_body);
+ if (!obj_body[QStringLiteral("track_list")].isArray()) {
+ Error(QStringLiteral("Json hits is not an array."), obj_body);
EndSearch(search);
return;
}
- QJsonArray array_tracklist = obj_body["track_list"].toArray();
+ QJsonArray array_tracklist = obj_body[QStringLiteral("track_list")].toArray();
for (const QJsonValueRef value_track : array_tracklist) {
if (!value_track.isObject()) {
@@ -198,23 +198,23 @@ void MusixmatchLyricsProvider::HandleSearchReply(QNetworkReply *reply, LyricsSea
}
QJsonObject obj_track = value_track.toObject();
- if (!obj_track.contains("track") || !obj_track["track"].isObject()) {
+ if (!obj_track.contains(QStringLiteral("track")) || !obj_track[QStringLiteral("track")].isObject()) {
continue;
}
- obj_track = obj_track["track"].toObject();
- if (!obj_track.contains("artist_name") ||
- !obj_track.contains("album_name") ||
- !obj_track.contains("track_name") ||
- !obj_track.contains("track_share_url")) {
- Error("Missing one or more values in result object", obj_track);
+ obj_track = obj_track[QStringLiteral("track")].toObject();
+ if (!obj_track.contains(QStringLiteral("artist_name")) ||
+ !obj_track.contains(QStringLiteral("album_name")) ||
+ !obj_track.contains(QStringLiteral("track_name")) ||
+ !obj_track.contains(QStringLiteral("track_share_url"))) {
+ Error(QStringLiteral("Missing one or more values in result object"), obj_track);
continue;
}
- QString artist_name = obj_track["artist_name"].toString();
- QString album_name = obj_track["album_name"].toString();
- QString track_name = obj_track["track_name"].toString();
- QUrl track_share_url(obj_track["track_share_url"].toString());
+ QString artist_name = obj_track[QStringLiteral("artist_name")].toString();
+ QString album_name = obj_track[QStringLiteral("album_name")].toString();
+ QString track_name = obj_track[QStringLiteral("track_name")].toString();
+ QUrl track_share_url(obj_track[QStringLiteral("track_share_url")].toString());
// Ignore results where both the artist, album and title don't match.
if (use_api_ &&
@@ -252,7 +252,7 @@ bool MusixmatchLyricsProvider::CreateLyricsRequest(LyricsSearchContextPtr search
return false;
}
- QUrl url(QString("https://www.musixmatch.com/lyrics/%1/%2").arg(artist_stripped, title_stripped));
+ QUrl url(QStringLiteral("https://www.musixmatch.com/lyrics/%1/%2").arg(artist_stripped, title_stripped));
search->requests_lyrics_.append(url);
return SendLyricsRequest(search, url);
@@ -280,26 +280,26 @@ void MusixmatchLyricsProvider::HandleLyricsReply(QNetworkReply *reply, LyricsSea
reply->deleteLater();
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
EndSearch(search, url);
return;
}
else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
EndSearch(search, url);
return;
}
QByteArray data = reply->readAll();
if (data.isEmpty()) {
- Error("Empty reply received from server.");
+ Error(QStringLiteral("Empty reply received from server."));
EndSearch(search, url);
return;
}
QString content = data;
- QString data_begin = "";
+ QString data_begin = QStringLiteral("");
qint64 begin_idx = content.indexOf(data_begin);
QString content_json;
if (begin_idx > 0) {
@@ -315,7 +315,7 @@ void MusixmatchLyricsProvider::HandleLyricsReply(QNetworkReply *reply, LyricsSea
return;
}
- if (content_json.contains(QRegularExpression("<[^>]*>"))) { // Make sure it's not HTML code.
+ if (content_json.contains(QRegularExpression(QStringLiteral("<[^>]*>")))) { // Make sure it's not HTML code.
EndSearch(search, url);
return;
}
@@ -326,86 +326,86 @@ void MusixmatchLyricsProvider::HandleLyricsReply(QNetworkReply *reply, LyricsSea
return;
}
- if (!obj_data.contains("props") || !obj_data["props"].isObject()) {
- Error("Json reply is missing props.", obj_data);
+ if (!obj_data.contains(QStringLiteral("props")) || !obj_data[QStringLiteral("props")].isObject()) {
+ Error(QStringLiteral("Json reply is missing props."), obj_data);
EndSearch(search, url);
return;
}
- obj_data = obj_data["props"].toObject();
+ obj_data = obj_data[QStringLiteral("props")].toObject();
- if (!obj_data.contains("pageProps") || !obj_data["pageProps"].isObject()) {
- Error("Json props is missing pageProps.", obj_data);
+ if (!obj_data.contains(QStringLiteral("pageProps")) || !obj_data[QStringLiteral("pageProps")].isObject()) {
+ Error(QStringLiteral("Json props is missing pageProps."), obj_data);
EndSearch(search, url);
return;
}
- obj_data = obj_data["pageProps"].toObject();
+ obj_data = obj_data[QStringLiteral("pageProps")].toObject();
- if (!obj_data.contains("data") || !obj_data["data"].isObject()) {
- Error("Json pageProps is missing data.", obj_data);
+ if (!obj_data.contains(QStringLiteral("data")) || !obj_data[QStringLiteral("data")].isObject()) {
+ Error(QStringLiteral("Json pageProps is missing data."), obj_data);
EndSearch(search, url);
return;
}
- obj_data = obj_data["data"].toObject();
+ obj_data = obj_data[QStringLiteral("data")].toObject();
- if (!obj_data.contains("trackInfo") || !obj_data["trackInfo"].isObject()) {
- Error("Json data is missing trackInfo.", obj_data);
+ if (!obj_data.contains(QStringLiteral("trackInfo")) || !obj_data[QStringLiteral("trackInfo")].isObject()) {
+ Error(QStringLiteral("Json data is missing trackInfo."), obj_data);
EndSearch(search, url);
return;
}
- obj_data = obj_data["trackInfo"].toObject();
+ obj_data = obj_data[QStringLiteral("trackInfo")].toObject();
- if (!obj_data.contains("data") || !obj_data["data"].isObject()) {
- Error("Json trackInfo reply is missing data.", obj_data);
+ if (!obj_data.contains(QStringLiteral("data")) || !obj_data[QStringLiteral("data")].isObject()) {
+ Error(QStringLiteral("Json trackInfo reply is missing data."), obj_data);
EndSearch(search, url);
return;
}
- obj_data = obj_data["data"].toObject();
+ obj_data = obj_data[QStringLiteral("data")].toObject();
- if (!obj_data.contains("track") || !obj_data["track"].isObject()) {
- Error("Json data is missing track.", obj_data);
+ if (!obj_data.contains(QStringLiteral("track")) || !obj_data[QStringLiteral("track")].isObject()) {
+ Error(QStringLiteral("Json data is missing track."), obj_data);
EndSearch(search, url);
return;
}
- const QJsonObject obj_track = obj_data["track"].toObject();
+ const QJsonObject obj_track = obj_data[QStringLiteral("track")].toObject();
- if (!obj_track.contains("hasLyrics") || !obj_track["hasLyrics"].isBool()) {
- Error("Json track is missing hasLyrics.", obj_track);
+ if (!obj_track.contains(QStringLiteral("hasLyrics")) || !obj_track[QStringLiteral("hasLyrics")].isBool()) {
+ Error(QStringLiteral("Json track is missing hasLyrics."), obj_track);
EndSearch(search, url);
return;
}
- const bool has_lyrics = obj_track["hasLyrics"].toBool();
+ const bool has_lyrics = obj_track[QStringLiteral("hasLyrics")].toBool();
if (!has_lyrics) {
EndSearch(search, url);
return;
}
LyricsSearchResult result;
- if (obj_track.contains("artistName") && obj_track["artistName"].isString()) {
- result.artist = obj_track["artistName"].toString();
+ if (obj_track.contains(QStringLiteral("artistName")) && obj_track[QStringLiteral("artistName")].isString()) {
+ result.artist = obj_track[QStringLiteral("artistName")].toString();
}
- if (obj_track.contains("albumName") && obj_track["albumName"].isString()) {
- result.album = obj_track["albumName"].toString();
+ if (obj_track.contains(QStringLiteral("albumName")) && obj_track[QStringLiteral("albumName")].isString()) {
+ result.album = obj_track[QStringLiteral("albumName")].toString();
}
- if (obj_track.contains("name") && obj_track["name"].isString()) {
- result.title = obj_track["name"].toString();
+ if (obj_track.contains(QStringLiteral("name")) && obj_track[QStringLiteral("name")].isString()) {
+ result.title = obj_track[QStringLiteral("name")].toString();
}
- if (!obj_data.contains("lyrics") || !obj_data["lyrics"].isObject()) {
- Error("Json data is missing lyrics.", obj_data);
+ if (!obj_data.contains(QStringLiteral("lyrics")) || !obj_data[QStringLiteral("lyrics")].isObject()) {
+ Error(QStringLiteral("Json data is missing lyrics."), obj_data);
EndSearch(search, url);
return;
}
- QJsonObject obj_lyrics = obj_data["lyrics"].toObject();
+ QJsonObject obj_lyrics = obj_data[QStringLiteral("lyrics")].toObject();
- if (!obj_lyrics.contains("body") || !obj_lyrics["body"].isString()) {
- Error("Json lyrics reply is missing body.", obj_lyrics);
+ if (!obj_lyrics.contains(QStringLiteral("body")) || !obj_lyrics[QStringLiteral("body")].isString()) {
+ Error(QStringLiteral("Json lyrics reply is missing body."), obj_lyrics);
EndSearch(search, url);
return;
}
- result.lyrics = obj_lyrics["body"].toString();
+ result.lyrics = obj_lyrics[QStringLiteral("body")].toString();
if (!result.lyrics.isEmpty()) {
result.lyrics = Utilities::DecodeHtmlEntities(result.lyrics);
diff --git a/src/lyrics/ovhlyricsprovider.cpp b/src/lyrics/ovhlyricsprovider.cpp
index bc5925c7..6cde42d9 100644
--- a/src/lyrics/ovhlyricsprovider.cpp
+++ b/src/lyrics/ovhlyricsprovider.cpp
@@ -38,7 +38,7 @@
const char *OVHLyricsProvider::kUrlSearch = "https://api.lyrics.ovh/v1/";
-OVHLyricsProvider::OVHLyricsProvider(SharedPtr network, QObject *parent) : JsonLyricsProvider("Lyrics.ovh", true, false, network, parent) {}
+OVHLyricsProvider::OVHLyricsProvider(SharedPtr network, QObject *parent) : JsonLyricsProvider(QStringLiteral("Lyrics.ovh"), true, false, network, parent) {}
OVHLyricsProvider::~OVHLyricsProvider() {
@@ -79,20 +79,20 @@ void OVHLyricsProvider::HandleSearchReply(QNetworkReply *reply, const int id, co
return;
}
- if (json_obj.contains("error")) {
- Error(json_obj["error"].toString());
+ if (json_obj.contains(QStringLiteral("error"))) {
+ Error(json_obj[QStringLiteral("error")].toString());
qLog(Debug) << "OVHLyrics: No lyrics for" << request.artist << request.title;
emit SearchFinished(id);
return;
}
- if (!json_obj.contains("lyrics")) {
+ if (!json_obj.contains(QStringLiteral("lyrics"))) {
emit SearchFinished(id);
return;
}
LyricsSearchResult result;
- result.lyrics = json_obj["lyrics"].toString();
+ result.lyrics = json_obj[QStringLiteral("lyrics")].toString();
if (result.lyrics.isEmpty()) {
qLog(Debug) << "OVHLyrics: No lyrics for" << request.artist << request.title;
diff --git a/src/lyrics/songlyricscomlyricsprovider.cpp b/src/lyrics/songlyricscomlyricsprovider.cpp
index 2e53453e..b2f1e79a 100644
--- a/src/lyrics/songlyricscomlyricsprovider.cpp
+++ b/src/lyrics/songlyricscomlyricsprovider.cpp
@@ -33,7 +33,7 @@ const char SongLyricsComLyricsProvider::kEndTag[] = "<\\/p>";
const char SongLyricsComLyricsProvider::kLyricsStart[] = "]+>";
SongLyricsComLyricsProvider::SongLyricsComLyricsProvider(SharedPtr network, QObject *parent)
- : HtmlLyricsProvider("songlyrics.com", true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
+ : HtmlLyricsProvider(QStringLiteral("songlyrics.com"), true, kStartTag, kEndTag, kLyricsStart, false, network, parent) {}
QUrl SongLyricsComLyricsProvider::Url(const LyricsSearchRequest &request) {
@@ -45,11 +45,11 @@ QString SongLyricsComLyricsProvider::StringFixup(QString text) {
return text.replace('/', '-')
.replace('\'', '-')
- .remove(QRegularExpression("[^\\w0-9\\- ]"))
- .replace(QRegularExpression(" {2,}"), " ")
+ .remove(QRegularExpression(QStringLiteral("[^\\w0-9\\- ]")))
+ .replace(QRegularExpression(QStringLiteral(" {2,}")), QStringLiteral(" "))
.simplified()
.replace(' ', '-')
- .replace(QRegularExpression("(-)\\1+"), "-")
+ .replace(QRegularExpression(QStringLiteral("(-)\\1+")), QStringLiteral("-"))
.toLower();
}
diff --git a/src/main.cpp b/src/main.cpp
index aebc9c65..82f9f406 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -129,11 +129,11 @@ int main(int argc, char *argv[]) {
QCoreApplication::setApplicationName("Strawberry");
QCoreApplication::setOrganizationName("Strawberry");
#else
- QCoreApplication::setApplicationName("strawberry");
- QCoreApplication::setOrganizationName("strawberry");
+ QCoreApplication::setApplicationName(QStringLiteral("strawberry"));
+ QCoreApplication::setOrganizationName(QStringLiteral("strawberry"));
#endif
- QCoreApplication::setApplicationVersion(STRAWBERRY_VERSION_DISPLAY);
- QCoreApplication::setOrganizationDomain("strawberrymusicplayer.org");
+ QCoreApplication::setApplicationVersion(QStringLiteral(STRAWBERRY_VERSION_DISPLAY));
+ QCoreApplication::setOrganizationDomain(QStringLiteral("strawberrymusicplayer.org"));
QCoreApplication::setQuitLockEnabled(false);
@@ -180,7 +180,7 @@ int main(int argc, char *argv[]) {
// Output the version, so when people attach log output to bug reports they don't have to tell us which version they're using.
qLog(Info) << "Strawberry" << STRAWBERRY_VERSION_DISPLAY << "Qt" << QLibraryInfo::version().toString();
- qLog(Info) << QString("%1 %2 - (%3 %4) [%5]").arg(QSysInfo::prettyProductName(), QSysInfo::productVersion(), QSysInfo::kernelType(), QSysInfo::kernelVersion(), QSysInfo::currentCpuArchitecture());
+ qLog(Info) << QStringLiteral("%1 %2 - (%3 %4) [%5]").arg(QSysInfo::prettyProductName(), QSysInfo::productVersion(), QSysInfo::kernelType(), QSysInfo::kernelVersion(), QSysInfo::currentCpuArchitecture());
// Seed the random number generators.
time_t t = time(nullptr);
@@ -190,8 +190,8 @@ int main(int argc, char *argv[]) {
Utilities::IncreaseFDLimit();
#endif
- QGuiApplication::setApplicationDisplayName("Strawberry Music Player");
- QGuiApplication::setDesktopFileName("org.strawberrymusicplayer.strawberry");
+ QGuiApplication::setApplicationDisplayName(QStringLiteral("Strawberry Music Player"));
+ QGuiApplication::setDesktopFileName(QStringLiteral("org.strawberrymusicplayer.strawberry"));
QGuiApplication::setQuitOnLastWindowClosed(false);
QApplication a(argc, argv);
@@ -206,7 +206,7 @@ int main(int argc, char *argv[]) {
return 0;
}
- QGuiApplication::setWindowIcon(IconLoader::Load("strawberry"));
+ QGuiApplication::setWindowIcon(IconLoader::Load(QStringLiteral("strawberry")));
#if defined(USE_BUNDLE)
qLog(Debug) << "Looking for resources in" << QCoreApplication::libraryPaths();
@@ -220,7 +220,7 @@ int main(int argc, char *argv[]) {
s.beginGroup(AppearanceSettingsPage::kSettingsGroup);
QString style = s.value(AppearanceSettingsPage::kStyle).toString();
if (style.isEmpty()) {
- style="default";
+ style=QStringLiteral("default");
s.setValue(AppearanceSettingsPage::kStyle, style);
}
s.endGroup();
diff --git a/src/moodbar/moodbarpipeline.cpp b/src/moodbar/moodbarpipeline.cpp
index dc8de97d..d73330a4 100644
--- a/src/moodbar/moodbarpipeline.cpp
+++ b/src/moodbar/moodbarpipeline.cpp
@@ -90,10 +90,10 @@ void MoodbarPipeline::Start() {
pipeline_ = gst_pipeline_new("moodbar-pipeline");
- GstElement *decodebin = CreateElement("uridecodebin");
- convert_element_ = CreateElement("audioconvert");
- GstElement *spectrum = CreateElement("fastspectrum");
- GstElement *fakesink = CreateElement("fakesink");
+ GstElement *decodebin = CreateElement(QStringLiteral("uridecodebin"));
+ convert_element_ = CreateElement(QStringLiteral("audioconvert"));
+ GstElement *spectrum = CreateElement(QStringLiteral("fastspectrum"));
+ GstElement *fakesink = CreateElement(QStringLiteral("fakesink"));
if (!decodebin || !convert_element_ || !spectrum || !fakesink) {
gst_object_unref(GST_OBJECT(pipeline_));
diff --git a/src/musicbrainz/acoustidclient.cpp b/src/musicbrainz/acoustidclient.cpp
index 70f9526e..c83ecf0f 100644
--- a/src/musicbrainz/acoustidclient.cpp
+++ b/src/musicbrainz/acoustidclient.cpp
@@ -129,10 +129,10 @@ void AcoustidClient::RequestFinished(QNetworkReply *reply, const int request_id)
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError) {
- qLog(Error) << QString("Acoustid: %1 (%2)").arg(reply->errorString()).arg(reply->error());
+ qLog(Error) << QStringLiteral("Acoustid: %1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- qLog(Error) << QString("Acoustid: Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ qLog(Error) << QStringLiteral("Acoustid: Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
emit Finished(request_id, QStringList());
return;
@@ -148,7 +148,7 @@ void AcoustidClient::RequestFinished(QNetworkReply *reply, const int request_id)
QJsonObject json_object = json_document.object();
- QString status = json_object["status"].toString();
+ QString status = json_object[QStringLiteral("status")].toString();
if (status != "ok") {
emit Finished(request_id, QStringList(), status);
return;
@@ -159,19 +159,19 @@ void AcoustidClient::RequestFinished(QNetworkReply *reply, const int request_id)
// -then sort results by number of sources (the results are originally
// unsorted but results with more sources are likely to be more accurate)
// -keep only the ids, as sources where useful only to sort the results
- QJsonArray json_results = json_object["results"].toArray();
+ QJsonArray json_results = json_object[QStringLiteral("results")].toArray();
// List of pairs
QList id_source_list;
for (const QJsonValueRef v : json_results) {
QJsonObject r = v.toObject();
- if (!r["recordings"].isUndefined()) {
- QJsonArray json_recordings = r["recordings"].toArray();
+ if (!r[QStringLiteral("recordings")].isUndefined()) {
+ QJsonArray json_recordings = r[QStringLiteral("recordings")].toArray();
for (const QJsonValueRef recording : json_recordings) {
QJsonObject o = recording.toObject();
- if (!o["id"].isUndefined()) {
- id_source_list << IdSource(o["id"].toString(), o["sources"].toInt());
+ if (!o[QStringLiteral("id")].isUndefined()) {
+ id_source_list << IdSource(o[QStringLiteral("id")].toString(), o[QStringLiteral("sources")].toInt());
}
}
}
diff --git a/src/musicbrainz/musicbrainzclient.cpp b/src/musicbrainz/musicbrainzclient.cpp
index 2bf7f0da..e6250296 100644
--- a/src/musicbrainz/musicbrainzclient.cpp
+++ b/src/musicbrainz/musicbrainzclient.cpp
@@ -84,7 +84,7 @@ QByteArray MusicBrainzClient::GetReplyData(QNetworkReply *reply, QString &error)
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
// See if there is Json data containing "error" - then use that instead.
@@ -93,16 +93,16 @@ QByteArray MusicBrainzClient::GetReplyData(QNetworkReply *reply, QString &error)
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("error")) {
- error = json_obj["error"].toString();
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error"))) {
+ error = json_obj[QStringLiteral("error")].toString();
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
Error(error, data);
}
diff --git a/src/musicbrainz/musicbrainzclient.h b/src/musicbrainz/musicbrainzclient.h
index d576d578..b37f6589 100644
--- a/src/musicbrainz/musicbrainzclient.h
+++ b/src/musicbrainz/musicbrainzclient.h
@@ -152,16 +152,16 @@ class MusicBrainzClient : public QObject {
}
void SetStatusFromString(const QString &s) {
- if (s.compare("Official", Qt::CaseInsensitive) == 0) {
+ if (s.compare(QLatin1String("Official"), Qt::CaseInsensitive) == 0) {
status_ = Status::Official;
}
- else if (s.compare("Promotion", Qt::CaseInsensitive) == 0) {
+ else if (s.compare(QLatin1String("Promotion"), Qt::CaseInsensitive) == 0) {
status_ = Status::Promotional;
}
- else if (s.compare("Bootleg", Qt::CaseInsensitive) == 0) {
+ else if (s.compare(QLatin1String("Bootleg"), Qt::CaseInsensitive) == 0) {
status_ = Status::Bootleg;
}
- else if (s.compare("Pseudo-release", Qt::CaseInsensitive) == 0) {
+ else if (s.compare(QLatin1String("Pseudo-release"), Qt::CaseInsensitive) == 0) {
status_ = Status::PseudoRelease;
}
else {
diff --git a/src/organize/organize.cpp b/src/organize/organize.cpp
index 73752b1f..5c88ccb8 100644
--- a/src/organize/organize.cpp
+++ b/src/organize/organize.cpp
@@ -393,6 +393,6 @@ void Organize::timerEvent(QTimerEvent *e) {
void Organize::LogLine(const QString &message) {
QString date(QDateTime::currentDateTime().toString(Qt::TextDate));
- log_.append(QString("%1: %2").arg(date, message));
+ log_.append(QStringLiteral("%1: %2").arg(date, message));
}
diff --git a/src/organize/organizedialog.cpp b/src/organize/organizedialog.cpp
index 07bb61f4..a02caeb8 100644
--- a/src/organize/organizedialog.cpp
+++ b/src/organize/organizedialog.cpp
@@ -91,35 +91,35 @@ OrganizeDialog::OrganizeDialog(SharedPtr task_manager, SharedPtrbutton_box->addButton("Save settings", QDialogButtonBox::ApplyRole);
+ QPushButton *button_save = ui_->button_box->addButton(QStringLiteral("Save settings"), QDialogButtonBox::ApplyRole);
QObject::connect(button_save, &QPushButton::clicked, this, &OrganizeDialog::SaveSettings);
- button_save->setIcon(IconLoader::Load("document-save"));
- ui_->button_box->button(QDialogButtonBox::RestoreDefaults)->setIcon(IconLoader::Load("edit-undo"));
+ button_save->setIcon(IconLoader::Load(QStringLiteral("document-save")));
+ ui_->button_box->button(QDialogButtonBox::RestoreDefaults)->setIcon(IconLoader::Load(QStringLiteral("edit-undo")));
QObject::connect(ui_->button_box->button(QDialogButtonBox::RestoreDefaults), &QPushButton::clicked, this, &OrganizeDialog::RestoreDefaults);
- ui_->aftercopying->setItemIcon(1, IconLoader::Load("edit-delete"));
+ ui_->aftercopying->setItemIcon(1, IconLoader::Load(QStringLiteral("edit-delete")));
// Valid tags
QMap tags;
- tags[tr("Title")] = "title";
- tags[tr("Album")] = "album";
- tags[tr("Artist")] = "artist";
- tags[tr("Artist's initial")] = "artistinitial";
- tags[tr("Album artist")] = "albumartist";
- tags[tr("Composer")] = "composer";
- tags[tr("Performer")] = "performer";
- tags[tr("Grouping")] = "grouping";
- tags[tr("Track")] = "track";
- tags[tr("Disc")] = "disc";
- tags[tr("Year")] = "year";
- tags[tr("Original year")] = "originalyear";
- tags[tr("Genre")] = "genre";
- tags[tr("Comment")] = "comment";
- tags[tr("Length")] = "length";
- tags[tr("Bitrate", "Refers to bitrate in file organize dialog.")] = "bitrate";
- tags[tr("Sample rate")] = "samplerate";
- tags[tr("Bit depth")] = "bitdepth";
- tags[tr("File extension")] = "extension";
+ tags[tr("Title")] = QStringLiteral("title");
+ tags[tr("Album")] = QStringLiteral("album");
+ tags[tr("Artist")] = QStringLiteral("artist");
+ tags[tr("Artist's initial")] = QStringLiteral("artistinitial");
+ tags[tr("Album artist")] = QStringLiteral("albumartist");
+ tags[tr("Composer")] = QStringLiteral("composer");
+ tags[tr("Performer")] = QStringLiteral("performer");
+ tags[tr("Grouping")] = QStringLiteral("grouping");
+ tags[tr("Track")] = QStringLiteral("track");
+ tags[tr("Disc")] = QStringLiteral("disc");
+ tags[tr("Year")] = QStringLiteral("year");
+ tags[tr("Original year")] = QStringLiteral("originalyear");
+ tags[tr("Genre")] = QStringLiteral("genre");
+ tags[tr("Comment")] = QStringLiteral("comment");
+ tags[tr("Length")] = QStringLiteral("length");
+ tags[tr("Bitrate", "Refers to bitrate in file organize dialog.")] = QStringLiteral("bitrate");
+ tags[tr("Sample rate")] = QStringLiteral("samplerate");
+ tags[tr("Bit depth")] = QStringLiteral("bitdepth");
+ tags[tr("File extension")] = QStringLiteral("extension");
// Naming scheme input field
new OrganizeFormat::SyntaxHighlighter(ui_->naming);
@@ -530,7 +530,7 @@ void OrganizeDialog::UpdatePreviews() {
if (has_local_destination) {
for (const Organize::NewSongInfo &song_info : new_songs_info_) {
QString filename = storage->LocalPath() + "/" + song_info.new_filename_;
- QListWidgetItem *item = new QListWidgetItem(song_info.unique_filename_ ? IconLoader::Load("dialog-ok-apply") : IconLoader::Load("dialog-warning"), QDir::toNativeSeparators(filename), ui_->preview);
+ QListWidgetItem *item = new QListWidgetItem(song_info.unique_filename_ ? IconLoader::Load(QStringLiteral("dialog-ok-apply")) : IconLoader::Load(QStringLiteral("dialog-warning")), QDir::toNativeSeparators(filename), ui_->preview);
ui_->preview->addItem(item);
if (!song_info.unique_filename_) {
ok = false;
diff --git a/src/organize/organizeformat.cpp b/src/organize/organizeformat.cpp
index 2c3a3b6c..76837ae6 100644
--- a/src/organize/organizeformat.cpp
+++ b/src/organize/organizeformat.cpp
@@ -46,29 +46,29 @@
constexpr char OrganizeFormat::kBlockPattern[] = "\\{([^{}]+)\\}";
constexpr char OrganizeFormat::kTagPattern[] = "\\%([a-zA-Z]*)";
-const QStringList OrganizeFormat::kKnownTags = QStringList() << "title"
- << "album"
- << "artist"
- << "artistinitial"
- << "albumartist"
- << "composer"
- << "track"
- << "disc"
- << "year"
- << "originalyear"
- << "genre"
- << "comment"
- << "length"
- << "bitrate"
- << "samplerate"
- << "bitdepth"
- << "extension"
- << "performer"
- << "grouping"
- << "lyrics";
+const QStringList OrganizeFormat::kKnownTags = QStringList() << QStringLiteral("title")
+ << QStringLiteral("album")
+ << QStringLiteral("artist")
+ << QStringLiteral("artistinitial")
+ << QStringLiteral("albumartist")
+ << QStringLiteral("composer")
+ << QStringLiteral("track")
+ << QStringLiteral("disc")
+ << QStringLiteral("year")
+ << QStringLiteral("originalyear")
+ << QStringLiteral("genre")
+ << QStringLiteral("comment")
+ << QStringLiteral("length")
+ << QStringLiteral("bitrate")
+ << QStringLiteral("samplerate")
+ << QStringLiteral("bitdepth")
+ << QStringLiteral("extension")
+ << QStringLiteral("performer")
+ << QStringLiteral("grouping")
+ << QStringLiteral("lyrics");
-const QStringList OrganizeFormat::kUniqueTags = QStringList() << "title"
- << "track";
+const QStringList OrganizeFormat::kUniqueTags = QStringList() << QStringLiteral("title")
+ << QStringLiteral("track");
const QRgb OrganizeFormat::SyntaxHighlighter::kValidTagColorLight = qRgb(64, 64, 255);
const QRgb OrganizeFormat::SyntaxHighlighter::kInvalidTagColorLight = qRgb(255, 64, 64);
@@ -175,7 +175,7 @@ OrganizeFormat::GetFilenameForSongResult OrganizeFormat::GetFilenameForSong(cons
filepath.append(info.completeBaseName());
// Fix any parts of the path that start with dots.
- QStringList parts_old = filepath.split("/");
+ QStringList parts_old = filepath.split(QStringLiteral("/"));
QStringList parts_new;
for (int i = 0; i < parts_old.count(); ++i) {
QString part = parts_old[i];
@@ -188,12 +188,12 @@ OrganizeFormat::GetFilenameForSongResult OrganizeFormat::GetFilenameForSong(cons
part = part.trimmed();
parts_new.append(part);
}
- filepath = parts_new.join("/");
+ filepath = parts_new.join(QStringLiteral("/"));
- if (replace_spaces_) filepath.replace(QRegularExpression("\\s"), "_");
+ if (replace_spaces_) filepath.replace(QRegularExpression(QStringLiteral("\\s")), QStringLiteral("_"));
if (!extension.isEmpty()) {
- filepath.append(QString(".%1").arg(extension));
+ filepath.append(QStringLiteral(".%1").arg(extension));
}
return GetFilenameForSongResult(filepath, unique_filename);
@@ -211,7 +211,7 @@ QString OrganizeFormat::ParseBlock(QString block, const Song &song, bool *have_t
// Recursively parse the block
bool empty = false;
QString value = ParseBlock(re_match.captured(1), song, have_tagdata, &empty);
- if (empty) value = "";
+ if (empty) value = QLatin1String("");
// Replace the block's value
block.replace(pos, re_match.capturedLength(), value);
@@ -306,15 +306,15 @@ QString OrganizeFormat::TagValue(const QString &tag, const Song &song) const {
else if (tag == "artistinitial") {
value = song.effective_albumartist().trimmed();
if (!value.isEmpty()) {
- value.replace(QRegularExpression("^the\\s+", QRegularExpression::CaseInsensitiveOption), "");
+ value.replace(QRegularExpression(QStringLiteral("^the\\s+"), QRegularExpression::CaseInsensitiveOption), QLatin1String(""));
value = value[0].toUpper();
}
}
else if (tag == "albumartist") {
- value = song.is_compilation() ? "Various Artists" : song.effective_albumartist();
+ value = song.is_compilation() ? QStringLiteral("Various Artists") : song.effective_albumartist();
}
- if (value == "0" || value == "-1") value = "";
+ if (value == "0" || value == "-1") value = QLatin1String("");
// Prepend a 0 to single-digit track numbers
if (tag == "track" && value.length() == 1) value.prepend('0');
diff --git a/src/osd/osdbase.cpp b/src/osd/osdbase.cpp
index fbfbd542..7f571938 100644
--- a/src/osd/osdbase.cpp
+++ b/src/osd/osdbase.cpp
@@ -146,7 +146,7 @@ void OSDBase::ShowPlaying(const Song &song, const QUrl &cover_url, const QImage
else {
summary = song.PrettyTitle();
if (!song.artist().isEmpty()) {
- summary = QString("%1 - %2").arg(song.artist(), summary);
+ summary = QStringLiteral("%1 - %2").arg(song.artist(), summary);
}
if (!song.album().isEmpty()) {
message_parts << song.album();
@@ -168,14 +168,14 @@ void OSDBase::ShowPlaying(const Song &song, const QUrl &cover_url, const QImage
#endif
}
- QString message = message_parts.join(", ");
+ QString message = message_parts.join(QStringLiteral(", "));
if (html_escaped) message = message.toHtmlEscaped();
if (show_art_) {
- ShowMessage(summary, message, "notification-audio-play", image);
+ ShowMessage(summary, message, QStringLiteral("notification-audio-play"), image);
}
else {
- ShowMessage(summary, message, "notification-audio-play", QImage());
+ ShowMessage(summary, message, QStringLiteral("notification-audio-play"), QImage());
}
// Reload the saved settings if they were changed for preview
@@ -378,7 +378,7 @@ QString OSDBase::ReplaceMessage(const MessageType type, const QString &message,
#endif
bool html_escaped = false;
- QString newline = "";
+ QString newline = QLatin1String("");
// We need different strings depending on notification type
switch (behaviour_) {
@@ -391,12 +391,12 @@ QString OSDBase::ReplaceMessage(const MessageType type, const QString &message,
switch (type) {
case MessageType::Summary:{
html_escaped = false;
- newline = "";
+ newline = QLatin1String("");
break;
}
case MessageType::Message: {
html_escaped = true;
- newline = " ";
+ newline = QStringLiteral(" ");
break;
}
}
@@ -411,12 +411,12 @@ QString OSDBase::ReplaceMessage(const MessageType type, const QString &message,
case Behaviour::TrayPopup:
qLog(Debug) << "New line not supported by this notification type.";
html_escaped = false;
- newline = "";
+ newline = QLatin1String("");
break;
case Behaviour::Disabled: // When notifications are disabled, we force the PrettyOSD
case Behaviour::Pretty:
html_escaped = true;
- newline = " ";
+ newline = QStringLiteral(" ");
break;
}
diff --git a/src/osd/osdbase.h b/src/osd/osdbase.h
index 7f4f5c9c..31d67c8a 100644
--- a/src/osd/osdbase.h
+++ b/src/osd/osdbase.h
@@ -87,7 +87,7 @@ class OSDBase : public QObject {
Message
};
void ShowPlaying(const Song &song, const QUrl &cover_url, const QImage &image, const bool preview = false);
- void ShowMessage(const QString &summary, const QString &message = QString(), const QString &icon = "strawberry", const QImage &image = QImage());
+ void ShowMessage(const QString &summary, const QString &message = QString(), const QString &icon = QStringLiteral("strawberry"), const QImage &image = QImage());
QString ReplaceMessage(const MessageType type, const QString &message, const Song &song);
virtual void ShowMessageNative(const QString &summary, const QString &message, const QString &icon = QString(), const QImage &image = QImage());
diff --git a/src/osd/osddbus.cpp b/src/osd/osddbus.cpp
index 8dda254c..de125875 100644
--- a/src/osd/osddbus.cpp
+++ b/src/osd/osddbus.cpp
@@ -145,21 +145,21 @@ void OSDDBus::ShowMessageNative(const QString &summary, const QString &message,
QVariantMap hints;
QString summary_stripped = summary;
- summary_stripped = summary_stripped.remove(QRegularExpression("[&\"<>]")).simplified();
+ summary_stripped = summary_stripped.remove(QRegularExpression(QStringLiteral("[&\"<>]"))).simplified();
if (!image.isNull()) {
if (version_ >= QVersionNumber(1, 2)) {
- hints["image-data"] = QVariant(image);
+ hints[QStringLiteral("image-data")] = QVariant(image);
}
else if (version_ >= QVersionNumber(1, 1)) {
- hints["image_data"] = QVariant(image);
+ hints[QStringLiteral("image_data")] = QVariant(image);
}
else {
- hints["icon_data"] = QVariant(image);
+ hints[QStringLiteral("icon_data")] = QVariant(image);
}
}
- hints["transient"] = QVariant(true);
+ hints[QStringLiteral("transient")] = QVariant(true);
quint64 id = 0;
if (last_notification_time_.secsTo(QDateTime::currentDateTime()) * 1000 < timeout_msec()) {
diff --git a/src/osd/osdpretty.cpp b/src/osd/osdpretty.cpp
index ffc1cf81..8e8b894c 100644
--- a/src/osd/osdpretty.cpp
+++ b/src/osd/osdpretty.cpp
@@ -133,14 +133,14 @@ OSDPretty::OSDPretty(Mode mode, QWidget *parent)
QObject::connect(fader_, &QTimeLine::finished, this, &OSDPretty::FaderFinished);
// Load the show edges and corners
- QImage shadow_edge(":/pictures/osd_shadow_edge.png");
- QImage shadow_corner(":/pictures/osd_shadow_corner.png");
+ QImage shadow_edge(QStringLiteral(":/pictures/osd_shadow_edge.png"));
+ QImage shadow_corner(QStringLiteral(":/pictures/osd_shadow_corner.png"));
for (int i = 0; i < 4; ++i) {
QTransform rotation = QTransform().rotate(90 * i);
shadow_edge_[i] = QPixmap::fromImage(shadow_edge.transformed(rotation));
shadow_corner_[i] = QPixmap::fromImage(shadow_corner.transformed(rotation));
}
- background_ = QPixmap(":/pictures/osd_background.png");
+ background_ = QPixmap(QStringLiteral(":/pictures/osd_background.png"));
// Set the margins to allow for the drop shadow
QBoxLayout *l = qobject_cast(layout());
diff --git a/src/playlist/playlist.cpp b/src/playlist/playlist.cpp
index f315eb22..45aba524 100644
--- a/src/playlist/playlist.cpp
+++ b/src/playlist/playlist.cpp
@@ -772,7 +772,7 @@ Qt::ItemFlags Playlist::flags(const QModelIndex &idx) const {
QStringList Playlist::mimeTypes() const {
- return QStringList() << "text/uri-list" << kRowsMimetype;
+ return QStringList() << QStringLiteral("text/uri-list") << kRowsMimetype;
}
@@ -1411,7 +1411,7 @@ QString Playlist::column_name(Column column) {
default: qLog(Error) << "No such column" << column;;
}
- return "";
+ return QLatin1String("");
}
@@ -1424,11 +1424,11 @@ QString Playlist::abbreviated_column_name(const Column column) {
case Column_PlayCount:
case Column_SkipCount:
case Column_Track:
- return QString("%1#").arg(column_name[0]);
+ return QStringLiteral("%1#").arg(column_name[0]);
default:
return column_name;
}
- return "";
+ return QLatin1String("");
}
diff --git a/src/playlist/playlistbackend.cpp b/src/playlist/playlistbackend.cpp
index 3ced8070..5ecd12ea 100644
--- a/src/playlist/playlistbackend.cpp
+++ b/src/playlist/playlistbackend.cpp
@@ -109,14 +109,14 @@ PlaylistBackend::PlaylistList PlaylistBackend::GetPlaylists(const GetPlaylistsFl
QStringList condition_list;
if (flags & GetPlaylistsFlags::GetPlaylists_OpenInUi) {
- condition_list << "ui_order != -1";
+ condition_list << QStringLiteral("ui_order != -1");
}
if (flags & GetPlaylistsFlags::GetPlaylists_Favorite) {
- condition_list << "is_favorite != 0";
+ condition_list << QStringLiteral("is_favorite != 0");
}
QString condition;
if (!condition_list.isEmpty()) {
- condition = " WHERE " + condition_list.join(" OR ");
+ condition = " WHERE " + condition_list.join(QStringLiteral(" OR "));
}
SqlQuery q(db);
@@ -150,9 +150,9 @@ PlaylistBackend::Playlist PlaylistBackend::GetPlaylist(const int id) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("SELECT ROWID, name, last_played, special_type, ui_path, is_favorite, dynamic_playlist_type, dynamic_playlist_data, dynamic_playlist_backend FROM playlists WHERE ROWID=:id");
+ q.prepare(QStringLiteral("SELECT ROWID, name, last_played, special_type, ui_path, is_favorite, dynamic_playlist_type, dynamic_playlist_data, dynamic_playlist_backend FROM playlists WHERE ROWID=:id"));
- q.BindValue(":id", id);
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return Playlist();
@@ -184,12 +184,12 @@ PlaylistItemPtrList PlaylistBackend::GetPlaylistItems(const int playlist) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
- QString query = "SELECT songs.ROWID, " + Song::JoinSpec("songs") + ", p.ROWID, " + Song::JoinSpec("p") + ", p.type FROM playlist_items AS p LEFT JOIN songs ON p.collection_id = songs.ROWID WHERE p.playlist = :playlist";
+ QString query = "SELECT songs.ROWID, " + Song::JoinSpec(QStringLiteral("songs")) + ", p.ROWID, " + Song::JoinSpec(QStringLiteral("p")) + ", p.type FROM playlist_items AS p LEFT JOIN songs ON p.collection_id = songs.ROWID WHERE p.playlist = :playlist";
SqlQuery q(db);
// Forward iterations only may be faster
q.setForwardOnly(true);
q.prepare(query);
- q.BindValue(":playlist", playlist);
+ q.BindValue(QStringLiteral(":playlist"), playlist);
if (!q.Exec()) {
db_->ReportErrors(q);
return PlaylistItemPtrList();
@@ -219,12 +219,12 @@ SongList PlaylistBackend::GetPlaylistSongs(const int playlist) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
- QString query = "SELECT songs.ROWID, " + Song::JoinSpec("songs") + ", p.ROWID, " + Song::JoinSpec("p") + ", p.type FROM playlist_items AS p LEFT JOIN songs ON p.collection_id = songs.ROWID WHERE p.playlist = :playlist";
+ QString query = "SELECT songs.ROWID, " + Song::JoinSpec(QStringLiteral("songs")) + ", p.ROWID, " + Song::JoinSpec(QStringLiteral("p")) + ", p.type FROM playlist_items AS p LEFT JOIN songs ON p.collection_id = songs.ROWID WHERE p.playlist = :playlist";
SqlQuery q(db);
// Forward iterations only may be faster
q.setForwardOnly(true);
q.prepare(query);
- q.BindValue(":playlist", playlist);
+ q.BindValue(QStringLiteral(":playlist"), playlist);
if (!q.Exec()) {
db_->ReportErrors(q);
return SongList();
@@ -337,8 +337,8 @@ void PlaylistBackend::SavePlaylist(int playlist, const PlaylistItemPtrList &item
// Clear the existing items in the playlist
{
SqlQuery q(db);
- q.prepare("DELETE FROM playlist_items WHERE playlist = :playlist");
- q.BindValue(":playlist", playlist);
+ q.prepare(QStringLiteral("DELETE FROM playlist_items WHERE playlist = :playlist"));
+ q.BindValue(QStringLiteral(":playlist"), playlist);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -349,7 +349,7 @@ void PlaylistBackend::SavePlaylist(int playlist, const PlaylistItemPtrList &item
for (PlaylistItemPtr item : items) { // clazy:exclude=range-loop-reference
SqlQuery q(db);
q.prepare("INSERT INTO playlist_items (playlist, type, collection_id, " + Song::kColumnSpec + ") VALUES (:playlist, :type, :collection_id, " + Song::kBindSpec + ")");
- q.BindValue(":playlist", playlist);
+ q.BindValue(QStringLiteral(":playlist"), playlist);
item->BindToQuery(&q);
if (!q.Exec()) {
@@ -361,19 +361,19 @@ void PlaylistBackend::SavePlaylist(int playlist, const PlaylistItemPtrList &item
// Update the last played track number
{
SqlQuery q(db);
- q.prepare("UPDATE playlists SET last_played=:last_played, dynamic_playlist_type=:dynamic_type, dynamic_playlist_data=:dynamic_data, dynamic_playlist_backend=:dynamic_backend WHERE ROWID=:playlist");
- q.BindValue(":last_played", last_played);
+ q.prepare(QStringLiteral("UPDATE playlists SET last_played=:last_played, dynamic_playlist_type=:dynamic_type, dynamic_playlist_data=:dynamic_data, dynamic_playlist_backend=:dynamic_backend WHERE ROWID=:playlist"));
+ q.BindValue(QStringLiteral(":last_played"), last_played);
if (dynamic) {
- q.BindValue(":dynamic_type", static_cast(dynamic->type()));
- q.BindValue(":dynamic_data", dynamic->Save());
- q.BindValue(":dynamic_backend", dynamic->collection()->songs_table());
+ q.BindValue(QStringLiteral(":dynamic_type"), static_cast(dynamic->type()));
+ q.BindValue(QStringLiteral(":dynamic_data"), dynamic->Save());
+ q.BindValue(QStringLiteral(":dynamic_backend"), dynamic->collection()->songs_table());
}
else {
- q.BindValue(":dynamic_type", 0);
- q.BindValue(":dynamic_data", QByteArray());
- q.BindValue(":dynamic_backend", QString());
+ q.BindValue(QStringLiteral(":dynamic_type"), 0);
+ q.BindValue(QStringLiteral(":dynamic_data"), QByteArray());
+ q.BindValue(QStringLiteral(":dynamic_backend"), QString());
}
- q.BindValue(":playlist", playlist);
+ q.BindValue(QStringLiteral(":playlist"), playlist);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -390,9 +390,9 @@ int PlaylistBackend::CreatePlaylist(const QString &name, const QString &special_
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("INSERT INTO playlists (name, special_type) VALUES (:name, :special_type)");
- q.BindValue(":name", name);
- q.BindValue(":special_type", special_type);
+ q.prepare(QStringLiteral("INSERT INTO playlists (name, special_type) VALUES (:name, :special_type)"));
+ q.BindValue(QStringLiteral(":name"), name);
+ q.BindValue(QStringLiteral(":special_type"), special_type);
if (!q.Exec()) {
db_->ReportErrors(q);
return -1;
@@ -411,8 +411,8 @@ void PlaylistBackend::RemovePlaylist(int id) {
{
SqlQuery q(db);
- q.prepare("DELETE FROM playlists WHERE ROWID=:id");
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("DELETE FROM playlists WHERE ROWID=:id"));
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -421,8 +421,8 @@ void PlaylistBackend::RemovePlaylist(int id) {
{
SqlQuery q(db);
- q.prepare("DELETE FROM playlist_items WHERE playlist=:id");
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("DELETE FROM playlist_items WHERE playlist=:id"));
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -438,9 +438,9 @@ void PlaylistBackend::RenamePlaylist(const int id, const QString &new_name) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("UPDATE playlists SET name=:name WHERE ROWID=:id");
- q.BindValue(":name", new_name);
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("UPDATE playlists SET name=:name WHERE ROWID=:id"));
+ q.BindValue(QStringLiteral(":name"), new_name);
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -453,9 +453,9 @@ void PlaylistBackend::FavoritePlaylist(const int id, const bool is_favorite) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("UPDATE playlists SET is_favorite=:is_favorite WHERE ROWID=:id");
- q.BindValue(":is_favorite", is_favorite ? 1 : 0);
- q.BindValue(":id", id);
+ q.prepare(QStringLiteral("UPDATE playlists SET is_favorite=:is_favorite WHERE ROWID=:id"));
+ q.BindValue(QStringLiteral(":is_favorite"), is_favorite ? 1 : 0);
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -470,16 +470,16 @@ void PlaylistBackend::SetPlaylistOrder(const QList &ids) {
ScopedTransaction transaction(&db);
SqlQuery q(db);
- q.prepare("UPDATE playlists SET ui_order=-1");
+ q.prepare(QStringLiteral("UPDATE playlists SET ui_order=-1"));
if (!q.Exec()) {
db_->ReportErrors(q);
return;
}
- q.prepare("UPDATE playlists SET ui_order=:index WHERE ROWID=:id");
+ q.prepare(QStringLiteral("UPDATE playlists SET ui_order=:index WHERE ROWID=:id"));
for (int i = 0; i < ids.count(); ++i) {
- q.BindValue(":index", i);
- q.BindValue(":id", ids[i]);
+ q.BindValue(QStringLiteral(":index"), i);
+ q.BindValue(QStringLiteral(":id"), ids[i]);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -495,12 +495,12 @@ void PlaylistBackend::SetPlaylistUiPath(const int id, const QString &path) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("UPDATE playlists SET ui_path=:path WHERE ROWID=:id");
+ q.prepare(QStringLiteral("UPDATE playlists SET ui_path=:path WHERE ROWID=:id"));
ScopedTransaction transaction(&db);
- q.BindValue(":path", path);
- q.BindValue(":id", id);
+ q.BindValue(QStringLiteral(":path"), path);
+ q.BindValue(QStringLiteral(":id"), id);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
diff --git a/src/playlist/playlistcontainer.cpp b/src/playlist/playlistcontainer.cpp
index e7b4cf88..8eb217ac 100644
--- a/src/playlist/playlistcontainer.cpp
+++ b/src/playlist/playlistcontainer.cpp
@@ -93,7 +93,7 @@ PlaylistContainer::PlaylistContainer(QWidget *parent)
no_matches_label_->setPalette(no_matches_palette);
// Remove QFrame border
- ui_->toolbar->setStyleSheet("QFrame { border: 0px; }");
+ ui_->toolbar->setStyleSheet(QStringLiteral("QFrame { border: 0px; }"));
// Make it bold
QFont no_matches_font = no_matches_label_->font();
@@ -123,35 +123,35 @@ PlaylistContainer::PlaylistContainer(QWidget *parent)
QObject::connect(ui_->playlist, &PlaylistView::FocusOnFilterSignal, this, &PlaylistContainer::FocusOnFilter);
ui_->search_field->installEventFilter(this);
- QString available_fields = PlaylistFilter().column_names().keys().join(", ");
+ QString available_fields = PlaylistFilter().column_names().keys().join(QStringLiteral(", "));
ui_->search_field->setToolTip(
- QString(" ") +
+ QStringLiteral("
") +
tr("Prefix a search term with a field name to limit the search to that field, e.g.:") +
- QString(" ") +
- QString("") +
+ QStringLiteral(" ") +
+ QStringLiteral("") +
tr("artist") +
- QString(": Strawbs ") +
- tr("searches the playlist for all artists that contain the word %1. ").arg("Strawbs") +
- QString("
") +
+ QStringLiteral(":Strawbs ") +
+ tr("searches the playlist for all artists that contain the word %1. ").arg(QStringLiteral("Strawbs")) +
+ QStringLiteral("
") +
tr("Search terms for numerical fields can be prefixed with %1 or %2 to refine the search, e.g.: ")
.arg(" =, !=, <, >, <=", ">=") +
- QString("") +
+ QStringLiteral("") +
tr("rating") +
- QString(" ") +
- QString(":>=") +
- QString("4 ") +
- QString("
") +
+ QStringLiteral("") +
+ QStringLiteral(":>=") +
+ QStringLiteral("4 ") +
+ QStringLiteral("
") +
tr("Multiple search terms can also be combined with \"%1\" (default) and \"%2\", as well as grouped with parentheses. ")
.arg("AND", "OR") +
- QString("
") +
+ QStringLiteral("
") +
tr("Available fields") +
- QString(": ") + QString(" ") +
+ QStringLiteral(": ") + QStringLiteral(" ") +
available_fields +
- QString(" .") +
- QString("
")
+ QStringLiteral(".") +
+ QStringLiteral("
")
);
@@ -254,9 +254,9 @@ void PlaylistContainer::SetViewModel(Playlist *playlist, const int scroll_positi
delete redo_;
undo_ = playlist->undo_stack()->createUndoAction(this, tr("Undo"));
redo_ = playlist->undo_stack()->createRedoAction(this, tr("Redo"));
- undo_->setIcon(IconLoader::Load("edit-undo"));
+ undo_->setIcon(IconLoader::Load(QStringLiteral("edit-undo")));
undo_->setShortcut(QKeySequence::Undo);
- redo_->setIcon(IconLoader::Load("edit-redo"));
+ redo_->setIcon(IconLoader::Load(QStringLiteral("edit-redo")));
redo_->setShortcut(QKeySequence::Redo);
ui_->undo->setDefaultAction(undo_);
diff --git a/src/playlist/playlistdelegates.cpp b/src/playlist/playlistdelegates.cpp
index 6de6548f..633b0b52 100644
--- a/src/playlist/playlistdelegates.cpp
+++ b/src/playlist/playlistdelegates.cpp
@@ -260,10 +260,10 @@ bool PlaylistDelegateBase::helpEvent(QHelpEvent *event, QAbstractItemView *view,
// Special case: we want newlines in the comment tooltip
if (idx.column() == Playlist::Column_Comment) {
text = idx.data(Qt::ToolTipRole).toString().toHtmlEscaped();
- text.replace("\\r\\n", " ");
- text.replace("\\n", " ");
- text.replace("\r\n", " ");
- text.replace("\n", " ");
+ text.replace(QLatin1String("\\r\\n"), QLatin1String(" "));
+ text.replace(QLatin1String("\\n"), QLatin1String(" "));
+ text.replace(QLatin1String("\r\n"), QLatin1String(" "));
+ text.replace(QLatin1String("\n"), QLatin1String(" "));
}
if (text.isEmpty() || !event) return false;
@@ -381,13 +381,13 @@ TagCompletionModel::TagCompletionModel(SharedPtr backend, con
QString TagCompletionModel::database_column(Playlist::Column column) {
switch (column) {
- case Playlist::Column_Artist: return "artist";
- case Playlist::Column_Album: return "album";
- case Playlist::Column_AlbumArtist: return "albumartist";
- case Playlist::Column_Composer: return "composer";
- case Playlist::Column_Performer: return "performer";
- case Playlist::Column_Grouping: return "grouping";
- case Playlist::Column_Genre: return "genre";
+ case Playlist::Column_Artist: return QStringLiteral("artist");
+ case Playlist::Column_Album: return QStringLiteral("album");
+ case Playlist::Column_AlbumArtist: return QStringLiteral("albumartist");
+ case Playlist::Column_Composer: return QStringLiteral("composer");
+ case Playlist::Column_Performer: return QStringLiteral("performer");
+ case Playlist::Column_Grouping: return QStringLiteral("grouping");
+ case Playlist::Column_Genre: return QStringLiteral("genre");
default:
qLog(Warning) << "Unknown column" << column;
return QString();
@@ -446,7 +446,7 @@ QString NativeSeparatorsDelegate::displayText(const QVariant &value, const QLoca
#endif
url = value.toUrl();
}
- else if (string_value.contains("://")) {
+ else if (string_value.contains(QLatin1String("://"))) {
url = QUrl::fromEncoded(string_value.toLatin1());
}
else {
@@ -470,7 +470,7 @@ QString SongSourceDelegate::displayText(const QVariant &value, const QLocale&) c
QPixmap SongSourceDelegate::LookupPixmap(const Song::Source source, const QSize size, const qreal device_pixel_ratio) const {
QPixmap pixmap;
- const QString pixmap_cache_key = QString("%1-%2x%3-%4").arg(Song::TextForSource(source)).arg(size.width()).arg(size.height()).arg(device_pixel_ratio);
+ const QString pixmap_cache_key = QStringLiteral("%1-%2x%3-%4").arg(Song::TextForSource(source)).arg(size.width()).arg(size.height()).arg(device_pixel_ratio);
if (QPixmapCache::find(pixmap_cache_key, &pixmap)) {
return pixmap;
}
diff --git a/src/playlist/playlistfilter.cpp b/src/playlist/playlistfilter.cpp
index 987f48f1..8f3873f1 100644
--- a/src/playlist/playlistfilter.cpp
+++ b/src/playlist/playlistfilter.cpp
@@ -37,28 +37,28 @@ PlaylistFilter::PlaylistFilter(QObject *parent)
setDynamicSortFilter(true);
- column_names_["title"] = Playlist::Column_Title;
- column_names_["name"] = Playlist::Column_Title;
- column_names_["artist"] = Playlist::Column_Artist;
- column_names_["album"] = Playlist::Column_Album;
- column_names_["albumartist"] = Playlist::Column_AlbumArtist;
- column_names_["performer"] = Playlist::Column_Performer;
- column_names_["composer"] = Playlist::Column_Composer;
- column_names_["year"] = Playlist::Column_Year;
- column_names_["originalyear"] = Playlist::Column_OriginalYear;
- column_names_["track"] = Playlist::Column_Track;
- column_names_["disc"] = Playlist::Column_Disc;
- column_names_["length"] = Playlist::Column_Length;
- column_names_["genre"] = Playlist::Column_Genre;
- column_names_["samplerate"] = Playlist::Column_Samplerate;
- column_names_["bitdepth"] = Playlist::Column_Bitdepth;
- column_names_["bitrate"] = Playlist::Column_Bitrate;
- column_names_["filename"] = Playlist::Column_Filename;
- column_names_["grouping"] = Playlist::Column_Grouping;
- column_names_["comment"] = Playlist::Column_Comment;
- column_names_["rating"] = Playlist::Column_Rating;
- column_names_["playcount"] = Playlist::Column_PlayCount;
- column_names_["skipcount"] = Playlist::Column_SkipCount;
+ column_names_[QStringLiteral("title")] = Playlist::Column_Title;
+ column_names_[QStringLiteral("name")] = Playlist::Column_Title;
+ column_names_[QStringLiteral("artist")] = Playlist::Column_Artist;
+ column_names_[QStringLiteral("album")] = Playlist::Column_Album;
+ column_names_[QStringLiteral("albumartist")] = Playlist::Column_AlbumArtist;
+ column_names_[QStringLiteral("performer")] = Playlist::Column_Performer;
+ column_names_[QStringLiteral("composer")] = Playlist::Column_Composer;
+ column_names_[QStringLiteral("year")] = Playlist::Column_Year;
+ column_names_[QStringLiteral("originalyear")] = Playlist::Column_OriginalYear;
+ column_names_[QStringLiteral("track")] = Playlist::Column_Track;
+ column_names_[QStringLiteral("disc")] = Playlist::Column_Disc;
+ column_names_[QStringLiteral("length")] = Playlist::Column_Length;
+ column_names_[QStringLiteral("genre")] = Playlist::Column_Genre;
+ column_names_[QStringLiteral("samplerate")] = Playlist::Column_Samplerate;
+ column_names_[QStringLiteral("bitdepth")] = Playlist::Column_Bitdepth;
+ column_names_[QStringLiteral("bitrate")] = Playlist::Column_Bitrate;
+ column_names_[QStringLiteral("filename")] = Playlist::Column_Filename;
+ column_names_[QStringLiteral("grouping")] = Playlist::Column_Grouping;
+ column_names_[QStringLiteral("comment")] = Playlist::Column_Comment;
+ column_names_[QStringLiteral("rating")] = Playlist::Column_Rating;
+ column_names_[QStringLiteral("playcount")] = Playlist::Column_PlayCount;
+ column_names_[QStringLiteral("skipcount")] = Playlist::Column_SkipCount;
numerical_columns_ << Playlist::Column_Year
<< Playlist::Column_OriginalYear
diff --git a/src/playlist/playlistitem.cpp b/src/playlist/playlistitem.cpp
index 1a8e4dd9..2b608c99 100644
--- a/src/playlist/playlistitem.cpp
+++ b/src/playlist/playlistitem.cpp
@@ -91,8 +91,8 @@ PlaylistItem::~PlaylistItem() = default;
void PlaylistItem::BindToQuery(SqlQuery *query) const {
- query->BindValue(":type", static_cast(source_));
- query->BindValue(":collection_id", DatabaseValue(Column_CollectionId));
+ query->BindValue(QStringLiteral(":type"), static_cast(source_));
+ query->BindValue(QStringLiteral(":collection_id"), DatabaseValue(Column_CollectionId));
DatabaseSongMetadata().BindToQuery(query);
diff --git a/src/playlist/playlistlistcontainer.cpp b/src/playlist/playlistlistcontainer.cpp
index 65bfb527..cbcf8251 100644
--- a/src/playlist/playlistlistcontainer.cpp
+++ b/src/playlist/playlistlistcontainer.cpp
@@ -167,14 +167,14 @@ void PlaylistListContainer::showEvent(QShowEvent *e) {
if (!loaded_icons_) {
loaded_icons_ = true;
- action_new_folder_->setIcon(IconLoader::Load("folder-new"));
- action_remove_->setIcon(IconLoader::Load("edit-delete"));
- action_save_playlist_->setIcon(IconLoader::Load("document-save"));
+ action_new_folder_->setIcon(IconLoader::Load(QStringLiteral("folder-new")));
+ action_remove_->setIcon(IconLoader::Load(QStringLiteral("edit-delete")));
+ action_save_playlist_->setIcon(IconLoader::Load(QStringLiteral("document-save")));
#ifndef Q_OS_WIN
- action_copy_to_device_->setIcon(IconLoader::Load("device"));
+ action_copy_to_device_->setIcon(IconLoader::Load(QStringLiteral("device")));
#endif
- model_->SetIcons(IconLoader::Load("view-media-playlist"), IconLoader::Load("folder"));
+ model_->SetIcons(IconLoader::Load(QStringLiteral("view-media-playlist")), IconLoader::Load(QStringLiteral("folder")));
// Apply these icons to items that have already been created.
RecursivelySetIcons(model_->invisibleRootItem());
@@ -213,7 +213,7 @@ void PlaylistListContainer::NewFolderClicked() {
return;
}
- name.replace("/", " ");
+ name.replace(QLatin1String("/"), QLatin1String(" "));
model_->invisibleRootItem()->appendRow(model_->NewFolder(name));
@@ -489,7 +489,7 @@ void PlaylistListContainer::contextMenuEvent(QContextMenuEvent *e) {
void PlaylistListContainer::ActivePlaying() {
if (padded_play_icon_.isNull()) {
- QPixmap pixmap(":/pictures/tiny-play.png");
+ QPixmap pixmap(QStringLiteral(":/pictures/tiny-play.png"));
QPixmap new_pixmap(QSize(pixmap.height(), pixmap.height()));
new_pixmap.fill(Qt::transparent);
diff --git a/src/playlist/playlistlistmodel.cpp b/src/playlist/playlistlistmodel.cpp
index 100e6847..b571cb35 100644
--- a/src/playlist/playlistlistmodel.cpp
+++ b/src/playlist/playlistlistmodel.cpp
@@ -68,7 +68,7 @@ QString PlaylistListModel::ItemPath(const QStandardItem *item) {
current = current->parent();
}
- return components.join("/");
+ return components.join(QStringLiteral("/"));
}
diff --git a/src/playlist/playlistmanager.cpp b/src/playlist/playlistmanager.cpp
index 8b3d704c..9fa8232d 100644
--- a/src/playlist/playlistmanager.cpp
+++ b/src/playlist/playlistmanager.cpp
@@ -189,7 +189,7 @@ void PlaylistManager::New(const QString &name, const SongList &songs, const QStr
// If the name is just "Playlist", append the id
if (name == tr("Playlist")) {
- Rename(id, QString("%1 %2").arg(name).arg(id));
+ Rename(id, QStringLiteral("%1 %2").arg(name).arg(id));
}
}
diff --git a/src/playlist/playlistsequence.cpp b/src/playlist/playlistsequence.cpp
index 496b6f4f..1cbf48d9 100644
--- a/src/playlist/playlistsequence.cpp
+++ b/src/playlist/playlistsequence.cpp
@@ -52,12 +52,12 @@ PlaylistSequence::PlaylistSequence(QWidget *parent, SettingsProvider *settings)
ui_->setupUi(this);
// Icons
- ui_->repeat->setIcon(AddDesaturatedIcon(IconLoader::Load("media-playlist-repeat")));
- ui_->shuffle->setIcon(AddDesaturatedIcon(IconLoader::Load("media-playlist-shuffle")));
+ ui_->repeat->setIcon(AddDesaturatedIcon(IconLoader::Load(QStringLiteral("media-playlist-repeat"))));
+ ui_->shuffle->setIcon(AddDesaturatedIcon(IconLoader::Load(QStringLiteral("media-playlist-shuffle"))));
// Remove arrow indicators
- ui_->repeat->setStyleSheet("QToolButton::menu-indicator { image: none; }");
- ui_->shuffle->setStyleSheet("QToolButton::menu-indicator { image: none; }");
+ ui_->repeat->setStyleSheet(QStringLiteral("QToolButton::menu-indicator { image: none; }"));
+ ui_->shuffle->setStyleSheet(QStringLiteral("QToolButton::menu-indicator { image: none; }"));
settings_->set_group(kSettingsGroup);
@@ -93,8 +93,8 @@ PlaylistSequence::~PlaylistSequence() {
void PlaylistSequence::Load() {
loading_ = true; // Stops these setter functions calling Save()
- SetShuffleMode(static_cast(settings_->value("shuffle_mode", static_cast(ShuffleMode::Off)).toInt()));
- SetRepeatMode(static_cast(settings_->value("repeat_mode", static_cast(RepeatMode::Off)).toInt()));
+ SetShuffleMode(static_cast(settings_->value(QStringLiteral("shuffle_mode"), static_cast(ShuffleMode::Off)).toInt()));
+ SetRepeatMode(static_cast(settings_->value(QStringLiteral("repeat_mode"), static_cast(RepeatMode::Off)).toInt()));
loading_ = false;
}
@@ -103,8 +103,8 @@ void PlaylistSequence::Save() {
if (loading_) return;
- settings_->setValue("shuffle_mode", static_cast(shuffle_mode_));
- settings_->setValue("repeat_mode", static_cast(repeat_mode_));
+ settings_->setValue(QStringLiteral("shuffle_mode"), static_cast(shuffle_mode_));
+ settings_->setValue(QStringLiteral("repeat_mode"), static_cast(repeat_mode_));
}
diff --git a/src/playlist/playlisttabbar.cpp b/src/playlist/playlisttabbar.cpp
index 77480471..92c836ce 100644
--- a/src/playlist/playlisttabbar.cpp
+++ b/src/playlist/playlisttabbar.cpp
@@ -75,10 +75,10 @@ PlaylistTabBar::PlaylistTabBar(QWidget *parent)
setUsesScrollButtons(true);
setTabsClosable(true);
- action_star_ = menu_->addAction(IconLoader::Load("star"), tr("Star playlist"), this, &PlaylistTabBar::StarSlot);
- action_close_ = menu_->addAction(IconLoader::Load("list-remove"), tr("Close playlist"), this, &PlaylistTabBar::CloseSlot);
- action_rename_ = menu_->addAction(IconLoader::Load("edit-rename"), tr("Rename playlist..."), this, &PlaylistTabBar::RenameSlot);
- action_save_ = menu_->addAction(IconLoader::Load("document-save"), tr("Save playlist..."), this, &PlaylistTabBar::SaveSlot);
+ action_star_ = menu_->addAction(IconLoader::Load(QStringLiteral("star")), tr("Star playlist"), this, &PlaylistTabBar::StarSlot);
+ action_close_ = menu_->addAction(IconLoader::Load(QStringLiteral("list-remove")), tr("Close playlist"), this, &PlaylistTabBar::CloseSlot);
+ action_rename_ = menu_->addAction(IconLoader::Load(QStringLiteral("edit-rename")), tr("Rename playlist..."), this, &PlaylistTabBar::RenameSlot);
+ action_save_ = menu_->addAction(IconLoader::Load(QStringLiteral("document-save")), tr("Save playlist..."), this, &PlaylistTabBar::SaveSlot);
menu_->addSeparator();
rename_editor_->setVisible(false);
@@ -159,7 +159,7 @@ void PlaylistTabBar::mouseDoubleClickEvent(QMouseEvent *e) {
else {
menu_index_ = index;
QString new_text = tabText(index);
- new_text = new_text.replace("&&", "&");
+ new_text = new_text.replace(QLatin1String("&&"), QLatin1String("&"));
rename_editor_->setGeometry(tabRect(index));
rename_editor_->setText(new_text);
rename_editor_->setVisible(true);
@@ -176,7 +176,7 @@ void PlaylistTabBar::RenameSlot() {
if (menu_index_ == -1) return;
QString name = tabText(menu_index_);
- name = name.replace("&&", "&");
+ name = name.replace(QLatin1String("&&"), QLatin1String("&"));
QString new_name = QInputDialog::getText(this, tr("Rename playlist"), tr("Enter a new name for this playlist"), QLineEdit::Normal, name);
if (new_name.isEmpty()) return;
@@ -332,7 +332,7 @@ void PlaylistTabBar::RemoveTab(const int id) {
void PlaylistTabBar::set_text_by_id(const int id, const QString &text) {
QString new_text = text;
- new_text = new_text.replace("&", "&&");
+ new_text = new_text.replace(QLatin1String("&"), QLatin1String("&&"));
setTabText(index_of(id), new_text);
setTabToolTip(index_of(id), text);
@@ -346,7 +346,7 @@ void PlaylistTabBar::InsertTab(const int id, const int index, const QString &tex
QString new_text = text;
if (new_text.contains('&')) {
- new_text = new_text.replace('&', "&&");
+ new_text = new_text.replace('&', QLatin1String("&&"));
}
suppress_current_changed_ = true;
diff --git a/src/playlist/playlistview.cpp b/src/playlist/playlistview.cpp
index 47c7662c..cf432c5f 100644
--- a/src/playlist/playlistview.cpp
+++ b/src/playlist/playlistview.cpp
@@ -127,8 +127,8 @@ PlaylistView::PlaylistView(QWidget *parent)
inhibit_autoscroll_(false),
currently_autoscrolling_(false),
row_height_(-1),
- currenttrack_play_(":/pictures/currenttrack_play.png"),
- currenttrack_pause_(":/pictures/currenttrack_pause.png"),
+ currenttrack_play_(QStringLiteral(":/pictures/currenttrack_play.png")),
+ currenttrack_pause_(QStringLiteral(":/pictures/currenttrack_pause.png")),
cached_current_row_row_(-1),
drop_indicator_row_(-1),
drag_over_(false),
@@ -219,8 +219,8 @@ void PlaylistView::SetItemDelegates() {
setItemDelegateForColumn(Playlist::Column_DateCreated, new DateItemDelegate(this));
setItemDelegateForColumn(Playlist::Column_DateModified, new DateItemDelegate(this));
- setItemDelegateForColumn(Playlist::Column_Samplerate, new PlaylistDelegateBase(this, ("Hz")));
- setItemDelegateForColumn(Playlist::Column_Bitdepth, new PlaylistDelegateBase(this, ("Bit")));
+ setItemDelegateForColumn(Playlist::Column_Samplerate, new PlaylistDelegateBase(this, tr("Hz")));
+ setItemDelegateForColumn(Playlist::Column_Bitdepth, new PlaylistDelegateBase(this, tr("Bit")));
setItemDelegateForColumn(Playlist::Column_Bitrate, new PlaylistDelegateBase(this, tr("kbps")));
setItemDelegateForColumn(Playlist::Column_Filename, new NativeSeparatorsDelegate(this));
@@ -404,9 +404,9 @@ void PlaylistView::RestoreHeaderState() {
void PlaylistView::ReloadBarPixmaps() {
- currenttrack_bar_left_ = LoadBarPixmap(":/pictures/currenttrack_bar_left.png", true);
- currenttrack_bar_mid_ = LoadBarPixmap(":/pictures/currenttrack_bar_mid.png", false);
- currenttrack_bar_right_ = LoadBarPixmap(":/pictures/currenttrack_bar_right.png", true);
+ currenttrack_bar_left_ = LoadBarPixmap(QStringLiteral(":/pictures/currenttrack_bar_left.png"), true);
+ currenttrack_bar_mid_ = LoadBarPixmap(QStringLiteral(":/pictures/currenttrack_bar_mid.png"), false);
+ currenttrack_bar_right_ = LoadBarPixmap(QStringLiteral(":/pictures/currenttrack_bar_right.png"), true);
}
@@ -452,8 +452,8 @@ QList PlaylistView::LoadBarPixmap(const QString &filename, const bool k
void PlaylistView::LoadTinyPlayPausePixmaps(const int desired_size) {
- QImage image_play = QImage(":/pictures/tiny-play.png").scaled(desired_size, desired_size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
- QImage image_pause = QImage(":/pictures/tiny-pause.png").scaled(desired_size, desired_size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ QImage image_play = QImage(QStringLiteral(":/pictures/tiny-play.png")).scaled(desired_size, desired_size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
+ QImage image_pause = QImage(QStringLiteral(":/pictures/tiny-pause.png")).scaled(desired_size, desired_size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
pixmap_tinyplay_ = QPixmap::fromImage(image_play);
pixmap_tinypause_ = QPixmap::fromImage(image_pause);
@@ -1397,7 +1397,7 @@ void PlaylistView::CopyCurrentSongToClipboard() const {
QMimeData *mime_data = new QMimeData;
mime_data->setUrls(QList() << url);
- mime_data->setText(columns.join(" - "));
+ mime_data->setText(columns.join(QStringLiteral(" - ")));
QApplication::clipboard()->setMimeData(mime_data);
diff --git a/src/playlistparsers/asxiniparser.cpp b/src/playlistparsers/asxiniparser.cpp
index 44cc9f3a..d82d8f24 100644
--- a/src/playlistparsers/asxiniparser.cpp
+++ b/src/playlistparsers/asxiniparser.cpp
@@ -58,7 +58,7 @@ SongList AsxIniParser::Load(QIODevice *device, const QString &playlist_path, con
QString key = line.left(equals).toLower();
QString value = line.mid(equals + 1);
- if (key.startsWith("ref")) {
+ if (key.startsWith(QLatin1String("ref"))) {
Song song = LoadSong(value, 0, 0, dir, collection_search);
if (song.is_valid()) {
ret << song;
diff --git a/src/playlistparsers/asxiniparser.h b/src/playlistparsers/asxiniparser.h
index a6dfd490..def750d5 100644
--- a/src/playlistparsers/asxiniparser.h
+++ b/src/playlistparsers/asxiniparser.h
@@ -43,14 +43,14 @@ class AsxIniParser : public ParserBase {
public:
explicit AsxIniParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "ASX/INI"; }
- QStringList file_extensions() const override { return QStringList() << "asxini"; }
+ QString name() const override { return QStringLiteral("ASX/INI"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("asxini"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return true; }
bool TryMagic(const QByteArray &data) const override;
- SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_search = true) const override;
+ SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_search = true) const override;
void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const override;
};
diff --git a/src/playlistparsers/asxparser.cpp b/src/playlistparsers/asxparser.cpp
index 67345d0a..acde4214 100644
--- a/src/playlistparsers/asxparser.cpp
+++ b/src/playlistparsers/asxparser.cpp
@@ -48,14 +48,14 @@ SongList ASXParser::Load(QIODevice *device, const QString &playlist_path, const
QByteArray data = device->readAll();
// Some playlists have unescaped & characters in URLs :(
- QRegularExpression ex("(href\\s*=\\s*\")([^\"]+)\"", QRegularExpression::CaseInsensitiveOption);
+ QRegularExpression ex(QStringLiteral("(href\\s*=\\s*\")([^\"]+)\""), QRegularExpression::CaseInsensitiveOption);
qint64 index = 0;
for (QRegularExpressionMatch re_match = ex.match(data, index); re_match.hasMatch(); re_match = ex.match(data, index)) {
index = re_match.capturedStart();
QString url = re_match.captured(2);
- url.replace(QRegularExpression("&(?!amp;|quot;|apos;|lt;|gt;)"), "&");
+ url.replace(QRegularExpression(QStringLiteral("&(?!amp;|quot;|apos;|lt;|gt;)")), QStringLiteral("&"));
- QByteArray replacement = QString("%1%2\"").arg(re_match.captured(1), url).toLocal8Bit();
+ QByteArray replacement = QStringLiteral("%1%2\"").arg(re_match.captured(1), url).toLocal8Bit();
data.replace(re_match.captured(0).toLocal8Bit(), replacement);
index += replacement.length();
}
@@ -64,13 +64,13 @@ SongList ASXParser::Load(QIODevice *device, const QString &playlist_path, const
if (!buffer.open(QIODevice::ReadOnly)) return SongList();
QXmlStreamReader reader(&buffer);
- if (!Utilities::ParseUntilElementCI(&reader, "asx")) {
+ if (!Utilities::ParseUntilElementCI(&reader, QStringLiteral("asx"))) {
buffer.close();
return SongList();
}
SongList ret;
- while (!reader.atEnd() && Utilities::ParseUntilElementCI(&reader, "entry")) {
+ while (!reader.atEnd() && Utilities::ParseUntilElementCI(&reader, QStringLiteral("entry"))) {
Song song = ParseTrack(&reader, dir, collection_search);
if (song.is_valid()) {
ret << song;
@@ -137,13 +137,13 @@ void ASXParser::Save(const SongList &songs, QIODevice *device, const QDir&, cons
writer.setAutoFormattingIndent(2);
writer.writeStartDocument();
{
- StreamElement asx("asx", &writer);
+ StreamElement asx(QStringLiteral("asx"), &writer);
writer.writeAttribute("version", "3.0");
for (const Song &song : songs) {
- StreamElement entry("entry", &writer);
+ StreamElement entry(QStringLiteral("entry"), &writer);
writer.writeTextElement("title", song.title());
{
- StreamElement ref("ref", &writer);
+ StreamElement ref(QStringLiteral("ref"), &writer);
writer.writeAttribute("href", song.url().toString());
}
if (!song.artist().isEmpty()) {
diff --git a/src/playlistparsers/asxparser.h b/src/playlistparsers/asxparser.h
index 3462a34e..da4f6689 100644
--- a/src/playlistparsers/asxparser.h
+++ b/src/playlistparsers/asxparser.h
@@ -45,14 +45,14 @@ class ASXParser : public XMLParser {
public:
explicit ASXParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "ASX"; }
- QStringList file_extensions() const override { return QStringList() << "asx"; }
+ QString name() const override { return QStringLiteral("ASX"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("asx"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return true; }
bool TryMagic(const QByteArray &data) const override;
- SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_search = true) const override;
+ SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_search = true) const override;
void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const override;
private:
diff --git a/src/playlistparsers/cueparser.cpp b/src/playlistparsers/cueparser.cpp
index 26dd4c5c..2c71ce35 100644
--- a/src/playlistparsers/cueparser.cpp
+++ b/src/playlistparsers/cueparser.cpp
@@ -152,7 +152,7 @@ SongList CueParser::Load(QIODevice *device, const QString &playlist_path, const
}
// if this is a data file, all of its tracks will be ignored
- bool valid_file = file_type.compare("BINARY", Qt::CaseInsensitive) != 0 && file_type.compare("MOTOROLA", Qt::CaseInsensitive) != 0;
+ bool valid_file = file_type.compare(QLatin1String("BINARY"), Qt::CaseInsensitive) != 0 && file_type.compare(QLatin1String("MOTOROLA"), Qt::CaseInsensitive) != 0;
QString track_type;
QString index;
@@ -173,7 +173,7 @@ SongList CueParser::Load(QIODevice *device, const QString &playlist_path, const
const QString &line_name = splitted[0];
const QString &line_value = splitted[1];
- QString line_additional = splitted.size() > 2 ? splitted[2].toLower() : "";
+ QString line_additional = splitted.size() > 2 ? splitted[2].toLower() : QLatin1String("");
if (line_name.compare(kTrack, Qt::CaseInsensitive) == 0) {
@@ -184,7 +184,7 @@ SongList CueParser::Load(QIODevice *device, const QString &playlist_path, const
}
// clear the state
- track_type = index = artist = composer = title = date = genre = "";
+ track_type = index = artist = composer = title = date = genre = QLatin1String("");
if (!line_additional.isEmpty()) {
track_type = line_additional;
@@ -292,7 +292,7 @@ QStringList CueParser::SplitCueLine(const QString &line) {
}
// Let's remove the empty entries while we're at it
- return re_match.capturedTexts().filter(QRegularExpression(".+")).mid(1, -1).replaceInStrings(QRegularExpression("^\"\"$"), "");
+ return re_match.capturedTexts().filter(QRegularExpression(QStringLiteral(".+"))).mid(1, -1).replaceInStrings(QRegularExpression(QStringLiteral("^\"\"$")), QLatin1String(""));
}
diff --git a/src/playlistparsers/cueparser.h b/src/playlistparsers/cueparser.h
index 3e26e90a..eb04d74a 100644
--- a/src/playlistparsers/cueparser.h
+++ b/src/playlistparsers/cueparser.h
@@ -63,15 +63,15 @@ class CueParser : public ParserBase {
explicit CueParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "CUE"; }
- QStringList file_extensions() const override { return QStringList() << "cue"; }
- QString mime_type() const override { return "application/x-cue"; }
+ QString name() const override { return QStringLiteral("CUE"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("cue"); }
+ QString mime_type() const override { return QStringLiteral("application/x-cue"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return false; }
bool TryMagic(const QByteArray &data) const override;
- SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_search = true) const override;
+ SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_search = true) const override;
void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const override;
static QString FindCueFilename(const QString &filename);
diff --git a/src/playlistparsers/m3uparser.cpp b/src/playlistparsers/m3uparser.cpp
index 7c71436d..88c1a005 100644
--- a/src/playlistparsers/m3uparser.cpp
+++ b/src/playlistparsers/m3uparser.cpp
@@ -48,13 +48,13 @@ SongList M3UParser::Load(QIODevice *device, const QString &playlist_path, const
QString data = QString::fromUtf8(device->readAll());
data.replace('\r', '\n');
- data.replace("\n\n", "\n");
+ data.replace(QLatin1String("\n\n"), QLatin1String("\n"));
QByteArray bytes = data.toUtf8();
QBuffer buffer(&bytes);
if (!buffer.open(QIODevice::ReadOnly)) return SongList();
QString line = QString::fromUtf8(buffer.readLine()).trimmed();
- if (line.startsWith("#EXTM3U")) {
+ if (line.startsWith(QLatin1String("#EXTM3U"))) {
// This is in extended M3U format.
type = M3UType::EXTENDED;
line = QString::fromUtf8(buffer.readLine()).trimmed();
@@ -64,7 +64,7 @@ SongList M3UParser::Load(QIODevice *device, const QString &playlist_path, const
forever {
if (line.startsWith('#')) {
// Extended info or comment.
- if (type == M3UType::EXTENDED && line.startsWith("#EXT")) {
+ if (type == M3UType::EXTENDED && line.startsWith(QLatin1String("#EXT"))) {
if (!ParseMetadata(line, ¤t_metadata)) {
qLog(Warning) << "Failed to parse metadata: " << line;
}
@@ -111,7 +111,7 @@ bool M3UParser::ParseMetadata(const QString &line, M3UParser::Metadata *metadata
metadata->length = length * kNsecPerSec;
QString track_info = info.section(',', 1);
- QStringList list = track_info.split(" - ");
+ QStringList list = track_info.split(QStringLiteral(" - "));
if (list.size() <= 1) {
metadata->title = track_info;
return true;
@@ -136,7 +136,7 @@ void M3UParser::Save(const SongList &songs, QIODevice *device, const QDir &dir,
continue;
}
if (write_metadata || (song.is_stream() && !song.is_radio())) {
- QString meta = QString("#EXTINF:%1,%2 - %3\n").arg(song.length_nanosec() / kNsecPerSec).arg(song.artist(), song.title());
+ QString meta = QStringLiteral("#EXTINF:%1,%2 - %3\n").arg(song.length_nanosec() / kNsecPerSec).arg(song.artist(), song.title());
device->write(meta.toUtf8());
}
device->write(URLOrFilename(song.url(), dir, path_type).toUtf8());
diff --git a/src/playlistparsers/m3uparser.h b/src/playlistparsers/m3uparser.h
index fd814aa3..51f461ae 100644
--- a/src/playlistparsers/m3uparser.h
+++ b/src/playlistparsers/m3uparser.h
@@ -44,15 +44,15 @@ class M3UParser : public ParserBase {
public:
explicit M3UParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "M3U"; }
- QStringList file_extensions() const override { return QStringList() << "m3u" << "m3u8"; }
- QString mime_type() const override { return "text/uri-list"; }
+ QString name() const override { return QStringLiteral("M3U"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("m3u") << QStringLiteral("m3u8"); }
+ QString mime_type() const override { return QStringLiteral("text/uri-list"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return true; }
bool TryMagic(const QByteArray &data) const override;
- SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_search = true) const override;
+ SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_search = true) const override;
void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const override;
private:
diff --git a/src/playlistparsers/parserbase.cpp b/src/playlistparsers/parserbase.cpp
index 74d34a4e..ec7cb570 100644
--- a/src/playlistparsers/parserbase.cpp
+++ b/src/playlistparsers/parserbase.cpp
@@ -45,7 +45,7 @@ void ParserBase::LoadSong(const QString &filename_or_url, const qint64 beginning
QString filename = filename_or_url;
- if (filename_or_url.contains(QRegularExpression("^[a-z]{2,}:", QRegularExpression::CaseInsensitiveOption))) {
+ if (filename_or_url.contains(QRegularExpression(QStringLiteral("^[a-z]{2,}:"), QRegularExpression::CaseInsensitiveOption))) {
QUrl url(filename_or_url);
song->set_source(Song::SourceFromURL(url));
if (song->source() == Song::Source::LocalFile) {
@@ -119,7 +119,7 @@ QString ParserBase::URLOrFilename(const QUrl &url, const QDir &dir, const Playli
if (path_type != PlaylistSettingsPage::PathType::Absolute && QDir::isAbsolutePath(filename)) {
const QString relative = dir.relativeFilePath(filename);
- if (!relative.startsWith("../") || path_type == PlaylistSettingsPage::PathType::Relative) {
+ if (!relative.startsWith(QLatin1String("../")) || path_type == PlaylistSettingsPage::PathType::Relative) {
return relative;
}
}
diff --git a/src/playlistparsers/parserbase.h b/src/playlistparsers/parserbase.h
index d49903d3..d7b82518 100644
--- a/src/playlistparsers/parserbase.h
+++ b/src/playlistparsers/parserbase.h
@@ -58,7 +58,7 @@ class ParserBase : public QObject {
// This method might not return all the songs found in the playlist.
// Any playlist parser may decide to leave out some entries if it finds them incomplete or invalid.
// This means that the final resulting SongList should be considered valid (at least from the parser's point of view).
- virtual SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_lookup = true) const = 0;
+ virtual SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_lookup = true) const = 0;
virtual void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const = 0;
protected:
diff --git a/src/playlistparsers/playlistparser.cpp b/src/playlistparsers/playlistparser.cpp
index 2a41af33..ef5136ac 100644
--- a/src/playlistparsers/playlistparser.cpp
+++ b/src/playlistparsers/playlistparser.cpp
@@ -100,10 +100,10 @@ QString PlaylistParser::filters(const Type type) const {
}
if (type == Type::Load) {
- filters.prepend(tr("All playlists (%1)").arg(all_extensions.join(" ")));
+ filters.prepend(tr("All playlists (%1)").arg(all_extensions.join(QStringLiteral(" "))));
}
- return filters.join(";;");
+ return filters.join(QStringLiteral(";;"));
}
@@ -118,7 +118,7 @@ QString PlaylistParser::FilterForParser(const ParserBase *parser, QStringList *a
if (all_extensions) *all_extensions << extensions;
- return tr("%1 playlists (%2)").arg(parser->name(), extensions.join(" "));
+ return tr("%1 playlists (%2)").arg(parser->name(), extensions.join(QStringLiteral(" ")));
}
diff --git a/src/playlistparsers/plsparser.cpp b/src/playlistparsers/plsparser.cpp
index 405fa699..0e8e421b 100644
--- a/src/playlistparsers/plsparser.cpp
+++ b/src/playlistparsers/plsparser.cpp
@@ -50,7 +50,7 @@ SongList PLSParser::Load(QIODevice *device, const QString &playlist_path, const
Q_UNUSED(playlist_path);
QMap songs;
- QRegularExpression n_re("\\d+$");
+ QRegularExpression n_re(QStringLiteral("\\d+$"));
while (!device->atEnd()) {
QString line = QString::fromUtf8(device->readLine()).trimmed();
@@ -61,7 +61,7 @@ SongList PLSParser::Load(QIODevice *device, const QString &playlist_path, const
QRegularExpressionMatch re_match = n_re.match(key);
int n = re_match.captured(0).toInt();
- if (key.startsWith("file")) {
+ if (key.startsWith(QLatin1String("file"))) {
Song song = LoadSong(value, 0, 0, dir, collection_search);
// Use the title and length we've already loaded if any
@@ -72,10 +72,10 @@ SongList PLSParser::Load(QIODevice *device, const QString &playlist_path, const
songs[n] = song;
}
- else if (key.startsWith("title")) {
+ else if (key.startsWith(QLatin1String("title"))) {
songs[n].set_title(value);
}
- else if (key.startsWith("length")) {
+ else if (key.startsWith(QLatin1String("length"))) {
qint64 seconds = value.toLongLong();
if (seconds > 0) {
songs[n].set_length_nanosec(seconds * kNsecPerSec);
diff --git a/src/playlistparsers/plsparser.h b/src/playlistparsers/plsparser.h
index 9cb5eb3b..73274683 100644
--- a/src/playlistparsers/plsparser.h
+++ b/src/playlistparsers/plsparser.h
@@ -43,15 +43,15 @@ class PLSParser : public ParserBase {
public:
explicit PLSParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "PLS"; }
- QStringList file_extensions() const override { return QStringList() << "pls"; }
- QString mime_type() const override { return "audio/x-scpls"; }
+ QString name() const override { return QStringLiteral("PLS"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("pls"); }
+ QString mime_type() const override { return QStringLiteral("audio/x-scpls"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return true; }
bool TryMagic(const QByteArray &data) const override;
- SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_search = true) const override;
+ SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_search = true) const override;
void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const override;
};
diff --git a/src/playlistparsers/wplparser.cpp b/src/playlistparsers/wplparser.cpp
index f48e9634..459faf44 100644
--- a/src/playlistparsers/wplparser.cpp
+++ b/src/playlistparsers/wplparser.cpp
@@ -51,11 +51,11 @@ SongList WplParser::Load(QIODevice *device, const QString &playlist_path, const
SongList ret;
QXmlStreamReader reader(device);
- if (!Utilities::ParseUntilElement(&reader, "smil") || !Utilities::ParseUntilElement(&reader, "body")) {
+ if (!Utilities::ParseUntilElement(&reader, QStringLiteral("smil")) || !Utilities::ParseUntilElement(&reader, QStringLiteral("body"))) {
return ret;
}
- while (!reader.atEnd() && Utilities::ParseUntilElement(&reader, "seq")) {
+ while (!reader.atEnd() && Utilities::ParseUntilElement(&reader, QStringLiteral("seq"))) {
ParseSeq(dir, &reader, &ret, collection_search);
}
return ret;
@@ -103,18 +103,18 @@ void WplParser::Save(const SongList &songs, QIODevice *device, const QDir &dir,
writer.setAutoFormattingIndent(2);
writer.writeProcessingInstruction("wpl", "version=\"1.0\"");
- StreamElement smil("smil", &writer);
+ StreamElement smil(QStringLiteral("smil"), &writer);
{
- StreamElement head("head", &writer);
- WriteMeta("Generator", "Strawberry -- " STRAWBERRY_VERSION_DISPLAY, &writer);
- WriteMeta("ItemCount", QString::number(songs.count()), &writer);
+ StreamElement head(QStringLiteral("head"), &writer);
+ WriteMeta(QStringLiteral("Generator"), "Strawberry -- " STRAWBERRY_VERSION_DISPLAY, &writer);
+ WriteMeta(QStringLiteral("ItemCount"), QString::number(songs.count()), &writer);
}
{
- StreamElement body("body", &writer);
+ StreamElement body(QStringLiteral("body"), &writer);
{
- StreamElement seq("seq", &writer);
+ StreamElement seq(QStringLiteral("seq"), &writer);
for (const Song &song : songs) {
writer.writeStartElement("media");
writer.writeAttribute("src", URLOrFilename(song.url(), dir, path_type));
diff --git a/src/playlistparsers/wplparser.h b/src/playlistparsers/wplparser.h
index dff4f807..0f5df20f 100644
--- a/src/playlistparsers/wplparser.h
+++ b/src/playlistparsers/wplparser.h
@@ -46,9 +46,9 @@ class WplParser : public XMLParser {
public:
explicit WplParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "WPL"; }
- QStringList file_extensions() const override { return QStringList() << "wpl"; }
- QString mime_type() const override { return "application/vnd.ms-wpl"; }
+ QString name() const override { return QStringLiteral("WPL"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("wpl"); }
+ QString mime_type() const override { return QStringLiteral("application/vnd.ms-wpl"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return true; }
diff --git a/src/playlistparsers/xspfparser.cpp b/src/playlistparsers/xspfparser.cpp
index 240cb361..783bef45 100644
--- a/src/playlistparsers/xspfparser.cpp
+++ b/src/playlistparsers/xspfparser.cpp
@@ -48,11 +48,11 @@ SongList XSPFParser::Load(QIODevice *device, const QString &playlist_path, const
SongList ret;
QXmlStreamReader reader(device);
- if (!Utilities::ParseUntilElement(&reader, "playlist") || !Utilities::ParseUntilElement(&reader, "trackList")) {
+ if (!Utilities::ParseUntilElement(&reader, QStringLiteral("playlist")) || !Utilities::ParseUntilElement(&reader, QStringLiteral("trackList"))) {
return ret;
}
- while (!reader.atEnd() && Utilities::ParseUntilElement(&reader, "track")) {
+ while (!reader.atEnd() && Utilities::ParseUntilElement(&reader, QStringLiteral("track"))) {
Song song = ParseTrack(&reader, dir, collection_search);
if (song.is_valid()) {
ret << song;
@@ -142,7 +142,7 @@ void XSPFParser::Save(const SongList &songs, QIODevice *device, const QDir &dir,
writer.setAutoFormatting(true);
writer.setAutoFormattingIndent(2);
writer.writeStartDocument();
- StreamElement playlist("playlist", &writer);
+ StreamElement playlist(QStringLiteral("playlist"), &writer);
writer.writeAttribute("version", "1");
writer.writeDefaultNamespace("http://xspf.org/ns/0/");
@@ -151,11 +151,11 @@ void XSPFParser::Save(const SongList &songs, QIODevice *device, const QDir &dir,
bool write_metadata = s.value("write_metadata", true).toBool();
s.endGroup();
- StreamElement tracklist("trackList", &writer);
+ StreamElement tracklist(QStringLiteral("trackList"), &writer);
for (const Song &song : songs) {
QString filename_or_url = QUrl::toPercentEncoding(URLOrFilename(song.url(), dir, path_type), "/ ");
- StreamElement track("track", &writer);
+ StreamElement track(QStringLiteral("track"), &writer);
writer.writeTextElement("location", filename_or_url);
if (write_metadata || (song.is_stream() && !song.is_radio())) {
diff --git a/src/playlistparsers/xspfparser.h b/src/playlistparsers/xspfparser.h
index 766ab94d..665ad0a8 100644
--- a/src/playlistparsers/xspfparser.h
+++ b/src/playlistparsers/xspfparser.h
@@ -44,14 +44,14 @@ class XSPFParser : public XMLParser {
public:
explicit XSPFParser(SharedPtr collection_backend, QObject *parent = nullptr);
- QString name() const override { return "XSPF"; }
- QStringList file_extensions() const override { return QStringList() << "xspf"; }
+ QString name() const override { return QStringLiteral("XSPF"); }
+ QStringList file_extensions() const override { return QStringList() << QStringLiteral("xspf"); }
bool load_supported() const override { return true; }
bool save_supported() const override { return true; }
bool TryMagic(const QByteArray &data) const override;
- SongList Load(QIODevice *device, const QString &playlist_path = "", const QDir &dir = QDir(), const bool collection_search = true) const override;
+ SongList Load(QIODevice *device, const QString &playlist_path = QLatin1String(""), const QDir &dir = QDir(), const bool collection_search = true) const override;
void Save(const SongList &songs, QIODevice *device, const QDir &dir = QDir(), const PlaylistSettingsPage::PathType path_type = PlaylistSettingsPage::PathType::Automatic) const override;
private:
diff --git a/src/providers/musixmatchprovider.cpp b/src/providers/musixmatchprovider.cpp
index 78a5fb9d..69a9aac8 100644
--- a/src/providers/musixmatchprovider.cpp
+++ b/src/providers/musixmatchprovider.cpp
@@ -29,11 +29,11 @@ QString MusixmatchProvider::StringFixup(QString text) {
return text.replace('/', '-')
.replace('\'', '-')
- .remove(QRegularExpression("[^\\w0-9\\- ]", QRegularExpression::UseUnicodePropertiesOption))
- .replace(QRegularExpression(" {2,}"), " ")
+ .remove(QRegularExpression(QStringLiteral("[^\\w0-9\\- ]"), QRegularExpression::UseUnicodePropertiesOption))
+ .replace(QRegularExpression(QStringLiteral(" {2,}")), QStringLiteral(" "))
.simplified()
.replace(' ', '-')
- .replace(QRegularExpression("(-)\\1+"), "-")
+ .replace(QRegularExpression(QStringLiteral("(-)\\1+")), QStringLiteral("-"))
.toLower();
}
diff --git a/src/qobuz/qobuzbaserequest.cpp b/src/qobuz/qobuzbaserequest.cpp
index b82d19e5..b5468339 100644
--- a/src/qobuz/qobuzbaserequest.cpp
+++ b/src/qobuz/qobuzbaserequest.cpp
@@ -61,7 +61,7 @@ QNetworkReply *QobuzBaseRequest::CreateRequest(const QString &ressource_name, co
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(QString(QobuzService::kApiUrl) + QString("/") + ressource_name);
+ QUrl url(QString(QobuzService::kApiUrl) + QStringLiteral("/") + ressource_name);
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -96,7 +96,7 @@ QByteArray QobuzBaseRequest::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
// See if there is Json data containing "status", "code" and "message" - then use that instead.
@@ -106,18 +106,18 @@ QByteArray QobuzBaseRequest::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &parse_error);
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- error = QString("%1 (%2)").arg(message).arg(code);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ error = QStringLiteral("%1 (%2)").arg(message).arg(code);
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -135,23 +135,23 @@ QJsonObject QobuzBaseRequest::ExtractJsonObj(QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error("Reply from server missing Json data.", data);
+ Error(QStringLiteral("Reply from server missing Json data."), data);
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", data);
+ Error(QStringLiteral("Received empty Json document."), data);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
return QJsonObject();
}
@@ -169,11 +169,11 @@ QJsonValue QobuzBaseRequest::ExtractItems(QByteArray &data) {
QJsonValue QobuzBaseRequest::ExtractItems(QJsonObject &json_obj) {
- if (!json_obj.contains("items")) {
- Error("Json reply is missing items.", json_obj);
+ if (!json_obj.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json reply is missing items."), json_obj);
return QJsonArray();
}
- QJsonValue json_items = json_obj["items"];
+ QJsonValue json_items = json_obj[QStringLiteral("items")];
return json_items;
}
diff --git a/src/qobuz/qobuzfavoriterequest.cpp b/src/qobuz/qobuzfavoriterequest.cpp
index 53a04237..545c8c4e 100644
--- a/src/qobuz/qobuzfavoriterequest.cpp
+++ b/src/qobuz/qobuzfavoriterequest.cpp
@@ -56,12 +56,12 @@ QString QobuzFavoriteRequest::FavoriteText(const FavoriteType type) {
switch (type) {
case FavoriteType::Artists:
- return "artists";
+ return QStringLiteral("artists");
case FavoriteType::Albums:
- return "albums";
+ return QStringLiteral("albums");
case FavoriteType::Songs:
default:
- return "tracks";
+ return QStringLiteral("tracks");
}
}
@@ -70,13 +70,13 @@ QString QobuzFavoriteRequest::FavoriteMethod(const FavoriteType type) {
switch (type) {
case FavoriteType::Artists:
- return "artist_ids";
+ return QStringLiteral("artist_ids");
break;
case FavoriteType::Albums:
- return "album_ids";
+ return QStringLiteral("album_ids");
break;
case FavoriteType::Songs:
- return "track_ids";
+ return QStringLiteral("track_ids");
break;
}
@@ -141,7 +141,7 @@ void QobuzFavoriteRequest::AddFavoritesRequest(const FavoriteType type, const QS
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QNetworkReply *reply = CreateRequest("favorite/create", params);
+ QNetworkReply *reply = CreateRequest(QStringLiteral("favorite/create"), params);
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, type, songs]() { AddFavoritesReply(reply, type, songs); });
replies_ << reply;
@@ -236,7 +236,7 @@ void QobuzFavoriteRequest::RemoveFavoritesRequest(const FavoriteType type, const
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QNetworkReply *reply = CreateRequest("favorite/delete", params);
+ QNetworkReply *reply = CreateRequest(QStringLiteral("favorite/delete"), params);
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, type, songs]() { RemoveFavoritesReply(reply, type, songs); });
replies_ << reply;
diff --git a/src/qobuz/qobuzrequest.cpp b/src/qobuz/qobuzrequest.cpp
index 9b3eb02a..d911b42b 100644
--- a/src/qobuz/qobuzrequest.cpp
+++ b/src/qobuz/qobuzrequest.cpp
@@ -141,7 +141,7 @@ void QobuzRequest::Process() {
SongsSearch();
break;
default:
- Error("Invalid query type.");
+ Error(QStringLiteral("Invalid query type."));
break;
}
@@ -233,10 +233,10 @@ void QobuzRequest::FlushArtistsRequests() {
if (request.offset > 0) params << Param("offset", QString::number(request.offset));
QNetworkReply *reply = nullptr;
if (query_type_ == QueryType::Artists) {
- reply = CreateRequest(QString("favorite/getUserFavorites"), params);
+ reply = CreateRequest(QStringLiteral("favorite/getUserFavorites"), params);
}
else if (query_type_ == QueryType::SearchArtists) {
- reply = CreateRequest("artist/search", params);
+ reply = CreateRequest(QStringLiteral("artist/search"), params);
}
if (!reply) continue;
replies_ << reply;
@@ -285,10 +285,10 @@ void QobuzRequest::FlushAlbumsRequests() {
if (request.offset > 0) params << Param("offset", QString::number(request.offset));
QNetworkReply *reply = nullptr;
if (query_type_ == QueryType::Albums) {
- reply = CreateRequest(QString("favorite/getUserFavorites"), params);
+ reply = CreateRequest(QStringLiteral("favorite/getUserFavorites"), params);
}
else if (query_type_ == QueryType::SearchAlbums) {
- reply = CreateRequest("album/search", params);
+ reply = CreateRequest(QStringLiteral("album/search"), params);
}
if (!reply) continue;
replies_ << reply;
@@ -337,10 +337,10 @@ void QobuzRequest::FlushSongsRequests() {
if (request.offset > 0) params << Param("offset", QString::number(request.offset));
QNetworkReply *reply = nullptr;
if (query_type_ == QueryType::Songs) {
- reply = CreateRequest(QString("favorite/getUserFavorites"), params);
+ reply = CreateRequest(QStringLiteral("favorite/getUserFavorites"), params);
}
else if (query_type_ == QueryType::SearchSongs) {
- reply = CreateRequest("track/search", params);
+ reply = CreateRequest(QStringLiteral("track/search"), params);
}
if (!reply) continue;
replies_ << reply;
@@ -419,42 +419,42 @@ void QobuzRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
return;
}
- if (!json_obj.contains("artists")) {
+ if (!json_obj.contains(QStringLiteral("artists"))) {
ArtistsFinishCheck();
- Error("Json object is missing artists.", json_obj);
+ Error(QStringLiteral("Json object is missing artists."), json_obj);
return;
}
- QJsonValue value_artists = json_obj["artists"];
+ QJsonValue value_artists = json_obj[QStringLiteral("artists")];
if (!value_artists.isObject()) {
- Error("Json artists is not an object.", json_obj);
+ Error(QStringLiteral("Json artists is not an object."), json_obj);
ArtistsFinishCheck();
return;
}
QJsonObject obj_artists = value_artists.toObject();
- if (!obj_artists.contains("limit") ||
- !obj_artists.contains("offset") ||
- !obj_artists.contains("total") ||
- !obj_artists.contains("items")) {
+ if (!obj_artists.contains(QStringLiteral("limit")) ||
+ !obj_artists.contains(QStringLiteral("offset")) ||
+ !obj_artists.contains(QStringLiteral("total")) ||
+ !obj_artists.contains(QStringLiteral("items"))) {
ArtistsFinishCheck();
- Error("Json artists object is missing values.", json_obj);
+ Error(QStringLiteral("Json artists object is missing values."), json_obj);
return;
}
//int limit = obj_artists["limit"].toInt();
- int offset = obj_artists["offset"].toInt();
- int artists_total = obj_artists["total"].toInt();
+ int offset = obj_artists[QStringLiteral("offset")].toInt();
+ int artists_total = obj_artists[QStringLiteral("total")].toInt();
if (offset_requested == 0) {
artists_total_ = artists_total;
}
else if (artists_total != artists_total_) {
- Error(QString("total returned does not match previous total! %1 != %2").arg(artists_total).arg(artists_total_));
+ Error(QStringLiteral("total returned does not match previous total! %1 != %2").arg(artists_total).arg(artists_total_));
ArtistsFinishCheck();
return;
}
if (offset != offset_requested) {
- Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
+ Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
ArtistsFinishCheck();
return;
}
@@ -482,33 +482,33 @@ void QobuzRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
++artists_received;
if (!value_item.isObject()) {
- Error("Invalid Json reply, item not a object.");
+ Error(QStringLiteral("Invalid Json reply, item not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
- if (obj_item.contains("item")) {
- QJsonValue json_item = obj_item["item"];
+ if (obj_item.contains(QStringLiteral("item"))) {
+ QJsonValue json_item = obj_item[QStringLiteral("item")];
if (!json_item.isObject()) {
- Error("Invalid Json reply, item not a object.", json_item);
+ Error(QStringLiteral("Invalid Json reply, item not a object."), json_item);
continue;
}
obj_item = json_item.toObject();
}
- if (!obj_item.contains("id") || !obj_item.contains("name")) {
- Error("Invalid Json reply, item missing id or album.", obj_item);
+ if (!obj_item.contains(QStringLiteral("id")) || !obj_item.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, item missing id or album."), obj_item);
continue;
}
Artist artist;
- if (obj_item["id"].isString()) {
- artist.artist_id = obj_item["id"].toString();
+ if (obj_item[QStringLiteral("id")].isString()) {
+ artist.artist_id = obj_item[QStringLiteral("id")].toString();
}
else {
- artist.artist_id = QString::number(obj_item["id"].toInt());
+ artist.artist_id = QString::number(obj_item[QStringLiteral("id")].toInt());
}
- artist.artist = obj_item["name"].toString();
+ artist.artist = obj_item[QStringLiteral("name")].toString();
if (artist_albums_requests_pending_.contains(artist.artist_id)) continue;
@@ -589,7 +589,7 @@ void QobuzRequest::FlushArtistAlbumsRequests() {
<< Param("extra", "albums");
if (request.offset > 0) params << Param("offset", QString::number(request.offset));
- QNetworkReply *reply = CreateRequest(QString("artist/get"), params);
+ QNetworkReply *reply = CreateRequest(QStringLiteral("artist/get"), params);
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { ArtistAlbumsReplyReceived(reply, request.artist, request.offset); });
replies_ << reply;
@@ -632,50 +632,50 @@ void QobuzRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
Artist artist = artist_requested;
- if (json_obj.contains("id") && json_obj.contains("name")) {
- if (json_obj["id"].isString()) {
- artist.artist_id = json_obj["id"].toString();
+ if (json_obj.contains(QStringLiteral("id")) && json_obj.contains(QStringLiteral("name"))) {
+ if (json_obj[QStringLiteral("id")].isString()) {
+ artist.artist_id = json_obj[QStringLiteral("id")].toString();
}
else {
- artist.artist_id = QString::number(json_obj["id"].toInt());
+ artist.artist_id = QString::number(json_obj[QStringLiteral("id")].toInt());
}
- artist.artist = json_obj["name"].toString();
+ artist.artist = json_obj[QStringLiteral("name")].toString();
}
if (artist.artist_id != artist_requested.artist_id) {
AlbumsFinishCheck(artist_requested);
- Error("Artist ID returned does not match artist ID requested.", json_obj);
+ Error(QStringLiteral("Artist ID returned does not match artist ID requested."), json_obj);
return;
}
- if (!json_obj.contains("albums")) {
+ if (!json_obj.contains(QStringLiteral("albums"))) {
AlbumsFinishCheck(artist_requested);
- Error("Json object is missing albums.", json_obj);
+ Error(QStringLiteral("Json object is missing albums."), json_obj);
return;
}
- QJsonValue value_albums = json_obj["albums"];
+ QJsonValue value_albums = json_obj[QStringLiteral("albums")];
if (!value_albums.isObject()) {
- Error("Json albums is not an object.", json_obj);
+ Error(QStringLiteral("Json albums is not an object."), json_obj);
AlbumsFinishCheck(artist_requested);
return;
}
QJsonObject obj_albums = value_albums.toObject();
- if (!obj_albums.contains("limit") ||
- !obj_albums.contains("offset") ||
- !obj_albums.contains("total") ||
- !obj_albums.contains("items")) {
+ if (!obj_albums.contains(QStringLiteral("limit")) ||
+ !obj_albums.contains(QStringLiteral("offset")) ||
+ !obj_albums.contains(QStringLiteral("total")) ||
+ !obj_albums.contains(QStringLiteral("items"))) {
AlbumsFinishCheck(artist_requested);
- Error("Json albums object is missing values.", json_obj);
+ Error(QStringLiteral("Json albums object is missing values."), json_obj);
return;
}
//int limit = obj_albums["limit"].toInt();
- int offset = obj_albums["offset"].toInt();
- int albums_total = obj_albums["total"].toInt();
+ int offset = obj_albums[QStringLiteral("offset")].toInt();
+ int albums_total = obj_albums[QStringLiteral("total")].toInt();
if (offset != offset_requested) {
- Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
+ Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
AlbumsFinishCheck(artist_requested);
return;
}
@@ -700,46 +700,46 @@ void QobuzRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
++albums_received;
if (!value_item.isObject()) {
- Error("Invalid Json reply, item in array is not a object.");
+ Error(QStringLiteral("Invalid Json reply, item in array is not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
- if (!obj_item.contains("artist") || !obj_item.contains("title") || !obj_item.contains("id")) {
- Error("Invalid Json reply, item missing artist, title or id.", obj_item);
+ if (!obj_item.contains(QStringLiteral("artist")) || !obj_item.contains(QStringLiteral("title")) || !obj_item.contains(QStringLiteral("id"))) {
+ Error(QStringLiteral("Invalid Json reply, item missing artist, title or id."), obj_item);
continue;
}
Album album;
- if (obj_item["id"].isString()) {
- album.album_id = obj_item["id"].toString();
+ if (obj_item[QStringLiteral("id")].isString()) {
+ album.album_id = obj_item[QStringLiteral("id")].toString();
}
else {
- album.album_id = QString::number(obj_item["id"].toInt());
+ album.album_id = QString::number(obj_item[QStringLiteral("id")].toInt());
}
- album.album = obj_item["title"].toString();
+ album.album = obj_item[QStringLiteral("title")].toString();
if (album_songs_requests_pending_.contains(album.album_id)) continue;
- QJsonValue value_artist = obj_item["artist"];
+ QJsonValue value_artist = obj_item[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, item artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, item artist is not a object."), value_artist);
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("id") || !obj_artist.contains("name")) {
- Error("Invalid Json reply, item artist missing id or name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, item artist missing id or name."), obj_artist);
continue;
}
Artist album_artist;
- if (obj_artist["id"].isString()) {
- album_artist.artist_id = obj_artist["id"].toString();
+ if (obj_artist[QStringLiteral("id")].isString()) {
+ album_artist.artist_id = obj_artist[QStringLiteral("id")].toString();
}
else {
- album_artist.artist_id = QString::number(obj_artist["id"].toInt());
+ album_artist.artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
}
- album_artist.artist = obj_artist["name"].toString();
+ album_artist.artist = obj_artist[QStringLiteral("name")].toString();
if (!artist_requested.artist_id.isEmpty() && album_artist.artist_id != artist_requested.artist_id) {
qLog(Debug) << "Skipping artist" << album_artist.artist << album_artist.artist_id << "does not match album artist" << artist_requested.artist_id << artist_requested.artist;
@@ -844,7 +844,7 @@ void QobuzRequest::FlushAlbumSongsRequests() {
AlbumSongsRequest request = album_songs_requests_queue_.dequeue();
ParamList params = ParamList() << Param("album_id", request.album.album_id);
if (request.offset > 0) params << Param("offset", QString::number(request.offset));
- QNetworkReply *reply = CreateRequest(QString("album/get"), params);
+ QNetworkReply *reply = CreateRequest(QStringLiteral("album/get"), params);
replies_ << reply;
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { AlbumSongsReplyReceived(reply, request.artist, request.album, request.offset); });
@@ -887,8 +887,8 @@ void QobuzRequest::SongsReceived(QNetworkReply *reply, const Artist &artist_requ
return;
}
- if (!json_obj.contains("tracks")) {
- Error("Json object is missing tracks.", json_obj);
+ if (!json_obj.contains(QStringLiteral("tracks"))) {
+ Error(QStringLiteral("Json object is missing tracks."), json_obj);
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
return;
}
@@ -896,80 +896,80 @@ void QobuzRequest::SongsReceived(QNetworkReply *reply, const Artist &artist_requ
Artist album_artist = artist_requested;
Album album = album_requested;
- if (json_obj.contains("id") && json_obj.contains("title")) {
- if (json_obj["id"].isString()) {
- album.album_id = json_obj["id"].toString();
+ if (json_obj.contains(QStringLiteral("id")) && json_obj.contains(QStringLiteral("title"))) {
+ if (json_obj[QStringLiteral("id")].isString()) {
+ album.album_id = json_obj[QStringLiteral("id")].toString();
}
else {
- album.album_id = QString::number(json_obj["id"].toInt());
+ album.album_id = QString::number(json_obj[QStringLiteral("id")].toInt());
}
- album.album = json_obj["title"].toString();
+ album.album = json_obj[QStringLiteral("title")].toString();
}
- if (json_obj.contains("artist")) {
- QJsonValue value_artist = json_obj["artist"];
+ if (json_obj.contains(QStringLiteral("artist"))) {
+ QJsonValue value_artist = json_obj[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, album artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, album artist is not a object."), value_artist);
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
return;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("id") || !obj_artist.contains("name")) {
- Error("Invalid Json reply, album artist is missing id or name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, album artist is missing id or name."), obj_artist);
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
return;
}
- if (obj_artist["id"].isString()) {
- album_artist.artist_id = obj_artist["id"].toString();
+ if (obj_artist[QStringLiteral("id")].isString()) {
+ album_artist.artist_id = obj_artist[QStringLiteral("id")].toString();
}
else {
- album_artist.artist_id = QString::number(obj_artist["id"].toInt());
+ album_artist.artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
}
- album_artist.artist = obj_artist["name"].toString();
+ album_artist.artist = obj_artist[QStringLiteral("name")].toString();
}
- if (json_obj.contains("image")) {
- QJsonValue value_image = json_obj["image"];
+ if (json_obj.contains(QStringLiteral("image"))) {
+ QJsonValue value_image = json_obj[QStringLiteral("image")];
if (!value_image.isObject()) {
- Error("Invalid Json reply, album image is not a object.", value_image);
+ Error(QStringLiteral("Invalid Json reply, album image is not a object."), value_image);
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
return;
}
QJsonObject obj_image = value_image.toObject();
- if (!obj_image.contains("large")) {
- Error("Invalid Json reply, album image is missing large.", obj_image);
+ if (!obj_image.contains(QStringLiteral("large"))) {
+ Error(QStringLiteral("Invalid Json reply, album image is missing large."), obj_image);
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
return;
}
- QString album_image = obj_image["large"].toString();
+ QString album_image = obj_image[QStringLiteral("large")].toString();
if (!album_image.isEmpty()) {
album.cover_url = QUrl(album_image);
}
}
- QJsonValue value_tracks = json_obj["tracks"];
+ QJsonValue value_tracks = json_obj[QStringLiteral("tracks")];
if (!value_tracks.isObject()) {
- Error("Json tracks is not an object.", json_obj);
+ Error(QStringLiteral("Json tracks is not an object."), json_obj);
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
return;
}
QJsonObject obj_tracks = value_tracks.toObject();
- if (!obj_tracks.contains("limit") ||
- !obj_tracks.contains("offset") ||
- !obj_tracks.contains("total") ||
- !obj_tracks.contains("items")) {
+ if (!obj_tracks.contains(QStringLiteral("limit")) ||
+ !obj_tracks.contains(QStringLiteral("offset")) ||
+ !obj_tracks.contains(QStringLiteral("total")) ||
+ !obj_tracks.contains(QStringLiteral("items"))) {
SongsFinishCheck(artist_requested, album_requested, limit_requested, offset_requested);
- Error("Json songs object is missing values.", json_obj);
+ Error(QStringLiteral("Json songs object is missing values."), json_obj);
return;
}
//int limit = obj_tracks["limit"].toInt();
- int offset = obj_tracks["offset"].toInt();
- int songs_total = obj_tracks["total"].toInt();
+ int offset = obj_tracks[QStringLiteral("offset")].toInt();
+ int songs_total = obj_tracks[QStringLiteral("total")].toInt();
if (offset != offset_requested) {
- Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
+ Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
SongsFinishCheck(album_artist, album, limit_requested, offset_requested, songs_total);
return;
}
@@ -996,7 +996,7 @@ void QobuzRequest::SongsReceived(QNetworkReply *reply, const Artist &artist_requ
for (const QJsonValueRef value_item : array_items) {
if (!value_item.isObject()) {
- Error("Invalid Json reply, track is not a object.");
+ Error(QStringLiteral("Invalid Json reply, track is not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
@@ -1059,126 +1059,126 @@ void QobuzRequest::SongsFinishCheck(const Artist &artist, const Album &album, co
void QobuzRequest::ParseSong(Song &song, const QJsonObject &json_obj, const Artist &album_artist, const Album &album) {
if (
- !json_obj.contains("id") ||
- !json_obj.contains("title") ||
- !json_obj.contains("track_number") ||
- !json_obj.contains("duration") ||
- !json_obj.contains("copyright") ||
- !json_obj.contains("streamable")
+ !json_obj.contains(QStringLiteral("id")) ||
+ !json_obj.contains(QStringLiteral("title")) ||
+ !json_obj.contains(QStringLiteral("track_number")) ||
+ !json_obj.contains(QStringLiteral("duration")) ||
+ !json_obj.contains(QStringLiteral("copyright")) ||
+ !json_obj.contains(QStringLiteral("streamable"))
) {
- Error("Invalid Json reply, track is missing one or more values.", json_obj);
+ Error(QStringLiteral("Invalid Json reply, track is missing one or more values."), json_obj);
return;
}
QString song_id;
- if (json_obj["id"].isString()) {
- song_id = json_obj["id"].toString();
+ if (json_obj[QStringLiteral("id")].isString()) {
+ song_id = json_obj[QStringLiteral("id")].toString();
}
else {
- song_id = QString::number(json_obj["id"].toInt());
+ song_id = QString::number(json_obj[QStringLiteral("id")].toInt());
}
- QString title = json_obj["title"].toString();
- int track = json_obj["track_number"].toInt();
+ QString title = json_obj[QStringLiteral("title")].toString();
+ int track = json_obj[QStringLiteral("track_number")].toInt();
int disc = 0;
- QString copyright = json_obj["copyright"].toString();
- qint64 duration = json_obj["duration"].toInt() * kNsecPerSec;
+ QString copyright = json_obj[QStringLiteral("copyright")].toString();
+ qint64 duration = json_obj[QStringLiteral("duration")].toInt() * kNsecPerSec;
//bool streamable = json_obj["streamable"].toBool();
QString composer;
QString performer;
- if (json_obj.contains("media_number")) {
- disc = json_obj["media_number"].toInt();
+ if (json_obj.contains(QStringLiteral("media_number"))) {
+ disc = json_obj[QStringLiteral("media_number")].toInt();
}
Artist song_artist = album_artist;
Album song_album = album;
- if (json_obj.contains("album")) {
+ if (json_obj.contains(QStringLiteral("album"))) {
- QJsonValue value_album = json_obj["album"];
+ QJsonValue value_album = json_obj[QStringLiteral("album")];
if (!value_album.isObject()) {
- Error("Invalid Json reply, album is not an object.", value_album);
+ Error(QStringLiteral("Invalid Json reply, album is not an object."), value_album);
return;
}
QJsonObject obj_album = value_album.toObject();
- if (obj_album.contains("id")) {
- if (obj_album["id"].isString()) {
- song_album.album_id = obj_album["id"].toString();
+ if (obj_album.contains(QStringLiteral("id"))) {
+ if (obj_album[QStringLiteral("id")].isString()) {
+ song_album.album_id = obj_album[QStringLiteral("id")].toString();
}
else {
- song_album.album_id = QString::number(obj_album["id"].toInt());
+ song_album.album_id = QString::number(obj_album[QStringLiteral("id")].toInt());
}
}
- if (obj_album.contains("title")) {
- song_album.album = obj_album["title"].toString();
+ if (obj_album.contains(QStringLiteral("title"))) {
+ song_album.album = obj_album[QStringLiteral("title")].toString();
}
- if (obj_album.contains("artist")) {
- QJsonValue value_artist = obj_album["artist"];
+ if (obj_album.contains(QStringLiteral("artist"))) {
+ QJsonValue value_artist = obj_album[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, album artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, album artist is not a object."), value_artist);
return;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("id") || !obj_artist.contains("name")) {
- Error("Invalid Json reply, album artist is missing id or name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, album artist is missing id or name."), obj_artist);
return;
}
- if (obj_artist["id"].isString()) {
- song_artist.artist_id = obj_artist["id"].toString();
+ if (obj_artist[QStringLiteral("id")].isString()) {
+ song_artist.artist_id = obj_artist[QStringLiteral("id")].toString();
}
else {
- song_artist.artist_id = QString::number(obj_artist["id"].toInt());
+ song_artist.artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
}
- song_artist.artist = obj_artist["name"].toString();
+ song_artist.artist = obj_artist[QStringLiteral("name")].toString();
}
- if (obj_album.contains("image")) {
- QJsonValue value_image = obj_album["image"];
+ if (obj_album.contains(QStringLiteral("image"))) {
+ QJsonValue value_image = obj_album[QStringLiteral("image")];
if (!value_image.isObject()) {
- Error("Invalid Json reply, album image is not a object.", value_image);
+ Error(QStringLiteral("Invalid Json reply, album image is not a object."), value_image);
return;
}
QJsonObject obj_image = value_image.toObject();
- if (!obj_image.contains("large")) {
- Error("Invalid Json reply, album image is missing large.", obj_image);
+ if (!obj_image.contains(QStringLiteral("large"))) {
+ Error(QStringLiteral("Invalid Json reply, album image is missing large."), obj_image);
return;
}
- QString album_image = obj_image["large"].toString();
+ QString album_image = obj_image[QStringLiteral("large")].toString();
if (!album_image.isEmpty()) {
song_album.cover_url.setUrl(album_image);
}
}
}
- if (json_obj.contains("composer")) {
- QJsonValue value_composer = json_obj["composer"];
+ if (json_obj.contains(QStringLiteral("composer"))) {
+ QJsonValue value_composer = json_obj[QStringLiteral("composer")];
if (!value_composer.isObject()) {
- Error("Invalid Json reply, track composer is not a object.", value_composer);
+ Error(QStringLiteral("Invalid Json reply, track composer is not a object."), value_composer);
return;
}
QJsonObject obj_composer = value_composer.toObject();
- if (!obj_composer.contains("id") || !obj_composer.contains("name")) {
- Error("Invalid Json reply, track composer is missing id or name.", obj_composer);
+ if (!obj_composer.contains(QStringLiteral("id")) || !obj_composer.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, track composer is missing id or name."), obj_composer);
return;
}
- composer = obj_composer["name"].toString();
+ composer = obj_composer[QStringLiteral("name")].toString();
}
- if (json_obj.contains("performer")) {
- QJsonValue value_performer = json_obj["performer"];
+ if (json_obj.contains(QStringLiteral("performer"))) {
+ QJsonValue value_performer = json_obj[QStringLiteral("performer")];
if (!value_performer.isObject()) {
- Error("Invalid Json reply, track performer is not a object.", value_performer);
+ Error(QStringLiteral("Invalid Json reply, track performer is not a object."), value_performer);
return;
}
QJsonObject obj_performer = value_performer.toObject();
- if (!obj_performer.contains("id") || !obj_performer.contains("name")) {
- Error("Invalid Json reply, track performer is missing id or name.", obj_performer);
+ if (!obj_performer.contains(QStringLiteral("id")) || !obj_performer.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, track performer is missing id or name."), obj_performer);
return;
}
- performer = obj_performer["name"].toString();
+ performer = obj_performer[QStringLiteral("name")].toString();
}
//if (!streamable) {
@@ -1327,14 +1327,14 @@ void QobuzRequest::AlbumCoverReceived(QNetworkReply *reply, const QUrl &cover_ur
}
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
if (album_covers_requests_sent_.contains(cover_url)) album_covers_requests_sent_.remove(cover_url);
AlbumCoverFinishCheck();
return;
}
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1 for %2.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(cover_url.toString()));
+ Error(QStringLiteral("Received HTTP code %1 for %2.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(cover_url.toString()));
if (album_covers_requests_sent_.contains(cover_url)) album_covers_requests_sent_.remove(cover_url);
AlbumCoverFinishCheck();
return;
@@ -1345,7 +1345,7 @@ void QobuzRequest::AlbumCoverReceived(QNetworkReply *reply, const QUrl &cover_ur
mimetype = mimetype.left(mimetype.indexOf(';'));
}
if (!ImageUtils::SupportedImageMimeTypes().contains(mimetype, Qt::CaseInsensitive) && !ImageUtils::SupportedImageFormats().contains(mimetype, Qt::CaseInsensitive)) {
- Error(QString("Unsupported mimetype for image reader %1 for %2").arg(mimetype, cover_url.toString()));
+ Error(QStringLiteral("Unsupported mimetype for image reader %1 for %2").arg(mimetype, cover_url.toString()));
if (album_covers_requests_sent_.contains(cover_url)) album_covers_requests_sent_.remove(cover_url);
AlbumCoverFinishCheck();
return;
@@ -1353,7 +1353,7 @@ void QobuzRequest::AlbumCoverReceived(QNetworkReply *reply, const QUrl &cover_ur
QByteArray data = reply->readAll();
if (data.isEmpty()) {
- Error(QString("Received empty image data for %1").arg(cover_url.toString()));
+ Error(QStringLiteral("Received empty image data for %1").arg(cover_url.toString()));
if (album_covers_requests_sent_.contains(cover_url)) album_covers_requests_sent_.remove(cover_url);
AlbumCoverFinishCheck();
return;
@@ -1376,13 +1376,13 @@ void QobuzRequest::AlbumCoverReceived(QNetworkReply *reply, const QUrl &cover_ur
}
}
else {
- Error(QString("Error saving image data to %1").arg(filename));
+ Error(QStringLiteral("Error saving image data to %1").arg(filename));
if (album_covers_requests_sent_.contains(cover_url)) album_covers_requests_sent_.remove(cover_url);
}
}
else {
if (album_covers_requests_sent_.contains(cover_url)) album_covers_requests_sent_.remove(cover_url);
- Error(QString("Error decoding image data from %1").arg(cover_url.toString()));
+ Error(QStringLiteral("Error decoding image data from %1").arg(cover_url.toString()));
}
AlbumCoverFinishCheck();
diff --git a/src/qobuz/qobuzservice.cpp b/src/qobuz/qobuzservice.cpp
index d33256fb..0ab02c58 100644
--- a/src/qobuz/qobuzservice.cpp
+++ b/src/qobuz/qobuzservice.cpp
@@ -77,7 +77,7 @@ constexpr char QobuzService::kAlbumsSongsFtsTable[] = "qobuz_albums_songs_fts";
constexpr char QobuzService::kSongsFtsTable[] = "qobuz_songs_fts";
QobuzService::QobuzService(Application *app, QObject *parent)
- : InternetService(Song::Source::Qobuz, "Qobuz", "qobuz", QobuzSettingsPage::kSettingsGroup, SettingsDialog::Page::Qobuz, app, parent),
+ : InternetService(Song::Source::Qobuz, QStringLiteral("Qobuz"), QStringLiteral("qobuz"), QobuzSettingsPage::kSettingsGroup, SettingsDialog::Page::Qobuz, app, parent),
app_(app),
network_(app->network()),
url_handler_(new QobuzUrlHandler(app, this)),
@@ -338,7 +338,7 @@ void QobuzService::HandleAuthReply(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- LoginError(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ LoginError(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
return;
}
else {
@@ -348,18 +348,18 @@ void QobuzService::HandleAuthReply(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- login_errors_ << QString("%1 (%2)").arg(message).arg(code);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ login_errors_ << QStringLiteral("%1 (%2)").arg(message).arg(code);
}
}
if (login_errors_.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- login_errors_ << QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ login_errors_ << QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- login_errors_ << QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ login_errors_ << QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
LoginError();
@@ -374,82 +374,82 @@ void QobuzService::HandleAuthReply(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- LoginError("Authentication reply from server missing Json data.");
+ LoginError(QStringLiteral("Authentication reply from server missing Json data."));
return;
}
if (json_doc.isEmpty()) {
- LoginError("Authentication reply from server has empty Json document.");
+ LoginError(QStringLiteral("Authentication reply from server has empty Json document."));
return;
}
if (!json_doc.isObject()) {
- LoginError("Authentication reply from server has Json document that is not an object.", json_doc);
+ LoginError(QStringLiteral("Authentication reply from server has Json document that is not an object."), json_doc);
return;
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- LoginError("Authentication reply from server has empty Json object.", json_doc);
+ LoginError(QStringLiteral("Authentication reply from server has empty Json object."), json_doc);
return;
}
- if (!json_obj.contains("user_auth_token")) {
- LoginError("Authentication reply from server is missing user_auth_token", json_obj);
+ if (!json_obj.contains(QStringLiteral("user_auth_token"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing user_auth_token"), json_obj);
return;
}
- user_auth_token_ = json_obj["user_auth_token"].toString();
+ user_auth_token_ = json_obj[QStringLiteral("user_auth_token")].toString();
- if (!json_obj.contains("user")) {
- LoginError("Authentication reply from server is missing user", json_obj);
+ if (!json_obj.contains(QStringLiteral("user"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing user"), json_obj);
return;
}
- QJsonValue value_user = json_obj["user"];
+ QJsonValue value_user = json_obj[QStringLiteral("user")];
if (!value_user.isObject()) {
- LoginError("Authentication reply user is not a object", json_obj);
+ LoginError(QStringLiteral("Authentication reply user is not a object"), json_obj);
return;
}
QJsonObject obj_user = value_user.toObject();
- if (!obj_user.contains("id")) {
- LoginError("Authentication reply from server is missing user id", obj_user);
+ if (!obj_user.contains(QStringLiteral("id"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing user id"), obj_user);
return;
}
- user_id_ = obj_user["id"].toInt();
+ user_id_ = obj_user[QStringLiteral("id")].toInt();
- if (!obj_user.contains("device")) {
- LoginError("Authentication reply from server is missing user device", obj_user);
+ if (!obj_user.contains(QStringLiteral("device"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing user device"), obj_user);
return;
}
- QJsonValue value_device = obj_user["device"];
+ QJsonValue value_device = obj_user[QStringLiteral("device")];
if (!value_device.isObject()) {
- LoginError("Authentication reply from server user device is not a object", value_device);
+ LoginError(QStringLiteral("Authentication reply from server user device is not a object"), value_device);
return;
}
QJsonObject obj_device = value_device.toObject();
- if (!obj_device.contains("device_manufacturer_id")) {
- LoginError("Authentication reply from server device is missing device_manufacturer_id", obj_device);
+ if (!obj_device.contains(QStringLiteral("device_manufacturer_id"))) {
+ LoginError(QStringLiteral("Authentication reply from server device is missing device_manufacturer_id"), obj_device);
return;
}
- device_id_ = obj_device["device_manufacturer_id"].toString();
+ device_id_ = obj_device[QStringLiteral("device_manufacturer_id")].toString();
- if (!obj_user.contains("credential")) {
- LoginError("Authentication reply from server is missing user credential", obj_user);
+ if (!obj_user.contains(QStringLiteral("credential"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing user credential"), obj_user);
return;
}
- QJsonValue value_credential = obj_user["credential"];
+ QJsonValue value_credential = obj_user[QStringLiteral("credential")];
if (!value_credential.isObject()) {
- LoginError("Authentication reply from serve userr credential is not a object", value_device);
+ LoginError(QStringLiteral("Authentication reply from serve userr credential is not a object"), value_device);
return;
}
QJsonObject obj_credential = value_credential.toObject();
- if (!obj_credential.contains("id")) {
- LoginError("Authentication reply user credential from server is missing user credential id", obj_credential);
+ if (!obj_credential.contains(QStringLiteral("id"))) {
+ LoginError(QStringLiteral("Authentication reply user credential from server is missing user credential id"), obj_credential);
return;
}
- credential_id_ = obj_credential["id"].toInt();
+ credential_id_ = obj_credential[QStringLiteral("id")].toInt();
QSettings s;
s.beginGroup(QobuzSettingsPage::kSettingsGroup);
diff --git a/src/qobuz/qobuzstreamurlrequest.cpp b/src/qobuz/qobuzstreamurlrequest.cpp
index 4c733853..dd410dc6 100644
--- a/src/qobuz/qobuzstreamurlrequest.cpp
+++ b/src/qobuz/qobuzstreamurlrequest.cpp
@@ -121,7 +121,7 @@ void QobuzStreamURLRequest::GetStreamURL() {
std::sort(params_to_sign.begin(), params_to_sign.end());
QString data_to_sign;
- data_to_sign += "trackgetFileUrl";
+ data_to_sign += QLatin1String("trackgetFileUrl");
for (const Param ¶m : params_to_sign) {
data_to_sign += param.first + param.second;
}
@@ -138,7 +138,7 @@ void QobuzStreamURLRequest::GetStreamURL() {
std::sort(params.begin(), params.end());
- reply_ = CreateRequest(QString("track/getFileUrl"), params);
+ reply_ = CreateRequest(QStringLiteral("track/getFileUrl"), params);
QObject::connect(reply_, &QNetworkReply::finished, this, &QobuzStreamURLRequest::StreamURLReceived);
}
@@ -168,27 +168,27 @@ void QobuzStreamURLRequest::StreamURLReceived() {
return;
}
- if (!json_obj.contains("track_id")) {
- Error("Invalid Json reply, stream url is missing track_id.", json_obj);
+ if (!json_obj.contains(QStringLiteral("track_id"))) {
+ Error(QStringLiteral("Invalid Json reply, stream url is missing track_id."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
- int track_id = json_obj["track_id"].toInt();
+ int track_id = json_obj[QStringLiteral("track_id")].toInt();
if (track_id != song_id_) {
- Error("Incorrect track ID returned.", json_obj);
+ Error(QStringLiteral("Incorrect track ID returned."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
- if (!json_obj.contains("mime_type") || !json_obj.contains("url")) {
- Error("Invalid Json reply, stream url is missing url or mime_type.", json_obj);
+ if (!json_obj.contains(QStringLiteral("mime_type")) || !json_obj.contains(QStringLiteral("url"))) {
+ Error(QStringLiteral("Invalid Json reply, stream url is missing url or mime_type."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
- QUrl url(json_obj["url"].toString());
- QString mimetype = json_obj["mime_type"].toString();
+ QUrl url(json_obj[QStringLiteral("url")].toString());
+ QString mimetype = json_obj[QStringLiteral("mime_type")].toString();
Song::FileType filetype(Song::FileType::Unknown);
QMimeDatabase mimedb;
@@ -203,22 +203,22 @@ void QobuzStreamURLRequest::StreamURLReceived() {
}
if (!url.isValid()) {
- Error("Returned stream url is invalid.", json_obj);
+ Error(QStringLiteral("Returned stream url is invalid."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
qint64 duration = -1;
- if (json_obj.contains("duration")) {
- duration = json_obj["duration"].toInt() * kNsecPerSec;
+ if (json_obj.contains(QStringLiteral("duration"))) {
+ duration = json_obj[QStringLiteral("duration")].toInt() * kNsecPerSec;
}
int samplerate = -1;
- if (json_obj.contains("sampling_rate")) {
- samplerate = static_cast(json_obj["sampling_rate"].toDouble()) * 1000;
+ if (json_obj.contains(QStringLiteral("sampling_rate"))) {
+ samplerate = static_cast(json_obj[QStringLiteral("sampling_rate")].toDouble()) * 1000;
}
int bit_depth = -1;
- if (json_obj.contains("bit_depth")) {
- bit_depth = static_cast(json_obj["bit_depth"].toDouble());
+ if (json_obj.contains(QStringLiteral("bit_depth"))) {
+ bit_depth = static_cast(json_obj[QStringLiteral("bit_depth")].toDouble());
}
emit StreamURLSuccess(id_, media_url_, url, filetype, samplerate, bit_depth, duration);
diff --git a/src/qobuz/qobuzurlhandler.cpp b/src/qobuz/qobuzurlhandler.cpp
index deb21d9b..9637a8ed 100644
--- a/src/qobuz/qobuzurlhandler.cpp
+++ b/src/qobuz/qobuzurlhandler.cpp
@@ -42,7 +42,7 @@ QobuzUrlHandler::QobuzUrlHandler(Application *app, QobuzService *service)
UrlHandler::LoadResult QobuzUrlHandler::StartLoading(const QUrl &url) {
Request req;
- req.task_id = app_->task_manager()->StartTask(QString("Loading %1 stream...").arg(url.scheme()));
+ req.task_id = app_->task_manager()->StartTask(QStringLiteral("Loading %1 stream...").arg(url.scheme()));
QString error;
req.id = service_->GetStreamURL(url, error);
if (req.id == 0) {
diff --git a/src/queue/queue.cpp b/src/queue/queue.cpp
index 4cc7cdd4..5f93f281 100644
--- a/src/queue/queue.cpp
+++ b/src/queue/queue.cpp
@@ -158,7 +158,7 @@ QVariant Queue::data(const QModelIndex &proxy_index, int role) const {
const QString title = source_index.sibling(source_index.row(), Playlist::Column_Title).data().toString();
if (artist.isEmpty()) return title;
- return QString("%1 - %2").arg(artist, title);
+ return QStringLiteral("%1 - %2").arg(artist, title);
}
default:
diff --git a/src/queue/queueview.cpp b/src/queue/queueview.cpp
index 527b7c0e..d5ec1c07 100644
--- a/src/queue/queueview.cpp
+++ b/src/queue/queueview.cpp
@@ -53,10 +53,10 @@ QueueView::QueueView(QWidget *parent)
ui_->list->setItemDelegate(new QueuedItemDelegate(this, 0));
// Set icons on buttons
- ui_->move_down->setIcon(IconLoader::Load("go-down"));
- ui_->move_up->setIcon(IconLoader::Load("go-up"));
- ui_->remove->setIcon(IconLoader::Load("edit-delete"));
- ui_->clear->setIcon(IconLoader::Load("edit-clear-list"));
+ ui_->move_down->setIcon(IconLoader::Load(QStringLiteral("go-down")));
+ ui_->move_up->setIcon(IconLoader::Load(QStringLiteral("go-up")));
+ ui_->remove->setIcon(IconLoader::Load(QStringLiteral("edit-delete")));
+ ui_->clear->setIcon(IconLoader::Load(QStringLiteral("edit-clear-list")));
// Set a standard shortcut
ui_->remove->setShortcut(QKeySequence::Delete);
diff --git a/src/radios/radiobackend.cpp b/src/radios/radiobackend.cpp
index be7a53af..64804921 100644
--- a/src/radios/radiobackend.cpp
+++ b/src/radios/radiobackend.cpp
@@ -67,13 +67,13 @@ void RadioBackend::AddChannels(const RadioChannelList &channels) {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare(QString("INSERT INTO radio_channels (source, name, url, thumbnail_url) VALUES (:source, :name, :url, :thumbnail_url)"));
+ q.prepare(QStringLiteral("INSERT INTO radio_channels (source, name, url, thumbnail_url) VALUES (:source, :name, :url, :thumbnail_url)"));
for (const RadioChannel &channel : channels) {
- q.BindValue(":source", static_cast(channel.source));
- q.BindValue(":name", channel.name);
- q.BindValue(":url", channel.url);
- q.BindValue(":thumbnail_url", channel.thumbnail_url);
+ q.BindValue(QStringLiteral(":source"), static_cast(channel.source));
+ q.BindValue(QStringLiteral(":name"), channel.name);
+ q.BindValue(QStringLiteral(":url"), channel.url);
+ q.BindValue(QStringLiteral(":thumbnail_url"), channel.thumbnail_url);
if (!q.Exec()) {
db_->ReportErrors(q);
return;
@@ -96,7 +96,7 @@ void RadioBackend::GetChannels() {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("SELECT source, name, url, thumbnail_url FROM radio_channels");
+ q.prepare(QStringLiteral("SELECT source, name, url, thumbnail_url FROM radio_channels"));
if (!q.Exec()) {
db_->ReportErrors(q);
@@ -127,7 +127,7 @@ void RadioBackend::DeleteChannels() {
QSqlDatabase db(db_->Connect());
SqlQuery q(db);
- q.prepare("DELETE FROM radio_channels");
+ q.prepare(QStringLiteral("DELETE FROM radio_channels"));
if (!q.Exec()) {
db_->ReportErrors(q);
diff --git a/src/radios/radiomodel.cpp b/src/radios/radiomodel.cpp
index 7cbc7157..16b41956 100644
--- a/src/radios/radiomodel.cpp
+++ b/src/radios/radiomodel.cpp
@@ -125,7 +125,7 @@ QVariant RadioModel::data(const RadioItem *item, int role) const {
}
QStringList RadioModel::mimeTypes() const {
- return QStringList() << "text/uri-list";
+ return QStringList() << QStringLiteral("text/uri-list");
}
QMimeData *RadioModel::mimeData(const QModelIndexList &indexes) const {
@@ -330,12 +330,12 @@ void RadioModel::AlbumCoverLoaded(const quint64 id, const AlbumCoverLoaderResult
QString RadioModel::SortText(QString text) {
if (text.isEmpty()) {
- text = " unknown";
+ text = QStringLiteral(" unknown");
}
else {
text = text.toLower();
}
- text = text.remove(QRegularExpression("[^\\w ]", QRegularExpression::UseUnicodePropertiesOption));
+ text = text.remove(QRegularExpression(QStringLiteral("[^\\w ]"), QRegularExpression::UseUnicodePropertiesOption));
return text;
diff --git a/src/radios/radioparadiseservice.cpp b/src/radios/radioparadiseservice.cpp
index 3ff54792..2afa7174 100644
--- a/src/radios/radioparadiseservice.cpp
+++ b/src/radios/radioparadiseservice.cpp
@@ -35,10 +35,10 @@
const char *RadioParadiseService::kApiChannelsUrl = "https://api.radioparadise.com/api/list_streams";
RadioParadiseService::RadioParadiseService(Application *app, SharedPtr network, QObject *parent)
- : RadioService(Song::Source::RadioParadise, "Radio Paradise", IconLoader::Load("radioparadise"), app, network, parent) {}
+ : RadioService(Song::Source::RadioParadise, QStringLiteral("Radio Paradise"), IconLoader::Load(QStringLiteral("radioparadise")), app, network, parent) {}
-QUrl RadioParadiseService::Homepage() { return QUrl("https://radioparadise.com/"); }
-QUrl RadioParadiseService::Donate() { return QUrl("https://payments.radioparadise.com/rp2s-content.php?name=Support&file=support"); }
+QUrl RadioParadiseService::Homepage() { return QUrl(QStringLiteral("https://radioparadise.com/")); }
+QUrl RadioParadiseService::Donate() { return QUrl(QStringLiteral("https://payments.radioparadise.com/rp2s-content.php?name=Support&file=support")); }
void RadioParadiseService::Abort() {
@@ -78,36 +78,36 @@ void RadioParadiseService::GetChannelsReply(QNetworkReply *reply, const int task
return;
}
- if (!object.contains("channels") || !object["channels"].isArray()) {
- Error("Missing JSON channels array.", object);
+ if (!object.contains(QStringLiteral("channels")) || !object[QStringLiteral("channels")].isArray()) {
+ Error(QStringLiteral("Missing JSON channels array."), object);
app_->task_manager()->SetTaskFinished(task_id);
emit NewChannels();
return;
}
- QJsonArray array_channels = object["channels"].toArray();
+ QJsonArray array_channels = object[QStringLiteral("channels")].toArray();
RadioChannelList channels;
for (const QJsonValueRef value_channel : array_channels) {
if (!value_channel.isObject()) continue;
QJsonObject obj_channel = value_channel.toObject();
- if (!obj_channel.contains("chan_name") || !obj_channel.contains("streams")) {
+ if (!obj_channel.contains(QStringLiteral("chan_name")) || !obj_channel.contains(QStringLiteral("streams"))) {
continue;
}
- QString name = obj_channel["chan_name"].toString();
- QJsonValue value_streams = obj_channel["streams"];
+ QString name = obj_channel[QStringLiteral("chan_name")].toString();
+ QJsonValue value_streams = obj_channel[QStringLiteral("streams")];
if (!value_streams.isArray()) {
continue;
}
- QJsonArray array_streams = obj_channel["streams"].toArray();
+ QJsonArray array_streams = obj_channel[QStringLiteral("streams")].toArray();
for (const QJsonValueRef value_stream : array_streams) {
if (!value_stream.isObject()) continue;
QJsonObject obj_stream = value_stream.toObject();
- if (!obj_stream.contains("label") || !obj_stream.contains("url")) {
+ if (!obj_stream.contains(QStringLiteral("label")) || !obj_stream.contains(QStringLiteral("url"))) {
continue;
}
- QString label = obj_stream["label"].toString();
- QString url = obj_stream["url"].toString();
- if (!url.contains(QRegularExpression("^[0-9a-zA-Z]*:\\/\\/", QRegularExpression::CaseInsensitiveOption))) {
+ QString label = obj_stream[QStringLiteral("label")].toString();
+ QString url = obj_stream[QStringLiteral("url")].toString();
+ if (!url.contains(QRegularExpression(QStringLiteral("^[0-9a-zA-Z]*:\\/\\/"), QRegularExpression::CaseInsensitiveOption))) {
url.prepend("https://");
}
RadioChannel channel;
diff --git a/src/radios/radioservice.cpp b/src/radios/radioservice.cpp
index f3ecc143..39535118 100644
--- a/src/radios/radioservice.cpp
+++ b/src/radios/radioservice.cpp
@@ -42,13 +42,13 @@ RadioService::RadioService(const Song::Source source, const QString &name, const
QByteArray RadioService::ExtractData(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("Failed to retrieve data from %1: %2 (%3)").arg(name_, reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("Failed to retrieve data from %1: %2 (%3)").arg(name_, reply->errorString()).arg(reply->error()));
if (reply->error() < 200) {
return QByteArray();
}
}
else if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
+ Error(QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()));
}
return reply->readAll();
@@ -65,23 +65,23 @@ QJsonObject RadioService::ExtractJsonObj(const QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error(QString("Failed to parse Json data from %1: %2").arg(name_, json_error.errorString()));
+ Error(QStringLiteral("Failed to parse Json data from %1: %2").arg(name_, json_error.errorString()));
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error(QString("%1: Received empty Json document.").arg(name_), data);
+ Error(QStringLiteral("%1: Received empty Json document.").arg(name_), data);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error(QString("%1: Json document is not an object.").arg(name_), json_doc);
+ Error(QStringLiteral("%1: Json document is not an object.").arg(name_), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error(QString("%1: Received empty Json object.").arg(name_), json_doc);
+ Error(QStringLiteral("%1: Received empty Json object.").arg(name_), json_doc);
return QJsonObject();
}
diff --git a/src/radios/radioview.cpp b/src/radios/radioview.cpp
index b3d5d0b4..1d8d86ae 100644
--- a/src/radios/radioview.cpp
+++ b/src/radios/radioview.cpp
@@ -66,27 +66,27 @@ void RadioView::contextMenuEvent(QContextMenuEvent *e) {
if (!menu_) {
menu_ = new QMenu;
- action_playlist_append_ = new QAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this);
+ action_playlist_append_ = new QAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this);
QObject::connect(action_playlist_append_, &QAction::triggered, this, &RadioView::AddToPlaylist);
menu_->addAction(action_playlist_append_);
- action_playlist_replace_ = new QAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this);
+ action_playlist_replace_ = new QAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this);
QObject::connect(action_playlist_replace_, &QAction::triggered, this, &RadioView::ReplacePlaylist);
menu_->addAction(action_playlist_replace_);
- action_playlist_new_ = new QAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this);
+ action_playlist_new_ = new QAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this);
QObject::connect(action_playlist_new_, &QAction::triggered, this, &RadioView::OpenInNewPlaylist);
menu_->addAction(action_playlist_new_);
- action_homepage_ = new QAction(IconLoader::Load("download"), tr("Open homepage"), this);
+ action_homepage_ = new QAction(IconLoader::Load(QStringLiteral("download")), tr("Open homepage"), this);
QObject::connect(action_homepage_, &QAction::triggered, this, &RadioView::Homepage);
menu_->addAction(action_homepage_);
- action_donate_ = new QAction(IconLoader::Load("download"), tr("Donate"), this);
+ action_donate_ = new QAction(IconLoader::Load(QStringLiteral("download")), tr("Donate"), this);
QObject::connect(action_donate_, &QAction::triggered, this, &RadioView::Donate);
menu_->addAction(action_donate_);
- menu_->addAction(IconLoader::Load("view-refresh"), tr("Refresh channels"), this, &RadioView::GetChannels);
+ menu_->addAction(IconLoader::Load(QStringLiteral("view-refresh")), tr("Refresh channels"), this, &RadioView::GetChannels);
}
const bool channels_selected = !selectedIndexes().isEmpty();
diff --git a/src/radios/radioviewcontainer.cpp b/src/radios/radioviewcontainer.cpp
index 80803b4d..f7215309 100644
--- a/src/radios/radioviewcontainer.cpp
+++ b/src/radios/radioviewcontainer.cpp
@@ -34,7 +34,7 @@ RadioViewContainer::RadioViewContainer(QWidget *parent)
QObject::connect(ui_->refresh, &QToolButton::clicked, this, &RadioViewContainer::Refresh);
- ui_->refresh->setIcon(IconLoader::Load("view-refresh"));
+ ui_->refresh->setIcon(IconLoader::Load(QStringLiteral("view-refresh")));
ReloadSettings();
diff --git a/src/radios/somafmservice.cpp b/src/radios/somafmservice.cpp
index 30aa354f..e29f495a 100644
--- a/src/radios/somafmservice.cpp
+++ b/src/radios/somafmservice.cpp
@@ -37,14 +37,14 @@
const char *SomaFMService::kApiChannelsUrl = "https://somafm.com/channels.json";
SomaFMService::SomaFMService(Application *app, SharedPtr network, QObject *parent)
- : RadioService(Song::Source::SomaFM, "SomaFM", IconLoader::Load("somafm"), app, network, parent) {}
+ : RadioService(Song::Source::SomaFM, QStringLiteral("SomaFM"), IconLoader::Load(QStringLiteral("somafm")), app, network, parent) {}
SomaFMService::~SomaFMService() {
Abort();
}
-QUrl SomaFMService::Homepage() { return QUrl("https://somafm.com/"); }
-QUrl SomaFMService::Donate() { return QUrl("https://somafm.com/support/"); }
+QUrl SomaFMService::Homepage() { return QUrl(QStringLiteral("https://somafm.com/")); }
+QUrl SomaFMService::Donate() { return QUrl(QStringLiteral("https://somafm.com/support/")); }
void SomaFMService::Abort() {
@@ -84,39 +84,39 @@ void SomaFMService::GetChannelsReply(QNetworkReply *reply, const int task_id) {
return;
}
- if (!object.contains("channels") || !object["channels"].isArray()) {
- Error("Missing JSON channels array.", object);
+ if (!object.contains(QStringLiteral("channels")) || !object[QStringLiteral("channels")].isArray()) {
+ Error(QStringLiteral("Missing JSON channels array."), object);
app_->task_manager()->SetTaskFinished(task_id);
emit NewChannels();
return;
}
- QJsonArray array_channels = object["channels"].toArray();
+ QJsonArray array_channels = object[QStringLiteral("channels")].toArray();
RadioChannelList channels;
for (const QJsonValueRef value_channel : array_channels) {
if (!value_channel.isObject()) continue;
QJsonObject obj_channel = value_channel.toObject();
- if (!obj_channel.contains("title") || !obj_channel.contains("image")) {
+ if (!obj_channel.contains(QStringLiteral("title")) || !obj_channel.contains(QStringLiteral("image"))) {
continue;
}
- QString name = obj_channel["title"].toString();
- QString image = obj_channel["image"].toString();
- QJsonArray playlists = obj_channel["playlists"].toArray();
+ QString name = obj_channel[QStringLiteral("title")].toString();
+ QString image = obj_channel[QStringLiteral("image")].toString();
+ QJsonArray playlists = obj_channel[QStringLiteral("playlists")].toArray();
for (const QJsonValueRef playlist : playlists) {
if (!playlist.isObject()) continue;
QJsonObject obj_playlist = playlist.toObject();
- if (!obj_playlist.contains("url") || !obj_playlist.contains("quality")) {
+ if (!obj_playlist.contains(QStringLiteral("url")) || !obj_playlist.contains(QStringLiteral("quality"))) {
continue;
}
RadioChannel channel;
- QString quality = obj_playlist["quality"].toString();
+ QString quality = obj_playlist[QStringLiteral("quality")].toString();
if (quality != "highest") continue;
channel.source = source_;
channel.name = name;
- channel.url.setUrl(obj_playlist["url"].toString());
+ channel.url.setUrl(obj_playlist[QStringLiteral("url")].toString());
channel.thumbnail_url.setUrl(image);
- if (obj_playlist.contains("format")) {
- channel.name.append(" " + obj_playlist["format"].toString().toUpper());
+ if (obj_playlist.contains(QStringLiteral("format"))) {
+ channel.name.append(" " + obj_playlist[QStringLiteral("format")].toString().toUpper());
}
channels << channel;
}
diff --git a/src/scrobbler/lastfmimport.cpp b/src/scrobbler/lastfmimport.cpp
index 1a4c8b20..264efa5f 100644
--- a/src/scrobbler/lastfmimport.cpp
+++ b/src/scrobbler/lastfmimport.cpp
@@ -142,7 +142,7 @@ QByteArray LastFMImport::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
QString error;
@@ -152,18 +152,18 @@ QByteArray LastFMImport::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (json_obj.contains("error") && json_obj.contains("message")) {
- int error_code = json_obj["error"].toInt();
- QString error_message = json_obj["message"].toString();
- error = QString("%1 (%2)").arg(error_message).arg(error_code);
+ if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
+ int error_code = json_obj[QStringLiteral("error")].toInt();
+ QString error_message = json_obj[QStringLiteral("message")].toString();
+ error = QStringLiteral("%1 (%2)").arg(error_message).arg(error_code);
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -181,20 +181,20 @@ QJsonObject LastFMImport::ExtractJsonObj(const QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &error);
if (error.error != QJsonParseError::NoError) {
- Error("Reply from server missing Json data.", data);
+ Error(QStringLiteral("Reply from server missing Json data."), data);
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", json_doc);
+ Error(QStringLiteral("Received empty Json document."), json_doc);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
return QJsonObject();
}
@@ -284,62 +284,62 @@ void LastFMImport::GetRecentTracksRequestFinished(QNetworkReply *reply, const in
return;
}
- if (json_obj.contains("error") && json_obj.contains("message")) {
- int error_code = json_obj["error"].toInt();
- QString error_message = json_obj["message"].toString();
- QString error_reason = QString("%1 (%2)").arg(error_message).arg(error_code);
+ if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
+ int error_code = json_obj[QStringLiteral("error")].toInt();
+ QString error_message = json_obj[QStringLiteral("message")].toString();
+ QString error_reason = QStringLiteral("%1 (%2)").arg(error_message).arg(error_code);
Error(error_reason);
return;
}
- if (!json_obj.contains("recenttracks")) {
- Error("JSON reply from server is missing recenttracks.", json_obj);
+ if (!json_obj.contains(QStringLiteral("recenttracks"))) {
+ Error(QStringLiteral("JSON reply from server is missing recenttracks."), json_obj);
return;
}
- if (!json_obj["recenttracks"].isObject()) {
- Error("Failed to parse JSON: recenttracks is not an object!", json_obj);
+ if (!json_obj[QStringLiteral("recenttracks")].isObject()) {
+ Error(QStringLiteral("Failed to parse JSON: recenttracks is not an object!"), json_obj);
return;
}
- json_obj = json_obj["recenttracks"].toObject();
+ json_obj = json_obj[QStringLiteral("recenttracks")].toObject();
- if (!json_obj.contains("@attr")) {
- Error("JSON reply from server is missing @attr.", json_obj);
+ if (!json_obj.contains(QStringLiteral("@attr"))) {
+ Error(QStringLiteral("JSON reply from server is missing @attr."), json_obj);
return;
}
- if (!json_obj.contains("track")) {
- Error("JSON reply from server is missing track.", json_obj);
+ if (!json_obj.contains(QStringLiteral("track"))) {
+ Error(QStringLiteral("JSON reply from server is missing track."), json_obj);
return;
}
- if (!json_obj["@attr"].isObject()) {
- Error("Failed to parse JSON: @attr is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("@attr")].isObject()) {
+ Error(QStringLiteral("Failed to parse JSON: @attr is not an object."), json_obj);
return;
}
- if (!json_obj["track"].isArray()) {
- Error("Failed to parse JSON: track is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("track")].isArray()) {
+ Error(QStringLiteral("Failed to parse JSON: track is not an object."), json_obj);
return;
}
- QJsonObject obj_attr = json_obj["@attr"].toObject();
+ QJsonObject obj_attr = json_obj[QStringLiteral("@attr")].toObject();
- if (!obj_attr.contains("page")) {
- Error("Failed to parse JSON: attr object is missing page.", json_obj);
+ if (!obj_attr.contains(QStringLiteral("page"))) {
+ Error(QStringLiteral("Failed to parse JSON: attr object is missing page."), json_obj);
return;
}
- if (!obj_attr.contains("totalPages")) {
- Error("Failed to parse JSON: attr object is missing totalPages.", json_obj);
+ if (!obj_attr.contains(QStringLiteral("totalPages"))) {
+ Error(QStringLiteral("Failed to parse JSON: attr object is missing totalPages."), json_obj);
return;
}
- if (!obj_attr.contains("total")) {
- Error("Failed to parse JSON: attr object is missing total.", json_obj);
+ if (!obj_attr.contains(QStringLiteral("total"))) {
+ Error(QStringLiteral("Failed to parse JSON: attr object is missing total."), json_obj);
return;
}
- int total = obj_attr["total"].toString().toInt();
- int pages = obj_attr["totalPages"].toString().toInt();
+ int total = obj_attr[QStringLiteral("total")].toString().toInt();
+ int pages = obj_attr[QStringLiteral("totalPages")].toString().toInt();
if (page == 0) {
lastplayed_total_ = total;
@@ -348,7 +348,7 @@ void LastFMImport::GetRecentTracksRequestFinished(QNetworkReply *reply, const in
}
else {
- QJsonArray array_track = json_obj["track"].toArray();
+ QJsonArray array_track = json_obj[QStringLiteral("track")].toArray();
for (const QJsonValueRef value_track : array_track) {
@@ -358,30 +358,30 @@ void LastFMImport::GetRecentTracksRequestFinished(QNetworkReply *reply, const in
continue;
}
QJsonObject obj_track = value_track.toObject();
- if (!obj_track.contains("artist") ||
- !obj_track.contains("album") ||
- !obj_track.contains("name") ||
- !obj_track.contains("date") ||
- !obj_track["artist"].isObject() ||
- !obj_track["album"].isObject() ||
- !obj_track["date"].isObject()
+ if (!obj_track.contains(QStringLiteral("artist")) ||
+ !obj_track.contains(QStringLiteral("album")) ||
+ !obj_track.contains(QStringLiteral("name")) ||
+ !obj_track.contains(QStringLiteral("date")) ||
+ !obj_track[QStringLiteral("artist")].isObject() ||
+ !obj_track[QStringLiteral("album")].isObject() ||
+ !obj_track[QStringLiteral("date")].isObject()
) {
continue;
}
- QJsonObject obj_artist = obj_track["artist"].toObject();
- QJsonObject obj_album = obj_track["album"].toObject();
- QJsonObject obj_date = obj_track["date"].toObject();
+ QJsonObject obj_artist = obj_track[QStringLiteral("artist")].toObject();
+ QJsonObject obj_album = obj_track[QStringLiteral("album")].toObject();
+ QJsonObject obj_date = obj_track[QStringLiteral("date")].toObject();
- if (!obj_artist.contains("#text") || !obj_album.contains("#text") || !obj_date.contains("#text")) {
+ if (!obj_artist.contains(QStringLiteral("#text")) || !obj_album.contains(QStringLiteral("#text")) || !obj_date.contains(QStringLiteral("#text"))) {
continue;
}
- QString artist = obj_artist["#text"].toString();
- QString album = obj_album["#text"].toString();
- QString date = obj_date["#text"].toString();
- QString title = obj_track["name"].toString();
- QDateTime datetime = QDateTime::fromString(date, "dd MMM yyyy, hh:mm");
+ QString artist = obj_artist[QStringLiteral("#text")].toString();
+ QString album = obj_album[QStringLiteral("#text")].toString();
+ QString date = obj_date[QStringLiteral("#text")].toString();
+ QString title = obj_track[QStringLiteral("name")].toString();
+ QDateTime datetime = QDateTime::fromString(date, QStringLiteral("dd MMM yyyy, hh:mm"));
if (datetime.isValid()) {
emit UpdateLastPlayed(artist, album, title, datetime.toSecsSinceEpoch());
}
@@ -447,62 +447,62 @@ void LastFMImport::GetTopTracksRequestFinished(QNetworkReply *reply, const int p
return;
}
- if (json_obj.contains("error") && json_obj.contains("message")) {
- int error_code = json_obj["error"].toInt();
- QString error_message = json_obj["message"].toString();
- QString error_reason = QString("%1 (%2)").arg(error_message).arg(error_code);
+ if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
+ int error_code = json_obj[QStringLiteral("error")].toInt();
+ QString error_message = json_obj[QStringLiteral("message")].toString();
+ QString error_reason = QStringLiteral("%1 (%2)").arg(error_message).arg(error_code);
Error(error_reason);
return;
}
- if (!json_obj.contains("toptracks")) {
- Error("JSON reply from server is missing toptracks.", json_obj);
+ if (!json_obj.contains(QStringLiteral("toptracks"))) {
+ Error(QStringLiteral("JSON reply from server is missing toptracks."), json_obj);
return;
}
- if (!json_obj["toptracks"].isObject()) {
- Error("Failed to parse JSON: toptracks is not an object!", json_obj);
+ if (!json_obj[QStringLiteral("toptracks")].isObject()) {
+ Error(QStringLiteral("Failed to parse JSON: toptracks is not an object!"), json_obj);
return;
}
- json_obj = json_obj["toptracks"].toObject();
+ json_obj = json_obj[QStringLiteral("toptracks")].toObject();
- if (!json_obj.contains("@attr")) {
- Error("JSON reply from server is missing @attr.", json_obj);
+ if (!json_obj.contains(QStringLiteral("@attr"))) {
+ Error(QStringLiteral("JSON reply from server is missing @attr."), json_obj);
return;
}
- if (!json_obj.contains("track")) {
- Error("JSON reply from server is missing track.", json_obj);
+ if (!json_obj.contains(QStringLiteral("track"))) {
+ Error(QStringLiteral("JSON reply from server is missing track."), json_obj);
return;
}
- if (!json_obj["@attr"].isObject()) {
- Error("Failed to parse JSON: @attr is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("@attr")].isObject()) {
+ Error(QStringLiteral("Failed to parse JSON: @attr is not an object."), json_obj);
return;
}
- if (!json_obj["track"].isArray()) {
- Error("Failed to parse JSON: track is not an object.", json_obj);
+ if (!json_obj[QStringLiteral("track")].isArray()) {
+ Error(QStringLiteral("Failed to parse JSON: track is not an object."), json_obj);
return;
}
- QJsonObject obj_attr = json_obj["@attr"].toObject();
+ QJsonObject obj_attr = json_obj[QStringLiteral("@attr")].toObject();
- if (!obj_attr.contains("page")) {
- Error("Failed to parse JSON: attr object is missing page.", json_obj);
+ if (!obj_attr.contains(QStringLiteral("page"))) {
+ Error(QStringLiteral("Failed to parse JSON: attr object is missing page."), json_obj);
return;
}
- if (!obj_attr.contains("totalPages")) {
- Error("Failed to parse JSON: attr object is missing page.", json_obj);
+ if (!obj_attr.contains(QStringLiteral("totalPages"))) {
+ Error(QStringLiteral("Failed to parse JSON: attr object is missing page."), json_obj);
return;
}
- if (!obj_attr.contains("total")) {
- Error("Failed to parse JSON: attr object is missing total.", json_obj);
+ if (!obj_attr.contains(QStringLiteral("total"))) {
+ Error(QStringLiteral("Failed to parse JSON: attr object is missing total."), json_obj);
return;
}
- int pages = obj_attr["totalPages"].toString().toInt();
- int total = obj_attr["total"].toString().toInt();
+ int pages = obj_attr[QStringLiteral("totalPages")].toString().toInt();
+ int total = obj_attr[QStringLiteral("total")].toString().toInt();
if (page == 0) {
playcount_total_ = total;
@@ -511,7 +511,7 @@ void LastFMImport::GetTopTracksRequestFinished(QNetworkReply *reply, const int p
}
else {
- QJsonArray array_track = json_obj["track"].toArray();
+ QJsonArray array_track = json_obj[QStringLiteral("track")].toArray();
for (QJsonArray::iterator it = array_track.begin(); it != array_track.end(); ++it) {
const QJsonValue &value_track = *it;
@@ -523,22 +523,22 @@ void LastFMImport::GetTopTracksRequestFinished(QNetworkReply *reply, const int p
}
QJsonObject obj_track = value_track.toObject();
- if (!obj_track.contains("artist") ||
- !obj_track.contains("name") ||
- !obj_track.contains("playcount") ||
- !obj_track["artist"].isObject()
+ if (!obj_track.contains(QStringLiteral("artist")) ||
+ !obj_track.contains(QStringLiteral("name")) ||
+ !obj_track.contains(QStringLiteral("playcount")) ||
+ !obj_track[QStringLiteral("artist")].isObject()
) {
continue;
}
- QJsonObject obj_artist = obj_track["artist"].toObject();
- if (!obj_artist.contains("name")) {
+ QJsonObject obj_artist = obj_track[QStringLiteral("artist")].toObject();
+ if (!obj_artist.contains(QStringLiteral("name"))) {
continue;
}
- QString artist = obj_artist["name"].toString();
- QString title = obj_track["name"].toString();
- int playcount = obj_track["playcount"].toString().toInt();
+ QString artist = obj_artist[QStringLiteral("name")].toString();
+ QString title = obj_track[QStringLiteral("name")].toString();
+ int playcount = obj_track[QStringLiteral("playcount")].toString().toInt();
if (playcount <= 0) continue;
diff --git a/src/scrobbler/listenbrainzscrobbler.cpp b/src/scrobbler/listenbrainzscrobbler.cpp
index c988c631..19110cfc 100644
--- a/src/scrobbler/listenbrainzscrobbler.cpp
+++ b/src/scrobbler/listenbrainzscrobbler.cpp
@@ -177,16 +177,16 @@ void ListenBrainzScrobbler::Authenticate() {
redirect_url.setPort(server_->url().port());
QUrlQuery url_query;
- url_query.addQueryItem("response_type", "code");
- url_query.addQueryItem("client_id", QByteArray::fromBase64(kClientIDB64));
- url_query.addQueryItem("redirect_uri", redirect_url.toString());
- url_query.addQueryItem("scope", "profile;email;tag;rating;collection;submit_isrc;submit_barcode");
+ url_query.addQueryItem(QStringLiteral("response_type"), QStringLiteral("code"));
+ url_query.addQueryItem(QStringLiteral("client_id"), QByteArray::fromBase64(kClientIDB64));
+ url_query.addQueryItem(QStringLiteral("redirect_uri"), redirect_url.toString());
+ url_query.addQueryItem(QStringLiteral("scope"), QStringLiteral("profile;email;tag;rating;collection;submit_isrc;submit_barcode"));
QUrl url(kOAuthAuthorizeUrl);
url.setQuery(url_query);
bool result = QDesktopServices::openUrl(url);
if (!result) {
- QMessageBox messagebox(QMessageBox::Information, tr("ListenBrainz Authentication"), tr("Please open this URL in your browser") + QString(":%1 ").arg(url.toString()), QMessageBox::Ok);
+ QMessageBox messagebox(QMessageBox::Information, tr("ListenBrainz Authentication"), tr("Please open this URL in your browser") + QStringLiteral(":%1 ").arg(url.toString()), QMessageBox::Ok);
messagebox.setTextFormat(Qt::RichText);
messagebox.exec();
}
@@ -201,11 +201,11 @@ void ListenBrainzScrobbler::RedirectArrived() {
QUrl url = server_->request_url();
if (url.isValid()) {
QUrlQuery url_query(url);
- if (url_query.hasQueryItem("error")) {
- AuthError(QUrlQuery(url).queryItemValue("error"));
+ if (url_query.hasQueryItem(QStringLiteral("error"))) {
+ AuthError(QUrlQuery(url).queryItemValue(QStringLiteral("error")));
}
- else if (url_query.hasQueryItem("code")) {
- RequestAccessToken(url, url_query.queryItemValue("code"));
+ else if (url_query.hasQueryItem(QStringLiteral("code"))) {
+ RequestAccessToken(url, url_query.queryItemValue(QStringLiteral("code")));
}
else {
AuthError(tr("Redirect missing token code!"));
@@ -234,23 +234,23 @@ ListenBrainzScrobbler::ReplyResult ListenBrainzScrobbler::GetJsonObject(QNetwork
reply_error_type = ReplyResult::Success;
}
else {
- error_description = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error_description = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
else {
- error_description = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error_description = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
// See if there is Json data containing "error" and "error_description" or "code" and "error" - then use that instead.
if (reply->error() == QNetworkReply::NoError || reply->error() >= 200) {
const QByteArray data = reply->readAll();
if (!data.isEmpty() && ExtractJsonObj(data, json_obj, error_description)) {
- if (json_obj.contains("error") && json_obj.contains("error_description")) {
- error_description = json_obj["error_description"].toString();
+ if (json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("error_description"))) {
+ error_description = json_obj[QStringLiteral("error_description")].toString();
reply_error_type = ReplyResult::APIError;
}
- else if (json_obj.contains("code") && json_obj.contains("error")) {
- error_description = QString("%1 (%2)").arg(json_obj["error"].toString()).arg(json_obj["code"].toInt());
+ else if (json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("error"))) {
+ error_description = QStringLiteral("%1 (%2)").arg(json_obj[QStringLiteral("error")].toString()).arg(json_obj[QStringLiteral("code")].toInt());
reply_error_type = ReplyResult::APIError;
}
}
@@ -315,16 +315,16 @@ void ListenBrainzScrobbler::AuthenticateReplyFinished(QNetworkReply *reply) {
return;
}
- if (!json_obj.contains("access_token") || !json_obj.contains("expires_in") || !json_obj.contains("token_type")) {
- AuthError("Json access_token, expires_in or token_type is missing.");
+ if (!json_obj.contains(QStringLiteral("access_token")) || !json_obj.contains(QStringLiteral("expires_in")) || !json_obj.contains(QStringLiteral("token_type"))) {
+ AuthError(QStringLiteral("Json access_token, expires_in or token_type is missing."));
return;
}
- access_token_ = json_obj["access_token"].toString();
- expires_in_ = json_obj["expires_in"].toInt();
- token_type_ = json_obj["token_type"].toString();
- if (json_obj.contains("refresh_token")) {
- refresh_token_ = json_obj["refresh_token"].toString();
+ access_token_ = json_obj[QStringLiteral("access_token")].toString();
+ expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
+ token_type_ = json_obj[QStringLiteral("token_type")].toString();
+ if (json_obj.contains(QStringLiteral("refresh_token"))) {
+ refresh_token_ = json_obj[QStringLiteral("refresh_token")].toString();
}
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
@@ -355,7 +355,7 @@ QNetworkReply *ListenBrainzScrobbler::CreateRequest(const QUrl &url, const QJson
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/json");
- req.setRawHeader("Authorization", QString("Token %1").arg(user_token_).toUtf8());
+ req.setRawHeader("Authorization", QStringLiteral("Token %1").arg(user_token_).toUtf8());
QNetworkReply *reply = network_->post(req, json_doc.toJson());
replies_ << reply;
@@ -369,32 +369,32 @@ QJsonObject ListenBrainzScrobbler::JsonTrackMetadata(const ScrobbleMetadata &met
QJsonObject object_track_metadata;
if (prefer_albumartist_) {
- object_track_metadata.insert("artist_name", QJsonValue::fromVariant(metadata.effective_albumartist()));
+ object_track_metadata.insert(QStringLiteral("artist_name"), QJsonValue::fromVariant(metadata.effective_albumartist()));
}
else {
- object_track_metadata.insert("artist_name", QJsonValue::fromVariant(metadata.artist));
+ object_track_metadata.insert(QStringLiteral("artist_name"), QJsonValue::fromVariant(metadata.artist));
}
if (!metadata.album.isEmpty()) {
- object_track_metadata.insert("release_name", QJsonValue::fromVariant(StripAlbum(metadata.album)));
+ object_track_metadata.insert(QStringLiteral("release_name"), QJsonValue::fromVariant(StripAlbum(metadata.album)));
}
- object_track_metadata.insert("track_name", QJsonValue::fromVariant(StripTitle(metadata.title)));
+ object_track_metadata.insert(QStringLiteral("track_name"), QJsonValue::fromVariant(StripTitle(metadata.title)));
QJsonObject object_additional_info;
if (metadata.length_nanosec > 0) {
- object_additional_info.insert("duration_ms", metadata.length_nanosec / kNsecPerMsec);
+ object_additional_info.insert(QStringLiteral("duration_ms"), metadata.length_nanosec / kNsecPerMsec);
}
if (metadata.track > 0) {
- object_additional_info.insert("tracknumber", metadata.track);
+ object_additional_info.insert(QStringLiteral("tracknumber"), metadata.track);
}
- object_additional_info.insert("media_player", QCoreApplication::applicationName());
- object_additional_info.insert("media_player_version", QCoreApplication::applicationVersion());
- object_additional_info.insert("submission_client", QCoreApplication::applicationName());
- object_additional_info.insert("submission_client_version", QCoreApplication::applicationVersion());
+ object_additional_info.insert(QStringLiteral("media_player"), QCoreApplication::applicationName());
+ object_additional_info.insert(QStringLiteral("media_player_version"), QCoreApplication::applicationVersion());
+ object_additional_info.insert(QStringLiteral("submission_client"), QCoreApplication::applicationName());
+ object_additional_info.insert(QStringLiteral("submission_client_version"), QCoreApplication::applicationVersion());
QStringList artist_mbids_list;
if (!metadata.musicbrainz_album_artist_id.isEmpty()) {
@@ -414,28 +414,28 @@ QJsonObject ListenBrainzScrobbler::JsonTrackMetadata(const ScrobbleMetadata &met
}
}
if (!artist_mbids_array.isEmpty()) {
- object_additional_info.insert("artist_mbids", artist_mbids_array);
+ object_additional_info.insert(QStringLiteral("artist_mbids"), artist_mbids_array);
}
}
if (!metadata.musicbrainz_album_id.isEmpty()) {
- object_additional_info.insert("release_mbid", metadata.musicbrainz_album_id);
+ object_additional_info.insert(QStringLiteral("release_mbid"), metadata.musicbrainz_album_id);
}
else if (!metadata.musicbrainz_original_album_id.isEmpty()) {
- object_additional_info.insert("release_mbid", metadata.musicbrainz_original_album_id);
+ object_additional_info.insert(QStringLiteral("release_mbid"), metadata.musicbrainz_original_album_id);
}
if (!metadata.musicbrainz_recording_id.isEmpty()) {
- object_additional_info.insert("recording_mbid", metadata.musicbrainz_recording_id);
+ object_additional_info.insert(QStringLiteral("recording_mbid"), metadata.musicbrainz_recording_id);
}
if (!metadata.musicbrainz_track_id.isEmpty()) {
- object_additional_info.insert("track_mbid", metadata.musicbrainz_track_id);
+ object_additional_info.insert(QStringLiteral("track_mbid"), metadata.musicbrainz_track_id);
}
if (!metadata.musicbrainz_work_id.isEmpty()) {
- object_additional_info.insert("work_mbids", QJsonArray() << metadata.musicbrainz_work_id);
+ object_additional_info.insert(QStringLiteral("work_mbids"), QJsonArray() << metadata.musicbrainz_work_id);
}
- object_track_metadata.insert("additional_info", object_additional_info);
+ object_track_metadata.insert(QStringLiteral("additional_info"), object_additional_info);
return object_track_metadata;
@@ -452,15 +452,15 @@ void ListenBrainzScrobbler::UpdateNowPlaying(const Song &song) {
if (!song.is_metadata_good() || !authenticated() || settings_->offline()) return;
QJsonObject object_listen;
- object_listen.insert("track_metadata", JsonTrackMetadata(ScrobbleMetadata(song)));
+ object_listen.insert(QStringLiteral("track_metadata"), JsonTrackMetadata(ScrobbleMetadata(song)));
QJsonArray array_payload;
array_payload.append(object_listen);
QJsonObject object;
- object.insert("listen_type", "playing_now");
- object.insert("payload", array_payload);
+ object.insert(QStringLiteral("listen_type"), "playing_now");
+ object.insert(QStringLiteral("payload"), array_payload);
QJsonDocument doc(object);
- QUrl url(QString("%1/1/submit-listens").arg(kApiUrl));
+ QUrl url(QStringLiteral("%1/1/submit-listens").arg(kApiUrl));
QNetworkReply *reply = CreateRequest(url, doc);
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply]() { UpdateNowPlayingRequestFinished(reply); });
@@ -480,14 +480,14 @@ void ListenBrainzScrobbler::UpdateNowPlayingRequestFinished(QNetworkReply *reply
return;
}
- if (!json_obj.contains("status")) {
- Error("Now playing request is missing status from server.");
+ if (!json_obj.contains(QStringLiteral("status"))) {
+ Error(QStringLiteral("Now playing request is missing status from server."));
return;
}
- QString status = json_obj["status"].toString();
- if (status.compare("ok", Qt::CaseInsensitive) != 0) {
- Error(QString("Received %1 status for now playing.").arg(status));
+ QString status = json_obj[QStringLiteral("status")].toString();
+ if (status.compare(QLatin1String("ok"), Qt::CaseInsensitive) != 0) {
+ Error(QStringLiteral("Received %1 status for now playing.").arg(status));
}
}
@@ -548,8 +548,8 @@ void ListenBrainzScrobbler::Submit() {
cache_item->sent = true;
cache_items_sent << cache_item;
QJsonObject object_listen;
- object_listen.insert("listened_at", QJsonValue::fromVariant(cache_item->timestamp));
- object_listen.insert("track_metadata", JsonTrackMetadata(cache_item->metadata));
+ object_listen.insert(QStringLiteral("listened_at"), QJsonValue::fromVariant(cache_item->timestamp));
+ object_listen.insert(QStringLiteral("track_metadata"), JsonTrackMetadata(cache_item->metadata));
array.append(QJsonValue::fromVariant(object_listen));
if (cache_items_sent.count() >= kScrobblesPerRequest || cache_item->error) break;
}
@@ -559,11 +559,11 @@ void ListenBrainzScrobbler::Submit() {
submitted_ = true;
QJsonObject object;
- object.insert("listen_type", "import");
- object.insert("payload", array);
+ object.insert(QStringLiteral("listen_type"), "import");
+ object.insert(QStringLiteral("payload"), array);
QJsonDocument doc(object);
- QUrl url(QString("%1/1/submit-listens").arg(kApiUrl));
+ QUrl url(QStringLiteral("%1/1/submit-listens").arg(kApiUrl));
QNetworkReply *reply = CreateRequest(url, doc);
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, cache_items_sent]() { ScrobbleRequestFinished(reply, cache_items_sent); });
@@ -582,8 +582,8 @@ void ListenBrainzScrobbler::ScrobbleRequestFinished(QNetworkReply *reply, Scrobb
QString error_message;
const ReplyResult reply_result = GetJsonObject(reply, json_obj, error_message);
if (reply_result == ReplyResult::Success) {
- if (json_obj.contains("status")) {
- QString status = json_obj["status"].toString();
+ if (json_obj.contains(QStringLiteral("status"))) {
+ QString status = json_obj[QStringLiteral("status")].toString();
qLog(Debug) << "ListenBrainz: Received scrobble status:" << status;
}
else {
@@ -630,10 +630,10 @@ void ListenBrainzScrobbler::Love() {
qLog(Debug) << "ListenBrainz: Sending love for song" << song_playing_.artist() << song_playing_.album() << song_playing_.title();
QJsonObject object;
- object.insert("recording_mbid", song_playing_.musicbrainz_recording_id());
- object.insert("score", 1);
+ object.insert(QStringLiteral("recording_mbid"), song_playing_.musicbrainz_recording_id());
+ object.insert(QStringLiteral("score"), 1);
- QUrl url(QString("%1/1/feedback/recording-feedback").arg(kApiUrl));
+ QUrl url(QStringLiteral("%1/1/feedback/recording-feedback").arg(kApiUrl));
QNetworkReply *reply = CreateRequest(url, QJsonDocument(object));
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply]() { LoveRequestFinished(reply); });
@@ -653,8 +653,8 @@ void ListenBrainzScrobbler::LoveRequestFinished(QNetworkReply *reply) {
return;
}
- if (json_obj.contains("status")) {
- qLog(Debug) << "ListenBrainz: Received recording-feedback status:" << json_obj["status"].toString();
+ if (json_obj.contains(QStringLiteral("status"))) {
+ qLog(Debug) << "ListenBrainz: Received recording-feedback status:" << json_obj[QStringLiteral("status")].toString();
}
}
diff --git a/src/scrobbler/scrobblercache.cpp b/src/scrobbler/scrobblercache.cpp
index 6b50ba8d..f66d64e9 100644
--- a/src/scrobbler/scrobblercache.cpp
+++ b/src/scrobbler/scrobblercache.cpp
@@ -99,11 +99,11 @@ void ScrobblerCache::ReadCache() {
qLog(Error) << "Scrobbler cache has empty JSON object.";
return;
}
- if (!json_obj.contains("tracks")) {
+ if (!json_obj.contains(QStringLiteral("tracks"))) {
qLog(Error) << "Scrobbler cache is missing JSON tracks.";
return;
}
- QJsonValue json_tracks = json_obj["tracks"];
+ QJsonValue json_tracks = json_obj[QStringLiteral("tracks")];
if (!json_tracks.isArray()) {
qLog(Error) << "Scrobbler cache JSON tracks is not an array.";
return;
@@ -121,13 +121,13 @@ void ScrobblerCache::ReadCache() {
}
QJsonObject json_obj_track = value.toObject();
if (
- !json_obj_track.contains("timestamp") ||
- !json_obj_track.contains("artist") ||
- !json_obj_track.contains("album") ||
- !json_obj_track.contains("title") ||
- !json_obj_track.contains("track") ||
- !json_obj_track.contains("albumartist") ||
- !json_obj_track.contains("length_nanosec")
+ !json_obj_track.contains(QStringLiteral("timestamp")) ||
+ !json_obj_track.contains(QStringLiteral("artist")) ||
+ !json_obj_track.contains(QStringLiteral("album")) ||
+ !json_obj_track.contains(QStringLiteral("title")) ||
+ !json_obj_track.contains(QStringLiteral("track")) ||
+ !json_obj_track.contains(QStringLiteral("albumartist")) ||
+ !json_obj_track.contains(QStringLiteral("length_nanosec"))
) {
qLog(Error) << "Scrobbler cache JSON tracks array value is missing data.";
qLog(Debug) << value;
@@ -135,52 +135,52 @@ void ScrobblerCache::ReadCache() {
}
ScrobbleMetadata metadata;
- quint64 timestamp = json_obj_track["timestamp"].toVariant().toULongLong();
- metadata.artist = json_obj_track["artist"].toString();
- metadata.album = json_obj_track["album"].toString();
- metadata.title = json_obj_track["title"].toString();
- metadata.track = json_obj_track["track"].toInt();
- metadata.albumartist = json_obj_track["albumartist"].toString();
- metadata.length_nanosec = json_obj_track["length_nanosec"].toVariant().toLongLong();
+ quint64 timestamp = json_obj_track[QStringLiteral("timestamp")].toVariant().toULongLong();
+ metadata.artist = json_obj_track[QStringLiteral("artist")].toString();
+ metadata.album = json_obj_track[QStringLiteral("album")].toString();
+ metadata.title = json_obj_track[QStringLiteral("title")].toString();
+ metadata.track = json_obj_track[QStringLiteral("track")].toInt();
+ metadata.albumartist = json_obj_track[QStringLiteral("albumartist")].toString();
+ metadata.length_nanosec = json_obj_track[QStringLiteral("length_nanosec")].toVariant().toLongLong();
if (timestamp == 0 || metadata.artist.isEmpty() || metadata.title.isEmpty() || metadata.length_nanosec <= 0) {
qLog(Error) << "Invalid cache data" << "for song" << metadata.title;
continue;
}
- if (json_obj_track.contains("grouping")) {
- metadata.grouping = json_obj_track["grouping"].toString();
+ if (json_obj_track.contains(QStringLiteral("grouping"))) {
+ metadata.grouping = json_obj_track[QStringLiteral("grouping")].toString();
}
- if (json_obj_track.contains("musicbrainz_album_artist_id")) {
- metadata.musicbrainz_album_artist_id = json_obj_track["musicbrainz_album_artist_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_album_artist_id"))) {
+ metadata.musicbrainz_album_artist_id = json_obj_track[QStringLiteral("musicbrainz_album_artist_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_artist_id")) {
- metadata.musicbrainz_artist_id = json_obj_track["musicbrainz_artist_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_artist_id"))) {
+ metadata.musicbrainz_artist_id = json_obj_track[QStringLiteral("musicbrainz_artist_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_original_artist_id")) {
- metadata.musicbrainz_original_artist_id = json_obj_track["musicbrainz_original_artist_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_original_artist_id"))) {
+ metadata.musicbrainz_original_artist_id = json_obj_track[QStringLiteral("musicbrainz_original_artist_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_album_id")) {
- metadata.musicbrainz_album_id = json_obj_track["musicbrainz_album_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_album_id"))) {
+ metadata.musicbrainz_album_id = json_obj_track[QStringLiteral("musicbrainz_album_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_original_album_id")) {
- metadata.musicbrainz_original_album_id = json_obj_track["musicbrainz_original_album_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_original_album_id"))) {
+ metadata.musicbrainz_original_album_id = json_obj_track[QStringLiteral("musicbrainz_original_album_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_recording_id")) {
- metadata.musicbrainz_recording_id = json_obj_track["musicbrainz_recording_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_recording_id"))) {
+ metadata.musicbrainz_recording_id = json_obj_track[QStringLiteral("musicbrainz_recording_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_track_id")) {
- metadata.musicbrainz_track_id = json_obj_track["musicbrainz_track_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_track_id"))) {
+ metadata.musicbrainz_track_id = json_obj_track[QStringLiteral("musicbrainz_track_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_disc_id")) {
- metadata.musicbrainz_disc_id = json_obj_track["musicbrainz_disc_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_disc_id"))) {
+ metadata.musicbrainz_disc_id = json_obj_track[QStringLiteral("musicbrainz_disc_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_release_group_id")) {
- metadata.musicbrainz_release_group_id = json_obj_track["musicbrainz_release_group_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_release_group_id"))) {
+ metadata.musicbrainz_release_group_id = json_obj_track[QStringLiteral("musicbrainz_release_group_id")].toString();
}
- if (json_obj_track.contains("musicbrainz_work_id")) {
- metadata.musicbrainz_work_id = json_obj_track["musicbrainz_work_id"].toString();
+ if (json_obj_track.contains(QStringLiteral("musicbrainz_work_id"))) {
+ metadata.musicbrainz_work_id = json_obj_track[QStringLiteral("musicbrainz_work_id")].toString();
}
ScrobblerCacheItemPtr cache_item = make_shared(metadata, timestamp);
@@ -205,29 +205,29 @@ void ScrobblerCache::WriteCache() {
QJsonArray array;
for (ScrobblerCacheItemPtr cache_item : scrobbler_cache_) {
QJsonObject object;
- object.insert("timestamp", QJsonValue::fromVariant(cache_item->timestamp));
- object.insert("artist", QJsonValue::fromVariant(cache_item->metadata.artist));
- object.insert("album", QJsonValue::fromVariant(cache_item->metadata.album));
- object.insert("title", QJsonValue::fromVariant(cache_item->metadata.title));
- object.insert("track", QJsonValue::fromVariant(cache_item->metadata.track));
- object.insert("albumartist", QJsonValue::fromVariant(cache_item->metadata.albumartist));
- object.insert("grouping", QJsonValue::fromVariant(cache_item->metadata.grouping));
- object.insert("musicbrainz_album_artist_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_album_artist_id));
- object.insert("musicbrainz_artist_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_artist_id));
- object.insert("musicbrainz_original_artist_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_original_artist_id));
- object.insert("musicbrainz_album_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_album_id));
- object.insert("musicbrainz_original_album_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_original_album_id));
- object.insert("musicbrainz_recording_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_recording_id));
- object.insert("musicbrainz_track_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_track_id));
- object.insert("musicbrainz_disc_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_disc_id));
- object.insert("musicbrainz_release_group_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_release_group_id));
- object.insert("musicbrainz_work_id", QJsonValue::fromVariant(cache_item->metadata.musicbrainz_work_id));
- object.insert("length_nanosec", QJsonValue::fromVariant(cache_item->metadata.length_nanosec));
+ object.insert(QStringLiteral("timestamp"), QJsonValue::fromVariant(cache_item->timestamp));
+ object.insert(QStringLiteral("artist"), QJsonValue::fromVariant(cache_item->metadata.artist));
+ object.insert(QStringLiteral("album"), QJsonValue::fromVariant(cache_item->metadata.album));
+ object.insert(QStringLiteral("title"), QJsonValue::fromVariant(cache_item->metadata.title));
+ object.insert(QStringLiteral("track"), QJsonValue::fromVariant(cache_item->metadata.track));
+ object.insert(QStringLiteral("albumartist"), QJsonValue::fromVariant(cache_item->metadata.albumartist));
+ object.insert(QStringLiteral("grouping"), QJsonValue::fromVariant(cache_item->metadata.grouping));
+ object.insert(QStringLiteral("musicbrainz_album_artist_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_album_artist_id));
+ object.insert(QStringLiteral("musicbrainz_artist_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_artist_id));
+ object.insert(QStringLiteral("musicbrainz_original_artist_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_original_artist_id));
+ object.insert(QStringLiteral("musicbrainz_album_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_album_id));
+ object.insert(QStringLiteral("musicbrainz_original_album_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_original_album_id));
+ object.insert(QStringLiteral("musicbrainz_recording_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_recording_id));
+ object.insert(QStringLiteral("musicbrainz_track_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_track_id));
+ object.insert(QStringLiteral("musicbrainz_disc_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_disc_id));
+ object.insert(QStringLiteral("musicbrainz_release_group_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_release_group_id));
+ object.insert(QStringLiteral("musicbrainz_work_id"), QJsonValue::fromVariant(cache_item->metadata.musicbrainz_work_id));
+ object.insert(QStringLiteral("length_nanosec"), QJsonValue::fromVariant(cache_item->metadata.length_nanosec));
array.append(QJsonValue::fromVariant(object));
}
QJsonObject object;
- object.insert("tracks", array);
+ object.insert(QStringLiteral("tracks"), array);
QJsonDocument doc(object);
QFile file(filename_);
diff --git a/src/scrobbler/scrobblingapi20.cpp b/src/scrobbler/scrobblingapi20.cpp
index 0688a1d2..ba959221 100644
--- a/src/scrobbler/scrobblingapi20.cpp
+++ b/src/scrobbler/scrobblingapi20.cpp
@@ -155,21 +155,21 @@ ScrobblingAPI20::ReplyResult ScrobblingAPI20::GetJsonObject(QNetworkReply *reply
reply_error_type = ReplyResult::Success;
}
else {
- error_description = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error_description = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
else {
- error_description = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error_description = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
// See if there is Json data containing "error" and "message" - then use that instead.
if (reply->error() == QNetworkReply::NoError || reply->error() >= 200) {
const QByteArray data = reply->readAll();
int error_code = 0;
- if (!data.isEmpty() && ExtractJsonObj(data, json_obj, error_description) && json_obj.contains("error") && json_obj.contains("message")) {
- error_code = json_obj["error"].toInt();
- QString error_message = json_obj["message"].toString();
- error_description = QString("%1 (%2)").arg(error_message).arg(error_code);
+ if (!data.isEmpty() && ExtractJsonObj(data, json_obj, error_description) && json_obj.contains(QStringLiteral("error")) && json_obj.contains(QStringLiteral("message"))) {
+ error_code = json_obj[QStringLiteral("error")].toInt();
+ QString error_message = json_obj[QStringLiteral("message")].toString();
+ error_description = QStringLiteral("%1 (%2)").arg(error_message).arg(error_code);
reply_error_type = ReplyResult::APIError;
}
const ScrobbleErrorCode lastfm_error_code = static_cast(error_code);
@@ -202,12 +202,12 @@ void ScrobblingAPI20::Authenticate() {
}
QUrlQuery url_query;
- url_query.addQueryItem("api_key", kApiKey);
- url_query.addQueryItem("cb", server_->url().toString());
+ url_query.addQueryItem(QStringLiteral("api_key"), kApiKey);
+ url_query.addQueryItem(QStringLiteral("cb"), server_->url().toString());
QUrl url(auth_url_);
url.setQuery(url_query);
- QMessageBox messagebox(QMessageBox::Information, tr("%1 Scrobbler Authentication").arg(name_), tr("Open URL in web browser?") + QString("%1 ").arg(url.toString()) + tr("Press \"Save\" to copy the URL to clipboard and manually open it in a web browser."), QMessageBox::Open|QMessageBox::Save|QMessageBox::Cancel);
+ QMessageBox messagebox(QMessageBox::Information, tr("%1 Scrobbler Authentication").arg(name_), tr("Open URL in web browser?") + QStringLiteral("%1 ").arg(url.toString()) + tr("Press \"Save\" to copy the URL to clipboard and manually open it in a web browser."), QMessageBox::Open|QMessageBox::Save|QMessageBox::Cancel);
messagebox.setTextFormat(Qt::RichText);
int result = messagebox.exec();
switch (result) {
@@ -216,7 +216,7 @@ void ScrobblingAPI20::Authenticate() {
if (openurl_result) {
break;
}
- QMessageBox messagebox_error(QMessageBox::Warning, tr("%1 Scrobbler Authentication").arg(name_), tr("Could not open URL. Please open this URL in your browser") + QString(":%1 ").arg(url.toString()), QMessageBox::Ok);
+ QMessageBox messagebox_error(QMessageBox::Warning, tr("%1 Scrobbler Authentication").arg(name_), tr("Could not open URL. Please open this URL in your browser") + QStringLiteral(":%1 ").arg(url.toString()), QMessageBox::Ok);
messagebox_error.setTextFormat(Qt::RichText);
messagebox_error.exec();
}
@@ -245,8 +245,8 @@ void ScrobblingAPI20::RedirectArrived() {
QUrl url = server_->request_url();
if (url.isValid()) {
QUrlQuery url_query(url);
- if (url_query.hasQueryItem("token")) {
- QString token = url_query.queryItemValue("token").toUtf8();
+ if (url_query.hasQueryItem(QStringLiteral("token"))) {
+ QString token = url_query.queryItemValue(QStringLiteral("token")).toUtf8();
RequestSession(token);
}
else {
@@ -271,9 +271,9 @@ void ScrobblingAPI20::RequestSession(const QString &token) {
QUrl session_url(api_url_);
QUrlQuery session_url_query;
- session_url_query.addQueryItem("api_key", kApiKey);
- session_url_query.addQueryItem("method", "auth.getSession");
- session_url_query.addQueryItem("token", token);
+ session_url_query.addQueryItem(QStringLiteral("api_key"), kApiKey);
+ session_url_query.addQueryItem(QStringLiteral("method"), QStringLiteral("auth.getSession"));
+ session_url_query.addQueryItem(QStringLiteral("token"), token);
QString data_to_sign;
for (const Param ¶m : session_url_query.queryItems()) {
data_to_sign += param.first + param.second;
@@ -281,8 +281,8 @@ void ScrobblingAPI20::RequestSession(const QString &token) {
data_to_sign += kSecret;
QByteArray const digest = QCryptographicHash::hash(data_to_sign.toUtf8(), QCryptographicHash::Md5);
QString signature = QString::fromLatin1(digest.toHex()).rightJustified(32, '0').toLower();
- session_url_query.addQueryItem("api_sig", signature);
- session_url_query.addQueryItem(QUrl::toPercentEncoding("format"), QUrl::toPercentEncoding("json"));
+ session_url_query.addQueryItem(QStringLiteral("api_sig"), signature);
+ session_url_query.addQueryItem(QUrl::toPercentEncoding(QStringLiteral("format")), QUrl::toPercentEncoding(QStringLiteral("json")));
session_url.setQuery(session_url_query);
QNetworkRequest req(session_url);
@@ -307,29 +307,29 @@ void ScrobblingAPI20::AuthenticateReplyFinished(QNetworkReply *reply) {
return;
}
- if (!json_obj.contains("session")) {
- AuthError("Json reply from server is missing session.");
+ if (!json_obj.contains(QStringLiteral("session"))) {
+ AuthError(QStringLiteral("Json reply from server is missing session."));
return;
}
- QJsonValue json_session = json_obj["session"];
+ QJsonValue json_session = json_obj[QStringLiteral("session")];
if (!json_session.isObject()) {
- AuthError("Json session is not an object.");
+ AuthError(QStringLiteral("Json session is not an object."));
return;
}
json_obj = json_session.toObject();
if (json_obj.isEmpty()) {
- AuthError("Json session object is empty.");
+ AuthError(QStringLiteral("Json session object is empty."));
return;
}
- if (!json_obj.contains("subscriber") || !json_obj.contains("name") || !json_obj.contains("key")) {
- AuthError("Json session object is missing values.");
+ if (!json_obj.contains(QStringLiteral("subscriber")) || !json_obj.contains(QStringLiteral("name")) || !json_obj.contains(QStringLiteral("key"))) {
+ AuthError(QStringLiteral("Json session object is missing values."));
return;
}
- subscriber_ = json_obj["subscriber"].toBool();
- username_ = json_obj["name"].toString();
- session_key_ = json_obj["key"].toString();
+ subscriber_ = json_obj[QStringLiteral("subscriber")].toBool();
+ username_ = json_obj[QStringLiteral("name")].toString();
+ session_key_ = json_obj[QStringLiteral("key")].toString();
QSettings s;
s.beginGroup(settings_group_);
@@ -366,8 +366,8 @@ QNetworkReply *ScrobblingAPI20::CreateRequest(const ParamList &request_params) {
QByteArray const digest = QCryptographicHash::hash(data_to_sign.toUtf8(), QCryptographicHash::Md5);
QString signature = QString::fromLatin1(digest.toHex()).rightJustified(32, '0').toLower();
- url_query.addQueryItem("api_sig", QUrl::toPercentEncoding(signature));
- url_query.addQueryItem("format", QUrl::toPercentEncoding("json"));
+ url_query.addQueryItem(QStringLiteral("api_sig"), QUrl::toPercentEncoding(signature));
+ url_query.addQueryItem(QStringLiteral("format"), QUrl::toPercentEncoding(QStringLiteral("json")));
QUrl url(api_url_);
QNetworkRequest req(url);
@@ -425,8 +425,8 @@ void ScrobblingAPI20::UpdateNowPlayingRequestFinished(QNetworkReply *reply) {
return;
}
- if (!json_obj.contains("nowplaying")) {
- Error("Json reply from server is missing nowplaying.", json_obj);
+ if (!json_obj.contains(QStringLiteral("nowplaying"))) {
+ Error(QStringLiteral("Json reply from server is missing nowplaying."), json_obj);
return;
}
@@ -499,18 +499,18 @@ void ScrobblingAPI20::Submit() {
continue;
}
cache_items_sent << cache_item;
- params << Param(QString("%1[%2]").arg("artist").arg(i), prefer_albumartist_ ? cache_item->metadata.effective_albumartist() : cache_item->metadata.artist);
- params << Param(QString("%1[%2]").arg("track").arg(i), StripTitle(cache_item->metadata.title));
- params << Param(QString("%1[%2]").arg("timestamp").arg(i), QString::number(cache_item->timestamp));
- params << Param(QString("%1[%2]").arg("duration").arg(i), QString::number(cache_item->metadata.length_nanosec / kNsecPerSec));
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("artist")).arg(i), prefer_albumartist_ ? cache_item->metadata.effective_albumartist() : cache_item->metadata.artist);
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("track")).arg(i), StripTitle(cache_item->metadata.title));
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("timestamp")).arg(i), QString::number(cache_item->timestamp));
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("duration")).arg(i), QString::number(cache_item->metadata.length_nanosec / kNsecPerSec));
if (!cache_item->metadata.album.isEmpty()) {
- params << Param(QString("%1[%2]").arg("album").arg(i), StripAlbum(cache_item->metadata.album));
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("album")).arg(i), StripAlbum(cache_item->metadata.album));
}
if (!prefer_albumartist_ && !cache_item->metadata.albumartist.isEmpty()) {
- params << Param(QString("%1[%2]").arg("albumArtist").arg(i), cache_item->metadata.albumartist);
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("albumArtist")).arg(i), cache_item->metadata.albumartist);
}
if (cache_item->metadata.track > 0) {
- params << Param(QString("%1[%2]").arg("trackNumber").arg(i), QString::number(cache_item->metadata.track));
+ params << Param(QStringLiteral("%1[%2]").arg(QStringLiteral("trackNumber")).arg(i), QString::number(cache_item->metadata.track));
}
++i;
if (cache_items_sent.count() >= kScrobblesPerRequest) break;
@@ -547,59 +547,59 @@ void ScrobblingAPI20::ScrobbleRequestFinished(QNetworkReply *reply, ScrobblerCac
cache_->Flush(cache_items);
submit_error_ = false;
- if (!json_obj.contains("scrobbles")) {
- Error("Json reply from server is missing scrobbles.", json_obj);
+ if (!json_obj.contains(QStringLiteral("scrobbles"))) {
+ Error(QStringLiteral("Json reply from server is missing scrobbles."), json_obj);
StartSubmit();
return;
}
- QJsonValue value_scrobbles = json_obj["scrobbles"];
+ QJsonValue value_scrobbles = json_obj[QStringLiteral("scrobbles")];
if (!value_scrobbles.isObject()) {
- Error("Json scrobbles is not an object.", json_obj);
+ Error(QStringLiteral("Json scrobbles is not an object."), json_obj);
StartSubmit();
return;
}
json_obj = value_scrobbles.toObject();
if (json_obj.isEmpty()) {
- Error("Json scrobbles object is empty.", value_scrobbles);
+ Error(QStringLiteral("Json scrobbles object is empty."), value_scrobbles);
StartSubmit();
return;
}
- if (!json_obj.contains("@attr") || !json_obj.contains("scrobble")) {
- Error("Json scrobbles object is missing values.", json_obj);
+ if (!json_obj.contains(QStringLiteral("@attr")) || !json_obj.contains(QStringLiteral("scrobble"))) {
+ Error(QStringLiteral("Json scrobbles object is missing values."), json_obj);
StartSubmit();
return;
}
- QJsonValue value_attr = json_obj["@attr"];
+ QJsonValue value_attr = json_obj[QStringLiteral("@attr")];
if (!value_attr.isObject()) {
- Error("Json scrobbles attr is not an object.", value_attr);
+ Error(QStringLiteral("Json scrobbles attr is not an object."), value_attr);
StartSubmit();
return;
}
QJsonObject obj_attr = value_attr.toObject();
if (obj_attr.isEmpty()) {
- Error("Json scrobbles attr is empty.", value_attr);
+ Error(QStringLiteral("Json scrobbles attr is empty."), value_attr);
StartSubmit();
return;
}
- if (!obj_attr.contains("accepted") || !obj_attr.contains("ignored")) {
- Error("Json scrobbles attr is missing values.", obj_attr);
+ if (!obj_attr.contains(QStringLiteral("accepted")) || !obj_attr.contains(QStringLiteral("ignored"))) {
+ Error(QStringLiteral("Json scrobbles attr is missing values."), obj_attr);
StartSubmit();
return;
}
- int accepted = obj_attr["accepted"].toInt();
- int ignored = obj_attr["ignored"].toInt();
+ int accepted = obj_attr[QStringLiteral("accepted")].toInt();
+ int ignored = obj_attr[QStringLiteral("ignored")].toInt();
qLog(Debug) << name_ << "Scrobbles accepted:" << accepted << "ignored:" << ignored;
QJsonArray array_scrobble;
- QJsonValue value_scrobble = json_obj["scrobble"];
+ QJsonValue value_scrobble = json_obj[QStringLiteral("scrobble")];
if (value_scrobble.isObject()) {
QJsonObject obj_scrobble = value_scrobble.toObject();
if (obj_scrobble.isEmpty()) {
- Error("Json scrobbles scrobble object is empty.", obj_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble object is empty."), obj_scrobble);
StartSubmit();
return;
}
@@ -608,13 +608,13 @@ void ScrobblingAPI20::ScrobbleRequestFinished(QNetworkReply *reply, ScrobblerCac
else if (value_scrobble.isArray()) {
array_scrobble = value_scrobble.toArray();
if (array_scrobble.isEmpty()) {
- Error("Json scrobbles scrobble array is empty.", value_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble array is empty."), value_scrobble);
StartSubmit();
return;
}
}
else {
- Error("Json scrobbles scrobble is not an object or array.", value_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble is not an object or array."), value_scrobble);
StartSubmit();
return;
}
@@ -622,7 +622,7 @@ void ScrobblingAPI20::ScrobbleRequestFinished(QNetworkReply *reply, ScrobblerCac
for (const QJsonValueRef value : array_scrobble) {
if (!value.isObject()) {
- Error("Json scrobbles scrobble array value is not an object.");
+ Error(QStringLiteral("Json scrobbles scrobble array value is not an object."));
continue;
}
QJsonObject json_track = value.toObject();
@@ -630,25 +630,25 @@ void ScrobblingAPI20::ScrobbleRequestFinished(QNetworkReply *reply, ScrobblerCac
continue;
}
- if (!json_track.contains("artist") ||
- !json_track.contains("album") ||
- !json_track.contains("albumArtist") ||
- !json_track.contains("track") ||
- !json_track.contains("timestamp") ||
- !json_track.contains("ignoredMessage")
+ if (!json_track.contains(QStringLiteral("artist")) ||
+ !json_track.contains(QStringLiteral("album")) ||
+ !json_track.contains(QStringLiteral("albumArtist")) ||
+ !json_track.contains(QStringLiteral("track")) ||
+ !json_track.contains(QStringLiteral("timestamp")) ||
+ !json_track.contains(QStringLiteral("ignoredMessage"))
) {
- Error("Json scrobbles scrobble is missing values.", json_track);
+ Error(QStringLiteral("Json scrobbles scrobble is missing values."), json_track);
continue;
}
- QJsonValue value_artist = json_track["artist"];
- QJsonValue value_album = json_track["album"];
- QJsonValue value_song = json_track["track"];
- QJsonValue value_ignoredmessage = json_track["ignoredMessage"];
+ QJsonValue value_artist = json_track[QStringLiteral("artist")];
+ QJsonValue value_album = json_track[QStringLiteral("album")];
+ QJsonValue value_song = json_track[QStringLiteral("track")];
+ QJsonValue value_ignoredmessage = json_track[QStringLiteral("ignoredMessage")];
//quint64 timestamp = json_track["timestamp"].toVariant().toULongLong();
if (!value_artist.isObject() || !value_album.isObject() || !value_song.isObject() || !value_ignoredmessage.isObject()) {
- Error("Json scrobbles scrobble values are not objects.", json_track);
+ Error(QStringLiteral("Json scrobbles scrobble values are not objects."), json_track);
continue;
}
@@ -658,22 +658,22 @@ void ScrobblingAPI20::ScrobbleRequestFinished(QNetworkReply *reply, ScrobblerCac
QJsonObject obj_ignoredmessage = value_ignoredmessage.toObject();
if (obj_artist.isEmpty() || obj_album.isEmpty() || obj_song.isEmpty() || obj_ignoredmessage.isEmpty()) {
- Error("Json scrobbles scrobble values objects are empty.", json_track);
+ Error(QStringLiteral("Json scrobbles scrobble values objects are empty."), json_track);
continue;
}
- if (!obj_artist.contains("#text") || !obj_album.contains("#text") || !obj_song.contains("#text")) {
+ if (!obj_artist.contains(QStringLiteral("#text")) || !obj_album.contains(QStringLiteral("#text")) || !obj_song.contains(QStringLiteral("#text"))) {
continue;
}
//QString artist = obj_artist["#text"].toString();
//QString album = obj_album["#text"].toString();
- QString song = obj_song["#text"].toString();
- bool ignoredmessage = obj_ignoredmessage["code"].toVariant().toBool();
- QString ignoredmessage_text = obj_ignoredmessage["#text"].toString();
+ QString song = obj_song[QStringLiteral("#text")].toString();
+ bool ignoredmessage = obj_ignoredmessage[QStringLiteral("code")].toVariant().toBool();
+ QString ignoredmessage_text = obj_ignoredmessage[QStringLiteral("#text")].toString();
if (ignoredmessage) {
- Error(QString("Scrobble for \"%1\" ignored: %2").arg(song, ignoredmessage_text));
+ Error(QStringLiteral("Scrobble for \"%1\" ignored: %2").arg(song, ignoredmessage_text));
}
else {
qLog(Debug) << name_ << "Scrobble for" << song << "accepted";
@@ -724,67 +724,67 @@ void ScrobblingAPI20::SingleScrobbleRequestFinished(QNetworkReply *reply, Scrobb
return;
}
- if (!json_obj.contains("scrobbles")) {
- Error("Json reply from server is missing scrobbles.", json_obj);
+ if (!json_obj.contains(QStringLiteral("scrobbles"))) {
+ Error(QStringLiteral("Json reply from server is missing scrobbles."), json_obj);
cache_item->sent = false;
return;
}
cache_->Remove(cache_item);
- QJsonValue value_scrobbles = json_obj["scrobbles"];
+ QJsonValue value_scrobbles = json_obj[QStringLiteral("scrobbles")];
if (!value_scrobbles.isObject()) {
- Error("Json scrobbles is not an object.", json_obj);
+ Error(QStringLiteral("Json scrobbles is not an object."), json_obj);
return;
}
json_obj = value_scrobbles.toObject();
if (json_obj.isEmpty()) {
- Error("Json scrobbles object is empty.", value_scrobbles);
+ Error(QStringLiteral("Json scrobbles object is empty."), value_scrobbles);
return;
}
- if (!json_obj.contains("@attr") || !json_obj.contains("scrobble")) {
- Error("Json scrobbles object is missing values.", json_obj);
+ if (!json_obj.contains(QStringLiteral("@attr")) || !json_obj.contains(QStringLiteral("scrobble"))) {
+ Error(QStringLiteral("Json scrobbles object is missing values."), json_obj);
return;
}
- QJsonValue value_attr = json_obj["@attr"];
+ QJsonValue value_attr = json_obj[QStringLiteral("@attr")];
if (!value_attr.isObject()) {
- Error("Json scrobbles attr is not an object.", value_attr);
+ Error(QStringLiteral("Json scrobbles attr is not an object."), value_attr);
return;
}
QJsonObject obj_attr = value_attr.toObject();
if (obj_attr.isEmpty()) {
- Error("Json scrobbles attr is empty.", value_attr);
+ Error(QStringLiteral("Json scrobbles attr is empty."), value_attr);
return;
}
- QJsonValue value_scrobble = json_obj["scrobble"];
+ QJsonValue value_scrobble = json_obj[QStringLiteral("scrobble")];
if (!value_scrobble.isObject()) {
- Error("Json scrobbles scrobble is not an object.", value_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble is not an object."), value_scrobble);
return;
}
QJsonObject json_obj_scrobble = value_scrobble.toObject();
if (json_obj_scrobble.isEmpty()) {
- Error("Json scrobbles scrobble is empty.", value_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble is empty."), value_scrobble);
return;
}
- if (!obj_attr.contains("accepted") || !obj_attr.contains("ignored")) {
- Error("Json scrobbles attr is missing values.", obj_attr);
+ if (!obj_attr.contains(QStringLiteral("accepted")) || !obj_attr.contains(QStringLiteral("ignored"))) {
+ Error(QStringLiteral("Json scrobbles attr is missing values."), obj_attr);
return;
}
- if (!json_obj_scrobble.contains("artist") || !json_obj_scrobble.contains("album") || !json_obj_scrobble.contains("albumArtist") || !json_obj_scrobble.contains("track") || !json_obj_scrobble.contains("timestamp")) {
- Error("Json scrobbles scrobble is missing values.", json_obj_scrobble);
+ if (!json_obj_scrobble.contains(QStringLiteral("artist")) || !json_obj_scrobble.contains(QStringLiteral("album")) || !json_obj_scrobble.contains(QStringLiteral("albumArtist")) || !json_obj_scrobble.contains(QStringLiteral("track")) || !json_obj_scrobble.contains(QStringLiteral("timestamp"))) {
+ Error(QStringLiteral("Json scrobbles scrobble is missing values."), json_obj_scrobble);
return;
}
- QJsonValue json_value_artist = json_obj_scrobble["artist"];
- QJsonValue json_value_album = json_obj_scrobble["album"];
- QJsonValue json_value_song = json_obj_scrobble["track"];
+ QJsonValue json_value_artist = json_obj_scrobble[QStringLiteral("artist")];
+ QJsonValue json_value_album = json_obj_scrobble[QStringLiteral("album")];
+ QJsonValue json_value_song = json_obj_scrobble[QStringLiteral("track")];
if (!json_value_artist.isObject() || !json_value_album.isObject() || !json_value_song.isObject()) {
- Error("Json scrobbles scrobble values are not objects.", json_obj_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble values are not objects."), json_obj_scrobble);
return;
}
@@ -793,25 +793,25 @@ void ScrobblingAPI20::SingleScrobbleRequestFinished(QNetworkReply *reply, Scrobb
QJsonObject json_obj_song = json_value_song.toObject();
if (json_obj_artist.isEmpty() || json_obj_album.isEmpty() || json_obj_song.isEmpty()) {
- Error("Json scrobbles scrobble values objects are empty.", json_obj_scrobble);
+ Error(QStringLiteral("Json scrobbles scrobble values objects are empty."), json_obj_scrobble);
return;
}
- if (!json_obj_artist.contains("#text") || !json_obj_album.contains("#text") || !json_obj_song.contains("#text")) {
- Error("Json scrobbles scrobble values objects are missing #text.", json_obj_artist);
+ if (!json_obj_artist.contains(QStringLiteral("#text")) || !json_obj_album.contains(QStringLiteral("#text")) || !json_obj_song.contains(QStringLiteral("#text"))) {
+ Error(QStringLiteral("Json scrobbles scrobble values objects are missing #text."), json_obj_artist);
return;
}
//QString artist = json_obj_artist["#text"].toString();
//QString album = json_obj_album["#text"].toString();
- QString song = json_obj_song["#text"].toString();
+ QString song = json_obj_song[QStringLiteral("#text")].toString();
- int accepted = obj_attr["accepted"].toVariant().toInt();
+ int accepted = obj_attr[QStringLiteral("accepted")].toVariant().toInt();
if (accepted == 1) {
qLog(Debug) << name_ << "Scrobble for" << song << "accepted";
}
else {
- Error(QString("Scrobble for \"%1\" not accepted").arg(song));
+ Error(QStringLiteral("Scrobble for \"%1\" not accepted").arg(song));
}
}
@@ -856,32 +856,32 @@ void ScrobblingAPI20::LoveRequestFinished(QNetworkReply *reply) {
return;
}
- if (json_obj.contains("error")) {
- QJsonValue json_value = json_obj["error"];
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue json_value = json_obj[QStringLiteral("error")];
if (!json_value.isObject()) {
- Error("Error is not on object.");
+ Error(QStringLiteral("Error is not on object."));
return;
}
QJsonObject json_obj_error = json_value.toObject();
if (json_obj_error.isEmpty()) {
- Error("Received empty json error object.", json_obj);
+ Error(QStringLiteral("Received empty json error object."), json_obj);
return;
}
- if (json_obj_error.contains("code") && json_obj_error.contains("#text")) {
- int code = json_obj_error["code"].toInt();
- QString text = json_obj_error["#text"].toString();
- QString error_reason = QString("%1 (%2)").arg(text).arg(code);
+ if (json_obj_error.contains(QStringLiteral("code")) && json_obj_error.contains(QStringLiteral("#text"))) {
+ int code = json_obj_error[QStringLiteral("code")].toInt();
+ QString text = json_obj_error[QStringLiteral("#text")].toString();
+ QString error_reason = QStringLiteral("%1 (%2)").arg(text).arg(code);
Error(error_reason);
return;
}
}
- if (json_obj.contains("lfm")) {
- QJsonValue json_value = json_obj["lfm"];
+ if (json_obj.contains(QStringLiteral("lfm"))) {
+ QJsonValue json_value = json_obj[QStringLiteral("lfm")];
if (json_value.isObject()) {
QJsonObject json_obj_lfm = json_value.toObject();
- if (json_obj_lfm.contains("status")) {
- QString status = json_obj_lfm["status"].toString();
+ if (json_obj_lfm.contains(QStringLiteral("status"))) {
+ QString status = json_obj_lfm[QStringLiteral("status")].toString();
qLog(Debug) << name_ << "Received love status:" << status;
return;
}
@@ -911,64 +911,64 @@ QString ScrobblingAPI20::ErrorString(const ScrobbleErrorCode error) {
switch (error) {
case ScrobbleErrorCode::NoError:
- return QString("This error does not exist.");
+ return QStringLiteral("This error does not exist.");
case ScrobbleErrorCode::InvalidService:
- return QString("Invalid service - This service does not exist.");
+ return QStringLiteral("Invalid service - This service does not exist.");
case ScrobbleErrorCode::InvalidMethod:
- return QString("Invalid Method - No method with that name in this package.");
+ return QStringLiteral("Invalid Method - No method with that name in this package.");
case ScrobbleErrorCode::AuthenticationFailed:
- return QString("Authentication Failed - You do not have permissions to access the service.");
+ return QStringLiteral("Authentication Failed - You do not have permissions to access the service.");
case ScrobbleErrorCode::InvalidFormat:
- return QString("Invalid format - This service doesn't exist in that format.");
+ return QStringLiteral("Invalid format - This service doesn't exist in that format.");
case ScrobbleErrorCode::InvalidParameters:
- return QString("Invalid parameters - Your request is missing a required parameter.");
+ return QStringLiteral("Invalid parameters - Your request is missing a required parameter.");
case ScrobbleErrorCode::InvalidResourceSpecified:
- return QString("Invalid resource specified");
+ return QStringLiteral("Invalid resource specified");
case ScrobbleErrorCode::OperationFailed:
- return QString("Operation failed - Most likely the backend service failed. Please try again.");
+ return QStringLiteral("Operation failed - Most likely the backend service failed. Please try again.");
case ScrobbleErrorCode::InvalidSessionKey:
- return QString("Invalid session key - Please re-authenticate.");
+ return QStringLiteral("Invalid session key - Please re-authenticate.");
case ScrobbleErrorCode::InvalidApiKey:
- return QString("Invalid API key - You must be granted a valid key by last.fm.");
+ return QStringLiteral("Invalid API key - You must be granted a valid key by last.fm.");
case ScrobbleErrorCode::ServiceOffline:
- return QString("Service Offline - This service is temporarily offline. Try again later.");
+ return QStringLiteral("Service Offline - This service is temporarily offline. Try again later.");
case ScrobbleErrorCode::SubscribersOnly:
- return QString("Subscribers Only - This station is only available to paid last.fm subscribers.");
+ return QStringLiteral("Subscribers Only - This station is only available to paid last.fm subscribers.");
case ScrobbleErrorCode::InvalidMethodSignature:
- return QString("Invalid method signature supplied.");
+ return QStringLiteral("Invalid method signature supplied.");
case ScrobbleErrorCode::UnauthorizedToken:
- return QString("Unauthorized Token - This token has not been authorized.");
+ return QStringLiteral("Unauthorized Token - This token has not been authorized.");
case ScrobbleErrorCode::ItemUnavailable:
- return QString("This item is not available for streaming.");
+ return QStringLiteral("This item is not available for streaming.");
case ScrobbleErrorCode::TemporarilyUnavailable:
- return QString("The service is temporarily unavailable, please try again.");
+ return QStringLiteral("The service is temporarily unavailable, please try again.");
case ScrobbleErrorCode::LoginRequired:
- return QString("Login: User requires to be logged in.");
+ return QStringLiteral("Login: User requires to be logged in.");
case ScrobbleErrorCode::TrialExpired:
- return QString("Trial Expired - This user has no free radio plays left. Subscription required.");
+ return QStringLiteral("Trial Expired - This user has no free radio plays left. Subscription required.");
case ScrobbleErrorCode::ErrorDoesNotExist:
- return QString("This error does not exist.");
+ return QStringLiteral("This error does not exist.");
case ScrobbleErrorCode::NotEnoughContent:
- return QString("Not Enough Content - There is not enough content to play this station.");
+ return QStringLiteral("Not Enough Content - There is not enough content to play this station.");
case ScrobbleErrorCode::NotEnoughMembers:
- return QString("Not Enough Members - This group does not have enough members for radio.");
+ return QStringLiteral("Not Enough Members - This group does not have enough members for radio.");
case ScrobbleErrorCode::NotEnoughFans:
- return QString("Not Enough Fans - This artist does not have enough fans for for radio.");
+ return QStringLiteral("Not Enough Fans - This artist does not have enough fans for for radio.");
case ScrobbleErrorCode::NotEnoughNeighbours:
- return QString("Not Enough Neighbours - There are not enough neighbours for radio.");
+ return QStringLiteral("Not Enough Neighbours - There are not enough neighbours for radio.");
case ScrobbleErrorCode::NoPeakRadio:
- return QString("No Peak Radio - This user is not allowed to listen to radio during peak usage.");
+ return QStringLiteral("No Peak Radio - This user is not allowed to listen to radio during peak usage.");
case ScrobbleErrorCode::RadioNotFound:
- return QString("Radio Not Found - Radio station not found.");
+ return QStringLiteral("Radio Not Found - Radio station not found.");
case ScrobbleErrorCode::APIKeySuspended:
- return QString("Suspended API key - Access for your account has been suspended, please contact Last.fm");
+ return QStringLiteral("Suspended API key - Access for your account has been suspended, please contact Last.fm");
case ScrobbleErrorCode::Deprecated:
- return QString("Deprecated - This type of request is no longer supported.");
+ return QStringLiteral("Deprecated - This type of request is no longer supported.");
case ScrobbleErrorCode::RateLimitExceeded:
- return QString("Rate limit exceeded - Your IP has made too many requests in a short period.");
+ return QStringLiteral("Rate limit exceeded - Your IP has made too many requests in a short period.");
}
- return QString("Unknown error.");
+ return QStringLiteral("Unknown error.");
}
diff --git a/src/settings/appearancesettingspage.cpp b/src/settings/appearancesettingspage.cpp
index 8bf39f3c..960c3af0 100644
--- a/src/settings/appearancesettingspage.cpp
+++ b/src/settings/appearancesettingspage.cpp
@@ -87,9 +87,9 @@ AppearanceSettingsPage::AppearanceSettingsPage(SettingsDialog *dialog, QWidget *
background_image_type_(BackgroundImageType::Default) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("view-media-visualization", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("view-media-visualization"), true, 0, 32));
- ui_->combobox_style->addItem("default", "default");
+ ui_->combobox_style->addItem(QStringLiteral("default"), "default");
for (const QString &style : QStyleFactory::keys()) {
ui_->combobox_style->addItem(style, style);
}
@@ -142,7 +142,7 @@ void AppearanceSettingsPage::Load() {
QSettings s;
s.beginGroup(kSettingsGroup);
- ComboBoxLoadFromSettings(s, ui_->combobox_style, kStyle, "default");
+ ComboBoxLoadFromSettings(s, ui_->combobox_style, kStyle, QStringLiteral("default"));
#if !defined(Q_OS_MACOS) && !defined(Q_OS_WIN)
ui_->checkbox_system_icons->setChecked(s.value(kSystemThemeIcons, false).toBool());
@@ -290,7 +290,7 @@ void AppearanceSettingsPage::Save() {
void AppearanceSettingsPage::UpdateColorSelectorColor(QWidget *color_selector, const QColor &color) {
- QString css = QString("background-color: rgb(%1, %2, %3); color: rgb(255, 255, 255); border: 1px dotted black;").arg(color.red()).arg(color.green()).arg(color.blue());
+ QString css = QStringLiteral("background-color: rgb(%1, %2, %3); color: rgb(255, 255, 255); border: 1px dotted black;").arg(color.red()).arg(color.green()).arg(color.blue());
color_selector->setStyleSheet(css);
}
@@ -305,11 +305,11 @@ void AppearanceSettingsPage::SelectBackgroundImage() {
}
void AppearanceSettingsPage::BlurLevelChanged(int value) {
- ui_->background_blur_radius_label->setText(QString("%1px").arg(value));
+ ui_->background_blur_radius_label->setText(QStringLiteral("%1px").arg(value));
}
void AppearanceSettingsPage::OpacityLevelChanged(int percent) {
- ui_->background_opacity_label->setText(QString("%1%").arg(percent));
+ ui_->background_opacity_label->setText(QStringLiteral("%1%").arg(percent));
}
void AppearanceSettingsPage::TabBarSystemColor(bool checked) {
diff --git a/src/settings/backendsettingspage.cpp b/src/settings/backendsettingspage.cpp
index ecafea01..3197fff7 100644
--- a/src/settings/backendsettingspage.cpp
+++ b/src/settings/backendsettingspage.cpp
@@ -69,12 +69,12 @@ BackendSettingsPage::BackendSettingsPage(SettingsDialog *dialog, QWidget *parent
enginetype_current_(EngineBase::Type::None) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("soundcard", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("soundcard"), true, 0, 32));
- ui_->label_replaygainpreamp->setMinimumWidth(QFontMetrics(ui_->label_replaygainpreamp->font()).horizontalAdvance("-WW.W dB"));
- ui_->label_replaygainfallbackgain->setMinimumWidth(QFontMetrics(ui_->label_replaygainfallbackgain->font()).horizontalAdvance("-WW.W dB"));
+ ui_->label_replaygainpreamp->setMinimumWidth(QFontMetrics(ui_->label_replaygainpreamp->font()).horizontalAdvance(QStringLiteral("-WW.W dB")));
+ ui_->label_replaygainfallbackgain->setMinimumWidth(QFontMetrics(ui_->label_replaygainfallbackgain->font()).horizontalAdvance(QStringLiteral("-WW.W dB")));
- ui_->label_ebur128_target_level->setMinimumWidth(QFontMetrics(ui_->label_ebur128_target_level->font()).horizontalAdvance("-WW.W LUFS"));
+ ui_->label_ebur128_target_level->setMinimumWidth(QFontMetrics(ui_->label_ebur128_target_level->font()).horizontalAdvance(QStringLiteral("-WW.W LUFS")));
QObject::connect(ui_->combobox_engine, QOverload::of(&QComboBox::currentIndexChanged), this, &BackendSettingsPage::EngineChanged);
QObject::connect(ui_->combobox_output, QOverload::of(&QComboBox::currentIndexChanged), this, &BackendSettingsPage::OutputChanged);
@@ -123,10 +123,10 @@ void BackendSettingsPage::Load() {
ui_->combobox_engine->clear();
#ifdef HAVE_GSTREAMER
- ui_->combobox_engine->addItem(IconLoader::Load("gstreamer"), EngineBase::Description(EngineBase::Type::GStreamer), static_cast(EngineBase::Type::GStreamer));
+ ui_->combobox_engine->addItem(IconLoader::Load(QStringLiteral("gstreamer")), EngineBase::Description(EngineBase::Type::GStreamer), static_cast(EngineBase::Type::GStreamer));
#endif
#ifdef HAVE_VLC
- ui_->combobox_engine->addItem(IconLoader::Load("vlc"), EngineBase::Description(EngineBase::Type::VLC), static_cast(EngineBase::Type::VLC));
+ ui_->combobox_engine->addItem(IconLoader::Load(QStringLiteral("vlc")), EngineBase::Description(EngineBase::Type::VLC), static_cast(EngineBase::Type::VLC));
#endif
enginetype_current_ = enginetype;
@@ -255,7 +255,7 @@ void BackendSettingsPage::Load() {
bool BackendSettingsPage::EngineInitialized() {
if (!engine() || engine()->type() == EngineBase::Type::None) {
- errordialog_.ShowMessage("Engine is not initialized! Please restart.");
+ errordialog_.ShowMessage(QStringLiteral("Engine is not initialized! Please restart."));
return false;
}
return true;
@@ -364,7 +364,7 @@ void BackendSettingsPage::Load_Device(const QString &output, const QVariant &dev
#ifdef Q_OS_WIN
if (engine()->type() != EngineBase::Type::GStreamer)
#endif
- ui_->combobox_device->addItem(IconLoader::Load("soundcard"), kOutputAutomaticallySelect, QVariant());
+ ui_->combobox_device->addItem(IconLoader::Load(QStringLiteral("soundcard")), kOutputAutomaticallySelect, QVariant());
for (DeviceFinder *f : dialog()->app()->device_finders()->ListFinders()) {
if (!f->outputs().contains(output)) continue;
@@ -376,7 +376,7 @@ void BackendSettingsPage::Load_Device(const QString &output, const QVariant &dev
}
if (engine()->CustomDeviceSupport(output)) {
- ui_->combobox_device->addItem(IconLoader::Load("soundcard"), kOutputCustom, QVariant());
+ ui_->combobox_device->addItem(IconLoader::Load(QStringLiteral("soundcard")), kOutputCustom, QVariant());
ui_->lineedit_device->setEnabled(true);
}
else {
@@ -389,15 +389,15 @@ void BackendSettingsPage::Load_Device(const QString &output, const QVariant &dev
ui_->radiobutton_alsa_hw->setEnabled(true);
ui_->radiobutton_alsa_plughw->setEnabled(true);
ui_->radiobutton_alsa_pcm->setEnabled(true);
- if (device.toString().contains(QRegularExpression("^hw:.*"))) {
+ if (device.toString().contains(QRegularExpression(QStringLiteral("^hw:.*")))) {
ui_->radiobutton_alsa_hw->setChecked(true);
SwitchALSADevices(ALSAPluginType::HW);
}
- else if (device.toString().contains(QRegularExpression("^plughw:.*"))) {
+ else if (device.toString().contains(QRegularExpression(QStringLiteral("^plughw:.*")))) {
ui_->radiobutton_alsa_plughw->setChecked(true);
SwitchALSADevices(ALSAPluginType::PlugHW);
}
- else if (device.toString().contains(QRegularExpression("^.*:.*CARD=.*")) || device.toString().contains(QRegularExpression("^.*:.*DEV=.*"))) {
+ else if (device.toString().contains(QRegularExpression(QStringLiteral("^.*:.*CARD=.*"))) || device.toString().contains(QRegularExpression(QStringLiteral("^.*:.*DEV=.*")))) {
ui_->radiobutton_alsa_pcm->setChecked(true);
SwitchALSADevices(ALSAPluginType::PCM);
}
@@ -553,7 +553,7 @@ void BackendSettingsPage::EngineChanged(const int index) {
if (engine()->type() == enginetype) return;
if (engine()->state() != EngineBase::State::Empty) {
- errordialog_.ShowMessage("Can't switch engine while playing!");
+ errordialog_.ShowMessage(QStringLiteral("Can't switch engine while playing!"));
ui_->combobox_engine->setCurrentIndex(ui_->combobox_engine->findData(static_cast(engine()->type())));
return;
}
@@ -614,15 +614,15 @@ void BackendSettingsPage::DeviceStringChanged() {
#ifdef HAVE_ALSA
if (engine()->ALSADeviceSupport(output.name)) {
- if (ui_->lineedit_device->text().contains(QRegularExpression("^hw:.*")) && !ui_->radiobutton_alsa_hw->isChecked()) {
+ if (ui_->lineedit_device->text().contains(QRegularExpression(QStringLiteral("^hw:.*"))) && !ui_->radiobutton_alsa_hw->isChecked()) {
ui_->radiobutton_alsa_hw->setChecked(true);
SwitchALSADevices(ALSAPluginType::HW);
}
- else if (ui_->lineedit_device->text().contains(QRegularExpression("^plughw:.*")) && !ui_->radiobutton_alsa_plughw->isChecked()) {
+ else if (ui_->lineedit_device->text().contains(QRegularExpression(QStringLiteral("^plughw:.*"))) && !ui_->radiobutton_alsa_plughw->isChecked()) {
ui_->radiobutton_alsa_plughw->setChecked(true);
SwitchALSADevices(ALSAPluginType::PlugHW);
}
- else if ((ui_->lineedit_device->text().contains(QRegularExpression("^.*:.*CARD=.*")) || ui_->lineedit_device->text().contains(QRegularExpression("^.*:.*DEV=.*"))) && !ui_->radiobutton_alsa_pcm->isChecked()) {
+ else if ((ui_->lineedit_device->text().contains(QRegularExpression(QStringLiteral("^.*:.*CARD=.*"))) || ui_->lineedit_device->text().contains(QRegularExpression(QStringLiteral("^.*:.*DEV=.*")))) && !ui_->radiobutton_alsa_pcm->isChecked()) {
ui_->radiobutton_alsa_pcm->setChecked(true);
SwitchALSADevices(ALSAPluginType::PCM);
}
@@ -703,11 +703,11 @@ void BackendSettingsPage::SwitchALSADevices(const ALSAPluginType alsa_plugin_typ
for (int i = 0; i < ui_->combobox_device->count(); ++i) {
QListView *view = qobject_cast(ui_->combobox_device->view());
if (!view) continue;
- if ((ui_->combobox_device->itemData(i).toString().contains(QRegularExpression("^hw:.*")) && alsa_plugin_type != ALSAPluginType::HW)
+ if ((ui_->combobox_device->itemData(i).toString().contains(QRegularExpression(QStringLiteral("^hw:.*"))) && alsa_plugin_type != ALSAPluginType::HW)
||
- (ui_->combobox_device->itemData(i).toString().contains(QRegularExpression("^plughw:.*")) && alsa_plugin_type != ALSAPluginType::PlugHW)
+ (ui_->combobox_device->itemData(i).toString().contains(QRegularExpression(QStringLiteral("^plughw:.*"))) && alsa_plugin_type != ALSAPluginType::PlugHW)
||
- ((ui_->combobox_device->itemData(i).toString().contains(QRegularExpression("^.*:.*CARD=.*")) || ui_->combobox_device->itemData(i).toString().contains(QRegularExpression("^.*:.*DEV=.*"))) && alsa_plugin_type != ALSAPluginType::PCM)
+ ((ui_->combobox_device->itemData(i).toString().contains(QRegularExpression(QStringLiteral("^.*:.*CARD=.*"))) || ui_->combobox_device->itemData(i).toString().contains(QRegularExpression(QStringLiteral("^.*:.*DEV=.*")))) && alsa_plugin_type != ALSAPluginType::PCM)
) {
view->setRowHidden(i, true);
}
@@ -734,11 +734,11 @@ void BackendSettingsPage::radiobutton_alsa_hw_clicked(const bool checked) {
QString device_new = ui_->lineedit_device->text();
- if (device_new.contains(QRegularExpression("^plughw:.*"))) {
- device_new = device_new.replace(QRegularExpression("^plughw:"), "hw:");
+ if (device_new.contains(QRegularExpression(QStringLiteral("^plughw:.*")))) {
+ device_new = device_new.replace(QRegularExpression(QStringLiteral("^plughw:")), QStringLiteral("hw:"));
}
- if (!device_new.contains(QRegularExpression("^hw:.*"))) {
+ if (!device_new.contains(QRegularExpression(QStringLiteral("^hw:.*")))) {
device_new.clear();
}
@@ -763,11 +763,11 @@ void BackendSettingsPage::radiobutton_alsa_plughw_clicked(const bool checked) {
QString device_new = ui_->lineedit_device->text();
- if (device_new.contains(QRegularExpression("^hw:.*"))) {
- device_new = device_new.replace(QRegularExpression("^hw:"), "plughw:");
+ if (device_new.contains(QRegularExpression(QStringLiteral("^hw:.*")))) {
+ device_new = device_new.replace(QRegularExpression(QStringLiteral("^hw:")), QStringLiteral("plughw:"));
}
- if (!device_new.contains(QRegularExpression("^plughw:.*"))) {
+ if (!device_new.contains(QRegularExpression(QStringLiteral("^plughw:.*")))) {
device_new.clear();
}
@@ -792,7 +792,7 @@ void BackendSettingsPage::radiobutton_alsa_pcm_clicked(const bool checked) {
QString device_new = ui_->lineedit_device->text();
- if (!device_new.contains(QRegularExpression("^.*:.*CARD=.*")) && !device_new.contains(QRegularExpression("^.*:.*DEV=.*"))) {
+ if (!device_new.contains(QRegularExpression(QStringLiteral("^.*:.*CARD=.*"))) && !device_new.contains(QRegularExpression(QStringLiteral("^.*:.*DEV=.*")))) {
device_new.clear();
}
@@ -849,7 +849,7 @@ void BackendSettingsPage::FadingOptionsChanged() {
EngineBase::OutputDetails output = ui_->combobox_output->itemData(ui_->combobox_output->currentIndex()).value();
if (engine()->type() == EngineBase::Type::GStreamer &&
- (!engine()->ALSADeviceSupport(output.name) || ui_->lineedit_device->text().isEmpty() || (!ui_->lineedit_device->text().contains(QRegularExpression("^hw:.*")) && !ui_->lineedit_device->text().contains(QRegularExpression("^plughw:.*"))))) {
+ (!engine()->ALSADeviceSupport(output.name) || ui_->lineedit_device->text().isEmpty() || (!ui_->lineedit_device->text().contains(QRegularExpression(QStringLiteral("^hw:.*"))) && !ui_->lineedit_device->text().contains(QRegularExpression(QStringLiteral("^plughw:.*")))))) {
ui_->groupbox_fading->setEnabled(true);
}
else {
diff --git a/src/settings/behavioursettingspage.cpp b/src/settings/behavioursettingspage.cpp
index 3d1407a9..8256adcb 100644
--- a/src/settings/behavioursettingspage.cpp
+++ b/src/settings/behavioursettingspage.cpp
@@ -61,7 +61,7 @@ BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog *dialog, QWidget *pa
ui_(new Ui_BehaviourSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("strawberry", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("strawberry"), true, 0, 32));
QObject::connect(ui_->checkbox_showtrayicon, &QCheckBox::toggled, this, &BehaviourSettingsPage::ShowTrayIconToggled);
diff --git a/src/settings/collectionsettingspage.cpp b/src/settings/collectionsettingspage.cpp
index 2bcc21f6..24bfca50 100644
--- a/src/settings/collectionsettingspage.cpp
+++ b/src/settings/collectionsettingspage.cpp
@@ -72,15 +72,15 @@ CollectionSettingsPage::CollectionSettingsPage(SettingsDialog *dialog, QWidget *
ui_->list->setItemDelegate(new NativeSeparatorsDelegate(this));
// Icons
- setWindowIcon(IconLoader::Load("library-music", true, 0, 32));
- ui_->add->setIcon(IconLoader::Load("document-open-folder"));
+ setWindowIcon(IconLoader::Load(QStringLiteral("library-music"), true, 0, 32));
+ ui_->add->setIcon(IconLoader::Load(QStringLiteral("document-open-folder")));
- ui_->combobox_cache_size->addItem("KB", static_cast(CacheSizeUnit::KB));
- ui_->combobox_cache_size->addItem("MB", static_cast(CacheSizeUnit::MB));
+ ui_->combobox_cache_size->addItem(QStringLiteral("KB"), static_cast(CacheSizeUnit::KB));
+ ui_->combobox_cache_size->addItem(QStringLiteral("MB"), static_cast(CacheSizeUnit::MB));
- ui_->combobox_disk_cache_size->addItem("KB", static_cast(CacheSizeUnit::KB));
- ui_->combobox_disk_cache_size->addItem("MB", static_cast(CacheSizeUnit::MB));
- ui_->combobox_disk_cache_size->addItem("GB", static_cast(CacheSizeUnit::GB));
+ ui_->combobox_disk_cache_size->addItem(QStringLiteral("KB"), static_cast(CacheSizeUnit::KB));
+ ui_->combobox_disk_cache_size->addItem(QStringLiteral("MB"), static_cast(CacheSizeUnit::MB));
+ ui_->combobox_disk_cache_size->addItem(QStringLiteral("GB"), static_cast(CacheSizeUnit::GB));
QObject::connect(ui_->add, &QPushButton::clicked, this, &CollectionSettingsPage::Add);
QObject::connect(ui_->remove, &QPushButton::clicked, this, &CollectionSettingsPage::Remove);
@@ -187,8 +187,8 @@ void CollectionSettingsPage::Load() {
ui_->mark_songs_unavailable->setChecked(ui_->song_tracking->isChecked() ? true : s.value("mark_songs_unavailable", true).toBool());
ui_->expire_unavailable_songs_days->setValue(s.value("expire_unavailable_songs", 60).toInt());
- QStringList filters = s.value("cover_art_patterns", QStringList() << "front" << "cover").toStringList();
- ui_->cover_art_patterns->setText(filters.join(","));
+ QStringList filters = s.value("cover_art_patterns", QStringList() << QStringLiteral("front") << QStringLiteral("cover")).toStringList();
+ ui_->cover_art_patterns->setText(filters.join(QStringLiteral(",")));
ui_->spinbox_cache_size->setValue(s.value(kSettingsCacheSize, kSettingsCacheSizeDefault).toInt());
ui_->combobox_cache_size->setCurrentIndex(ui_->combobox_cache_size->findData(s.value(kSettingsCacheSizeUnit, static_cast(CacheSizeUnit::MB)).toInt()));
@@ -212,7 +212,7 @@ void CollectionSettingsPage::Load() {
DiskCacheEnable(ui_->checkbox_disk_cache->checkState());
- ui_->disk_cache_in_use->setText((dialog()->app()->collection_model()->icon_cache_disk_size() == 0 ? "empty" : Utilities::PrettySize(dialog()->app()->collection_model()->icon_cache_disk_size())));
+ ui_->disk_cache_in_use->setText((dialog()->app()->collection_model()->icon_cache_disk_size() == 0 ? QStringLiteral("empty") : Utilities::PrettySize(dialog()->app()->collection_model()->icon_cache_disk_size())));
Init(ui_->layout_collectionsettingspage->parentWidget());
if (!QSettings().childGroups().contains(kSettingsGroup)) set_changed();
@@ -264,7 +264,7 @@ void CollectionSettingsPage::Save() {
void CollectionSettingsPage::ClearPixmapDiskCache() {
- ui_->disk_cache_in_use->setText("empty");
+ ui_->disk_cache_in_use->setText(QStringLiteral("empty"));
}
diff --git a/src/settings/contextsettingspage.cpp b/src/settings/contextsettingspage.cpp
index e02d6c5e..35156eca 100644
--- a/src/settings/contextsettingspage.cpp
+++ b/src/settings/contextsettingspage.cpp
@@ -63,7 +63,7 @@ ContextSettingsPage::ContextSettingsPage(SettingsDialog *dialog, QWidget *parent
ui_(new Ui_ContextSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("view-choose", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("view-choose"), true, 0, 32));
checkboxes_[static_cast(ContextSettingsOrder::ALBUM)] = ui_->checkbox_album;
checkboxes_[static_cast(ContextSettingsOrder::TECHNICAL_DATA)] = ui_->checkbox_technical_data;
@@ -103,15 +103,15 @@ ContextSettingsPage::ContextSettingsPage(SettingsDialog *dialog, QWidget *parent
QObject::connect(ui_->context_exp_chooser2, &QToolButton::triggered, this, &ContextSettingsPage::InsertVariableSecondLine);
// Icons
- ui_->context_exp_chooser1->setIcon(IconLoader::Load("list-add"));
- ui_->context_exp_chooser2->setIcon(IconLoader::Load("list-add"));
+ ui_->context_exp_chooser1->setIcon(IconLoader::Load(QStringLiteral("list-add")));
+ ui_->context_exp_chooser2->setIcon(IconLoader::Load(QStringLiteral("list-add")));
QObject::connect(ui_->font_headline, &QFontComboBox::currentFontChanged, this, &ContextSettingsPage::HeadlineFontChanged);
QObject::connect(ui_->font_size_headline, QOverload::of(&QDoubleSpinBox::valueChanged), this, &ContextSettingsPage::HeadlineFontChanged);
QObject::connect(ui_->font_normal, &QFontComboBox::currentFontChanged, this, &ContextSettingsPage::NormalFontChanged);
QObject::connect(ui_->font_size_normal, QOverload::of(&QDoubleSpinBox::valueChanged), this, &ContextSettingsPage::NormalFontChanged);
- QFile file(":/text/ghosts.txt");
+ QFile file(QStringLiteral(":/text/ghosts.txt"));
if (file.open(QIODevice::ReadOnly)) {
QString text = file.readAll();
ui_->preview_headline->setText(text);
diff --git a/src/settings/coverssettingspage.cpp b/src/settings/coverssettingspage.cpp
index 4afc9111..ab4442c9 100644
--- a/src/settings/coverssettingspage.cpp
+++ b/src/settings/coverssettingspage.cpp
@@ -61,7 +61,7 @@ CoversSettingsPage::CoversSettingsPage(SettingsDialog *dialog, QWidget *parent)
types_selected_(false) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("cdcase", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("cdcase"), true, 0, 32));
QObject::connect(ui_->providers_up, &QPushButton::clicked, this, &CoversSettingsPage::ProvidersMoveUp);
QObject::connect(ui_->providers_down, &QPushButton::clicked, this, &CoversSettingsPage::ProvidersMoveDown);
@@ -110,10 +110,10 @@ void CoversSettingsPage::Load() {
QSettings s;
s.beginGroup(kSettingsGroup);
- const QStringList all_types = QStringList() << "art_unset"
- << "art_manual"
- << "art_automatic"
- << "art_embedded";
+ const QStringList all_types = QStringList() << QStringLiteral("art_unset")
+ << QStringLiteral("art_manual")
+ << QStringLiteral("art_automatic")
+ << QStringLiteral("art_embedded");
const QStringList types = s.value(kTypes, all_types).toStringList();
@@ -369,7 +369,7 @@ void CoversSettingsPage::AuthenticationFailure(const QStringList &errors) {
if (!isVisible() || !ui_->providers->currentItem() || ui_->providers->currentItem()->text() != provider->name()) return;
- QMessageBox::warning(this, tr("Authentication failed"), errors.join("\n"));
+ QMessageBox::warning(this, tr("Authentication failed"), errors.join(QStringLiteral("\n")));
ui_->login_state->SetLoggedIn(LoginStateWidget::State::LoggedOut);
ui_->button_authenticate->setEnabled(true);
diff --git a/src/settings/globalshortcutssettingspage.cpp b/src/settings/globalshortcutssettingspage.cpp
index dbc38a36..e660b575 100644
--- a/src/settings/globalshortcutssettingspage.cpp
+++ b/src/settings/globalshortcutssettingspage.cpp
@@ -59,7 +59,7 @@ GlobalShortcutsSettingsPage::GlobalShortcutsSettingsPage(SettingsDialog *dialog,
ui_->setupUi(this);
ui_->shortcut_options->setEnabled(false);
ui_->list->header()->setSectionResizeMode(QHeaderView::ResizeToContents);
- setWindowIcon(IconLoader::Load("keyboard", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("keyboard"), true, 0, 32));
QObject::connect(ui_->list, &QTreeWidget::currentItemChanged, this, &GlobalShortcutsSettingsPage::ItemClicked);
QObject::connect(ui_->radio_none, &QRadioButton::clicked, this, &GlobalShortcutsSettingsPage::NoneClicked);
@@ -257,9 +257,9 @@ void GlobalShortcutsSettingsPage::ShortcutOptionsChanged() {
void GlobalShortcutsSettingsPage::OpenGnomeKeybindingProperties() {
- if (!QProcess::startDetached("gnome-keybinding-properties", QStringList())) {
- if (!QProcess::startDetached("gnome-control-center", QStringList() << "keyboard")) {
- QMessageBox::warning(this, "Error", tr("The \"%1\" command could not be started.").arg("gnome-keybinding-properties"));
+ if (!QProcess::startDetached(QStringLiteral("gnome-keybinding-properties"), QStringList())) {
+ if (!QProcess::startDetached(QStringLiteral("gnome-control-center"), QStringList() << QStringLiteral("keyboard"))) {
+ QMessageBox::warning(this, QStringLiteral("Error"), tr("The \"%1\" command could not be started.").arg(QStringLiteral("gnome-keybinding-properties")));
}
}
@@ -267,9 +267,9 @@ void GlobalShortcutsSettingsPage::OpenGnomeKeybindingProperties() {
void GlobalShortcutsSettingsPage::OpenMateKeybindingProperties() {
- if (!QProcess::startDetached("mate-keybinding-properties", QStringList())) {
- if (!QProcess::startDetached("mate-control-center", QStringList() << "keyboard")) {
- QMessageBox::warning(this, "Error", tr("The \"%1\" command could not be started.").arg("mate-keybinding-properties"));
+ if (!QProcess::startDetached(QStringLiteral("mate-keybinding-properties"), QStringList())) {
+ if (!QProcess::startDetached(QStringLiteral("mate-control-center"), QStringList() << QStringLiteral("keyboard"))) {
+ QMessageBox::warning(this, QStringLiteral("Error"), tr("The \"%1\" command could not be started.").arg(QStringLiteral("mate-keybinding-properties")));
}
}
diff --git a/src/settings/lyricssettingspage.cpp b/src/settings/lyricssettingspage.cpp
index 9c264984..78dfc2a2 100644
--- a/src/settings/lyricssettingspage.cpp
+++ b/src/settings/lyricssettingspage.cpp
@@ -51,7 +51,7 @@ LyricsSettingsPage::LyricsSettingsPage(SettingsDialog *dialog, QWidget *parent)
provider_selected_(false) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("view-media-lyrics", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("view-media-lyrics"), true, 0, 32));
QObject::connect(ui_->providers_up, &QPushButton::clicked, this, &LyricsSettingsPage::ProvidersMoveUp);
QObject::connect(ui_->providers_down, &QPushButton::clicked, this, &LyricsSettingsPage::ProvidersMoveDown);
@@ -126,11 +126,11 @@ void LyricsSettingsPage::CurrentItemChanged(QListWidgetItem *item_current, QList
ui_->button_authenticate->setEnabled(true);
ui_->button_authenticate->show();
ui_->login_state->show();
- ui_->label_auth_info->setText(QString("%1 needs authentication.").arg(provider->name()));
+ ui_->label_auth_info->setText(QStringLiteral("%1 needs authentication.").arg(provider->name()));
}
else {
DisableAuthentication();
- ui_->label_auth_info->setText(QString("%1 does not need authentication.").arg(provider->name()));
+ ui_->label_auth_info->setText(QStringLiteral("%1 does not need authentication.").arg(provider->name()));
}
provider_selected_ = true;
}
@@ -251,7 +251,7 @@ void LyricsSettingsPage::AuthenticationFailure(const QStringList &errors) {
if (!isVisible() || !ui_->providers->currentItem() || ui_->providers->currentItem()->text() != provider->name()) return;
- QMessageBox::warning(this, tr("Authentication failed"), errors.join("\n"));
+ QMessageBox::warning(this, tr("Authentication failed"), errors.join(QStringLiteral("\n")));
ui_->login_state->SetLoggedIn(LoginStateWidget::State::LoggedOut);
ui_->button_authenticate->setEnabled(true);
diff --git a/src/settings/moodbarsettingspage.cpp b/src/settings/moodbarsettingspage.cpp
index ace1edcf..ad7f275e 100644
--- a/src/settings/moodbarsettingspage.cpp
+++ b/src/settings/moodbarsettingspage.cpp
@@ -54,7 +54,7 @@ MoodbarSettingsPage::MoodbarSettingsPage(SettingsDialog *dialog, QWidget *parent
initialized_(false) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("moodbar", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("moodbar"), true, 0, 32));
MoodbarSettingsPage::Load();
@@ -102,7 +102,7 @@ void MoodbarSettingsPage::InitMoodbarPreviews() {
ui_->moodbar_style->setIconSize(preview_size);
// Read the sample data
- QFile file(":/mood/sample.mood");
+ QFile file(QStringLiteral(":/mood/sample.mood"));
if (!file.open(QIODevice::ReadOnly)) {
qLog(Warning) << "Failed to open moodbar sample file" << file.fileName() << "for reading:" << file.errorString();
return;
diff --git a/src/settings/networkproxysettingspage.cpp b/src/settings/networkproxysettingspage.cpp
index 25db28c9..b0e32b79 100644
--- a/src/settings/networkproxysettingspage.cpp
+++ b/src/settings/networkproxysettingspage.cpp
@@ -45,7 +45,7 @@ NetworkProxySettingsPage::NetworkProxySettingsPage(SettingsDialog *dialog, QWidg
ui_(new Ui_NetworkProxySettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("applications-internet", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("applications-internet"), true, 0, 32));
}
diff --git a/src/settings/notificationssettingspage.cpp b/src/settings/notificationssettingspage.cpp
index af8c048e..6762f617 100644
--- a/src/settings/notificationssettingspage.cpp
+++ b/src/settings/notificationssettingspage.cpp
@@ -62,9 +62,9 @@ NotificationsSettingsPage::NotificationsSettingsPage(SettingsDialog *dialog, QWi
pretty_popup_(new OSDPretty(OSDPretty::Mode::Draggable)) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("help-hint", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("help-hint"), true, 0, 32));
- pretty_popup_->SetMessage(tr("OSD Preview"), tr("Drag to reposition"), QImage(":/pictures/cdcase.png"));
+ pretty_popup_->SetMessage(tr("OSD Preview"), tr("Drag to reposition"), QImage(QStringLiteral(":/pictures/cdcase.png")));
ui_->notifications_bg_preset->setItemData(0, QColor(OSDPretty::kPresetBlue), Qt::DecorationRole);
ui_->notifications_bg_preset->setItemData(1, QColor(OSDPretty::kPresetRed), Qt::DecorationRole);
@@ -129,8 +129,8 @@ NotificationsSettingsPage::NotificationsSettingsPage(SettingsDialog *dialog, QWi
QObject::connect(ui_->notifications_preview, &QPushButton::clicked, this, &NotificationsSettingsPage::PrepareNotificationPreview);
// Icons
- ui_->notifications_exp_chooser1->setIcon(IconLoader::Load("list-add"));
- ui_->notifications_exp_chooser2->setIcon(IconLoader::Load("list-add"));
+ ui_->notifications_exp_chooser1->setIcon(IconLoader::Load(QStringLiteral("list-add")));
+ ui_->notifications_exp_chooser2->setIcon(IconLoader::Load(QStringLiteral("list-add")));
QObject::connect(pretty_popup_, &OSDPretty::PositionChanged, this, &NotificationsSettingsPage::PrettyOSDChanged);
diff --git a/src/settings/playlistsettingspage.cpp b/src/settings/playlistsettingspage.cpp
index 81711dda..df8389d4 100644
--- a/src/settings/playlistsettingspage.cpp
+++ b/src/settings/playlistsettingspage.cpp
@@ -41,7 +41,7 @@ PlaylistSettingsPage::PlaylistSettingsPage(SettingsDialog *dialog, QWidget *pare
ui_(new Ui_PlaylistSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("document-new", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("document-new"), true, 0, 32));
}
diff --git a/src/settings/qobuzsettingspage.cpp b/src/settings/qobuzsettingspage.cpp
index 6cf4add7..060c7235 100644
--- a/src/settings/qobuzsettingspage.cpp
+++ b/src/settings/qobuzsettingspage.cpp
@@ -48,7 +48,7 @@ QobuzSettingsPage::QobuzSettingsPage(SettingsDialog *dialog, QWidget *parent)
service_(dialog->app()->internet_services()->Service()) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("qobuz", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("qobuz"), true, 0, 32));
QObject::connect(ui_->button_login, &QPushButton::clicked, this, &QobuzSettingsPage::LoginClicked);
QObject::connect(ui_->login_state, &LoginStateWidget::LogoutClicked, this, &QobuzSettingsPage::LogoutClicked);
@@ -60,10 +60,10 @@ QobuzSettingsPage::QobuzSettingsPage(SettingsDialog *dialog, QWidget *parent)
dialog->installEventFilter(this);
- ui_->format->addItem("MP3 320", 5);
- ui_->format->addItem("FLAC Lossless", 6);
- ui_->format->addItem("FLAC Hi-Res <= 96kHz", 7);
- ui_->format->addItem("FLAC Hi-Res > 96kHz", 27);
+ ui_->format->addItem(QStringLiteral("MP3 320"), 5);
+ ui_->format->addItem(QStringLiteral("FLAC Lossless"), 6);
+ ui_->format->addItem(QStringLiteral("FLAC Hi-Res <= 96kHz"), 7);
+ ui_->format->addItem(QStringLiteral("FLAC Hi-Res > 96kHz"), 27);
}
@@ -84,7 +84,7 @@ void QobuzSettingsPage::Load() {
if (password.isEmpty()) ui_->password->clear();
else ui_->password->setText(QString::fromUtf8(QByteArray::fromBase64(password)));
- ComboBoxLoadFromSettings(s, ui_->format, "format", 27);
+ ComboBoxLoadFromSettings(s, ui_->format, QStringLiteral("format"), 27);
ui_->searchdelay->setValue(s.value("searchdelay", 1500).toInt());
ui_->artistssearchlimit->setValue(s.value("artistssearchlimit", 4).toInt());
ui_->albumssearchlimit->setValue(s.value("albumssearchlimit", 10).toInt());
diff --git a/src/settings/scrobblersettingspage.cpp b/src/settings/scrobblersettingspage.cpp
index 3a4074eb..af15d8ac 100644
--- a/src/settings/scrobblersettingspage.cpp
+++ b/src/settings/scrobblersettingspage.cpp
@@ -55,7 +55,7 @@ ScrobblerSettingsPage::ScrobblerSettingsPage(SettingsDialog *dialog, QWidget *pa
listenbrainz_waiting_for_auth_(false) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("scrobble", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("scrobble"), true, 0, 32));
// Last.fm
QObject::connect(&*lastfmscrobbler_, &LastFMScrobbler::AuthenticationComplete, this, &ScrobblerSettingsPage::LastFM_AuthenticationComplete);
@@ -200,7 +200,7 @@ void ScrobblerSettingsPage::LastFM_AuthenticationComplete(const bool success, co
Save();
}
else {
- if (!error.isEmpty()) QMessageBox::warning(this, "Authentication failed", error);
+ if (!error.isEmpty()) QMessageBox::warning(this, QStringLiteral("Authentication failed"), error);
}
LastFM_RefreshControls(success);
@@ -235,7 +235,7 @@ void ScrobblerSettingsPage::LibreFM_AuthenticationComplete(const bool success, c
Save();
}
else {
- QMessageBox::warning(this, "Authentication failed", error);
+ QMessageBox::warning(this, QStringLiteral("Authentication failed"), error);
}
LibreFM_RefreshControls(success);
@@ -270,7 +270,7 @@ void ScrobblerSettingsPage::ListenBrainz_AuthenticationComplete(const bool succe
Save();
}
else {
- QMessageBox::warning(this, "Authentication failed", error);
+ QMessageBox::warning(this, QStringLiteral("Authentication failed"), error);
}
ListenBrainz_RefreshControls(success);
diff --git a/src/settings/subsonicsettingspage.cpp b/src/settings/subsonicsettingspage.cpp
index 993988e9..bac7a7ff 100644
--- a/src/settings/subsonicsettingspage.cpp
+++ b/src/settings/subsonicsettingspage.cpp
@@ -47,7 +47,7 @@ SubsonicSettingsPage::SubsonicSettingsPage(SettingsDialog *dialog, QWidget *pare
service_(dialog->app()->internet_services()->Service()) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("subsonic", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("subsonic"), true, 0, 32));
QObject::connect(ui_->button_test, &QPushButton::clicked, this, &SubsonicSettingsPage::TestClicked);
QObject::connect(ui_->button_deletesongs, &QPushButton::clicked, &*service_, &SubsonicService::DeleteSongs);
diff --git a/src/settings/tidalsettingspage.cpp b/src/settings/tidalsettingspage.cpp
index 882bccce..66428c2e 100644
--- a/src/settings/tidalsettingspage.cpp
+++ b/src/settings/tidalsettingspage.cpp
@@ -48,7 +48,7 @@ TidalSettingsPage::TidalSettingsPage(SettingsDialog *dialog, QWidget *parent)
service_(dialog->app()->internet_services()->Service()) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("tidal", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("tidal"), true, 0, 32));
QObject::connect(ui_->button_login, &QPushButton::clicked, this, &TidalSettingsPage::LoginClicked);
QObject::connect(ui_->login_state, &LoginStateWidget::LogoutClicked, this, &TidalSettingsPage::LogoutClicked);
@@ -62,20 +62,20 @@ TidalSettingsPage::TidalSettingsPage(SettingsDialog *dialog, QWidget *parent)
dialog->installEventFilter(this);
- ui_->quality->addItem("Low", "LOW");
- ui_->quality->addItem("High", "HIGH");
- ui_->quality->addItem("Lossless", "LOSSLESS");
- ui_->quality->addItem("Hi resolution", "HI_RES");
+ ui_->quality->addItem(QStringLiteral("Low"), "LOW");
+ ui_->quality->addItem(QStringLiteral("High"), "HIGH");
+ ui_->quality->addItem(QStringLiteral("Lossless"), "LOSSLESS");
+ ui_->quality->addItem(QStringLiteral("Hi resolution"), "HI_RES");
- ui_->coversize->addItem("160x160", "160x160");
- ui_->coversize->addItem("320x320", "320x320");
- ui_->coversize->addItem("640x640", "640x640");
- ui_->coversize->addItem("750x750", "750x750");
- ui_->coversize->addItem("1280x1280", "1280x1280");
+ ui_->coversize->addItem(QStringLiteral("160x160"), "160x160");
+ ui_->coversize->addItem(QStringLiteral("320x320"), "320x320");
+ ui_->coversize->addItem(QStringLiteral("640x640"), "640x640");
+ ui_->coversize->addItem(QStringLiteral("750x750"), "750x750");
+ ui_->coversize->addItem(QStringLiteral("1280x1280"), "1280x1280");
- ui_->streamurl->addItem("streamurl", static_cast(StreamUrlMethod::StreamUrl));
- ui_->streamurl->addItem("urlpostpaywall", static_cast(StreamUrlMethod::UrlPostPaywall));
- ui_->streamurl->addItem("playbackinfopostpaywall", static_cast(StreamUrlMethod::PlaybackInfoPostPaywall));
+ ui_->streamurl->addItem(QStringLiteral("streamurl"), static_cast(StreamUrlMethod::StreamUrl));
+ ui_->streamurl->addItem(QStringLiteral("urlpostpaywall"), static_cast(StreamUrlMethod::UrlPostPaywall));
+ ui_->streamurl->addItem(QStringLiteral("playbackinfopostpaywall"), static_cast(StreamUrlMethod::PlaybackInfoPostPaywall));
}
@@ -96,14 +96,14 @@ void TidalSettingsPage::Load() {
if (password.isEmpty()) ui_->password->clear();
else ui_->password->setText(QString::fromUtf8(QByteArray::fromBase64(password)));
- ComboBoxLoadFromSettings(s, ui_->quality, "quality", "LOSSLESS");
+ ComboBoxLoadFromSettings(s, ui_->quality, QStringLiteral("quality"), QStringLiteral("LOSSLESS"));
ui_->searchdelay->setValue(s.value("searchdelay", 1500).toInt());
ui_->artistssearchlimit->setValue(s.value("artistssearchlimit", 4).toInt());
ui_->albumssearchlimit->setValue(s.value("albumssearchlimit", 10).toInt());
ui_->songssearchlimit->setValue(s.value("songssearchlimit", 10).toInt());
ui_->checkbox_fetchalbums->setChecked(s.value("fetchalbums", false).toBool());
ui_->checkbox_download_album_covers->setChecked(s.value("downloadalbumcovers", true).toBool());
- ComboBoxLoadFromSettings(s, ui_->coversize, "coversize", "640x640");
+ ComboBoxLoadFromSettings(s, ui_->coversize, QStringLiteral("coversize"), QStringLiteral("640x640"));
ui_->streamurl->setCurrentIndex(ui_->streamurl->findData(s.value("streamurl", static_cast(StreamUrlMethod::StreamUrl)).toInt()));
ui_->checkbox_album_explicit->setChecked(s.value("album_explicit", false).toBool());
diff --git a/src/settings/transcodersettingspage.cpp b/src/settings/transcodersettingspage.cpp
index 183b61ef..ad41f802 100644
--- a/src/settings/transcodersettingspage.cpp
+++ b/src/settings/transcodersettingspage.cpp
@@ -43,7 +43,7 @@ TranscoderSettingsPage::TranscoderSettingsPage(SettingsDialog *dialog, QWidget *
ui_(new Ui_TranscoderSettingsPage) {
ui_->setupUi(this);
- setWindowIcon(IconLoader::Load("tools-wizard", true, 0, 32));
+ setWindowIcon(IconLoader::Load(QStringLiteral("tools-wizard"), true, 0, 32));
}
diff --git a/src/smartplaylists/smartplaylistsearch.cpp b/src/smartplaylists/smartplaylistsearch.cpp
index 670c11c3..37dd9998 100644
--- a/src/smartplaylists/smartplaylistsearch.cpp
+++ b/src/smartplaylists/smartplaylistsearch.cpp
@@ -62,7 +62,7 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
}
if (!terms_.isEmpty() && search_type_ != SearchType::All) {
- QString boolean_op = search_type_ == SearchType::And ? " AND " : " OR ";
+ QString boolean_op = search_type_ == SearchType::And ? QStringLiteral(" AND ") : QStringLiteral(" OR ");
where_clauses << "(" + term_where_clauses.join(boolean_op) + ")";
}
@@ -77,15 +77,15 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
// We never want to include songs that have been deleted,
// but are still kept in the database in case the directory containing them has just been unmounted.
- where_clauses << "unavailable = 0";
+ where_clauses << QStringLiteral("unavailable = 0");
if (!where_clauses.isEmpty()) {
- sql += " WHERE " + where_clauses.join(" AND ");
+ sql += " WHERE " + where_clauses.join(QStringLiteral(" AND "));
}
// Add sort by
if (sort_type_ == SortType::Random) {
- sql += " ORDER BY random()";
+ sql += QLatin1String(" ORDER BY random()");
}
else {
sql += " ORDER BY " + SmartPlaylistSearchTerm::FieldColumnName(sort_field_) + (sort_type_ == SortType::FieldAsc ? " ASC" : " DESC");
@@ -93,7 +93,7 @@ QString SmartPlaylistSearch::ToSql(const QString &songs_table) const {
// Add limit
if (first_item_ > 0) {
- sql += QString(" LIMIT %1 OFFSET %2").arg(limit_).arg(first_item_);
+ sql += QStringLiteral(" LIMIT %1 OFFSET %2").arg(limit_).arg(first_item_);
}
else if (limit_ != -1) {
sql += " LIMIT " + QString::number(limit_);
diff --git a/src/smartplaylists/smartplaylistsearchterm.cpp b/src/smartplaylists/smartplaylistsearchterm.cpp
index 727990c3..27f539ea 100644
--- a/src/smartplaylists/smartplaylistsearchterm.cpp
+++ b/src/smartplaylists/smartplaylistsearchterm.cpp
@@ -39,7 +39,7 @@ QString SmartPlaylistSearchTerm::ToSql() const {
QString col = FieldColumnName(field_);
QString date = DateName(datetype_, true);
QString value = value_.toString();
- value.replace('\'', "''");
+ value.replace('\'', QLatin1String("''"));
if (field_ == Field::Filetype) {
Song::FileType filetype = Song::FiletypeByExtension(value);
@@ -64,10 +64,10 @@ QString SmartPlaylistSearchTerm::ToSql() const {
// We have a numeric date, consider also the time for more precision
col = "DATETIME(" + col + ", 'unixepoch', 'localtime')";
second_value = second_value_.toString();
- second_value.replace('\'', "''");
+ second_value.replace('\'', QLatin1String("''"));
if (date == "weeks") {
// Sqlite doesn't know weeks, transform them to days
- date = "days";
+ date = QStringLiteral("days");
value = QString::number(value_.toInt() * 7);
second_value = QString::number(second_value_.toInt() * 7);
}
@@ -302,57 +302,57 @@ QString SmartPlaylistSearchTerm::FieldColumnName(const Field field) {
switch (field) {
case Field::AlbumArtist:
- return "albumartist";
+ return QStringLiteral("albumartist");
case Field::Artist:
- return "artist";
+ return QStringLiteral("artist");
case Field::Album:
- return "album";
+ return QStringLiteral("album");
case Field::Title:
- return "title";
+ return QStringLiteral("title");
case Field::Track:
- return "track";
+ return QStringLiteral("track");
case Field::Disc:
- return "disc";
+ return QStringLiteral("disc");
case Field::Year:
- return "year";
+ return QStringLiteral("year");
case Field::OriginalYear:
- return "originalyear";
+ return QStringLiteral("originalyear");
case Field::Genre:
- return "genre";
+ return QStringLiteral("genre");
case Field::Composer:
- return "composer";
+ return QStringLiteral("composer");
case Field::Performer:
- return "performer";
+ return QStringLiteral("performer");
case Field::Grouping:
- return "grouping";
+ return QStringLiteral("grouping");
case Field::Comment:
- return "comment";
+ return QStringLiteral("comment");
case Field::Length:
- return "length";
+ return QStringLiteral("length");
case Field::Filepath:
- return "url";
+ return QStringLiteral("url");
case Field::Filetype:
- return "filetype";
+ return QStringLiteral("filetype");
case Field::Filesize:
- return "filesize";
+ return QStringLiteral("filesize");
case Field::DateCreated:
- return "ctime";
+ return QStringLiteral("ctime");
case Field::DateModified:
- return "mtime";
+ return QStringLiteral("mtime");
case Field::PlayCount:
- return "playcount";
+ return QStringLiteral("playcount");
case Field::SkipCount:
- return "skipcount";
+ return QStringLiteral("skipcount");
case Field::LastPlayed:
- return "lastplayed";
+ return QStringLiteral("lastplayed");
case Field::Rating:
- return "rating";
+ return QStringLiteral("rating");
case Field::Samplerate:
- return "samplerate";
+ return QStringLiteral("samplerate");
case Field::Bitdepth:
- return "bitdepth";
+ return QStringLiteral("bitdepth");
case Field::Bitrate:
- return "bitrate";
+ return QStringLiteral("bitrate");
case Field::FieldCount:
Q_ASSERT(0);
}
@@ -446,15 +446,15 @@ QString SmartPlaylistSearchTerm::DateName(const DateType datetype, const bool fo
// If forQuery is true, untranslated keywords are returned
switch (datetype) {
case DateType::Hour:
- return (forQuery ? "hours" : QObject::tr("Hours"));
+ return (forQuery ? QStringLiteral("hours") : QObject::tr("Hours"));
case DateType::Day:
- return (forQuery ? "days" : QObject::tr("Days"));
+ return (forQuery ? QStringLiteral("days") : QObject::tr("Days"));
case DateType::Week:
- return (forQuery ? "weeks" : QObject::tr("Weeks"));
+ return (forQuery ? QStringLiteral("weeks") : QObject::tr("Weeks"));
case DateType::Month:
- return (forQuery ? "months" : QObject::tr("Months"));
+ return (forQuery ? QStringLiteral("months") : QObject::tr("Months"));
case DateType::Year:
- return (forQuery ? "years" : QObject::tr("Years"));
+ return (forQuery ? QStringLiteral("years") : QObject::tr("Years"));
}
return QString();
diff --git a/src/smartplaylists/smartplaylistsearchtermwidget.cpp b/src/smartplaylists/smartplaylistsearchtermwidget.cpp
index 711fcc26..7fe847e3 100644
--- a/src/smartplaylists/smartplaylistsearchtermwidget.cpp
+++ b/src/smartplaylists/smartplaylistsearchtermwidget.cpp
@@ -122,18 +122,18 @@ SmartPlaylistSearchTermWidget::SmartPlaylistSearchTermWidget(SharedPtrremove->setIcon(IconLoader::Load("list-remove"));
+ ui_->remove->setIcon(IconLoader::Load(QStringLiteral("list-remove")));
// Set stylesheet
- QFile stylesheet_file(":/style/smartplaylistsearchterm.css");
+ QFile stylesheet_file(QStringLiteral(":/style/smartplaylistsearchterm.css"));
if (stylesheet_file.open(QIODevice::ReadOnly)) {
QString stylesheet = QString::fromLatin1(stylesheet_file.readAll());
stylesheet_file.close();
const QColor base(222, 97, 97, 128);
- stylesheet.replace("%light2", Utilities::ColorToRgba(base.lighter(140)));
- stylesheet.replace("%light", Utilities::ColorToRgba(base.lighter(120)));
- stylesheet.replace("%dark", Utilities::ColorToRgba(base.darker(120)));
- stylesheet.replace("%base", Utilities::ColorToRgba(base));
+ 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));
setStyleSheet(stylesheet);
}
@@ -326,7 +326,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("");
+ ui_->value_text->setText(QLatin1String(""));
}
else {
ui_->value_text->setText(term.value_.toString());
@@ -418,7 +418,7 @@ void SmartPlaylistSearchTermWidget::RelativeValueChanged() {
}
// Explain the user why he can't proceed
if (ui_->value_date_numeric1->value() >= ui_->value_date_numeric2->value()) {
- QMessageBox::warning(this, "Strawberry", tr("The second value must be greater than the first one!"));
+ QMessageBox::warning(this, QStringLiteral("Strawberry"), tr("The second value must be greater than the first one!"));
}
// Emit the signal in any case, so the Next button will be disabled
emit Changed();
@@ -430,7 +430,7 @@ SmartPlaylistSearchTermWidget::Overlay::Overlay(SmartPlaylistSearchTermWidget *p
parent_(parent),
opacity_(0.0),
text_(tr("Add search term")),
- icon_(IconLoader::Load("list-add").pixmap(kIconSize)) {
+ icon_(IconLoader::Load(QStringLiteral("list-add")).pixmap(kIconSize)) {
raise();
setFocusPolicy(Qt::TabFocus);
diff --git a/src/smartplaylists/smartplaylistsmodel.cpp b/src/smartplaylists/smartplaylistsmodel.cpp
index 2084191c..089b5c51 100644
--- a/src/smartplaylists/smartplaylistsmodel.cpp
+++ b/src/smartplaylists/smartplaylistsmodel.cpp
@@ -48,7 +48,7 @@ const int SmartPlaylistsModel::kSmartPlaylistsVersion = 1;
SmartPlaylistsModel::SmartPlaylistsModel(SharedPtr collection_backend, QObject *parent)
: SimpleTreeModel(new SmartPlaylistsItem(this), parent),
collection_backend_(collection_backend),
- icon_(IconLoader::Load("view-media-playlist")) {
+ icon_(IconLoader::Load(QStringLiteral("view-media-playlist"))) {
root_->lazy_loaded = true;
@@ -289,7 +289,7 @@ QVariant SmartPlaylistsModel::data(const QModelIndex &idx, const int role) const
}
QStringList SmartPlaylistsModel::mimeTypes() const {
- return QStringList() << "text/uri-list";
+ return QStringList() << QStringLiteral("text/uri-list");
}
QMimeData *SmartPlaylistsModel::mimeData(const QModelIndexList &indexes) const {
diff --git a/src/smartplaylists/smartplaylistsviewcontainer.cpp b/src/smartplaylists/smartplaylistsviewcontainer.cpp
index 4bae06c8..abd42f31 100644
--- a/src/smartplaylists/smartplaylistsviewcontainer.cpp
+++ b/src/smartplaylists/smartplaylistsviewcontainer.cpp
@@ -60,27 +60,27 @@ SmartPlaylistsViewContainer::SmartPlaylistsViewContainer(Application *app, QWidg
model_->Init();
- action_new_smart_playlist_ = context_menu_->addAction(IconLoader::Load("document-new"), tr("New smart playlist..."), this, &SmartPlaylistsViewContainer::NewSmartPlaylist);
+ action_new_smart_playlist_ = context_menu_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("New smart playlist..."), this, &SmartPlaylistsViewContainer::NewSmartPlaylist);
- action_append_to_playlist_ = context_menu_selected_->addAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this, &SmartPlaylistsViewContainer::AppendToPlaylist);
- action_replace_current_playlist_ = context_menu_selected_->addAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this, &SmartPlaylistsViewContainer::ReplaceCurrentPlaylist);
- action_open_in_new_playlist_ = context_menu_selected_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this, &SmartPlaylistsViewContainer::OpenInNewPlaylist);
+ action_append_to_playlist_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this, &SmartPlaylistsViewContainer::AppendToPlaylist);
+ action_replace_current_playlist_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this, &SmartPlaylistsViewContainer::ReplaceCurrentPlaylist);
+ action_open_in_new_playlist_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this, &SmartPlaylistsViewContainer::OpenInNewPlaylist);
context_menu_selected_->addSeparator();
- action_add_to_playlist_enqueue_ = context_menu_selected_->addAction(IconLoader::Load("go-next"), tr("Queue track"), this, &SmartPlaylistsViewContainer::AddToPlaylistEnqueue);
- action_add_to_playlist_enqueue_next_ = context_menu_selected_->addAction(IconLoader::Load("go-next"), tr("Play next"), this, &SmartPlaylistsViewContainer::AddToPlaylistEnqueueNext);
+ action_add_to_playlist_enqueue_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Queue track"), this, &SmartPlaylistsViewContainer::AddToPlaylistEnqueue);
+ action_add_to_playlist_enqueue_next_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("go-next")), tr("Play next"), this, &SmartPlaylistsViewContainer::AddToPlaylistEnqueueNext);
context_menu_selected_->addSeparator();
context_menu_selected_->addSeparator();
context_menu_selected_->addActions(QList() << action_new_smart_playlist_);
- action_edit_smart_playlist_ = context_menu_selected_->addAction(IconLoader::Load("edit-rename"), tr("Edit smart playlist..."), this, &SmartPlaylistsViewContainer::EditSmartPlaylistFromContext);
- action_delete_smart_playlist_ = context_menu_selected_->addAction(IconLoader::Load("edit-delete"), tr("Delete smart playlist"), this, &SmartPlaylistsViewContainer::DeleteSmartPlaylistFromContext);
+ action_edit_smart_playlist_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("edit-rename")), tr("Edit smart playlist..."), this, &SmartPlaylistsViewContainer::EditSmartPlaylistFromContext);
+ action_delete_smart_playlist_ = context_menu_selected_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Delete smart playlist"), this, &SmartPlaylistsViewContainer::DeleteSmartPlaylistFromContext);
context_menu_selected_->addSeparator();
ui_->new_->setDefaultAction(action_new_smart_playlist_);
- ui_->edit_->setIcon(IconLoader::Load("edit-rename"));
- ui_->delete_->setIcon(IconLoader::Load("edit-delete"));
+ ui_->edit_->setIcon(IconLoader::Load(QStringLiteral("edit-rename")));
+ ui_->delete_->setIcon(IconLoader::Load(QStringLiteral("edit-delete")));
QObject::connect(ui_->edit_, &QToolButton::clicked, this, &SmartPlaylistsViewContainer::EditSmartPlaylistFromButton);
QObject::connect(ui_->delete_, &QToolButton::clicked, this, &SmartPlaylistsViewContainer::DeleteSmartPlaylistFromButton);
diff --git a/src/smartplaylists/smartplaylistwizard.cpp b/src/smartplaylists/smartplaylistwizard.cpp
index ffe1e3c1..a66d6240 100644
--- a/src/smartplaylists/smartplaylistwizard.cpp
+++ b/src/smartplaylists/smartplaylistwizard.cpp
@@ -68,7 +68,7 @@ SmartPlaylistWizard::SmartPlaylistWizard(Application *app, SharedPtrsetTitle(tr("Playlist type"));
type_page_->setSubTitle(tr("A smart playlist is a dynamic list of songs that come from your collection. There are different types of smart playlist that offer different ways of selecting songs."));
- type_page_->setStyleSheet("QRadioButton { font-weight: bold; } QLabel { margin-bottom: 1em; margin-left: 24px; }");
+ type_page_->setStyleSheet(QStringLiteral("QRadioButton { font-weight: bold; } QLabel { margin-bottom: 1em; margin-left: 24px; }"));
addPage(type_page_);
// Finish page
diff --git a/src/subsonic/subsonicbaserequest.cpp b/src/subsonic/subsonicbaserequest.cpp
index 235030b0..bcfa9d22 100644
--- a/src/subsonic/subsonicbaserequest.cpp
+++ b/src/subsonic/subsonicbaserequest.cpp
@@ -80,10 +80,10 @@ QUrl SubsonicBaseRequest::CreateUrl(const QUrl &server_url, const SubsonicSettin
QUrl url(server_url);
if (!url.path().isEmpty() && url.path().right(1) == "/") {
- url.setPath(url.path() + QString("rest/") + ressource_name + QString(".view"));
+ url.setPath(url.path() + QStringLiteral("rest/") + ressource_name + QStringLiteral(".view"));
}
else {
- url.setPath(url.path() + QString("/rest/") + ressource_name + QString(".view"));
+ url.setPath(url.path() + QStringLiteral("/rest/") + ressource_name + QStringLiteral(".view"));
}
url.setQuery(url_query);
@@ -137,7 +137,7 @@ QByteArray SubsonicBaseRequest::GetReplyData(QNetworkReply *reply) {
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
@@ -148,24 +148,24 @@ QByteArray SubsonicBaseRequest::GetReplyData(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &parse_error);
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("error")) {
- QJsonValue json_error = json_obj["error"];
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue json_error = json_obj[QStringLiteral("error")];
if (json_error.isObject()) {
json_obj = json_error.toObject();
- if (!json_obj.isEmpty() && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- error = QString("%1 (%2)").arg(message).arg(code);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ error = QStringLiteral("%1 (%2)").arg(message).arg(code);
}
}
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
Error(error);
@@ -182,34 +182,34 @@ QJsonObject SubsonicBaseRequest::ExtractJsonObj(QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error("Reply from server missing Json data.", data);
+ Error(QStringLiteral("Reply from server missing Json data."), data);
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", data);
+ Error(QStringLiteral("Received empty Json document."), data);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
return QJsonObject();
}
- if (!json_obj.contains("subsonic-response")) {
- Error("Json reply is missing subsonic-response.", json_obj);
+ if (!json_obj.contains(QStringLiteral("subsonic-response"))) {
+ Error(QStringLiteral("Json reply is missing subsonic-response."), json_obj);
return QJsonObject();
}
- QJsonValue json_response = json_obj["subsonic-response"];
+ QJsonValue json_response = json_obj[QStringLiteral("subsonic-response")];
if (!json_response.isObject()) {
- Error("Json response is not an object.", json_response);
+ Error(QStringLiteral("Json response is not an object."), json_response);
return QJsonObject();
}
json_obj = json_response.toObject();
diff --git a/src/subsonic/subsonicrequest.cpp b/src/subsonic/subsonicrequest.cpp
index c94e3000..bed47beb 100644
--- a/src/subsonic/subsonicrequest.cpp
+++ b/src/subsonic/subsonicrequest.cpp
@@ -149,7 +149,7 @@ void SubsonicRequest::FlushAlbumsRequests() {
if (request.size > 0) params << Param("size", QString::number(request.size));
if (request.offset > 0) params << Param("offset", QString::number(request.offset));
- QNetworkReply *reply = CreateGetRequest(QString("getAlbumList2"), params);
+ QNetworkReply *reply = CreateGetRequest(QStringLiteral("getAlbumList2"), params);
replies_ << reply;
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { AlbumsReplyReceived(reply, request.offset, request.size); });
timeouts_->AddReply(reply);
@@ -182,38 +182,38 @@ void SubsonicRequest::AlbumsReplyReceived(QNetworkReply *reply, const int offset
return;
}
- if (json_obj.contains("error")) {
- QJsonValue json_error = json_obj["error"];
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue json_error = json_obj[QStringLiteral("error")];
if (!json_error.isObject()) {
- Error("Json error is not an object.", json_obj);
+ Error(QStringLiteral("Json error is not an object."), json_obj);
AlbumsFinishCheck(offset_requested, size_requested);
return;
}
json_obj = json_error.toObject();
- if (!json_obj.isEmpty() && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- Error(QString("%1 (%2)").arg(message).arg(code));
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ Error(QStringLiteral("%1 (%2)").arg(message).arg(code));
AlbumsFinishCheck(offset_requested, size_requested);
}
else {
- Error("Json error object is missing code or message.", json_obj);
+ Error(QStringLiteral("Json error object is missing code or message."), json_obj);
AlbumsFinishCheck(offset_requested, size_requested);
}
return;
}
- if (!json_obj.contains("albumList") && !json_obj.contains("albumList2")) {
- Error("Json reply is missing albumList.", json_obj);
+ if (!json_obj.contains(QStringLiteral("albumList")) && !json_obj.contains(QStringLiteral("albumList2"))) {
+ Error(QStringLiteral("Json reply is missing albumList."), json_obj);
AlbumsFinishCheck(offset_requested, size_requested);
return;
}
QJsonValue value_albumlist;
- if (json_obj.contains("albumList")) value_albumlist = json_obj["albumList"];
- else if (json_obj.contains("albumList2")) value_albumlist = json_obj["albumList2"];
+ if (json_obj.contains(QStringLiteral("albumList"))) value_albumlist = json_obj[QStringLiteral("albumList")];
+ else if (json_obj.contains(QStringLiteral("albumList2"))) value_albumlist = json_obj[QStringLiteral("albumList2")];
if (!value_albumlist.isObject()) {
- Error("Json album list is not an object.", value_albumlist);
+ Error(QStringLiteral("Json album list is not an object."), value_albumlist);
AlbumsFinishCheck(offset_requested, size_requested);
}
json_obj = value_albumlist.toObject();
@@ -223,18 +223,18 @@ void SubsonicRequest::AlbumsReplyReceived(QNetworkReply *reply, const int offset
return;
}
- if (!json_obj.contains("album")) {
- Error("Json album list does not contain album array.", json_obj);
+ if (!json_obj.contains(QStringLiteral("album"))) {
+ Error(QStringLiteral("Json album list does not contain album array."), json_obj);
AlbumsFinishCheck(offset_requested, size_requested);
}
- QJsonValue json_album = json_obj["album"];
+ QJsonValue json_album = json_obj[QStringLiteral("album")];
if (json_album.isNull()) {
if (offset_requested == 0) no_results_ = true;
AlbumsFinishCheck(offset_requested, size_requested);
return;
}
if (!json_album.isArray()) {
- Error("Json album is not an array.", json_album);
+ Error(QStringLiteral("Json album is not an array."), json_album);
AlbumsFinishCheck(offset_requested, size_requested);
}
QJsonArray array_albums = json_album.toArray();
@@ -251,30 +251,30 @@ void SubsonicRequest::AlbumsReplyReceived(QNetworkReply *reply, const int offset
++albums_received;
if (!value_album.isObject()) {
- Error("Invalid Json reply, album is not an object.");
+ Error(QStringLiteral("Invalid Json reply, album is not an object."));
continue;
}
QJsonObject obj_album = value_album.toObject();
- if (!obj_album.contains("id") || !obj_album.contains("artist")) {
- Error("Invalid Json reply, album object in array is missing ID or artist.", obj_album);
+ if (!obj_album.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("artist"))) {
+ Error(QStringLiteral("Invalid Json reply, album object in array is missing ID or artist."), obj_album);
continue;
}
- if (!obj_album.contains("album") && !obj_album.contains("name")) {
- Error("Invalid Json reply, album object in array is missing album or name.", obj_album);
+ if (!obj_album.contains(QStringLiteral("album")) && !obj_album.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, album object in array is missing album or name."), obj_album);
continue;
}
- QString album_id = obj_album["id"].toString();
+ QString album_id = obj_album[QStringLiteral("id")].toString();
if (album_id.isEmpty()) {
- album_id = QString::number(obj_album["id"].toInt());
+ album_id = QString::number(obj_album[QStringLiteral("id")].toInt());
}
- QString artist = obj_album["artist"].toString();
+ QString artist = obj_album[QStringLiteral("artist")].toString();
QString album;
- if (obj_album.contains("album")) album = obj_album["album"].toString();
- else if (obj_album.contains("name")) album = obj_album["name"].toString();
+ if (obj_album.contains(QStringLiteral("album"))) album = obj_album[QStringLiteral("album")].toString();
+ else if (obj_album.contains(QStringLiteral("name"))) album = obj_album[QStringLiteral("name")].toString();
if (album_songs_requests_pending_.contains(album_id)) continue;
@@ -341,7 +341,7 @@ void SubsonicRequest::FlushAlbumSongsRequests() {
Request request = album_songs_requests_queue_.dequeue();
++album_songs_requests_active_;
- QNetworkReply *reply = CreateGetRequest(QString("getAlbum"), ParamList() << Param("id", request.album_id));
+ QNetworkReply *reply = CreateGetRequest(QStringLiteral("getAlbum"), ParamList() << Param("id", request.album_id));
replies_ << reply;
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { AlbumSongsReplyReceived(reply, request.artist_id, request.album_id, request.album_artist); });
timeouts_->AddReply(reply);
@@ -377,57 +377,57 @@ void SubsonicRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const QStrin
return;
}
- if (json_obj.contains("error")) {
- QJsonValue json_error = json_obj["error"];
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue json_error = json_obj[QStringLiteral("error")];
if (!json_error.isObject()) {
- Error("Json error is not an object.", json_obj);
+ Error(QStringLiteral("Json error is not an object."), json_obj);
SongsFinishCheck();
return;
}
json_obj = json_error.toObject();
- if (!json_obj.isEmpty() && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- Error(QString("%1 (%2)").arg(message).arg(code));
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ Error(QStringLiteral("%1 (%2)").arg(message).arg(code));
SongsFinishCheck();
}
else {
- Error("Json error object missing code or message.", json_obj);
+ Error(QStringLiteral("Json error object missing code or message."), json_obj);
SongsFinishCheck();
}
return;
}
- if (!json_obj.contains("album")) {
- Error("Json reply is missing albumList.", json_obj);
+ if (!json_obj.contains(QStringLiteral("album"))) {
+ Error(QStringLiteral("Json reply is missing albumList."), json_obj);
SongsFinishCheck();
return;
}
- QJsonValue value_album = json_obj["album"];
+ QJsonValue value_album = json_obj[QStringLiteral("album")];
if (!value_album.isObject()) {
- Error("Json album is not an object.", value_album);
+ Error(QStringLiteral("Json album is not an object."), value_album);
SongsFinishCheck();
return;
}
QJsonObject obj_album = value_album.toObject();
- if (!obj_album.contains("song")) {
- Error("Json album object does not contain song array.", json_obj);
+ if (!obj_album.contains(QStringLiteral("song"))) {
+ Error(QStringLiteral("Json album object does not contain song array."), json_obj);
SongsFinishCheck();
return;
}
- QJsonValue json_song = obj_album["song"];
+ QJsonValue json_song = obj_album[QStringLiteral("song")];
if (!json_song.isArray()) {
- Error("Json song is not an array.", obj_album);
+ Error(QStringLiteral("Json song is not an array."), obj_album);
SongsFinishCheck();
return;
}
QJsonArray array_songs = json_song.toArray();
qint64 created = 0;
- if (obj_album.contains("created")) {
- created = QDateTime::fromString(obj_album["created"].toString(), Qt::ISODate).toSecsSinceEpoch();
+ if (obj_album.contains(QStringLiteral("created"))) {
+ created = QDateTime::fromString(obj_album[QStringLiteral("created")].toString(), Qt::ISODate).toSecsSinceEpoch();
}
bool compilation = false;
@@ -436,7 +436,7 @@ void SubsonicRequest::AlbumSongsReplyReceived(QNetworkReply *reply, const QStrin
for (const QJsonValueRef value_song : array_songs) {
if (!value_song.isObject()) {
- Error("Invalid Json reply, track is not a object.");
+ Error(QStringLiteral("Invalid Json reply, track is not a object."));
continue;
}
QJsonObject obj_song = value_song.toObject();
@@ -489,133 +489,133 @@ QString SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, cons
Q_UNUSED(album_id_requested);
if (
- !json_obj.contains("id") ||
- !json_obj.contains("title") ||
- !json_obj.contains("size") ||
- !json_obj.contains("suffix") ||
- !json_obj.contains("duration") ||
- !json_obj.contains("type")
+ !json_obj.contains(QStringLiteral("id")) ||
+ !json_obj.contains(QStringLiteral("title")) ||
+ !json_obj.contains(QStringLiteral("size")) ||
+ !json_obj.contains(QStringLiteral("suffix")) ||
+ !json_obj.contains(QStringLiteral("duration")) ||
+ !json_obj.contains(QStringLiteral("type"))
) {
- Error("Invalid Json reply, song is missing one or more values.", json_obj);
+ Error(QStringLiteral("Invalid Json reply, song is missing one or more values."), json_obj);
return QString();
}
QString song_id;
- if (json_obj["id"].type() == QJsonValue::String) {
- song_id = json_obj["id"].toString();
+ if (json_obj[QStringLiteral("id")].type() == QJsonValue::String) {
+ song_id = json_obj[QStringLiteral("id")].toString();
}
else {
- song_id = QString::number(json_obj["id"].toInt());
+ song_id = QString::number(json_obj[QStringLiteral("id")].toInt());
}
QString album_id;
- if (json_obj.contains("albumId")) {
- if (json_obj["albumId"].type() == QJsonValue::String) {
- album_id = json_obj["albumId"].toString();
+ if (json_obj.contains(QStringLiteral("albumId"))) {
+ if (json_obj[QStringLiteral("albumId")].type() == QJsonValue::String) {
+ album_id = json_obj[QStringLiteral("albumId")].toString();
}
else {
- album_id = QString::number(json_obj["albumId"].toInt());
+ album_id = QString::number(json_obj[QStringLiteral("albumId")].toInt());
}
}
QString artist_id;
- if (json_obj.contains("artistId")) {
- if (json_obj["artistId"].type() == QJsonValue::String) {
- artist_id = json_obj["artistId"].toString();
+ if (json_obj.contains(QStringLiteral("artistId"))) {
+ if (json_obj[QStringLiteral("artistId")].type() == QJsonValue::String) {
+ artist_id = json_obj[QStringLiteral("artistId")].toString();
}
else {
- artist_id = QString::number(json_obj["artistId"].toInt());
+ artist_id = QString::number(json_obj[QStringLiteral("artistId")].toInt());
}
}
- QString title = json_obj["title"].toString();
+ QString title = json_obj[QStringLiteral("title")].toString();
QString album;
- if (json_obj.contains("album")) {
- album = json_obj["album"].toString();
+ if (json_obj.contains(QStringLiteral("album"))) {
+ album = json_obj[QStringLiteral("album")].toString();
}
QString artist;
- if (json_obj.contains("artist")) {
- artist = json_obj["artist"].toString();
+ if (json_obj.contains(QStringLiteral("artist"))) {
+ artist = json_obj[QStringLiteral("artist")].toString();
}
int size = 0;
- if (json_obj["size"].type() == QJsonValue::String) {
- size = json_obj["size"].toString().toInt();
+ if (json_obj[QStringLiteral("size")].type() == QJsonValue::String) {
+ size = json_obj[QStringLiteral("size")].toString().toInt();
}
else {
- size = json_obj["size"].toInt();
+ size = json_obj[QStringLiteral("size")].toInt();
}
qint64 duration = 0;
- if (json_obj["duration"].type() == QJsonValue::String) {
- duration = json_obj["duration"].toString().toInt() * kNsecPerSec;
+ if (json_obj[QStringLiteral("duration")].type() == QJsonValue::String) {
+ duration = json_obj[QStringLiteral("duration")].toString().toInt() * kNsecPerSec;
}
else {
- duration = json_obj["duration"].toInt() * kNsecPerSec;
+ duration = json_obj[QStringLiteral("duration")].toInt() * kNsecPerSec;
}
int bitrate = 0;
- if (json_obj.contains("bitRate")) {
- if (json_obj["bitRate"].type() == QJsonValue::String) {
- bitrate = json_obj["bitRate"].toString().toInt();
+ if (json_obj.contains(QStringLiteral("bitRate"))) {
+ if (json_obj[QStringLiteral("bitRate")].type() == QJsonValue::String) {
+ bitrate = json_obj[QStringLiteral("bitRate")].toString().toInt();
}
else {
- bitrate = json_obj["bitRate"].toInt();
+ bitrate = json_obj[QStringLiteral("bitRate")].toInt();
}
}
QString mimetype;
- if (json_obj.contains("contentType")) {
- mimetype = json_obj["contentType"].toString();
+ if (json_obj.contains(QStringLiteral("contentType"))) {
+ mimetype = json_obj[QStringLiteral("contentType")].toString();
}
int year = 0;
- if (json_obj.contains("year")) {
- if (json_obj["year"].type() == QJsonValue::String) {
- year = json_obj["year"].toString().toInt();
+ if (json_obj.contains(QStringLiteral("year"))) {
+ if (json_obj[QStringLiteral("year")].type() == QJsonValue::String) {
+ year = json_obj[QStringLiteral("year")].toString().toInt();
}
else {
- year = json_obj["year"].toInt();
+ year = json_obj[QStringLiteral("year")].toInt();
}
}
int disc = 0;
- if (json_obj.contains("discNumber")) {
- if (json_obj["discNumber"].type() == QJsonValue::String) {
- disc = json_obj["discNumber"].toString().toInt();
+ if (json_obj.contains(QStringLiteral("discNumber"))) {
+ if (json_obj[QStringLiteral("discNumber")].type() == QJsonValue::String) {
+ disc = json_obj[QStringLiteral("discNumber")].toString().toInt();
}
else {
- disc = json_obj["discNumber"].toInt();
+ disc = json_obj[QStringLiteral("discNumber")].toInt();
}
}
int track = 0;
- if (json_obj.contains("track")) {
- if (json_obj["track"].type() == QJsonValue::String) {
- track = json_obj["track"].toString().toInt();
+ if (json_obj.contains(QStringLiteral("track"))) {
+ if (json_obj[QStringLiteral("track")].type() == QJsonValue::String) {
+ track = json_obj[QStringLiteral("track")].toString().toInt();
}
else {
- track = json_obj["track"].toInt();
+ track = json_obj[QStringLiteral("track")].toInt();
}
}
QString genre;
- if (json_obj.contains("genre")) genre = json_obj["genre"].toString();
+ if (json_obj.contains(QStringLiteral("genre"))) genre = json_obj[QStringLiteral("genre")].toString();
QString cover_id;
- if (json_obj.contains("coverArt")) {
- if (json_obj["coverArt"].type() == QJsonValue::String) {
- cover_id = json_obj["coverArt"].toString();
+ if (json_obj.contains(QStringLiteral("coverArt"))) {
+ if (json_obj[QStringLiteral("coverArt")].type() == QJsonValue::String) {
+ cover_id = json_obj[QStringLiteral("coverArt")].toString();
}
else {
- cover_id = QString::number(json_obj["coverArt"].toInt());
+ cover_id = QString::number(json_obj[QStringLiteral("coverArt")].toInt());
}
}
qint64 created = 0;
- if (json_obj.contains("created")) {
- created = QDateTime::fromString(json_obj["created"].toString(), Qt::ISODate).toSecsSinceEpoch();
+ if (json_obj.contains(QStringLiteral("created"))) {
+ created = QDateTime::fromString(json_obj[QStringLiteral("created")].toString(), Qt::ISODate).toSecsSinceEpoch();
}
else {
created = album_created;
@@ -631,7 +631,7 @@ QString SubsonicRequest::ParseSong(Song &song, const QJsonObject &json_obj, cons
cover_url = cover_urls_[cover_id];
}
else {
- cover_url = CreateUrl(server_url(), auth_method(), username(), password(), "getCoverArt", ParamList() << Param("id", cover_id));
+ cover_url = CreateUrl(server_url(), auth_method(), username(), password(), QStringLiteral("getCoverArt"), ParamList() << Param("id", cover_id));
cover_urls_.insert(cover_id, cover_url);
}
}
@@ -702,11 +702,11 @@ void SubsonicRequest::AddAlbumCoverRequest(const Song &song) {
QUrlQuery cover_url_query(cover_url);
- if (!cover_url_query.hasQueryItem("id")) {
+ if (!cover_url_query.hasQueryItem(QStringLiteral("id"))) {
return;
}
- QString cover_id = cover_url_query.queryItemValue("id");
+ QString cover_id = cover_url_query.queryItemValue(QStringLiteral("id"));
if (album_covers_requests_sent_.contains(cover_id)) {
album_covers_requests_sent_.insert(cover_id, song.song_id());
@@ -785,14 +785,14 @@ void SubsonicRequest::AlbumCoverReceived(QNetworkReply *reply, const AlbumCoverR
}
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2) for %3").arg(reply->errorString()).arg(reply->error()).arg(request.url.toString()));
+ Error(QStringLiteral("%1 (%2) for %3").arg(reply->errorString()).arg(reply->error()).arg(request.url.toString()));
if (album_covers_requests_sent_.contains(request.cover_id)) album_covers_requests_sent_.remove(request.cover_id);
AlbumCoverFinishCheck();
return;
}
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1 for %2.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(request.url.toString()));
+ Error(QStringLiteral("Received HTTP code %1 for %2.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(request.url.toString()));
if (album_covers_requests_sent_.contains(request.cover_id)) album_covers_requests_sent_.remove(request.cover_id);
AlbumCoverFinishCheck();
return;
@@ -803,7 +803,7 @@ void SubsonicRequest::AlbumCoverReceived(QNetworkReply *reply, const AlbumCoverR
mimetype = mimetype.left(mimetype.indexOf(';'));
}
if (!ImageUtils::SupportedImageMimeTypes().contains(mimetype, Qt::CaseInsensitive) && !ImageUtils::SupportedImageFormats().contains(mimetype, Qt::CaseInsensitive)) {
- Error(QString("Unsupported mimetype for image reader %1 for %2").arg(mimetype, request.url.toString()));
+ Error(QStringLiteral("Unsupported mimetype for image reader %1 for %2").arg(mimetype, request.url.toString()));
if (album_covers_requests_sent_.contains(request.cover_id)) album_covers_requests_sent_.remove(request.cover_id);
AlbumCoverFinishCheck();
return;
@@ -811,7 +811,7 @@ void SubsonicRequest::AlbumCoverReceived(QNetworkReply *reply, const AlbumCoverR
QByteArray data = reply->readAll();
if (data.isEmpty()) {
- Error(QString("Received empty image data for %1").arg(request.url.toString()));
+ Error(QStringLiteral("Received empty image data for %1").arg(request.url.toString()));
if (album_covers_requests_sent_.contains(request.cover_id)) album_covers_requests_sent_.remove(request.cover_id);
AlbumCoverFinishCheck();
return;
@@ -834,12 +834,12 @@ void SubsonicRequest::AlbumCoverReceived(QNetworkReply *reply, const AlbumCoverR
}
}
else {
- Error(QString("Error saving image data to %1.").arg(request.filename));
+ Error(QStringLiteral("Error saving image data to %1.").arg(request.filename));
if (album_covers_requests_sent_.contains(request.cover_id)) album_covers_requests_sent_.remove(request.cover_id);
}
}
else {
- Error(QString("Error decoding image data from %1.").arg(request.url.toString()));
+ Error(QStringLiteral("Error decoding image data from %1.").arg(request.url.toString()));
if (album_covers_requests_sent_.contains(request.cover_id)) album_covers_requests_sent_.remove(request.cover_id);
}
diff --git a/src/subsonic/subsonicscrobblerequest.cpp b/src/subsonic/subsonicscrobblerequest.cpp
index 54f72bc6..1c65a8ae 100644
--- a/src/subsonic/subsonicscrobblerequest.cpp
+++ b/src/subsonic/subsonicscrobblerequest.cpp
@@ -77,7 +77,7 @@ void SubsonicScrobbleRequest::FlushScrobbleRequests() {
<< Param("submission", QVariant(request.submission).toString())
<< Param("time", QVariant(request.time_ms).toString());
- QNetworkReply *reply = CreateGetRequest("scrobble", params);
+ QNetworkReply *reply = CreateGetRequest(QStringLiteral("scrobble"), params);
replies_ << reply;
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply]() { ScrobbleReplyReceived(reply); });
@@ -109,22 +109,22 @@ void SubsonicScrobbleRequest::ScrobbleReplyReceived(QNetworkReply *reply) {
return;
}
- if (json_obj.contains("error")) {
- QJsonValue json_error = json_obj["error"];
+ if (json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue json_error = json_obj[QStringLiteral("error")];
if (!json_error.isObject()) {
- Error("Json error is not an object.", json_obj);
+ Error(QStringLiteral("Json error is not an object."), json_obj);
FinishCheck();
return;
}
json_obj = json_error.toObject();
- if (!json_obj.isEmpty() && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- Error(QString("%1 (%2)").arg(message).arg(code));
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ Error(QStringLiteral("%1 (%2)").arg(message).arg(code));
FinishCheck();
}
else {
- Error("Json error object is missing code or message.", json_obj);
+ Error(QStringLiteral("Json error object is missing code or message."), json_obj);
FinishCheck();
return;
}
diff --git a/src/subsonic/subsonicservice.cpp b/src/subsonic/subsonicservice.cpp
index 2796c22c..71f643f8 100644
--- a/src/subsonic/subsonicservice.cpp
+++ b/src/subsonic/subsonicservice.cpp
@@ -69,7 +69,7 @@ const char *SubsonicService::kSongsFtsTable = "subsonic_songs_fts";
const int SubsonicService::kMaxRedirects = 3;
SubsonicService::SubsonicService(Application *app, QObject *parent)
- : InternetService(Song::Source::Subsonic, "Subsonic", "subsonic", SubsonicSettingsPage::kSettingsGroup, SettingsDialog::Page::Subsonic, app, parent),
+ : InternetService(Song::Source::Subsonic, QStringLiteral("Subsonic"), QStringLiteral("subsonic"), SubsonicSettingsPage::kSettingsGroup, SettingsDialog::Page::Subsonic, app, parent),
app_(app),
url_handler_(new SubsonicUrlHandler(app, this)),
collection_backend_(nullptr),
@@ -183,10 +183,10 @@ void SubsonicService::SendPingWithCredentials(QUrl url, const QString &username,
if (!redirect) {
if (!url.path().isEmpty() && url.path().right(1) == "/") {
- url.setPath(url.path() + QString("rest/ping.view"));
+ url.setPath(url.path() + QStringLiteral("rest/ping.view"));
}
else {
- url.setPath(url.path() + QString("/rest/ping.view"));
+ url.setPath(url.path() + QStringLiteral("/rest/ping.view"));
}
}
@@ -237,7 +237,7 @@ void SubsonicService::HandlePingReply(QNetworkReply *reply, const QUrl &url, con
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- PingError(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ PingError(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
return;
}
else {
@@ -268,24 +268,24 @@ void SubsonicService::HandlePingReply(QNetworkReply *reply, const QUrl &url, con
QJsonDocument json_doc = QJsonDocument::fromJson(data, &parse_error);
if (parse_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("error")) {
- QJsonValue json_error = json_obj["error"];
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("error"))) {
+ QJsonValue json_error = json_obj[QStringLiteral("error")];
if (json_error.isObject()) {
json_obj = json_error.toObject();
- if (!json_obj.isEmpty() && json_obj.contains("code") && json_obj.contains("message")) {
- int code = json_obj["code"].toInt();
- QString message = json_obj["message"].toString();
- errors_ << QString("%1 (%2)").arg(message).arg(code);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("code")) && json_obj.contains(QStringLiteral("message"))) {
+ int code = json_obj[QStringLiteral("code")].toInt();
+ QString message = json_obj[QStringLiteral("message")].toString();
+ errors_ << QStringLiteral("%1 (%2)").arg(message).arg(code);
}
}
}
}
if (errors_.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- errors_ << QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ errors_ << QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- errors_ << QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ errors_ << QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
PingError();
@@ -301,62 +301,62 @@ void SubsonicService::HandlePingReply(QNetworkReply *reply, const QUrl &url, con
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- PingError("Ping reply from server missing Json data.");
+ PingError(QStringLiteral("Ping reply from server missing Json data."));
return;
}
if (json_doc.isEmpty()) {
- PingError("Ping reply from server has empty Json document.");
+ PingError(QStringLiteral("Ping reply from server has empty Json document."));
return;
}
if (!json_doc.isObject()) {
- PingError("Ping reply from server has Json document that is not an object.", json_doc);
+ PingError(QStringLiteral("Ping reply from server has Json document that is not an object."), json_doc);
return;
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- PingError("Ping reply from server has empty Json object.", json_doc);
+ PingError(QStringLiteral("Ping reply from server has empty Json object."), json_doc);
return;
}
- if (!json_obj.contains("subsonic-response")) {
- PingError("Ping reply from server is missing subsonic-response", json_obj);
+ if (!json_obj.contains(QStringLiteral("subsonic-response"))) {
+ PingError(QStringLiteral("Ping reply from server is missing subsonic-response"), json_obj);
return;
}
- QJsonValue value_response = json_obj["subsonic-response"];
+ QJsonValue value_response = json_obj[QStringLiteral("subsonic-response")];
if (!value_response.isObject()) {
- PingError("Ping reply from server subsonic-response is not an object", value_response);
+ PingError(QStringLiteral("Ping reply from server subsonic-response is not an object"), value_response);
return;
}
QJsonObject obj_response = value_response.toObject();
- if (obj_response.contains("error")) {
- QJsonValue value_error = obj_response["error"];
+ if (obj_response.contains(QStringLiteral("error"))) {
+ QJsonValue value_error = obj_response[QStringLiteral("error")];
if (!value_error.isObject()) {
- PingError("Authentication error reply from server is not an object", value_error);
+ PingError(QStringLiteral("Authentication error reply from server is not an object"), value_error);
return;
}
QJsonObject obj_error = value_error.toObject();
- if (!obj_error.contains("code") || !obj_error.contains("message")) {
- PingError("Authentication error reply from server is missing status or message", json_obj);
+ if (!obj_error.contains(QStringLiteral("code")) || !obj_error.contains(QStringLiteral("message"))) {
+ PingError(QStringLiteral("Authentication error reply from server is missing status or message"), json_obj);
return;
}
//int status = obj_error["code"].toInt();
- QString message = obj_error["message"].toString();
+ QString message = obj_error[QStringLiteral("message")].toString();
emit TestComplete(false, message);
emit TestFailure(message);
return;
}
- if (!obj_response.contains("status")) {
- PingError("Ping reply from server is missing status", obj_response);
+ if (!obj_response.contains(QStringLiteral("status"))) {
+ PingError(QStringLiteral("Ping reply from server is missing status"), obj_response);
return;
}
- QString status = obj_response["status"].toString().toLower();
- QString message = obj_response["message"].toString();
+ QString status = obj_response[QStringLiteral("status")].toString().toLower();
+ QString message = obj_response[QStringLiteral("message")].toString();
if (status == "failed") {
emit TestComplete(false, message);
@@ -369,7 +369,7 @@ void SubsonicService::HandlePingReply(QNetworkReply *reply, const QUrl &url, con
return;
}
else {
- PingError("Ping reply status from server is unknown", json_obj);
+ PingError(QStringLiteral("Ping reply status from server is unknown"), json_obj);
return;
}
@@ -378,15 +378,15 @@ void SubsonicService::HandlePingReply(QNetworkReply *reply, const QUrl &url, con
void SubsonicService::CheckConfiguration() {
if (server_url_.isEmpty()) {
- emit TestComplete(false, "Missing Subsonic server url.");
+ emit TestComplete(false, QStringLiteral("Missing Subsonic server url."));
return;
}
if (username_.isEmpty()) {
- emit TestComplete(false, "Missing Subsonic username.");
+ emit TestComplete(false, QStringLiteral("Missing Subsonic username."));
return;
}
if (password_.isEmpty()) {
- emit TestComplete(false, "Missing Subsonic password.");
+ emit TestComplete(false, QStringLiteral("Missing Subsonic password."));
return;
}
diff --git a/src/subsonic/subsonicurlhandler.cpp b/src/subsonic/subsonicurlhandler.cpp
index 7c7a141b..a6854826 100644
--- a/src/subsonic/subsonicurlhandler.cpp
+++ b/src/subsonic/subsonicurlhandler.cpp
@@ -45,7 +45,7 @@ UrlHandler::LoadResult SubsonicUrlHandler::StartLoading(const QUrl &url) {
using Param = QPair;
using ParamList = QList ;
- const QUrl stream_url = SubsonicBaseRequest::CreateUrl(server_url(), auth_method(), username(), password(), "stream", ParamList() << Param("id", url.path()));
+ const QUrl stream_url = SubsonicBaseRequest::CreateUrl(server_url(), auth_method(), username(), password(), QStringLiteral("stream"), ParamList() << Param("id", url.path()));
return LoadResult(url, LoadResult::Type::TrackAvailable, stream_url);
diff --git a/src/tidal/tidalbaserequest.cpp b/src/tidal/tidalbaserequest.cpp
index 9f402f6f..fd257748 100644
--- a/src/tidal/tidalbaserequest.cpp
+++ b/src/tidal/tidalbaserequest.cpp
@@ -55,7 +55,7 @@ QNetworkReply *TidalBaseRequest::CreateRequest(const QString &ressource_name, co
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(QString(TidalService::kApiUrl) + QString("/") + ressource_name);
+ QUrl url(QString(TidalService::kApiUrl) + QStringLiteral("/") + ressource_name);
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
@@ -90,7 +90,7 @@ QByteArray TidalBaseRequest::GetReplyData(QNetworkReply *reply, const bool send_
else {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
}
else {
// See if there is Json data containing "status" and "userMessage" - then use that instead.
@@ -102,19 +102,19 @@ QByteArray TidalBaseRequest::GetReplyData(QNetworkReply *reply, const bool send_
int sub_status = 0;
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("userMessage")) {
- status = json_obj["status"].toInt();
- sub_status = json_obj["subStatus"].toInt();
- QString user_message = json_obj["userMessage"].toString();
- error = QString("%1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
+ status = json_obj[QStringLiteral("status")].toInt();
+ sub_status = json_obj[QStringLiteral("subStatus")].toInt();
+ QString user_message = json_obj[QStringLiteral("userMessage")].toString();
+ error = QStringLiteral("%1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
}
}
if (error.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- error = QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ error = QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- error = QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ error = QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
if (status == 401 && sub_status == 6001) { // User does not have a valid session
@@ -151,23 +151,23 @@ QJsonObject TidalBaseRequest::ExtractJsonObj(const QByteArray &data) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- Error("Reply from server missing Json data.", data);
+ Error(QStringLiteral("Reply from server missing Json data."), data);
return QJsonObject();
}
if (json_doc.isEmpty()) {
- Error("Received empty Json document.", data);
+ Error(QStringLiteral("Received empty Json document."), data);
return QJsonObject();
}
if (!json_doc.isObject()) {
- Error("Json document is not an object.", json_doc);
+ Error(QStringLiteral("Json document is not an object."), json_doc);
return QJsonObject();
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- Error("Received empty Json object.", json_doc);
+ Error(QStringLiteral("Received empty Json object."), json_doc);
return QJsonObject();
}
@@ -185,11 +185,11 @@ QJsonValue TidalBaseRequest::ExtractItems(const QByteArray &data) {
QJsonValue TidalBaseRequest::ExtractItems(const QJsonObject &json_obj) {
- if (!json_obj.contains("items")) {
- Error("Json reply is missing items.", json_obj);
+ if (!json_obj.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json reply is missing items."), json_obj);
return QJsonArray();
}
- QJsonValue json_items = json_obj["items"];
+ QJsonValue json_items = json_obj[QStringLiteral("items")];
return json_items;
}
diff --git a/src/tidal/tidalfavoriterequest.cpp b/src/tidal/tidalfavoriterequest.cpp
index 15e39b0b..fd6b20fd 100644
--- a/src/tidal/tidalfavoriterequest.cpp
+++ b/src/tidal/tidalfavoriterequest.cpp
@@ -60,11 +60,11 @@ QString TidalFavoriteRequest::FavoriteText(const FavoriteType type) {
switch (type) {
case FavoriteType::Artists:
- return "artists";
+ return QStringLiteral("artists");
case FavoriteType::Albums:
- return "albums";
+ return QStringLiteral("albums");
case FavoriteType::Songs:
- return "tracks";
+ return QStringLiteral("tracks");
}
return QString();
@@ -75,11 +75,11 @@ QString TidalFavoriteRequest::FavoriteMethod(const FavoriteType type) {
switch (type) {
case FavoriteType::Artists:
- return "artistIds";
+ return QStringLiteral("artistIds");
case FavoriteType::Albums:
- return "albumIds";
+ return QStringLiteral("albumIds");
case FavoriteType::Songs:
- return "trackIds";
+ return QStringLiteral("trackIds");
}
return QString();
@@ -142,7 +142,7 @@ void TidalFavoriteRequest::AddFavoritesRequest(const FavoriteType type, const QS
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(QString(TidalService::kApiUrl) + QString("/") + "users/" + QString::number(service_->user_id()) + "/favorites/" + FavoriteText(type));
+ QUrl url(QString(TidalService::kApiUrl) + QStringLiteral("/") + "users/" + QString::number(service_->user_id()) + "/favorites/" + FavoriteText(type));
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
req.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
@@ -251,7 +251,7 @@ void TidalFavoriteRequest::RemoveFavoritesRequest(const FavoriteType type, const
url_query.addQueryItem(QUrl::toPercentEncoding(param.first), QUrl::toPercentEncoding(param.second));
}
- QUrl url(QString(TidalService::kApiUrl) + QString("/") + "users/" + QString::number(service_->user_id()) + "/favorites/" + FavoriteText(type) + QString("/") + id);
+ QUrl url(QString(TidalService::kApiUrl) + QStringLiteral("/") + "users/" + QString::number(service_->user_id()) + "/favorites/" + FavoriteText(type) + QStringLiteral("/") + id);
url.setQuery(url_query);
QNetworkRequest req(url);
req.setAttribute(QNetworkRequest::RedirectPolicyAttribute, QNetworkRequest::NoLessSafeRedirectPolicy);
diff --git a/src/tidal/tidalrequest.cpp b/src/tidal/tidalrequest.cpp
index 182df339..cbb13b66 100644
--- a/src/tidal/tidalrequest.cpp
+++ b/src/tidal/tidalrequest.cpp
@@ -165,7 +165,7 @@ void TidalRequest::Process() {
SongsSearch();
break;
default:
- Error("Invalid query type.");
+ Error(QStringLiteral("Invalid query type."));
break;
}
@@ -253,10 +253,10 @@ void TidalRequest::FlushArtistsRequests() {
if (request.offset > 0) parameters << Param("offset", QString::number(request.offset));
QNetworkReply *reply = nullptr;
if (query_type_ == QueryType::Artists) {
- reply = CreateRequest(QString("users/%1/favorites/artists").arg(service_->user_id()), parameters);
+ reply = CreateRequest(QStringLiteral("users/%1/favorites/artists").arg(service_->user_id()), parameters);
}
if (query_type_ == QueryType::SearchArtists) {
- reply = CreateRequest("search/artists", parameters);
+ reply = CreateRequest(QStringLiteral("search/artists"), parameters);
}
if (!reply) continue;
replies_ << reply;
@@ -301,10 +301,10 @@ void TidalRequest::FlushAlbumsRequests() {
if (request.offset > 0) parameters << Param("offset", QString::number(request.offset));
QNetworkReply *reply = nullptr;
if (query_type_ == QueryType::Albums) {
- reply = CreateRequest(QString("users/%1/favorites/albums").arg(service_->user_id()), parameters);
+ reply = CreateRequest(QStringLiteral("users/%1/favorites/albums").arg(service_->user_id()), parameters);
}
if (query_type_ == QueryType::SearchAlbums) {
- reply = CreateRequest("search/albums", parameters);
+ reply = CreateRequest(QStringLiteral("search/albums"), parameters);
}
if (!reply) continue;
replies_ << reply;
@@ -349,10 +349,10 @@ void TidalRequest::FlushSongsRequests() {
if (request.offset > 0) parameters << Param("offset", QString::number(request.offset));
QNetworkReply *reply = nullptr;
if (query_type_ == QueryType::Songs) {
- reply = CreateRequest(QString("users/%1/favorites/tracks").arg(service_->user_id()), parameters);
+ reply = CreateRequest(QStringLiteral("users/%1/favorites/tracks").arg(service_->user_id()), parameters);
}
if (query_type_ == QueryType::SearchSongs) {
- reply = CreateRequest("search/tracks", parameters);
+ reply = CreateRequest(QStringLiteral("search/tracks"), parameters);
}
if (!reply) continue;
replies_ << reply;
@@ -431,29 +431,29 @@ void TidalRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
return;
}
- if (!json_obj.contains("limit") ||
- !json_obj.contains("offset") ||
- !json_obj.contains("totalNumberOfItems") ||
- !json_obj.contains("items")) {
- Error("Json object missing values.", json_obj);
+ if (!json_obj.contains(QStringLiteral("limit")) ||
+ !json_obj.contains(QStringLiteral("offset")) ||
+ !json_obj.contains(QStringLiteral("totalNumberOfItems")) ||
+ !json_obj.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json object missing values."), json_obj);
ArtistsFinishCheck();
return;
}
//int limit = json_obj["limit"].toInt();
- int offset = json_obj["offset"].toInt();
- int artists_total = json_obj["totalNumberOfItems"].toInt();
+ int offset = json_obj[QStringLiteral("offset")].toInt();
+ int artists_total = json_obj[QStringLiteral("totalNumberOfItems")].toInt();
if (offset_requested == 0) {
artists_total_ = artists_total;
}
else if (artists_total != artists_total_) {
- Error(QString("totalNumberOfItems returned does not match previous totalNumberOfItems! %1 != %2").arg(artists_total).arg(artists_total_));
+ Error(QStringLiteral("totalNumberOfItems returned does not match previous totalNumberOfItems! %1 != %2").arg(artists_total).arg(artists_total_));
ArtistsFinishCheck();
return;
}
if (offset != offset_requested) {
- Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
+ Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
ArtistsFinishCheck();
return;
}
@@ -480,33 +480,33 @@ void TidalRequest::ArtistsReplyReceived(QNetworkReply *reply, const int limit_re
++artists_received;
if (!value_item.isObject()) {
- Error("Invalid Json reply, item in array is not a object.");
+ Error(QStringLiteral("Invalid Json reply, item in array is not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
- if (obj_item.contains("item")) {
- QJsonValue json_item = obj_item["item"];
+ if (obj_item.contains(QStringLiteral("item"))) {
+ QJsonValue json_item = obj_item[QStringLiteral("item")];
if (!json_item.isObject()) {
- Error("Invalid Json reply, item in array is not a object.", json_item);
+ Error(QStringLiteral("Invalid Json reply, item in array is not a object."), json_item);
continue;
}
obj_item = json_item.toObject();
}
- if (!obj_item.contains("id") || !obj_item.contains("name")) {
- Error("Invalid Json reply, item missing id or album.", obj_item);
+ if (!obj_item.contains(QStringLiteral("id")) || !obj_item.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, item missing id or album."), obj_item);
continue;
}
Artist artist;
- if (obj_item["id"].isString()) {
- artist.artist_id = obj_item["id"].toString();
+ if (obj_item[QStringLiteral("id")].isString()) {
+ artist.artist_id = obj_item[QStringLiteral("id")].toString();
}
else {
- artist.artist_id = QString::number(obj_item["id"].toInt());
+ artist.artist_id = QString::number(obj_item[QStringLiteral("id")].toInt());
}
- artist.artist = obj_item["name"].toString();
+ artist.artist = obj_item[QStringLiteral("name")].toString();
if (artist_albums_requests_pending_.contains(artist.artist_id)) continue;
@@ -585,7 +585,7 @@ void TidalRequest::FlushArtistAlbumsRequests() {
ParamList parameters;
if (request.offset > 0) parameters << Param("offset", QString::number(request.offset));
- QNetworkReply *reply = CreateRequest(QString("artists/%1/albums").arg(request.artist.artist_id), parameters);
+ QNetworkReply *reply = CreateRequest(QStringLiteral("artists/%1/albums").arg(request.artist.artist_id), parameters);
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { ArtistAlbumsReplyReceived(reply, request.artist, request.offset); });
replies_ << reply;
@@ -626,21 +626,21 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
return;
}
- if (!json_obj.contains("limit") ||
- !json_obj.contains("offset") ||
- !json_obj.contains("totalNumberOfItems") ||
- !json_obj.contains("items")) {
- Error("Json object missing values.", json_obj);
+ if (!json_obj.contains(QStringLiteral("limit")) ||
+ !json_obj.contains(QStringLiteral("offset")) ||
+ !json_obj.contains(QStringLiteral("totalNumberOfItems")) ||
+ !json_obj.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json object missing values."), json_obj);
AlbumsFinishCheck(artist_requested);
return;
}
//int limit = json_obj["limit"].toInt();
- int offset = json_obj["offset"].toInt();
- int albums_total = json_obj["totalNumberOfItems"].toInt();
+ int offset = json_obj[QStringLiteral("offset")].toInt();
+ int albums_total = json_obj[QStringLiteral("totalNumberOfItems")].toInt();
if (offset != offset_requested) {
- Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
+ Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
AlbumsFinishCheck(artist_requested);
return;
}
@@ -662,95 +662,95 @@ void TidalRequest::AlbumsReceived(QNetworkReply *reply, const Artist &artist_req
++albums_received;
if (!value_item.isObject()) {
- Error("Invalid Json reply, item in array is not a object.");
+ Error(QStringLiteral("Invalid Json reply, item in array is not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
- if (obj_item.contains("item")) {
- QJsonValue json_item = obj_item["item"];
+ if (obj_item.contains(QStringLiteral("item"))) {
+ QJsonValue json_item = obj_item[QStringLiteral("item")];
if (!json_item.isObject()) {
- Error("Invalid Json reply, item in array is not a object.", json_item);
+ Error(QStringLiteral("Invalid Json reply, item in array is not a object."), json_item);
continue;
}
obj_item = json_item.toObject();
}
Album album;
- if (obj_item.contains("type")) { // This was an albums request or search
- if (!obj_item.contains("id") || !obj_item.contains("title")) {
- Error("Invalid Json reply, item is missing ID or title.", obj_item);
+ if (obj_item.contains(QStringLiteral("type"))) { // This was an albums request or search
+ if (!obj_item.contains(QStringLiteral("id")) || !obj_item.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Invalid Json reply, item is missing ID or title."), obj_item);
continue;
}
- if (obj_item["id"].isString()) {
- album.album_id = obj_item["id"].toString();
+ if (obj_item[QStringLiteral("id")].isString()) {
+ album.album_id = obj_item[QStringLiteral("id")].toString();
}
else {
- album.album_id = QString::number(obj_item["id"].toInt());
+ album.album_id = QString::number(obj_item[QStringLiteral("id")].toInt());
}
- album.album = obj_item["title"].toString();
- if (service_->album_explicit() && obj_item.contains("explicit")) {
- album.album_explicit = obj_item["explicit"].toVariant().toBool();
+ album.album = obj_item[QStringLiteral("title")].toString();
+ if (service_->album_explicit() && obj_item.contains(QStringLiteral("explicit"))) {
+ album.album_explicit = obj_item[QStringLiteral("explicit")].toVariant().toBool();
if (album.album_explicit && !album.album.isEmpty()) {
album.album.append(" (Explicit)");
}
}
}
- else if (obj_item.contains("album")) { // This was a tracks request or search
- QJsonValue value_album = obj_item["album"];
+ else if (obj_item.contains(QStringLiteral("album"))) { // This was a tracks request or search
+ QJsonValue value_album = obj_item[QStringLiteral("album")];
if (!value_album.isObject()) {
- Error("Invalid Json reply, item album is not a object.", value_album);
+ Error(QStringLiteral("Invalid Json reply, item album is not a object."), value_album);
continue;
}
QJsonObject obj_album = value_album.toObject();
- if (!obj_album.contains("id") || !obj_album.contains("title")) {
- Error("Invalid Json reply, item album is missing ID or title.", obj_album);
+ if (!obj_album.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Invalid Json reply, item album is missing ID or title."), obj_album);
continue;
}
- if (obj_album["id"].isString()) {
- album.album_id = obj_album["id"].toString();
+ if (obj_album[QStringLiteral("id")].isString()) {
+ album.album_id = obj_album[QStringLiteral("id")].toString();
}
else {
- album.album_id = QString::number(obj_album["id"].toInt());
+ album.album_id = QString::number(obj_album[QStringLiteral("id")].toInt());
}
- album.album = obj_album["title"].toString();
- if (service_->album_explicit() && obj_album.contains("explicit")) {
- album.album_explicit = obj_album["explicit"].toVariant().toBool();
+ album.album = obj_album[QStringLiteral("title")].toString();
+ if (service_->album_explicit() && obj_album.contains(QStringLiteral("explicit"))) {
+ album.album_explicit = obj_album[QStringLiteral("explicit")].toVariant().toBool();
if (album.album_explicit && !album.album.isEmpty()) {
album.album.append(" (Explicit)");
}
}
}
else {
- Error("Invalid Json reply, item missing type or album.", obj_item);
+ Error(QStringLiteral("Invalid Json reply, item missing type or album."), obj_item);
continue;
}
if (album_songs_requests_pending_.contains(album.album_id)) continue;
- if (!obj_item.contains("artist") || !obj_item.contains("title") || !obj_item.contains("audioQuality")) {
- Error("Invalid Json reply, item missing artist, title or audioQuality.", obj_item);
+ if (!obj_item.contains(QStringLiteral("artist")) || !obj_item.contains(QStringLiteral("title")) || !obj_item.contains(QStringLiteral("audioQuality"))) {
+ Error(QStringLiteral("Invalid Json reply, item missing artist, title or audioQuality."), obj_item);
continue;
}
- QJsonValue value_artist = obj_item["artist"];
+ QJsonValue value_artist = obj_item[QStringLiteral("artist")];
if (!value_artist.isObject()) {
- Error("Invalid Json reply, item artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, item artist is not a object."), value_artist);
continue;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("id") || !obj_artist.contains("name")) {
- Error("Invalid Json reply, item artist missing id or name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, item artist missing id or name."), obj_artist);
continue;
}
Artist album_artist;
- if (obj_artist["id"].isString()) {
- album_artist.artist_id = obj_artist["id"].toString();
+ if (obj_artist[QStringLiteral("id")].isString()) {
+ album_artist.artist_id = obj_artist[QStringLiteral("id")].toString();
}
else {
- album_artist.artist_id = QString::number(obj_artist["id"].toInt());
+ album_artist.artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
}
- album_artist.artist = obj_artist["name"].toString();
+ album_artist.artist = obj_artist[QStringLiteral("name")].toString();
//QString quality = obj_item["audioQuality"].toString();
//QString copyright = obj_item["copyright"].toString();
@@ -860,7 +860,7 @@ void TidalRequest::FlushAlbumSongsRequests() {
AlbumSongsRequest request = album_songs_requests_queue_.dequeue();
ParamList parameters;
if (request.offset > 0) parameters << Param("offset", QString::number(request.offset));
- QNetworkReply *reply = CreateRequest(QString("albums/%1/tracks").arg(request.album.album_id), parameters);
+ QNetworkReply *reply = CreateRequest(QStringLiteral("albums/%1/tracks").arg(request.album.album_id), parameters);
replies_ << reply;
QObject::connect(reply, &QNetworkReply::finished, this, [this, reply, request]() { AlbumSongsReplyReceived(reply, request.artist, request.album, request.offset); });
@@ -903,21 +903,21 @@ void TidalRequest::SongsReceived(QNetworkReply *reply, const Artist &artist, con
return;
}
- if (!json_obj.contains("limit") ||
- !json_obj.contains("offset") ||
- !json_obj.contains("totalNumberOfItems") ||
- !json_obj.contains("items")) {
- Error("Json object missing values.", json_obj);
+ if (!json_obj.contains(QStringLiteral("limit")) ||
+ !json_obj.contains(QStringLiteral("offset")) ||
+ !json_obj.contains(QStringLiteral("totalNumberOfItems")) ||
+ !json_obj.contains(QStringLiteral("items"))) {
+ Error(QStringLiteral("Json object missing values."), json_obj);
SongsFinishCheck(artist, album, limit_requested, offset_requested);
return;
}
//int limit = json_obj["limit"].toInt();
- int offset = json_obj["offset"].toInt();
- int songs_total = json_obj["totalNumberOfItems"].toInt();
+ int offset = json_obj[QStringLiteral("offset")].toInt();
+ int songs_total = json_obj[QStringLiteral("totalNumberOfItems")].toInt();
if (offset != offset_requested) {
- Error(QString("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
+ Error(QStringLiteral("Offset returned does not match offset requested! %1 != %2").arg(offset).arg(offset_requested));
SongsFinishCheck(artist, album, limit_requested, offset_requested, songs_total, 0);
return;
}
@@ -941,15 +941,15 @@ void TidalRequest::SongsReceived(QNetworkReply *reply, const Artist &artist, con
for (const QJsonValueRef value_item : array_items) {
if (!value_item.isObject()) {
- Error("Invalid Json reply, track is not a object.");
+ Error(QStringLiteral("Invalid Json reply, track is not a object."));
continue;
}
QJsonObject obj_item = value_item.toObject();
- if (obj_item.contains("item")) {
- QJsonValue item = obj_item["item"];
+ if (obj_item.contains(QStringLiteral("item"))) {
+ QJsonValue item = obj_item[QStringLiteral("item")];
if (!item.isObject()) {
- Error("Invalid Json reply, item is not a object.", item);
+ Error(QStringLiteral("Invalid Json reply, item is not a object."), item);
continue;
}
obj_item = item.toObject();
@@ -1017,93 +1017,93 @@ void TidalRequest::SongsFinishCheck(const Artist &artist, const Album &album, co
void TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const Artist &album_artist, const Album &album) {
if (
- !json_obj.contains("album") ||
- !json_obj.contains("allowStreaming") ||
- !json_obj.contains("artist") ||
- !json_obj.contains("artists") ||
- !json_obj.contains("audioQuality") ||
- !json_obj.contains("duration") ||
- !json_obj.contains("id") ||
- !json_obj.contains("streamReady") ||
- !json_obj.contains("title") ||
- !json_obj.contains("trackNumber") ||
- !json_obj.contains("url") ||
- !json_obj.contains("volumeNumber") ||
- !json_obj.contains("copyright")
+ !json_obj.contains(QStringLiteral("album")) ||
+ !json_obj.contains(QStringLiteral("allowStreaming")) ||
+ !json_obj.contains(QStringLiteral("artist")) ||
+ !json_obj.contains(QStringLiteral("artists")) ||
+ !json_obj.contains(QStringLiteral("audioQuality")) ||
+ !json_obj.contains(QStringLiteral("duration")) ||
+ !json_obj.contains(QStringLiteral("id")) ||
+ !json_obj.contains(QStringLiteral("streamReady")) ||
+ !json_obj.contains(QStringLiteral("title")) ||
+ !json_obj.contains(QStringLiteral("trackNumber")) ||
+ !json_obj.contains(QStringLiteral("url")) ||
+ !json_obj.contains(QStringLiteral("volumeNumber")) ||
+ !json_obj.contains(QStringLiteral("copyright"))
) {
- Error("Invalid Json reply, track is missing one or more values.", json_obj);
+ Error(QStringLiteral("Invalid Json reply, track is missing one or more values."), json_obj);
return;
}
- QJsonValue value_artist = json_obj["artist"];
- QJsonValue value_album = json_obj["album"];
- QJsonValue json_duration = json_obj["duration"];
+ QJsonValue value_artist = json_obj[QStringLiteral("artist")];
+ QJsonValue value_album = json_obj[QStringLiteral("album")];
+ QJsonValue json_duration = json_obj[QStringLiteral("duration")];
//QJsonArray array_artists = json_obj["artists"].toArray();
QString song_id;
- if (json_obj["id"].isString()) {
- song_id = json_obj["id"].toString();
+ if (json_obj[QStringLiteral("id")].isString()) {
+ song_id = json_obj[QStringLiteral("id")].toString();
}
else {
- song_id = QString::number(json_obj["id"].toInt());
+ song_id = QString::number(json_obj[QStringLiteral("id")].toInt());
}
- QString title = json_obj["title"].toString();
+ QString title = json_obj[QStringLiteral("title")].toString();
//QString urlstr = json_obj["url"].toString();
- int track = json_obj["trackNumber"].toInt();
- int disc = json_obj["volumeNumber"].toInt();
- bool allow_streaming = json_obj["allowStreaming"].toBool();
- bool stream_ready = json_obj["streamReady"].toBool();
- QString copyright = json_obj["copyright"].toString();
+ int track = json_obj[QStringLiteral("trackNumber")].toInt();
+ int disc = json_obj[QStringLiteral("volumeNumber")].toInt();
+ bool allow_streaming = json_obj[QStringLiteral("allowStreaming")].toBool();
+ bool stream_ready = json_obj[QStringLiteral("streamReady")].toBool();
+ QString copyright = json_obj[QStringLiteral("copyright")].toString();
if (!value_artist.isObject()) {
- Error("Invalid Json reply, track artist is not a object.", value_artist);
+ Error(QStringLiteral("Invalid Json reply, track artist is not a object."), value_artist);
return;
}
QJsonObject obj_artist = value_artist.toObject();
- if (!obj_artist.contains("id") || !obj_artist.contains("name")) {
- Error("Invalid Json reply, track artist is missing id or name.", obj_artist);
+ if (!obj_artist.contains(QStringLiteral("id")) || !obj_artist.contains(QStringLiteral("name"))) {
+ Error(QStringLiteral("Invalid Json reply, track artist is missing id or name."), obj_artist);
return;
}
QString artist_id;
- if (obj_artist["id"].isString()) {
- artist_id = obj_artist["id"].toString();
+ if (obj_artist[QStringLiteral("id")].isString()) {
+ artist_id = obj_artist[QStringLiteral("id")].toString();
}
else {
- artist_id = QString::number(obj_artist["id"].toInt());
+ artist_id = QString::number(obj_artist[QStringLiteral("id")].toInt());
}
- QString artist = obj_artist["name"].toString();
+ QString artist = obj_artist[QStringLiteral("name")].toString();
if (!value_album.isObject()) {
- Error("Invalid Json reply, track album is not a object.", value_album);
+ Error(QStringLiteral("Invalid Json reply, track album is not a object."), value_album);
return;
}
QJsonObject obj_album = value_album.toObject();
- if (!obj_album.contains("id") || !obj_album.contains("title")) {
- Error("Invalid Json reply, track album is missing ID or title.", obj_album);
+ if (!obj_album.contains(QStringLiteral("id")) || !obj_album.contains(QStringLiteral("title"))) {
+ Error(QStringLiteral("Invalid Json reply, track album is missing ID or title."), obj_album);
return;
}
QString album_id;
- if (obj_album["id"].isString()) {
- album_id = obj_album["id"].toString();
+ if (obj_album[QStringLiteral("id")].isString()) {
+ album_id = obj_album[QStringLiteral("id")].toString();
}
else {
- album_id = QString::number(obj_album["id"].toInt());
+ album_id = QString::number(obj_album[QStringLiteral("id")].toInt());
}
if (!album.album_id.isEmpty() && album.album_id != album_id) {
- Error("Invalid Json reply, track album id is wrong.", obj_album);
+ Error(QStringLiteral("Invalid Json reply, track album id is wrong."), obj_album);
return;
}
- QString album_title = obj_album["title"].toString();
+ QString album_title = obj_album[QStringLiteral("title")].toString();
if (album.album_explicit) album_title.append(" (Explicit)");
if (!allow_streaming) {
- Warn(QString("Song %1 %2 %3 is not allowStreaming").arg(artist, album_title, title));
+ Warn(QStringLiteral("Song %1 %2 %3 is not allowStreaming").arg(artist, album_title, title));
return;
}
if (!stream_ready) {
- Warn(QString("Song %1 %2 %3 is not streamReady").arg(artist, album_title, title));
+ Warn(QStringLiteral("Song %1 %2 %3 is not streamReady").arg(artist, album_title, title));
return;
}
@@ -1117,15 +1117,15 @@ void TidalRequest::ParseSong(Song &song, const QJsonObject &json_obj, const Arti
duration = q_duration.toLongLong() * kNsecPerSec;
}
else {
- Error("Invalid duration for song.", json_duration);
+ Error(QStringLiteral("Invalid duration for song."), json_duration);
return;
}
QUrl cover_url;
- if (obj_album.contains("cover")) {
- const QString cover = obj_album["cover"].toString().replace("-", "/");
+ if (obj_album.contains(QStringLiteral("cover"))) {
+ const QString cover = obj_album[QStringLiteral("cover")].toString().replace(QLatin1String("-"), QLatin1String("/"));
if (!cover.isEmpty()) {
- cover_url.setUrl(QString("%1/images/%2/%3.jpg").arg(kResourcesUrl, cover, coversize_));
+ cover_url.setUrl(QStringLiteral("%1/images/%2/%3.jpg").arg(kResourcesUrl, cover, coversize_));
}
}
@@ -1263,14 +1263,14 @@ void TidalRequest::AlbumCoverReceived(QNetworkReply *reply, const QString &album
}
if (reply->error() != QNetworkReply::NoError) {
- Error(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ Error(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
album_covers_requests_sent_.remove(album_id);
AlbumCoverFinishCheck();
return;
}
if (reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
- Error(QString("Received HTTP code %1 for %2.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(url.toString()));
+ Error(QStringLiteral("Received HTTP code %1 for %2.").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt()).arg(url.toString()));
if (album_covers_requests_sent_.contains(album_id)) album_covers_requests_sent_.remove(album_id);
AlbumCoverFinishCheck();
return;
@@ -1281,7 +1281,7 @@ void TidalRequest::AlbumCoverReceived(QNetworkReply *reply, const QString &album
mimetype = mimetype.left(mimetype.indexOf(';'));
}
if (!ImageUtils::SupportedImageMimeTypes().contains(mimetype, Qt::CaseInsensitive) && !ImageUtils::SupportedImageFormats().contains(mimetype, Qt::CaseInsensitive)) {
- Error(QString("Unsupported mimetype for image reader %1 for %2").arg(mimetype, url.toString()));
+ Error(QStringLiteral("Unsupported mimetype for image reader %1 for %2").arg(mimetype, url.toString()));
if (album_covers_requests_sent_.contains(album_id)) album_covers_requests_sent_.remove(album_id);
AlbumCoverFinishCheck();
return;
@@ -1289,7 +1289,7 @@ void TidalRequest::AlbumCoverReceived(QNetworkReply *reply, const QString &album
QByteArray data = reply->readAll();
if (data.isEmpty()) {
- Error(QString("Received empty image data for %1").arg(url.toString()));
+ Error(QStringLiteral("Received empty image data for %1").arg(url.toString()));
if (album_covers_requests_sent_.contains(album_id)) album_covers_requests_sent_.remove(album_id);
AlbumCoverFinishCheck();
return;
@@ -1312,13 +1312,13 @@ void TidalRequest::AlbumCoverReceived(QNetworkReply *reply, const QString &album
}
}
else {
- Error(QString("Error saving image data to %1").arg(filename));
+ Error(QStringLiteral("Error saving image data to %1").arg(filename));
if (album_covers_requests_sent_.contains(album_id)) album_covers_requests_sent_.remove(album_id);
}
}
else {
if (album_covers_requests_sent_.contains(album_id)) album_covers_requests_sent_.remove(album_id);
- Error(QString("Error decoding image data from %1").arg(url.toString()));
+ Error(QStringLiteral("Error decoding image data from %1").arg(url.toString()));
}
AlbumCoverFinishCheck();
diff --git a/src/tidal/tidalservice.cpp b/src/tidal/tidalservice.cpp
index 5bfd646b..f0218c15 100644
--- a/src/tidal/tidalservice.cpp
+++ b/src/tidal/tidalservice.cpp
@@ -87,7 +87,7 @@ constexpr char TidalService::kAlbumsSongsFtsTable[] = "tidal_albums_songs_fts";
constexpr char TidalService::kSongsFtsTable[] = "tidal_songs_fts";
TidalService::TidalService(Application *app, QObject *parent)
- : InternetService(Song::Source::Tidal, "Tidal", "tidal", TidalSettingsPage::kSettingsGroup, SettingsDialog::Page::Tidal, app, parent),
+ : InternetService(Song::Source::Tidal, QStringLiteral("Tidal"), QStringLiteral("tidal"), TidalSettingsPage::kSettingsGroup, SettingsDialog::Page::Tidal, app, parent),
app_(app),
network_(app->network()),
url_handler_(new TidalUrlHandler(app, this)),
@@ -337,13 +337,13 @@ void TidalService::AuthorizationUrlReceived(const QUrl &url) {
QUrlQuery url_query(url);
- if (url_query.hasQueryItem("token_type") && url_query.hasQueryItem("expires_in") && url_query.hasQueryItem("access_token")) {
+ if (url_query.hasQueryItem(QStringLiteral("token_type")) && url_query.hasQueryItem(QStringLiteral("expires_in")) && url_query.hasQueryItem(QStringLiteral("access_token"))) {
- access_token_ = url_query.queryItemValue("access_token").toUtf8();
- if (url_query.hasQueryItem("refresh_token")) {
- refresh_token_ = url_query.queryItemValue("refresh_token").toUtf8();
+ access_token_ = url_query.queryItemValue(QStringLiteral("access_token")).toUtf8();
+ if (url_query.hasQueryItem(QStringLiteral("refresh_token"))) {
+ refresh_token_ = url_query.queryItemValue(QStringLiteral("refresh_token")).toUtf8();
}
- expires_in_ = url_query.queryItemValue("expires_in").toInt();
+ expires_in_ = url_query.queryItemValue(QStringLiteral("expires_in")).toInt();
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
session_id_.clear();
@@ -360,9 +360,9 @@ void TidalService::AuthorizationUrlReceived(const QUrl &url) {
emit LoginSuccess();
}
- else if (url_query.hasQueryItem("code") && url_query.hasQueryItem("state")) {
+ else if (url_query.hasQueryItem(QStringLiteral("code")) && url_query.hasQueryItem(QStringLiteral("state"))) {
- QString code = url_query.queryItemValue("code");
+ QString code = url_query.queryItemValue(QStringLiteral("code"));
RequestAccessToken(code);
@@ -432,7 +432,7 @@ void TidalService::AccessTokenRequestFinished(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- LoginError(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ LoginError(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
return;
}
else {
@@ -442,19 +442,19 @@ void TidalService::AccessTokenRequestFinished(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("userMessage")) {
- int status = json_obj["status"].toInt();
- int sub_status = json_obj["subStatus"].toInt();
- QString user_message = json_obj["userMessage"].toString();
- login_errors_ << QString("Authentication failure: %1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
+ int status = json_obj[QStringLiteral("status")].toInt();
+ int sub_status = json_obj[QStringLiteral("subStatus")].toInt();
+ QString user_message = json_obj[QStringLiteral("userMessage")].toString();
+ login_errors_ << QStringLiteral("Authentication failure: %1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
}
}
if (login_errors_.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- login_errors_ << QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ login_errors_ << QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- login_errors_ << QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ login_errors_ << QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
LoginError();
@@ -467,43 +467,43 @@ void TidalService::AccessTokenRequestFinished(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- LoginError("Authentication reply from server missing Json data.");
+ LoginError(QStringLiteral("Authentication reply from server missing Json data."));
return;
}
if (json_doc.isEmpty()) {
- LoginError("Authentication reply from server has empty Json document.");
+ LoginError(QStringLiteral("Authentication reply from server has empty Json document."));
return;
}
if (!json_doc.isObject()) {
- LoginError("Authentication reply from server has Json document that is not an object.", json_doc);
+ LoginError(QStringLiteral("Authentication reply from server has Json document that is not an object."), json_doc);
return;
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- LoginError("Authentication reply from server has empty Json object.", json_doc);
+ LoginError(QStringLiteral("Authentication reply from server has empty Json object."), json_doc);
return;
}
- if (!json_obj.contains("access_token") || !json_obj.contains("expires_in")) {
- LoginError("Authentication reply from server is missing access_token or expires_in", json_obj);
+ if (!json_obj.contains(QStringLiteral("access_token")) || !json_obj.contains(QStringLiteral("expires_in"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing access_token or expires_in"), json_obj);
return;
}
- access_token_ = json_obj["access_token"].toString();
- expires_in_ = json_obj["expires_in"].toInt();
- if (json_obj.contains("refresh_token")) {
- refresh_token_ = json_obj["refresh_token"].toString();
+ access_token_ = json_obj[QStringLiteral("access_token")].toString();
+ expires_in_ = json_obj[QStringLiteral("expires_in")].toInt();
+ if (json_obj.contains(QStringLiteral("refresh_token"))) {
+ refresh_token_ = json_obj[QStringLiteral("refresh_token")].toString();
}
login_time_ = QDateTime::currentDateTime().toSecsSinceEpoch();
- if (json_obj.contains("user") && json_obj["user"].isObject()) {
- QJsonObject obj_user = json_obj["user"].toObject();
- if (obj_user.contains("countryCode") && obj_user.contains("userId")) {
- country_code_ = obj_user["countryCode"].toString();
- user_id_ = obj_user["userId"].toInt();
+ if (json_obj.contains(QStringLiteral("user")) && json_obj[QStringLiteral("user")].isObject()) {
+ QJsonObject obj_user = json_obj[QStringLiteral("user")].toObject();
+ if (obj_user.contains(QStringLiteral("countryCode")) && obj_user.contains(QStringLiteral("userId"))) {
+ country_code_ = obj_user[QStringLiteral("countryCode")].toString();
+ user_id_ = obj_user[QStringLiteral("userId")].toInt();
}
}
@@ -581,7 +581,7 @@ void TidalService::HandleAuthReply(QNetworkReply *reply) {
if (reply->error() != QNetworkReply::NoError || reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt() != 200) {
if (reply->error() != QNetworkReply::NoError && reply->error() < 200) {
// This is a network error, there is nothing more to do.
- LoginError(QString("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
+ LoginError(QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error()));
login_errors_.clear();
return;
}
@@ -592,19 +592,19 @@ void TidalService::HandleAuthReply(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error == QJsonParseError::NoError && !json_doc.isEmpty() && json_doc.isObject()) {
QJsonObject json_obj = json_doc.object();
- if (!json_obj.isEmpty() && json_obj.contains("status") && json_obj.contains("userMessage")) {
- int status = json_obj["status"].toInt();
- int sub_status = json_obj["subStatus"].toInt();
- QString user_message = json_obj["userMessage"].toString();
- login_errors_ << QString("Authentication failure: %1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
+ if (!json_obj.isEmpty() && json_obj.contains(QStringLiteral("status")) && json_obj.contains(QStringLiteral("userMessage"))) {
+ int status = json_obj[QStringLiteral("status")].toInt();
+ int sub_status = json_obj[QStringLiteral("subStatus")].toInt();
+ QString user_message = json_obj[QStringLiteral("userMessage")].toString();
+ login_errors_ << QStringLiteral("Authentication failure: %1 (%2) (%3)").arg(user_message).arg(status).arg(sub_status);
}
}
if (login_errors_.isEmpty()) {
if (reply->error() != QNetworkReply::NoError) {
- login_errors_ << QString("%1 (%2)").arg(reply->errorString()).arg(reply->error());
+ login_errors_ << QStringLiteral("%1 (%2)").arg(reply->errorString()).arg(reply->error());
}
else {
- login_errors_ << QString("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
+ login_errors_ << QStringLiteral("Received HTTP code %1").arg(reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt());
}
}
LoginError();
@@ -620,34 +620,34 @@ void TidalService::HandleAuthReply(QNetworkReply *reply) {
QJsonDocument json_doc = QJsonDocument::fromJson(data, &json_error);
if (json_error.error != QJsonParseError::NoError) {
- LoginError("Authentication reply from server missing Json data.");
+ LoginError(QStringLiteral("Authentication reply from server missing Json data."));
return;
}
if (json_doc.isEmpty()) {
- LoginError("Authentication reply from server has empty Json document.");
+ LoginError(QStringLiteral("Authentication reply from server has empty Json document."));
return;
}
if (!json_doc.isObject()) {
- LoginError("Authentication reply from server has Json document that is not an object.", json_doc);
+ LoginError(QStringLiteral("Authentication reply from server has Json document that is not an object."), json_doc);
return;
}
QJsonObject json_obj = json_doc.object();
if (json_obj.isEmpty()) {
- LoginError("Authentication reply from server has empty Json object.", json_doc);
+ LoginError(QStringLiteral("Authentication reply from server has empty Json object."), json_doc);
return;
}
- if (!json_obj.contains("userId") || !json_obj.contains("sessionId") || !json_obj.contains("countryCode")) {
- LoginError("Authentication reply from server is missing userId, sessionId or countryCode", json_obj);
+ if (!json_obj.contains(QStringLiteral("userId")) || !json_obj.contains(QStringLiteral("sessionId")) || !json_obj.contains(QStringLiteral("countryCode"))) {
+ LoginError(QStringLiteral("Authentication reply from server is missing userId, sessionId or countryCode"), json_obj);
return;
}
- country_code_ = json_obj["countryCode"].toString();
- session_id_ = json_obj["sessionId"].toString();
- user_id_ = json_obj["userId"].toInt();
+ country_code_ = json_obj[QStringLiteral("countryCode")].toString();
+ session_id_ = json_obj[QStringLiteral("sessionId")].toString();
+ user_id_ = json_obj[QStringLiteral("userId")].toInt();
access_token_.clear();
refresh_token_.clear();
diff --git a/src/tidal/tidalstreamurlrequest.cpp b/src/tidal/tidalstreamurlrequest.cpp
index 93d3388f..9dd53a57 100644
--- a/src/tidal/tidalstreamurlrequest.cpp
+++ b/src/tidal/tidalstreamurlrequest.cpp
@@ -122,7 +122,7 @@ void TidalStreamURLRequest::GetStreamURL() {
switch (stream_url_method()) {
case TidalSettingsPage::StreamUrlMethod::StreamUrl:
params << Param("soundQuality", quality());
- reply_ = CreateRequest(QString("tracks/%1/streamUrl").arg(song_id_), params);
+ reply_ = CreateRequest(QStringLiteral("tracks/%1/streamUrl").arg(song_id_), params);
QObject::connect(reply_, &QNetworkReply::finished, this, &TidalStreamURLRequest::StreamURLReceived);
break;
case TidalSettingsPage::StreamUrlMethod::UrlPostPaywall:
@@ -130,14 +130,14 @@ void TidalStreamURLRequest::GetStreamURL() {
params << Param("playbackmode", "STREAM");
params << Param("assetpresentation", "FULL");
params << Param("urlusagemode", "STREAM");
- reply_ = CreateRequest(QString("tracks/%1/urlpostpaywall").arg(song_id_), params);
+ reply_ = CreateRequest(QStringLiteral("tracks/%1/urlpostpaywall").arg(song_id_), params);
QObject::connect(reply_, &QNetworkReply::finished, this, &TidalStreamURLRequest::StreamURLReceived);
break;
case TidalSettingsPage::StreamUrlMethod::PlaybackInfoPostPaywall:
params << Param("audioquality", quality());
params << Param("playbackmode", "STREAM");
params << Param("assetpresentation", "FULL");
- reply_ = CreateRequest(QString("tracks/%1/playbackinfopostpaywall").arg(song_id_), params);
+ reply_ = CreateRequest(QStringLiteral("tracks/%1/playbackinfopostpaywall").arg(song_id_), params);
QObject::connect(reply_, &QNetworkReply::finished, this, &TidalStreamURLRequest::StreamURLReceived);
break;
}
@@ -169,22 +169,22 @@ void TidalStreamURLRequest::StreamURLReceived() {
return;
}
- if (!json_obj.contains("trackId")) {
- Error("Invalid Json reply, stream missing trackId.", json_obj);
+ if (!json_obj.contains(QStringLiteral("trackId"))) {
+ Error(QStringLiteral("Invalid Json reply, stream missing trackId."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
- int track_id = json_obj["trackId"].toInt();
+ int track_id = json_obj[QStringLiteral("trackId")].toInt();
if (track_id != song_id_) {
qLog(Debug) << "Tidal returned track ID" << track_id << "for" << media_url_;
}
Song::FileType filetype(Song::FileType::Stream);
- if (json_obj.contains("codec") || json_obj.contains("codecs")) {
+ if (json_obj.contains(QStringLiteral("codec")) || json_obj.contains(QStringLiteral("codecs"))) {
QString codec;
- if (json_obj.contains("codec")) codec = json_obj["codec"].toString().toLower();
- if (json_obj.contains("codecs")) codec = json_obj["codecs"].toString().toLower();
+ if (json_obj.contains(QStringLiteral("codec"))) codec = json_obj[QStringLiteral("codec")].toString().toLower();
+ if (json_obj.contains(QStringLiteral("codecs"))) codec = json_obj[QStringLiteral("codecs")].toString().toLower();
filetype = Song::FiletypeByExtension(codec);
if (filetype == Song::FileType::Unknown) {
qLog(Debug) << "Tidal: Unknown codec" << codec;
@@ -194,16 +194,16 @@ void TidalStreamURLRequest::StreamURLReceived() {
QList urls;
- if (json_obj.contains("manifest")) {
+ if (json_obj.contains(QStringLiteral("manifest"))) {
- QString manifest(json_obj["manifest"].toString());
+ QString manifest(json_obj[QStringLiteral("manifest")].toString());
QByteArray data_manifest = QByteArray::fromBase64(manifest.toUtf8());
QXmlStreamReader xml_reader(data_manifest);
if (xml_reader.readNextStartElement()) {
QUrl url;
- url.setScheme("data");
- url.setPath(QString("application/dash+xml;base64,%1").arg(manifest));
+ url.setScheme(QStringLiteral("data"));
+ url.setPath(QStringLiteral("application/dash+xml;base64,%1").arg(manifest));
urls << url;
}
@@ -215,9 +215,9 @@ void TidalStreamURLRequest::StreamURLReceived() {
return;
}
- if (json_obj.contains("encryptionType") && json_obj.contains("keyId")) {
- QString encryption_type = json_obj["encryptionType"].toString();
- QString key_id = json_obj["keyId"].toString();
+ if (json_obj.contains(QStringLiteral("encryptionType")) && json_obj.contains(QStringLiteral("keyId"))) {
+ QString encryption_type = json_obj[QStringLiteral("encryptionType")].toString();
+ QString key_id = json_obj[QStringLiteral("keyId")].toString();
if (!encryption_type.isEmpty() && !key_id.isEmpty()) {
Error(tr("Received URL with %1 encrypted stream from Tidal. Strawberry does not currently support encrypted streams.").arg(encryption_type));
emit StreamURLFailure(id_, media_url_, errors_.first());
@@ -225,13 +225,13 @@ void TidalStreamURLRequest::StreamURLReceived() {
}
}
- if (!json_obj.contains("mimeType")) {
- Error("Invalid Json reply, stream url reply manifest is missing mimeType.", json_obj);
+ if (!json_obj.contains(QStringLiteral("mimeType"))) {
+ Error(QStringLiteral("Invalid Json reply, stream url reply manifest is missing mimeType."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
- QString mimetype = json_obj["mimeType"].toString();
+ QString mimetype = json_obj[QStringLiteral("mimeType")].toString();
QMimeDatabase mimedb;
QStringList suffixes = mimedb.mimeTypeForName(mimetype.toUtf8()).suffixes();
for (const QString &suffix : suffixes) {
@@ -246,10 +246,10 @@ void TidalStreamURLRequest::StreamURLReceived() {
}
- if (json_obj.contains("urls")) {
- QJsonValue json_urls = json_obj["urls"];
+ if (json_obj.contains(QStringLiteral("urls"))) {
+ QJsonValue json_urls = json_obj[QStringLiteral("urls")];
if (!json_urls.isArray()) {
- Error("Invalid Json reply, urls is not an array.", json_urls);
+ Error(QStringLiteral("Invalid Json reply, urls is not an array."), json_urls);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
@@ -259,8 +259,8 @@ void TidalStreamURLRequest::StreamURLReceived() {
urls << QUrl(value.toString());
}
}
- else if (json_obj.contains("url")) {
- QUrl new_url(json_obj["url"].toString());
+ else if (json_obj.contains(QStringLiteral("url"))) {
+ QUrl new_url(json_obj[QStringLiteral("url")].toString());
urls << new_url;
if (filetype == Song::FileType::Stream) {
// Guess filetype by filename extension in URL.
@@ -269,8 +269,8 @@ void TidalStreamURLRequest::StreamURLReceived() {
}
}
- if (json_obj.contains("encryptionKey")) {
- QString encryption_key = json_obj["encryptionKey"].toString();
+ if (json_obj.contains(QStringLiteral("encryptionKey"))) {
+ QString encryption_key = json_obj[QStringLiteral("encryptionKey")].toString();
if (!encryption_key.isEmpty()) {
Error(tr("Received URL with encrypted stream from Tidal. Strawberry does not currently support encrypted streams."));
emit StreamURLFailure(id_, media_url_, errors_.first());
@@ -278,9 +278,9 @@ void TidalStreamURLRequest::StreamURLReceived() {
}
}
- if (json_obj.contains("securityType") && json_obj.contains("securityToken")) {
- QString security_type = json_obj["securityType"].toString();
- QString security_token = json_obj["securityToken"].toString();
+ if (json_obj.contains(QStringLiteral("securityType")) && json_obj.contains(QStringLiteral("securityToken"))) {
+ QString security_type = json_obj[QStringLiteral("securityType")].toString();
+ QString security_token = json_obj[QStringLiteral("securityToken")].toString();
if (!security_type.isEmpty() && !security_token.isEmpty()) {
Error(tr("Received URL with encrypted stream from Tidal. Strawberry does not currently support encrypted streams."));
emit StreamURLFailure(id_, media_url_, errors_.first());
@@ -289,7 +289,7 @@ void TidalStreamURLRequest::StreamURLReceived() {
}
if (urls.isEmpty()) {
- Error("Missing stream urls.", json_obj);
+ Error(QStringLiteral("Missing stream urls."), json_obj);
emit StreamURLFailure(id_, media_url_, errors_.first());
return;
}
diff --git a/src/tidal/tidalurlhandler.cpp b/src/tidal/tidalurlhandler.cpp
index 9601e166..30707e21 100644
--- a/src/tidal/tidalurlhandler.cpp
+++ b/src/tidal/tidalurlhandler.cpp
@@ -42,7 +42,7 @@ TidalUrlHandler::TidalUrlHandler(Application *app, TidalService *service)
UrlHandler::LoadResult TidalUrlHandler::StartLoading(const QUrl &url) {
Request req;
- req.task_id = app_->task_manager()->StartTask(QString("Loading %1 stream...").arg(url.scheme()));
+ req.task_id = app_->task_manager()->StartTask(QStringLiteral("Loading %1 stream...").arg(url.scheme()));
QString error;
req.id = service_->GetStreamURL(url, error);
if (req.id == 0) {
diff --git a/src/transcoder/transcodedialog.cpp b/src/transcoder/transcodedialog.cpp
index b9af1c7a..be20554a 100644
--- a/src/transcoder/transcodedialog.cpp
+++ b/src/transcoder/transcodedialog.cpp
@@ -103,7 +103,7 @@ TranscodeDialog::TranscodeDialog(QMainWindow *mainwindow, QWidget *parent)
QList presets = Transcoder::GetAllPresets();
std::sort(presets.begin(), presets.end(), ComparePresetsByName);
for (const TranscoderPreset &preset : presets) {
- ui_->format->addItem(QString("%1 (.%2)").arg(preset.name_, preset.extension_), QVariant::fromValue(preset));
+ ui_->format->addItem(QStringLiteral("%1 (.%2)").arg(preset.name_, preset.extension_), QVariant::fromValue(preset));
}
// Load settings
@@ -310,7 +310,7 @@ void TranscodeDialog::UpdateStatusText() {
sections << "" + tr("%n failed", "", finished_failed_) + " ";
}
- ui_->progress_text->setText(sections.join(", "));
+ ui_->progress_text->setText(sections.join(QStringLiteral(", ")));
}
@@ -322,7 +322,7 @@ void TranscodeDialog::Add() {
QStringList filenames = QFileDialog::getOpenFileNames(
this, tr("Add files to transcode"), last_add_dir_,
- QString("%1 (%2);;%3").arg(tr("Music"), FileView::kFileFilter, tr(MainWindow::kAllFilesFilterSpec)));
+ QStringLiteral("%1 (%2);;%3").arg(tr("Music"), FileView::kFileFilter, tr(MainWindow::kAllFilesFilterSpec)));
if (filenames.isEmpty()) return;
@@ -345,7 +345,7 @@ void TranscodeDialog::Import() {
QStringList filenames;
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
- QStringList audioTypes = QString(FileView::kFileFilter).split(" ", Qt::SkipEmptyParts);
+ QStringList audioTypes = QString(FileView::kFileFilter).split(QStringLiteral(" "), Qt::SkipEmptyParts);
#else
QStringList audioTypes = QString(FileView::kFileFilter).split(" ", QString::SkipEmptyParts);
#endif
@@ -383,7 +383,7 @@ void TranscodeDialog::Remove() { qDeleteAll(ui_->files->selectedItems()); }
void TranscodeDialog::LogLine(const QString &message) {
QString date(QDateTime::currentDateTime().toString(Qt::TextDate));
- log_ui_->log->appendPlainText(QString("%1: %2").arg(date, message));
+ log_ui_->log->appendPlainText(QStringLiteral("%1: %2").arg(date, message));
}
@@ -421,7 +421,7 @@ void TranscodeDialog::AddDestination() {
ui_->destination->removeItem(1); // The oldest folder item.
}
- QIcon icon = IconLoader::Load("folder");
+ QIcon icon = IconLoader::Load(QStringLiteral("folder"));
QVariant data_var = QVariant::fromValue(dir);
// Do not insert duplicates.
int duplicate_index = ui_->destination->findData(data_var);
@@ -461,7 +461,7 @@ QString TranscodeDialog::GetOutputFileName(const QString &input_filepath, const
QFileInfo fileinfo(output_filepath);
const QString original_filename = fileinfo.completeBaseName();
for (int i = 1; fileinfo.exists(); ++i) {
- fileinfo.setFile(QString("%1/%2-%3.%4").arg(fileinfo.path(), original_filename).arg(i).arg(fileinfo.suffix()));
+ fileinfo.setFile(QStringLiteral("%1/%2-%3.%4").arg(fileinfo.path(), original_filename).arg(i).arg(fileinfo.suffix()));
}
output_filepath = fileinfo.filePath();
}
diff --git a/src/transcoder/transcoder.cpp b/src/transcoder/transcoder.cpp
index b9165360..3eac9b92 100644
--- a/src/transcoder/transcoder.cpp
+++ b/src/transcoder/transcoder.cpp
@@ -95,8 +95,8 @@ GstElement *Transcoder::CreateElementForMimeType(const QString &element_type, co
// HACK: Force mp4mux because it doesn't set any useful src caps
if (mime_type == "audio/mp4") {
- emit LogLine(QString("Using '%1' (rank %2)").arg("mp4mux").arg(-1));
- return CreateElement("mp4mux", bin);
+ emit LogLine(QStringLiteral("Using '%1' (rank %2)").arg(QStringLiteral("mp4mux")).arg(-1));
+ return CreateElement(QStringLiteral("mp4mux"), bin);
}
// Keep track of all the suitable elements we find and figure out which is the best at the end.
@@ -112,7 +112,7 @@ GstElement *Transcoder::CreateElementForMimeType(const QString &element_type, co
GstElementFactory *factory = GST_ELEMENT_FACTORY(f->data);
// Is this the right type of plugin?
- if (QString(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS)).contains(element_type)) {
+ if (QString::fromUtf8(gst_element_factory_get_metadata(factory, GST_ELEMENT_METADATA_KLASS)).contains(element_type)) {
const GList *const templates = gst_element_factory_get_static_pad_templates(factory);
for (const GList *t = templates; t; t = g_list_next(t)) {
// Only interested in source pads
@@ -129,7 +129,7 @@ GstElement *Transcoder::CreateElementForMimeType(const QString &element_type, co
int rank = static_cast(gst_plugin_feature_get_rank(GST_PLUGIN_FEATURE(factory)));
QString name = GST_OBJECT_NAME(factory);
- if (name.startsWith("ffmux") || name.startsWith("ffenc")) {
+ if (name.startsWith(QLatin1String("ffmux")) || name.startsWith(QLatin1String("ffenc"))) {
rank = -1; // ffmpeg usually sucks
}
@@ -150,21 +150,21 @@ GstElement *Transcoder::CreateElementForMimeType(const QString &element_type, co
std::sort(suitable_elements_.begin(), suitable_elements_.end());
const SuitableElement &best = suitable_elements_.last();
- emit LogLine(QString("Using '%1' (rank %2)").arg(best.name_).arg(best.rank_));
+ emit LogLine(QStringLiteral("Using '%1' (rank %2)").arg(best.name_).arg(best.rank_));
if (best.name_ == "lamemp3enc") {
// Special case: we need to add xingmux and id3v2mux to the pipeline when using lamemp3enc because it doesn't write the VBR or ID3v2 headers itself.
- emit LogLine("Adding xingmux and id3v2mux to the pipeline");
+ emit LogLine(QStringLiteral("Adding xingmux and id3v2mux to the pipeline"));
// Create the bin
GstElement *mp3bin = gst_bin_new("mp3bin");
gst_bin_add(GST_BIN(bin), mp3bin);
// Create the elements
- GstElement *lame = CreateElement("lamemp3enc", mp3bin);
- GstElement *xing = CreateElement("xingmux", mp3bin);
- GstElement *id3v2 = CreateElement("id3v2mux", mp3bin);
+ GstElement *lame = CreateElement(QStringLiteral("lamemp3enc"), mp3bin);
+ GstElement *xing = CreateElement(QStringLiteral("xingmux"), mp3bin);
+ GstElement *id3v2 = CreateElement(QStringLiteral("id3v2mux"), mp3bin);
if (!lame || !xing || !id3v2) {
return nullptr;
@@ -248,25 +248,25 @@ TranscoderPreset Transcoder::PresetForFileType(const Song::FileType filetype) {
switch (filetype) {
case Song::FileType::WAV:
- return TranscoderPreset(filetype, "Wav", "wav", QString(), "audio/x-wav");
+ return TranscoderPreset(filetype, QStringLiteral("Wav"), QStringLiteral("wav"), QString(), QStringLiteral("audio/x-wav"));
case Song::FileType::FLAC:
- return TranscoderPreset(filetype, "FLAC", "flac", "audio/x-flac");
+ return TranscoderPreset(filetype, QStringLiteral("FLAC"), QStringLiteral("flac"), QStringLiteral("audio/x-flac"));
case Song::FileType::WavPack:
- return TranscoderPreset(filetype, "WavPack", "wv", "audio/x-wavpack");
+ return TranscoderPreset(filetype, QStringLiteral("WavPack"), QStringLiteral("wv"), QStringLiteral("audio/x-wavpack"));
case Song::FileType::OggFlac:
- return TranscoderPreset(filetype, "Ogg FLAC", "ogg", "audio/x-flac", "application/ogg");
+ return TranscoderPreset(filetype, QStringLiteral("Ogg FLAC"), QStringLiteral("ogg"), QStringLiteral("audio/x-flac"), QStringLiteral("application/ogg"));
case Song::FileType::OggVorbis:
- return TranscoderPreset(filetype, "Ogg Vorbis", "ogg", "audio/x-vorbis", "application/ogg");
+ return TranscoderPreset(filetype, QStringLiteral("Ogg Vorbis"), QStringLiteral("ogg"), QStringLiteral("audio/x-vorbis"), QStringLiteral("application/ogg"));
case Song::FileType::OggOpus:
- return TranscoderPreset(filetype, "Ogg Opus", "opus", "audio/x-opus", "application/ogg");
+ return TranscoderPreset(filetype, QStringLiteral("Ogg Opus"), QStringLiteral("opus"), QStringLiteral("audio/x-opus"), QStringLiteral("application/ogg"));
case Song::FileType::OggSpeex:
- return TranscoderPreset(filetype, "Ogg Speex", "spx", "audio/x-speex", "application/ogg");
+ return TranscoderPreset(filetype, QStringLiteral("Ogg Speex"), QStringLiteral("spx"), QStringLiteral("audio/x-speex"), QStringLiteral("application/ogg"));
case Song::FileType::MPEG:
- return TranscoderPreset(filetype, "MP3", "mp3", "audio/mpeg, mpegversion=(int)1, layer=(int)3");
+ return TranscoderPreset(filetype, QStringLiteral("MP3"), QStringLiteral("mp3"), QStringLiteral("audio/mpeg, mpegversion=(int)1, layer=(int)3"));
case Song::FileType::MP4:
- return TranscoderPreset(filetype, "M4A AAC", "mp4", "audio/mpeg, mpegversion=(int)4", "audio/mp4");
+ return TranscoderPreset(filetype, QStringLiteral("M4A AAC"), QStringLiteral("mp4"), QStringLiteral("audio/mpeg, mpegversion=(int)4"), QStringLiteral("audio/mp4"));
case Song::FileType::ASF:
- return TranscoderPreset(filetype, "Windows Media audio", "wma", "audio/x-wma", "video/x-ms-asf");
+ return TranscoderPreset(filetype, QStringLiteral("Windows Media audio"), QStringLiteral("wma"), QStringLiteral("audio/x-wma"), QStringLiteral("video/x-ms-asf"));
default:
qLog(Warning) << "Unsupported format in PresetForFileType:" << static_cast(filetype);
return TranscoderPreset();
@@ -313,7 +313,7 @@ QString Transcoder::GetFile(const QString &input, const TranscoderPreset &preset
QString filename = fileinfo_output.completeBaseName();
QString suffix = fileinfo_output.suffix();
for (int i = 0;; ++i) {
- QString new_filename = QString("%1/%2-%3.%4").arg(path, filename).arg(i).arg(suffix);
+ QString new_filename = QStringLiteral("%1/%2-%3.%4").arg(path, filename).arg(i).arg(suffix);
fileinfo_output.setFile(new_filename);
if (!fileinfo_output.exists()) {
break;
@@ -431,13 +431,13 @@ bool Transcoder::StartJob(const Job &job) {
if (!state->pipeline_) return false;
// Create all the elements
- GstElement *src = CreateElement("filesrc", state->pipeline_);
- GstElement *decode = CreateElement("decodebin", state->pipeline_);
- GstElement *convert = CreateElement("audioconvert", state->pipeline_);
- GstElement *resample = CreateElement("audioresample", state->pipeline_);
- GstElement *codec = CreateElementForMimeType("Codec/Encoder/Audio", job.preset.codec_mimetype_, state->pipeline_);
- GstElement *muxer = CreateElementForMimeType("Codec/Muxer", job.preset.muxer_mimetype_, state->pipeline_);
- GstElement *sink = CreateElement("filesink", state->pipeline_);
+ GstElement *src = CreateElement(QStringLiteral("filesrc"), state->pipeline_);
+ GstElement *decode = CreateElement(QStringLiteral("decodebin"), state->pipeline_);
+ GstElement *convert = CreateElement(QStringLiteral("audioconvert"), state->pipeline_);
+ GstElement *resample = CreateElement(QStringLiteral("audioresample"), state->pipeline_);
+ GstElement *codec = CreateElementForMimeType(QStringLiteral("Codec/Encoder/Audio"), job.preset.codec_mimetype_, state->pipeline_);
+ GstElement *muxer = CreateElementForMimeType(QStringLiteral("Codec/Muxer"), job.preset.muxer_mimetype_, state->pipeline_);
+ GstElement *sink = CreateElement(QStringLiteral("filesink"), state->pipeline_);
if (!src || !decode || !convert || !sink) return false;
@@ -589,7 +589,7 @@ void Transcoder::SetElementProperties(const QString &name, GObject *object) {
continue;
}
- emit LogLine(QString("Setting %1 property: %2 = %3").arg(name, property->name, value.toString()));
+ emit LogLine(QStringLiteral("Setting %1 property: %2 = %3").arg(name, property->name, value.toString()));
switch (property->value_type) {
case G_TYPE_FLOAT:{
diff --git a/src/transcoder/transcoder.h b/src/transcoder/transcoder.h
index a6f85713..95c6bf93 100644
--- a/src/transcoder/transcoder.h
+++ b/src/transcoder/transcoder.h
@@ -55,7 +55,7 @@ class Transcoder : public QObject {
Q_OBJECT
public:
- explicit Transcoder(QObject *parent = nullptr, const QString &settings_postfix = "");
+ explicit Transcoder(QObject *parent = nullptr, const QString &settings_postfix = QLatin1String(""));
static TranscoderPreset PresetForFileType(const Song::FileType filetype);
static QList GetAllPresets();
diff --git a/src/utilities/colorutils.cpp b/src/utilities/colorutils.cpp
index 3f94d3b1..4a19d818 100644
--- a/src/utilities/colorutils.cpp
+++ b/src/utilities/colorutils.cpp
@@ -26,7 +26,7 @@ namespace Utilities {
QString ColorToRgba(const QColor &c) {
- return QString("rgba(%1, %2, %3, %4)")
+ return QStringLiteral("rgba(%1, %2, %3, %4)")
.arg(c.red())
.arg(c.green())
.arg(c.blue())
diff --git a/src/utilities/coverutils.cpp b/src/utilities/coverutils.cpp
index 9a5bba5e..5b1bffa6 100644
--- a/src/utilities/coverutils.cpp
+++ b/src/utilities/coverutils.cpp
@@ -49,7 +49,7 @@ QString CoverUtils::AlbumCoverFilename(QString artist, QString album, const QStr
QString filename = artist + "-" + album;
filename = Utilities::Transliterate(filename.toLower());
filename = filename.replace(' ', '-')
- .replace("--", "-")
+ .replace(QLatin1String("--"), QLatin1String("-"))
.remove(QRegularExpression(QString(kInvalidFatCharactersRegex), QRegularExpression::CaseInsensitiveOption))
.simplified();
@@ -94,7 +94,7 @@ QString CoverUtils::CoverFilePath(const CoverOptions &options, const Song::Sourc
filename = CoverFilenameFromVariable(options, artist, album);
filename.remove(QRegularExpression(QString(kInvalidFatCharactersRegex), QRegularExpression::CaseInsensitiveOption)).remove('/').remove('\\');
if (options.cover_lowercase) filename = filename.toLower();
- if (options.cover_replace_spaces) filename.replace(QRegularExpression("\\s"), "-");
+ if (options.cover_replace_spaces) filename.replace(QRegularExpression(QStringLiteral("\\s")), QStringLiteral("-"));
if (!extension.isEmpty()) {
filename.append('.');
filename.append(extension);
@@ -155,9 +155,9 @@ QString CoverUtils::CoverFilenameFromVariable(const CoverOptions &options, const
album = Song::AlbumRemoveDisc(album);
QString filename(options.cover_pattern);
- filename.replace("%albumartist", artist);
- filename.replace("%artist", artist);
- filename.replace("%album", album);
+ filename.replace(QLatin1String("%albumartist"), artist);
+ filename.replace(QLatin1String("%artist"), artist);
+ filename.replace(QLatin1String("%album"), album);
if (!extension.isEmpty()) {
filename.append('.');
filename.append(extension);
diff --git a/src/utilities/envutils.cpp b/src/utilities/envutils.cpp
index d5caa8fe..f93173cf 100644
--- a/src/utilities/envutils.cpp
+++ b/src/utilities/envutils.cpp
@@ -45,16 +45,16 @@ void SetEnv(const char *key, const QString &value) {
QString DesktopEnvironment() {
- const QString de = GetEnv("XDG_CURRENT_DESKTOP");
+ const QString de = GetEnv(QStringLiteral("XDG_CURRENT_DESKTOP"));
if (!de.isEmpty()) return de;
- if (!qEnvironmentVariableIsEmpty("KDE_FULL_SESSION")) return "KDE";
- if (!qEnvironmentVariableIsEmpty("GNOME_DESKTOP_SESSION_ID")) return "Gnome";
+ if (!qEnvironmentVariableIsEmpty("KDE_FULL_SESSION")) return QStringLiteral("KDE");
+ if (!qEnvironmentVariableIsEmpty("GNOME_DESKTOP_SESSION_ID")) return QStringLiteral("Gnome");
- QString session = GetEnv("DESKTOP_SESSION");
+ QString session = GetEnv(QStringLiteral("DESKTOP_SESSION"));
qint64 slash = session.lastIndexOf('/');
if (slash != -1) {
- QSettings desktop_file(QString("%1.desktop").arg(session), QSettings::IniFormat);
+ QSettings desktop_file(QStringLiteral("%1.desktop").arg(session), QSettings::IniFormat);
desktop_file.beginGroup("Desktop Entry");
QString name = desktop_file.value("DesktopNames").toString();
desktop_file.endGroup();
@@ -62,11 +62,11 @@ QString DesktopEnvironment() {
session = session.mid(slash + 1);
}
- if (session == "kde") return "KDE";
- else if (session == "gnome") return "Gnome";
- else if (session == "xfce") return "XFCE";
+ if (session == "kde") return QStringLiteral("KDE");
+ else if (session == "gnome") return QStringLiteral("Gnome");
+ else if (session == "xfce") return QStringLiteral("XFCE");
- return "Unknown";
+ return QStringLiteral("Unknown");
}
diff --git a/src/utilities/filemanagerutils.cpp b/src/utilities/filemanagerutils.cpp
index 2539f2db..2ea60ab9 100644
--- a/src/utilities/filemanagerutils.cpp
+++ b/src/utilities/filemanagerutils.cpp
@@ -44,7 +44,7 @@ void OpenInFileManager(const QString &path, const QUrl &url) {
QProcess proc;
#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
- proc.startCommand("xdg-mime query default inode/directory");
+ proc.startCommand(QStringLiteral("xdg-mime query default inode/directory"));
#else
proc.start("xdg-mime", QStringList() << "query" << "default" << "inode/directory");
#endif
@@ -52,21 +52,21 @@ void OpenInFileManager(const QString &path, const QUrl &url) {
QString desktop_file = proc.readLine().simplified();
QString xdg_data_dirs = QString(qgetenv("XDG_DATA_DIRS"));
if (xdg_data_dirs.isEmpty()) {
- xdg_data_dirs = "/usr/local/share/:/usr/share/";
+ xdg_data_dirs = QStringLiteral("/usr/local/share/:/usr/share/");
}
- QStringList data_dirs = xdg_data_dirs.split(":");
+ QStringList data_dirs = xdg_data_dirs.split(QStringLiteral(":"));
QString command;
QStringList command_params;
for (const QString &data_dir : data_dirs) {
- QString desktop_file_path = QString("%1/applications/%2").arg(data_dir, desktop_file);
+ QString desktop_file_path = QStringLiteral("%1/applications/%2").arg(data_dir, desktop_file);
if (!QFile::exists(desktop_file_path)) continue;
QSettings setting(desktop_file_path, QSettings::IniFormat);
setting.beginGroup("Desktop Entry");
if (setting.contains("Exec")) {
QString cmd = setting.value("Exec").toString();
if (cmd.isEmpty()) break;
- cmd = cmd.remove(QRegularExpression("[%][a-zA-Z]*( |$)", QRegularExpression::CaseInsensitiveOption));
+ cmd = cmd.remove(QRegularExpression(QStringLiteral("[%][a-zA-Z]*( |$)"), QRegularExpression::CaseInsensitiveOption));
# if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
command_params = cmd.split(' ', Qt::SkipEmptyParts);
# else
@@ -79,23 +79,23 @@ void OpenInFileManager(const QString &path, const QUrl &url) {
if (!command.isEmpty()) break;
}
- if (command.startsWith("/usr/bin/")) {
- command = command.split("/").last();
+ if (command.startsWith(QLatin1String("/usr/bin/"))) {
+ command = command.split(QStringLiteral("/")).last();
}
if (command.isEmpty() || command == "exo-open") {
QDesktopServices::openUrl(QUrl::fromLocalFile(path));
}
- else if (command.startsWith("nautilus")) {
- proc.startDetached(command, QStringList() << command_params << "--select" << url.toLocalFile());
+ else if (command.startsWith(QLatin1String("nautilus"))) {
+ proc.startDetached(command, QStringList() << command_params << QStringLiteral("--select") << url.toLocalFile());
}
- else if (command.startsWith("dolphin") || command.startsWith("konqueror") || command.startsWith("kfmclient")) {
- proc.startDetached(command, QStringList() << command_params << "--select" << url.toLocalFile());
+ else if (command.startsWith(QLatin1String("dolphin")) || command.startsWith(QLatin1String("konqueror")) || command.startsWith(QLatin1String("kfmclient"))) {
+ proc.startDetached(command, QStringList() << command_params << QStringLiteral("--select") << url.toLocalFile());
}
- else if (command.startsWith("caja")) {
- proc.startDetached(command, QStringList() << command_params << "--no-desktop" << path);
+ else if (command.startsWith(QLatin1String("caja"))) {
+ proc.startDetached(command, QStringList() << command_params << QStringLiteral("--no-desktop") << path);
}
- else if (command.startsWith("pcmanfm") || command.startsWith("thunar") || command.startsWith("spacefm")) {
+ else if (command.startsWith(QLatin1String("pcmanfm")) || command.startsWith(QLatin1String("thunar")) || command.startsWith(QLatin1String("spacefm"))) {
proc.startDetached(command, QStringList() << command_params << path);
}
else {
diff --git a/src/utilities/imageutils.cpp b/src/utilities/imageutils.cpp
index d837b01d..7763a40c 100644
--- a/src/utilities/imageutils.cpp
+++ b/src/utilities/imageutils.cpp
@@ -123,7 +123,7 @@ QImage ImageUtils::ScaleImage(const QImage &image, const QSize desired_size, con
QImage ImageUtils::GenerateNoCoverImage(const QSize size, const qreal device_pixel_ratio) {
- QImage image(":/pictures/cdcase.png");
+ QImage image(QStringLiteral(":/pictures/cdcase.png"));
QSize scale_size(static_cast(size.width() * device_pixel_ratio), static_cast(size.height() * device_pixel_ratio));
// Get a square version of the nocover image with some transparency:
diff --git a/src/utilities/macaddrutils.cpp b/src/utilities/macaddrutils.cpp
index 746b026f..4f380614 100644
--- a/src/utilities/macaddrutils.cpp
+++ b/src/utilities/macaddrutils.cpp
@@ -41,7 +41,7 @@ QString MacAddress() {
}
}
- if (ret.isEmpty()) ret = "00:00:00:00:00:00";
+ if (ret.isEmpty()) ret = QStringLiteral("00:00:00:00:00:00");
return ret;
diff --git a/src/utilities/randutils.cpp b/src/utilities/randutils.cpp
index a67549cf..b26267f1 100644
--- a/src/utilities/randutils.cpp
+++ b/src/utilities/randutils.cpp
@@ -27,17 +27,17 @@
namespace Utilities {
QString GetRandomStringWithChars(const int len) {
- const QString UseCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
+ const QString UseCharacters(QStringLiteral("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"));
return GetRandomString(len, UseCharacters);
}
QString GetRandomStringWithCharsAndNumbers(const int len) {
- const QString UseCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789");
+ const QString UseCharacters(QStringLiteral("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"));
return GetRandomString(len, UseCharacters);
}
QString CryptographicRandomString(const int len) {
- const QString UseCharacters("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~");
+ const QString UseCharacters(QStringLiteral("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~"));
return GetRandomString(len, UseCharacters);
}
diff --git a/src/utilities/strutils.cpp b/src/utilities/strutils.cpp
index c254b982..9d03a6c9 100644
--- a/src/utilities/strutils.cpp
+++ b/src/utilities/strutils.cpp
@@ -94,17 +94,17 @@ QStringList Updateify(const QStringList &list) {
QString DecodeHtmlEntities(const QString &text) {
QString copy(text);
- copy.replace("&", "&")
- .replace("&", "&")
- .replace(""", "\"")
- .replace(""", "\"")
- .replace("'", "'")
- .replace("'", "'")
- .replace("<", "<")
- .replace("<", "<")
- .replace(">", ">")
- .replace(">", ">")
- .replace("'", "'");
+ copy.replace(QLatin1String("&"), QLatin1String("&"))
+ .replace(QLatin1String("&"), QLatin1String("&"))
+ .replace(QLatin1String("""), QLatin1String("\""))
+ .replace(QLatin1String("""), QLatin1String("\""))
+ .replace(QLatin1String("'"), QLatin1String("'"))
+ .replace(QLatin1String("'"), QLatin1String("'"))
+ .replace(QLatin1String("<"), QLatin1String("<"))
+ .replace(QLatin1String("<"), QLatin1String("<"))
+ .replace(QLatin1String(">"), QLatin1String(">"))
+ .replace(QLatin1String(">"), QLatin1String(">"))
+ .replace(QLatin1String("'"), QLatin1String("'"));
return copy;
@@ -112,7 +112,7 @@ QString DecodeHtmlEntities(const QString &text) {
QString ReplaceMessage(const QString &message, const Song &song, const QString &newline, const bool html_escaped) {
- QRegularExpression variable_replacer("[%][a-z]+[%]");
+ QRegularExpression variable_replacer(QStringLiteral("[%][a-z]+[%]"));
QString copy(message);
// Replace the first line
@@ -125,7 +125,7 @@ QString ReplaceMessage(const QString &message, const Song &song, const QString &
pos += match.capturedLength();
}
- qint64 index_of = copy.indexOf(QRegularExpression(" - (>|$)"));
+ qint64 index_of = copy.indexOf(QRegularExpression(QStringLiteral(" - (>|$)")));
if (index_of >= 0) copy = copy.remove(index_of, 3);
return copy;
diff --git a/src/utilities/timeutils.cpp b/src/utilities/timeutils.cpp
index 6afcf024..16d8403b 100644
--- a/src/utilities/timeutils.cpp
+++ b/src/utilities/timeutils.cpp
@@ -67,7 +67,7 @@ QString WordyTime(const quint64 seconds) {
if (days > 0) parts << (days == 1 ? QObject::tr("1 day") : QObject::tr("%1 days").arg(days));
parts << PrettyTime(static_cast(seconds - days * 60 * 60 * 24));
- return parts.join(" ");
+ return parts.join(QStringLiteral(" "));
}
@@ -107,7 +107,7 @@ QString PrettyFutureDate(const QDate date) {
QDateTime ParseRFC822DateTime(const QString &text) {
- QRegularExpression regexp("(\\d{1,2}) (\\w{3,12}) (\\d+) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})");
+ QRegularExpression regexp(QStringLiteral("(\\d{1,2}) (\\w{3,12}) (\\d+) (\\d{1,2}):(\\d{1,2}):(\\d{1,2})"));
QRegularExpressionMatch re_match = regexp.match(text);
if (!re_match.hasMatch()) {
return QDateTime();
@@ -116,30 +116,30 @@ QDateTime ParseRFC822DateTime(const QString &text) {
enum class MatchNames { DAYS = 1, MONTHS, YEARS, HOURS, MINUTES, SECONDS };
QMap monthmap;
- monthmap["Jan"] = 1;
- monthmap["Feb"] = 2;
- monthmap["Mar"] = 3;
- monthmap["Apr"] = 4;
- monthmap["May"] = 5;
- monthmap["Jun"] = 6;
- monthmap["Jul"] = 7;
- monthmap["Aug"] = 8;
- monthmap["Sep"] = 9;
- monthmap["Oct"] = 10;
- monthmap["Nov"] = 11;
- monthmap["Dec"] = 12;
- monthmap["January"] = 1;
- monthmap["February"] = 2;
- monthmap["March"] = 3;
- monthmap["April"] = 4;
- monthmap["May"] = 5;
- monthmap["June"] = 6;
- monthmap["July"] = 7;
- monthmap["August"] = 8;
- monthmap["September"] = 9;
- monthmap["October"] = 10;
- monthmap["November"] = 11;
- monthmap["December"] = 12;
+ monthmap[QStringLiteral("Jan")] = 1;
+ monthmap[QStringLiteral("Feb")] = 2;
+ monthmap[QStringLiteral("Mar")] = 3;
+ monthmap[QStringLiteral("Apr")] = 4;
+ monthmap[QStringLiteral("May")] = 5;
+ monthmap[QStringLiteral("Jun")] = 6;
+ monthmap[QStringLiteral("Jul")] = 7;
+ monthmap[QStringLiteral("Aug")] = 8;
+ monthmap[QStringLiteral("Sep")] = 9;
+ monthmap[QStringLiteral("Oct")] = 10;
+ monthmap[QStringLiteral("Nov")] = 11;
+ monthmap[QStringLiteral("Dec")] = 12;
+ monthmap[QStringLiteral("January")] = 1;
+ monthmap[QStringLiteral("February")] = 2;
+ monthmap[QStringLiteral("March")] = 3;
+ monthmap[QStringLiteral("April")] = 4;
+ monthmap[QStringLiteral("May")] = 5;
+ monthmap[QStringLiteral("June")] = 6;
+ monthmap[QStringLiteral("July")] = 7;
+ monthmap[QStringLiteral("August")] = 8;
+ monthmap[QStringLiteral("September")] = 9;
+ monthmap[QStringLiteral("October")] = 10;
+ monthmap[QStringLiteral("November")] = 11;
+ monthmap[QStringLiteral("December")] = 12;
const QDate date(re_match.captured(static_cast(MatchNames::YEARS)).toInt(), monthmap[re_match.captured(static_cast(MatchNames::MONTHS))], re_match.captured(static_cast(MatchNames::DAYS)).toInt());
diff --git a/src/widgets/busyindicator.cpp b/src/widgets/busyindicator.cpp
index 4d490bd7..23ea3f16 100644
--- a/src/widgets/busyindicator.cpp
+++ b/src/widgets/busyindicator.cpp
@@ -48,7 +48,7 @@ BusyIndicator::BusyIndicator(QWidget *parent)
void BusyIndicator::Init(const QString &text) {
- movie_ = new QMovie(":/pictures/spinner.gif"),
+ movie_ = new QMovie(QStringLiteral(":/pictures/spinner.gif")),
label_ = new QLabel;
QLabel *icon = new QLabel;
diff --git a/src/widgets/fancytabwidget.cpp b/src/widgets/fancytabwidget.cpp
index 6dd596a5..70c9fc19 100644
--- a/src/widgets/fancytabwidget.cpp
+++ b/src/widgets/fancytabwidget.cpp
@@ -208,7 +208,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
// Restore any label text that was hidden/cached for the IconOnlyTabs mode
if (labelCache.count() > 0 && tabWidget->mode() != FancyTabWidget::Mode::IconOnlyTabs) {
for (int i = 0; i < count(); ++i) {
- setTabToolTip(i, "");
+ setTabToolTip(i, QLatin1String(""));
setTabText(i, labelCache[tabWidget->widget(i)]);
}
labelCache.clear();
@@ -219,7 +219,7 @@ class FancyTabBar : public QTabBar { // clazy:exclude=missing-qobject-macro
for (int i = 0; i < count(); ++i) {
labelCache[tabWidget->widget(i)] = tabText(i);
setTabToolTip(i, tabText(i));
- setTabText(i, "");
+ setTabText(i, QLatin1String(""));
}
}
QTabBar::paintEvent(pe);
@@ -461,7 +461,7 @@ FancyTabWidget::FancyTabWidget(QWidget *parent)
setMovable(true);
setElideMode(Qt::ElideNone);
setUsesScrollButtons(true);
- if (QApplication::style() && QApplication::style()->objectName().contains(QRegularExpression("^adwaita.*$", QRegularExpression::CaseInsensitiveOption))) {
+ if (QApplication::style() && QApplication::style()->objectName().contains(QRegularExpression(QStringLiteral("^adwaita.*$"), QRegularExpression::CaseInsensitiveOption))) {
#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
style_ = new FancyTabWidgetProxyStyle(QApplication::style()->name());
#else
diff --git a/src/widgets/favoritewidget.cpp b/src/widgets/favoritewidget.cpp
index c9083229..e421908b 100644
--- a/src/widgets/favoritewidget.cpp
+++ b/src/widgets/favoritewidget.cpp
@@ -36,8 +36,8 @@ FavoriteWidget::FavoriteWidget(const int tab_index, const bool favorite, QWidget
: QWidget(parent),
tab_index_(tab_index),
favorite_(favorite),
- on_(IconLoader::Load("star")),
- off_(IconLoader::Load("star-grey")),
+ on_(IconLoader::Load(QStringLiteral("star"))),
+ off_(IconLoader::Load(QStringLiteral("star-grey"))),
rect_(0, 0, kStarSize, kStarSize) {}
void FavoriteWidget::SetFavorite(const bool favorite) {
diff --git a/src/widgets/fileview.cpp b/src/widgets/fileview.cpp
index 1b3aeffa..5e80a9e4 100644
--- a/src/widgets/fileview.cpp
+++ b/src/widgets/fileview.cpp
@@ -65,15 +65,15 @@ FileView::FileView(QWidget *parent)
model_(nullptr),
undo_stack_(new QUndoStack(this)),
task_manager_(nullptr),
- storage_(new FilesystemMusicStorage(Song::Source::LocalFile, "/")) {
+ storage_(new FilesystemMusicStorage(Song::Source::LocalFile, QStringLiteral("/"))) {
ui_->setupUi(this);
// Icons
- ui_->back->setIcon(IconLoader::Load("go-previous"));
- ui_->forward->setIcon(IconLoader::Load("go-next"));
- ui_->home->setIcon(IconLoader::Load("go-home"));
- ui_->up->setIcon(IconLoader::Load("go-up"));
+ ui_->back->setIcon(IconLoader::Load(QStringLiteral("go-previous")));
+ ui_->forward->setIcon(IconLoader::Load(QStringLiteral("go-next")));
+ ui_->home->setIcon(IconLoader::Load(QStringLiteral("go-home")));
+ ui_->up->setIcon(IconLoader::Load(QStringLiteral("go-up")));
QObject::connect(ui_->back, &QToolButton::clicked, undo_stack_, &QUndoStack::undo);
QObject::connect(ui_->forward, &QToolButton::clicked, undo_stack_, &QUndoStack::redo);
@@ -94,7 +94,7 @@ FileView::FileView(QWidget *parent)
QObject::connect(ui_->list, &FileViewList::EditTags, this, &FileView::EditTags);
QString filter(FileView::kFileFilter);
- filter_list_ << filter.split(" ");
+ filter_list_ << filter.split(QStringLiteral(" "));
ReloadSettings();
diff --git a/src/widgets/fileviewlist.cpp b/src/widgets/fileviewlist.cpp
index 3a6c1fdb..6e55d18a 100644
--- a/src/widgets/fileviewlist.cpp
+++ b/src/widgets/fileviewlist.cpp
@@ -39,18 +39,18 @@ FileViewList::FileViewList(QWidget *parent)
: QListView(parent),
menu_(new QMenu(this)) {
- menu_->addAction(IconLoader::Load("media-playback-start"), tr("Append to current playlist"), this, &FileViewList::AddToPlaylistSlot);
- menu_->addAction(IconLoader::Load("media-playback-start"), tr("Replace current playlist"), this, &FileViewList::LoadSlot);
- menu_->addAction(IconLoader::Load("document-new"), tr("Open in new playlist"), this, &FileViewList::OpenInNewPlaylistSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Append to current playlist"), this, &FileViewList::AddToPlaylistSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("media-playback-start")), tr("Replace current playlist"), this, &FileViewList::LoadSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("document-new")), tr("Open in new playlist"), this, &FileViewList::OpenInNewPlaylistSlot);
menu_->addSeparator();
- menu_->addAction(IconLoader::Load("edit-copy"), tr("Copy to collection..."), this, &FileViewList::CopyToCollectionSlot);
- menu_->addAction(IconLoader::Load("go-jump"), tr("Move to collection..."), this, &FileViewList::MoveToCollectionSlot);
- menu_->addAction(IconLoader::Load("device"), tr("Copy to device..."), this, &FileViewList::CopyToDeviceSlot);
- menu_->addAction(IconLoader::Load("edit-delete"), tr("Delete from disk..."), this, &FileViewList::DeleteSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("edit-copy")), tr("Copy to collection..."), this, &FileViewList::CopyToCollectionSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("go-jump")), tr("Move to collection..."), this, &FileViewList::MoveToCollectionSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("device")), tr("Copy to device..."), this, &FileViewList::CopyToDeviceSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("edit-delete")), tr("Delete from disk..."), this, &FileViewList::DeleteSlot);
menu_->addSeparator();
- menu_->addAction(IconLoader::Load("edit-rename"), tr("Edit track information..."), this, &FileViewList::EditTagsSlot);
- menu_->addAction(IconLoader::Load("document-open-folder"), tr("Show in file browser..."), this, &FileViewList::ShowInBrowser);
+ menu_->addAction(IconLoader::Load(QStringLiteral("edit-rename")), tr("Edit track information..."), this, &FileViewList::EditTagsSlot);
+ menu_->addAction(IconLoader::Load(QStringLiteral("document-open-folder")), tr("Show in file browser..."), this, &FileViewList::ShowInBrowser);
setAttribute(Qt::WA_MacShowFocusRect, false);
diff --git a/src/widgets/freespacebar.cpp b/src/widgets/freespacebar.cpp
index abc135c9..1cf0137b 100644
--- a/src/widgets/freespacebar.cpp
+++ b/src/widgets/freespacebar.cpp
@@ -226,7 +226,7 @@ QString FreeSpaceBar::TextForSize(const QString &prefix, const quint64 size) {
ret = Utilities::PrettySize(size);
}
else {
- ret = "0 MB";
+ ret = QStringLiteral("0 MB");
}
if (!prefix.isEmpty()) ret.prepend(prefix + " ");
diff --git a/src/widgets/groupediconview.cpp b/src/widgets/groupediconview.cpp
index 5dc32203..c1a6b36a 100644
--- a/src/widgets/groupediconview.cpp
+++ b/src/widgets/groupediconview.cpp
@@ -56,7 +56,7 @@ GroupedIconView::GroupedIconView(QWidget *parent)
header_spacing_(10),
header_indent_(5),
item_indent_(10),
- header_text_("%1") {
+ header_text_(QStringLiteral("%1")) {
setFlow(LeftToRight);
setViewMode(IconMode);
diff --git a/src/widgets/lineedit.cpp b/src/widgets/lineedit.cpp
index 068ad029..4b379bf7 100644
--- a/src/widgets/lineedit.cpp
+++ b/src/widgets/lineedit.cpp
@@ -51,10 +51,10 @@ ExtendedEditor::ExtendedEditor(QWidget *widget, int extra_right_padding, bool dr
font_point_size_(widget->font().pointSizeF() - 1),
is_rtl_(false) {
- clear_button_->setIcon(IconLoader::Load("edit-clear-locationbar-ltr"));
+ clear_button_->setIcon(IconLoader::Load(QStringLiteral("edit-clear-locationbar-ltr")));
clear_button_->setIconSize(QSize(16, 16));
clear_button_->setCursor(Qt::ArrowCursor);
- clear_button_->setStyleSheet("QToolButton { border: none; padding: 0px; }");
+ clear_button_->setStyleSheet(QStringLiteral("QToolButton { border: none; padding: 0px; }"));
clear_button_->setToolTip(QWidget::tr("Clear"));
clear_button_->setFocusPolicy(Qt::NoFocus);
@@ -64,7 +64,7 @@ ExtendedEditor::ExtendedEditor(QWidget *widget, int extra_right_padding, bool dr
reset_button_->setIcon(widget->style()->standardIcon(QStyle::SP_DialogResetButton, &opt, widget));
reset_button_->setIconSize(QSize(16, 16));
reset_button_->setCursor(Qt::ArrowCursor);
- reset_button_->setStyleSheet("QToolButton { border: none; padding: 0px; }");
+ reset_button_->setStyleSheet(QStringLiteral("QToolButton { border: none; padding: 0px; }"));
reset_button_->setToolTip(QWidget::tr("Reset"));
reset_button_->setFocusPolicy(Qt::NoFocus);
reset_button_->hide();
@@ -112,7 +112,7 @@ void ExtendedEditor::UpdateButtonGeometry() {
const int left = frame_width + 1 + (has_clear_button() ? clear_button_->sizeHint().width() : 0);
const int right = frame_width + 1 + (has_reset_button() ? reset_button_->sizeHint().width() : 0);
- widget_->setStyleSheet(QString("QLineEdit { padding-left: %1px; padding-right: %2px; }").arg(left).arg(right));
+ widget_->setStyleSheet(QStringLiteral("QLineEdit { padding-left: %1px; padding-right: %2px; }").arg(left).arg(right));
QSize msz = widget_->minimumSizeHint();
widget_->setMinimumSize(msz.width() + (clear_button_->sizeHint().width() + frame_width + 1) * 2 + extra_right_padding_, qMax(msz.height(), clear_button_->sizeHint().height() + frame_width * 2 + 2));
@@ -251,7 +251,7 @@ void CheckBox::resizeEvent(QResizeEvent *e) {
QString SpinBox::textFromValue(int val) const {
if (val <= 0 && !hint_.isEmpty()) {
- return "-";
+ return QStringLiteral("-");
}
return QSpinBox::textFromValue(val);
diff --git a/src/widgets/linetextedit.cpp b/src/widgets/linetextedit.cpp
index 6923f378..c31709e4 100644
--- a/src/widgets/linetextedit.cpp
+++ b/src/widgets/linetextedit.cpp
@@ -45,7 +45,7 @@ QSize LineTextEdit::sizeHint() const {
static const int kMargin = 5;
int h = 2 * kMargin + qMax(fm.height(), 14);
- int w = 2 * kMargin + fm.horizontalAdvance("W") * 15;
+ int w = 2 * kMargin + fm.horizontalAdvance(QStringLiteral("W")) * 15;
return QSize(w, h);
diff --git a/src/widgets/loginstatewidget.cpp b/src/widgets/loginstatewidget.cpp
index 5135e791..f17f624d 100644
--- a/src/widgets/loginstatewidget.cpp
+++ b/src/widgets/loginstatewidget.cpp
@@ -42,10 +42,10 @@ LoginStateWidget::LoginStateWidget(QWidget *parent)
ui_->account_type->hide();
ui_->busy->hide();
- ui_->sign_out->setIcon(IconLoader::Load("list-remove"));
- ui_->signed_in_icon_label->setPixmap(IconLoader::Load("dialog-ok-apply").pixmap(22));
- ui_->expires_icon_label->setPixmap(IconLoader::Load("dialog-password").pixmap(22));
- ui_->account_type_icon_label->setPixmap(IconLoader::Load("dialog-warning").pixmap(22));
+ ui_->sign_out->setIcon(IconLoader::Load(QStringLiteral("list-remove")));
+ ui_->signed_in_icon_label->setPixmap(IconLoader::Load(QStringLiteral("dialog-ok-apply")).pixmap(22));
+ ui_->expires_icon_label->setPixmap(IconLoader::Load(QStringLiteral("dialog-password")).pixmap(22));
+ ui_->account_type_icon_label->setPixmap(IconLoader::Load(QStringLiteral("dialog-warning")).pixmap(22));
QFont bold_font(font());
bold_font.setBold(true);
diff --git a/src/widgets/multiloadingindicator.cpp b/src/widgets/multiloadingindicator.cpp
index 41bc6aa3..0161ee0c 100644
--- a/src/widgets/multiloadingindicator.cpp
+++ b/src/widgets/multiloadingindicator.cpp
@@ -76,16 +76,16 @@ void MultiLoadingIndicator::UpdateText() {
if (task.progress_max > 0) {
int percentage = static_cast(static_cast(task.progress) / static_cast(task.progress_max) * 100.0F);
- task_text += QString(" %1%").arg(percentage);
+ task_text += QStringLiteral(" %1%").arg(percentage);
}
strings << task_text;
}
- text_ = strings.join(", ");
+ text_ = strings.join(QStringLiteral(", "));
if (!text_.isEmpty()) {
text_[0] = text_[0].toUpper();
- text_ += "...";
+ text_ += QLatin1String("...");
}
emit TaskCountChange(static_cast(tasks.count()));
diff --git a/src/widgets/playingwidget.cpp b/src/widgets/playingwidget.cpp
index ad8e3da9..599149ef 100644
--- a/src/widgets/playingwidget.cpp
+++ b/src/widgets/playingwidget.cpp
@@ -117,8 +117,8 @@ PlayingWidget::PlayingWidget(QWidget *parent)
details_->setUndoRedoEnabled(false);
// add placeholder text to get the correct height
if (mode_ == Mode::LargeSongDetails) {
- details_->setDefaultStyleSheet("p { font-size: small; font-weight: bold; }");
- details_->setHtml(QString("
"));
+ details_->setDefaultStyleSheet(QStringLiteral("p { font-size: small; font-weight: bold; }"));
+ details_->setHtml(QStringLiteral("
"));
}
UpdateHeight();
@@ -402,20 +402,20 @@ void PlayingWidget::UpdateHeight() {
void PlayingWidget::UpdateDetailsText() {
QString html;
- details_->setDefaultStyleSheet("p { font-size: small; font-weight: bold; }");
+ details_->setDefaultStyleSheet(QStringLiteral("p { font-size: small; font-weight: bold; }"));
switch (mode_) {
case Mode::SmallSongDetails:
details_->setTextWidth(-1);
- html += "";
+ html += QLatin1String("
");
break;
case Mode::LargeSongDetails:
details_->setTextWidth(desired_height_);
- html += "
";
+ html += QLatin1String("
");
break;
}
- html += QString("%1 %2 %3").arg(song_.PrettyTitle().toHtmlEscaped(), song_.artist().toHtmlEscaped(), song_.album().toHtmlEscaped());
- html += "
";
+ html += QStringLiteral("%1 %2 %3").arg(song_.PrettyTitle().toHtmlEscaped(), song_.artist().toHtmlEscaped(), song_.album().toHtmlEscaped());
+ html += QLatin1String("");
details_->setHtml(html);
diff --git a/src/widgets/qsearchfield_qt.cpp b/src/widgets/qsearchfield_qt.cpp
index d7f13902..414b3299 100644
--- a/src/widgets/qsearchfield_qt.cpp
+++ b/src/widgets/qsearchfield_qt.cpp
@@ -72,11 +72,11 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) {
QObject::connect(lineEdit, &QLineEdit::textChanged, this, &QSearchField::setText);
QPushButton *clearbutton = new QPushButton(this);
- QIcon clearIcon(IconLoader::Load("edit-clear-locationbar-ltr"));
+ QIcon clearIcon(IconLoader::Load(QStringLiteral("edit-clear-locationbar-ltr")));
clearbutton->setIcon(clearIcon);
clearbutton->setIconSize(QSize(20, 20));
- clearbutton->setStyleSheet("border: none; padding: 2px;");
+ clearbutton->setStyleSheet(QStringLiteral("border: none; padding: 2px;"));
clearbutton->resize(clearbutton->sizeHint());
QObject::connect(clearbutton, &QPushButton::clicked, this, &QSearchField::clear);
@@ -85,7 +85,7 @@ QSearchField::QSearchField(QWidget *parent) : QWidget(parent) {
const int frame_width = lineEdit->style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
- lineEdit->setStyleSheet(QString("QLineEdit { padding-left: %1px; } ").arg(clearbutton->width()));
+ lineEdit->setStyleSheet(QStringLiteral("QLineEdit { padding-left: %1px; } ").arg(clearbutton->width()));
const int width = frame_width + qMax(lineEdit->minimumSizeHint().width(), pimpl->clearButtonPaddedWidth());
const int height = frame_width + qMax(lineEdit->minimumSizeHint().height(), pimpl->clearButtonPaddedHeight());
lineEdit->setMinimumSize(width, height);
@@ -103,7 +103,7 @@ void QSearchField::setIconSize(const int iconsize) {
pimpl->clearbutton_->setIconSize(QSize(iconsize, iconsize));
pimpl->clearbutton_->resize(pimpl->clearbutton_->sizeHint());
- pimpl->lineedit_->setStyleSheet(QString("QLineEdit { padding-left: %1px; } ").arg(pimpl->clearbutton_->width()));
+ pimpl->lineedit_->setStyleSheet(QStringLiteral("QLineEdit { padding-left: %1px; } ").arg(pimpl->clearbutton_->width()));
const int frame_width = pimpl->lineedit_->style()->pixelMetric(QStyle::PM_DefaultFrameWidth);
const int width = frame_width + qMax(pimpl->lineedit_->minimumSizeHint().width(), pimpl->clearButtonPaddedWidth());
const int height = frame_width + qMax(pimpl->lineedit_->minimumSizeHint().height(), pimpl->clearButtonPaddedHeight());
diff --git a/src/widgets/trackslider.cpp b/src/widgets/trackslider.cpp
index f580e721..b4991b10 100644
--- a/src/widgets/trackslider.cpp
+++ b/src/widgets/trackslider.cpp
@@ -94,8 +94,8 @@ void TrackSlider::SetApplication(Application *app) {
void TrackSlider::UpdateLabelWidth() {
// We set the label's minimum size, so it won't resize itself when the user is dragging the slider.
- UpdateLabelWidth(ui_->elapsed, "0:00:00");
- UpdateLabelWidth(ui_->remaining, "-0:00:00");
+ UpdateLabelWidth(ui_->elapsed, QStringLiteral("0:00:00"));
+ UpdateLabelWidth(ui_->remaining, QStringLiteral("-0:00:00"));
}
@@ -158,8 +158,8 @@ void TrackSlider::UpdateTimes(const int elapsed) {
void TrackSlider::SetStopped() {
setEnabled(false);
- ui_->elapsed->setText("0:00:00");
- ui_->remaining->setText("0:00:00");
+ ui_->elapsed->setText(QStringLiteral("0:00:00"));
+ ui_->remaining->setText(QStringLiteral("0:00:00"));
setting_value_ = true;
ui_->slider->setValue(0);
diff --git a/src/widgets/volumeslider.cpp b/src/widgets/volumeslider.cpp
index 722e7219..201768d1 100644
--- a/src/widgets/volumeslider.cpp
+++ b/src/widgets/volumeslider.cpp
@@ -115,7 +115,7 @@ void VolumeSlider::paintEvent(QPaintEvent*) {
void VolumeSlider::generateGradient() {
- const QImage mask(":/pictures/volumeslider-gradient.png");
+ const QImage mask(QStringLiteral(":/pictures/volumeslider-gradient.png"));
QImage gradient_image(mask.size(), QImage::Format_ARGB32_Premultiplied);
QPainter p(&gradient_image);
@@ -177,8 +177,8 @@ QPixmap VolumeSlider::drawVolumePixmap() const {
void VolumeSlider::drawVolumeSliderHandle() {
- QImage pixmapHandle(":/pictures/volumeslider-handle.png");
- QImage pixmapHandleGlow(":/pictures/volumeslider-handle_glow.png");
+ QImage pixmapHandle(QStringLiteral(":/pictures/volumeslider-handle.png"));
+ QImage pixmapHandleGlow(QStringLiteral(":/pictures/volumeslider-handle_glow.png"));
QImage pixmapHandleGlow_image(pixmapHandleGlow.size(), QImage::Format_ARGB32_Premultiplied);
QPainter painter(&pixmapHandleGlow_image);
@@ -242,13 +242,13 @@ void VolumeSlider::contextMenuEvent(QContextMenuEvent *e) {
QHash values;
QMenu menu;
- menu.setTitle("Volume");
- values[menu.addAction("100%")] = 100;
- values[menu.addAction("80%")] = 80;
- values[menu.addAction("60%")] = 60;
- values[menu.addAction("40%")] = 40;
- values[menu.addAction("20%")] = 20;
- values[menu.addAction("0%")] = 0;
+ menu.setTitle(QStringLiteral("Volume"));
+ values[menu.addAction(QStringLiteral("100%"))] = 100;
+ values[menu.addAction(QStringLiteral("80%"))] = 80;
+ values[menu.addAction(QStringLiteral("60%"))] = 60;
+ values[menu.addAction(QStringLiteral("40%"))] = 40;
+ values[menu.addAction(QStringLiteral("20%"))] = 20;
+ values[menu.addAction(QStringLiteral("0%"))] = 0;
QAction *ret = menu.exec(mapToGlobal(e->pos()));
if (ret) {