disable previous and next button
if there is no corresponding media; set play/pause symbol via model property instead of via qml.
This commit is contained in:
parent
a29e8d7a64
commit
6eabd3cb75
5 changed files with 75 additions and 8 deletions
|
|
@ -23,6 +23,11 @@ void MusicModel::init(NavigationItemModel *item)
|
|||
mCurrentItem = item;
|
||||
emit currentItemChanged();
|
||||
|
||||
mHasNext = false;
|
||||
mHasPrevious = false;
|
||||
emit hasNextChanged();
|
||||
emit hasPrevious();
|
||||
|
||||
while(mMedia->count() > 0){
|
||||
mMedia->removeMedia(0);
|
||||
}
|
||||
|
|
@ -46,6 +51,7 @@ void MusicModel::navigateBack()
|
|||
void MusicModel::playPause()
|
||||
{
|
||||
mIsPlaying = !mIsPlaying;
|
||||
emit isPlayingChanged();
|
||||
if(mIsPlaying)
|
||||
emit play();
|
||||
else
|
||||
|
|
@ -56,6 +62,11 @@ void MusicModel::stopMusic()
|
|||
{
|
||||
if(mIsPlaying){
|
||||
mIsPlaying = false;
|
||||
mHasNext = false;
|
||||
mHasPrevious = false;
|
||||
emit hasNextChanged();
|
||||
emit hasPreviousChanged();
|
||||
emit isPlayingChanged();
|
||||
emit stop();
|
||||
}
|
||||
}
|
||||
|
|
@ -63,11 +74,19 @@ void MusicModel::stopMusic()
|
|||
void MusicModel::playNext()
|
||||
{
|
||||
emit next();
|
||||
if(!mIsPlaying){
|
||||
mIsPlaying = true;
|
||||
emit isPlayingChanged();
|
||||
}
|
||||
}
|
||||
|
||||
void MusicModel::playPrevious()
|
||||
{
|
||||
emit previous();
|
||||
if(!mIsPlaying){
|
||||
mIsPlaying = true;
|
||||
emit isPlayingChanged();
|
||||
}
|
||||
}
|
||||
|
||||
NavigationItemModel *MusicModel::getCurrentItem()
|
||||
|
|
@ -84,3 +103,27 @@ bool MusicModel::isPlaying()
|
|||
{
|
||||
return mIsPlaying;
|
||||
}
|
||||
|
||||
bool MusicModel::hasNext()
|
||||
{
|
||||
return mHasNext;
|
||||
}
|
||||
|
||||
bool MusicModel::hasPrevious()
|
||||
{
|
||||
return mHasPrevious;
|
||||
}
|
||||
|
||||
void MusicModel::onNextMediaSet(VlcMedia *media)
|
||||
{
|
||||
mHasNext = true;
|
||||
mHasPrevious = true;
|
||||
if(mMedia->at(0) == media){
|
||||
mHasPrevious = false;
|
||||
}
|
||||
if(mMedia->at(mMedia->count()-1) == media){
|
||||
mHasNext = false;
|
||||
}
|
||||
emit hasPreviousChanged();
|
||||
emit hasNextChanged();
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue