summaryrefslogtreecommitdiffstats
path: root/src/track
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2020-05-21 15:02:48 +0200
committerUwe Klotz <uklotz@mixxx.org>2020-05-21 15:02:48 +0200
commit4ab4a9271265cdf2a26c83f11879c1b1c966d612 (patch)
tree2664733d8b095e5990cff3e5b7d90711d50346a7 /src/track
parent75580cd09fdfa2ade97316d25e03598498c01aac (diff)
parent24a2ff1e83cdf4e26d87e7b310faee3cceacf0f2 (diff)
Merge branch '2.3' of git@github.com:mixxxdj/mixxx.git
Diffstat (limited to 'src/track')
-rw-r--r--src/track/track.cpp20
-rw-r--r--src/track/track.h8
2 files changed, 25 insertions, 3 deletions
diff --git a/src/track/track.cpp b/src/track/track.cpp
index d15bd51260..24781b18df 100644
--- a/src/track/track.cpp
+++ b/src/track/track.cpp
@@ -362,9 +362,25 @@ bool Track::isMetadataSynchronized() const {
QString Track::getInfo() const {
QMutexLocker lock(&m_qMutex);
if (m_record.getMetadata().getTrackInfo().getArtist().trimmed().isEmpty()) {
- return m_record.getMetadata().getTrackInfo().getTitle();
+ if (m_record.getMetadata().getTrackInfo().getTitle().trimmed().isEmpty()) {
+ return m_fileInfo.fileName();
+ } else {
+ return m_record.getMetadata().getTrackInfo().getTitle();
+ }
} else {
- return m_record.getMetadata().getTrackInfo().getArtist() + ", " + m_record.getMetadata().getTrackInfo().getTitle();
+ return m_record.getMetadata().getTrackInfo().getArtist() +
+ QStringLiteral(" - ") +
+ m_record.getMetadata().getTrackInfo().getTitle();
+ }
+}
+
+QString Track::getTitleInfo() const {
+ QMutexLocker lock(&m_qMutex);
+ if (m_record.getMetadata().getTrackInfo().getArtist().trimmed().isEmpty() &&
+ m_record.getMetadata().getTrackInfo().getTitle().trimmed().isEmpty()) {
+ return m_fileInfo.fileName();
+ } else {
+ return m_record.getMetadata().getTrackInfo().getTitle();
}
}
diff --git a/src/track/track.h b/src/track/track.h
index 5d4b64f609..7d7c0c6ba7 100644
--- a/src/track/track.h
+++ b/src/track/track.h
@@ -74,6 +74,8 @@ class Track : public QObject {
Q_PROPERTY(QString durationFormatted READ getDurationTextSeconds STORED false)
Q_PROPERTY(QString durationFormattedCentiseconds READ getDurationTextCentiseconds STORED false)
Q_PROPERTY(QString durationFormattedMilliseconds READ getDurationTextMilliseconds STORED false)
+ Q_PROPERTY(QString info READ getInfo STORED false)
+ Q_PROPERTY(QString titleInfo READ getTitleInfo STORED false)
TrackFile getFileInfo() const {
// Copying TrackFile/QFileInfo is thread-safe (implicit sharing), no locking needed.
@@ -233,9 +235,13 @@ class Track : public QObject {
// Set URL for track
void setURL(const QString& url);
- // Output a formatted string with artist and title.
+ /// Formatted string with artist and title.
QString getInfo() const;
+ /// The filename if BOTH artist AND title are empty, e.g. for tracks without
+ /// any metadata in file tags. Otherwise just the title (even if it is empty).
+ QString getTitleInfo() const;
+
ConstWaveformPointer getWaveform() const;
void setWaveform(ConstWaveformPointer pWaveform);