summaryrefslogtreecommitdiffstats
path: root/doc/GetUid.3
diff options
context:
space:
mode:
Diffstat (limited to 'doc/GetUid.3')
0 files changed, 0 insertions, 0 deletions
class='right'>1
-rw-r--r--qmake/generators/symbian/symmake_abld.cpp3
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp19
-rw-r--r--src/3rdparty/webkit/.tag2
-rw-r--r--src/3rdparty/webkit/ChangeLog23
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog41
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h8
-rw-r--r--src/3rdparty/webkit/Source/JavaScriptCore/wtf/wtf.pri2
-rw-r--r--src/3rdparty/webkit/Source/WebCore/ChangeLog167
-rw-r--r--src/3rdparty/webkit/Source/WebCore/dom/Range.cpp15
-rw-r--r--src/3rdparty/webkit/Source/WebCore/features.pri2
-rw-r--r--src/3rdparty/webkit/Source/WebCore/loader/DocumentWriter.cpp7
-rw-r--r--src/3rdparty/webkit/Source/WebCore/loader/FrameLoader.cpp33
-rw-r--r--src/3rdparty/webkit/Source/WebCore/page/FrameView.cpp17
-rw-r--r--src/3rdparty/webkit/Source/WebCore/page/FrameView.h2
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp6
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderBox.cpp7
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderObjectChildList.cpp15
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderScrollbar.cpp2
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderTableRow.cpp4
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderTableSection.cpp4
-rw-r--r--src/3rdparty/webkit/Source/WebCore/rendering/RenderWidget.cpp5
-rw-r--r--src/3rdparty/webkit/Source/WebKit.pri3
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/ChangeLog55
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp5
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h1
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp4
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h1
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def2
-rw-r--r--src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp55
-rw-r--r--src/3rdparty/webkit/VERSION2
-rw-r--r--src/corelib/arch/generic/qatomic_generic_windows.cpp3
-rw-r--r--src/corelib/global/qnamespace.qdoc2
-rw-r--r--src/corelib/io/qdir.cpp6
-rw-r--r--src/corelib/io/qiodevice.cpp2
-rw-r--r--src/corelib/kernel/qmetaobject.cpp11
-rw-r--r--src/corelib/kernel/qsystemsemaphore_win.cpp4
-rw-r--r--src/corelib/plugin/quuid.cpp6
-rw-r--r--src/corelib/tools/qcache.h3
-rw-r--r--src/corelib/tools/qdatetime.cpp6
-rw-r--r--src/corelib/tools/qline.cpp5
-rw-r--r--src/corelib/tools/qlist.cpp4
-rw-r--r--src/corelib/tools/qlist.h31
-rw-r--r--src/corelib/tools/qlocale_symbian.cpp63
-rw-r--r--src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp4
-rw-r--r--src/declarative/graphicsitems/qdeclarativeborderimage.cpp10
-rw-r--r--src/declarative/graphicsitems/qdeclarativeborderimage_p.h6
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativeimage.cpp4
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativemousearea.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativepositioners.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativerepeater.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativetext.cpp8
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextedit.cpp14
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextedit_p_p.h2
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp8
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput_p_p.h2
-rw-r--r--src/declarative/qml/qdeclarativebinding.cpp2
-rw-r--r--src/declarative/qml/qdeclarativetypeloader.cpp5
-rw-r--r--src/declarative/util/qdeclarativestate.cpp12
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp34
-rw-r--r--src/gui/image/qpnghandler.cpp23
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_p.h1
-rw-r--r--src/gui/inputmethod/qcoefepinputcontext_s60.cpp50
-rw-r--r--src/gui/kernel/qapplication_s60.cpp18
-rw-r--r--src/gui/kernel/qevent.cpp3
-rw-r--r--src/gui/kernel/qkeysequence.cpp4
-rw-r--r--src/gui/kernel/qsoftkeymanager.cpp14
-rw-r--r--src/gui/kernel/qt_s60_p.h53
-rw-r--r--src/gui/kernel/qwidget.cpp10
-rw-r--r--src/gui/kernel/qwidget.h2
-rw-r--r--src/gui/kernel/qwidget_mac.mm2
-rw-r--r--src/gui/kernel/qwidget_p.h3
-rw-r--r--src/gui/kernel/qwidget_s60.cpp21
-rw-r--r--src/gui/painting/qpaintengine.cpp7
-rw-r--r--src/gui/painting/qpaintengine_raster.cpp58
-rw-r--r--src/gui/painting/qpaintengine_x11.cpp2
-rw-r--r--src/gui/painting/qtessellator.cpp2
-rw-r--r--src/gui/text/qfontdatabase_s60.cpp30
-rw-r--r--src/gui/text/qfontengine.cpp2
-rw-r--r--src/gui/text/qfontengine_coretext_p.h8
-rw-r--r--src/gui/text/qfontengine_ft.cpp8
-rw-r--r--src/gui/text/qfontengine_p.h3
-rw-r--r--src/gui/text/qrawfont.cpp6
-rw-r--r--src/gui/text/qrawfont_ft.cpp2
-rw-r--r--src/gui/text/qrawfont_win.cpp4
-rw-r--r--src/gui/text/qtextengine.cpp6
-rw-r--r--src/gui/text/qtextengine_p.h3
-rw-r--r--src/gui/text/qtextlayout.cpp7
-rw-r--r--src/gui/util/qdesktopservices_s60.cpp8
-rw-r--r--src/gui/widgets/qabstractplatformmenubar_p.h108
-rw-r--r--src/gui/widgets/qlinecontrol.cpp6
-rw-r--r--src/gui/widgets/qmenu_mac.mm4
-rw-r--r--src/gui/widgets/qmenu_p.h6
-rw-r--r--src/gui/widgets/qmenu_symbian.cpp4
-rw-r--r--src/gui/widgets/qmenu_wince.cpp4
-rw-r--r--src/gui/widgets/qmenubar.cpp139
-rw-r--r--src/gui/widgets/qmenubar_p.h39
-rw-r--r--src/gui/widgets/qmenubar_x11.cpp139
-rw-r--r--src/gui/widgets/qmenubar_x11_p.h87
-rw-r--r--src/gui/widgets/qtabbar.cpp2
-rw-r--r--src/gui/widgets/qtextedit.cpp2
-rw-r--r--src/gui/widgets/widgets.pri8
-rw-r--r--src/network/ssl/qsslcertificate.cpp22
-rw-r--r--src/plugins/platforms/directfb/qdirectfbglcontext.cpp2
-rw-r--r--src/plugins/sqldrivers/sqlite_symbian/sqlite_symbian.pro4
-rw-r--r--src/qt3support/itemviews/q3listbox.cpp6
-rw-r--r--src/qt3support/network/q3socketdevice_win.cpp5
-rw-r--r--src/qt3support/sql/q3datatable.cpp2
-rw-r--r--src/qt3support/text/q3richtext.cpp2
-rw-r--r--src/s60installs/bwins/QtGuiu.def2
-rw-r--r--src/s60installs/eabi/QtGuiu.def2
-rwxr-xr-xsrc/s60installs/s60installs.pro9
-rw-r--r--src/scripttools/debugging/qscriptcompletiontask.cpp2
-rw-r--r--src/scripttools/debugging/qscriptdebuggercodeview.cpp2
-rw-r--r--src/sql/kernel/qsqlresult.cpp4
-rw-r--r--src/src.pro2
-rw-r--r--src/tools/moc/moc.cpp4
-rw-r--r--src/xml/sax/qxml.cpp8
-rw-r--r--tests/auto/collections/tst_collections.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp13
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp44
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp32
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp7
-rw-r--r--tests/auto/qnetworkproxyfactory/tst_qnetworkproxyfactory.cpp2
-rw-r--r--tests/auto/qpixmapcache/tst_qpixmapcache.cpp25
-rw-r--r--tests/auto/qrawfont/tst_qrawfont.cpp25
-rw-r--r--tests/auto/qshortcut/tst_qshortcut.cpp3
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted-google.com-diginotar.pem30
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted1.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted2.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted3.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted4.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted5.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted6.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted7.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted8.pem20
-rw-r--r--tests/auto/qsslcertificate/more-certificates/blacklisted9.pem20
-rw-r--r--tests/auto/qxmlquery/tst_qxmlquery.cpp1
-rwxr-xr-xtests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.entbin0 -> 2130 bytes-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml5
-rw-r--r--tests/auto/qxmlsimplereader/xmldocs/valid/ext-sa/015.xml.ref10
-rw-r--r--tests/auto/qxmlstream/test.xml3
-rw-r--r--tests/auto/xmlpatternsschemats/Baseline.xml2
-rw-r--r--tests/auto/xmlpatternsschemats/ReadMe.txt8
-rwxr-xr-xtests/auto/xmlpatternsschemats/TESTSUITE/updateSuite.sh12
-rw-r--r--tests/auto/xmlpatternssdk/TestSuite.cpp1
-rw-r--r--tests/auto/xmlpatternssdk/TestSuiteHandler.cpp17
-rw-r--r--tests/auto/xmlpatternssdk/TestSuiteHandler.h4
-rw-r--r--tests/auto/xmlpatternssdk/Worker.cpp2
-rw-r--r--tests/auto/xmlpatternssdk/XSDTestSuiteHandler.cpp1
-rw-r--r--tests/auto/xmlpatternsxqts/Baseline.xml2
-rwxr-xr-xtests/auto/xmlpatternsxqts/TESTSUITE/updateSuite.sh72
-rw-r--r--tests/auto/xmlpatternsxqts/tst_suitetest.cpp5
-rw-r--r--tests/auto/xmlpatternsxqts/tst_xmlpatternsxqts.cpp26
-rwxr-xr-xtests/auto/xmlpatternsxslts/XSLTS/updateSuite.sh17
-rw-r--r--tests/benchmarks/corelib/tools/qlist/main.cpp250
-rw-r--r--tests/benchmarks/corelib/tools/qlist/qlist.pro5
-rw-r--r--tests/benchmarks/corelib/tools/tools.pro1
-rw-r--r--tools/assistant/lib/lib.pro1
-rw-r--r--tools/designer/src/components/propertyeditor/propertyeditor.pri11
-rw-r--r--tools/designer/src/plugins/plugins.pro2
-rw-r--r--tools/qdbus/qdbus/qdbus.cpp8
-rw-r--r--tools/qdoc3/codemarker.cpp2
-rw-r--r--tools/qdoc3/codeparser.cpp3
-rw-r--r--tools/qdoc3/cppcodemarker.cpp40
-rw-r--r--tools/qdoc3/cppcodeparser.cpp17
-rw-r--r--tools/qdoc3/ditaxmlgenerator.cpp96
-rw-r--r--tools/qdoc3/ditaxmlgenerator.h11
-rw-r--r--tools/qdoc3/doc.cpp6
-rw-r--r--tools/qdoc3/generator.cpp153
-rw-r--r--tools/qdoc3/generator.h12
-rw-r--r--tools/qdoc3/htmlgenerator.cpp300
-rw-r--r--tools/qdoc3/htmlgenerator.h16
-rw-r--r--tools/qdoc3/node.cpp85
-rw-r--r--tools/qdoc3/node.h31
-rw-r--r--tools/qvfb/qvfb.pro9
-rw-r--r--tools/qvfb/qvfbshmem.cpp7
-rw-r--r--tools/tools.pro2
-rw-r--r--translations/assistant_ja.ts358
-rw-r--r--translations/assistant_ru.ts193
-rw-r--r--translations/designer_ja.ts121
-rw-r--r--translations/designer_ru.ts137
-rw-r--r--translations/qt_ja.ts437
-rw-r--r--translations/qt_ru.ts402
-rw-r--r--translations/qtconfig_ja.ts192
-rw-r--r--translations/qtconfig_ru.ts243
227 files changed, 4374 insertions, 1629 deletions
diff --git a/configure b/configure
index a0e237e..b590507 100755
--- a/configure
+++ b/configure
@@ -9017,6 +9017,10 @@ for file in .projects .projects.3; do
if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_SYMBIAN" != "yes" ]; then
continue
fi;;
+ *activeqt/*)
+ if [ "$PLATFORM" = "win32-g++" ] || [ "$XPLATFORM" = "win32-g++" ]; then
+ continue
+ fi;;
*examples/activeqt/*) continue ;;
*/qmake/qmake.pro) continue ;;
*tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*linguist/lrelease*) SPEC=$QMAKESPEC ;;
diff --git a/demos/gradients/gradients.cpp b/demos/gradients/gradients.cpp
index d8b739b..338d8eb 100644
--- a/demos/gradients/gradients.cpp
+++ b/demos/gradients/gradients.cpp
@@ -219,7 +219,7 @@ void GradientEditor::pointsUpdated()
for (int i=0; i<points.size(); ++i) {
qreal x = int(points.at(i).x());
- if (i < points.size() - 1 && x == points.at(i+1).x())
+ if (i+1 < points.size() && x == points.at(i+1).x())
continue;
QColor color((0x00ff0000 & m_red_shade->colorAt(int(x))) >> 16,
(0x0000ff00 & m_green_shade->colorAt(int(x))) >> 8,
diff --git a/doc/src/classes/phonon-api.qdoc b/doc/src/classes/phonon-api.qdoc
index 95e20dd..d1b26f6 100644
--- a/doc/src/classes/phonon-api.qdoc
+++ b/doc/src/classes/phonon-api.qdoc
@@ -5131,6 +5131,30 @@
*/
/*!
+ \class Phonon::GlobalConfigPrivate
+ \inmodule Phonon
+ \internal
+*/
+
+/*!
+ \class Phonon::AudioDataOutputPrivate
+ \inmodule Phonon
+ \internal
+*/
+
+/*!
+ \class Phonon::AudioDataOutputInterface
+ \inmodule Phonon
+ \internal
+*/
+
+/*!
+ \class Phonon::SwiftSlider
+ \inmodule Phonon
+ \internal
+*/
+
+/*!
\fn Phonon::GlobalConfigPrivate::GlobalConfigPrivate()
\internal
*/
diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc
index 41b04e8..e93e539 100644
--- a/doc/src/declarative/anchor-layout.qdoc
+++ b/doc/src/declarative/anchor-layout.qdoc
@@ -53,7 +53,12 @@ Rectangle { id: rect1; ... }
Rectangle { id: rect2; anchors.left: rect1.right; ... }
\endcode
-In this case, the left edge of \e rect2 is bound to the right edge of \e rect1, producing the following:
+Each Item has two properties for each anchor line: one to bind from and one to bind to. The properties to bind
+from are contained in the \l{Item::}{anchors} attached property (seen as \c {anchors.left} above).
+The properties to bind to are normal properties (seen as \c {rect1.right} above).
+This way, each item can have several bindings to the same anchor line. Note that the properties to bind to are
+not visible in the documentation for Item.
+So in the example above, the left edge of \e rect2 is bound to the right edge of \e rect1, producing the following:
\image edge1.png
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index d89ca53..cecccf6 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -46,7 +46,7 @@ Qt applications.
\section1 Getting Started
\list
-\o \l{Intro to Qt Quick}{Introduction to Qt Quick}
+\o \l{Introduction to Qt Quick}
\o \l{QML for Qt Programmers}{QML Programming for Qt Programmers}
\o \l{Getting Started Programming with QML}
diff --git a/doc/src/declarative/qtquick-intro.qdoc b/doc/src/declarative/qtquick-intro.qdoc
index bdad2c3..4cd5db3 100644
--- a/doc/src/declarative/qtquick-intro.qdoc
+++ b/doc/src/declarative/qtquick-intro.qdoc
@@ -27,7 +27,7 @@
/*!
\page qml-intro.html
-\title Intro to Qt Quick
+\title Introduction to Qt Quick
Qt Quick is a collection of technologies that are designed to help developers
create the kind of intuitive, modern, and fluid user interfaces that are
diff --git a/doc/src/deployment/deployment.qdoc b/doc/src/deployment/deployment.qdoc
index a13e2b8..ecb9ec6 100644
--- a/doc/src/deployment/deployment.qdoc
+++ b/doc/src/deployment/deployment.qdoc
@@ -102,15 +102,16 @@
of the libraries used by the application. Using static linking,
however, the Qt run-time is compiled into the executable.
- In general, you should deploy all plugins that your build of Qt uses,
- excluding only those that you have identified as being unnecessary
- for your application and its users.
+ In general, you should \l{Deploying Plugins}{deploy all plugins}
+ that your build of Qt uses, excluding only those that you have
+ identified as being unnecessary for your application and its users.
For instance, you may need to deploy plugins for JPEG support and
SQL drivers, but you should also deploy plugins that your users may
require, including those for accessibility.
- For more information about plugins, see the
- \l{plugins-howto.html}{How to Create Qt Plugins} documentation.
+ For more information about plugins, see
+ \l{plugins-howto.html}{How to Create Qt Plugins} and
+ \l{Deploying Plugins}.
When deploying an application using the shared library approach
you must ensure that the Qt libraries will use the correct path to
@@ -501,7 +502,8 @@
The \l{How to Create Qt Plugins} document outlines the issues you
need to pay attention to when building and deploying plugins for
- Qt applications.
+ Qt applications. More information about deployment can be found in
+ \l{Deploying Plugins}.
*/
/*!
diff --git a/doc/src/deployment/qt-conf.qdoc b/doc/src/deployment/qt-conf.qdoc
index 2f68f3d..5204cc6 100644
--- a/doc/src/deployment/qt-conf.qdoc
+++ b/doc/src/deployment/qt-conf.qdoc
@@ -48,7 +48,7 @@
\o \c :/qt/etc/qt.conf using the resource system
- \o on Mac OS X, in the Resource directory inside the appliction
+ \o on Mac OS X, in the Resource directory inside the application
bundle, for example \c assistant.app/Contents/Resources/qt.conf
\o in the directory containing the application executable, i.e.
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 329bac5..0f85469 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -1184,6 +1184,10 @@
Any rules you define will be added after automatically generated
rules in each section.
+ \note Content specified using \c BLD_INF_RULES is inserted as-is into the \c bld.inf
+ file, so any rules that specify host side paths may not work correctly when doing
+ a shadow build.
+
\target CONFIG
\section1 CONFIG
@@ -1521,6 +1525,10 @@
override languages statement, you must override also package-header
statement and all other statements which are language specific.
+ \note Custom deployments specified using \c pkg_postrules are inserted
+ as-is into the \c PKG file, so any rules that specify host side paths may not
+ work correctly when doing a shadow build.
+
On the Symbian platform, three separate PKG files are generated:
\list
@@ -1911,6 +1919,10 @@
\c TARGET.EPOCSTACKSIZE.
Doing so could result in duplicate statements in the MMP file.
+ \note Content specified using \c MMP_RULES is inserted as-is into the \c MMP
+ file, so any rules that specify host side paths may not work correctly when doing
+ a shadow build.
+
\target MOC_DIR
\section1 MOC_DIR
@@ -3251,6 +3263,29 @@
\snippet doc/src/snippets/code/doc_src_qmake-manual.pro 150
+ \section2 Ordered Targets and Visual Studio Solution Files
+
+ The \c ordered option is not supported for Visual Studio. The following list describes how
+ you can get around without it--dependencies are generated automatically if:
+
+ \list
+ \o 1a) There is a Lib/DLL project of which TARGET (the .lib is used and not the .dll)
+ is used on the link line of another project in your solution (you can modify the link
+ line with LIBS).
+
+ \o 1b) There is an Exe project of which TARGET is used in a custom
+ build-step of another project in your solution.
+
+ \o 2) You don't use paths in the TARGET variable (use DESTDIR/DLLDESTDIR for that),
+ e.g, TARGET=$(SOME_VARIABLE)/myLib, won't work.
+
+ \o 3) If you have a special location for your libs, you specify the -Lmy/library/path and
+ LIBS += mylib, instead of just using LIBS += my/library/path/mylib
+
+ \o 4) The leaf projects are created before you generate the solution file. (You can use the
+ recursive flag for qmake to do this, like "qmake -tp vc -r [yourproject.pro]"
+ \endlist
+
\target SYMBIAN_VERSION
\section1 SYMBIAN_VERSION
diff --git a/doc/src/examples/addressbook.qdoc b/doc/src/examples/addressbook.qdoc
index 114c22b..f19582d 100644
--- a/doc/src/examples/addressbook.qdoc
+++ b/doc/src/examples/addressbook.qdoc
@@ -29,7 +29,7 @@
\example itemviews/addressbook
\title Address Book Example
- The address book example shows how to use proxy models to display
+ \brief The address book example shows how to use proxy models to display
different views onto data from a single model.
\image addressbook-example.png Screenshot of the Address Book example
diff --git a/doc/src/examples/codeeditor.qdoc b/doc/src/examples/codeeditor.qdoc
index 435f650..1718d52 100644
--- a/doc/src/examples/codeeditor.qdoc
+++ b/doc/src/examples/codeeditor.qdoc
@@ -194,4 +194,30 @@
with QSyntaxHighlighter" article in Qt Quarterly 31 implements
this. You find it here: \l{http://doc.qt.nokia.com/qq/}.
+ The line number area is now painted every time the cursor blinks
+ (because we connect \l{QPlainTextEdit::}{updateRequest()} to
+ \c updateLineNumberArea()). We can avoid this by introducing a new
+ member variable to CodeEditor that keeps track of when the update
+ request comes from a cursor blink (in which case we do not
+ repaint). The code below requires the \c m_countCache variable,
+ which is a QPair<int, int> initialized with \c -1 for both
+ \l{QPair::}{first} and \l{QPair::}{second}.
+
+ \code
+ void CodeEditor::updateLineNumberArea(const QRect &rect, int dy)
+ {
+ if (dy) {
+ lineNumberArea->scroll(0, dy);
+ } else if (m_countCache.first != blockCount()
+ || m_countCache.second != textCursor().block().lineCount()) {
+ lineNumberArea->update(0, rect.y(), lineNumberArea->width(), rect.height());
+ m_countCache.first = blockCount();
+ m_countCache.second = textCursor().block().lineCount();
+ }
+
+ if (rect.contains(viewport()->rect()))
+ updateLineNumberAreaWidth(0);
+ }
+ \endcode
*/
+
diff --git a/doc/src/examples/stardelegate.qdoc b/doc/src/examples/stardelegate.qdoc
index 3b009d5..ed3ae7e 100644
--- a/doc/src/examples/stardelegate.qdoc
+++ b/doc/src/examples/stardelegate.qdoc
@@ -42,12 +42,12 @@
editing takes place.
Delegates are subclasses of QAbstractItemDelegate. Qt provides
- QItemDelegate, which inherits QAbstractItemDelegate and handles
- the most common data types (notably \c int and QString). If we
- need to support custom data types, or want to customize the
+ QStyledItemDelegate, which inherits QAbstractItemDelegate and
+ handles the most common data types (notably \c int and QString).
+ If we need to support custom data types, or want to customize the
rendering or the editing for existing data types, we can subclass
- QAbstractItemDelegate or QItemDelegate. See \l{Delegate Classes}
- for more information about delegates, and \l{Model/View
+ QAbstractItemDelegate or QStyledItemDelegate. See \l{Delegate
+ Classes} for more information about delegates, and \l{Model/View
Programming} if you need a high-level introduction to Qt's
model/view architecture (including delegates).
@@ -62,9 +62,9 @@
expressed as stars, such as "2 out of 5 stars" or "5 out of
6 stars".
- \o \c StarDelegate inherits QItemDelegate and provides support
+ \o \c StarDelegate inherits QStyledItemDelegate and provides support
for \c StarRating (in addition to the data types already
- handled by QItemDelegate).
+ handled by QStyledItemDelegate).
\o \c StarEditor inherits QWidget and is used by \c StarDelegate
to let the user edit a star rating using the mouse.
@@ -80,20 +80,20 @@
\snippet examples/itemviews/stardelegate/stardelegate.h 0
All public functions are reimplemented virtual functions from
- QItemDelegate to provide custom rendering and editing.
+ QStyledItemDelegate to provide custom rendering and editing.
\section1 StarDelegate Class Implementation
- The \l{QAbstractItemDelegate::}{paint()} function is
- reimplemented from QItemDelegate and is called whenever the view
- needs to repaint an item:
+ The \l{QAbstractItemDelegate::}{paint()} function is reimplemented
+ from QStyledItemDelegate and is called whenever the view needs to
+ repaint an item:
\snippet examples/itemviews/stardelegate/stardelegate.cpp 0
The function is invoked once for each item, represented by a
QModelIndex object from the model. If the data stored in the item
is a \c StarRating, we paint it ourselves; otherwise, we let
- QItemDelegate paint it for us. This ensures that the \c
+ QStyledItemDelegate paint it for us. This ensures that the \c
StarDelegate can handle the most common data types.
In the case where the item is a \c StarRating, we draw the
diff --git a/doc/src/index.qdoc b/doc/src/index.qdoc
index 2490374..9680aa2 100644
--- a/doc/src/index.qdoc
+++ b/doc/src/index.qdoc
@@ -40,7 +40,7 @@
\o \l{How to Learn Qt}
\o \l{Introduction to Qt Quick}{Qt Quick}
\o \l{Qt Whitepaper}{Qt C++ Framework}
- \o \l{Intro to Qt Quick}{Qt Quick}
+ \o \l{Introduction to Qt Quick}{Qt Quick}
\o \l{external: Qt Mobility Manual}{Qt Mobility}
\o \l{Qt WebKit}
\endlist
diff --git a/doc/src/platforms/platform-notes.qdoc b/doc/src/platforms/platform-notes.qdoc
index 175cf1c..477f125 100644
--- a/doc/src/platforms/platform-notes.qdoc
+++ b/doc/src/platforms/platform-notes.qdoc
@@ -774,7 +774,7 @@
\row \o QtCore
\o \c PowerMgmt if QProcess::kill(...) or QProcess::terminate(...) is called.
\row \o QtCore
- \o \c AllFiles when \l{http://developer.symbian.org/wiki/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.}
+ \o \c AllFiles when \l{http://wiki.forum.nokia.com/index.php/Capabilities_%28Symbian_Signed%29/AllFiles_Capability}{accessing specific areas.}
\row \o QtDeclarative
\o \c NetworkServices is automatically added for this module if no capabilities are explicitly specified.
\row \o QtNetwork
@@ -798,22 +798,27 @@
\section1 Multimedia and Phonon Support
- Qt provides a backend for Qt's Phonon module, which supports
- video and sound playback through Symbian's Multimedia Framework, MMF.
+ Qt provides a high-level API for multimedia functionality with
+ (\l{http://doc.qt.nokia.com/qtmobility/multimedia.html}).
- In this release the support is experimental. Video playback may have
- flickering issues, and support for effects and playback queueing is
- incomplete.
+ Qt also provides a backend for Qt's Phonon module, which supports video and
+ sound playback through Symbian's Multimedia Framework, MMF. Note that Phonon
+ support is not being extended, and that Qt's multimedia module will
+ take over for Phonon at a later stage.
+
+ In this release the support is experimental. Video playback may show
+ artifacts when the video is moved or resized (for instance during
+ orientation flips). This problem is present on Symbian^1 and earlier
+ versions, and on Symbian^3 systems.
The audio and video formats that Phonon supports depends on what support
the platform provides for MMF. The emulator is known to have limited
codec support.
- In addition, there exists a backend for the Helix framework. However, due
- to it not shipping with Qt, its availability depends on the Symbian
- platform in use. If available, it is loaded in preference over the MMF
- plugin. If the Helix plugin fails to load, the MMF plugin, if present on
- the device, will be loaded instead.
+ In addition, there exists a backend for the Helix framework. However, since
+ it is not shipped with Qt, its availability depends on the Symbian platform
+ in use. If the MFF plugin fails to load, the Helix plugin, if present on the
+ device, will be loaded instead.
\section1 Hardware Accelerated Rendering
diff --git a/doc/src/platforms/supported-platforms.qdoc b/doc/src/platforms/supported-platforms.qdoc
index 9d47695..ba59c37 100644
--- a/doc/src/platforms/supported-platforms.qdoc
+++ b/doc/src/platforms/supported-platforms.qdoc
@@ -334,8 +334,8 @@
\section2 Advanced Text Layout Engine
- Qt for Windows CE supports TrueType® and raster fonts. Qt also has
- extended Unicode support and right-to-left languages. Qt’s rich text
+ Qt for Windows CE supports TrueType and raster fonts. Qt also has
+ extended Unicode support and right-to-left languages. Qt's rich text
engine adds capabilities for complex text layouts including tables,
path tracing and text which flows around shapes.
@@ -373,7 +373,7 @@
by embedded Linux. You can use Qt to create highly memory efficient
devices and applications that have completely unique user experiences.
- Qt runs anywhere Linux runs. Qt’s intuitive API means fewer lines of
+ Qt runs anywhere Linux runs. Qt's intuitive API means fewer lines of
code and higher level functionality in less time. Use the code from
one single code-base and rebuild for all \l{Supported Platforms}
{supported platforms}.
@@ -410,7 +410,7 @@
frame buffer} that will match the physical device display, pixel for
pixel. This gives the developer a realistic testing infrastructure
testing on the desktop where the frame buffer simulates the physical
- device display’s width, height and color depth.
+ device display's width, height and color depth.
\section2 Inter-Process Communication (IPC)
@@ -421,7 +421,7 @@
\section2 Extended Font Format
Qt supports a wide range of font formats on embedded Linux including:
- TrueType®, Postscript® Type1 and Qt pre-rendered fonts. Qt has
+ TrueType, Postscript Type1 and Qt pre-rendered fonts. Qt has
extended Unicode support including automatic data extraction at build
time and automatic update at runtime.
@@ -681,7 +681,7 @@
\group platform-details
Qt is a cross-platform application and UI framework. Using Qt,
- you can write web-enabled applications once and deploy them
+ you can write GUI applications once and deploy them
across desktop, mobile and embedded operating systems without
rewriting the source code.
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 9b1eea2..e5d4a16 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -74,6 +74,8 @@
Platform security capabilities are added via the
\l{qmake-variable-reference.html#target-capability}{TARGET.CAPABILITY}
qmake variable.
+
+ \sa {platform-notes-symbian.html#required-capabilities}{Required Capabilities}
*/
/*!
diff --git a/doc/src/qt-features.qdoc b/doc/src/qt-features.qdoc
new file mode 100644
index 0000000..0ae00b0
--- /dev/null
+++ b/doc/src/qt-features.qdoc
@@ -0,0 +1,204 @@
+/****************************************************************************
+**
+** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of
+** this file.
+**
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms
+** and conditions contained in a signed written agreement between you
+** and Nokia.
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+ \page qt-overview.html
+ \title Qt Features Overview
+
+ This document provides a summary of the most important features of Qt,
+ providing links to other pages in the documentation that cover these
+ features in more detail. It is not intended to be a comprehensive
+ guide to Qt's features.
+
+ \section1 Fundamental Technologies in Qt
+
+ Qt is built upon a set of core technologies, provided by the \l QtCore
+ and \l QtGui modules. These include the following:
+
+ \list
+ \o \l{The Tulip Container Classes}, a set of template container classes.
+ \o \l{The Arthur Paint System}, the Qt 4 painting framework.
+ \o \l{The Interview Framework}, a model/view architecture for item views
+ and the \l{QtSQL Module}, which also uses this architecture.
+ \o \l{The Scribe Classes}, a framework for creating text documents,
+ performing low-level text layout and writing OpenDocument files.
+ \o A collection of \l{Qt Widget Gallery}{common desktop widgets}, styled
+ to fit in on each supported platform.
+ \o \l{The Qt 4 Main Window Classes}, a main window, toolbar, menu, and
+ docking architecture.
+ \o The \l{Graphics View} framework provides a canvas for producing
+ interactive graphics.
+ \o The \l{QtNetwork Module} provides support for TCP, UDP and local
+ sockets that are integrated with Qt's event model, including support
+ for Secure Socket Layer (SSL) communications,
+ \l{QNetworkProxy}{network proxy} servers and
+ \l{Bearer Management}{network bearer management}.
+ \o Enhanced \l{qt4-threads.html}{thread support} allows
+ \l{Signals & Slots}{signal-slot} connections across threads and
+ per-thread event loops.
+ Additionally, \l{Thread Support in Qt}{a framework for concurrent programming}
+ using Qt paradigms makes common threading tasks easier.
+ \o A \l{resource system} for embedding images and other resource files
+ into executable files makes it easier to deploy applications.
+ \o A \l{QTestLib Manual}{unit testing framework} for Qt applications and
+ libraries.
+ \endlist
+
+ The mature classes provided by these technologies have been used to build
+ robust, cross-platform desktop applications. They are augmented by a number
+ of additional technologies and improvements that have appeared over the
+ lifetime of Qt 4.
+
+ \section1 Graphical User Interfaces
+
+ \div{class="float-right"}
+ \inlineimage gtk-tabwidget.png
+ \enddiv
+ \div{class="float-right"}
+ \inlineimage gtk-progressbar.png
+ \br
+ \inlineimage gtk-checkbox.png
+ \br
+ \inlineimage plastique-combobox.png
+ \br
+ \inlineimage plastique-radiobutton.png
+ \enddiv
+
+ Alongside the support for traditional desktop user interfaces, Qt includes
+ support for declarative UI development with \l{Qt Quick}, a set of
+ technologies for creating fluid, dynamic user interfaces. A starting point
+ for exploring this approach can be found in the \l{Introduction to Qt Quick}
+ guide.
+
+ Qt provides a range of standard user interface elements, called widgets,
+ for each supported platform. Widgets can be used as containers for other
+ widgets, as windows, and as regular controls that the user interacts with.
+ Where the platform supports it, widgets can be made to appear partially
+ transparent, and may be styled with \l{Qt Style Sheets}.
+
+ Support for \l{QTouchEvent}{touch input} and \l{Gestures Programming}{gestures}
+ enable widgets to be used to create intuitive user interfaces for
+ touch-enabled devices.
+
+ User interfaces can also be created dynamically at run-time with the
+ features provided by the \l{QtUiTools} module.
+
+ A selection of available widgets are shown in the \l{Qt Widget Gallery}.
+ An introduction to the concepts behind widgets can be found in the
+ \l{Widgets Tutorial}.
+
+ \clearfloat
+ \section1 Painting, Printing and Rendering
+
+ \div{class="float-left"}
+ \inlineimage qpainter-affinetransformations.png
+ \enddiv
+
+ Widgets are just one of many kinds of paint device that Qt can render onto.
+ This support for unified painting makes it possible for applications to use
+ the same painting code for different tasks, as well as allowing Qt to be
+ extended to support additional file formats.
+
+ Qt provides support for common bitmap image formats,
+ \l{QtSvg Module}{Scalable Vector Graphics} (SVG) drawings and animations,
+ Postscript and Portable Document Format (PDF) files. Postscript and PDF are
+ integrated with \l{Printing with Qt}{Qt's printing system}, which also
+ allows printed output to be previewed.
+
+ Interactive graphics can be created with the
+ \l{The Animation Framework}{animation framework}, allowing animations to be
+ used with both widgets and graphics items. Animations can be used with the
+ \l{The State Machine Framework}{state machine framework}, which provides a
+ way to express application logic and integrate it with the user interface.
+ Animations can be enhanced with a collection of
+ \l{QGraphicsEffect}{graphics effects} that operate on graphics items and
+ can be applied individually or combined to create more complex effects.
+
+ Qt supports integration with \l{QtOpenGL}{OpenGL} on a number of levels,
+ providing convenience functions for handling textures and colors, as well
+ as providing support for pixel and sample buffers. Future support for
+ higher level 3D integration is provided by Qt3D enablers which include
+ \l{QMatrix4x4}{matrix multiplication}, \l{QQuaternion}{quaternions}, and an
+ API for \l{QGLShader}{vertex and fragment shaders}.
+
+ Two APIs are provided for multimedia. The
+ \l{Phonon Overview}{Phonon Multimedia Framework} has traditionally been
+ used on desktop platforms. A set of
+ \l{QtMultimedia Module}{multimedia services} provides low-level access to
+ the system's audio system and is often used on mobile devices.
+
+ \clearfloat
+ \section1 Infrastructure
+
+ \div{class="float-right"}
+ \inlineimage qtscript-context2d.png
+ \enddiv
+
+ Facilities for Inter-Process Communication (IPC) and Remote Procedure
+ Calling (RPC) mechanisms are available on platforms that support the
+ \l{intro-to-dbus.html}{D-Bus} message bus system.
+
+ An \l{Undo Framework}{Undo framework} based on the
+ \l{Books about GUI Design#Design Patterns}{Command pattern} is designed to
+ enable a consistent approach to handling data in editing applications.
+
+ The \l{QtScript} and \l{QtScriptTools} modules provide support for
+ application scripting and debugging using the ECMAScript language.
+
+ The \l{QtHelp Module} provides the foundations of an interactive help
+ system that can be used in conjunction with Qt Creator or integrated into
+ applications directly.
+
+ XML handling is supported in a number of places in Qt. The \l QtCore module
+ provides classes for reading and writing XML streams. The \l QtXmlPatterns
+ module includes XQuery, XPath and XSLT support, providing facilities for
+ XML processing beyond that supported by the QtXml module, which contains
+ SAX and DOM parsers. XML schema validation in the QtXmlPatterns module
+ covers large parts of version 1.0 of the specification.
+
+ \clearfloat
+ \section1 Web Client Integration
+
+ Integration between \l{Webkit in Qt}{Qt and WebKit} makes it possible for
+ developers to use a fully-featured Web browser engine to display documents
+ and access online services. Developers can access the browser's environment
+ to create documents and run scripts within one or more browser widgets.
+
+ A \l{QWebElement}{DOM access API} for QtWebKit provides a cleaner and safer
+ way to access elements and structures of Web pages without the use of
+ JavaScript.
+
+ \section1 Further Reading
+
+ Many of the technologies mentioned here, as well as other, more specific
+ features, are listed in the \l{What's New in Qt 4} document. A complete
+ list of Qt's modules can be found on the \l{All Modules} page, which
+ also includes more domain-specific technologies.
+
+ The tools that are supplied with Qt are covered by the listing in the
+ \l{Qt's Tools} document.
+*/
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index 17dc1af..01103a8 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -138,7 +138,7 @@
In Qt 4.4:
\list
- \o \l{Webkit in QT}{Qt WebKit integration}, making it possible for developers
+ \o \l{WebKit in Qt}{Qt WebKit integration}, making it possible for developers
to use a fully-featured Web browser to display documents and access online
services.
\o A multimedia API provided by the \l{Phonon Overview}{Phonon Multimedia Framework}.
@@ -707,7 +707,6 @@
introduced in Qt 4.7.
\sincelist 4.7
-
*/
/*!
diff --git a/doc/src/template/style/offline.css b/doc/src/template/style/offline.css
index 44abb3c..d33d8e7 100644
--- a/doc/src/template/style/offline.css
+++ b/doc/src/template/style/offline.css
@@ -74,8 +74,7 @@
body
{
- margin-left: 0.5em;
- margin-right: 0.5em;
+ margin: 0px;
font-family: sans-serif;
line-height: normal
}
@@ -238,7 +237,9 @@
.header .content
{
- margin-bottom: 0.5em
+ margin-left: 5px;
+ margin-top: 5px;
+ margin-bottom: 0.5em;
}
.header .breadcrumb
@@ -413,6 +414,11 @@
.flowList dd a{
}
+ .mainContent
+ {
+ padding-left:5px;
+ }
+
.content .flowList p{
padding:0px;
}
diff --git a/examples/opengl/cube/mainwidget.h b/examples/opengl/cube/mainwidget.h
index c6da29f..eb509d0 100644
--- a/examples/opengl/cube/mainwidget.h
+++ b/examples/opengl/cube/mainwidget.h
@@ -48,8 +48,10 @@
#include <QQuaternion>
#include <QVector2D>
+QT_BEGIN_NAMESPACE
class QBasicTimer;
class QGLShaderProgram;
+QT_END_NAMESPACE
class GeometryEngine;
diff --git a/examples/webkit/simplewebplugin/csvfactory.h b/examples/webkit/simplewebplugin/csvfactory.h
index 0b046c5..0168dc2 100644
--- a/examples/webkit/simplewebplugin/csvfactory.h
+++ b/examples/webkit/simplewebplugin/csvfactory.h
@@ -47,6 +47,8 @@
class QNetworkAccessManager;
class QNetworkReply;
+QT_BEGIN_NAMESPACE
+
//! [plugin factory]
class CSVFactory : public QWebPluginFactory
{
@@ -64,4 +66,6 @@ private:
};
//! [plugin factory]
+QT_END_NAMESPACE
+
#endif
diff --git a/examples/webkit/simplewebplugin/csvview.h b/examples/webkit/simplewebplugin/csvview.h
index 0a136f3..f457d0a 100644
--- a/examples/webkit/simplewebplugin/csvview.h
+++ b/examples/webkit/simplewebplugin/csvview.h
@@ -46,8 +46,10 @@
#include <QTableView>
#include <QWebPluginFactory>
+QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
class QNetworkReply;
+QT_END_NAMESPACE
//! [definition]
class CSVView : public QTableView
diff --git a/examples/webkit/webftpclient/downloader.h b/examples/webkit/webftpclient/downloader.h
index 8201cea..dd2f8ec 100644
--- a/examples/webkit/webftpclient/downloader.h
+++ b/examples/webkit/webftpclient/downloader.h
@@ -46,10 +46,12 @@
#include <QObject>
#include <QUrl>
+QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
class QNetworkRequest;
class QNetworkReply;
class QWidget;
+QT_END_NAMESPACE
class Downloader : public QObject
{
diff --git a/examples/webkit/webftpclient/ftpreply.h b/examples/webkit/webftpclient/ftpreply.h
index becd4e4..65c8c66 100644
--- a/examples/webkit/webftpclient/ftpreply.h
+++ b/examples/webkit/webftpclient/ftpreply.h
@@ -44,8 +44,11 @@
#include <QNetworkReply>
#include <QStringList>
#include <QUrlInfo>
+#include <QFtp>
+QT_BEGIN_NAMESPACE
class QFtp;
+QT_END_NAMESPACE
//! [class definition]
class FtpReply : public QNetworkReply
diff --git a/examples/webkit/webftpclient/ftpview.h b/examples/webkit/webftpclient/ftpview.h
index 2538812..ae4f9c1 100644
--- a/examples/webkit/webftpclient/ftpview.h
+++ b/examples/webkit/webftpclient/ftpview.h
@@ -41,7 +41,9 @@
#include <QWebView>
class Downloader;
+QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
+QT_END_NAMESPACE
class FtpView : public QWebView
{
diff --git a/examples/webkit/webplugin/csvfactory.h b/examples/webkit/webplugin/csvfactory.h
index 5a44c50..d1d6b9c 100644
--- a/examples/webkit/webplugin/csvfactory.h
+++ b/examples/webkit/webplugin/csvfactory.h
@@ -44,8 +44,10 @@
#include <QNetworkRequest>
#include <QWebPluginFactory>
+QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
class QNetworkReply;
+QT_END_NAMESPACE
class QWebView;
class CSVFactory : public QWebPluginFactory
diff --git a/examples/webkit/webplugin/csvview.h b/examples/webkit/webplugin/csvview.h
index bf8918b..4cbb069 100644
--- a/examples/webkit/webplugin/csvview.h
+++ b/examples/webkit/webplugin/csvview.h
@@ -46,8 +46,10 @@
#include <QTableView>
#include <QWebPluginFactory>
+QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
class QNetworkReply;
+QT_END_NAMESPACE
class QWebFrame;
//! [definition]
diff --git a/examples/widgets/orientation/mainwindow.h b/examples/widgets/orientation/mainwindow.h
index 400a6a5..29ccf06 100644
--- a/examples/widgets/orientation/mainwindow.h
+++ b/examples/widgets/orientation/mainwindow.h
@@ -41,13 +41,15 @@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
-#include <QWidget>
+#include <QAbstractButton>
#include "ui_landscape.h"
#include "ui_portrait.h"
class QAbstractButton;
+QT_BEGIN_NAMESPACE
+
//! [0]
class MainWindow : public QWidget
{
@@ -70,4 +72,6 @@ private:
};
//! [0]
+QT_END_NAMESPACE
+
#endif // MAINWINDOW_H
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index b19eece..61a6228 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -302,3 +302,10 @@ defineReplace(addLanguageDependentPkgItem) {
return($$join(pkgLanguageList,",",,))
}
+
+# Sometimes a relative path to original .pro file directory is necessary when doing shadow builds.
+defineReplace(relativeProPath) {
+ RELATIVE_PRO_FILE_PWD = $$replace(OUT_PWD, "^.:", "") # Lose drive letter if any
+ RELATIVE_PRO_FILE_PWD = $$replace(RELATIVE_PRO_FILE_PWD, "/[^/]*", "../")$$replace(_PRO_FILE_PWD_, "^[^/]*/", "")
+ return($$RELATIVE_PRO_FILE_PWD)
+}
diff --git a/mkspecs/features/help.prf b/mkspecs/features/help.prf
index 15685e7..99521af 100644
--- a/mkspecs/features/help.prf
+++ b/mkspecs/features/help.prf
@@ -1,4 +1,4 @@
INCLUDEPATH = $$QMAKE_INCDIR_QT/QtHelp $$INCLUDEPATH
-QT += xml sql
+QT += sql
qtAddLibrary(QtHelp)
diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
index 5baf7ce..9271de5 100644
--- a/mkspecs/features/qt_functions.prf
+++ b/mkspecs/features/qt_functions.prf
@@ -48,9 +48,7 @@ defineTest(qtAddLibrary) {
symbian {
isEqual(LIB_NAME, QtCore) {
#workaround for dependency from f32file.h on e32svr.h which has moved location in symbian3
- contains(SYMBIAN_VERSION, Symbian3) {
- INCLUDEPATH *= $$OS_LAYER_SYSTEMINCLUDE
- }
+ INCLUDEPATH *= $$OS_LAYER_SYSTEMINCLUDE
} else:isEqual(LIB_NAME, QtGui) {
# Needed for #include <QtGui> because qs60mainapplication.h includes aknapp.h
INCLUDEPATH *= $$MW_LAYER_SYSTEMINCLUDE
diff --git a/mkspecs/features/symbian/application_icon.prf b/mkspecs/features/symbian/application_icon.prf
index f058399..dc23428 100644
--- a/mkspecs/features/symbian/application_icon.prf
+++ b/mkspecs/features/symbian/application_icon.prf
@@ -45,9 +45,7 @@ contains(CONFIG, no_icon) {
# Note: symbian-sbsv2 builds can't utilize extra compiler for mifconv, so ICON handling is done in code
!symbian-sbsv2 {
# Absolute path required for shadow builds.
- # However, in older Symbian environments abld toolchain can't handle even moderately long
- # paths, so don't force absolute there.
- !symbian-abld:!contains(ICON, "^(/|\\\\|.:).*"):ICON = $$_PRO_FILE_PWD_/$$ICON
+ !contains(ICON, "^(/|\\\\|.:).*"):ICON = $$_PRO_FILE_PWD_/$$ICON
#Makefile: requires paths with backslash
ICON_backslashed = $$ICON
diff --git a/mkspecs/features/symbian/def_files.prf b/mkspecs/features/symbian/def_files.prf
index 746de6a..a78c74e 100644
--- a/mkspecs/features/symbian/def_files.prf
+++ b/mkspecs/features/symbian/def_files.prf
@@ -30,28 +30,32 @@ symbian-abld|symbian-sbsv2 {
# statements - they use the qmake generated statements instead
# Static libraries obviously don't have DEF files, as they don't take part in dynamic linkage
!contains(TEMPLATE, app):!contains(CONFIG, plugin):!contains(CONFIG, staticlib): {
+ # Symbian DEFFILE statements do not like drive letters, so remove it from the pro path.
+ FIXED_PRO_PATH = $$replace(_PRO_FILE_PWD_, "^.:", "")/
!isEmpty(DEF_FILE) {
+ contains(DEF_FILE,"^/.*"): FIXED_PRO_PATH =
defBlock = \
"$${LITERAL_HASH}ifdef WINSCW" \
- "DEFFILE $$DEF_FILE/bwins/$${clean_TARGET}.def" \
+ "DEFFILE $$FIXED_PRO_PATH$$DEF_FILE/bwins/$${clean_TARGET}.def" \
"$${LITERAL_HASH}elif defined EABI" \
- "DEFFILE $$DEF_FILE/eabi/$${clean_TARGET}.def" \
+ "DEFFILE $$FIXED_PRO_PATH$$DEF_FILE/eabi/$${clean_TARGET}.def" \
"$${LITERAL_HASH}endif"
} else:!isEmpty(defFilePath) {
+ contains(defFilePath,"^/.*"): FIXED_PRO_PATH =
defBlock = \
"$${LITERAL_HASH}ifdef WINSCW" \
- "DEFFILE $$defFilePath/bwins/$${clean_TARGET}.def" \
+ "DEFFILE $$FIXED_PRO_PATH$$defFilePath/bwins/$${clean_TARGET}.def" \
"$${LITERAL_HASH}elif defined EABI" \
- "DEFFILE $$defFilePath/eabi/$${clean_TARGET}.def" \
+ "DEFFILE $$FIXED_PRO_PATH$$defFilePath/eabi/$${clean_TARGET}.def" \
"$${LITERAL_HASH}endif"
} else {
# If defFilePath is not defined, then put the folders containing the DEF files at the
# same level as the .pro (and generated MMP) file(s)
defBlock = \
"$${LITERAL_HASH}ifdef WINSCW" \
- "DEFFILE ./bwins/$${clean_TARGET}.def" \
+ "DEFFILE $${FIXED_PRO_PATH}bwins/$${clean_TARGET}.def" \
"$${LITERAL_HASH}elif defined EABI" \
- "DEFFILE ./eabi/$${clean_TARGET}.def" \
+ "DEFFILE $${FIXED_PRO_PATH}eabi/$${clean_TARGET}.def" \
"$${LITERAL_HASH}endif"
}
MMP_RULES += defBlock
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 00f6b4a..7e14437 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -784,7 +784,7 @@ MakefileGenerator::init()
(*it) = Option::fixPathToLocalOS((*it));
}
- { //get the output_dir into the pwd
+ if(!project->isActiveConfig("no_include_pwd")) { //get the output_dir into the pwd
if(Option::output_dir != qmake_getpwd())
project->values("INCLUDEPATH").append(".");
}
@@ -1769,6 +1769,7 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
{
QString clean_targets;
const QStringList &quc = project->values("QMAKE_EXTRA_COMPILERS");
+ QDir outputDir(Option::output_dir);
for(QStringList::ConstIterator it = quc.begin(); it != quc.end(); ++it) {
QString tmp_out = fileFixify(project->values((*it) + ".output").first(),
Option::output_dir, Option::output_dir);
@@ -1960,9 +1961,11 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
QString cmd;
if (isForSymbianSbsv2()) {
// In sbsv2 the command inputs and outputs need to use absolute paths
- cmd = replaceExtraCompilerVariables(tmp_cmd,
- fileFixify(escapeFilePaths(inputs), FileFixifyAbsolute),
- fileFixify(QStringList(tmp_out), FileFixifyAbsolute));
+ QStringList absoluteInputs;
+ for (int i = 0; i < inputs.size(); ++i)
+ absoluteInputs.append(escapeFilePath(outputDir.absoluteFilePath(inputs.at(i))));
+ cmd = replaceExtraCompilerVariables(tmp_cmd, absoluteInputs,
+ QStringList(outputDir.absoluteFilePath(tmp_out)));
} else {
cmd = replaceExtraCompilerVariables(tmp_cmd, escapeFilePaths(inputs), QStringList(tmp_out));
}
@@ -1996,8 +1999,8 @@ MakefileGenerator::writeExtraCompilerTargets(QTextStream &t)
if (isForSymbianSbsv2()) {
// In sbsv2 the command inputs and outputs need to use absolute paths
cmd = replaceExtraCompilerVariables(tmp_cmd,
- fileFixify((*input), FileFixifyAbsolute),
- fileFixify(out, FileFixifyAbsolute));
+ outputDir.absoluteFilePath(*input),
+ outputDir.absoluteFilePath(out));
} else {
cmd = replaceExtraCompilerVariables(tmp_cmd, (*input), out);
}
diff --git a/qmake/generators/makefiledeps.cpp b/qmake/generators/makefiledeps.cpp
index d6dab0b..f9cbed1 100644
--- a/qmake/generators/makefiledeps.cpp
+++ b/qmake/generators/makefiledeps.cpp
@@ -499,7 +499,7 @@ bool QMakeSourceFileInfo::findDeps(SourceFile *file)
} else if(*(buffer+x) == '*') { //c style comment
for(++x; x < buffer_len; ++x) {
if(*(buffer+x) == '*') {
- if(x < buffer_len-1 && *(buffer + (x+1)) == '/') {
+ if(x+1 < buffer_len && *(buffer + (x+1)) == '/') {
++x;
break;
}
diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp
index d4db4b9..c9ffa11 100644
--- a/qmake/generators/symbian/symbiancommon.cpp
+++ b/qmake/generators/symbian/symbiancommon.cpp
@@ -503,9 +503,11 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile,
twf << wrapperStreamBuffer << endl;
// Wrapped files deployment
- QString currentPath = qmake_getpwd();
+ QString currentPath = Option::output_dir;
+ if (!currentPath.endsWith(QLatin1Char('/')))
+ currentPath += QLatin1Char('/');
QString sisName = QString("%1.sis").arg(fixedTarget);
- twf << "\"" << currentPath << "/" << sisName << "\" - \"!:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl;
+ twf << "\"" << currentPath << sisName << "\" - \"!:\\private\\2002CCCE\\import\\" << sisName << "\"" << endl;
QString bootStrapPath = QLibraryInfo::location(QLibraryInfo::PrefixPath);
bootStrapPath.append("/smartinstaller.sis");
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index bdba329..694bbfb 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -126,8 +126,7 @@ QString SymbianMakefileGenerator::absolutizePath(const QString& origPath)
if (resultPath.startsWith("/epoc32/", Qt::CaseInsensitive))
resultPath = QDir::fromNativeSeparators(qt_epocRoot()) + resultPath.mid(1);
- QFileInfo fi(fileInfo(resultPath));
-
+ QFileInfo fi(outputDir, resultPath);
// Since origPath can be something given in HEADERS, we need to check if we are dealing
// with a file or a directory. In case the origPath doesn't yet exist, isFile() returns
// false and we default to assuming it is a dir.
@@ -271,6 +270,8 @@ void SymbianMakefileGenerator::init()
MakefileGenerator::init();
SymbianCommonGenerator::init();
+ outputDir = QDir(Option::output_dir);
+
if (0 != project->values("QMAKE_PLATFORM").size())
platform = varGlue("QMAKE_PLATFORM", "", " ", "");
@@ -338,7 +339,6 @@ void SymbianMakefileGenerator::initMmpVariables()
srcpaths << project->values("UNUSED_SOURCES") << project->values("UI_SOURCES_DIR");
srcpaths << project->values("UI_DIR");
- QDir current = QDir::current();
QString absolutizedCurrent = absolutizePath(".");
for (int j = 0; j < srcpaths.size(); ++j) {
@@ -373,12 +373,12 @@ void SymbianMakefileGenerator::initMmpVariables()
QStringList temporary;
for (int i = 0; i < sysincspaths.size(); ++i) {
QString origPath = sysincspaths.at(i);
- QFileInfo origPathInfo(fileInfo(origPath));
+ QFileInfo origPathInfo(outputDir, origPath);
bool bFound = false;
for (int j = 0; j < temporary.size(); ++j) {
QString tmpPath = temporary.at(j);
- QFileInfo tmpPathInfo(fileInfo(tmpPath));
+ QFileInfo tmpPathInfo(outputDir, tmpPath);
if (origPathInfo.absoluteFilePath() == tmpPathInfo.absoluteFilePath()) {
bFound = true;
@@ -515,14 +515,12 @@ void SymbianMakefileGenerator::writeMmpFile(QString &filename, const SymbianLoca
writeMmpFileIncludePart(t);
- QDir current = QDir::current();
-
for (QMap<QString, QStringList>::iterator it = sources.begin(); it != sources.end(); ++it) {
QStringList values = it.value();
QString currentSourcePath = it.key();
if (values.size())
- t << "SOURCEPATH \t" << fixPathForMmp(currentSourcePath, current) << endl;
+ t << "SOURCEPATH \t" << fixPathForMmp(currentSourcePath, Option::output_dir) << endl;
for (int i = 0; i < values.size(); ++i) {
QString sourceFileName = values.at(i);
@@ -709,13 +707,11 @@ void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, const Sy
void SymbianMakefileGenerator::writeMmpFileSystemIncludePart(QTextStream& t)
{
- QDir current = QDir::current();
-
for (QMap<QString, QStringList>::iterator it = systeminclude.begin(); it != systeminclude.end(); ++it) {
QStringList values = it.value();
for (int i = 0; i < values.size(); ++i) {
QString handledPath = values.at(i);
- t << "SYSTEMINCLUDE\t\t" << fixPathForMmp(handledPath, current) << endl;
+ t << "SYSTEMINCLUDE\t\t" << fixPathForMmp(handledPath, Option::output_dir) << endl;
}
}
@@ -1105,7 +1101,7 @@ void SymbianMakefileGenerator::generateDistcleanTargets(QTextStream& t)
fromFile = item.endsWith(Option::pro_ext);
fixedItem = item;
}
- QFileInfo fi(fileInfo(fixedItem));
+ QFileInfo fi(outputDir, fixedItem);
if (!fromFile) {
t << "\t-$(MAKE) -f \"" << Option::fixPathToTargetOS(fi.absoluteFilePath() + "/Makefile") << "\" dodistclean" << endl;
} else {
@@ -1118,19 +1114,19 @@ void SymbianMakefileGenerator::generateDistcleanTargets(QTextStream& t)
}
- generatedFiles << Option::fixPathToTargetOS(fileInfo(Option::output.fileName()).absoluteFilePath()); // bld.inf
+ generatedFiles << Option::output.fileName(); // bld.inf
generatedFiles << project->values("QMAKE_INTERNAL_PRL_FILE"); // Add generated prl files for cleanup
generatedFiles << project->values("QMAKE_DISTCLEAN"); // Add any additional files marked for distclean
QStringList fixedFiles;
QStringList fixedDirs;
foreach(QString item, generatedFiles) {
- QString fixedItem = Option::fixPathToTargetOS(fileInfo(item).absoluteFilePath());
+ QString fixedItem = Option::fixPathToTargetOS(outputDir.absoluteFilePath(item));
if (!fixedFiles.contains(fixedItem)) {
fixedFiles << fixedItem;
}
}
foreach(QString item, generatedDirs) {
- QString fixedItem = Option::fixPathToTargetOS(fileInfo(item).absoluteFilePath());
+ QString fixedItem = Option::fixPathToTargetOS(outputDir.absoluteFilePath(item));
if (!fixedDirs.contains(fixedItem)) {
fixedDirs << fixedItem;
}
diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h
index 053b275..1dfb102 100644
--- a/qmake/generators/symbian/symmake.h
+++ b/qmake/generators/symbian/symmake.h
@@ -66,6 +66,7 @@ protected:
// (output file) (source , command)
QMap<QString, QStringList> makmakeCommands;
QStringList overriddenMmpKeywords;
+ QDir outputDir;
QString fixPathForMmp(const QString& origPath, const QDir& parentDir);
QString absolutizePath(const QString& origPath);
diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp
index 7863dca..7026355 100644
--- a/qmake/generators/symbian/symmake_abld.cpp
+++ b/qmake/generators/symbian/symmake_abld.cpp
@@ -70,7 +70,8 @@ SymbianAbldMakefileGenerator::~SymbianAbldMakefileGenerator() { }
void SymbianAbldMakefileGenerator::writeMkFile(const QString& wrapperFileName, bool deploymentOnly)
{
- QFile ft(gnuMakefileName);
+ QString mkFullPath = Option::output_dir + QLatin1Char('/') + gnuMakefileName;
+ QFile ft(mkFullPath);
if (ft.open(QIODevice::WriteOnly)) {
generatedFiles << ft.fileName();
QTextStream t(&ft);
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index 78a9024..cc32f8d 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -624,11 +624,11 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
// are not necessary.
QStringList allPreDeps;
foreach(QString item, project->values("PRE_TARGETDEPS")) {
- allPreDeps.append(fileInfo(item).absoluteFilePath());
+ allPreDeps.append(QDir::cleanPath(outputDir.absoluteFilePath(item)));
}
foreach (QString item, project->values("GENERATED_SOURCES")) {
- allPreDeps.append(fileInfo(item).absoluteFilePath());
+ allPreDeps.append(QDir::cleanPath(outputDir.absoluteFilePath(item)));
}
for (QMap<QString, QStringList>::iterator it = sources.begin(); it != sources.end(); ++it) {
@@ -638,7 +638,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
QString sourceFile = currentSourcePath + "/" + values.at(i);
QStringList deps = findDependencies(QDir::toNativeSeparators(sourceFile));
foreach(QString depItem, deps) {
- appendIfnotExist(allPreDeps, fileInfo(depItem).absoluteFilePath());
+ appendIfnotExist(allPreDeps, QDir::cleanPath(outputDir.absoluteFilePath(depItem)));
}
}
}
@@ -649,7 +649,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
foreach(QString item, extraTargets) {
foreach(QString targetItem, project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_TARGETS.") + item)) {
// Make sure targetpath is absolute
- QString absoluteTarget = fileInfo(targetItem).absoluteFilePath();
+ QString absoluteTarget = QDir::cleanPath(outputDir.absoluteFilePath(targetItem));
if (allPreDeps.contains(absoluteTarget)) {
QStringList deps = project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_DEPS.") + item + targetItem);
QString commandItem = project->values(QLatin1String("QMAKE_INTERNAL_ET_PARSED_CMD.") + item + targetItem).join(" ");
@@ -658,7 +658,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
QString absoluteDeps;
foreach (QString depItem, deps) {
if (!depItem.isEmpty()) {
- absoluteDeps.append(fileInfo(depItem).absoluteFilePath());
+ absoluteDeps.append(QDir::cleanPath(outputDir.absoluteFilePath(depItem)));
absoluteDeps.append(" ");
}
}
@@ -723,9 +723,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
QFileInfo iconInfo = fileInfo(icon);
- QFileInfo bldinf(project->values("MAKEFILE").first());
- QString iconPath = bldinf.dir().relativeFilePath(iconInfo.path());
-
+ QString iconPath = outputDir.relativeFilePath(iconInfo.absolutePath());
QString iconFile = iconInfo.baseName();
QFileInfo iconTargetInfo = fileInfo(iconTargetFile);
@@ -747,11 +745,10 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
if (!cleanFiles.isEmpty()) {
QStringList absoluteCleanFiles;
foreach (QString cleanFile, cleanFiles) {
- QFileInfo fi(cleanFile);
QString fileName = QLatin1String("\"");
- fileName.append(fi.absoluteFilePath());
+ fileName.append(QDir::cleanPath(outputDir.absoluteFilePath(cleanFile)));
fileName.append(QLatin1String("\""));
- absoluteCleanFiles << fileName;
+ absoluteCleanFiles << fileName;
}
t << "START EXTENSION qt/qmake_clean" << endl;
t << "OPTION CLEAN_FILES " << absoluteCleanFiles.join(" ") << endl;
diff --git a/src/3rdparty/webkit/.tag b/src/3rdparty/webkit/.tag
index a560e52..458898a 100644
--- a/src/3rdparty/webkit/.tag
+++ b/src/3rdparty/webkit/.tag
@@ -1 +1 @@
-dda59e50379214c098f365a39c4d64b39ced427e
+a2bd2bb1b19949c6807da38e25bfa7d210bb4b17
diff --git a/src/3rdparty/webkit/ChangeLog b/src/3rdparty/webkit/ChangeLog
index 5f97e57..bc11b4d 100644
--- a/src/3rdparty/webkit/ChangeLog
+++ b/src/3rdparty/webkit/ChangeLog
@@ -1,26 +1,3 @@
-2011-08-26 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
-
- [Qt] libwebcore.a source is compiled without -fvisibility=hidden
- -fvisibility-inlines-hidden
- https://bugs.webkit.org/show_bug.cgi?id=65470
-
- Patch by Holger Freyther <zecke@selfish.org>
- Rubberstamped by Andreas Kling.
-
- (qtwebkit-2.2 only by now)
-
- WTF_USE_EXPORT_MACROS is still not enabled on trunk because there are
- pending issues with WebKit2, but it appears to be safe to enable this
- on QtWebKit, so this change is being added to the qtwebkit-2.2 branch.
-
- The patch also adds CONFIG += hide_symbols and on Unix, +=
- bsymbolic_functions, which should help reduce the library binary size.
-
- Testing this is quite easy, so if there's any problem we'll soon
- know. :-)
-
- * Source/WebKit.pri:
-
2011-08-06 Aron Rosenberg <arosenberg@logitech.com>
Reviewed by Benjamin Poulain.
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog b/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog
index 010e66a..5aec2e3 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/ChangeLog
@@ -1,23 +1,36 @@
-2011-08-26 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
+2011-08-30 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
- [Qt] libwebcore.a source is compiled without -fvisibility=hidden
- -fvisibility-inlines-hidden
- https://bugs.webkit.org/show_bug.cgi?id=65470
+ [Qt] Do not unconditionally use pkg-config in .pro files
+ https://bugs.webkit.org/show_bug.cgi?id=67055
- Patch by Holger Freyther <zecke@selfish.org>
- Rubberstamped by Andreas Kling.
+ Reviewed by Andreas Kling.
+
+ Original patch from Rohan McGovern <rohan.mcgovern@nokia.com>
+
+ Using the first pkg-config in PATH is prone to errors when cross
+ compiling inside the Qt repository (using Qt's build-system).
+
+ This patch protect calls for pkg-config with
+ !contains(QT_CONFIG, no-pkg-config). no-pkg-config is added to
+ QT_CONFIG by Qt's 'configure' when cross-compiling on systems
+ without pkg-config.
- (qtwebkit-2.2 only by now)
+ The respective change in Qt's configure has been submited already.
- WTF_USE_EXPORT_MACROS is still not enabled on trunk because there are
- pending issues with WebKit2, but it appears to be safe to enable this
- on QtWebKit, so this change is being added to the qtwebkit-2.2 branch.
+ No new tests as this is just a build change.
- The patch also adds CONFIG += hide_symbols and on Unix, +=
- bsymbolic_functions, which should help reduce the library binary size.
+ * wtf/wtf.pri: protect pkg-config calls
+
+2011-08-28 Jonathan Liu <net147@gmail.com>
+
+ Fix build error when compiling with MinGW-w64 by disabling JIT
+ on Windows 64-bit
+ https://bugs.webkit.org/show_bug.cgi?id=61235
+
+ Reviewed by Gavin Barraclough.
- Testing this is quite easy, so if there's any problem we'll soon
- know. :-)
+ The fixed mmap executable allocator for JIT on x86_64 requires
+ sys/mman.h which is not available on Windows.
* wtf/Platform.h:
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h
index 8309acc..a8298c4 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/Platform.h
@@ -1014,8 +1014,8 @@
#define ENABLE_JIT 0
#endif
-/* JIT is not implemented for 64 bit on MSVC */
-#if !defined(ENABLE_JIT) && COMPILER(MSVC) && CPU(X86_64)
+/* JIT is not implemented for Windows 64-bit */
+#if !defined(ENABLE_JIT) && OS(WINDOWS) && CPU(X86_64)
#define ENABLE_JIT 0
#endif
@@ -1221,11 +1221,7 @@
since most ports try to support sub-project independence, adding new headers
to WTF causes many ports to break, and so this way we can address the build
breakages one port at a time. */
-#if PLATFORM(QT)
-#define WTF_USE_EXPORT_MACROS 1
-#else
#define WTF_USE_EXPORT_MACROS 0
-#endif
#if PLATFORM(QT) || PLATFORM(GTK)
#define WTF_USE_UNIX_DOMAIN_SOCKETS 1
diff --git a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/wtf.pri b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/wtf.pri
index 5af613e..ccc2f60 100644
--- a/src/3rdparty/webkit/Source/JavaScriptCore/wtf/wtf.pri
+++ b/src/3rdparty/webkit/Source/JavaScriptCore/wtf/wtf.pri
@@ -42,7 +42,7 @@ SOURCES += \
wtf/unicode/UTF8.cpp
linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
- !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10) {
+ !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10): {
DEFINES += ENABLE_GLIB_SUPPORT=1
PKGCONFIG += glib-2.0 gio-2.0
CONFIG += link_pkgconfig
diff --git a/src/3rdparty/webkit/Source/WebCore/ChangeLog b/src/3rdparty/webkit/Source/WebCore/ChangeLog
index 41d2ba7..a781b1f 100644
--- a/src/3rdparty/webkit/Source/WebCore/ChangeLog
+++ b/src/3rdparty/webkit/Source/WebCore/ChangeLog
@@ -1,3 +1,170 @@
+2011-08-30 Abhishek Arya <inferno@chromium.org>
+
+ Removed m_owner accessed in custom scrollbars.
+ https://bugs.webkit.org/show_bug.cgi?id=64737
+
+ Reviewed by David Hyatt.
+
+ Problem does not reproduce in DRT, even with Eventhandler tricks
+ and gc(). So, adding a manual test.
+
+ * manual-tests/custom-scrollbar-renderer-removed-crash.html: Added.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::clearOwningRendererForCustomScrollbars):
+ * page/FrameView.h:
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::willBeDestroyed): when this renderbox is getting
+ destroyed, clear the custom scrollbar in this frameview having this renderbox
+ as its owning renderer.
+ * rendering/RenderScrollbar.cpp:
+ (WebCore::RenderScrollbar::getScrollbarPseudoStyle): fix the null check.
+
+2011-09-04 Abhishek Arya <inferno@chromium.org>
+
+ Crash in Range::processAncestorsAndTheirSiblings.
+ https://bugs.webkit.org/show_bug.cgi?id=67556
+
+ Reviewed by Ryosuke Niwa.
+
+ Create a temporary RefPtr Node vector to keep all the ancestor's
+ childs so that we don't access removed child nodes.
+
+ Test: fast/dom/Range/range-delete-contents-event-fire-crash.html
+
+ * dom/Range.cpp:
+ (WebCore::Range::processContents):
+ (WebCore::Range::processAncestorsAndTheirSiblings):
+
+2011-08-30 Adam Barth <abarth@webkit.org>
+
+ Flaky crash with JavaScript URLs
+ https://bugs.webkit.org/show_bug.cgi?id=66360
+
+ Reviewed by Nate Chapin.
+
+ This patch teaches DocumentWriter::begin to make a copy of the URL
+ before beginning a new document to avoid a crash.
+
+ Test: fast/loader/javascript-url-iframe-crash.html
+
+ * loader/DocumentWriter.cpp:
+ (WebCore::DocumentWriter::begin):
+
+2011-08-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Emit last progress notification before calling dispatchDidFinishLoad
+ https://bugs.webkit.org/show_bug.cgi?id=28851
+
+ Reviewed by Adam Barth.
+
+ Original patch by Xan Lopez. Change FrameLoader to dispatch the notifications in
+ a more natural sequence.
+
+ Test: http/tests/loading/progress-finished-callback.html
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
+
+2011-08-22 Nate Chapin <japhet@chromium.org>
+
+ Unload events can crash us when they blank out
+ a parent frame.
+ https://bugs.webkit.org/show_bug.cgi?id=64741
+
+ Reviewed by Adam Barth.
+
+ Test: fast/loader/document-destruction-within-unload.html
+
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::stopLoading): Prevent unload events
+ from going into infinite recursion.
+ (WebCore::FrameLoader::setDocumentLoader): Ensure we don't
+ let set m_documentLoader to a DocumentLoader with a null Frame*.
+ (WebCore::FrameLoader::detachChildren): Save off a vector of
+ children to detach, rather than doing it inline.
+
+2011-08-30 Abhishek Arya <inferno@chromium.org>
+
+ Style not updated for table parts in :before, :after content.
+ https://bugs.webkit.org/show_bug.cgi?id=66141
+
+ Reviewed by Dave Hyatt.
+
+ Tests: fast/table/table-before-child-style-update.html
+ fast/table/table-row-before-child-style-update.html
+
+ * rendering/RenderObjectChildList.cpp:
+ (WebCore::RenderObjectChildList::updateBeforeAfterContent):
+
+2011-08-25 Abhishek Arya <inferno@chromium.org>
+
+ Incorrect layout of :before and :after content, with display
+ table, table-row and table-cell.
+ https://bugs.webkit.org/show_bug.cgi?id=66699
+
+ Reviewed by David Hyatt.
+
+ Tests: fast/table/table-after-child-in-table.html
+ fast/table/table-before-child-in-table.html
+ fast/table/table-cell-after-child-in-block.html
+ fast/table/table-cell-after-child-in-table.html
+ fast/table/table-cell-before-child-in-block.html
+ fast/table/table-cell-before-child-in-table.html
+ fast/table/table-row-after-child-in-block.html
+ fast/table/table-row-after-child-in-table.html
+ fast/table/table-row-before-child-in-block.html
+ fast/table/table-row-before-child-in-table.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
+ Fix the looping condition to detect :after child correctly.
+ isAnonymousBlock() does not apply to tables, instead
+ using isAnonymous().
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::addChild): Don't add the new child
+ in the generatedContainer with :before, :after content.
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::addChild): Don't add the new child
+ in the generatedContainer with :before, :after content.
+
+2011-08-29 Abhishek Arya <inferno@chromium.org>
+
+ Crash in InlineBox::deleteLine due to accessing removed
+ renderer.
+ https://bugs.webkit.org/show_bug.cgi?id=66015
+
+ Reviewed by Simon Fraser.
+
+ Test: fast/block/line-layout/inline-box-wrapper-crash.html
+
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::positionLineBox): Make sure that the
+ previous inline box wrapper is destroyed properly, before
+ setting a new one.
+
+2011-08-30 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
+
+ [Qt] Do not unconditionally use pkg-config in .pro files
+ https://bugs.webkit.org/show_bug.cgi?id=67055
+
+ Reviewed by Andreas Kling.
+
+ Original patch from Rohan McGovern <rohan.mcgovern@nokia.com>
+
+ Using the first pkg-config in PATH is prone to errors when cross
+ compiling inside the Qt repository (using Qt's build-system).
+
+ This patch protect calls for pkg-config with
+ !contains(QT_CONFIG, no-pkg-config). no-pkg-config is added to
+ QT_CONFIG by Qt's 'configure' when cross-compiling on systems
+ without pkg-config.
+
+ The respective change in Qt's configure has been submited already.
+
+ No new tests as this is just a build change.
+
+ * features.pri: protect pkg-config calls
+
2011-08-25 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
[Qt] Enable password echo on Symbian builds
diff --git a/src/3rdparty/webkit/Source/WebCore/dom/Range.cpp b/src/3rdparty/webkit/Source/WebCore/dom/Range.cpp
index 0c247c2..4f8ad85 100644
--- a/src/3rdparty/webkit/Source/WebCore/dom/Range.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/dom/Range.cpp
@@ -51,6 +51,8 @@ using namespace std;
static WTF::RefCountedLeakCounter rangeCounter("Range");
#endif
+typedef Vector<RefPtr<Node> > NodeVector;
+
inline Range::Range(PassRefPtr<Document> ownerDocument)
: m_ownerDocument(ownerDocument)
, m_start(m_ownerDocument)
@@ -665,8 +667,6 @@ static inline unsigned lengthOfContentsInNode(Node* node)
PassRefPtr<DocumentFragment> Range::processContents(ActionType action, ExceptionCode& ec)
{
- typedef Vector<RefPtr<Node> > NodeVector;
-
RefPtr<DocumentFragment> fragment;
if (action == EXTRACT_CONTENTS || action == CLONE_CONTENTS)
fragment = DocumentFragment::create(m_ownerDocument.get());
@@ -880,9 +880,14 @@ PassRefPtr<Node> Range::processAncestorsAndTheirSiblings(ActionType action, Node
// FIXME: This assertion may fail if DOM is modified during mutation event
// FIXME: Share code with Range::processNodes
ASSERT(!firstChildInAncestorToProcess || firstChildInAncestorToProcess->parentNode() == ancestor);
- RefPtr<Node> next;
- for (Node* child = firstChildInAncestorToProcess.get(); child; child = next.get()) {
- next = direction == ProcessContentsForward ? child->nextSibling() : child->previousSibling();
+
+ NodeVector nodes;
+ for (Node* child = firstChildInAncestorToProcess.get(); child;
+ child = (direction == ProcessContentsForward) ? child->nextSibling() : child->previousSibling())
+ nodes.append(child);
+
+ for (NodeVector::const_iterator it = nodes.begin(); it != nodes.end(); it++) {
+ Node* child = it->get();
switch (action) {
case DELETE_CONTENTS:
ancestor->removeChild(child, ec);
diff --git a/src/3rdparty/webkit/Source/WebCore/features.pri b/src/3rdparty/webkit/Source/WebCore/features.pri
index 3e397a1..f04d0b4 100644
--- a/src/3rdparty/webkit/Source/WebCore/features.pri
+++ b/src/3rdparty/webkit/Source/WebCore/features.pri
@@ -168,7 +168,7 @@ symbian|maemo5|maemo6 {
DEFINES += WTF_USE_QTKIT=1
DEFINES -= WTF_USE_QTKIT=0
} else: linux-*:!contains(DEFINES, USE_QTMULTIMEDIA=1) {
- !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10) {
+ !contains(QT_CONFIG, no-pkg-config):system(pkg-config --exists glib-2.0 gio-2.0 gstreamer-0.10): {
DEFINES -= ENABLE_VIDEO=0
DEFINES += ENABLE_VIDEO=1
DEFINES += WTF_USE_GSTREAMER=1
diff --git a/src/3rdparty/webkit/Source/WebCore/loader/DocumentWriter.cpp b/src/3rdparty/webkit/Source/WebCore/loader/DocumentWriter.cpp
index 2fc02d1..cbce0d3 100644
--- a/src/3rdparty/webkit/Source/WebCore/loader/DocumentWriter.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/loader/DocumentWriter.cpp
@@ -106,12 +106,17 @@ PassRefPtr<Document> DocumentWriter::createDocument(const KURL& url)
return DOMImplementation::createDocument(m_mimeType, m_frame, url, m_frame->inViewSourceMode());
}
-void DocumentWriter::begin(const KURL& url, bool dispatch, SecurityOrigin* origin)
+void DocumentWriter::begin(const KURL& urlReference, bool dispatch, SecurityOrigin* origin)
{
// We need to take a reference to the security origin because |clear|
// might destroy the document that owns it.
RefPtr<SecurityOrigin> forcedSecurityOrigin = origin;
+ // We grab a local copy of the URL because it's easy for callers to supply
+ // a URL that will be deallocated during the execution of this function.
+ // For example, see <https://bugs.webkit.org/show_bug.cgi?id=66360>.
+ KURL url = urlReference;
+
// Create a new document before clearing the frame, because it may need to
// inherit an aliased security context.
RefPtr<Document> document = createDocument(url);
diff --git a/src/3rdparty/webkit/Source/WebCore/loader/FrameLoader.cpp b/src/3rdparty/webkit/Source/WebCore/loader/FrameLoader.cpp
index 1b046b3..4bef249 100644
--- a/src/3rdparty/webkit/Source/WebCore/loader/FrameLoader.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/loader/FrameLoader.cpp
@@ -1880,6 +1880,20 @@ void FrameLoader::setDocumentLoader(DocumentLoader* loader)
m_documentLoader->detachFromFrame();
m_documentLoader = loader;
+
+ // The following abomination is brought to you by the unload event.
+ // The detachChildren() call above may trigger a child frame's unload event,
+ // which could do something obnoxious like call document.write("") on
+ // the main frame, which results in detaching children while detaching children.
+ // This can cause the new m_documentLoader to be detached from its Frame*, but still
+ // be alive. To make matters worse, DocumentLoaders with a null Frame* aren't supposed
+ // to happen when they're still alive (and many places below us on the stack think the
+ // DocumentLoader is still usable). Ergo, we reattach loader to its Frame, and pretend
+ // like nothing ever happened.
+ if (m_documentLoader && !m_documentLoader->frame()) {
+ ASSERT(!m_documentLoader->isLoading());
+ m_documentLoader->setFrame(m_frame);
+ }
}
void FrameLoader::setPolicyDocumentLoader(DocumentLoader* loader)
@@ -2506,14 +2520,15 @@ void FrameLoader::checkLoadCompleteForThisFrame()
if (m_stateMachine.creatingInitialEmptyDocument() || !m_stateMachine.committedFirstRealDocumentLoad())
return;
+ if (Page* page = m_frame->page())
+ page->progress()->progressCompleted(m_frame);
+
const ResourceError& error = dl->mainDocumentError();
if (!error.isNull())
m_client->dispatchDidFailLoad(error);
else
m_client->dispatchDidFinishLoad();
- if (Page* page = m_frame->page())
- page->progress()->progressCompleted(m_frame);
return;
}
@@ -2589,12 +2604,14 @@ void FrameLoader::frameLoadCompleted()
void FrameLoader::detachChildren()
{
- // FIXME: Is it really necessary to do this in reverse order?
- Frame* previous;
- for (Frame* child = m_frame->tree()->lastChild(); child; child = previous) {
- previous = child->tree()->previousSibling();
- child->loader()->detachFromParent();
- }
+ typedef Vector<RefPtr<Frame> > FrameVector;
+ FrameVector childrenToDetach;
+ childrenToDetach.reserveCapacity(m_frame->tree()->childCount());
+ for (Frame* child = m_frame->tree()->lastChild(); child; child = child->tree()->previousSibling())
+ childrenToDetach.append(child);
+ FrameVector::iterator end = childrenToDetach.end();
+ for (FrameVector::iterator it = childrenToDetach.begin(); it != end; it++)
+ (*it)->loader()->detachFromParent();
}
void FrameLoader::closeAndRemoveChild(Frame* child)
diff --git a/src/3rdparty/webkit/Source/WebCore/page/FrameView.cpp b/src/3rdparty/webkit/Source/WebCore/page/FrameView.cpp
index 3dadbf3..ef72fb7 100644
--- a/src/3rdparty/webkit/Source/WebCore/page/FrameView.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/page/FrameView.cpp
@@ -2277,6 +2277,23 @@ bool FrameView::hasCustomScrollbars() const
return false;
}
+void FrameView::clearOwningRendererForCustomScrollbars(RenderBox* box)
+{
+ const HashSet<RefPtr<Widget> >* viewChildren = children();
+ HashSet<RefPtr<Widget> >::const_iterator end = viewChildren->end();
+ for (HashSet<RefPtr<Widget> >::const_iterator current = viewChildren->begin(); current != end; ++current) {
+ Widget* widget = current->get();
+ if (widget->isScrollbar()) {
+ Scrollbar* scrollbar = static_cast<Scrollbar*>(widget);
+ if (scrollbar->isCustomScrollbar()) {
+ RenderScrollbar* customScrollbar = toRenderScrollbar(scrollbar);
+ if (customScrollbar->owningRenderer() == box)
+ customScrollbar->clearOwningRenderer();
+ }
+ }
+ }
+}
+
FrameView* FrameView::parentFrameView() const
{
if (Widget* parentView = parent()) {
diff --git a/src/3rdparty/webkit/Source/WebCore/page/FrameView.h b/src/3rdparty/webkit/Source/WebCore/page/FrameView.h
index fafebfe..b151cfc 100644
--- a/src/3rdparty/webkit/Source/WebCore/page/FrameView.h
+++ b/src/3rdparty/webkit/Source/WebCore/page/FrameView.h
@@ -267,6 +267,8 @@ public:
virtual bool shouldSuspendScrollAnimations() const;
+ void clearOwningRendererForCustomScrollbars(RenderBox*);
+
protected:
virtual bool scrollContentsFastPath(const IntSize& scrollDelta, const IntRect& rectToScroll, const IntRect& clipRect);
virtual void scrollContentsSlowPath(const IntRect& updateRect);
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp
index 39c0469..df30adb 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderBlock.cpp
@@ -665,10 +665,10 @@ void RenderBlock::addChildIgnoringAnonymousColumnBlocks(RenderObject* newChild,
// Make sure we don't append things after :after-generated content if we have it.
if (!beforeChild) {
RenderObject* lastRenderer = lastChild();
- if (isAfterContent(lastRenderer))
+ while (lastRenderer && lastRenderer->isAnonymous() && !isAfterContent(lastRenderer))
+ lastRenderer = lastRenderer->lastChild();
+ if (lastRenderer && isAfterContent(lastRenderer))
beforeChild = lastRenderer;
- else if (lastRenderer && lastRenderer->isAnonymousBlock() && isAfterContent(lastRenderer->lastChild()))
- beforeChild = lastRenderer->lastChild();
}
// If the requested beforeChild is not one of our children, then this is because
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderBox.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderBox.cpp
index 9c2aa48..f052ee7 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderBox.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderBox.cpp
@@ -204,6 +204,11 @@ void RenderBox::destroy()
if (style() && (style()->logicalHeight().isPercent() || style()->logicalMinHeight().isPercent() || style()->logicalMaxHeight().isPercent()))
RenderBlock::removePercentHeightDescendant(this);
+ // If this renderer is owning renderer for the frameview's custom scrollbars,
+ // we need to clear it from the scrollbar. See webkit bug 64737.
+ if (style() && style()->hasPseudoStyle(SCROLLBAR) && frame() && frame()->view())
+ frame()->view()->clearOwningRendererForCustomScrollbars(this);
+
RenderBoxModelObject::destroy();
}
@@ -1372,6 +1377,8 @@ void RenderBox::positionLineBox(InlineBox* box)
box->destroy(renderArena());
} else if (isReplaced()) {
setLocation(lroundf(box->x()), lroundf(box->y()));
+ if (m_inlineBoxWrapper)
+ deleteLineBoxWrapper();
m_inlineBoxWrapper = box;
}
}
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderObjectChildList.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderObjectChildList.cpp
index ff9ff15..a6c2da9 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderObjectChildList.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderObjectChildList.cpp
@@ -388,6 +388,21 @@ void RenderObjectChildList::updateBeforeAfterContent(RenderObject* owner, Pseudo
if (!beforeAfterParent)
return;
+ // When beforeAfterParent is not equal to child (e.g. in tables),
+ // we need to create new styles inheriting from pseudoElementStyle
+ // on all the intermediate parents (leaving their display same).
+ if (beforeAfterParent != child) {
+ RenderObject* curr = beforeAfterParent;
+ while (curr && curr != child) {
+ ASSERT(curr->isAnonymous());
+ RefPtr<RenderStyle> newStyle = RenderStyle::create();
+ newStyle->inheritFrom(pseudoElementStyle);
+ newStyle->setDisplay(curr->style()->display());
+ curr->setStyle(newStyle);
+ curr = curr->parent();
+ }
+ }
+
// Note that if we ever support additional types of generated content (which should be way off
// in the future), this code will need to be patched.
for (RenderObject* genChild = beforeAfterParent->firstChild(); genChild; genChild = genChild->nextSibling()) {
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderScrollbar.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderScrollbar.cpp
index 962024c..7a75b2e 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderScrollbar.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderScrollbar.cpp
@@ -149,7 +149,7 @@ ScrollbarPart RenderScrollbar::partForStyleResolve()
PassRefPtr<RenderStyle> RenderScrollbar::getScrollbarPseudoStyle(ScrollbarPart partType, PseudoId pseudoId)
{
- if (!m_owner)
+ if (!owningRenderer())
return 0;
s_styleResolvePart = partType;
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableRow.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableRow.cpp
index 2edcfc4..dd44577 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableRow.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableRow.cpp
@@ -90,7 +90,7 @@ void RenderTableRow::addChild(RenderObject* child, RenderObject* beforeChild)
RenderObject* last = beforeChild;
if (!last)
last = lastChild();
- if (last && last->isAnonymous() && last->isTableCell()) {
+ if (last && last->isAnonymous() && last->isTableCell() && !isAfterContent(last) && !isBeforeContent(last)) {
if (beforeChild == last)
beforeChild = last->firstChild();
last->addChild(child, beforeChild);
@@ -98,7 +98,7 @@ void RenderTableRow::addChild(RenderObject* child, RenderObject* beforeChild)
}
// If beforeChild is inside an anonymous cell, insert into the cell.
- if (last && !last->isTableCell() && last->parent() && last->parent()->isAnonymous()) {
+ if (last && !last->isTableCell() && last->parent() && last->parent()->isAnonymous() && !isAfterContent(last->parent()) && !isBeforeContent(last->parent())) {
last->parent()->addChild(child, beforeChild);
return;
}
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableSection.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableSection.cpp
index 6b080b8..3f84404 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableSection.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderTableSection.cpp
@@ -96,7 +96,7 @@ void RenderTableSection::addChild(RenderObject* child, RenderObject* beforeChild
RenderObject* last = beforeChild;
if (!last)
last = lastChild();
- if (last && last->isAnonymous()) {
+ if (last && last->isAnonymous() && !isAfterContent(last) && !isBeforeContent(last)) {
if (beforeChild == last)
beforeChild = last->firstChild();
last->addChild(child, beforeChild);
@@ -108,7 +108,7 @@ void RenderTableSection::addChild(RenderObject* child, RenderObject* beforeChild
RenderObject* lastBox = last;
while (lastBox && lastBox->parent()->isAnonymous() && !lastBox->isTableRow())
lastBox = lastBox->parent();
- if (lastBox && lastBox->isAnonymous()) {
+ if (lastBox && lastBox->isAnonymous() && !isAfterContent(lastBox) && !isBeforeContent(lastBox)) {
lastBox->addChild(child, beforeChild);
return;
}
diff --git a/src/3rdparty/webkit/Source/WebCore/rendering/RenderWidget.cpp b/src/3rdparty/webkit/Source/WebCore/rendering/RenderWidget.cpp
index 97444cd..5a00374 100644
--- a/src/3rdparty/webkit/Source/WebCore/rendering/RenderWidget.cpp
+++ b/src/3rdparty/webkit/Source/WebCore/rendering/RenderWidget.cpp
@@ -143,6 +143,11 @@ void RenderWidget::destroy()
if (style() && (style()->logicalHeight().isPercent() || style()->logicalMinHeight().isPercent() || style()->logicalMaxHeight().isPercent()))
RenderBlock::removePercentHeightDescendant(this);
+ // If this renderer is owning renderer for the frameview's custom scrollbars,
+ // we need to clear it from the scrollbar. See webkit bug 64737.
+ if (style() && style()->hasPseudoStyle(SCROLLBAR) && frame() && frame()->view())
+ frame()->view()->clearOwningRendererForCustomScrollbars(this);
+
if (hasLayer()) {
layer()->clearClipRects();
setHasLayer(false);
diff --git a/src/3rdparty/webkit/Source/WebKit.pri b/src/3rdparty/webkit/Source/WebKit.pri
index be1c7b7..5bd9577 100644
--- a/src/3rdparty/webkit/Source/WebKit.pri
+++ b/src/3rdparty/webkit/Source/WebKit.pri
@@ -2,9 +2,6 @@
contains(QT_CONFIG, qpa)|contains(QT_CONFIG, embedded): CONFIG += embedded
-contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
-unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
-
# Detect that we are building as a standalone package by the presence of
# either the generated files directory or as part of the Qt package through
# QTDIR_build
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
index 0bca4b2..4758de0 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
+++ b/src/3rdparty/webkit/Source/WebKit/qt/ChangeLog
@@ -1,3 +1,58 @@
+2011-08-31 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ [Qt] Unskip API test for load signals order
+ https://bugs.webkit.org/show_bug.cgi?id=67285
+
+ Reviewed by Andreas Kling.
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (tst_QWebPage::loadSignalsOrder):
+
+2011-08-30 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ Emit last progress notification before calling dispatchDidFinishLoad
+ https://bugs.webkit.org/show_bug.cgi?id=28851
+
+ Reviewed by Adam Barth.
+
+ Add infrastructure to dump progressFinishedNotification callback in DRT.
+
+ * WebCoreSupport/DumpRenderTreeSupportQt.cpp:
+ (DumpRenderTreeSupportQt::dumpProgressFinishedCallback):
+ * WebCoreSupport/DumpRenderTreeSupportQt.h:
+ * WebCoreSupport/FrameLoaderClientQt.cpp:
+ (WebCore::FrameLoaderClientQt::postProgressFinishedNotification):
+ * WebCoreSupport/FrameLoaderClientQt.h:
+
+2011-09-02 Jade Han <jade.han@nokia.com>
+
+ [Qt][Symbian] REGRESSION(93235) Missing .def update
+ https://bugs.webkit.org/show_bug.cgi?id=67307
+
+ Reviewed by Laszlo Gombos.
+
+ * symbian/eabi/QtWebKitu.def:
+
+2011-08-12 Caio Marcelo de Oliveira Filho <caio.oliveira@openbossa.org>
+
+ [Qt] Add test for correct order of load signals in QWebPage
+ https://bugs.webkit.org/show_bug.cgi?id=66016
+
+ Reviewed by Benjamin Poulain.
+
+ Add API test to ensure the order of load signals: loadStarted() needs to be emitted
+ first, then loadProgress(100), followed by loadFinished().
+
+ The test is skipped since this right now is broken, the bug
+ https://bugs.webkit.org/show_bug.cgi?id=28851 tracks one possible way to fix.
+
+ * tests/qwebpage/tst_qwebpage.cpp:
+ (SpyForLoadSignalsOrder::SpyForLoadSignalsOrder):
+ (SpyForLoadSignalsOrder::isFinished):
+ (SpyForLoadSignalsOrder::onLoadProgress):
+ (tst_QWebPage::loadSignalsOrder_data):
+ (tst_QWebPage::loadSignalsOrder):
+
2011-08-25 Ademar de Souza Reis Jr. <ademar.reis@openbossa.org>
Unreviewed QtWebKit.pro fix for when building inside Qt
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
index 2fc8e84..5d4bf6d 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.cpp
@@ -677,6 +677,11 @@ void DumpRenderTreeSupportQt::dumpFrameLoader(bool b)
FrameLoaderClientQt::dumpFrameLoaderCallbacks = b;
}
+void DumpRenderTreeSupportQt::dumpProgressFinishedCallback(bool b)
+{
+ FrameLoaderClientQt::dumpProgressFinishedCallback = b;
+}
+
void DumpRenderTreeSupportQt::dumpUserGestureInFrameLoader(bool b)
{
FrameLoaderClientQt::dumpUserGestureInFrameLoaderCallbacks = b;
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
index 7040ea1..f485cb5 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
+++ b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/DumpRenderTreeSupportQt.h
@@ -163,6 +163,7 @@ public:
static QString plainText(const QVariant& rng);
static void dumpFrameLoader(bool b);
+ static void dumpProgressFinishedCallback(bool);
static void dumpUserGestureInFrameLoader(bool b);
static void dumpResourceLoadCallbacks(bool b);
static void dumpResourceResponseMIMETypes(bool b);
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
index 8971fc4..5e0a2e6 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp
@@ -170,6 +170,7 @@ static QString drtDescriptionSuitableForTestResult(const RefPtr<WebCore::Node> n
namespace WebCore {
bool FrameLoaderClientQt::dumpFrameLoaderCallbacks = false;
+bool FrameLoaderClientQt::dumpProgressFinishedCallback = false;
bool FrameLoaderClientQt::dumpUserGestureInFrameLoaderCallbacks = false;
bool FrameLoaderClientQt::dumpResourceLoadCallbacks = false;
bool FrameLoaderClientQt::sendRequestReturnsNullOnRedirect = false;
@@ -586,6 +587,9 @@ void FrameLoaderClientQt::postProgressEstimateChangedNotification()
void FrameLoaderClientQt::postProgressFinishedNotification()
{
+ if (dumpProgressFinishedCallback)
+ printf("postProgressFinishedNotification\n");
+
// Send a mousemove event to:
// (1) update the cursor to change according to whatever is underneath the mouse cursor right now;
// (2) display the tool tip if the mouse hovers a node which has a tool tip.
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
index 1be365d..1b9d3b8 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
+++ b/src/3rdparty/webkit/Source/WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
@@ -247,6 +247,7 @@ public:
const KURL& lastRequestedUrl() const { return m_lastRequestedUrl; }
static bool dumpFrameLoaderCallbacks;
+ static bool dumpProgressFinishedCallback;
static bool dumpUserGestureInFrameLoaderCallbacks;
static bool dumpResourceLoadCallbacks;
static bool dumpResourceResponseMIMETypes;
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def b/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def
index d948de4..0a1c6cb 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def
+++ b/src/3rdparty/webkit/Source/WebKit/qt/symbian/eabi/QtWebKitu.def
@@ -878,3 +878,5 @@ EXPORTS
_ZN8QDRTNodeD1Ev @ 877 NONAME
_ZN8QDRTNodeD2Ev @ 878 NONAME
_ZN8QDRTNodeaSERKS_ @ 879 NONAME
+ _ZN23DumpRenderTreeSupportQt21injectInternalsObjectEP9QWebFrame @ 880 NONAME
+ _ZN23DumpRenderTreeSupportQt20resetInternalsObjectEP9QWebFrame @ 881 NONAME
diff --git a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 893c284..6102102 100644
--- a/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/src/3rdparty/webkit/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -28,6 +28,7 @@
#include <QMainWindow>
#include <QMenu>
#include <QPushButton>
+#include <QStateMachine>
#include <QStyle>
#include <QtTest/QtTest>
#include <QTextCharFormat>
@@ -155,6 +156,8 @@ private slots:
void navigatorCookieEnabled();
void deleteQWebViewTwice();
void renderOnRepaintRequestedShouldNotRecurse();
+ void loadSignalsOrder_data();
+ void loadSignalsOrder();
#ifdef Q_OS_MAC
void macCopyUnicodeToClipboard();
@@ -3065,5 +3068,57 @@ void tst_QWebPage::renderOnRepaintRequestedShouldNotRecurse()
QVERIFY(::waitForSignal(&r, SIGNAL(finished())));
}
+class SpyForLoadSignalsOrder : public QStateMachine {
+ Q_OBJECT
+public:
+ SpyForLoadSignalsOrder(QWebPage* page, QObject* parent = 0)
+ : QStateMachine(parent)
+ {
+ connect(page, SIGNAL(loadProgress(int)), SLOT(onLoadProgress(int)));
+
+ QState* waitingForLoadStarted = new QState(this);
+ QState* waitingForLastLoadProgress = new QState(this);
+ QState* waitingForLoadFinished = new QState(this);
+ QFinalState* final = new QFinalState(this);
+
+ waitingForLoadStarted->addTransition(page, SIGNAL(loadStarted()), waitingForLastLoadProgress);
+ waitingForLastLoadProgress->addTransition(this, SIGNAL(lastLoadProgress()), waitingForLoadFinished);
+ waitingForLoadFinished->addTransition(page, SIGNAL(loadFinished(bool)), final);
+
+ setInitialState(waitingForLoadStarted);
+ start();
+ }
+ bool isFinished() const
+ {
+ return !isRunning();
+ }
+public Q_SLOTS:
+ void onLoadProgress(int progress)
+ {
+ if (progress == 100)
+ emit lastLoadProgress();
+ }
+signals:
+ void lastLoadProgress();
+};
+
+void tst_QWebPage::loadSignalsOrder_data()
+{
+ QTest::addColumn<QUrl>("url");
+ QTest::newRow("inline data") << QUrl("data:text/html,This is first page");
+ QTest::newRow("simple page") << QUrl("qrc:///resources/content.html");
+ QTest::newRow("frameset page") << QUrl("qrc:///resources/index.html");
+}
+
+void tst_QWebPage::loadSignalsOrder()
+{
+ QFETCH(QUrl, url);
+ QWebPage page;
+ SpyForLoadSignalsOrder loadSpy(&page);
+ waitForSignal(&loadSpy, SIGNAL(started()));
+ page.mainFrame()->load(url);
+ QTRY_VERIFY(loadSpy.isFinished());
+}
+
QTEST_MAIN(tst_QWebPage)
#include "tst_qwebpage.moc"
diff --git a/src/3rdparty/webkit/VERSION b/src/3rdparty/webkit/VERSION
index 413f504..aeaa22c 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
- dda59e50379214c098f365a39c4d64b39ced427e
+ a2bd2bb1b19949c6807da38e25bfa7d210bb4b17
diff --git a/src/corelib/arch/generic/qatomic_generic_windows.cpp b/src/corelib/arch/generic/qatomic_generic_windows.cpp