profile/ivi/qtbase.git
11 years agoFix processor detection for MSVC ARM compiler (WEC7).
Janne Anttila [Thu, 9 Aug 2012 05:52:39 +0000 (08:52 +0300)]
Fix processor detection for MSVC ARM compiler (WEC7).

Visual Studio compiler defines _M_ARM preprocessor variable when
compiling for ARM and the value of preprocessor variable indicates the
supported instruction set.

For more information see:
http://msdn.microsoft.com/en-us/library/gg155713.aspx

Change-Id: I54137257b83f64fdf03bf7df9995e08d16dff4df
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoAdd missing #include <qmetatype.h>
Thiago Macieira [Mon, 20 Aug 2012 12:22:17 +0000 (14:22 +0200)]
Add missing #include <qmetatype.h>

There's a Q_DECLARE_METATYPE at the end of this file.

Change-Id: Ib63aa4397ccba8740d46cf1ee7af712f75d05765
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
11 years agoMisc documentation fixes triggered by qdoc errors/warnings
Shawn Rutledge [Thu, 16 Aug 2012 16:19:39 +0000 (18:19 +0200)]
Misc documentation fixes triggered by qdoc errors/warnings

Change-Id: I6ca3b138114fe957a09e8ec2f22273865635fc8b
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoFix C++11 mode compilation with MinGW-w64 4.7.1
Yuchen Deng [Mon, 20 Aug 2012 05:03:36 +0000 (13:03 +0800)]
Fix C++11 mode compilation with MinGW-w64 4.7.1

Change-Id: I8b840ece7341877fb6f5d6a85d8714517034e319
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoRemove references to "How to Learn Qt", since that is in qtdoc repo.
Jan-Arve Saether [Mon, 20 Aug 2012 14:38:35 +0000 (16:38 +0200)]
Remove references to "How to Learn Qt", since that is in qtdoc repo.

Don't use \n in qdoc comments.

Change-Id: I875e37f6a13ab0b7f66da985a2cf157017934bbd
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
11 years agoFix multiple enumeration warnings when generating docs
Jens Bache-Wiig [Mon, 20 Aug 2012 09:12:48 +0000 (11:12 +0200)]
Fix multiple enumeration warnings when generating docs

Most of these caused by cleaning up enums and not removing
omitted values. Also removed some leftovers from qt3support.

Change-Id: I75efcc9fadc6a430492bab36e86d7b345d3a6a17
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
11 years agoRemove dialogs doc related warnings
Gabriel de Dietrich [Thu, 16 Aug 2012 16:39:53 +0000 (18:39 +0200)]
Remove dialogs doc related warnings

Change-Id: I79a771d18913237d894ca1a5aeaa07586106c645
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
11 years agoSpeed up sorting of dir entries when sorted by date
Robin Burchell [Wed, 15 Aug 2012 11:37:15 +0000 (13:37 +0200)]
Speed up sorting of dir entries when sorted by date

QDateTime will attempt to convert unknown types of date to UTC time, which isn't
exactly a fast process. As we don't care about local timezones in the process of
sorting (as this is purely for ordering, not display to the end user), we can
force the dates to use UTC time, avoiding the unnecessary local timezone lookup.

This also adds a benchmark covering this case.

Benchmark results, Qt 5:
 - before: 11, 489ms
 - after: 273ms

Qt 4.8:
 - before: 20, 848ms
 - after: 278ms

Change-Id: I87fa6260e820b5b172d3306ff395dafe767c33ff
Reported-by: Thomas Perl <m@thp.io>
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoDoc: Work on QVariant's equality operator.
Geir Vattekar [Mon, 20 Aug 2012 12:31:32 +0000 (14:31 +0200)]
Doc: Work on QVariant's equality operator.

Task-number: QTBUG-26018
Change-Id: I6627456d166bc0a036cadeee7bd51aa8e576a818
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
11 years agoEnable QComboBox animation on Windows and fixing related bugs
Thomas Hartmann [Fri, 17 Aug 2012 09:10:15 +0000 (11:10 +0200)]
Enable QComboBox animation on Windows and fixing related bugs

QWidget:grab() has a default parameter (invalid rect).
QRect() is the null rect and widget->grab(QRect())
returns an empty pixmap.

QWidget:grab() has to be free of side effects and should not
affect any dirty flags.

Change-Id: I8ff558343c366769cd6c587e77f862668e8054f2
Task-number: QTBUG-25436
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoReplace \QD with the literal 'Qt Designer' to avoid warnings.
Jan-Arve Saether [Mon, 20 Aug 2012 13:43:28 +0000 (15:43 +0200)]
Replace \QD with the literal 'Qt Designer' to avoid warnings.

Change-Id: Ia28ab42531217df75b626638b1953c393d2e445e
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
11 years agoFix freetype font rendering for Windows CE
Andreas Holzammer [Mon, 20 Aug 2012 09:25:41 +0000 (11:25 +0200)]
Fix freetype font rendering for Windows CE

Windows CE does not have support for GetGlyphOutline.
So addGlyphToPath will not work. QML uses it for their
distance field rendering. One option to bypass this issue
is to use freetype as rendering backend.

Change-Id: I965254344945cbdad771a5d505fb61c1cc2087df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
11 years agoMoving .qdoc files under examples/widgets/doc
Gabriel de Dietrich [Fri, 17 Aug 2012 11:23:19 +0000 (13:23 +0200)]
Moving .qdoc files under examples/widgets/doc

Updated those .qdoc files to refer to the new relative examples
emplacement. Images and snippets to be moved later.

Also grouped all widgets related examples under widgets.

Change-Id: Ib29696e2d8948524537f53e8dda88f9ee26a597f
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
11 years agoFix documented QMetaType::UserType value.
Aaron McCarthy [Thu, 26 Jul 2012 04:04:28 +0000 (14:04 +1000)]
Fix documented QMetaType::UserType value.

QMetaType::UserType was changed from 256 to 1024, this was not reflected
in the code parsed by qdoc.

Change-Id: I0a02e8b020d495fbf2508d84b690adae1b677125
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
11 years agoOpenGL: Use official glext.h and gl2ext.h headers
Sean Harmer [Fri, 8 Jun 2012 08:39:17 +0000 (09:39 +0100)]
OpenGL: Use official glext.h and gl2ext.h headers

The Khronos group makes the glext.h (Desktop OpenGL) and gl2ext.h
(OpenGL ES2) headers officially available nowadays. Most (all?)
Linux systems ship this by default. On Windows platforms the
glext.h file needs to be downloaded from

http://www.opengl.org/registry/api/glext.h

and placed alongside the system OpenGL header.

Making use of the official header reduces the maintenance
overhead for OpenGL support in Qt by removing the need to copy
and paste definitions into the Qt sources.

As the Khronos-provided headers are standardised and backwards and
forwards compatible we can utilise these for all platforms rather
than just for Windows. This means that all definitions required
by Qt will be present even if the system ships out-dated
equivalents.

Mac OS X needs special handling in that we should always use the
system-provided headers there. This is because Apple controls the
OpenGL driver and the headers that go along with it. As such there
is no possibility that the driver exposes additional functionality
compared with the system-provided OpenGL headers. Apple has also
decided to make different decisions about some OpenGL typedefs
compared to other implementations. For example, Apple typdefs
GLhandleARB to void* whereas other platforms use unsigned int.

The alternative, which is to use the system provided glext.h (or
gl2ext.h) header means that Qt code would need to check for the
availability of such definitions wherever it is not guaranteed
to be provided by core OpenGL/ES just to compile.

The proposed approach means that Qt can compile regardless of
the system's OpenGL extension support. We just need to be
rigourous in runtime checking of support for extensions but
that is already a requirement (and is missing in a few places,
see TODO's added in this commit).

The official Khronos headers are added to Qt as

qopenglext.h - Desktop OpenGL
qopengles2ext.h - OpenGL ES2

They need to be public but not part of QtGui module include, hence
the headers have been modified by adding

 #if 0
 #pragma qt_no_master_include
 #endif

to them.

This has been tested on:

Gentoo Linux with GCC 4.6.3
Windows 7 with MSVC 2010
Mac OSX 10.8 with Apple clang 4.0 (based on LLVM 3.1svn)
QNX with qcc (based on GCC 4.4)

A small change is needed to QtDeclarative when building for OpenGL
ES 2 after applying this commit. See
https://codereview.qt-project.org/#change,31794

Change-Id: I4b3d2b1680baf4c78be9a87b4d8de076d23e8f82
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
11 years agoTake account of hidden items in QListView when using scrollTo.
Stephen Kelly [Mon, 6 Aug 2012 09:34:56 +0000 (11:34 +0200)]
Take account of hidden items in QListView when using scrollTo.

Task-number: QTBUG-21804
Change-Id: I475166f3f60b1278089baa255ace4e18baeb568e
Reviewed-by: Jani Honkonen <jani.honkonen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
11 years agoReplace deprecated ColorSync Manager use with updated CG API
Jiang Jiang [Mon, 13 Aug 2012 15:12:28 +0000 (17:12 +0200)]
Replace deprecated ColorSync Manager use with updated CG API

ColorSync Manager is deprecated in 10.6 and new CG API for
copying color space is available since 10.5.

Change-Id: I730431dcd28ca0ff6cec5d1eeff99fff9f3d0a29
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
11 years agoFix in-process QAxServers inside modal windows.
Miikka Heikkinen [Fri, 17 Aug 2012 11:19:36 +0000 (14:19 +0300)]
Fix in-process QAxServers inside modal windows.

The main window of in-process QAxServers doesn't have QWindow parent,
but it does have native parent that is part of the native window tree
of the application. The lack of Qt parent makes embedded controls look
like toplevel windows, which causes problems e.g. with modality.

Introduced new optional method QPlatformWindow::isEmbedded() to
detect if a window is an embedded window and utilized it in proper
places during modality handling.

Task-number: QTBUG-26871
Change-Id: Iac9a51dae06b8fc15410de7838857e203e4275b8
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoEnsure that all the children get the new stylesheet set on a parent
Andy Shaw [Tue, 7 Aug 2012 04:31:38 +0000 (06:31 +0200)]
Ensure that all the children get the new stylesheet set on a parent

When a stylesheet was set on a parent widget then in some cases it would
not get applied to all the child widgets.  This was because the order of
the children list may have been modified while it was being set on
children.  By making a copy of the list we prevent this from being a
problem.

Task-number: QTBUG-26321

Change-Id: Iea6bf72c69a0c39746f7ef5e7893dda5a93ed7e5
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
11 years agoFix drag curor visibility on Windows.
Janne Anttila [Wed, 8 Aug 2012 12:34:06 +0000 (15:34 +0300)]
Fix drag curor visibility on Windows.

QDrag has an API to set both pixmap (QDrag::setPixmap) and drag cursor
(QDrag::setDragCursor): http://qt-project.org/doc/qt-5.0/qdrag.html.

We cannot return from createCursors if there is no pixmap, but we need
to go through also dragCursor and use those if one is set.

Change-Id: If2b2139ad193a4ab5b25c65400c595dc7c33de2c
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
11 years agoUse QThread instead of QPushButton as an example in the docs
Lars Knoll [Fri, 17 Aug 2012 06:50:10 +0000 (08:50 +0200)]
Use QThread instead of QPushButton as an example in the docs

This keeps links local and inside the module.

Change-Id: I5e267197c6356a2c4e231c1941ed4be33b96a16e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix more qdoc errors
Lars Knoll [Thu, 16 Aug 2012 21:57:02 +0000 (23:57 +0200)]
Fix more qdoc errors

Change-Id: Ieed340068327f37ea0f549d24ea49235994118f4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix qdoc errors in qcoreevent.
Lars Knoll [Thu, 16 Aug 2012 17:07:16 +0000 (19:07 +0200)]
Fix qdoc errors in qcoreevent.

Change-Id: Ic6cb963a7df643819dfdd93c7300d054e11cd0d4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix qdoc errors in the QAbstractEventDispatcher documentation.
Lars Knoll [Thu, 16 Aug 2012 16:58:33 +0000 (18:58 +0200)]
Fix qdoc errors in the QAbstractEventDispatcher documentation.

Change-Id: I7de48286f05b14c831f1290e009a25630504a76e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix some qdoc errors in the QJson* classes
Lars Knoll [Thu, 16 Aug 2012 16:58:00 +0000 (18:58 +0200)]
Fix some qdoc errors in the QJson* classes

Change-Id: If475655445afdba307508c5a3863c4bc8d87ebe6
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix snippet bug in State Machine Overview
Lars Knoll [Thu, 16 Aug 2012 13:10:50 +0000 (15:10 +0200)]
Fix snippet bug in State Machine Overview

Cherry-pick of b0facd481a2fc119d87c85481d97357d814a5fd2
from the qtdoc repository.

Task-number: QTBUG-25314
Change-Id: I2166db46399ea6da8cadf02a7f65738c0c252142
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix a couple of qdoc errors.
Lars Knoll [Thu, 16 Aug 2012 13:00:31 +0000 (15:00 +0200)]
Fix a couple of qdoc errors.

Change-Id: I0770fc61e265face4fa061be9e110814effee181
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoRefactor the automatic metatype templates into preprocessor lists.
Stephen Kelly [Thu, 16 Aug 2012 00:18:19 +0000 (02:18 +0200)]
Refactor the automatic metatype templates into preprocessor lists.

This will allow re-use in moc.

Change-Id: I99c5f8f0756fccf0fb2bb845c29255c14d4d703e
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
11 years agoFix a QListViewItem width when spacing is set
Jani Honkonen [Thu, 16 Aug 2012 13:08:35 +0000 (16:08 +0300)]
Fix a QListViewItem width when spacing is set

The listitem width was calculated incorrectly because spacing was
not considered. This fixes the second part of the reported bug where
spacing is set. Added some tests to catch the issue relating to the
reported bug.

Also added a test to check spacing in general.

Task-number: QTBUG-21804
Change-Id: Icc6326bce914264d882a60a9fc0ebe7d2a08dbf6
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
11 years agoFix QListWidget scrolling with keys when there are hidden items
Jani Honkonen [Wed, 1 Aug 2012 11:55:51 +0000 (14:55 +0300)]
Fix QListWidget scrolling with keys when there are hidden items

If the selected item is scrolled with keyboard keys the selected item
will go outside the visible area. The scrolling did not take hidden
items into account when calculating the amount to be scrolled.

Task-number: QTBUG-21804
Change-Id: I63da0248cec43be464898f9dc8167e739f00ccd0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
11 years agoDoc: Small addition to QAbstractTextDocumentLayout::registerHandler()
Geir Vattekar [Tue, 14 Aug 2012 13:01:07 +0000 (15:01 +0200)]
Doc: Small addition to QAbstractTextDocumentLayout::registerHandler()

Task-number: QTBUG-23345
Change-Id: I6f768472aaef95f5dd88cf896ef3e635d223b635
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@nokia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
11 years agoDoc: Add FOV to rogue example.
Geir Vattekar [Wed, 15 Aug 2012 13:33:13 +0000 (15:33 +0200)]
Doc: Add FOV to rogue example.

Change-Id: Ib0f4caad9bc828a94616466f303d879fc967970d
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
11 years agodoc: Fixed qdoc errors in SSL
Martin Smith [Thu, 16 Aug 2012 08:02:59 +0000 (10:02 +0200)]
doc: Fixed qdoc errors in SSL

Fixed some bad camel case, marked some parameters with \a,
and changed a \enum to a \typedef. Removed some obasolete
text.

Change-Id: I1e69dd9f3b74129230770addc80fe1c125faf268
Reviewed-by: Richard J. Moore <rich@kde.org>
11 years agoIgnore Q_DECL_NOTHROW in qdoc for Qt Core
Jeremy Katz [Thu, 16 Aug 2012 14:27:45 +0000 (16:27 +0200)]
Ignore Q_DECL_NOTHROW in qdoc for Qt Core

This change was already made in the qtdoc repo, but qtcore doesn't
pick up the configuration from there.

Change-Id: I72e747d748705e508521aeba1992d0c47faf2dac
Reviewed-by: Martin Smith <martin.smith@nokia.com>
11 years agoEnable QAtomicInteger for char16_t and char32_t
Thiago Macieira [Mon, 6 Aug 2012 16:15:49 +0000 (18:15 +0200)]
Enable QAtomicInteger for char16_t and char32_t

Those are regular, integer types, of 16- and 32-bit width,
respectively. C++11's std::atomic supports them, so we should too.

C++11 also supports wchar_t, but since that type's size can change, I
don't feel like support for it in Qt is pressing.

Change-Id: I945b641c91a8a98be82715f878c382dee58ac98b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoAdd Q_DECL_CONSTEXPR to the isXXX functions in the new atomics.
Thiago Macieira [Mon, 6 Aug 2012 16:03:49 +0000 (18:03 +0200)]
Add Q_DECL_CONSTEXPR to the isXXX functions in the new atomics.

This allows one to write code that depends on these values at
compile-time.

Change-Id: I7d78524ed9c70d4141360496d1d764dcbfa92e62
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix -Wclobbered warnings
Marc Mutz [Wed, 15 Aug 2012 17:25:44 +0000 (19:25 +0200)]
Fix -Wclobbered warnings

GCC warns:

  warning: argument 'x' might be clobbered by 'longjmp' or 'vfork' [-Wclobbered]

Apparently, the real fix would be annotating the functions correctly
with noreturn and returns_twice attributes, but there's also workarounds
for these, at least in the png case, so adding volatile was the easier
way out here.

Needed a cast to lose the volatile again, passing the argument to qMin().

Change-Id: Id820cf9b65752359f3b8f268172ba71bc9a76784
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoUpdated .gitignore
J-P Nurmi [Fri, 17 Aug 2012 12:23:23 +0000 (14:23 +0200)]
Updated .gitignore

Change-Id: Ic5abac7bbcd74180dbe762b7871bb865bd2fbb76
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoAuto test for passing QTextEdit as QSyntaxHighlighter parent
J-P Nurmi [Fri, 17 Aug 2012 08:52:54 +0000 (10:52 +0200)]
Auto test for passing QTextEdit as QSyntaxHighlighter parent

Change-Id: Ia225723de5b0b2085a72a2af26e2a563b65955d8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
11 years agoRegister QTextDocument* as a meta type to fix QTextEdit::document type
J-P Nurmi [Fri, 17 Aug 2012 08:49:36 +0000 (10:49 +0200)]
Register QTextDocument* as a meta type to fix QTextEdit::document type

Change-Id: I666845049749bfa6f88b764eefaefb0dcf05cb3f
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
11 years agoModernise, update and fix errors in the QUrl documentation
Thiago Macieira [Thu, 16 Aug 2012 13:28:33 +0000 (15:28 +0200)]
Modernise, update and fix errors in the QUrl documentation

Update the documentation of the deprecated API to match the current
behaviour. Notably, the current behaviour is to check the correctness of
the percent-encoding even in the "encoded" functions. Also, the use of
QUrlQuery makes the matching work on canonical forms, so "%73earch" does
match "search".

Elsewhere, make sure we do not refer to the deprecated API in the
documentation of non-deprecated functions.

Change-Id: If3505ac3c6121177ad6ab18199e143775bef44b9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
11 years agoBring back the documentation on QUrl deprecated methods
Thiago Macieira [Thu, 16 Aug 2012 12:56:59 +0000 (14:56 +0200)]
Bring back the documentation on QUrl deprecated methods

The deprecated query methods were removed along with their documentation
in commit 1c2144c39fa0069bf496e8f77389a9c2f8a31acf, so restore it from
before that commit.

The rest of the encoded methods were removed along with their
documentation in commit 1372d60bde04a31c8036601076d1093a67c6bd46.
Restore their documentation from the previous commit to that one.

All the documentation from this commit is brought back unchanged, except
for the addition of \deprecated.

Change-Id: I1851b0dc922c681e1623359b35dfd0f505d258d2
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
11 years agoFix a couple of qdoc errors
Lars Knoll [Wed, 15 Aug 2012 20:53:10 +0000 (22:53 +0200)]
Fix a couple of qdoc errors

Change-Id: I79f689e08ed4a496052529af38fca72c3d4e04cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoClean up QScreen::grabWindow()
aavit [Fri, 17 Aug 2012 12:15:36 +0000 (14:15 +0200)]
Clean up QScreen::grabWindow()

Handle 0 WId parameter as meaning "desktop window"/whole screen.
Also, re-add the default values for the grab area, both for
convenience and compatibility with QPixmap::grabWindow() in Qt4.
Update the screenshot example so it doesn't comlain about usage of
deprecated QPixmap::grabWindow().

Change-Id: I2ad229113ddb8ded0388f2ebc0e8c703c6657f1f
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
11 years agoAdd a changes file entry for QMetaType QObject related change.
Stephen Kelly [Wed, 15 Aug 2012 14:46:36 +0000 (16:46 +0200)]
Add a changes file entry for QMetaType QObject related change.

Change-Id: I2f902ffe6b18034047114626dd4cbe9d2f96c2fc
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoExclude the qplatformdefs CMake test on Windows.
Stephen Kelly [Fri, 10 Aug 2012 11:18:54 +0000 (13:18 +0200)]
Exclude the qplatformdefs CMake test on Windows.

The fix for this failing test is not yet agreed to. Disable it to
allow progress with the CI system while the fix is decided.

Task-number: QTBUG-26869
Change-Id: Ia8089b8e66d750353e7c1c69597916af0d042856
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
11 years agoRemove QWidgetStar.
Stephen Kelly [Thu, 19 Jul 2012 12:33:28 +0000 (14:33 +0200)]
Remove QWidgetStar.

This allows us to remove the odd hacks to get the static metaobject
for the QWidget* metatype.

The QWidget* is still an automatic metatype thanks to the QObject
partial template specialization. It is registered as a metatype
at runtime automatically in qwidgetsvariant.cpp.

Change-Id: Ie01b69eadf2cbe87af1a86c3284550f60dcf9e94
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoAdd Q_DECL_NOTHROW to the tokens qdoc ignores
Lars Knoll [Wed, 15 Aug 2012 20:50:30 +0000 (22:50 +0200)]
Add Q_DECL_NOTHROW to the tokens qdoc ignores

This fixes a couple of qdoc errors on methods that
are declared as nothrow.

Change-Id: I22bcd18253665280a5c1c3a38539dacf8f869c57
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix most qdoc errors for QMap
Lars Knoll [Wed, 15 Aug 2012 21:12:07 +0000 (23:12 +0200)]
Fix most qdoc errors for QMap

Change-Id: I8cac3b63cab32c655f722aca467489730c3f0a42
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoMove the statemachine documentation into qtcore
Lars Knoll [Thu, 16 Aug 2012 07:39:59 +0000 (09:39 +0200)]
Move the statemachine documentation into qtcore

Moved the documentation from qtdoc to here, so the
statemachine class docs can link to it.

Change-Id: I49a10cc7c418d415c64ea538376eb9bd7b031c27
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
11 years agoMove the animation overview doc into QtCore
Lars Knoll [Thu, 16 Aug 2012 07:43:27 +0000 (09:43 +0200)]
Move the animation overview doc into QtCore

Moved here from the qtdoc module.

Change-Id: Ib263848e0637204ec3b0cba973076ca79a25a953
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoFix qdoc erros in qfile and related classes
Lars Knoll [Thu, 16 Aug 2012 08:20:50 +0000 (10:20 +0200)]
Fix qdoc erros in qfile and related classes

Change-Id: I56b66e6eeb06c84e1157a701a814aebb1ddf4845
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoPass NEON_ASM directly to SOURCES.
Rafael Roquetto [Fri, 17 Aug 2012 12:43:01 +0000 (14:43 +0200)]
Pass NEON_ASM directly to SOURCES.

This guarantees that qmake gives them the proper flags (non C++) while
building these asm files.

Change-Id: I41150f543b8fac81bcd0da963b4d0e0a19b9db2f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
11 years agoMark simple static methods in QThread as Q_DECL_NOTHROW
Thiago Macieira [Mon, 6 Aug 2012 14:10:33 +0000 (16:10 +0200)]
Mark simple static methods in QThread as Q_DECL_NOTHROW

These methods aren't often used, but currentThreadId() gets used in the
recursive mutex code to store the identity of the thread with multiple
locks.

Change-Id: I031cf3893aa6e7fd7a53733fc1088d295bdb9079
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoEmit layoutChange signals when changing QPersistentModelIndexes.
Stephen Kelly [Mon, 13 Aug 2012 09:53:05 +0000 (11:53 +0200)]
Emit layoutChange signals when changing QPersistentModelIndexes.

This is necessary whenever QPersistentModelIndexes are changed. Omitting
it means that views are not able to react to the change, such as QTreeView
clearing its (manually held) QModelIndex cache, and the QItemSelectionModel
clearing the item from its storage.

It is necessary to change a QSortFilterProxyModel test which assumed setItem
does not have any such effect. That test is ported to setData instead.

Task-number: QTBUG-18539
Change-Id: Id7a602f18b9773ba4d11019418de886860d26d3e
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
11 years agoQAbstractSlider: fix qdoc warnings
J-P Nurmi [Wed, 15 Aug 2012 14:07:57 +0000 (16:07 +0200)]
QAbstractSlider: fix qdoc warnings

Change-Id: I996d45513a0239d0ed11669ce6e238955ec8a31b
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
11 years agoQSlider: fix qdoc warnings
J-P Nurmi [Wed, 15 Aug 2012 14:01:12 +0000 (16:01 +0200)]
QSlider: fix qdoc warnings

Removed some Qt3 support leftovers and docs for qt_qsliderStyleOption()
that qdoc wasn't able to tie to anything.

Change-Id: I49bb886b639fe11e4923ef8486e0b9f8a966b10c
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
11 years agoQLCDNumber docs: cleanup Qt3 support leftovers
J-P Nurmi [Wed, 15 Aug 2012 13:41:01 +0000 (15:41 +0200)]
QLCDNumber docs: cleanup Qt3 support leftovers

Change-Id: I22378c5334ac830e94060f20568e200f0ee49280
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
11 years agoRemove docs for removed functions.
Frederik Gladhorn [Wed, 15 Aug 2012 13:28:52 +0000 (15:28 +0200)]
Remove docs for removed functions.

Change-Id: I75ec0137c56581653ee0dd6fd84f10f0a6c3429c
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
11 years agoReference proper example.
Frederik Gladhorn [Wed, 15 Aug 2012 14:01:46 +0000 (16:01 +0200)]
Reference proper example.

Change-Id: Icda7e21f7e1eee8d4a6939ce3a50d1874ecda1e6
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
11 years agoRemove outdated docs.
Frederik Gladhorn [Wed, 15 Aug 2012 12:00:08 +0000 (14:00 +0200)]
Remove outdated docs.

Change-Id: I6eaffdad3b800b7d90478cb7c4044ec27e659ec9
Reviewed-by: J-P Nurmi <j-p.nurmi@nokia.com>
11 years agoQMessageLogger: mark noDebug() as nothrow
Marc Mutz [Fri, 3 Aug 2012 08:58:19 +0000 (10:58 +0200)]
QMessageLogger: mark noDebug() as nothrow

Change-Id: Ib01ad955844e8da376c687876141ad8f21776613
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoQMessageLogger: make member functions const
Marc Mutz [Wed, 25 Jul 2012 08:04:58 +0000 (10:04 +0200)]
QMessageLogger: make member functions const

Just because we can :)

It looks a bit weird that QMessageLogger has a constexpr
constructor, but no const methods...

Change-Id: I794dd2b3326c45be17b29decb47c9cac4778d397
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoMoved guibooks.qdoc from qtdoc to qtwidgets
J-P Nurmi [Wed, 15 Aug 2012 11:58:29 +0000 (13:58 +0200)]
Moved guibooks.qdoc from qtdoc to qtwidgets

Change-Id: I69e07b7a343c99ebafc7bf4587041b6f9ddbd37e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
11 years agoExclude snippets
Jan-Arve Saether [Fri, 17 Aug 2012 11:39:59 +0000 (13:39 +0200)]
Exclude snippets

Change-Id: Ia31d7923e9a121eb7c16a1fe059dc8c9a5b61bd1
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
11 years agoDoc: Fix spelling errors
Sergio Ahumada [Thu, 16 Aug 2012 08:46:42 +0000 (10:46 +0200)]
Doc: Fix spelling errors

Change-Id: Ibae8d10183f6b15a16b1499daa2df8802dbb014e
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
11 years agoMake qdoc ignore Q_WIDGETS_EXPORT.
Frederik Gladhorn [Thu, 16 Aug 2012 13:35:20 +0000 (15:35 +0200)]
Make qdoc ignore Q_WIDGETS_EXPORT.

Change-Id: Ic76ba6260a219f5a7f336e6bc15654bc827dfcd3
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoQTabWidget docs: cleanup Qt3 support left overs
J-P Nurmi [Wed, 15 Aug 2012 15:03:55 +0000 (17:03 +0200)]
QTabWidget docs: cleanup Qt3 support left overs

Change-Id: If73848b0b8dc424b3429f845aff383d088a6a367
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoQTabBar docs: cleanup Qt3 support left overs
J-P Nurmi [Wed, 15 Aug 2012 15:01:35 +0000 (17:01 +0200)]
QTabBar docs: cleanup Qt3 support left overs

Change-Id: If2c9245ad454b1f34c44f1d0a0c61700cea53cf3
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoQDate/TimeEdit: fix qdoc warnings
J-P Nurmi [Wed, 15 Aug 2012 14:54:12 +0000 (16:54 +0200)]
QDate/TimeEdit: fix qdoc warnings

Warnings caused by c3e1ab:
../widgets/qdatetimeedit.h:208: No documentation for 'QTimeEdit::time'
../widgets/qdatetimeedit.h:220: No documentation for 'QDateEdit::date'

Both 'date' and 'time' are declared and documented in QDateTimeEdit.

Change-Id: I287b5f20568e4055e6922eb1a70aeedf220de823
Reviewed-by: Shawn Rutledge <shawn.rutledge@nokia.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoQMenuBar: fix qdoc warnings
J-P Nurmi [Wed, 15 Aug 2012 14:27:52 +0000 (16:27 +0200)]
QMenuBar: fix qdoc warnings

Removed Qt3 support left overs, marked QMenuBar::platformMenuBar()
as internal, and removed the reference to
qt_mac_set_native_menubar() that was removed in 2922f8.

Change-Id: Ia6af9bd399c88fafab26789278b4c82312d6d9c7
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoQScrollBar: fix qdoc warnings
J-P Nurmi [Wed, 15 Aug 2012 14:11:17 +0000 (16:11 +0200)]
QScrollBar: fix qdoc warnings

Removed some Qt3 support leftovers

Change-Id: Idd8e05fd96f5eb0816f79e6684293c9477d4d52f
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoQFrame docs: cleanup Qt3 support leftovers
J-P Nurmi [Wed, 15 Aug 2012 13:21:53 +0000 (15:21 +0200)]
QFrame docs: cleanup Qt3 support leftovers

Change-Id: I8c51f0a379c03e4bdd9dbdccc6cdc98a7013c40e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoFix a bug in qdocs handling of excludedirs
Jan-Arve Saether [Fri, 17 Aug 2012 09:52:40 +0000 (11:52 +0200)]
Fix a bug in qdocs handling of excludedirs

The bug was there because the way qdoc tries to exclude the directories
given in the "excludedirs" variable:
It did a simple string comparision on the candidate path (to include)
with every string in the "excludedirs" variable.

However, this did not work for all cases, since the paths are not
canonicalized.
For instance, the problem I faced was that the following qdocconf
fragment: (config file located in doc/qtwidgets.qdocconf)
sourcedirs  += ..
excludedirs += snippets

Since qdoc would recursively parse all subfolders of sourcedirs, it
would at one point visit the snippets folder, but it would have the
relative path "../doc/snippets", which did not match with "snippets",
causing snippets to not be excluded.

In addition, it seems that qdoc tries hard not to use absolute paths
(maybe because of more human-friendly error messages). I therefore
chose to canonicalize the relative paths.

As a side-effect this also give a better output from qdoc, as
../doc/foo.qdoc:42: Missing link
will become
foo.qdoc:42: Missing link

Change-Id: If9c25fa569abd03542bd12675acd44d8f4e0282c
Reviewed-by: Martin Smith <martin.smith@nokia.com>
11 years agoClean up docs for graphicsview.
Jan-Arve Saether [Wed, 15 Aug 2012 13:22:49 +0000 (15:22 +0200)]
Clean up docs for graphicsview.

* doc/snippets/graphicsview.cpp is moved from the qtdoc repo
* doc/images/graphicsview-parentchild.png is taken from 4.8

There are still some problems with references to examples, but
Casper meant that Jerome was working on that, so I'll leave
those fixes out.

Change-Id: Ieac8e6564344851fe8e77f2b346b152e57f8485c
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
11 years agoQComboBox docs: cleanup Qt3 support leftovers
J-P Nurmi [Wed, 15 Aug 2012 11:25:11 +0000 (13:25 +0200)]
QComboBox docs: cleanup Qt3 support leftovers

Change-Id: I59352edee99321c6119aee9c0f5e428a5371c997
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
11 years agoDecouple -lang-c++ from CXX command on QNX mkspecs
Rafael Roquetto [Thu, 16 Aug 2012 16:08:19 +0000 (18:08 +0200)]
Decouple -lang-c++ from CXX command on QNX mkspecs

Making -lang-c++ integral part of the $CXX command was wrong, because there are
cases where $CXX must be called without the -lang-c++ file (when building asm
files for instance). This commit moves the -lang-c++ to $CXX_FLAGS where it
belongs.

Change-Id: I667c8d722105c6117fcd8ff3102dbdfcb890b24f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
11 years agoQThreadPool: fix race on 'queue' in stealRunnable()
Marc Mutz [Fri, 17 Aug 2012 08:57:15 +0000 (10:57 +0200)]
QThreadPool: fix race on 'queue' in stealRunnable()

The code under mutex protection already implicitly handles the case where
queue.empty(), so just removing the pre-lock check suffices.

Change-Id: I01467aff62e61bb4efd16359dd64546ff51c6bad
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoQThreadPool: use swap() when making a copy of allThreads
Marc Mutz [Fri, 17 Aug 2012 08:55:38 +0000 (10:55 +0200)]
QThreadPool: use swap() when making a copy of allThreads

This is the C++98 version of std::move().

Change-Id: Icb73da16bb05bf07114a38e4fd48732b612e2d51
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoQThreadPool: don't loop unless needed
Marc Mutz [Fri, 17 Aug 2012 08:53:53 +0000 (10:53 +0200)]
QThreadPool: don't loop unless needed

The resulting code is easier to understand, too.

Change-Id: I3cd84d85b3186860dd3ccd67c3771b82695e7f83
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoQFutureInterface<void>: const-correct reportFinished()
Marc Mutz [Fri, 17 Aug 2012 08:51:48 +0000 (10:51 +0200)]
QFutureInterface<void>: const-correct reportFinished()

The primary QFutureInterface::reportFinished() takes a const T *, so should the
void sepecialisation.

Change-Id: I4d3173f4fd4f8d27baecd407369659a42445aed7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoqmake: object_with_source feature removed
Joerg Bornemann [Thu, 16 Aug 2012 11:02:30 +0000 (13:02 +0200)]
qmake: object_with_source feature removed

By putting object_with_source into CONFIG one could force qmake to
output each object file into the same directory as its source file
came from. This was a rather nasty work-around from Qt 3 times to
support source files with the same file name in a project.
Unfortunately this doesn't play nicely with shadow builds.

Change-Id: Ie79e14d36ba6eac4219edc14ea75ab6a96f9ea96
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
11 years agounbreak "aux" template for mingw & msvc
Oswald Buddenhagen [Wed, 15 Aug 2012 17:42:42 +0000 (19:42 +0200)]
unbreak "aux" template for mingw & msvc

we cannot just completely stub it out, as then there are no dependencies
on whatever targets we actually *want* to be built.

Change-Id: I32a92fa937d099c153a0082feae5d23e3998ba48
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agobeautify "aux" target
Oswald Buddenhagen [Wed, 15 Aug 2012 17:41:22 +0000 (19:41 +0200)]
beautify "aux" target

it works better when it castrates the app template, rather than staticlib

Change-Id: If52960fb48d770e8ec096c66b579539512b8d299
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoremove unnecessary magic
Oswald Buddenhagen [Tue, 14 Aug 2012 19:53:25 +0000 (21:53 +0200)]
remove unnecessary magic

getXQMakeConf now gives properly expanded variables

Change-Id: I17d82a1889fc4e1ee6b74c90aa0e4179ece0e415
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoFix compilation of QThread on QNX
Sean Harmer [Thu, 16 Aug 2012 08:22:46 +0000 (09:22 +0100)]
Fix compilation of QThread on QNX

Commit 3ef51efbe75bfb9f1dfbe7df073e9eb745a72ad8 broke compilation of
qthread_unix.cpp on QNX. This fixes it by passing in the threadId to
setCurrentThreadName().

Change-Id: I24f32d8054baedbd9a65b6a80fb1f6f37e07092d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
11 years agoQNX: Allow app to run when spurious 2nd screen is reported
Sean Harmer [Thu, 16 Aug 2012 10:21:06 +0000 (11:21 +0100)]
QNX: Allow app to run when spurious 2nd screen is reported

On the PlayBook, libscreen always seems to report the presence of a 2nd
display even when none is connected. This of course leads to the failure
to query this display for its physical size.

This patch relaxes the demand for a physical size to being for the
primary screen only.

Change-Id: If30b1fd704e7a194a426a0a9f0b85557478105f7
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
11 years agoWinCE: Fix call of GetAncestor in setParent_sys()
Kevin Funk [Tue, 14 Aug 2012 14:05:52 +0000 (16:05 +0200)]
WinCE: Fix call of GetAncestor in setParent_sys()

There is no GetAncestor under Windows CE.
Use GetParent instead.

Change-Id: I87b86961dade0d5c7c8bf6a470f777d32188dcd2
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoFix setParent_sys() to use native methods when checking for toplevel
Miikka Heikkinen [Thu, 16 Aug 2012 10:03:32 +0000 (13:03 +0300)]
Fix setParent_sys() to use native methods when checking for toplevel

QWindowsWindow::setParent_sys() was checking if window was toplevel
using non-native method, which caused wrong result in some cases
involving native windows. Changed the toplevel check to utilize
native method instead.

Task-number: QTBUG-26826
Change-Id: I72ca17c53c1ed7611f141cee17b2edaaa80c6c17
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoFix GDI object leak
Miikka Heikkinen [Wed, 15 Aug 2012 09:54:48 +0000 (12:54 +0300)]
Fix GDI object leak

DeleteObject parameter must be a handle, not a pointer to a handle.

Task-number: QTBUG-26835
Change-Id: Id5de2b0b067bd9fc45c1c8ead4f7d67f0162f070
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
11 years agoremove install/removeEventFilter from QRollEffect
Joerg Bornemann [Wed, 15 Aug 2012 10:39:44 +0000 (12:39 +0200)]
remove install/removeEventFilter from QRollEffect

This class doesn't have an eventFilter method.

Change-Id: Ibd7b3b5b954dd2467c9b4dadd85d3613964d9f7c
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
11 years agoqmake: support incremental linking when embedding manifests
Joerg Bornemann [Wed, 15 Aug 2012 10:18:49 +0000 (12:18 +0200)]
qmake: support incremental linking when embedding manifests

When embedding manifests we modified the EXE/DLL after linking using
the manifest tool. This breaks the incremental linking feature of MSVC.

The MS way to embed a manifest without breaking incremental linking is:
   - let the linker create the manifest file,
   - create a resource that contains the manifest file,
   - invoke the linker again to embed the resource.

The embed_manifest_{exe|dll}.prf files have been removed.
All manifest logic is now in qmake's nmake makefile generator.

With QMAKE_MANIFEST one can specify a custom manifest file that gets
embedded without disturbing incremental linking.

Task-number: QTBUG-22718
Change-Id: Idb9d2644a0577b2002cbdd2d62b695b9171b1bd5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
11 years agoQSlotObjectBase: re-enable tail-call optimisation in impl()
Marc Mutz [Wed, 15 Aug 2012 14:42:06 +0000 (16:42 +0200)]
QSlotObjectBase: re-enable tail-call optimisation in impl()

Two of the three operations in impl() return void, among them the
most common one, call(). Having impl() return bool prevents tail-
call optimisations for these.

Fix by passing the bool return value for Compare as an out-parameter.

Results in a nice decrease in text size
(GCC 4.8-pre -O2 -std=c++11, stripped):

   text    data     bss     dec     hex filename
 507343   13984      48  521375   7f49f tst_qobject (old)
 505551   13984      48  519583   7ed9f tst_qobject (new)

Reported-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I7538c5b3f0992970c089e44f07244e6b62794a1d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
11 years agoQSlotObjectBase: combat virtual function "bloat"
Marc Mutz [Fri, 10 Aug 2012 14:12:58 +0000 (16:12 +0200)]
QSlotObjectBase: combat virtual function "bloat"

In C++, the compiler creates extra functions and data for classes
with virtual functions. This can lead to "virtual function bloat":
  http://www.boost.org/doc/libs/1_47_0/doc/html/function/misc.html#id1382504

This is especially true when the number of instances is of the same
order of magnitute as the number of derived classes, such as is
common with type erasure techniques.

One such case is the QSlotObjectBase hierarchy, which this patch
tackles.

The mechanics of this optimisation are simple: re-implement the
virtual function call mechanism by hand, with function pointers.

But we go one step further and collapse the vtable into a single
pointer to a function that implements all three currently-defined
operations, swtching on an 'int which' argument. This even allows
us to extend this in a BC way, should that become necessary later,
by adding a new Operation and using the void** argument to
transport arguments, if any.

This approach was inspired by:
  Ulrich Drepper: How To Write Shared Libraries, Section 2.4.4
  http://www.akkadia.org/drepper/dsohowto.pdf

Also move the QSlotObjectBase hierarchy out of QObject so as not
to export all the derived classes.

This was pointed out in review by Thiago.

Results (Linux amd64, GCC 4.8-pre -O2 -std=c++11, stripped):

  size tst_qobject*

     text    data     bss     dec     hex filename
   523275   21192      48  544515   84f03 tst_qobject (old)
   507343   13984      48  521375   7f49f tst_qobject (new)

  relinfo.pl tst_qobject*

   (old) tst_qobject: 473 relocations, 0 relative (0%), 240 PLT entries, 240 for local syms (100%), 0 users
   (new) tst_qobject: 323 relocations, 0 relative (0%), 238 PLT entries, 238 for local syms (100%), 0 users

Change-Id: I40ad4744dde8c5c29ef62ed2d82d4b1ede178510
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
11 years agoAvoid an expensive call to toLocal8Bit upon thread creation
Thiago Macieira [Wed, 15 Aug 2012 16:03:50 +0000 (18:03 +0200)]
Avoid an expensive call to toLocal8Bit upon thread creation

QString::toLocal8Bit() will need to call QTextCodec::codecForLocale(),
which isn't the cheapest of the functions, at least the first time it's
run. So avoid calling it when in most scenarios, the name of the QObject
isn't set, and the information is purely for debugging.

Additionally, avoid allocating memory when setting the thread name to
the class name. The class name coming from the meta object is a static
constant string and we can use it directly.

Change-Id: Ief643bad87a51487b1d41c0a2f323e80bb53e8a7
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
11 years agoRemove trailing comma in enum
Thiago Macieira [Tue, 14 Aug 2012 11:15:14 +0000 (13:15 +0200)]
Remove trailing comma in enum

Spotted by ICC:
qfreelist_p.h(127): warning #271: trailing comma is nonstandard
          BlockCount = 4,
                        ^

Change-Id: Ib64d1d19ca0514e7582a295da48cbf6705aa8c44
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
11 years agoQUrl is not necessary for configure.exe, drop it from the .pro
Thiago Macieira [Wed, 15 Aug 2012 14:40:30 +0000 (16:40 +0200)]
QUrl is not necessary for configure.exe, drop it from the .pro

qurl.cpp was removed from the Makefiles on 6ab6b0fc1c594a589d96d17b5ab7,
but I missed the .pro file. You're not supposed to use the .pro file
anyway, it's just for opening in Creator.

But if you forget to remove the qmake build step, it would get compiled.

Change-Id: Ia52ae7349e195df58f76f8d2c5f8b46adfdc7454
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
11 years agoSilence a false-positive warning about uninitialised variable with ICC
Thiago Macieira [Tue, 14 Aug 2012 11:29:24 +0000 (13:29 +0200)]
Silence a false-positive warning about uninitialised variable with ICC

ICC complains like so:
harfbuzz-gpos.c(95): warning #592: variable "error" is used before its value is set
      return error;
             ^

However, line 95 is never executed because the condition on line 94 is
always false. That's why it's a false positive. The same construct
happens in the other two places.

Still, silence the warning.

Change-Id: I168d916d6837d4ac346facfd22b3e5b4e22ef7f0
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
11 years agoMade eglfs work with backing store based applications again.
Samuel Rødal [Wed, 15 Aug 2012 10:18:35 +0000 (12:18 +0200)]
Made eglfs work with backing store based applications again.

Make sure we pick the same config for the context and window surface,
and do not create unnecessary window surfaces for the desktop widget.

Change-Id: I3c8fb3df9ab8a658196e41dfa1705cfca625a2d7
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
11 years agoDocumentation for QWidgetItem::controlTypes.
Frederik Gladhorn [Wed, 15 Aug 2012 11:13:33 +0000 (13:13 +0200)]
Documentation for QWidgetItem::controlTypes.

Change-Id: I673b884ac8513714d733411729a7418c19f05682
Reviewed-by: Gabriel de Dietrich <gabriel.dietrich-de@nokia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>