2828#include < QRegularExpression>
2929#include < QTimer>
3030#include < QUrl>
31+ #include < QWebElement>
3132#include < QWebFrame>
3233#include < QWebPage>
3334
@@ -51,20 +52,26 @@ public slots:
5152 {
5253 if (ok) {
5354 if (QPage::mainFrame ()->url ().scheme () == " file" ) {
54- // Inject all browser-specific Javascript:
55- QFileReader *resourceReader =
56- new QFileReader (QString (" :/peb.js" ));
57- QString pebJavaScript = resourceReader->fileContents ;
58-
59- mainFrame ()->evaluateJavaScript (pebJavaScript);
60-
61- QVariant result =
62- mainFrame ()->
63- evaluateJavaScript (" peb.getPageSettings()" );
64- qGetPageSettings (result);
65-
66- // Send signal to the html-viewing class that a page is loaded:
67- emit pageLoadedSignal ();
55+ // Inject all browser-specific Javascript:
56+ QFileReader *resourceReader =
57+ new QFileReader (QString (" :/peb.js" ));
58+ QString pebJavaScript = resourceReader->fileContents ;
59+
60+ mainFrame ()->evaluateJavaScript (pebJavaScript);
61+
62+ // Start getting the page settings:
63+ QVariant result = mainFrame ()->
64+ evaluateJavaScript (" peb.getPageSettings()" );
65+ qGetPageSettings (result);
66+
67+ // Get the title of the page for use in dialog boxes:
68+ QWebElement titleDomElement =
69+ QPage::currentFrame ()->documentElement ()
70+ .findFirst (" title" );
71+ title = titleDomElement.toInnerXml ().toLatin1 ();
72+
73+ // Send signal to the html-viewing class that a page is loaded:
74+ emit pageLoadedSignal ();
6875 }
6976 }
7077 }
@@ -483,7 +490,7 @@ public slots:
483490
484491 QMessageBox javaScriptAlertMessageBox (qApp->activeWindow ());
485492 javaScriptAlertMessageBox.setWindowModality (Qt::WindowModal);
486- javaScriptAlertMessageBox.setWindowTitle (" Alert " );
493+ javaScriptAlertMessageBox.setWindowTitle (title );
487494 javaScriptAlertMessageBox.setText (msg);
488495 javaScriptAlertMessageBox.setButtonText (QMessageBox::Ok, okLabel);
489496 javaScriptAlertMessageBox.setDefaultButton (QMessageBox::Ok);
@@ -499,10 +506,11 @@ public slots:
499506
500507 QMessageBox javaScriptConfirmMessageBox (qApp->activeWindow ());
501508 javaScriptConfirmMessageBox.setWindowModality (Qt::WindowModal);
502- javaScriptConfirmMessageBox.setWindowTitle (" Confirm " );
509+ javaScriptConfirmMessageBox.setWindowTitle (title );
503510 javaScriptConfirmMessageBox.setText (msg);
504511 javaScriptConfirmMessageBox
505512 .setStandardButtons (QMessageBox::Yes | QMessageBox::No);
513+ javaScriptConfirmMessageBox.setDefaultButton (QMessageBox::No);
506514 javaScriptConfirmMessageBox.setButtonText (QMessageBox::Yes, yesLabel);
507515 javaScriptConfirmMessageBox.setButtonText (QMessageBox::No, noLabel);
508516 return QMessageBox::Yes == javaScriptConfirmMessageBox.exec ();
@@ -522,7 +530,7 @@ public slots:
522530
523531 QInputDialog dialog;
524532 dialog.setModal (true );
525- dialog.setWindowTitle (" Prompt " );
533+ dialog.setWindowTitle (title );
526534 dialog.setLabelText (msg);
527535 dialog.setInputMode (QInputDialog::TextInput);
528536 dialog.setTextValue (defaultValue);
@@ -539,6 +547,8 @@ public slots:
539547 }
540548
541549private:
550+ QString title;
551+
542552 QString okLabel;
543553 QString cancelLabel;
544554 QString yesLabel;
0 commit comments