From c03fc45aca526f94e07b99672fb09825af86221c Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Tue, 17 Apr 2018 17:23:53 +0200 Subject: Hovering over links shows them in the status bar again --- src/mainwindow/mainwindow.cpp | 3 +++ src/mainwindow/mainwindow.h | 1 + src/mainwindow/widgets/searchform.cpp | 3 --- src/mainwindow/window.cpp | 7 +++++++ src/mainwindow/window.h | 2 ++ src/webengine/webview.cpp | 7 ------- src/webengine/webview.h | 3 --- 7 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/mainwindow/mainwindow.cpp b/src/mainwindow/mainwindow.cpp index 9b1db30..18e1b63 100644 --- a/src/mainwindow/mainwindow.cpp +++ b/src/mainwindow/mainwindow.cpp @@ -67,6 +67,7 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) disconnect(addressBarConnection); disconnect(navigationBarConnection); disconnect(searchBoxConnection); + disconnect(statusBarConnection); auto *w = qobject_cast(window); if(w == nullptr) { @@ -87,6 +88,7 @@ MainWindow::MainWindow(std::shared_ptr &config, QWidget *parent) navigationBarConnection = connect(w, &Window::currentViewChanged, navigationToolBar, &NavigationBar::connectWebView); searchBox->setView(w->currentView()); searchBoxConnection = connect(w, &Window::currentViewChanged, searchBox, &SearchForm::setView); + statusBarConnection = connect(w, &Window::showStatusMessage, statusBar(), &QStatusBar::showMessage); } }); @@ -107,6 +109,7 @@ MainWindow::~MainWindow() disconnect(addressBarConnection); disconnect(navigationBarConnection); disconnect(searchBoxConnection); + disconnect(statusBarConnection); } void MainWindow::createMenuBar() diff --git a/src/mainwindow/mainwindow.h b/src/mainwindow/mainwindow.h index 581cd0c..ee7d332 100644 --- a/src/mainwindow/mainwindow.h +++ b/src/mainwindow/mainwindow.h @@ -57,6 +57,7 @@ private: QMetaObject::Connection titleChangedConnection; QMetaObject::Connection addressBarConnection, navigationBarConnection; QMetaObject::Connection searchBoxConnection; + QMetaObject::Connection statusBarConnection; }; #endif // SMOLBOTE_MAINWINDOW_H diff --git a/src/mainwindow/widgets/searchform.cpp b/src/mainwindow/widgets/searchform.cpp index 80e3848..79cc0cf 100644 --- a/src/mainwindow/widgets/searchform.cpp +++ b/src/mainwindow/widgets/searchform.cpp @@ -21,8 +21,6 @@ SearchForm::SearchForm(QWidget *parent) ui->result_label->setVisible(false); connect(ui->lineEdit, &QLineEdit::returnPressed, this, [this]() { - Q_ASSERT_X(view != nullptr, "SearchForm::returnPressed::lambda", "No view set"); - if(view) { QWebEnginePage::FindFlags searchFlags; searchFlags.setFlag(QWebEnginePage::FindCaseSensitively, ui->caseSensitivity_checkBox->isChecked()); @@ -41,7 +39,6 @@ SearchForm::~SearchForm() void SearchForm::setView(QWebEngineView* view) { - qDebug("setting view: %s", view == nullptr ? "nullptr" : "valid"); this->view = view; } diff --git a/src/mainwindow/window.cpp b/src/mainwindow/window.cpp index 67397fe..0c52076 100644 --- a/src/mainwindow/window.cpp +++ b/src/mainwindow/window.cpp @@ -31,9 +31,16 @@ Window::Window(QWidget *parent, Qt::WindowFlags flags) Q_CHECK_PTR(view); disconnect(titleConnection); + disconnect(linkHoveredConnection); + connect(view, &WebView::titleChanged, this, &Window::setWindowTitle); setWindowTitle(view->title()); + connect(view->page(), &WebPage::linkHovered, this, [this](const QString &url) { + if(!url.isEmpty()) + emit showStatusMessage(url, 3000); + }); + emit currentViewChanged(view); } }); diff --git a/src/mainwindow/window.h b/src/mainwindow/window.h index 743d75f..ee9a11d 100644 --- a/src/mainwindow/window.h +++ b/src/mainwindow/window.h @@ -26,6 +26,7 @@ public: signals: void currentViewChanged(WebView *view); + void showStatusMessage(const QString &message, int timeout = 0); public slots: int addTab(WebView *view); @@ -37,6 +38,7 @@ private: TabWidget *tabWidget; QMetaObject::Connection titleConnection; + QMetaObject::Connection linkHoveredConnection; }; #endif // SMOLBOTE_WINDOW_H diff --git a/src/webengine/webview.cpp b/src/webengine/webview.cpp index 1e5d8d5..dadac1e 100644 --- a/src/webengine/webview.cpp +++ b/src/webengine/webview.cpp @@ -60,7 +60,6 @@ void WebView::setPage(QWebEnginePage *page) Q_CHECK_PTR(page); // make sure the page gets cleaned up if we replace it by taking ownership page->setParent(this); - connect(page, &QWebEnginePage::linkHovered, this, &WebView::handleLinkHovered); QWebEngineView::setPage(page); } @@ -114,12 +113,6 @@ WebView *WebView::createWindow(QWebEnginePage::WebWindowType type) return view; } -void WebView::handleLinkHovered(const QString &url) -{ - // TODO: tooltip - Q_UNUSED(url); -} - void WebView::triggerViewAction(WebView::ViewAction action) { switch(action) { diff --git a/src/webengine/webview.h b/src/webengine/webview.h index ab86ec2..d59847b 100644 --- a/src/webengine/webview.h +++ b/src/webengine/webview.h @@ -52,9 +52,6 @@ signals: protected: WebView *createWindow(QWebEnginePage::WebWindowType type) override; -private slots: - void handleLinkHovered(const QString &url); - private: Window *m_parentWindow = nullptr; WebProfile *m_profile = nullptr; -- cgit v1.2.1