From 5152fc15d128821b842ade2c8fa7e2fcb16c0e94 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 17 Apr 2018 16:37:25 +0200 Subject: Search box works again --- src/mainwindow/mainwindow.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'src/mainwindow/mainwindow.cpp') diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index b68ddbe..9b1db30 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -24,6 +24,8 @@ #include #include #include "addressbar/addressbar.h" +#include +#include "widgets/searchform.h" MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) : QMainWindow(parent) @@ -54,10 +56,17 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) setCentralWidget(mdiArea); mdiArea->setFocus(); + // status bar + searchBox = new SearchForm(this); + statusBar()->addPermanentWidget(searchBox); + searchBox->setVisible(false); + + // connect signlas connect(mdiArea, &QMdiArea::subWindowActivated, this, [this, navigationToolBar](QMdiSubWindow *window) { disconnect(titleChangedConnection); disconnect(addressBarConnection); disconnect(navigationBarConnection); + disconnect(searchBoxConnection); auto *w = qobject_cast(window); if(w == nullptr) { @@ -65,6 +74,7 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) setWindowTitle(tr("smolbote")); addressBar->connectWebView(nullptr); navigationToolBar->connectWebView(nullptr); + searchBox->setView(nullptr); } else { setWindowTitle(w->windowTitle() + titleSuffix); titleChangedConnection = connect(w, &Window::windowTitleChanged, this, [this](const QString &title) { @@ -75,13 +85,20 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) addressBarConnection = connect(w, &Window::currentViewChanged, addressBar, &AddressBar::connectWebView); navigationToolBar->connectWebView(w->currentView()); navigationBarConnection = connect(w, &Window::currentViewChanged, navigationToolBar, &NavigationBar::connectWebView); + searchBox->setView(w->currentView()); + searchBoxConnection = connect(w, &Window::currentViewChanged, searchBox, &SearchForm::setView); } }); auto *tileShortcut = new QShortcut(QKeySequence(config->value("mainwindow.shortcuts.tileWindows").value().c_str()), this); - connect(tileShortcut, &QShortcut::activated, this, [this]() { + connect(tileShortcut, &QShortcut::activated, this, [=]() { mdiArea->tileSubWindows(); }); + + auto *searchShortcut = new QShortcut(QKeySequence(config->value("mainwindow.shortcuts.search").value().c_str()), this); + connect(searchShortcut, &QShortcut::activated, this, [=]() { + searchBox->setVisible(!searchBox->isVisible()); + }); } MainWindow::~MainWindow() @@ -89,6 +106,7 @@ MainWindow::~MainWindow() disconnect(titleChangedConnection); disconnect(addressBarConnection); disconnect(navigationBarConnection); + disconnect(searchBoxConnection); } void MainWindow::createMenuBar() -- cgit v1.2.1