diff options
| author | Mike Skec <skec@protonmail.ch> | 2021-02-09 17:49:07 +1100 |
|---|---|---|
| committer | Felix Queißner <felix@ib-queissner.de> | 2021-02-09 10:18:41 +0100 |
| commit | 0843ee2dada57255c29425f7b598ab3b258e4641 (patch) | |
| tree | 053f28868aec5901c8bf1a7aa0a5401d442a3987 /src/browsertab.cpp | |
| parent | 70c71e7a0ee3f2c446551fc15af06136861e10e7 (diff) | |
Search box: better reimplementation
This was necessary to fix a bug, where the URL bar becomes unusable while search box is visible.
Diffstat (limited to 'src/browsertab.cpp')
| -rw-r--r-- | src/browsertab.cpp | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/browsertab.cpp b/src/browsertab.cpp index 2af2bb0..8cc30a8 100644 --- a/src/browsertab.cpp +++ b/src/browsertab.cpp @@ -22,6 +22,7 @@ #include "ioutil.hpp" #include "kristall.hpp" #include "widgets/favouritepopup.hpp" +#include "widgets/searchbox.hpp" #include <cassert> #include <QTabWidget> @@ -106,16 +107,8 @@ BrowserTab::BrowserTab(MainWindow *mainWindow) : QWidget(nullptr), connect(sc, &QShortcut::activated, this, &BrowserTab::on_refresh_button_clicked); } { - QShortcut * sc0 = new QShortcut(QKeySequence("Return"), this), - *sc1 = new QShortcut(QKeySequence("F3"), this); - connect(sc0, &QShortcut::activated, this, &BrowserTab::on_search_next_clicked); - connect(sc1, &QShortcut::activated, this, &BrowserTab::on_search_next_clicked); - } - { - QShortcut * sc0 = new QShortcut(QKeySequence("Shift+Return"), this), - *sc1 = new QShortcut(QKeySequence("Shift+F3"), this); - connect(sc0, &QShortcut::activated, this, &BrowserTab::on_search_previous_clicked); - connect(sc1, &QShortcut::activated, this, &BrowserTab::on_search_previous_clicked); + connect(this->ui->search_box, &SearchBox::searchNext, this, &BrowserTab::on_search_next_clicked); + connect(this->ui->search_box, &SearchBox::searchPrev, this, &BrowserTab::on_search_previous_clicked); } { QShortcut * sc = new QShortcut(QKeySequence("Escape"), this->ui->search_bar); @@ -1635,12 +1628,22 @@ void BrowserTab::on_search_box_returnPressed() void BrowserTab::on_search_next_clicked() { - this->ui->text_browser->find(this->ui->search_box->text()); + if (!this->ui->text_browser->find(this->ui->search_box->text())) + { + // Wrap search + this->ui->text_browser->moveCursor(QTextCursor::Start); + this->ui->text_browser->find(this->ui->search_box->text()); + } } void BrowserTab::on_search_previous_clicked() { - this->ui->text_browser->find(this->ui->search_box->text(), QTextDocument::FindBackward); + if (!this->ui->text_browser->find(this->ui->search_box->text(), QTextDocument::FindBackward)) + { + // Wrap search + this->ui->text_browser->moveCursor(QTextCursor::End); + this->ui->text_browser->find(this->ui->search_box->text(), QTextDocument::FindBackward); + } } void BrowserTab::on_close_search_clicked() |
