From 74a7ea3732853f954fcab7088acaa2413fc3e7c1 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 17 Apr 2018 01:38:07 +0200 Subject: Enabled address bar suggestions Also fixed occasional bug when showing the completer. --- src/mainwindow/mainwindow.cpp | 16 ++++++++++++++++ src/mainwindow/mainwindow.h | 7 ++++++- src/mainwindow/widgets/navigationbar.cpp | 12 ------------ src/mainwindow/widgets/navigationbar.h | 2 -- 4 files changed, 22 insertions(+), 15 deletions(-) (limited to 'src/mainwindow') diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index c039c8e..6af530a 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -23,6 +23,7 @@ #include #include #include +#include "addressbar/urllineedit.h" MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) : QMainWindow(parent) @@ -41,16 +42,28 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) show(); createMenuBar(); + auto *navigationToolBar = new NavigationBar(config->section("navigation"), this); navigationToolBar->setMovable(config->value("navigation.movable").value()); addToolBar(Qt::TopToolBarArea, navigationToolBar); navigationToolBar->connectWebView(nullptr); + QHash a; + addressBar = new UrlLineEdit(a, this); + navigationToolBar->addWidget(addressBar); + + auto *focusShortcut = new QShortcut(QKeySequence("F4"), this); + connect(focusShortcut, &QShortcut::activated, this, [this]() { + addressBar->setFocus(); + addressBar->selectAll(); + }); + setCentralWidget(mdiArea); mdiArea->setFocus(); connect(mdiArea, &QMdiArea::subWindowActivated, this, [this, navigationToolBar](QMdiSubWindow *window) { disconnect(titleChangedConnection); + disconnect(addressBarConnection); disconnect(navigationBarConnection); auto *w = qobject_cast(window); @@ -60,6 +73,8 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) this->setWindowTitle(title + titleSuffix); }); + addressBar->connectWebView(w->currentView()); + addressBarConnection = connect(w, &Window::currentViewChanged, addressBar, &UrlLineEdit::connectWebView); navigationToolBar->connectWebView(w->currentView()); navigationBarConnection = connect(w, &Window::currentViewChanged, navigationToolBar, &NavigationBar::connectWebView); } @@ -74,6 +89,7 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) MainWindow::~MainWindow() { disconnect(titleChangedConnection); + disconnect(addressBarConnection); disconnect(navigationBarConnection); } diff --git a/src/mainwindow/mainwindow.h b/src/mainwindow/mainwindow.h index 1817fdd..ad879c3 100644 --- a/src/mainwindow/mainwindow.h +++ b/src/mainwindow/mainwindow.h @@ -12,11 +12,15 @@ #include #include +class Browser; class QMdiArea; class Configuration; class Window; +class UrlLineEdit; class MainWindow : public QMainWindow { + friend class Browser; + Q_OBJECT public: @@ -43,12 +47,13 @@ protected: private: QString titleSuffix; QMenu *toolsMenu = nullptr; + UrlLineEdit *addressBar; QMdiArea *mdiArea; std::shared_ptr m_config; QMetaObject::Connection titleChangedConnection; - QMetaObject::Connection navigationBarConnection; + QMetaObject::Connection addressBarConnection, navigationBarConnection; }; #endif // SMOLBOTE_MAINWINDOW_H diff --git a/src/mainwindow/widgets/navigationbar.cpp b/src/mainwindow/widgets/navigationbar.cpp index e2c714e..98a7932 100644 --- a/src/mainwindow/widgets/navigationbar.cpp +++ b/src/mainwindow/widgets/navigationbar.cpp @@ -77,16 +77,6 @@ NavigationBar::NavigationBar(const QHash &conf, QWidget *paren connect(homeAction, &QAction::triggered, this, [this]() { m_view->triggerViewAction(WebView::GoHome); }); - - QHash a; - addressBar = new UrlLineEdit(a, this); - addWidget(addressBar); - - auto *focusShortcut = new QShortcut(QKeySequence("F4"), this); - connect(focusShortcut, &QShortcut::activated, this, [this]() { - addressBar->setFocus(); - addressBar->selectAll(); - }); } void NavigationBar::connectWebView(WebView *view) @@ -115,8 +105,6 @@ void NavigationBar::connectWebView(WebView *view) loadFinishedConnection = connect(view, &WebView::loaded, this, &NavigationBar::update_loadFinished); stopReloadAction->setEnabled(true); homeAction->setEnabled(true); - - addressBar->connectWebView(view); } void NavigationBar::update_loadStarted() diff --git a/src/mainwindow/widgets/navigationbar.h b/src/mainwindow/widgets/navigationbar.h index 1b4cc05..f2c7e61 100644 --- a/src/mainwindow/widgets/navigationbar.h +++ b/src/mainwindow/widgets/navigationbar.h @@ -11,7 +11,6 @@ #include -class UrlLineEdit; class WebView; class NavigationBar : public QToolBar { @@ -34,7 +33,6 @@ private: QAction *backAction, *forwardAction; QAction *stopReloadAction; QAction *homeAction; - UrlLineEdit *addressBar; QMetaObject::Connection loadStartedConnection, loadFinishedConnection; }; -- cgit v1.2.1