diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-08-27 19:50:42 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2017-08-27 19:50:42 +0000 |
| commit | bfb93b795add0b7eb440cbffdaf9b51b61ec9d6c (patch) | |
| tree | c6d86521b3ddb80bd58518e0af998dd4c8df8ca5 /src/plugins/Ui/qsui/qsuiquicksearch.cpp | |
| parent | 465d171ec72009ec2bdbd41a939a77871bef0fe7 (diff) | |
| download | qmmp-bfb93b795add0b7eb440cbffdaf9b51b61ec9d6c.tar.gz qmmp-bfb93b795add0b7eb440cbffdaf9b51b61ec9d6c.tar.bz2 qmmp-bfb93b795add0b7eb440cbffdaf9b51b61ec9d6c.zip | |
qsui: changed quick search implementation
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7392 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/qsui/qsuiquicksearch.cpp')
| -rw-r--r-- | src/plugins/Ui/qsui/qsuiquicksearch.cpp | 77 |
1 files changed, 6 insertions, 71 deletions
diff --git a/src/plugins/Ui/qsui/qsuiquicksearch.cpp b/src/plugins/Ui/qsui/qsuiquicksearch.cpp index 89160bdbb..2763c9542 100644 --- a/src/plugins/Ui/qsui/qsuiquicksearch.cpp +++ b/src/plugins/Ui/qsui/qsuiquicksearch.cpp @@ -23,15 +23,16 @@ #include <QToolButton> #include <QStyle> #include <QEvent> -#include <QApplication> #include <QDebug> #include <qmmpui/playlistmanager.h> #include <qmmpui/playlistmodel.h> +#include "listwidget.h" #include "qsuiquicksearch.h" -QSUIQuickSearch::QSUIQuickSearch(QWidget *parent) : +QSUIQuickSearch::QSUIQuickSearch(ListWidget *listWidget, QWidget *parent) : QWidget(parent) { + m_listWidget = listWidget; m_manager = PlayListManager::instance(); m_lineEdit = new QLineEdit(this); QHBoxLayout *layout = new QHBoxLayout; @@ -40,73 +41,7 @@ QSUIQuickSearch::QSUIQuickSearch(QWidget *parent) : setLayout(layout); layout->addWidget(m_lineEdit); m_lineEdit->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - - QToolButton *downButton = new QToolButton(this); - downButton->setAutoRaise(true); - downButton->setIcon(style()->standardIcon(QStyle::QStyle::SP_ArrowDown)); - layout->addWidget(downButton); - QToolButton *upButton = new QToolButton(this); - upButton->setIcon(style()->standardIcon(QStyle::QStyle::SP_ArrowUp)); - upButton->setAutoRaise(true); - layout->addWidget(upButton); - - connect(qApp, SIGNAL(focusChanged(QWidget*,QWidget*)), SLOT(onFocusChanged(QWidget*,QWidget*))); - connect(m_lineEdit, SIGNAL(textEdited(QString)), SLOT(onTextEdited(QString))); - connect(downButton, SIGNAL(clicked(bool)), SLOT(onSearchDownClicked())); - connect(upButton, SIGNAL(clicked(bool)), SLOT(onSearchUpClicked())); -} - -void QSUIQuickSearch::onFocusChanged(QWidget *old, QWidget *now) -{ - if(now == m_lineEdit) - { - qDebug("focus in"); - search(m_lineEdit->text()); - updateSelection(); - } - else if(old == m_lineEdit) - qDebug("focus out"); -} - -void QSUIQuickSearch::onTextEdited(const QString &str) -{ - search(str); - updateSelection(); -} - -void QSUIQuickSearch::onSearchUpClicked() -{ - PlayListModel *model = m_manager->selectedPlayList(); -} - -void QSUIQuickSearch::onSearchDownClicked() -{ - PlayListModel *model = m_manager->selectedPlayList(); -} - -void QSUIQuickSearch::search(const QString &str) -{ - m_indexes.clear(); - if(str.isEmpty()) - return; - - PlayListModel *model = m_manager->selectedPlayList(); - - for(int i = 0; i < model->count(); ++i) - { - PlayListItem *item = model->item(i); - if(item->isGroup()) - continue; - - if(!item->formattedTitles().filter(str, Qt::CaseInsensitive).isEmpty()) - m_indexes << i; - } -} - -void QSUIQuickSearch::updateSelection() -{ - PlayListModel *model = m_manager->selectedPlayList(); - model->clearSelection(); - model->setSelected(m_indexes); + connect(m_lineEdit, SIGNAL(textEdited(QString)), m_listWidget, SLOT(setFilterString(QString))); + connect(m_manager, SIGNAL(selectedPlayListChanged(PlayListModel*,PlayListModel*)), m_lineEdit, SLOT(clear())); + connect(m_listWidget, SIGNAL(doubleClicked()), m_lineEdit, SLOT(clear())); } - |
