summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDavid Boddie <dboddie@trolltech.com>2010-08-09 18:55:51 (GMT)
committerDavid Boddie <dboddie@trolltech.com>2010-08-09 18:55:51 (GMT)
commit7f2540ad80f56ccb4d81b897d90581130e9b9e91 (patch)
tree1e1ff4c8f9846faddd58a8ff6d0810bdac7c6f20 /src
parentf33359fb0c56fe88e0ae3c564b7847f90889eac2 (diff)
parent720f4ca0ec3b42a101ac24b2cf74cdc87d29eac9 (diff)
downloadQt-7f2540ad80f56ccb4d81b897d90581130e9b9e91.zip
Qt-7f2540ad80f56ccb4d81b897d90581130e9b9e91.tar.gz
Qt-7f2540ad80f56ccb4d81b897d90581130e9b9e91.tar.bz2
Merge branch '4.7' of scm.dev.nokia.troll.no:qt/oslo-staging-2 into 4.7
Conflicts: doc/src/declarative/declarativeui.qdoc doc/src/getting-started/gettingstartedqml.qdoc
Diffstat (limited to 'src')
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/ChangeLog17
-rw-r--r--src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp7
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html5
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp19
-rw-r--r--src/corelib/kernel/qbasictimer.cpp7
-rw-r--r--src/corelib/tools/qstring.cpp13
-rw-r--r--src/dbus/qdbusconnection.cpp15
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp11
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp15
-rw-r--r--src/declarative/qml/qdeclarativelist.h8
-rw-r--r--src/declarative/qml/qdeclarativeprivate.h4
-rw-r--r--src/declarative/util/qdeclarativepropertymap.cpp19
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp15
-rw-r--r--src/gui/graphicsview/qgraphicstransform.cpp18
-rw-r--r--src/gui/s60framework/qs60mainapplication.cpp7
-rw-r--r--src/gui/s60framework/qs60mainappui.cpp30
-rw-r--r--src/gui/text/qstatictext.cpp16
-rw-r--r--src/gui/text/qtextlayout.cpp21
-rw-r--r--src/gui/widgets/qcombobox.cpp2
-rw-r--r--src/network/access/qnetworkrequest.cpp18
-rw-r--r--src/network/bearer/qnetworkconfiguration.cpp7
-rw-r--r--src/network/bearer/qnetworkconfiguration.h2
-rw-r--r--src/s60installs/eabi/QtNetworku.def2
-rw-r--r--src/xmlpatterns/data/qabstractdatetime.cpp2
26 files changed, 198 insertions, 86 deletions
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index 718ea9d..fb2703e 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-d6aa024c84f61d0602bef4eef84efaed7cfeefcc
+413404da27312051bb3ff2cfd0f3fca42aa4b245
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 1826cb6..c256434 100644
--- a/src/3rdparty/webkit/VERSION
+++ b/src/3rdparty/webkit/VERSION
@@ -4,4 +4,4 @@ This is a snapshot of the Qt port of WebKit from
and has the sha1 checksum
- d6aa024c84f61d0602bef4eef84efaed7cfeefcc
+ 413404da27312051bb3ff2cfd0f3fca42aa4b245
diff --git a/src/3rdparty/webkit/WebKit/qt/ChangeLog b/src/3rdparty/webkit/WebKit/qt/ChangeLog
index 94aca65..5083ba5 100644
--- a/src/3rdparty/webkit/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/WebKit/qt/ChangeLog
@@ -1,3 +1,20 @@
+2010-08-05 David Leong <david.leong@nokia.com>
+
+ Reviewed by Simon Hausmann.
+
+ [Qt] Input mode states are not reset after entering a password field
+ https://bugs.webkit.org/show_bug.cgi?id=43530
+
+ Input mode hints are not reset if clicking on password <input> elements then
+ clicking on <textarea> elements
+
+ * WebCoreSupport/EditorClientQt.cpp:
+ (WebCore::EditorClientQt::setInputMethodState):
+ * tests/qwebview/resources/input_types.html:
+ * tests/qwebview/tst_qwebview.cpp:
+ (tst_QWebView::focusInputTypes):
+
+
2010-07-27 Simon Hausmann <simon.hausmann@nokia.com>
Reviewed by Tor Arne Vestbø.
diff --git a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
index cdc4013..87e047e 100644
--- a/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/WebCoreSupport/EditorClientQt.cpp
@@ -599,6 +599,13 @@ void EditorClientQt::setInputMethodState(bool active)
QWebPageClient* webPageClient = m_page->d->client;
if (webPageClient) {
#if QT_VERSION >= 0x040600
+ // Make sure to reset input method hint
+ webPageClient->setInputMethodHint(Qt::ImhDialableCharactersOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhDigitsOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhEmailCharactersOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhUrlCharactersOnly, false);
+ webPageClient->setInputMethodHint(Qt::ImhHiddenText, false);
+
HTMLInputElement* inputElement = 0;
Frame* frame = m_page->d->page->focusController()->focusedOrMainFrame();
if (frame && frame->document() && frame->document()->focusedNode())
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
index 18ab314..2e893af 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/resources/input_types.html
@@ -4,5 +4,6 @@
<input type='tel' style='position: absolute; left: 10px; top: 100px; height: 50px; width: 100px;'/><br>
<input type='number' style='position: absolute; left: 10px; top: 150px; height: 50px; width: 100px;'/><br>
<input type='email' style='position: absolute; left: 10px; top: 200px; height: 50px; width: 100px;'/><br>
-<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>"
-</body></html> \ No newline at end of file
+<input type='url' style='position: absolute; left: 10px; top: 250px; height: 50px; width: 100px;'/><br>
+<textarea style='position: absolute; left: 10px; top: 310px; height: 50px; width: 100px;' rows="2" cols="20">blah blah blah blah</textarea><br>
+</body></html>
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 5dc5e41..bd19578 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -264,30 +264,37 @@ void tst_QWebView::focusInputTypes()
#else
QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
#endif
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
webView->fireMouseClick(QPoint(20, 60));
QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'tel' field
webView->fireMouseClick(QPoint(20, 110));
QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'number' field
webView->fireMouseClick(QPoint(20, 160));
QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'email' field
webView->fireMouseClick(QPoint(20, 210));
QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'url' field
webView->fireMouseClick(QPoint(20, 260));
QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
webView->fireMouseClick(QPoint(20, 60));
QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
// 'text' type
webView->fireMouseClick(QPoint(20, 10));
@@ -297,6 +304,18 @@ void tst_QWebView::focusInputTypes()
#else
QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
#endif
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+ // 'password' field
+ webView->fireMouseClick(QPoint(20, 60));
+ QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+
+ qWarning("clicking on text area");
+ // 'text area' field
+ webView->fireMouseClick(QPoint(20, 320));
+ QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+ QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
delete webView;
diff --git a/src/corelib/kernel/qbasictimer.cpp b/src/corelib/kernel/qbasictimer.cpp
index d176170..d595ac1 100644
--- a/src/corelib/kernel/qbasictimer.cpp
+++ b/src/corelib/kernel/qbasictimer.cpp
@@ -54,7 +54,8 @@ QT_BEGIN_NAMESPACE
This is a fast, lightweight, and low-level class used by Qt
internally. We recommend using the higher-level QTimer class
rather than this class if you want to use timers in your
- applications.
+ applications. Note that this timer is a repeating timer that
+ will send subsequent timer events unless the stop() function is called.
To use this class, create a QBasicTimer, and call its start()
function with a timeout interval and with a pointer to a QObject
@@ -88,8 +89,8 @@ QT_BEGIN_NAMESPACE
/*!
\fn bool QBasicTimer::isActive() const
- Returns true if the timer is running, has not yet timed
- out, and has not been stopped; otherwise returns false.
+ Returns true if the timer is running and has not been stopped; otherwise
+ returns false.
\sa start() stop()
*/
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index d6ab5da..2fd9a0b 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -6645,8 +6645,9 @@ QString QString::arg(qlonglong a, int fieldWidth, int base, const QChar &fillCha
QString locale_arg;
if (d.locale_occurrences > 0) {
QLocale locale;
- locale_arg = locale.d()->longLongToString(a, -1, base, fieldWidth,
- flags | QLocalePrivate::ThousandsGroup);
+ if (!locale.numberOptions() & QLocale::OmitGroupSeparator)
+ flags |= QLocalePrivate::ThousandsGroup;
+ locale_arg = locale.d()->longLongToString(a, -1, base, fieldWidth, flags);
}
return replaceArgEscapes(*this, d, fieldWidth, arg, locale_arg, fillChar);
@@ -6688,8 +6689,9 @@ QString QString::arg(qulonglong a, int fieldWidth, int base, const QChar &fillCh
QString locale_arg;
if (d.locale_occurrences > 0) {
QLocale locale;
- locale_arg = locale.d()->unsLongLongToString(a, -1, base, fieldWidth,
- flags | QLocalePrivate::ThousandsGroup);
+ if (!locale.numberOptions() & QLocale::OmitGroupSeparator)
+ flags |= QLocalePrivate::ThousandsGroup;
+ locale_arg = locale.d()->unsLongLongToString(a, -1, base, fieldWidth, flags);
}
return replaceArgEscapes(*this, d, fieldWidth, arg, locale_arg, fillChar);
@@ -6822,7 +6824,8 @@ QString QString::arg(double a, int fieldWidth, char fmt, int prec, const QChar &
if (d.locale_occurrences > 0) {
QLocale locale;
- flags |= QLocalePrivate::ThousandsGroup;
+ if (!locale.numberOptions() & QLocale::OmitGroupSeparator)
+ flags |= QLocalePrivate::ThousandsGroup;
locale_arg = locale.d()->doubleToString(a, prec, form, fieldWidth, flags);
}
diff --git a/src/dbus/qdbusconnection.cpp b/src/dbus/qdbusconnection.cpp
index 87ee3d1..bf771a8 100644
--- a/src/dbus/qdbusconnection.cpp
+++ b/src/dbus/qdbusconnection.cpp
@@ -173,6 +173,9 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
The connection is then torn down using the disconnectFromBus()
function.
+ Once disconnected, calling connectToBus() will not reestablish a
+ connection, you must create a new QDBusConnection instance.
+
As a convenience for the two most common connection types, the
sessionBus() and systemBus() functions return open connections to
the session server daemon and the system server daemon,
@@ -209,6 +212,7 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
\value ExportScriptableSlots export this object's scriptable slots
\value ExportScriptableSignals export this object's scriptable signals
\value ExportScriptableProperties export this object's scriptable properties
+ \value ExportScriptableInvokables export this object's scriptable invokables
\value ExportScriptableContents shorthand form for ExportScriptableSlots |
ExportScriptableSignals |
ExportScriptableProperties
@@ -216,6 +220,7 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
\value ExportNonScriptableSlots export this object's non-scriptable slots
\value ExportNonScriptableSignals export this object's non-scriptable signals
\value ExportNonScriptableProperties export this object's non-scriptable properties
+ \value ExportNonScriptableInvokables export this object's non-scriptable invokables
\value ExportNonScriptableContents shorthand form for ExportNonScriptableSlots |
ExportNonScriptableSignals |
ExportNonScriptableProperties
@@ -223,14 +228,10 @@ void QDBusConnectionManager::setConnection(const QString &name, QDBusConnectionP
\value ExportAllSlots export all of this object's slots
\value ExportAllSignals export all of this object's signals
\value ExportAllProperties export all of this object's properties
+ \value ExportAllInvokables export all of this object's invokables
\value ExportAllContents export all of this object's contents
-
\value ExportChildObjects export this object's child objects
- \value ExportScriptableInvokables export this object's scriptable methods
- \value ExportNonScriptableInvokables export this object's non-scriptable methods
- \value ExportAllInvokables export all of this object's methods
-
\sa registerObject(), QDBusAbstractAdaptor, {usingadaptors.html}{Using adaptors}
*/
@@ -857,10 +858,6 @@ QDBusConnectionInterface *QDBusConnection::interface() const
/*!
Returns true if this QDBusConnection object is connected.
-
- If it isn't connected, calling connectToBus() on the same
- connection name will not make be connected. You need to call the
- QDBusConnection constructor again.
*/
bool QDBusConnection::isConnected() const
{
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index 5b74129..ff05997 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -3196,8 +3196,7 @@ bool QDeclarativeItem::hasActiveFocus() const
{
Q_D(const QDeclarativeItem);
return focusItem() == this ||
- (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0) ||
- (!parentItem() && focusItem() != 0);
+ (d->flags & QGraphicsItem::ItemIsFocusScope && focusItem() != 0);
}
/*!
@@ -3217,10 +3216,8 @@ bool QDeclarativeItem::hasActiveFocus() const
}
\endqml
- For the purposes of this property, the top level item in the scene
- is assumed to act like a focus scope, and to always have active focus
- when the scene has focus. On a practical level, that means the following
- QML will give active focus to \c input on startup.
+ For the purposes of this property, the scene as a whole is assumed to act like a focus scope.
+ On a practical level, that means the following QML will give active focus to \c input on startup.
\qml
Rectangle {
@@ -3246,7 +3243,7 @@ bool QDeclarativeItem::hasFocus() const
p = p->parentItem();
}
- return hasActiveFocus() ? true : (!QGraphicsItem::parentItem() ? true : false);
+ return hasActiveFocus();
}
/*! \internal */
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index ba757fc..2b4a4a5 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -2215,10 +2215,11 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
if (propNames.contains(prop.name))
COMPILE_EXCEPTION(&prop, tr("Duplicate property name"));
- if (QString::fromUtf8(prop.name).at(0).isUpper())
+ QString propName = QString::fromUtf8(prop.name);
+ if (propName.at(0).isUpper())
COMPILE_EXCEPTION(&prop, tr("Property names cannot begin with an upper case letter"));
- if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(prop.name))
+ if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(propName))
COMPILE_EXCEPTION(&prop, tr("Illegal property name"));
propNames.insert(prop.name);
@@ -2228,9 +2229,10 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
QByteArray name = obj->dynamicSignals.at(ii).name;
if (methodNames.contains(name))
COMPILE_EXCEPTION(obj, tr("Duplicate signal name"));
- if (QString::fromUtf8(name).at(0).isUpper())
+ QString nameStr = QString::fromUtf8(name);
+ if (nameStr.at(0).isUpper())
COMPILE_EXCEPTION(obj, tr("Signal names cannot begin with an upper case letter"));
- if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(name))
+ if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr))
COMPILE_EXCEPTION(obj, tr("Illegal signal name"));
methodNames.insert(name);
}
@@ -2238,9 +2240,10 @@ bool QDeclarativeCompiler::checkDynamicMeta(QDeclarativeParser::Object *obj)
QByteArray name = obj->dynamicSlots.at(ii).name;
if (methodNames.contains(name))
COMPILE_EXCEPTION(obj, tr("Duplicate method name"));
- if (QString::fromUtf8(name).at(0).isUpper())
+ QString nameStr = QString::fromUtf8(name);
+ if (nameStr.at(0).isUpper())
COMPILE_EXCEPTION(obj, tr("Method names cannot begin with an upper case letter"));
- if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(name))
+ if (QDeclarativeEnginePrivate::get(engine)->globalClass->illegalNames().contains(nameStr))
COMPILE_EXCEPTION(obj, tr("Illegal method name"));
methodNames.insert(name);
}
diff --git a/src/declarative/qml/qdeclarativelist.h b/src/declarative/qml/qdeclarativelist.h
index 399b2a1..c10bc11 100644
--- a/src/declarative/qml/qdeclarativelist.h
+++ b/src/declarative/qml/qdeclarativelist.h
@@ -98,16 +98,16 @@ public:
private:
static void qlist_append(QDeclarativeListProperty *p, T *v) {
- ((QList<T *> *)p->data)->append(v);
+ reinterpret_cast<QList<T *> *>(p->data)->append(v);
}
static int qlist_count(QDeclarativeListProperty *p) {
- return ((QList<T *> *)p->data)->count();
+ return reinterpret_cast<QList<T *> *>(p->data)->count();
}
static T *qlist_at(QDeclarativeListProperty *p, int idx) {
- return ((QList<T *> *)p->data)->at(idx);
+ return reinterpret_cast<QList<T *> *>(p->data)->at(idx);
}
static void qlist_clear(QDeclarativeListProperty *p) {
- return ((QList<T *> *)p->data)->clear();
+ return reinterpret_cast<QList<T *> *>(p->data)->clear();
}
};
#endif
diff --git a/src/declarative/qml/qdeclarativeprivate.h b/src/declarative/qml/qdeclarativeprivate.h
index cb916bf..d45ddbc 100644
--- a/src/declarative/qml/qdeclarativeprivate.h
+++ b/src/declarative/qml/qdeclarativeprivate.h
@@ -105,7 +105,7 @@ namespace QDeclarativePrivate
template<class From, class To>
struct StaticCastSelectorClass<From, To, sizeof(int)>
{
- static inline int cast() { return (int)((intptr_t)static_cast<To *>((From *)0x10000000)) - 0x10000000; }
+ static inline int cast() { return int(reinterpret_cast<intptr_t>(static_cast<To *>(reinterpret_cast<From *>(0x10000000)))) - 0x10000000; }
};
template<class From, class To>
@@ -119,7 +119,7 @@ namespace QDeclarativePrivate
static inline int cast()
{
- return StaticCastSelectorClass<From, To, sizeof(check((From *)0))>::cast();
+ return StaticCastSelectorClass<From, To, sizeof(check(reinterpret_cast<From *>(0)))>::cast();
}
};
diff --git a/src/declarative/util/qdeclarativepropertymap.cpp b/src/declarative/util/qdeclarativepropertymap.cpp
index 919727f..6b43040 100644
--- a/src/declarative/util/qdeclarativepropertymap.cpp
+++ b/src/declarative/util/qdeclarativepropertymap.cpp
@@ -104,22 +104,25 @@ void QDeclarativePropertyMapMetaObject::propertyCreated(int, QMetaPropertyBuilde
The following example shows how you might declare data in C++ and then
access it in QML.
- Setup in C++:
+ In the C++ file:
\code
- //create our data
+ // create our data
QDeclarativePropertyMap ownerData;
ownerData.insert("name", QVariant(QString("John Smith")));
ownerData.insert("phone", QVariant(QString("555-5555")));
- //expose it to the UI layer
- QDeclarativeContext *ctxt = view->rootContext();
- ctxt->setProperty("owner", &data);
+ // expose it to the UI layer
+ QDeclarativeView view;
+ QDeclarativeContext *ctxt = view.rootContext();
+ ctxt->setContextProperty("owner", &ownerData);
+
+ view.setSource(QUrl::fromLocalFile("main.qml"));
+ view.show();
\endcode
- Then, in QML:
+ Then, in \c main.qml:
\code
- Text { text: owner.name }
- Text { text: owner.phone }
+ Text { text: owner.name + " " + owner.phone }
\endcode
The binding is dynamic - whenever a key's value is updated, anything bound to that
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index d6eabf6..0b3b164 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -7758,6 +7758,21 @@ void QGraphicsItemPrivate::resetHeight()
}
/*!
+ \property QGraphicsObject::children
+ \internal
+*/
+
+/*!
+ \property QGraphicsObject::width
+ \internal
+*/
+
+/*!
+ \property QGraphicsObject::height
+ \internal
+*/
+
+/*!
\property QGraphicsObject::parent
\brief the parent of the item
diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp
index 27dceb8..bd3f2ef 100644
--- a/src/gui/graphicsview/qgraphicstransform.cpp
+++ b/src/gui/graphicsview/qgraphicstransform.cpp
@@ -345,6 +345,24 @@ void QGraphicsScale::applyTo(QMatrix4x4 *matrix) const
*/
/*!
+ \fn QGraphicsScale::xScaleChanged()
+
+ QGraphicsScale emits this signal when its xScale changes.
+*/
+
+/*!
+ \fn QGraphicsScale::yScaleChanged()
+
+ QGraphicsScale emits this signal when its yScale changes.
+*/
+
+/*!
+ \fn QGraphicsScale::zScaleChanged()
+
+ QGraphicsScale emits this signal when its zScale changes.
+*/
+
+/*!
\fn QGraphicsScale::scaleChanged()
This signal is emitted whenever the xScale, yScale, or zScale
diff --git a/src/gui/s60framework/qs60mainapplication.cpp b/src/gui/s60framework/qs60mainapplication.cpp
index 185c06f..5d4c54e 100644
--- a/src/gui/s60framework/qs60mainapplication.cpp
+++ b/src/gui/s60framework/qs60mainapplication.cpp
@@ -136,13 +136,16 @@ TFileName QS60MainApplication::ResourceFileName() const
return KNullDesC();
}
+/*!
+ \internal
+*/
void QS60MainApplication::PreDocConstructL()
{
QS60MainApplicationBase::PreDocConstructL();
}
/*!
- \internal
+ \internal
*/
CDictionaryStore *QS60MainApplication::OpenIniFileLC(RFs &aFs) const
{
@@ -150,7 +153,7 @@ CDictionaryStore *QS60MainApplication::OpenIniFileLC(RFs &aFs) const
}
/*!
- \internal
+ \internal
*/
void QS60MainApplication::NewAppServerL(CApaAppServer *&aAppServer)
{
diff --git a/src/gui/s60framework/qs60mainappui.cpp b/src/gui/s60framework/qs60mainappui.cpp
index 72cf577..ea9dbb3 100644
--- a/src/gui/s60framework/qs60mainappui.cpp
+++ b/src/gui/s60framework/qs60mainappui.cpp
@@ -282,7 +282,7 @@ void QS60MainAppUi::RestoreMenuL(CCoeControl *menuWindow, TInt resourceId, TMenu
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::Exit()
{
@@ -290,7 +290,7 @@ void QS60MainAppUi::Exit()
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::SetFadedL(TBool aFaded)
{
@@ -298,7 +298,7 @@ void QS60MainAppUi::SetFadedL(TBool aFaded)
}
/*!
- \internal
+ \internal
*/
TRect QS60MainAppUi::ApplicationRect() const
{
@@ -306,7 +306,7 @@ TRect QS60MainAppUi::ApplicationRect() const
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::HandleScreenDeviceChangedL()
{
@@ -314,7 +314,7 @@ void QS60MainAppUi::HandleScreenDeviceChangedL()
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::HandleApplicationSpecificEventL(TInt aType, const TWsEvent &aEvent)
{
@@ -322,7 +322,7 @@ void QS60MainAppUi::HandleApplicationSpecificEventL(TInt aType, const TWsEvent &
}
/*!
- \internal
+ \internal
*/
TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(TTypeUid aId)
{
@@ -330,7 +330,7 @@ TTypeUid::Ptr QS60MainAppUi::MopSupplyObject(TTypeUid aId)
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::ProcessCommandL(TInt aCommand)
{
@@ -338,7 +338,7 @@ void QS60MainAppUi::ProcessCommandL(TInt aCommand)
}
/*!
- \internal
+ \internal
*/
TErrorHandlerResponse QS60MainAppUi::HandleError (TInt aError, const SExtendedError &aExtErr, TDes &aErrorText, TDes &aContextText)
{
@@ -346,7 +346,7 @@ TErrorHandlerResponse QS60MainAppUi::HandleError (TInt aError, const SExtendedEr
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactivated, const TVwsViewId &aNewlyActivatedViewId)
{
@@ -354,7 +354,7 @@ void QS60MainAppUi::HandleViewDeactivation(const TVwsViewId &aViewIdToBeDeactiva
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::PrepareToExit()
{
@@ -362,7 +362,7 @@ void QS60MainAppUi::PrepareToExit()
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::HandleTouchPaneSizeChange()
{
@@ -370,7 +370,7 @@ void QS60MainAppUi::HandleTouchPaneSizeChange()
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::HandleSystemEventL(const TWsEvent &aEvent)
{
@@ -378,7 +378,7 @@ void QS60MainAppUi::HandleSystemEventL(const TWsEvent &aEvent)
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::Reserved_MtsmPosition()
{
@@ -386,7 +386,7 @@ void QS60MainAppUi::Reserved_MtsmPosition()
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::Reserved_MtsmObject()
{
@@ -394,7 +394,7 @@ void QS60MainAppUi::Reserved_MtsmObject()
}
/*!
- \internal
+ \internal
*/
void QS60MainAppUi::HandleForegroundEventL(TBool aForeground)
{
diff --git a/src/gui/text/qstatictext.cpp b/src/gui/text/qstatictext.cpp
index 7396bcd..21c2e02 100644
--- a/src/gui/text/qstatictext.cpp
+++ b/src/gui/text/qstatictext.cpp
@@ -109,10 +109,18 @@ QT_BEGIN_NAMESPACE
QPainter::drawStaticText() and can change from call to call with a minimal impact on
performance.
- QStaticText will attempt to guess the format of the input text using Qt::mightBeRichText().
- To force QStaticText to display its contents as either plain text or rich text, use the
- function QStaticText::setTextFormat() and pass in, respectively, Qt::PlainText and
- Qt::RichText.
+ For extra convenience, it is possible to apply formatting to the text using the HTML subset
+ supported by QTextDocument. QStaticText will attempt to guess the format of the input text using
+ Qt::mightBeRichText(), and interpret it as rich text if this function returns true. To force
+ QStaticText to display its contents as either plain text or rich text, use the function
+ QStaticText::setTextFormat() and pass in, respectively, Qt::PlainText and Qt::RichText.
+
+ QStaticText can only represent text, so only HTML tags which alter the layout or appearance of
+ the text will be respected. Adding an image to the input HTML, for instance, will cause the
+ image to be included as part of the layout, affecting the positions of the text glyphs, but it
+ will not be displayed. The result will be an empty area the size of the image in the output.
+ Similarly, using tables will cause the text to be laid out in table format, but the borders
+ will not be drawn.
If it's the first time the static text is drawn, or if the static text, or the painter's font
has been altered since the last time it was drawn, the text's layout has to be
diff --git a/src/gui/text/qtextlayout.cpp b/src/gui/text/qtextlayout.cpp
index 5a11c87..da43913 100644
--- a/src/gui/text/qtextlayout.cpp
+++ b/src/gui/text/qtextlayout.cpp
@@ -1709,14 +1709,18 @@ namespace {
return glyphs.glyphs[logClusters[currentPosition - 1]];
}
+ inline void adjustRightBearing(glyph_t glyph)
+ {
+ qreal rb;
+ fontEngine->getGlyphBearings(glyph, 0, &rb);
+ rightBearing = qMin(QFixed(), QFixed::fromReal(rb));
+ }
+
inline void adjustRightBearing()
{
if (currentPosition <= 0)
return;
-
- qreal rb;
- fontEngine->getGlyphBearings(currentGlyph(), 0, &rb);
- rightBearing = qMin(QFixed(), QFixed::fromReal(rb));
+ adjustRightBearing(currentGlyph());
}
inline void resetRightBearing()
@@ -1901,6 +1905,9 @@ void QTextLine::layout_helper(int maxGlyphs)
} else {
lbh.whiteSpaceOrObject = false;
bool sb_or_ws = false;
+ glyph_t previousGlyph = 0;
+ if (lbh.currentPosition > 0 && lbh.logClusters[lbh.currentPosition - 1] <lbh.glyphs.numGlyphs)
+ previousGlyph = lbh.currentGlyph(); // needed to calculate right bearing later
do {
addNextCluster(lbh.currentPosition, end, lbh.tmpData, lbh.glyphCount,
current, lbh.logClusters, lbh.glyphs);
@@ -1944,9 +1951,15 @@ void QTextLine::layout_helper(int maxGlyphs)
// We ignore the right bearing if the minimum negative bearing is too little to
// expand the text beyond the edge.
if (sb_or_ws|breakany) {
+ QFixed rightBearing = lbh.rightBearing; // store previous right bearing
if (lbh.calculateNewWidth(line) - lbh.minimumRightBearing > line.width)
lbh.adjustRightBearing();
if (lbh.checkFullOtherwiseExtend(line)) {
+ // we are too wide, fix right bearing
+ if (rightBearing <= 0)
+ lbh.rightBearing = rightBearing; // take from cache
+ else if (previousGlyph > 0)
+ lbh.adjustRightBearing(previousGlyph);
if (!breakany) {
line.textWidth += lbh.softHyphenWidth;
}
diff --git a/src/gui/widgets/qcombobox.cpp b/src/gui/widgets/qcombobox.cpp
index dcc328f..917a325 100644
--- a/src/gui/widgets/qcombobox.cpp
+++ b/src/gui/widgets/qcombobox.cpp
@@ -910,7 +910,7 @@ QComboBox::QComboBox(bool rw, QWidget *parent, const char *name)
interaction. The highlighted() signal is emitted when the user
highlights an item in the combobox popup list. All three signals
exist in two versions, one with a QString argument and one with an
- \c int argument. If the user selectes or highlights a pixmap, only
+ \c int argument. If the user selects or highlights a pixmap, only
the \c int signals are emitted. Whenever the text of an editable
combobox is changed the editTextChanged() signal is emitted.
diff --git a/src/network/access/qnetworkrequest.cpp b/src/network/access/qnetworkrequest.cpp
index 8710cb6..d3084cf 100644
--- a/src/network/access/qnetworkrequest.cpp
+++ b/src/network/access/qnetworkrequest.cpp
@@ -105,7 +105,8 @@ QT_BEGIN_NAMESPACE
/*!
\enum QNetworkRequest::Attribute
-
+ \since 4.7
+
Attribute codes for the QNetworkRequest and QNetworkReply.
Attributes are extra meta-data that are used to control the
@@ -186,9 +187,9 @@ QT_BEGIN_NAMESPACE
\value CustomVerbAttribute
Requests only, type: QVariant::ByteArray
- Holds the value for the custom HTTP verb to send (destined for usage
- of other verbs than GET, POST, PUT and DELETE). This verb is set
- when calling QNetworkAccessManager::sendCustomRequest().
+ Holds the value for the custom HTTP verb to send (destined for usage
+ of other verbs than GET, POST, PUT and DELETE). This verb is set
+ when calling QNetworkAccessManager::sendCustomRequest().
\value CookieLoadControlAttribute
Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic)
@@ -198,20 +199,20 @@ QT_BEGIN_NAMESPACE
XMLHttpRequest where withCredentials has not been set explicitly to true by the
Javascript that created the request.
- See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information.
+ See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag}{here} for more information.
(This value was introduced in 4.7.)
+
\value CookieSaveControlAttribute
Requests only, type: QVariant::Int (default: QNetworkRequest::Automatic)
Indicates whether to save 'Cookie' headers received from the server in reply
to the request.
-
This attribute is set to false by QtWebKit when creating a cross-origin
XMLHttpRequest where withCredentials has not been set explicitly to true by the
Javascript that created the request.
- See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information.
+ See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} {here} for more information.
(This value was introduced in 4.7.)
@@ -221,12 +222,11 @@ QT_BEGIN_NAMESPACE
if available. If this is set to QNetworkRequest::Manual and the authentication
mechanism is 'Basic' or 'Digest', Qt will not send an an 'Authorization' HTTP
header with any cached credentials it may have for the request's URL.
-
This attribute is set to QNetworkRequest::Manual by QtWebKit when creating a cross-origin
XMLHttpRequest where withCredentials has not been set explicitly to true by the
Javascript that created the request.
- See http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag for more information.
+ See \l{http://www.w3.org/TR/XMLHttpRequest2/#credentials-flag} {here} for more information.
(This value was introduced in 4.7.)
diff --git a/src/network/bearer/qnetworkconfiguration.cpp b/src/network/bearer/qnetworkconfiguration.cpp
index 3190a30..60851ac 100644
--- a/src/network/bearer/qnetworkconfiguration.cpp
+++ b/src/network/bearer/qnetworkconfiguration.cpp
@@ -406,6 +406,13 @@ QList<QNetworkConfiguration> QNetworkConfiguration::children() const
This function is deprecated. It is equivalent to calling bearerTypeName(), however
bearerType() should be used in preference.
*/
+QString QNetworkConfiguration::bearerName() const
+{
+ // This function cannot be inline as it would break Qt Mobility.
+ // Qt Mobility uses the Qt header as well and since the Mobility Bearer library
+ // does not provide bearerTypeName() we cannot use an inline function.
+ return bearerTypeName();
+}
/*!
Returns the type of bearer used by this network configuration.
diff --git a/src/network/bearer/qnetworkconfiguration.h b/src/network/bearer/qnetworkconfiguration.h
index 02f9cb6..18b92a9 100644
--- a/src/network/bearer/qnetworkconfiguration.h
+++ b/src/network/bearer/qnetworkconfiguration.h
@@ -121,7 +121,7 @@ public:
// Required to maintain source compatibility with Qt Mobility.
#ifdef QT_DEPRECATED
- QT_DEPRECATED inline QString bearerName() const { return bearerTypeName(); }
+ QT_DEPRECATED QString bearerName() const;
#endif
BearerType bearerType() const;
QString bearerTypeName() const;
diff --git a/src/s60installs/eabi/QtNetworku.def b/src/s60installs/eabi/QtNetworku.def
index 6b34a19..2442ee8 100644
--- a/src/s60installs/eabi/QtNetworku.def
+++ b/src/s60installs/eabi/QtNetworku.def
@@ -1131,7 +1131,7 @@ EXPORTS
_ZNK21QNetworkAccessManager13configurationEv @ 1130 NONAME
_ZNK21QNetworkAccessManager17networkAccessibleEv @ 1131 NONAME
_ZNK21QNetworkAccessManager19activeConfigurationEv @ 1132 NONAME
- _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME ABSENT
+ _ZNK21QNetworkConfiguration10bearerNameEv @ 1133 NONAME
_ZNK21QNetworkConfiguration10identifierEv @ 1134 NONAME
_ZNK21QNetworkConfiguration18isRoamingAvailableEv @ 1135 NONAME
_ZNK21QNetworkConfiguration4nameEv @ 1136 NONAME
diff --git a/src/xmlpatterns/data/qabstractdatetime.cpp b/src/xmlpatterns/data/qabstractdatetime.cpp
index 6329fbe..a298698 100644
--- a/src/xmlpatterns/data/qabstractdatetime.cpp
+++ b/src/xmlpatterns/data/qabstractdatetime.cpp
@@ -163,7 +163,7 @@ QDateTime AbstractDateTime::create(AtomicValue::Ptr &errorMessage,
QString msecondsStr(getSafeCapt(mseconds));
if(!msecondsStr.isEmpty())
- msecondsStr = msecondsStr.leftJustified(3, QLatin1Char('0'));
+ msecondsStr = msecondsStr.leftJustified(3, QLatin1Char('0'), true);
const MSecondProperty msecs = msecondsStr.toInt();
if(hour == 24)