_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)));
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);
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) {
if(visible) ui.searchEditLine->setFocus();
}
+void ChatViewSearchBar::delaySearch() {
+ _searchDelayTimer.start(300);
+}
+
+void ChatViewSearchBar::search() {
+ emit searchChanged(ui.searchEditLine->text());
+}
#include "ui_chatviewsearchbar.h"
#include <QWidget>
+#include <QTimer>
class QAction;
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