summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2019-06-21 20:47:03 +0200
committerUwe Klotz <uklotz@mixxx.org>2019-06-21 20:59:30 +0200
commit7c5a222ea185689613f3442b153bd6ea9a23f597 (patch)
tree366db0f80f6288dce92d17f958dcb04ef771b8d0
parentf25828b30ea923fb40f100b64f0c90f272b5ffcf (diff)
Reuse TrackFile::fromUrl()
-rw-r--r--src/library/banshee/bansheeplaylistmodel.cpp7
-rw-r--r--src/library/itunes/itunesfeature.cpp2
-rw-r--r--src/library/parser.cpp6
-rw-r--r--src/library/parser.h4
-rw-r--r--src/library/parserm3u.cpp10
-rw-r--r--src/library/parserpls.cpp10
-rw-r--r--src/sources/soundsourceproxy.cpp3
-rw-r--r--src/test/playlisttest.cpp28
-rw-r--r--src/util/dnd.h5
9 files changed, 34 insertions, 41 deletions
diff --git a/src/library/banshee/bansheeplaylistmodel.cpp b/src/library/banshee/bansheeplaylistmodel.cpp
index d46661b965..6e339f97f0 100644
--- a/src/library/banshee/bansheeplaylistmodel.cpp
+++ b/src/library/banshee/bansheeplaylistmodel.cpp
@@ -287,7 +287,7 @@ void BansheePlaylistModel::trackLoaded(QString group, TrackPointer pTrack) {
if (pTrack) {
for (int row = 0; row < rowCount(); ++row) {
QUrl rowUrl(getFieldString(index(row, 0), CLM_URI));
- if (rowUrl.toLocalFile() == pTrack->getLocation()) {
+ if (TrackFile::fromUrl(rowUrl).location() == pTrack->getLocation()) {
m_previewDeckTrackId =
TrackId(getFieldVariant(index(row, 0), CLM_VIEW_ORDER));
break;
@@ -364,11 +364,8 @@ QString BansheePlaylistModel::getTrackLocation(const QModelIndex& index) const {
}
QUrl url(getFieldString(index, CLM_URI));
- QString location;
- location = url.toLocalFile();
-
+ QString location = TrackFile::fromUrl(url).location();
qDebug() << location << " = " << url;
-
if (!location.isEmpty()) {
return location;
}
diff --git a/src/library/itunes/itunesfeature.cpp b/src/library/itunes/itunesfeature.cpp
index 3c2ee57ece..107fc25576 100644
--- a/src/library/itunes/itunesfeature.cpp
+++ b/src/library/itunes/itunesfeature.cpp
@@ -576,7 +576,7 @@ void ITunesFeature::parseTrack(QXmlStreamReader& xml, QSqlQuery& query) {
continue;
}
if (key == kLocation) {
- location = QUrl(content).toLocalFile();
+ location = TrackFile::fromUrl(QUrl(content)).location();
// Replace first part of location with the mixxx iTunes Root
// on systems where iTunes installed it only strips //localhost
// on iTunes from foreign systems the mount point is replaced
diff --git a/src/library/parser.cpp b/src/library/parser.cpp
index 6b05e388cc..9dcbb2a881 100644
--- a/src/library/parser.cpp
+++ b/src/library/parser.cpp
@@ -148,11 +148,11 @@ bool Parser::isUtf8(const char* string) {
return true;
}
-QString Parser::playlistEntrytoLocalFile(const QString& playlistEntry) {
+TrackFile Parser::playlistEntryToTrackFile(const QString& playlistEntry) {
if (playlistEntry.startsWith("file:")) {
- return QUrl(playlistEntry).toLocalFile();
+ return TrackFile::fromUrl(QUrl(playlistEntry));
}
- return QString(playlistEntry).replace('\\', '/');
+ return TrackFile(QString(playlistEntry).replace('\\', '/'));
}
diff --git a/src/library/parser.h b/src/library/parser.h
index 87c226efd4..686cefa579 100644
--- a/src/library/parser.h
+++ b/src/library/parser.h
@@ -27,6 +27,8 @@ it afterwards for proper functioning
#include <gtest/gtest.h>
+#include "track/trackfile.h"
+
class Parser : public QObject {
public:
static bool isPlaylistFilenameSupported(const QString& fileName) {
@@ -57,7 +59,7 @@ protected:
// check for Utf8 encoding
static bool isUtf8(const char* string);
// reads URLs an plain Part and returns a local file path
- QString playlistEntrytoLocalFile(const QString& playlistEntry);
+ TrackFile playlistEntryToTrackFile(const QString& playlistEntry);
FRIEND_TEST(PlaylistTest, Normalize);
};
diff --git a/src/library/parserm3u.cpp b/src/library/parserm3u.cpp
index b770242ff2..c6eca7342d 100644
--- a/src/library/parserm3u.cpp
+++ b/src/library/parserm3u.cpp
@@ -106,17 +106,17 @@ QString ParserM3u::getFilepath(QTextStream* stream, QString basepath) {
}
if (!textline.contains("#")) {
- QString trackLocation = playlistEntrytoLocalFile(textline);
- if(QFile::exists(trackLocation)) {
- return trackLocation;
+ TrackFile trackFile = playlistEntryToTrackFile(textline);
+ if(trackFile.checkFileExists()) {
+ return trackFile.location();
} else {
// Try relative to m3u dir
- QString rel = QDir(basepath).filePath(trackLocation);
+ QString rel = QDir(basepath).filePath(trackFile.location());
if (QFile::exists(rel)) {
return rel;
}
// We couldn't match this to a real file so ignore it
- qWarning() << trackLocation << "not found";
+ qWarning() << trackFile.location() << "not found";
}
}
textline = stream->readLine();
diff --git a/src/library/parserpls.cpp b/src/library/parserpls.cpp
index ee58887961..95c2295429 100644
--- a/src/library/parserpls.cpp
+++ b/src/library/parserpls.cpp
@@ -114,18 +114,18 @@ QString ParserPls::getFilepath(QTextStream *stream, QString basepath) {
++iPos;
QString filename = textline.right(textline.length() - iPos);
- QString trackLocation = playlistEntrytoLocalFile(filename);
+ TrackFile trackFile = playlistEntryToTrackFile(filename);
- if(QFile::exists(trackLocation)) {
- return trackLocation;
+ if(trackFile.checkFileExists()) {
+ return trackFile.location();
} else {
// Try relative to pls dir
- QString rel = QDir(basepath).filePath(trackLocation);
+ QString rel = QDir(basepath).filePath(trackFile.location());
if (QFile::exists(rel)) {
return rel;
}
// We couldn't match this to a real file so ignore it
- qWarning() << trackLocation << "not found";
+ qWarning() << trackFile.location() << "not found";
}
}
textline = stream->readLine();
diff --git a/src/sources/soundsourceproxy.cpp b/src/sources/soundsourceproxy.cpp
index f31dacbf85..ba5f14aba7 100644
--- a/src/sources/soundsourceproxy.cpp
+++ b/src/sources/soundsourceproxy.cpp
@@ -133,8 +133,7 @@ void SoundSourceProxy::registerSoundSourceProviders() {
// static
bool SoundSourceProxy::isUrlSupported(const QUrl& url) {
- const QFileInfo fileInfo(url.toLocalFile());
- return isFileSupported(fileInfo);
+ return isFileSupported(TrackFile::fromUrl(url));
}
// static
diff --git a/src/test/playlisttest.cpp b/src/test/playlisttest.cpp
index 1b41ce2817..f186471be6 100644
--- a/src/test/playlisttest.cpp
+++ b/src/test/playlisttest.cpp
@@ -12,21 +12,21 @@ class PlaylistTest : public testing::Test {};
TEST_F(PlaylistTest, Normalize) {
ParserM3u parser;
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("file:///foo/bar.mp3").toStdString().c_str(),
- "/foo/bar.mp3");
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("file:foo/bar.mp3").toStdString().c_str(),
- "foo/bar.mp3");
+ EXPECT_EQ(parser.playlistEntryToTrackFile("file:///foo/bar.mp3"),
+ TrackFile("/foo/bar.mp3"));
+ EXPECT_EQ(parser.playlistEntryToTrackFile("file:foo/bar.mp3"),
+ TrackFile("foo/bar.mp3"));
#ifdef Q_OS_WIN
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("file:///c:/foo/bar.mp3").toStdString().c_str(),
- "c:/foo/bar.mp3");
+ EXPECT_EQ(parser.playlistEntryToTrackFile("file:///c:/foo/bar.mp3"),
+ TrackFile("c:/foo/bar.mp3"));
#else
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("file:///c:/foo/bar.mp3").toStdString().c_str(),
- "/c:/foo/bar.mp3");
+ EXPECT_EQ(parser.playlistEntryToTrackFile("file:///c:/foo/bar.mp3"),
+ TrackFile("/c:/foo/bar.mp3"));
#endif
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("file:///foo%20/bar.mp3").toStdString().c_str(),
- "/foo /bar.mp3");
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("c:/foo/bar.mp3").toStdString().c_str(),
- "c:/foo/bar.mp3");
- EXPECT_STREQ(parser.playlistEntrytoLocalFile("c:\\foo\\bar.mp3").toStdString().c_str(),
- "c:/foo/bar.mp3");
+ EXPECT_EQ(parser.playlistEntryToTrackFile("file:///foo%20/bar.mp3"),
+ TrackFile("/foo /bar.mp3"));
+ EXPECT_EQ(parser.playlistEntryToTrackFile("c:/foo/bar.mp3"),
+ TrackFile("c:/foo/bar.mp3"));
+ EXPECT_EQ(parser.playlistEntryToTrackFile("c:\\foo\\bar.mp3"),
+ TrackFile("c:/foo/bar.mp3"));
}
diff --git a/src/util/dnd.h b/src/util/dnd.h
index 59016df578..f7ad58d346 100644
--- a/src/util/dnd.h
+++ b/src/util/dnd.h
@@ -60,11 +60,6 @@ class DragAndDropHelper final {
QWidget* pDragSource,
QString sourceIdentifier);
- static QUrl urlFromLocation(
- const QString& trackLocation) {
- return QUrl::fromLocalFile(trackLocation);
- }
-
static void handleTrackDragEnterEvent(
QDragEnterEvent* event,
const QString& group,