From bd16af99a8475c3847cad3f8036c25ae35a7f66d Mon Sep 17 00:00:00 2001 From: trialuser02 Date: Mon, 27 Feb 2012 11:47:42 +0000 Subject: stream browser: added filter git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2641 90c681e8-e032-0410-971d-27865f9a5e38 --- src/plugins/General/streambrowser/streamwindow.cpp | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'src/plugins/General/streambrowser/streamwindow.cpp') diff --git a/src/plugins/General/streambrowser/streamwindow.cpp b/src/plugins/General/streambrowser/streamwindow.cpp index 4dbf86579..f893467fc 100644 --- a/src/plugins/General/streambrowser/streamwindow.cpp +++ b/src/plugins/General/streambrowser/streamwindow.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -45,13 +46,18 @@ StreamWindow::StreamWindow(QWidget *parent) : QWidget(parent) ui.addPushButton->setIcon(QIcon::fromTheme("list-add")); ui.updatePushButton->setIcon(QIcon::fromTheme("view-refresh")); - m_icecastModel = new QStandardItemModel(this); m_icecastModel->setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("Genre") << tr("Bitrate") << tr("Format")); - ui.icecastTableView->setModel(m_icecastModel); + m_filterModel = new QSortFilterProxyModel(this); + m_filterModel->setSourceModel(m_icecastModel); + m_filterModel->setDynamicSortFilter(true); + m_filterModel->setFilterCaseSensitivity(Qt::CaseInsensitive); + + + ui.icecastTableView->setModel(m_filterModel); ui.icecastTableView->verticalHeader()->setDefaultSectionSize(fontMetrics().height()); ui.icecastTableView->verticalHeader()->setResizeMode(QHeaderView::Fixed); ui.icecastTableView->setEditTriggers(QAbstractItemView::NoEditTriggers); @@ -132,12 +138,18 @@ void StreamWindow::on_addPushButton_clicked() QStringList urls; foreach(QModelIndex index, indexes) { - urls.append(m_icecastModel->item(index.row(),0)->data().toString()); + QModelIndex source_index = m_filterModel->mapToSource(index); + urls.append(m_icecastModel->item(source_index.row(),0)->data().toString()); } urls.removeDuplicates(); PlayListManager::instance()->add(urls); } +void StreamWindow::on_filterLineEdit_textChanged(const QString &text) +{ + m_filterModel->setFilterFixedString(text); +} + void StreamWindow::closeEvent(QCloseEvent *) { QSettings settings(Qmmp::configFile(), QSettings::IniFormat); -- cgit v1.2.3-13-gbd6f