reset playlist to first track on stop
This commit is contained in:
parent
39a0356a51
commit
a483a380d6
2 changed files with 21 additions and 5 deletions
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue