From 33d1a8a2d620c37a67d85c6948d9d1926baedfbb Mon Sep 17 00:00:00 2001 From: Sebastian Goth Date: Thu, 24 Sep 2009 22:30:57 +0200 Subject: [PATCH] Add small delay to chatview search Adding 300ms delay until chatview searchbar updates the view. CPU time wasted-- --- src/qtui/bufferwidget.cpp | 2 +- src/qtui/chatviewsearchbar.cpp | 10 ++++++++++ src/qtui/chatviewsearchbar.h | 9 +++++++++ 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/qtui/bufferwidget.cpp b/src/qtui/bufferwidget.cpp index c514ab81..135c0d15 100644 --- a/src/qtui/bufferwidget.cpp +++ b/src/qtui/bufferwidget.cpp @@ -50,7 +50,7 @@ BufferWidget::BufferWidget(QWidget *parent) _chatViewSearchController->setSearchMsgs(ui.searchBar->searchMsgsBox()->isChecked()); _chatViewSearchController->setSearchOnlyRegularMsgs(ui.searchBar->searchOnlyRegularMsgsBox()->isChecked()); - connect(ui.searchBar->searchEditLine(), SIGNAL(textChanged(const QString &)), + connect(ui.searchBar, SIGNAL(searchChanged(const QString &)), _chatViewSearchController, SLOT(setSearchString(const QString &))); connect(ui.searchBar->caseSensitiveBox(), SIGNAL(toggled(bool)), _chatViewSearchController, SLOT(setCaseSensitive(bool))); diff --git a/src/qtui/chatviewsearchbar.cpp b/src/qtui/chatviewsearchbar.cpp index add0f3e2..19fce8a6 100644 --- a/src/qtui/chatviewsearchbar.cpp +++ b/src/qtui/chatviewsearchbar.cpp @@ -32,6 +32,7 @@ ChatViewSearchBar::ChatViewSearchBar(QWidget *parent) ui.hideButton->setIcon(BarIcon("dialog-close")); ui.searchUpButton->setIcon(SmallIcon("go-up")); ui.searchDownButton->setIcon(SmallIcon("go-down")); + _searchDelayTimer.setSingleShot(true); layout()->setContentsMargins(0, 0, 0, 0); @@ -47,6 +48,8 @@ ChatViewSearchBar::ChatViewSearchBar(QWidget *parent) hideSearchBar->setShortcut(Qt::Key_Escape); connect(ui.hideButton, SIGNAL(clicked()), toggleSearchBar, SLOT(toggle())); + connect(ui.searchEditLine, SIGNAL(textChanged(const QString &)), this, SLOT(delaySearch())); + connect(&_searchDelayTimer, SIGNAL(timeout()), this, SLOT(search())); } void ChatViewSearchBar::setVisible(bool visible) { @@ -58,3 +61,10 @@ void ChatViewSearchBar::setVisible(bool visible) { if(visible) ui.searchEditLine->setFocus(); } +void ChatViewSearchBar::delaySearch() { + _searchDelayTimer.start(300); +} + +void ChatViewSearchBar::search() { + emit searchChanged(ui.searchEditLine->text()); +} diff --git a/src/qtui/chatviewsearchbar.h b/src/qtui/chatviewsearchbar.h index 708cbc31..497c5dd5 100644 --- a/src/qtui/chatviewsearchbar.h +++ b/src/qtui/chatviewsearchbar.h @@ -24,6 +24,7 @@ #include "ui_chatviewsearchbar.h" #include +#include class QAction; @@ -44,8 +45,16 @@ public: public slots: void setVisible(bool); +signals: + void searchChanged(const QString &); + +private slots: + void delaySearch(); + void search(); + private: Ui::ChatViewSearchBar ui; + QTimer _searchDelayTimer; }; #endif //CHATVIEWSEARCHBAR_H -- 2.20.1