*/
// Application headers
+#include "browserwindow.h"
#include "mainview.h"
#include "settings.h"
urlLineEditPointer = mainViewUi.urlLineEdit;
webEngineViewPointer = mainViewUi.webEngineView;
+ // Get a handle for the webpage.
+ QWebEnginePage *webEnginePagePointer = webEngineViewPointer->page();
+
// Update the webengine view from the URL line edit.
connect(urlLineEditPointer, SIGNAL(returnKeyPressed(const QString)), this, SLOT(loadUrl(const QString)));
connect(webEngineViewPointer, SIGNAL(loadProgress(int)), this, SLOT(updateUrlLineEdit()));
connect(webEngineViewPointer, SIGNAL(loadFinished(bool)), this, SLOT(updateUrlLineEdit()));
+ // Listen for hovered link URLs.
+ connect(webEnginePagePointer, SIGNAL(linkHovered(QString)), this, SLOT(pageLinkHovered(QString)));
+
// Set the zoom factor.
webEngineViewPointer->setZoomFactor(Settings::zoomFactor());
+ // Set the focus on the WebEngine view.
+ webEngineViewPointer->setFocus();
+
// Load a website.
webEngineViewPointer->setUrl(QUrl(QStringLiteral("https://www.stoutner.com/")));
}
webEngineViewPointer->setUrl(QUrl::fromUserInput(urlFromUser));
}
+void MainView::pageLinkHovered(const QString &linkUrl)
+{
+ // Emit a signal so that the browser window can update the status bar.
+ emit linkHovered(linkUrl);
+}
+
void MainView::updateUrlLineEdit()
{
- // Update the URL line edit.
- urlLineEditPointer->setUrl(webEngineViewPointer->url().toString());
+ // Update the URL line edit if it does not have focus.
+ if (!urlLineEditPointer->hasFocus())
+ {
+ // Update the URL line edit.
+ urlLineEditPointer->setUrl(webEngineViewPointer->url().toString());
+ }
// Reapply the zoom factor. This is a bug in QWebEngineView that resets the zoom with every load. Hopefully it will be fixed in Qt6. <https://bugreports.qt.io/browse/QTBUG-51992>
webEngineViewPointer->setZoomFactor(Settings::zoomFactor());