From 96a6749a4b66c1a59d51299216cb57336a1a4cbe Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Sat, 20 Jan 2018 14:29:59 +0100 Subject: Added result label to search form --- CMakeLists.txt | 16 +++++----- src/forms/searchform.cpp | 57 ---------------------------------- src/forms/searchform.h | 35 --------------------- src/forms/searchform.ui | 44 -------------------------- src/mainwindow/mainwindow.cpp | 2 +- src/mainwindow/widgets/searchform.cpp | 58 +++++++++++++++++++++++++++++++++++ src/mainwindow/widgets/searchform.h | 35 +++++++++++++++++++++ src/mainwindow/widgets/searchform.ui | 51 ++++++++++++++++++++++++++++++ 8 files changed, 154 insertions(+), 144 deletions(-) delete mode 100644 src/forms/searchform.cpp delete mode 100644 src/forms/searchform.h delete mode 100644 src/forms/searchform.ui create mode 100644 src/mainwindow/widgets/searchform.cpp create mode 100644 src/mainwindow/widgets/searchform.h create mode 100644 src/mainwindow/widgets/searchform.ui diff --git a/CMakeLists.txt b/CMakeLists.txt index a0e6b9d..fc1cc4c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -65,23 +65,25 @@ set(SourceCode "src/singleapplication.h" "src/browser.cpp" "src/browser.h" + "data/resources.qrc" # main window - # todo: move all to src/mainwindow src/mainwindow/mainwindow.cpp src/mainwindow/mainwindow.h src/mainwindow/mainwindow.ui src/mainwindow/widgets/loadingbar.cpp src/mainwindow/widgets/loadingbar.h + src/mainwindow/widgets/navigationbar.cpp + src/mainwindow/widgets/navigationbar.h + src/mainwindow/widgets/searchform.cpp + src/mainwindow/widgets/searchform.h + src/mainwindow/widgets/searchform.ui + + # todo: move all to src/mainwindow "src/widgets/mainwindowmenubar.cpp" "src/widgets/mainwindowmenubar.h" "src/widgets/mainwindowtabbar.cpp" "src/widgets/mainwindowtabbar.h" - # todo: move to src/mainwindow - "src/forms/searchform.cpp" - "src/forms/searchform.h" - "src/forms/searchform.ui" - "data/resources.qrc" # webengine src/webengine/cookieinterceptor.cpp @@ -106,7 +108,7 @@ set(SourceCode # plugin interfaces plugins/interfaces.h - src/mainwindow/widgets/navigationbar.cpp src/mainwindow/widgets/navigationbar.h) + ) add_executable(poi ${SourceCode}) diff --git a/src/forms/searchform.cpp b/src/forms/searchform.cpp deleted file mode 100644 index 03fd24f..0000000 --- a/src/forms/searchform.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/* - * This file is part of smolbote. It's copyrighted by the contributors recorded - * in the version control history of the file, available from its original - * location: https://neueland.iserlohn-fortress.net/smolbote.hg - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#include "searchform.h" -#include "src/mainwindow/mainwindow.h" -#include "ui_searchform.h" - -#include - -SearchForm::SearchForm(MainWindow *parentWindow, QWidget *parent) - : QWidget(parent) - , ui(new Ui::SearchForm) -{ - Q_CHECK_PTR(parentWindow); - - ui->setupUi(this); - ui->lineEdit->setPlaceholderText(tr("Search")); - ui->lineEdit->setClearButtonEnabled(true); - - // show/hide action - QAction *toggleSearchBox = new QAction(this); - toggleSearchBox->setShortcut(QKeySequence(QString::fromStdString(parentWindow->m_config->value("browser.shortcuts.toggleSearchBox").value()))); - connect(toggleSearchBox, &QAction::triggered, this, [this, parentWindow]() { - if(isVisible()) { - setVisible(false); - // remove highlighting by passing an empty string - parentWindow->m_currentView->findText(""); - } else { - setVisible(true); - setFocus(); - } - }); - parentWindow->addAction(toggleSearchBox); - - connect(ui->lineEdit, &QLineEdit::returnPressed, this, [this, parentWindow]() { - QWebEnginePage::FindFlags searchFlags; - searchFlags.setFlag(QWebEnginePage::FindCaseSensitively, ui->caseSensitivity_checkBox->isChecked()); - searchFlags.setFlag(QWebEnginePage::FindBackward, ui->reverseSearch_checkBox->isChecked()); - parentWindow->m_currentView->findText(ui->lineEdit->text(), searchFlags); - }); -} - -SearchForm::~SearchForm() -{ - delete ui; -} - -void SearchForm::focusInEvent(QFocusEvent *e) -{ - ui->lineEdit->setFocus(); - QWidget::focusInEvent(e); -} diff --git a/src/forms/searchform.h b/src/forms/searchform.h deleted file mode 100644 index da25474..0000000 --- a/src/forms/searchform.h +++ /dev/null @@ -1,35 +0,0 @@ -/* - * This file is part of smolbote. It's copyrighted by the contributors recorded - * in the version control history of the file, available from its original - * location: https://neueland.iserlohn-fortress.net/smolbote.hg - * - * SPDX-License-Identifier: GPL-3.0 - */ - -#ifndef SEARCHFORM_H -#define SEARCHFORM_H - -#include - -namespace Ui -{ -class SearchForm; -} - -class MainWindow; -class SearchForm : public QWidget -{ - Q_OBJECT - -public: - explicit SearchForm(MainWindow *parentWindow, QWidget *parent = nullptr); - ~SearchForm(); - -protected: - void focusInEvent(QFocusEvent *e); - -private: - Ui::SearchForm *ui; -}; - -#endif // SEARCHFORM_H diff --git a/src/forms/searchform.ui b/src/forms/searchform.ui deleted file mode 100644 index 2b0c551..0000000 --- a/src/forms/searchform.ui +++ /dev/null @@ -1,44 +0,0 @@ - - - SearchForm - - - - 0 - 0 - 550 - 26 - - - - Form - - - - 0 - - - 0 - - - - - - - - Case Sensitive - - - - - - - Search Backwards - - - - - - - - diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index 94e9bce..a45c89e 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -8,7 +8,7 @@ #include "mainwindow.h" #include "forms/aboutdialog.h" -#include "forms/searchform.h" +#include "src/mainwindow/widgets/searchform.h" #include "ui_mainwindow.h" #include "widgets/mainwindowmenubar.h" #include diff --git a/src/mainwindow/widgets/searchform.cpp b/src/mainwindow/widgets/searchform.cpp new file mode 100644 index 0000000..08d4470 --- /dev/null +++ b/src/mainwindow/widgets/searchform.cpp @@ -0,0 +1,58 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: https://neueland.iserlohn-fortress.net/smolbote.hg + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#include "searchform.h" +#include "src/mainwindow/mainwindow.h" +#include "ui_searchform.h" + +SearchForm::SearchForm(MainWindow *parentWindow, QWidget *parent) + : QWidget(parent) + , ui(new Ui::SearchForm) +{ + Q_CHECK_PTR(parentWindow); + + ui->setupUi(this); + ui->lineEdit->setPlaceholderText(tr("Search")); + ui->lineEdit->setClearButtonEnabled(true); + ui->result_label->setVisible(false); + + // show/hide action + auto *toggleSearchBox = new QAction(this); + toggleSearchBox->setShortcut(QKeySequence(QString::fromStdString(parentWindow->m_config->value("browser.shortcuts.toggleSearchBox").value()))); + connect(toggleSearchBox, &QAction::triggered, this, [this, parentWindow]() { + if(isVisible()) { + setVisible(false); + // remove highlighting by passing an empty string + parentWindow->m_currentView->findText(""); + } else { + setVisible(true); + setFocus(); + } + }); + parentWindow->addAction(toggleSearchBox); + + connect(ui->lineEdit, &QLineEdit::returnPressed, this, [this, parentWindow]() { + QWebEnginePage::FindFlags searchFlags; + searchFlags.setFlag(QWebEnginePage::FindCaseSensitively, ui->caseSensitivity_checkBox->isChecked()); + searchFlags.setFlag(QWebEnginePage::FindBackward, ui->reverseSearch_checkBox->isChecked()); + parentWindow->m_currentView->findText(ui->lineEdit->text(), searchFlags, [this](bool found) { + ui->result_label->setVisible(!found); + }); + }); +} + +SearchForm::~SearchForm() +{ + delete ui; +} + +void SearchForm::focusInEvent(QFocusEvent *e) +{ + ui->lineEdit->setFocus(); + QWidget::focusInEvent(e); +} diff --git a/src/mainwindow/widgets/searchform.h b/src/mainwindow/widgets/searchform.h new file mode 100644 index 0000000..94cc2a9 --- /dev/null +++ b/src/mainwindow/widgets/searchform.h @@ -0,0 +1,35 @@ +/* + * This file is part of smolbote. It's copyrighted by the contributors recorded + * in the version control history of the file, available from its original + * location: https://neueland.iserlohn-fortress.net/smolbote.hg + * + * SPDX-License-Identifier: GPL-3.0 + */ + +#ifndef SEARCHFORM_H +#define SEARCHFORM_H + +#include + +namespace Ui +{ +class SearchForm; +} + +class MainWindow; +class SearchForm : public QWidget +{ + Q_OBJECT + +public: + explicit SearchForm(MainWindow *parentWindow, QWidget *parent = nullptr); + ~SearchForm() override; + +protected: + void focusInEvent(QFocusEvent *e) override; + +private: + Ui::SearchForm *ui; +}; + +#endif // SEARCHFORM_H diff --git a/src/mainwindow/widgets/searchform.ui b/src/mainwindow/widgets/searchform.ui new file mode 100644 index 0000000..9d1d108 --- /dev/null +++ b/src/mainwindow/widgets/searchform.ui @@ -0,0 +1,51 @@ + + + SearchForm + + + + 0 + 0 + 600 + 32 + + + + Form + + + + 0 + + + 0 + + + + + + + + Case Sensitive + + + + + + + Search Backwards + + + + + + + No Results found + + + + + + + + -- cgit v1.2.1