aboutsummaryrefslogtreecommitdiff
path: root/src/ui/listwidget.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-08-29 19:29:03 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2010-08-29 19:29:03 +0000
commita0c457d7dd9d609bdf8de45d9b5ac6e578ae38b2 (patch)
treeec0b5e90acc2445f9888c222af2ab530daf91ffb /src/ui/listwidget.cpp
parent9aa6aaa154d5671fa1ab656b2ae739b2c1129f36 (diff)
downloadqmmp-a0c457d7dd9d609bdf8de45d9b5ac6e578ae38b2.tar.gz
qmmp-a0c457d7dd9d609bdf8de45d9b5ac6e578ae38b2.tar.bz2
qmmp-a0c457d7dd9d609bdf8de45d9b5ac6e578ae38b2.zip
added 'auto stop' option (patch by Avihay Baratz)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@1862 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui/listwidget.cpp')
-rw-r--r--src/ui/listwidget.cpp19
1 files changed, 15 insertions, 4 deletions
diff --git a/src/ui/listwidget.cpp b/src/ui/listwidget.cpp
index 603cf6907..45ec308b0 100644
--- a/src/ui/listwidget.cpp
+++ b/src/ui/listwidget.cpp
@@ -51,6 +51,7 @@ ListWidget::ListWidget(QWidget *parent)
m_anchor_row = INVALID_ROW;
m_player = MediaPlayer::instance();
connect (m_player, SIGNAL(repeatableChanged(bool)), SLOT(updateList()));
+ connect (m_player, SIGNAL(autoStopChanged(bool)), SLOT(updateList()));
m_first = 0;
m_rows = 0;
m_scroll = false;
@@ -131,7 +132,8 @@ void ListWidget::paintEvent(QPaintEvent *)
m_painter.drawText(10,14+i*m_metrics->height(),m_titles.at(i));
if (m_model->isQueued(m_model->item(i + m_first)) ||
- (m_player->isRepeatable() && (m_model->currentRow() == m_first + i)) || m_show_protocol)
+ (m_player->isRepeatable() && (m_model->currentRow() == m_first + i)) ||
+ m_show_protocol || m_player->isAutoStopping())
{
QString extra_string = getExtraString(m_first + i);
@@ -406,15 +408,24 @@ const QString ListWidget::getExtraString(int i)
if (m_show_protocol && m_model->item(i)->url().contains("://"))
extra_string = "[" + m_model->item(i)->url().split("://").at(0) + "]";
- if (m_player->isRepeatable() && (m_model->currentRow() == i))
- extra_string += " |R|";
+ if ((m_model->currentRow() == i))
+ {
+ if (m_player->isRepeatable() )
+ extra_string += "|R|";
+ if (m_player->isAutoStopping() && (m_player->isRepeatable() || m_model->isEmptyQueue()))
+ extra_string += "|S|";
+ }
if (m_model->isQueued(m_model->item(i)))
{
int index = m_model->queuedIndex(m_model->item(i));
- extra_string += " |"+QString::number(index + 1)+"|";
+ if (m_player->isAutoStopping() && !m_player->isRepeatable() && index + 1== m_model->queueSize())
+ extra_string += "|S|";
+ extra_string += "|"+QString::number(index + 1)+"|";
}
extra_string = extra_string.trimmed(); //remove white space
+ if(!extra_string.isEmpty())
+ extra_string.prepend(" ");
return extra_string;
}