Disable automatic conversions from 8-bit strings
This commit is contained in:
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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(" =, !=, <, >, <=", ">=") +
|
||||
.arg(QStringLiteral(" =, !=, <, >, <="), QStringLiteral(">=")) +
|
||||
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()); }
|
||||
|
||||
@@ -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_;
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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() {
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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()));
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user