diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-02-27 11:47:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2012-02-27 11:47:42 +0000 |
| commit | bd16af99a8475c3847cad3f8036c25ae35a7f66d (patch) | |
| tree | d79d335de0bd0e03f17d2831b5ea71f34d8a3246 /src/plugins/General/streambrowser/streamwindow.cpp | |
| parent | 2674c40dcca4382c42572b1388f6d83a787c59dd (diff) | |
| download | qmmp-bd16af99a8475c3847cad3f8036c25ae35a7f66d.tar.gz qmmp-bd16af99a8475c3847cad3f8036c25ae35a7f66d.tar.bz2 qmmp-bd16af99a8475c3847cad3f8036c25ae35a7f66d.zip | |
stream browser: added filter
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2641 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/General/streambrowser/streamwindow.cpp')
| -rw-r--r-- | src/plugins/General/streambrowser/streamwindow.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
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 <QUrl> #include <QRegExp> #include <QStandardItemModel> +#include <QSortFilterProxyModel> #include <QSettings> #include <QDir> #include <QMessageBox> @@ -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); |
