reset playlist to first track on stop

This commit is contained in:
Anika Raemer 2021-10-13 14:13:48 +02:00
parent 39a0356a51
commit a483a380d6
2 changed files with 21 additions and 5 deletions

View file

@ -33,7 +33,7 @@ void MusicPlayer::init(NavigationItemModel *item)
mCurrentItem = item; mCurrentItem = item;
emit coverImageSourceChanged(); emit coverImageSourceChanged();
clearMediaList(); clearPlaylist();
readMedia(mCurrentItem->getPath()); readMedia(mCurrentItem->getPath());
} }
@ -55,6 +55,7 @@ void MusicPlayer::stopMusic()
{ {
if(isPlaying()){ if(isPlaying()){
stop(); stop();
resetPlaylistToFirstTrack();
} }
} }
@ -66,10 +67,16 @@ void MusicPlayer::playNext()
void MusicPlayer::playPrevious() void MusicPlayer::playPrevious()
{ {
if(!hasPrevious()) return; if(!hasPrevious()) return; // checks if playlist exists
playlist()->previous(); playlist()->previous();
} }
void MusicPlayer::resetPlaylistToFirstTrack()
{
if(!playlist() && !playlist()->isEmpty()) return;
playlist()->setCurrentIndex(0);
}
bool MusicPlayer::isPlaying() const bool MusicPlayer::isPlaying() const
{ {
return state() == State::PlayingState; return state() == State::PlayingState;
@ -117,7 +124,7 @@ QString MusicPlayer::getTime()
return timeToString(position()); return timeToString(position());
} }
void MusicPlayer::clearMediaList() void MusicPlayer::clearPlaylist()
{ {
if(playlist()){ if(playlist()){
playlist()->clear(); playlist()->clear();

View file

@ -62,9 +62,18 @@ public slots:
void playPrevious(); void playPrevious();
private: private:
void reset(); /**
void clearMediaList(); * @brief Resets playlist to first track if playlist exists and is non-empty
*/
void resetPlaylistToFirstTrack();
void clearPlaylist();
void readMedia(const QString& path); void readMedia(const QString& path);
/**
* @brief Transforms time in milliseconds into a string
* @param time Time in ms
* @return
* @todo use QDateTime
*/
QString timeToString(int time); QString timeToString(int time);
int mCurrentMediaItemLength = 0; int mCurrentMediaItemLength = 0;