diff options
| -rw-r--r-- | src/qmmpui/jumptotrackdialog.cpp | 31 | ||||
| -rw-r--r-- | src/qmmpui/jumptotrackdialog_p.h | 2 |
2 files changed, 21 insertions, 12 deletions
diff --git a/src/qmmpui/jumptotrackdialog.cpp b/src/qmmpui/jumptotrackdialog.cpp index 8ecf84a41..011a61285 100644 --- a/src/qmmpui/jumptotrackdialog.cpp +++ b/src/qmmpui/jumptotrackdialog.cpp @@ -81,16 +81,16 @@ void JumpToTrackDialog::on_refreshPushButton_clicked() void JumpToTrackDialog::on_queuePushButton_clicked() { - /*QModelIndexList mi_list = songsListView->selectionModel()->selectedRows(); + QModelIndexList mi_list = songsListView->selectionModel()->selectedRows(); if (!mi_list.isEmpty()) { int selected = (m_proxyModel->mapToSource(mi_list.at(0))).row(); - m_model->setQueued(m_model->track(selected)); - if (m_model->isQueued(m_model->track(selected))) + m_model->setQueued(m_model->track(m_indexes[selected])); + if (m_model->isQueued(m_model->track(m_indexes[selected]))) queuePushButton->setText(tr("Unqueue")); else queuePushButton->setText(tr("Queue")); - }*/ + } } void JumpToTrackDialog::on_jumpToPushButton_clicked() @@ -104,12 +104,19 @@ void JumpToTrackDialog::on_jumpToPushButton_clicked() void JumpToTrackDialog::refresh() { - /*filterLineEdit->clear(); + filterLineEdit->clear(); + m_indexes.clear(); QStringList titles; - foreach (PlayListTrack *item, m_model->items()) - titles.append(item->formattedTitle()); + QList<PlayListItem *> items = m_model->items(); + for(int i = 0; i < items.count(); ++i) + { + if(items[i]->isGroup()) + continue; + titles.append(items[i]->formattedTitle()); + m_indexes.append(i); + } m_listModel->setStringList(titles); - filterLineEdit->setFocus();*/ + filterLineEdit->setFocus(); } void JumpToTrackDialog::on_filterLineEdit_textChanged(const QString &str) @@ -132,7 +139,7 @@ void JumpToTrackDialog::on_filterLineEdit_returnPressed () void JumpToTrackDialog::jumpTo(const QModelIndex & index) { int selected = (m_proxyModel->mapToSource(index)).row(); - m_model->setCurrent(selected); + m_model->setCurrent(m_indexes[selected]); SoundCore::instance()->stop(); m_pl_manager->activatePlayList(m_model); MediaPlayer::instance()->play(); @@ -140,9 +147,9 @@ void JumpToTrackDialog::jumpTo(const QModelIndex & index) void JumpToTrackDialog::queueUnqueue(const QModelIndex& curr,const QModelIndex&) { - /*int row = m_proxyModel->mapToSource(curr).row(); - if (m_model->isQueued(m_model->item(row))) + int row = m_proxyModel->mapToSource(curr).row(); + if (m_model->isQueued(m_model->track(m_indexes[row]))) queuePushButton->setText(tr("Unqueue")); else - queuePushButton->setText(tr("Queue"));*/ + queuePushButton->setText(tr("Queue")); } diff --git a/src/qmmpui/jumptotrackdialog_p.h b/src/qmmpui/jumptotrackdialog_p.h index 587a6ac07..915f1197a 100644 --- a/src/qmmpui/jumptotrackdialog_p.h +++ b/src/qmmpui/jumptotrackdialog_p.h @@ -22,6 +22,7 @@ #define JUMPTOTRACKDIALOG_P_H #include <QDialog> +#include <QList> #include "ui_jumptotrackdialog.h" class QStringListModel; @@ -56,6 +57,7 @@ private: QSortFilterProxyModel* m_proxyModel; PlayListManager *m_pl_manager; PlayListModel *m_model; + QList<int> m_indexes; }; #endif //JUMPTOTRACKDIALOG_P_H |
