Update 'Now Playing' window to show song and artist in title bar

This commit is contained in:
2025-11-20 04:11:55 -07:00
parent dd652dac11
commit 90bb9ba399
31 changed files with 3197 additions and 6 deletions

View File

@@ -26,7 +26,7 @@ NowPlaying::NowPlaying(const AlbumData& item, QWidget* parent)
timeIndicator_ = new TimePlayedWidget(this);
layout->addWidget(timeIndicator_);
// Volume slider (NEW)
// Volume slider
volumeSlider_ = new QSlider(Qt::Horizontal);
volumeSlider_->setRange(0, 100);
volumeSlider_->setValue(80);
@@ -42,7 +42,7 @@ NowPlaying::NowPlaying(const AlbumData& item, QWidget* parent)
audio_ = new QAudioOutput(this);
player_->setAudioOutput(audio_);
audio_->setVolume(0.8f); // match slider
audio_->setVolume(0.8f);
connect(volumeSlider_, &QSlider::valueChanged, this,
[this](int v){ audio_->setVolume(v / 100.0); });
@@ -55,14 +55,14 @@ NowPlaying::NowPlaying(const AlbumData& item, QWidget* parent)
spinningArt_->stop();
});
// Get song duration and played time
// Song duration + position
connect(player_, &QMediaPlayer::durationChanged,
timeIndicator_, &TimePlayedWidget::setDuration);
connect(player_, &QMediaPlayer::positionChanged,
timeIndicator_, &TimePlayedWidget::setPosition);
// Pause/Play on album art click
// Pause/Play toggle on art click
connect(spinningArt_, &SpinningAlbumArt::artClicked, this, [this]() {
if (player_->playbackState() == QMediaPlayer::PlayingState) {
player_->pause();
@@ -73,14 +73,14 @@ NowPlaying::NowPlaying(const AlbumData& item, QWidget* parent)
}
});
// When a track finishes, auto-play next
// Auto-next on finish
connect(player_, &QMediaPlayer::mediaStatusChanged, this,
[this](QMediaPlayer::MediaStatus st){
if (st == QMediaPlayer::EndOfMedia)
handleTrackFinished();
});
// When a track is clicked
// Track selected in list
connect(trackList_, &TrackListWidget::trackSelected, this,
[this](int i){
index_ = i;
@@ -102,6 +102,10 @@ void NowPlaying::playTrack(int idx)
QString fileName = QFileInfo(filePath).fileName();
QString title = cleanTrackTitle(fileName);
// NEW — Window title updates dynamically
setWindowTitle(QStringLiteral("%1 - %2")
.arg(item_.artist, title));
trackLabel_->setText(QString(title));
player_->setSource(QUrl::fromLocalFile(filePath));