Use same format for notifications as for now playing widget.
Closes #1222
This commit is contained in:
committed by
Craig Drummond
parent
c40f6a5691
commit
f736b6fb67
@@ -72,6 +72,7 @@
|
||||
52. Fetch missing covers from iTunes.
|
||||
53. Make sidebar change pages on mouse wheel events.
|
||||
54. Allow to specify the max age of files to use in smart playlists.
|
||||
55. Use same format for notifications as for now playing widget.
|
||||
|
||||
2.2.0
|
||||
-----
|
||||
|
||||
@@ -40,7 +40,7 @@ void OnlineView::update(const Song &song, bool force)
|
||||
needToUpdate=true;
|
||||
return;
|
||||
}
|
||||
setHeader(song.describe(true));
|
||||
setHeader(song.describe());
|
||||
Covers::Image cImg=Covers::self()->requestImage(song, true);
|
||||
if (!cImg.img.isNull()) {
|
||||
setHtml(createPicTag(cImg.img, cImg.fileName));
|
||||
|
||||
@@ -212,11 +212,7 @@ void TrayItem::songChanged(const Song &song, bool isPlaying)
|
||||
? !song.title.isEmpty() && !song.name().isEmpty()
|
||||
: !song.title.isEmpty() && !song.artist.isEmpty() && !song.album.isEmpty();
|
||||
if (useable) {
|
||||
QString text=song.describe(false);
|
||||
if (song.time>0) {
|
||||
text+=QString(" – ")+Utils::formatTime(song.time);
|
||||
}
|
||||
MacNotify::showMessage(tr("Now playing"), text, CurrentCover::self()->image());
|
||||
MacNotify::showMessage(song.mainText(), song.subText(), , CurrentCover::self()->image());
|
||||
}
|
||||
}
|
||||
#else
|
||||
@@ -225,20 +221,13 @@ void TrayItem::songChanged(const Song &song, bool isPlaying)
|
||||
? !song.title.isEmpty() && !song.name().isEmpty()
|
||||
: !song.title.isEmpty() && !song.artist.isEmpty() && !song.album.isEmpty();
|
||||
if (useable) {
|
||||
QString text=song.describe(false);
|
||||
if (song.time>0) {
|
||||
text+=QString(" – ")+Utils::formatTime(song.time);
|
||||
}
|
||||
|
||||
if (trayItem) {
|
||||
trayItem->setToolTip(QLatin1String("Cantata\n\n")+song.mainText()+"\n"+song.subText());
|
||||
#if defined Q_OS_WIN || defined Q_OS_MAC || !defined QT_QTDBUS_FOUND
|
||||
trayItem->setToolTip(tr("Cantata")+"\n\n"+text);
|
||||
// The pure Qt implementation needs both the tray icon and the setting checked.
|
||||
if (Settings::self()->showPopups() && isPlaying) {
|
||||
trayItem->showMessage(tr("Now playing"), text, QSystemTrayIcon::Information, 5000);
|
||||
trayItem->showMessage(song.mainText(), song.subText(), QSystemTrayIcon::Information, 5000);
|
||||
}
|
||||
#else
|
||||
trayItem->setToolTip(tr("Cantata")+"\n\n"+text);
|
||||
#endif
|
||||
}
|
||||
#ifdef QT_QTDBUS_FOUND
|
||||
@@ -246,11 +235,11 @@ void TrayItem::songChanged(const Song &song, bool isPlaying)
|
||||
if (!notification) {
|
||||
notification=new Notify(this);
|
||||
}
|
||||
notification->show(tr("Now playing"), text, CurrentCover::self()->image());
|
||||
notification->show(song.mainText(), song.subText(), CurrentCover::self()->image());
|
||||
}
|
||||
#endif
|
||||
} else if (trayItem) {
|
||||
trayItem->setToolTip(tr("Cantata"));
|
||||
trayItem->setToolTip(QLatin1String("Cantata"));
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -785,22 +785,54 @@ QString Song::filePath(const QString &base) const
|
||||
return fileName;
|
||||
}
|
||||
|
||||
QString Song::describe(bool withMarkup) const
|
||||
QString Song::describe() const
|
||||
{
|
||||
QString albumText=album.isEmpty() ? name() : displayAlbum(album, Song::albumYear(*this));
|
||||
|
||||
if (title.isEmpty()) {
|
||||
return withMarkup ? albumText : (QLatin1String("<b>")+albumText+QLatin1String("</b>"));
|
||||
return QLatin1String("<b>")+albumText+QLatin1String("</b>");
|
||||
}
|
||||
QString descr=artist.isEmpty()
|
||||
return artist.isEmpty()
|
||||
? QObject::tr("<b>%1</b> on <b>%2</b>", "Song on Album").arg(title).arg(albumText)
|
||||
: QObject::tr("<b>%1</b> by <b>%2</b> on <b>%3</b>", "Song by Artist on Album").arg(title).arg(artist).arg(albumText);
|
||||
}
|
||||
|
||||
if (!withMarkup) {
|
||||
descr=descr.replace("<b>", "");
|
||||
descr=descr.replace("</b>", "");
|
||||
QString Song::mainText() const
|
||||
{
|
||||
if (isEmpty()) {
|
||||
return QString();
|
||||
}
|
||||
|
||||
QString n = name();
|
||||
if (isStream() && !isCantataStream() && !isCdda() && !isDlnaStream()) {
|
||||
return n.isEmpty() ? Song::unknown() : n;
|
||||
} else if (title.isEmpty() && artist.isEmpty() && (!n.isEmpty() || !file.isEmpty())) {
|
||||
return n.isEmpty() ? file : n;
|
||||
} else {
|
||||
return title+(origYear>0 && !Song::useOriginalYear() && origYear!=year ? QLatin1String(" (")+QString::number(origYear)+QLatin1Char(')') : QString());
|
||||
}
|
||||
}
|
||||
|
||||
QString Song::subText() const
|
||||
{
|
||||
if (isEmpty()) {
|
||||
return QString();
|
||||
}
|
||||
|
||||
if (isStream() && !isCantataStream() && !isCdda() && !isDlnaStream()) {
|
||||
if (artist.isEmpty() && title.isEmpty() && !name().isEmpty()) {
|
||||
return QObject::tr("(Stream)");
|
||||
} else {
|
||||
return artist.isEmpty() ? title : artistSong();
|
||||
}
|
||||
} else if (album.isEmpty() && artist.isEmpty()) {
|
||||
return mainText().isEmpty() ? QString() : Song::unknown();
|
||||
} else if (album.isEmpty()) {
|
||||
return artist;
|
||||
} else {
|
||||
// Artist here is always artist, and not album artist or composer
|
||||
return artist + QString(" – ")+displayAlbum(false);
|
||||
}
|
||||
return descr;
|
||||
}
|
||||
|
||||
bool Song::useComposer() const
|
||||
|
||||
@@ -225,7 +225,10 @@ struct Song
|
||||
QString basicArtist() const;
|
||||
QString filePath(const QString &base=QString()) const;
|
||||
QString displayAlbum(bool useComp=true) const { return displayAlbum(useComp ? albumName() : album, displayYear()); }
|
||||
QString describe(bool withMarkup=false) const;
|
||||
QString describe() const;
|
||||
// Main text + sub text for now-playing and notifications
|
||||
QString mainText() const;
|
||||
QString subText() const;
|
||||
bool useComposer() const;
|
||||
void populateSorts();
|
||||
// QString basicDescription() const;
|
||||
|
||||
@@ -319,37 +319,12 @@ NowPlayingWidget::NowPlayingWidget(QWidget *p)
|
||||
|
||||
void NowPlayingWidget::update(const Song &song)
|
||||
{
|
||||
QString name=song.name();
|
||||
currentSongFile=song.file;
|
||||
ratingWidget->setEnabled(!song.isEmpty() && Song::Standard==song.type);
|
||||
ratingWidget->setValue(0);
|
||||
updateInfo();
|
||||
if (song.isEmpty()) {
|
||||
track->setText(QString());
|
||||
artist->setText(QString());
|
||||
} else if (song.isStream() && !song.isCantataStream() && !song.isCdda() && !song.isDlnaStream()) {
|
||||
track->setText(name.isEmpty() ? Song::unknown() : name);
|
||||
if (song.artist.isEmpty() && song.title.isEmpty() && !name.isEmpty()) {
|
||||
artist->setText(tr("(Stream)"));
|
||||
} else {
|
||||
artist->setText(song.artist.isEmpty() ? song.title : song.artistSong());
|
||||
}
|
||||
} else {
|
||||
if (song.title.isEmpty() && song.artist.isEmpty() && (!name.isEmpty() || !song.file.isEmpty())) {
|
||||
track->setText(name.isEmpty() ? song.file : name);
|
||||
} else {
|
||||
track->setText(song.title+(song.origYear>0 && !Song::useOriginalYear() && song.origYear!=song.year ? QLatin1String(" (")+QString::number(song.origYear)+QLatin1Char(')') : QString()));
|
||||
}
|
||||
if (song.album.isEmpty() && song.artist.isEmpty()) {
|
||||
artist->setText(track->fullText().isEmpty() ? QString() : Song::unknown());
|
||||
} else if (song.album.isEmpty()) {
|
||||
artist->setText(song.artist);
|
||||
} else {
|
||||
// Artist here is always artist, and not album artist or composer
|
||||
artist->setText(song.artist+QString(" – ")+song.displayAlbum(false));
|
||||
}
|
||||
}
|
||||
|
||||
track->setText(song.mainText());
|
||||
artist->setText(song.subText());
|
||||
track->setContextMenuPolicy(track->fullText().isEmpty() ? Qt::NoContextMenu : Qt::ActionsContextMenu);
|
||||
artist->setContextMenuPolicy(artist->fullText().isEmpty() ? Qt::NoContextMenu : Qt::ActionsContextMenu);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user