summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dist/changes-4.6.112
-rw-r--r--examples/webkit/googlechat/form.ui6
-rw-r--r--examples/webkit/googlechat/googlechat.cpp38
-rw-r--r--examples/webkit/googlechat/googlechat.h3
-rw-r--r--src/corelib/kernel/qcore_unix.cpp2
5 files changed, 43 insertions, 18 deletions
diff --git a/dist/changes-4.6.1 b/dist/changes-4.6.1
index b3095c4..0f8c2bc 100644
--- a/dist/changes-4.6.1
+++ b/dist/changes-4.6.1
@@ -101,6 +101,18 @@ QtOpenGL
compressed textures if the appropriate extensions are present
in the GL implementation.
+QtwebKit
+--------
+
+ - Fixed user agent string on Symbian (webkit.org/b/31961)
+ - QWebInspector: Don't disable when hiding (webkit.org/b/31851)
+ - Fix JavaScript prompt behaviour for empty/null strings (webkit.org/b/30914)
+ - Fixed lastIndexOf() on Symbian (webkit.org/b/31773)
+ - Fixed crash with Flash on Windows with MinGW
+ - Fixed wrapping of QObjects with recurring identity (webkit.org/b/31681)
+ - Fixed compilation with ICC
+ - Fixed assertion when dragging SVG images (webkit.org/b/32511)
+
QtScript
--------
diff --git a/examples/webkit/googlechat/form.ui b/examples/webkit/googlechat/form.ui
index 3b9fb82..4939ea1 100644
--- a/examples/webkit/googlechat/form.ui
+++ b/examples/webkit/googlechat/form.ui
@@ -48,6 +48,9 @@
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
+ <property name="wordWrap">
+ <bool>true</bool>
+ </property>
</widget>
</item>
<item>
@@ -160,6 +163,9 @@
<property name="text">
<string>Login</string>
</property>
+ <property name="default">
+ <bool>true</bool>
+ </property>
</widget>
</item>
<item>
diff --git a/examples/webkit/googlechat/googlechat.cpp b/examples/webkit/googlechat/googlechat.cpp
index 12ea071..8eb033c 100644
--- a/examples/webkit/googlechat/googlechat.cpp
+++ b/examples/webkit/googlechat/googlechat.cpp
@@ -80,9 +80,8 @@ void GoogleChat::showError(const QString &msg) {
showStatus(QString("Error: %1").arg(msg));
}
-QString GoogleChat::evalJS(const QString &js) {
- QWebFrame *frame = form.webView->page()->mainFrame();
- return frame->evaluateJavaScript(js).toString();
+QWebElement GoogleChat::document() const {
+ return form.webView->page()->mainFrame()->documentElement();
}
void GoogleChat::adjustLoginButton() {
@@ -112,9 +111,11 @@ void GoogleChat::doLogin() {
showStatus("Logging in...");
QString userEmail = userName + "@gmail.com";
- evalJS(QString("document.getElementById('Email').value = \"%1\";").arg(userEmail));
- evalJS(QString("document.getElementById('Passwd').value = \"%1\";").arg(password));
- evalJS("document.getElementById('gaia_loginform').submit();");
+
+ document().findFirst("#Email").setAttribute("value", userEmail);
+ document().findFirst("#Passwd").setAttribute("value", password);
+ document().findFirst("#gaia_loginform").evaluateJavaScript("this.submit();");
+
}
void GoogleChat::initialPage(bool ok) {
@@ -124,11 +125,12 @@ void GoogleChat::initialPage(bool ok) {
}
if (ok) {
- QString s1 = evalJS("document.getElementById('Email').name");
- QString s2 = evalJS("document.getElementById('Passwd').name");
- QString s3 = evalJS("document.getElementById('gaia_loginform').id");
- if (s1 == "Email" && s2 == "Passwd" && s3 == "gaia_loginform") {
+ QWebElement email = document().findFirst("#Email");
+ QWebElement passwd = document().findFirst("#Passwd");
+ QWebElement loginForm = document().findFirst("#gaia_loginform");
+ if (!email.isNull() && !passwd.isNull() && !loginForm.isNull()) {
form.stackedWidget->setCurrentIndex(1);
+ form.userNameEdit->setFocus();
form.webView->disconnect();
return;
}
@@ -139,8 +141,8 @@ void GoogleChat::initialPage(bool ok) {
void GoogleChat::hideElements()
{
- evalJS("var e = document.getElementsByClassName('footer-footer')[0]; e.parentElement.removeChild(e)");
- evalJS("var e = document.getElementsByClassName('title-bar-bg title-bar')[0]; e.parentElement.removeChild(e)");
+ document().findFirst(".footer-footer").removeFromDocument();
+ document().findFirst(".title-bar-bg .title-bar").removeFromDocument();
QTimer::singleShot(2000, this, SLOT(hideElements()));
}
@@ -152,16 +154,18 @@ void GoogleChat::loginPage(bool ok) {
showError("Service unavailable");
} else {
// check for any error message
- QString c = evalJS("document.getElementsByClassName('errormsg').length");
- if (c == "0") {
+
+ QWebElement e = document().findFirst(".errormsg");
+ if (e.isNull()) {
form.stackedWidget->setCurrentIndex(2);
QTimer::singleShot(500, this, SLOT(hideElements()));
return;
}
- QString err = "Unknown login failure.";
- if (c == "1") {
- err = evalJS("document.getElementsByClassName('errormsg')[0].textContent");
+ QString err = "Unknown login failure.";
+ const QString errorMessage = e.toPlainText();
+ if (!errorMessage.isEmpty()) {
+ err = errorMessage;
err = err.simplified();
}
showError(err);
diff --git a/examples/webkit/googlechat/googlechat.h b/examples/webkit/googlechat/googlechat.h
index 70f921e..617587a 100644
--- a/examples/webkit/googlechat/googlechat.h
+++ b/examples/webkit/googlechat/googlechat.h
@@ -40,6 +40,7 @@
****************************************************************************/
#include <QWidget>
+#include <QWebElement>
#include "ui_form.h"
@@ -53,7 +54,7 @@ public:
protected:
void showStatus(const QString &msg);
void showError(const QString &msg);
- QString evalJS(const QString &js);
+ QWebElement document() const;
private slots:
diff --git a/src/corelib/kernel/qcore_unix.cpp b/src/corelib/kernel/qcore_unix.cpp
index 328fd3d..0fd965b 100644
--- a/src/corelib/kernel/qcore_unix.cpp
+++ b/src/corelib/kernel/qcore_unix.cpp
@@ -42,7 +42,9 @@
#include "qcore_unix_p.h"
#ifndef Q_OS_VXWORKS
+# if !defined(Q_OS_HPUX) || defined(__ia64)
# include <sys/select.h>
+# endif
# include <sys/time.h>
#else
# include <selectLib.h>