diff options
author | Arno <arno@disconnect.de> | 2018-05-11 18:55:43 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-05-11 18:55:43 +0200 |
commit | a8d5afb9c4b061bc8657600312d4a5c6cab4c71f (patch) | |
tree | 8dbc62f30079cd04a6d8c505d19c3619f4bcf0fc | |
parent | 16f77383fdd7fe8c02d8e9f96a52d340269bf7c2 (diff) | |
download | BeetPlayer-a8d5afb9c4b061bc8657600312d4a5c6cab4c71f.tar.gz BeetPlayer-a8d5afb9c4b061bc8657600312d4a5c6cab4c71f.tar.bz2 BeetPlayer-a8d5afb9c4b061bc8657600312d4a5c6cab4c71f.zip |
Fix logic when we start playing
If nothing is selected in the song view, but it's populated, don't give
up early. Select the first one and try to continue.
-rw-r--r-- | playerwidget.cpp | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/playerwidget.cpp b/playerwidget.cpp index f6ad0d6..f944e64 100644 --- a/playerwidget.cpp +++ b/playerwidget.cpp @@ -478,25 +478,25 @@ void PlayerWidget::rightCurrentChanged(const QModelIndex &cur, const QModelIndex } void PlayerWidget::doPlay(){ - if(mPlayer->state() == QMediaPlayer::PausedState || mPlayer->state() == QMediaPlayer::StoppedState){ - mPlayer->play(); - mPlayA->setChecked(true); - emit playModeChanged(tr("Playing")); - emit setWinTitle(mCurWinTitle); - mTrayIcon->setIcon(QIcon(":/play.png")); - mTrayIcon->setToolTip(mCurToolTip); - return; - } int playListCount = mSongModel->rowCount(); if(playListCount == 0){ emit message(tr("Playlist is empty! Dazed and confused, but trying to continue...")); doStop(); return; } + + if(mPlayer->state() == QMediaPlayer::PausedState){ + mPlayer->play(); + mPlayA->setChecked(true); + emit playModeChanged(tr("Playing")); + return; + } QModelIndexList sel = mSongView->selectionModel()->selectedRows(); - if(sel.isEmpty()){ - mSongView->selectionModel()->select(mSongModel->index(0, 0), QItemSelectionModel::SelectCurrent); - sel = mSongView->selectionModel()->selectedRows(); + if(mPlayer->state() == QMediaPlayer::StoppedState){ + if(sel.isEmpty()){ + mSongView->selectionModel()->setCurrentIndex(mSongModel->index(0, 0), QItemSelectionModel::SelectCurrent); + sel = mSongView->selectionModel()->selectedRows(); + } } playCurrent(sel.first()); } @@ -739,6 +739,10 @@ void PlayerWidget::playCurrent(const QModelIndex &index){ mPlayer->stop(); QString fullPath = index.data(CollectionWidget::FullPathRole).toString(); play(fullPath); + mPlayer->play(); + mPlayA->setChecked(true); + emit playModeChanged(tr("Playing")); + emit setWinTitle(mCurWinTitle); mTrayIcon->setIcon(QIcon(":/play.png")); mTrayIcon->setToolTip(mCurToolTip); } |