Disable automatic conversions from 8-bit strings

This commit is contained in:
Jonas Kvinge
2024-04-11 02:56:01 +02:00
parent 58944993b8
commit 0c6872b352
310 changed files with 2501 additions and 2332 deletions

View File

@@ -64,6 +64,7 @@
#include "core/mimedata.h"
#include "core/tagreaderclient.h"
#include "core/song.h"
#include "core/settings.h"
#include "utilities/timeconstants.h"
#include "collection/collection.h"
#include "collection/collectionbackend.h"
@@ -292,7 +293,7 @@ QVariant Playlist::data(const QModelIndex &idx, int role) const {
case Qt::EditRole:
case Qt::ToolTipRole:
case Qt::DisplayRole: {
case Qt::DisplayRole:{
PlaylistItemPtr item = items_[idx.row()];
Song song = item->Metadata();
@@ -772,7 +773,7 @@ Qt::ItemFlags Playlist::flags(const QModelIndex &idx) const {
QStringList Playlist::mimeTypes() const {
return QStringList() << QStringLiteral("text/uri-list") << kRowsMimetype;
return QStringList() << QStringLiteral("text/uri-list") << QLatin1String(kRowsMimetype);
}
@@ -800,7 +801,7 @@ bool Playlist::dropMimeData(const QMimeData *data, Qt::DropAction action, int ro
if (const SongMimeData *song_data = qobject_cast<const SongMimeData*>(data)) {
// Dragged from a collection
// We want to check if these songs are from the actual local file backend, if they are we treat them differently.
if (song_data->backend && song_data->backend->songs_table() == SCollection::kSongsTable) {
if (song_data->backend && song_data->backend->songs_table() == QLatin1String(SCollection::kSongsTable)) {
InsertSongItems<CollectionPlaylistItem>(song_data->songs, row, play_now, enqueue_now, enqueue_next_now);
}
else {
@@ -819,7 +820,7 @@ bool Playlist::dropMimeData(const QMimeData *data, Qt::DropAction action, int ro
else if (const RadioMimeData *radio_data = qobject_cast<const RadioMimeData*>(data)) {
InsertRadioItems(radio_data->songs, row, play_now, enqueue_now, enqueue_next_now);
}
else if (data->hasFormat(kRowsMimetype)) {
else if (data->hasFormat(QLatin1String(kRowsMimetype))) {
// Dragged from the playlist
// Rearranging it is tricky...
@@ -829,7 +830,7 @@ bool Playlist::dropMimeData(const QMimeData *data, Qt::DropAction action, int ro
qint64 pid = 0;
qint64 own_pid = QCoreApplication::applicationPid();
QDataStream stream(data->data(kRowsMimetype));
QDataStream stream(data->data(QLatin1String(kRowsMimetype)));
stream.readRawData(reinterpret_cast<char*>(&source_playlist), sizeof(source_playlist)); // NOLINT(bugprone-sizeof-expression)
stream >> source_rows;
if (!stream.atEnd()) {
@@ -868,7 +869,7 @@ bool Playlist::dropMimeData(const QMimeData *data, Qt::DropAction action, int ro
}
}
}
else if (data->hasFormat(kCddaMimeType)) {
else if (data->hasFormat(QLatin1String(kCddaMimeType))) {
SongLoaderInserter *inserter = new SongLoaderInserter(task_manager_, collection_backend_, backend_->app()->player());
QObject::connect(inserter, &SongLoaderInserter::Error, this, &Playlist::Error);
inserter->LoadAudioCD(this, row, play_now, enqueue_now, enqueue_next_now);
@@ -1291,7 +1292,7 @@ QMimeData *Playlist::mimeData(const QModelIndexList &indexes) const {
buf.close();
mimedata->setUrls(urls);
mimedata->setData(kRowsMimetype, buf.data());
mimedata->setData(QLatin1String(kRowsMimetype), buf.data());
return mimedata;
@@ -1361,8 +1362,8 @@ bool Playlist::ComparePathDepths(const Qt::SortOrder order, PlaylistItemPtr _a,
PlaylistItemPtr a = order == Qt::AscendingOrder ? _a : _b;
PlaylistItemPtr b = order == Qt::AscendingOrder ? _b : _a;
qint64 a_dir_level = a->Url().path().count('/');
qint64 b_dir_level = b->Url().path().count('/');
qint64 a_dir_level = a->Url().path().count(QLatin1Char('/'));
qint64 b_dir_level = b->Url().path().count(QLatin1Char('/'));
return a_dir_level < b_dir_level;
@@ -1615,7 +1616,7 @@ void Playlist::ItemsLoaded() {
emit RestoreFinished();
QSettings s;
Settings s;
s.beginGroup(kSettingsGroup);
bool greyout = s.value("greyout_songs_startup", true).toBool();
s.endGroup();

View File

@@ -116,11 +116,11 @@ PlaylistBackend::PlaylistList PlaylistBackend::GetPlaylists(const GetPlaylistsFl
}
QString condition;
if (!condition_list.isEmpty()) {
condition = " WHERE " + condition_list.join(QStringLiteral(" OR "));
condition = QStringLiteral(" WHERE ") + condition_list.join(QStringLiteral(" OR "));
}
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 " + condition + " ORDER BY ui_order");
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 ") + condition + QStringLiteral(" ORDER BY ui_order"));
if (!q.Exec()) {
db_->ReportErrors(q);
return ret;
@@ -184,7 +184,7 @@ PlaylistItemPtrList PlaylistBackend::GetPlaylistItems(const int playlist) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
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";
QString query = QStringLiteral("SELECT songs.ROWID, ") + Song::JoinSpec(QStringLiteral("songs")) + QStringLiteral(", p.ROWID, ") + Song::JoinSpec(QStringLiteral("p")) + QStringLiteral(", 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);
@@ -219,7 +219,7 @@ SongList PlaylistBackend::GetPlaylistSongs(const int playlist) {
QMutexLocker l(db_->Mutex());
QSqlDatabase db(db_->Connect());
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";
QString query = QStringLiteral("SELECT songs.ROWID, ") + Song::JoinSpec(QStringLiteral("songs")) + QStringLiteral(", p.ROWID, ") + Song::JoinSpec(QStringLiteral("p")) + QStringLiteral(", 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);
@@ -296,7 +296,7 @@ PlaylistItemPtr PlaylistBackend::RestoreCueData(PlaylistItemPtr item, SharedPtr<
QFile cue_file(cue_path);
if (!cue_file.open(QIODevice::ReadOnly)) return item;
song_list = cue_parser.Load(&cue_file, cue_path, QDir(cue_path.section('/', 0, -2)));
song_list = cue_parser.Load(&cue_file, cue_path, QDir(cue_path.section(QLatin1Char('/'), 0, -2)));
cue_file.close();
state->cached_cues_[cue_path] = song_list;
}
@@ -348,7 +348,7 @@ void PlaylistBackend::SavePlaylist(int playlist, const PlaylistItemPtrList &item
// Save the new ones
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.prepare(QStringLiteral("INSERT INTO playlist_items (playlist, type, collection_id, ") + Song::kColumnSpec + QStringLiteral(") VALUES (:playlist, :type, :collection_id, ") + Song::kBindSpec + QStringLiteral(")"));
q.BindValue(QStringLiteral(":playlist"), playlist);
item->BindToQuery(&q);

View File

@@ -48,6 +48,7 @@
#include "core/shared_ptr.h"
#include "core/iconloader.h"
#include "core/settings.h"
#include "playlist.h"
#include "playlisttabbar.h"
#include "playlistview.h"
@@ -135,7 +136,7 @@ PlaylistContainer::PlaylistContainer(QWidget *parent)
QStringLiteral("</p><p>") +
tr("Search terms for numerical fields can be prefixed with %1 or %2 to refine the search, e.g.: ")
.arg(" =, !=, &lt;, &gt;, &lt;=", "&gt;=") +
.arg(QStringLiteral(" =, !=, &lt;, &gt;, &lt;="), QStringLiteral("&gt;=")) +
QStringLiteral("<span style=\"font-weight:600;\">") +
tr("rating") +
QStringLiteral("</span>") +
@@ -144,7 +145,7 @@ PlaylistContainer::PlaylistContainer(QWidget *parent)
QStringLiteral("</p><p>") +
tr("Multiple search terms can also be combined with \"%1\" (default) and \"%2\", as well as grouped with parentheses. ")
.arg("AND", "OR") +
.arg(QStringLiteral("AND"), QStringLiteral("OR")) +
QStringLiteral("</p><p><span style=\"font-weight:600;\">") +
tr("Available fields") +
@@ -268,7 +269,7 @@ void PlaylistContainer::SetViewModel(Playlist *playlist, const int scroll_positi
void PlaylistContainer::ReloadSettings() {
QSettings s;
Settings s;
s.beginGroup(AppearanceSettingsPage::kSettingsGroup);
int iconsize = s.value(AppearanceSettingsPage::kIconSizePlaylistButtons, 20).toInt();
s.endGroup();
@@ -305,11 +306,11 @@ void PlaylistContainer::FocusSearchField() {
}
void PlaylistContainer::ActivePlaying() {
UpdateActiveIcon(QIcon(":/pictures/tiny-play.png"));
UpdateActiveIcon(QIcon(QStringLiteral(":/pictures/tiny-play.png")));
}
void PlaylistContainer::ActivePaused() {
UpdateActiveIcon(QIcon(":/pictures/tiny-pause.png"));
UpdateActiveIcon(QIcon(QStringLiteral(":/pictures/tiny-pause.png")));
}
void PlaylistContainer::ActiveStopped() { UpdateActiveIcon(QIcon()); }

View File

@@ -45,6 +45,7 @@ class PlaylistView;
class Ui_PlaylistContainer;
#include "core/shared_ptr.h"
#include "core/settings.h"
class PlaylistContainer : public QWidget {
Q_OBJECT
@@ -122,7 +123,7 @@ class PlaylistContainer : public QWidget {
QAction *redo_;
Playlist *playlist_;
QSettings settings_;
Settings settings_;
bool starting_up_;
bool tab_bar_visible_;

View File

@@ -110,7 +110,7 @@ void QueuedItemDelegate::DrawBox(QPainter *painter, const QRect line_rect, const
smaller.setBold(true);
if (width == -1) {
width = QFontMetrics(font).horizontalAdvance(text + " ");
width = QFontMetrics(font).horizontalAdvance(text + QStringLiteral(" "));
}
QRect rect(line_rect);
@@ -175,19 +175,19 @@ QString PlaylistDelegateBase::displayText(const QVariant &value, const QLocale&)
#else
switch (static_cast<QMetaType::Type>(value.type())) {
#endif
case QMetaType::Int: {
case QMetaType::Int:{
int v = value.toInt();
if (v > 0) text = QString::number(v);
break;
}
case QMetaType::Long:
case QMetaType::LongLong: {
case QMetaType::LongLong:{
qint64 v = value.toLongLong();
if (v > 0) text = QString::number(v);
break;
}
case QMetaType::Float:
case QMetaType::Double: {
case QMetaType::Double:{
double v = value.toDouble();
if (v > 0) text = QString::number(v);
break;
@@ -197,7 +197,7 @@ QString PlaylistDelegateBase::displayText(const QVariant &value, const QLocale&)
break;
}
if (!text.isNull() && !suffix_.isNull()) text += " " + suffix_;
if (!text.isNull() && !suffix_.isNull()) text += QLatin1Char(' ') + suffix_;
return text;
}
@@ -269,7 +269,7 @@ bool PlaylistDelegateBase::helpEvent(QHelpEvent *event, QAbstractItemView *view,
if (text.isEmpty() || !event) return false;
switch (event->type()) {
case QEvent::ToolTip: {
case QEvent::ToolTip:{
QSize real_text = sizeHint(option, idx);
QRect displayed_text = view->visualRect(idx);
bool is_elided = displayed_text.width() < real_text.width();

View File

@@ -358,7 +358,7 @@ FilterTree *FilterParser::parseAndGroup() {
do {
group->add(parseSearchExpression());
advance();
if (iter_ != end_ && *iter_ == QChar(')')) break;
if (iter_ != end_ && *iter_ == QLatin1Char(')')) break;
if (checkOr(false)) {
break;
}
@@ -372,16 +372,16 @@ FilterTree *FilterParser::parseAndGroup() {
bool FilterParser::checkAnd() {
if (iter_ != end_) {
if (*iter_ == QChar('A')) {
if (*iter_ == QLatin1Char('A')) {
buf_ += *iter_;
++iter_;
if (iter_ != end_ && *iter_ == QChar('N')) {
if (iter_ != end_ && *iter_ == QLatin1Char('N')) {
buf_ += *iter_;
++iter_;
if (iter_ != end_ && *iter_ == QChar('D')) {
if (iter_ != end_ && *iter_ == QLatin1Char('D')) {
buf_ += *iter_;
++iter_;
if (iter_ != end_ && (iter_->isSpace() || *iter_ == QChar('-') || *iter_ == '(')) {
if (iter_ != end_ && (iter_->isSpace() || *iter_ == QLatin1Char('-') || *iter_ == QLatin1Char('('))) {
advance();
buf_.clear();
return true;
@@ -397,7 +397,7 @@ bool FilterParser::checkAnd() {
bool FilterParser::checkOr(const bool step_over) {
if (!buf_.isEmpty()) {
if (buf_ == "OR") {
if (buf_ == QLatin1String("OR")) {
if (step_over) {
buf_.clear();
advance();
@@ -407,13 +407,13 @@ bool FilterParser::checkOr(const bool step_over) {
}
else {
if (iter_ != end_) {
if (*iter_ == 'O') {
if (*iter_ == QLatin1Char('O')) {
buf_ += *iter_;
++iter_;
if (iter_ != end_ && *iter_ == 'R') {
if (iter_ != end_ && *iter_ == QLatin1Char('R')) {
buf_ += *iter_;
++iter_;
if (iter_ != end_ && (iter_->isSpace() || *iter_ == '-' || *iter_ == '(')) {
if (iter_ != end_ && (iter_->isSpace() || *iter_ == QLatin1Char('-') || *iter_ == QLatin1Char('('))) {
if (step_over) {
buf_.clear();
advance();
@@ -432,19 +432,19 @@ FilterTree *FilterParser::parseSearchExpression() {
advance();
if (iter_ == end_) return new NopFilter;
if (*iter_ == '(') {
if (*iter_ == QLatin1Char('(')) {
++iter_;
advance();
FilterTree *tree = parseOrGroup();
advance();
if (iter_ != end_) {
if (*iter_ == ')') {
if (*iter_ == QLatin1Char(')')) {
++iter_;
}
}
return tree;
}
else if (*iter_ == '-') {
else if (*iter_ == QLatin1Char('-')) {
++iter_;
FilterTree *tree = parseSearchExpression();
if (tree->type() != FilterTree::FilterType::Nop) return new NotFilter(tree);
@@ -464,7 +464,7 @@ FilterTree *FilterParser::parseSearchTerm() {
bool inQuotes = false;
for (; iter_ != end_; ++iter_) {
if (inQuotes) {
if (*iter_ == '"') {
if (*iter_ == QLatin1Char('"')) {
inQuotes = false;
}
else {
@@ -472,23 +472,23 @@ FilterTree *FilterParser::parseSearchTerm() {
}
}
else {
if (*iter_ == '"') {
if (*iter_ == QLatin1Char('"')) {
inQuotes = true;
}
else if (col.isEmpty() && *iter_ == ':') {
else if (col.isEmpty() && *iter_ == QLatin1Char(':')) {
col = buf_.toLower();
buf_.clear();
prefix.clear(); // prefix isn't allowed here - let's ignore it
}
else if (iter_->isSpace() || *iter_ == '(' || *iter_ == ')' || *iter_ == '-') {
else if (iter_->isSpace() || *iter_ == QLatin1Char('(') || *iter_ == QLatin1Char(')') || *iter_ == QLatin1Char('-')) {
break;
}
else if (buf_.isEmpty()) {
// we don't know whether there is a column part in this search term thus we assume the latter and just try and read a prefix
if (prefix.isEmpty() && (*iter_ == '>' || *iter_ == '<' || *iter_ == '=' || *iter_ == '!')) {
if (prefix.isEmpty() && (*iter_ == QLatin1Char('>') || *iter_ == QLatin1Char('<') || *iter_ == QLatin1Char('=') || *iter_ == QLatin1Char('!'))) {
prefix += *iter_;
}
else if (prefix != "=" && *iter_ == '=') {
else if (prefix != QLatin1String("=") && *iter_ == QLatin1Char('=')) {
prefix += *iter_;
}
else {
@@ -510,7 +510,7 @@ FilterTree *FilterParser::parseSearchTerm() {
FilterTree *FilterParser::createSearchTermTreeNode(const QString &col, const QString &prefix, const QString &search) const {
if (search.isEmpty() && prefix != "=") {
if (search.isEmpty() && prefix != QLatin1String("=")) {
return new NopFilter;
}
// here comes a mess :/
@@ -521,29 +521,29 @@ FilterTree *FilterParser::createSearchTermTreeNode(const QString &col, const QSt
if (columns_[col] == Playlist::Column_Rating) {
float parsed_search = Utilities::ParseSearchRating(search);
if (prefix == "=") {
if (prefix == QStringLiteral("=")) {
cmp = new FloatEqComparator(parsed_search);
}
else if (prefix == "!=" || prefix == "<>") {
else if (prefix == QStringLiteral("!=") || prefix == QStringLiteral("<>")) {
cmp = new FloatNeComparator(parsed_search);
}
else if (prefix == ">") {
else if (prefix == QStringLiteral(">")) {
cmp = new FloatGtComparator(parsed_search);
}
else if (prefix == ">=") {
else if (prefix == QStringLiteral(">=")) {
cmp = new FloatGeComparator(parsed_search);
}
else if (prefix == "<") {
else if (prefix == QStringLiteral("<")) {
cmp = new FloatLtComparator(parsed_search);
}
else if (prefix == "<=") {
else if (prefix == QStringLiteral("<=")) {
cmp = new FloatLeComparator(parsed_search);
}
else {
cmp = new FloatEqComparator(parsed_search);
}
}
else if (prefix == "!=" || prefix == "<>") {
else if (prefix == QStringLiteral("!=") || prefix == QStringLiteral("<>")) {
cmp = new NeComparator(search);
}
else if (!col.isEmpty() && columns_.contains(col) && numerical_columns_.contains(columns_[col])) {
@@ -556,16 +556,16 @@ FilterTree *FilterParser::createSearchTermTreeNode(const QString &col, const QSt
search_value = search.toInt();
}
// alright, back to deciding which comparator we'll use
if (prefix == ">") {
if (prefix == QLatin1String(">")) {
cmp = new GtComparator(search_value);
}
else if (prefix == ">=") {
else if (prefix == QLatin1String(">=")) {
cmp = new GeComparator(search_value);
}
else if (prefix == "<") {
else if (prefix == QLatin1String("<")) {
cmp = new LtComparator(search_value);
}
else if (prefix == "<=") {
else if (prefix == QLatin1String("<=")) {
cmp = new LeComparator(search_value);
}
else {
@@ -574,19 +574,19 @@ FilterTree *FilterParser::createSearchTermTreeNode(const QString &col, const QSt
}
}
else {
if (prefix == "=") {
if (prefix == QStringLiteral("=")) {
cmp = new EqComparator(search);
}
else if (prefix == ">") {
else if (prefix == QStringLiteral(">")) {
cmp = new LexicalGtComparator(search);
}
else if (prefix == ">=") {
else if (prefix == QStringLiteral(">=")) {
cmp = new LexicalGeComparator(search);
}
else if (prefix == "<") {
else if (prefix == QStringLiteral("<")) {
cmp = new LexicalLtComparator(search);
}
else if (prefix == "<=") {
else if (prefix == QStringLiteral("<=")) {
cmp = new LexicalLeComparator(search);
}
else {

View File

@@ -37,6 +37,7 @@
#include "playlistheader.h"
#include "playlistview.h"
#include "core/settings.h"
#include "widgets/stretchheaderview.h"
#include "settings/playlistsettingspage.h"
@@ -81,7 +82,7 @@ PlaylistHeader::PlaylistHeader(Qt::Orientation orientation, PlaylistView *view,
QObject::connect(this, &PlaylistHeader::StretchEnabledChanged, action_stretch_, &QAction::setChecked);
QSettings s;
Settings s;
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
action_rating_lock_->setChecked(s.value("rating_locked", false).toBool());
s.endGroup();

View File

@@ -49,6 +49,7 @@
#include "core/application.h"
#include "core/iconloader.h"
#include "core/player.h"
#include "core/settings.h"
#include "playlist.h"
#include "playlistbackend.h"
#include "playlistlistview.h"
@@ -150,7 +151,7 @@ void PlaylistListContainer::SetApplication(Application *app) {
void PlaylistListContainer::ReloadSettings() {
QSettings s;
Settings s;
s.beginGroup(AppearanceSettingsPage::kSettingsGroup);
int iconsize = s.value(AppearanceSettingsPage::kIconSizeLeftPanelButtons, 22).toInt();
s.endGroup();
@@ -213,7 +214,7 @@ void PlaylistListContainer::NewFolderClicked() {
return;
}
name.replace(QLatin1String("/"), QLatin1String(" "));
name.replace(QLatin1Char('/'), QLatin1Char(' '));
model_->invisibleRootItem()->appendRow(model_->NewFolder(name));
@@ -504,7 +505,7 @@ void PlaylistListContainer::ActivePlaying() {
}
void PlaylistListContainer::ActivePaused() {
UpdateActiveIcon(active_playlist_id_, QIcon(":/pictures/tiny-pause.png"));
UpdateActiveIcon(active_playlist_id_, QIcon(QStringLiteral(":/pictures/tiny-pause.png")));
}
void PlaylistListContainer::ActiveStopped() {

View File

@@ -100,7 +100,7 @@ void PlaylistListModel::AddRowMappings(const QModelIndex &begin, const QModelInd
void PlaylistListModel::AddRowItem(QStandardItem *item, const QString &parent_path) {
switch (item->data(Role_Type).toInt()) {
case Type_Playlist: {
case Type_Playlist:{
const int id = item->data(Role_PlaylistId).toInt();
playlists_by_id_[id] = item;
@@ -128,7 +128,7 @@ void PlaylistListModel::RowsAboutToBeRemoved(const QModelIndex &parent, const in
const QStandardItem *item = itemFromIndex(idx);
switch (idx.data(Role_Type).toInt()) {
case Type_Playlist: {
case Type_Playlist:{
const int id = idx.data(Role_PlaylistId).toInt();
QMap<int, QStandardItem*>::iterator it = playlists_by_id_.find(id);
if (it != playlists_by_id_.end() && it.value() == item) {
@@ -159,9 +159,9 @@ QStandardItem *PlaylistListModel::FolderByPath(const QString &path) {
QStandardItem *parent = invisibleRootItem();
#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
const QStringList parts = path.split('/', Qt::SkipEmptyParts);
const QStringList parts = path.split(QLatin1Char('/'), Qt::SkipEmptyParts);
#else
const QStringList parts = path.split('/', QString::SkipEmptyParts);
const QStringList parts = path.split(QLatin1Char('/'), QString::SkipEmptyParts);
#endif
for (const QString &part : parts) {

View File

@@ -69,7 +69,7 @@ void PlaylistListView::selectionChanged(const QItemSelection&, const QItemSelect
void PlaylistListView::dragEnterEvent(QDragEnterEvent *e) {
if (e->mimeData()->hasFormat(Playlist::kRowsMimetype)) {
if (e->mimeData()->hasFormat(QLatin1String(Playlist::kRowsMimetype))) {
e->acceptProposedAction();
}
else {
@@ -86,7 +86,7 @@ void PlaylistListView::dragMoveEvent(QDragMoveEvent *e) {
QModelIndex drag_hover_tab_ = indexAt(e->pos());
#endif
if (e->mimeData()->hasFormat(Playlist::kRowsMimetype)) {
if (e->mimeData()->hasFormat(QLatin1String(Playlist::kRowsMimetype))) {
if (drag_hover_tab_ != currentIndex()) {
e->setDropAction(Qt::CopyAction);
e->accept(visualRect(drag_hover_tab_));
@@ -124,7 +124,7 @@ void PlaylistListView::timerEvent(QTimerEvent *e) {
void PlaylistListView::dropEvent(QDropEvent *e) {
if (e->mimeData()->hasFormat(Playlist::kRowsMimetype)) {
if (e->mimeData()->hasFormat(QLatin1String(Playlist::kRowsMimetype))) {
if (drag_hover_timer_.isActive()) {
drag_hover_timer_.stop();
}

View File

@@ -45,6 +45,7 @@
#include "core/shared_ptr.h"
#include "core/application.h"
#include "core/player.h"
#include "core/settings.h"
#include "utilities/filenameconstants.h"
#include "utilities/timeutils.h"
#include "collection/collectionbackend.h"
@@ -241,7 +242,7 @@ void PlaylistManager::ItemsLoadedForSavePlaylist(const SongList &songs, const QS
void PlaylistManager::SaveWithUI(const int id, const QString &playlist_name) {
QSettings s;
Settings s;
s.beginGroup(Playlist::kSettingsGroup);
QString last_save_filter = s.value("last_save_filter", parser()->default_filter()).toString();
QString last_save_path = s.value("last_save_path", QDir::homePath()).toString();
@@ -249,7 +250,7 @@ void PlaylistManager::SaveWithUI(const int id, const QString &playlist_name) {
s.endGroup();
QString suggested_filename = playlist_name;
QString filename = last_save_path + "/" + suggested_filename.remove(QRegularExpression(QString(kProblematicCharactersRegex), QRegularExpression::CaseInsensitiveOption)) + "." + last_save_extension;
QString filename = last_save_path + QLatin1Char('/') + suggested_filename.remove(QRegularExpression(QLatin1String(kProblematicCharactersRegex), QRegularExpression::CaseInsensitiveOption)) + QStringLiteral(".") + last_save_extension;
QFileInfo fileinfo;
forever {
@@ -441,7 +442,7 @@ void PlaylistManager::UpdateSummaryText() {
QString summary;
if (selected > 1) {
summary += tr("%1 selected of").arg(selected) + " ";
summary += tr("%1 selected of").arg(selected) + QLatin1Char(' ');
}
else {
nanoseconds = current()->GetTotalLength();
@@ -450,7 +451,7 @@ void PlaylistManager::UpdateSummaryText() {
summary += tr("%n track(s)", "", tracks);
if (nanoseconds > 0) {
summary += " - [ " + Utilities::WordyTimeNanosec(nanoseconds) + " ]";
summary += QStringLiteral(" - [ ") + Utilities::WordyTimeNanosec(nanoseconds) + QStringLiteral(" ]");
}
emit SummaryTextChanged(summary);
@@ -565,7 +566,7 @@ QString PlaylistManager::GetNameForNewPlaylist(const SongList &songs) {
if (!various_artists && albums.size() == 1) {
QStringList album_names = albums.values();
result += " - " + album_names.first();
result += QStringLiteral(" - ") + album_names.first();
}
return result;
@@ -633,7 +634,7 @@ void PlaylistManager::SaveAllPlaylists() {
QString extension = dialog.extension();
if (extension.isEmpty()) extension = parser()->default_extension();
QSettings s;
Settings s;
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
PlaylistSettingsPage::PathType path_type = static_cast<PlaylistSettingsPage::PathType>(s.value("path_type", static_cast<int>(PlaylistSettingsPage::PathType::Automatic)).toInt());
s.endGroup();
@@ -646,7 +647,7 @@ void PlaylistManager::SaveAllPlaylists() {
for (QMap<int, Data>::const_iterator it = playlists_.constBegin(); it != playlists_.constEnd(); ++it) {
const Data &data = *it;
const QString filepath = path + "/" + data.name + "." + extension;
const QString filepath = path + QLatin1Char('/') + data.name + QLatin1Char('.') + extension;
Save(it.key(), filepath, path_type);
}

View File

@@ -41,7 +41,7 @@ void PlaylistProxyStyle::drawControl(ControlElement element, const QStyleOption
const QFontMetrics &font_metrics = header_option->fontMetrics;
// Spaces added to make transition less abrupt
if (rect.width() < font_metrics.horizontalAdvance(text + " ")) {
if (rect.width() < font_metrics.horizontalAdvance(text + QStringLiteral(" "))) {
const Playlist::Column column = static_cast<Playlist::Column>(header_option->section);
QStyleOptionHeader new_option(*header_option);
new_option.text = Playlist::abbreviated_column_name(column);

View File

@@ -27,6 +27,7 @@
#include <QComboBox>
#include <QSettings>
#include "core/settings.h"
#include "settings/playlistsettingspage.h"
#include "playlistsaveoptionsdialog.h"
#include "ui_playlistsaveoptionsdialog.h"
@@ -48,7 +49,7 @@ PlaylistSaveOptionsDialog::~PlaylistSaveOptionsDialog() { delete ui; }
void PlaylistSaveOptionsDialog::accept() {
if (ui->remember_user_choice->isChecked()) {
QSettings s;
Settings s;
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
s.setValue("path_type", ui->filePaths->itemData(ui->filePaths->currentIndex()).toInt());
s.endGroup();

View File

@@ -47,6 +47,7 @@
#include "core/shared_ptr.h"
#include "core/iconloader.h"
#include "core/mimedata.h"
#include "core/settings.h"
#include "widgets/favoritewidget.h"
#include "widgets/renametablineedit.h"
#include "playlist.h"
@@ -217,14 +218,14 @@ void PlaylistTabBar::CloseSlot() {
const int playlist_id = tabData(menu_index_).toInt();
QSettings s;
Settings s;
s.beginGroup(kSettingsGroup);
const bool ask_for_delete = s.value("warn_close_playlist", true).toBool();
if (ask_for_delete && !manager_->IsPlaylistFavorite(playlist_id) && !manager_->playlist(playlist_id)->GetAllSongs().empty()) {
QMessageBox confirmation_box;
confirmation_box.setWindowIcon(QIcon(":/icons/64x64/strawberry.png"));
confirmation_box.setWindowIcon(QIcon(QStringLiteral(":/icons/64x64/strawberry.png")));
confirmation_box.setWindowTitle(tr("Remove playlist"));
confirmation_box.setIcon(QMessageBox::Question);
confirmation_box.setText(
@@ -345,8 +346,8 @@ void PlaylistTabBar::CurrentIndexChanged(const int index) {
void PlaylistTabBar::InsertTab(const int id, const int index, const QString &text, const bool favorite) {
QString new_text = text;
if (new_text.contains('&')) {
new_text = new_text.replace('&', QLatin1String("&&"));
if (new_text.contains(QLatin1Char('&'))) {
new_text = new_text.replace(QLatin1Char('&'), QLatin1String("&&"));
}
suppress_current_changed_ = true;
@@ -381,7 +382,7 @@ void PlaylistTabBar::TabMoved() {
}
void PlaylistTabBar::dragEnterEvent(QDragEnterEvent *e) {
if (e->mimeData()->hasUrls() || e->mimeData()->hasFormat(Playlist::kRowsMimetype) || qobject_cast<const MimeData*>(e->mimeData())) {
if (e->mimeData()->hasUrls() || e->mimeData()->hasFormat(QString::fromLatin1(Playlist::kRowsMimetype)) || qobject_cast<const MimeData*>(e->mimeData())) {
e->acceptProposedAction();
}
}
@@ -445,7 +446,7 @@ void PlaylistTabBar::dropEvent(QDropEvent *e) {
bool PlaylistTabBar::event(QEvent *e) {
switch (e->type()) {
case QEvent::ToolTip: {
case QEvent::ToolTip:{
QHelpEvent *he = static_cast<QHelpEvent*>(e);
QSize real_tab = tabSizeHint(tabAt(he->pos()));

View File

@@ -63,6 +63,7 @@
#include "core/player.h"
#include "core/qt_blurimage.h"
#include "core/song.h"
#include "core/settings.h"
#include "playlistmanager.h"
#include "playlist.h"
#include "playlistdelegates.h"
@@ -291,7 +292,7 @@ void PlaylistView::SetPlaylist(Playlist *playlist) {
void PlaylistView::LoadHeaderState() {
QSettings s;
Settings s;
s.beginGroup(Playlist::kSettingsGroup);
if (s.contains("state")) {
header_state_version_ = s.value("state_version", 0).toInt();
@@ -1171,7 +1172,7 @@ void PlaylistView::PlaylistDestroyed() {
void PlaylistView::ReloadSettings() {
QSettings s;
Settings s;
s.beginGroup(PlaylistSettingsPage::kSettingsGroup);
bars_enabled_ = s.value("show_bars", true).toBool();
@@ -1286,7 +1287,7 @@ void PlaylistView::SaveSettings() {
if (!header_state_loaded_ || read_only_settings_) return;
QSettings s;
Settings s;
s.beginGroup(Playlist::kSettingsGroup);
s.setValue("state_version", header_state_version_);
s.setValue("state", header_->SaveState());