diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-04-17 01:38:07 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2018-04-17 01:38:07 +0200 |
commit | 74a7ea3732853f954fcab7088acaa2413fc3e7c1 (patch) | |
tree | 02ca9dd6f0dd4ea1b18346d4c6004c74c504d04f /src/mainwindow | |
parent | Multiple subwindows interface (diff) | |
download | smolbote-74a7ea3732853f954fcab7088acaa2413fc3e7c1.tar.xz |
Enabled address bar suggestions
Also fixed occasional bug when showing the completer.
Diffstat (limited to 'src/mainwindow')
-rw-r--r-- | src/mainwindow/mainwindow.cpp | 16 | ||||
-rw-r--r-- | src/mainwindow/mainwindow.h | 7 | ||||
-rw-r--r-- | src/mainwindow/widgets/navigationbar.cpp | 12 | ||||
-rw-r--r-- | src/mainwindow/widgets/navigationbar.h | 2 |
4 files changed, 22 insertions, 15 deletions
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 <QUrl> #include <about/aboutdialog.h> #include <configuration/configuration.h> +#include "addressbar/urllineedit.h" MainWindow::MainWindow(std::shared_ptr<Configuration> &config, QWidget *parent) : QMainWindow(parent) @@ -41,16 +42,28 @@ MainWindow::MainWindow(std::shared_ptr<Configuration> &config, QWidget *parent) show(); createMenuBar(); + auto *navigationToolBar = new NavigationBar(config->section("navigation"), this); navigationToolBar->setMovable(config->value<bool>("navigation.movable").value()); addToolBar(Qt::TopToolBarArea, navigationToolBar); navigationToolBar->connectWebView(nullptr); + QHash<QString, QString> 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 *>(window); @@ -60,6 +73,8 @@ MainWindow::MainWindow(std::shared_ptr<Configuration> &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<Configuration> &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 <QMainWindow> #include <memory> +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<Configuration> 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<QString, QString> &conf, QWidget *paren connect(homeAction, &QAction::triggered, this, [this]() { m_view->triggerViewAction(WebView::GoHome); }); - - QHash<QString, QString> 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 <QToolBar> -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; }; |