aboutsummaryrefslogtreecommitdiff
path: root/src/webview.cpp
diff options
context:
space:
mode:
authorLibravatar keshavbhatt <keshavnrj@gmail.com>2021-04-11 02:00:56 +0530
committerLibravatar keshavbhatt <keshavnrj@gmail.com>2021-04-11 02:00:56 +0530
commit2d83c3c3474764e32e407457542572ac3b7bd45a (patch)
treeb14261f72e1e956eb405330b5e465493344e2bb3 /src/webview.cpp
parent6eaf6730b0f5bb70e23c77c4cc21c5eec93cb6e6 (diff)
downloadwhatsie-2d83c3c3474764e32e407457542572ac3b7bd45a.tar.gz
whatsie-2d83c3c3474764e32e407457542572ac3b7bd45a.zip
moved webview code to seperate class
Diffstat (limited to 'src/webview.cpp')
-rw-r--r--src/webview.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/src/webview.cpp b/src/webview.cpp
index 5f594f2..653dbae 100644
--- a/src/webview.cpp
+++ b/src/webview.cpp
@@ -4,11 +4,49 @@
#include <QMenu>
#include <QWebEngineProfile>
#include <QWebEngineContextMenuData>
+#include <mainwindow.h>
WebView::WebView(QWidget *parent, QStringList dictionaries)
: QWebEngineView(parent)
{
m_dictionaries = dictionaries;
+
+ QObject *parentMainWindow = this->parent();
+ while (!parentMainWindow -> objectName().contains("MainWindow")){
+ parentMainWindow = parentMainWindow -> parent();
+ }
+ MainWindow *mainWindow = dynamic_cast<MainWindow *>(parentMainWindow);
+
+ connect(this, &WebView::titleChanged,
+ mainWindow, &MainWindow::handleWebViewTitleChanged);
+ connect(this, &WebView::loadStarted,
+ mainWindow, &MainWindow::handleLoadStarted);
+ connect(this, &WebView::loadProgress,
+ mainWindow, &MainWindow::handleLoadProgress);
+ connect(this, &WebView::loadFinished,
+ mainWindow, &MainWindow::handleLoadFinished);
+ connect(this, &WebView::renderProcessTerminated,
+ [this](QWebEnginePage::RenderProcessTerminationStatus termStatus, int statusCode) {
+ QString status;
+ switch (termStatus) {
+ case QWebEnginePage::NormalTerminationStatus:
+ status = tr("Render process normal exit");
+ break;
+ case QWebEnginePage::AbnormalTerminationStatus:
+ status = tr("Render process abnormal exit");
+ break;
+ case QWebEnginePage::CrashedTerminationStatus:
+ status = tr("Render process crashed");
+ break;
+ case QWebEnginePage::KilledTerminationStatus:
+ status = tr("Render process killed");
+ break;
+ }
+ QMessageBox::StandardButton btn = QMessageBox::question(window(), status,
+ tr("Render process exited with code: %1\n" "Do you want to reload the page ?").arg(statusCode));
+ if (btn == QMessageBox::Yes)
+ QTimer::singleShot(0, [this] { this->reload(); });
+ });
}
void WebView::contextMenuEvent(QContextMenuEvent *event)