aboutsummaryrefslogtreecommitdiff
path: root/src/browsertab.cpp
diff options
context:
space:
mode:
authorMike Skec <skec@protonmail.ch>2021-02-09 17:49:07 +1100
committerFelix Queißner <felix@ib-queissner.de>2021-02-09 10:18:41 +0100
commit0843ee2dada57255c29425f7b598ab3b258e4641 (patch)
tree053f28868aec5901c8bf1a7aa0a5401d442a3987 /src/browsertab.cpp
parent70c71e7a0ee3f2c446551fc15af06136861e10e7 (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.cpp27
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()