X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fchatviewsearchbar.cpp;h=bfa79e1e065f29e7a5c293023f02a757c795aad9;hp=121070d3d2f501bbd5e8028de6edaa86fc091986;hb=c80ab2e825ff9125c1c7e8e829487a4b1c118579;hpb=a117d3bd1592bae3b14630c953790a005b3c3a3d diff --git a/src/qtui/chatviewsearchbar.cpp b/src/qtui/chatviewsearchbar.cpp index 121070d3..bfa79e1e 100644 --- a/src/qtui/chatviewsearchbar.cpp +++ b/src/qtui/chatviewsearchbar.cpp @@ -20,29 +20,43 @@ #include "chatviewsearchbar.h" -#include +#include "action.h" +#include "actioncollection.h" +#include "iconloader.h" +#include "qtui.h" ChatViewSearchBar::ChatViewSearchBar(QWidget *parent) : QWidget(parent) { ui.setupUi(this); + ui.hideButton->setIcon(BarIcon("dialog-close")); + ui.searchUpButton->setIcon(SmallIcon("go-up")); + ui.searchDownButton->setIcon(SmallIcon("go-down")); + layout()->setContentsMargins(0, 0, 0, 0); - ui.searchUpButton->setEnabled(false); - ui.searchDownButton->setEnabled(false); + hide(); + + ActionCollection *coll = QtUi::actionCollection(); + + Action *toggleSearchBar = coll->add("toggleSearchBar"); + connect(toggleSearchBar, SIGNAL(toggled(bool)), SLOT(setVisible(bool))); + toggleSearchBar->setText(tr("Show Search Bar")); + toggleSearchBar->setShortcut(Qt::CTRL + Qt::Key_F); + toggleSearchBar->setCheckable(true); - _toggleViewAction = new QAction(tr("Show search bar"), this); - _toggleViewAction->setCheckable(true); - _toggleViewAction->setChecked(false); - connect(_toggleViewAction, SIGNAL(toggled(bool)), - this, SLOT(setVisible(bool))); - setVisible(false); + Action *hideSearchBar = coll->add("hideSearchBar", toggleSearchBar, SLOT(setChecked(bool))); // always false + hideSearchBar->setShortcut(Qt::Key_Escape); - connect(ui.hideButton, SIGNAL(clicked()), - _toggleViewAction, SLOT(toggle())); + connect(ui.hideButton, SIGNAL(clicked()), toggleSearchBar, SLOT(toggle())); } void ChatViewSearchBar::setVisible(bool visible) { - QWidget::setVisible(visible); + // clearing the search field also removes the highlight items from the scene + // this should be done before the SearchBar is hidden, as the hiding triggers + // a resize event which can lead to strange side effects. ui.searchEditLine->clear(); + QWidget::setVisible(visible); + if(visible) ui.searchEditLine->setFocus(); } +