aboutsummaryrefslogtreecommitdiff
path: root/src/qmmpui/playstate.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-05 13:14:32 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2013-08-05 13:14:32 +0000
commit664d78f03b2ae95368c70ca8a45cc746a1612ccd (patch)
treed6983ddd4375108e4725e5a78417f3adaf7722fc /src/qmmpui/playstate.cpp
parentf8202ba35a4daf0f71c1cc81e46a655a8149cccf (diff)
downloadqmmp-664d78f03b2ae95368c70ca8a45cc746a1612ccd.tar.gz
qmmp-664d78f03b2ae95368c70ca8a45cc746a1612ccd.tar.bz2
qmmp-664d78f03b2ae95368c70ca8a45cc746a1612ccd.zip
fixed some regressions
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@3567 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/qmmpui/playstate.cpp')
-rw-r--r--src/qmmpui/playstate.cpp50
1 files changed, 23 insertions, 27 deletions
diff --git a/src/qmmpui/playstate.cpp b/src/qmmpui/playstate.cpp
index 6676bc074..b06f1e659 100644
--- a/src/qmmpui/playstate.cpp
+++ b/src/qmmpui/playstate.cpp
@@ -115,21 +115,22 @@ NormalPlayState::NormalPlayState(PlayListModel * model) : PlayState(model)
bool NormalPlayState::next()
{
- int item_count = m_model->items().count();
-
- if(!item_count)
+ if(!m_model->count())
return false;
- if (m_model->isRepeatableList() && m_model->currentIndex() == item_count - 1)
+ if (m_model->isRepeatableList() && m_model->currentIndex() == m_model->count() - 1)
{
- if(item_count >= 1 && m_model->track(0))
+ if(m_model->track(0))
return m_model->setCurrent(0);
- else if(item_count >= 2 && m_model->track(1))
+ else if(m_model->count() >= 2 && m_model->track(1))
return m_model->setCurrent(1);
+ else
+ return false;
}
- else if(m_model->track((m_model->currentIndex() + 1)))
+
+ if(m_model->track((m_model->currentIndex() + 1)))
return m_model->setCurrent(m_model->currentIndex() + 1);
- else if(m_model->currentIndex() + 2 >= item_count)
+ else if(m_model->currentIndex() + 2 > m_model->count() - 1)
return false;
else if(m_model->track(m_model->currentIndex() + 2))
return m_model->setCurrent(m_model->currentIndex() + 2);
@@ -138,50 +139,45 @@ bool NormalPlayState::next()
bool NormalPlayState::previous()
{
- int item_count = m_model->items().count();
-
- if(!item_count)
+ if(!m_model->count())
return false;
if(m_model->isRepeatableList())
{
- if(m_model->currentIndex() == 1 && m_model->track(0))
- return m_model->setCurrent(0);
- else if(m_model->currentIndex() == 1 && !m_model->track(0))
- return (m_model->setCurrent(m_model->currentIndex() - 1));
+ if(m_model->currentIndex() == 1 && !m_model->isTrack(0))
+ return (m_model->setCurrent(m_model->count() - 1));
else if(m_model->currentIndex() == 0)
- return m_model->setCurrent(m_model->currentIndex() - 1);
+ return m_model->setCurrent(m_model->count() - 1);
}
- if(m_model->currentIndex() == 0)
+ if(m_model->currentIndex() == 1 && !m_model->isTrack(0))
return false;
- else if(m_model->track(m_model->currentIndex() - 1))
+ else if(m_model->currentIndex() == 0)
+ return false;
+ else if(m_model->isTrack(m_model->currentIndex() - 1))
return m_model->setCurrent(m_model->currentIndex() - 1);
- else if(m_model->currentIndex() >= 2 && m_model->track(m_model->currentIndex() - 2))
+ else if(m_model->currentIndex() >= 2 && m_model->isTrack(m_model->currentIndex() - 2))
return m_model->setCurrent(m_model->currentIndex() - 2);
-
return false;
}
int NormalPlayState::nextIndex()
{
- int item_count = m_model->items().count();
- if(!item_count)
+ if(!m_model->count())
return -1;
- if (m_model->currentIndex() == item_count - 1)
+ if (m_model->currentIndex() == m_model->count() - 1)
{
if (m_model->isRepeatableList())
return 0;
else
return -1;
}
- if(m_model->track(m_model->currentIndex() + 1))
+ if(m_model->isTrack(m_model->currentIndex() + 1))
return m_model->currentIndex() + 1;
- else if(m_model->currentIndex() + 2 >= m_model->count())
+ else if(m_model->currentIndex() + 2 > m_model->count() - 1)
return -1;
- else if(m_model->track(m_model->currentIndex() + 2))
+ else if(m_model->isTrack(m_model->currentIndex() + 2))
return m_model->currentIndex() + 2;
return -1;
}
-