From 1ee841364215042f1f284e692ae191ebf7a64156 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 1 May 2018 15:54:49 +0200 Subject: Split off addressbar into lib/ --- src/mainwindow/mainwindow.cpp | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) (limited to 'src/mainwindow/mainwindow.cpp') diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index be5e6e4..35cc598 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -46,7 +46,7 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) createMenuBar(); - auto *navigationToolBar = new NavigationBar(config->section("navigation"), this); + navigationToolBar = new NavigationBar(config->section("navigation"), this); navigationToolBar->setMovable(config->value("navigation.movable").value()); addToolBar(Qt::TopToolBarArea, navigationToolBar); navigationToolBar->connectWebView(nullptr); @@ -63,9 +63,8 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) searchBox->setVisible(false); // connect signlas - connect(mdiArea, &QMdiArea::subWindowActivated, this, [this, navigationToolBar](QMdiSubWindow *window) { - disconnect(addressBarConnection); - disconnect(navigationBarConnection); + connect(mdiArea, &QMdiArea::subWindowActivated, this, [this](QMdiSubWindow *window) { + disconnect(viewChangedConnection); disconnect(searchBoxConnection); disconnect(statusBarConnection); subWindowAction->setMenu(nullptr); @@ -73,18 +72,12 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) auto *w = qobject_cast(window); if(w == nullptr) { // no current subwindow, clear everything - setWindowTitle(tr("smolbote")); - addressBar->connectWebView(nullptr); - navigationToolBar->connectWebView(nullptr); - searchBox->setView(nullptr); + setView(nullptr); + subWindowAction->setMenu(nullptr); } else { + setView(w->currentView()); subWindowAction->setMenu(w->systemMenu()); - addressBar->connectWebView(w->currentView()); - 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); + viewChangedConnection = connect(w, &Window::currentViewChanged, this, &MainWindow::setView); statusBarConnection = connect(w, &Window::showStatusMessage, statusBar(), &QStatusBar::showMessage); } }); @@ -97,8 +90,8 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) MainWindow::~MainWindow() { - disconnect(addressBarConnection); - disconnect(navigationBarConnection); + disconnect(viewChangedConnection); + disconnect(searchConnection); disconnect(searchBoxConnection); disconnect(statusBarConnection); } @@ -192,6 +185,24 @@ Window *MainWindow::createSubWindow(const QUrl &url) return w; } +void MainWindow::setView(WebView *view) +{ + disconnect(searchConnection); + + addressBar->setView(view); + if(view) { + addressBar->setPageMenu(view->pageMenu()); + addressBar->setToolsMenu(view->toolsMenu()); + searchConnection = connect(addressBar, &AddressBar::search, view, &WebView::search); + } else { + addressBar->setPageMenu(nullptr); + addressBar->setToolsMenu(nullptr); + } + + navigationToolBar->connectWebView(view); + searchBox->setView(view); +} + void MainWindow::closeEvent(QCloseEvent *event) { if(mdiArea->subWindowList().count() > 1) { -- cgit v1.2.1