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

View file

@ -62,9 +62,18 @@ public slots:
void playPrevious();
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);
/**
* @brief Transforms time in milliseconds into a string
* @param time Time in ms
* @return
* @todo use QDateTime
*/
QString timeToString(int time);
int mCurrentMediaItemLength = 0;