Commit Graph

9923 Commits (02afd94ef4c1913735bd650ca93279cfb00dc534)

Author SHA1 Message Date
Lorn Potter 275c4b8403 code cleanup. make one way to access system dbus. remove dead uncommented code
Change-Id: Ia53cdc27f354269bb393ac137802b8807652cef9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-08 08:27:09 +02:00
Thiago Macieira 4d93393a6d QUrl stringprep: fix handling of U+0080: it's prohibited
Edge case: a > that should have been >=. Without it, we never ran the
rest of the IDN nameprepping.

Change-Id: I2276d660de3a70d0c561bb18816820d9a0f47e77
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-06-08 05:06:57 +02:00
Thiago Macieira 53388cd8e0 QUrl stringprep: avoid recalculating the surrogates we already know
Change-Id: Icac4e81fff6f7f7fa4f46ec2a08105f8d3d2b403
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-06-08 05:06:52 +02:00
Thiago Macieira 736a052d93 QUrl stringprep: fix handling of prohibited characters
RFC 3454 says about prohibited characters (section 2, "Preparation
Overview"):

   3) Prohibit -- Check for any characters that are not allowed in the
      output.  If any are found, return an error.  This is described in
      section 5.

In other words, we mustn't simply strip the output of prohibited
characters. We must generate an error if they are present. We do that by
clearing the data.

We already had tests for prohibited output, but they were
indistinguishable from being stripped. So instead add some extra
characters so that we can tell whether the label was cleared.

Change-Id: I2d95217c27be5e2d54deed0036cb009e3b7f4886
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-06-08 05:06:47 +02:00
Thiago Macieira 8631227519 QUrl stringprep: fix case folding from non-BMP to BMP
When uc > 0xffff (non-BMP character) and l == 1 (replacement is in the
BMP), we must use QString::replace so the correct number of characters
is replaced.

There's one case testing this in tst_qurlinternal, but it is being
obscured by another bug (false positive).

Change-Id: I32388dd5bef32d4d6804aeeec4904bd5f563e9b9
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-06-08 05:06:42 +02:00
Thiago Macieira 2ccf4c32cc QUrl stringprep: recalculate the current position if the size changes
If the case folding operation results in either expansion or reduction
of the string, we need to adapt. Reduction happens most often when a
non-BMP character is case-folded to a character in the BMP (example:
mathematical signs at U+1D400-1D7FF). Expansion happens in the rare
case of symbols containing words, like U+2121 ℡ (this is part of the
unit test), and one common case: the German sharp S (ß) is expanded to
"ss".

Change-Id: I1bdbdc908b958a89bf30e4bb648d65dfdd9097f8
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-06-08 05:06:28 +02:00
Rafael Roquetto 60df445d3b QNX: fix QQnxWindow
To ensure the correct event order, only set the geometry() once the window is
actually made visible.

We also need to post the expose event even for child windows (i.e.,
windows which have a parent).

Change-Id: Ief80778bc3202352bd194e4b3ba655f619350b1a
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-06-07 22:18:23 +02:00
Jørgen Lind 16eea84aa8 Fix for when we don't have XSettings
Task-number: QTBUG-31418
Task-number: QTBUG-31410
Task-number: QTBUG-31446

Change-Id: I3fbed40054f3e0720b50ada0dc4ad0ae4cb0412e
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-06-07 19:00:26 +02:00
Allan Sandfeld Jensen 21356b3ec3 RecalcAdvances and DoKerning should agree on when to use design metrics
QFontEngineFT::recalcAdvances uses design metrics if hinting is disabled
or slight. QFontEngine::doKerning only follows the QFontEngine::DesignMetrics
flag. This means in some instances the advances will be calculated in
subpixels but kerned in full pixels.

This patch makes QFontEngineFT decide if it should request design metrics
from QFontEngine::doKerning or not.

Change-Id: Ia0236efde2d7269623f690a6074afbe26e07c458
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
2013-06-07 18:07:21 +02:00
Simon Hausmann d8a6a67579 Add internal functions to QObjectPrivate for signal & slot connections in QML
In QML it is common to connect signals to slots that are implemented as
JavaScript functions. QML used to maintain separate data structures that
mirrored the QObject connection list and kept references to the JavaScript
objects necessary to perform the call on signal activation.

The recent addition of functor based QObject::connect makes it possible
to store this information in QSlotObjectBase sub-class instead, which
eliminates any extra bookkeeping.

This patch adds internal connect and disconnect overloads to QObjectPrivate
that allow for connecting QObject *sender, int signalIndex to a given
QSlotObjectBase and similar for disconnect.

Change-Id: I90f43d13eb95bd884d752484cf4faacc446f4d6a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-06-07 16:19:05 +02:00
Frederik Gladhorn cd756e5ed5 Cocoa Accessibility: fix ignoring of objects
On Mac it's expected that some elements are
filtered out of the a11y hierarchy.
We do this with the shouldBeIgnored function.
The problem is that we would ignore some objects
and then return them in the child attribute function.
This is inconsistent and leads to voice over not working.

For example having a plain QWidget with other widgets as
children would cut off all of these widgets, since the
plain QWidget would be ignored.

Change-Id: I5f6c26b272e5ca57d59c1ed1ef47e9a2b1181295
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-06-07 14:54:39 +02:00
Stephen Kelly aff03cbc27 Don't convert built-in types to strings for qDebug.
This was introduced by 7ed15da3 (Core: QDebug and comparison operator
support metatypes,, 2013-03-20).

Change-Id: Id89aaffeee8d519ca73f0b52b1ac8b9d233cb5f1
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-06-07 13:31:14 +02:00
Friedemann Kleint 1828ab8557 Windows: Send a geometry change after Window creation.
Task-number: QTBUG-30996

Change-Id: I03b5e1fdbbdd779f86541291c13e9eb6840ff3c6
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-06-07 11:47:12 +02:00
Friedemann Kleint 476dba9a9f Use QWindow::geometry() for size when sending resize before expose.
Task-number: QTBUG-30996

Change-Id: I9c3589ea67b563f6e588568ee54cc8bbd084f87c
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-06-07 11:47:09 +02:00
Jerome Pasion c889e28483 Doc: Fixed typo in QDialog.
Task-number: QTBUG-31493
Change-Id: I7bb7b249a0336dd949f8c74bcc22c0b7c39d0885
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
2013-06-07 09:18:37 +02:00
Jerome Pasion 25a4405c69 Doc: Rearranged page titles in the <head> of HTML pages.
Before: <title>QtMultimedia 5.1: Camera</title>
After: <title>Camera | QtMultimedia 5.1</title>

"Camera" is page name and "QtMultimedia 5.1" is the assembled project
name.

-Regular page title is the same.
-It's a readability issue to not see the page title right away
-New arrangement conforms to Qt Project and blog name format:
 "<Title> | <Domain>"
-Tested with the tw-parser and it looks compatible with the
 qt-project.org site

Change-Id: Iae0eec9e66b5e21285bdad1e525923f60c72e56b
Reviewed-by: Sami Makkonen <sami.makkonen@digia.com>
Reviewed-by: Nico Vertriest <nico.vertriest@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-06-07 09:17:21 +02:00
Romain Perier 119882714f Cocoa:Fixed crash when sharing QMenu between two QMenuBar instances
Don't insert a NSMenuItem into a NSMenu if this one already belongs to another NSMenu, this is forbidden
in the Cocoa framework and raises an Exception. The solution consists in tagging the menu as sharable
and moving it from one menubar to another when the window gets focus.

Task-number: QTBUG-31342

Change-Id: Ic3bfadd4704f363ac26122ae15547543a0f6d44d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-06-07 09:17:11 +02:00
J-P Nurmi d9e50f203e Expose QKeySequence::StandardKey for QQuickKeyEvent
Change-Id: If3fff3bf1d61e8cd7f757d33637d15c931e21fb4
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
2013-06-06 21:26:44 +02:00
Daiwei Li d4415cdd84 Fix themeHint typo in qcocoatheme: PasswordMaskDelay should be PasswordMaskCharacter
Task-number: QTBUG-31498

Change-Id: Ie6b1b0a2238923e37d52fa2e90782e874bb224b4
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2013-06-06 12:13:32 +02:00
Mikko Harju fdde071b06 Added rotation parameter to qevdevtouch
In some cases the event coordinates reported by evdev are in different
orientation compared to the primary orientation of the platform window.
This commit adds plugin parameter rotate=[90, 180, 270] to rotate the
normalized coordinate system before reporting the touch event.

Change-Id: Ic830a2d259f9d3c5fb63b80afb795d8b400c2ece
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-06-06 10:11:32 +02:00
Kai Koehne c9398312fe Print directories for QT_DEBUG_PLUGINS
So far we stayed completely silent if the user forgot to deploy all
plugins, or deployed them in the wrong way.

Change-Id: Idd776c4b4a2ddffd5da08985e5925248c97e0270
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-06-05 20:16:07 +02:00
Sérgio Martins 805031814b Initialize variable to quiet valgrind.
It's accessed by the Q_ASSERT in QArrayData::data().

Change-Id: I859ef9c736b24857cd3f57f9fa54aafd36e57afc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 18:24:10 +02:00
Bernd Weimer fd956af257 Fixed evaluation of application file path
Empty arguments list could lead to crash, due to access of first element.
Besides, empty application file path will be cached now universally.

Change-Id: Ibe1a668da364d87d8431567dfc999cb394686081
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-06-05 16:11:02 +02:00
Frederik Gladhorn 248420904f Merge remote-tracking branch 'origin/release' into stable
Change-Id: Ic6e1ae60f891a6b2b568936204d2e84db4177fb4
2013-06-05 15:44:22 +02:00
Mikko Harju b73ad2dd19 Prevent touch coordinates outside target geometry
Previously, normalized positions with either of coordinates equal to
1.0 would be reported outside the screen / window geometry, which would
cause hit test to fail.

Change-Id: Ia5e083bd52254c7e05143eedf930be3bcba7a412
Initial-patch-by: Aaron Kennedy <aaron.kennedy@jolla.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-06-05 12:56:00 +02:00
Mikko Harju c97a1bc538 Fixed raw coordinate reporting for touch events
The raw coordinates were not reported by the evdevtouch plugin.

Change-Id: Ia06129edd771b12cc9f6a97dc678b545d226af70
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-06-05 12:56:00 +02:00
Mitch Curtis bd01db4a98 Fix typo in QAlgorithms documentation.
Change-Id: Ic9107f427acc1e009779d39e0a204ea81d54aee7
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-06-05 12:56:00 +02:00
Valery Volgutov 1d8ec5fae2 Fix FBO restoring in QOpenGLTextureGlyphCache
QOpenGLTextureGlyphCache::restoreTextureData restores FBO which
was binded before restoreTextureData call. More specifically,
it restores QOpenGLContextPrivate's current_fbo member. This works
if FBO was binded by QOpenGLFramebufferObject but not if FBO was
binded using glBindFramebufferObject and rendering done via
QOpenGLPaintDevice.

This patch fixes it by querying current FBO using
GL_FRAMEBUFFER_BINDING query and restoring it.

Change-Id: Ia97a21e62566dc39a5191b66d3ca0e3ad0845ce1
Reviewed-by: Valery Volgutov <valery.volgutov@lge.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-06-05 12:56:00 +02:00
Mitch Curtis 9aa24645eb Prevent negative size in QBitArray, QVector and QVarLengthArray ctors.
As shown in QTBUG-24345, QBitArray will exhibit invalid reads when
initialised with a negative size and run under valgrind.

QVector and QVarLengthArray both cause a crash if initialised with a
negative size.

This patch enforces sizes greater than or equal to 0 with asserts and
existing if statements, and hence impose no performance penalty for
release builds.

Task-number: QTBUG-24345
Task-number: QTBUG-30037

Change-Id: I9a969f6016e0a59904a60bbfe9e5360e6f523b87
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 10:46:51 +02:00
Mitch Curtis 4f2c96eaa8 Iterate over the smaller set in QSet::intersect().
When calling intersect() on a large (1000000 items) QSet, with a small
(1000 items) QSet as the argument, the function takes signifcantly
longer than when the operand and the argument are reversed. This is
because the operand set is always iterated over in its entirety.

This patch changes intersect() to iterate over the smaller set. This
reduces the large operand scenario's benchmark to ~0.000063
milliseconds, compared to the current ~134 milliseconds:

1000000.intersect(1000) = empty: 0.000063 (was 134)
1000.intersect(1000000) = empty: 0.000039 (was 0.000036)
1000000.intersect(1000) = 500: 0.10 vs (was 130)
1000.intersect(1000000) = 500: 0.023 vs (was 0.093)
1000000.intersect(1000) = 1000: 0.20 vs (was 139)
1000.intersect(1000000) = 1000: 0.017 vs (was 0.016)

Task-number: QTBUG-22026

Change-Id: I54b25c49c78c458fef355e9c6222da8a64c7681f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-05 09:35:42 +02:00
Frederik Gladhorn 80604a0786 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/plugins/platforms/cocoa/qnsview.mm

Change-Id: I6fe345df5c417cb7a55a3f91285d9b47a22c04fa
2013-06-04 19:34:36 +02:00
Thiago Macieira 76d75fd7df Use the GCC inline assembly when building for MinGW
MinGW has a longstanding problem of providing the MSVC intrinsics that
every Windows developer expects to be there. Other projects have run
into those problems.

So instead just use the GCC inline assembly.

Change-Id: I5651f97f9a4dfbf98ebbf063f91f221eab80b224
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-06-04 18:33:02 +02:00
aavit c11a7d16c7 Fixes QKeyEvent::count() on Windows
All other main platform plugins leave the count parameter at its
default value (1). For improved compatibility, make the Windows plugin
do the same, instead of hardcoding the value to 0.

Task-number: QTBUG-31285
Change-Id: Id87fd559d13f42391be3200d5ff2393285f0d2a6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2013-06-04 16:08:26 +02:00
hjk 55f01addb2 Adapt QtPrintSupport related uic rules
It's no more on QtWidgets.

Task-number: QTBUG-31508
Change-Id: Iba117a4103c2b32173816a4ecb5faa187f169b32
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-06-04 09:53:47 +02:00
Mitch Curtis 46e6bbd229 Mention QRect's int min/max constraints in detailed description.
Task-number: QTBUG-25732

Change-Id: If330768c3075568f09593ed17f26389d3dec3335
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-06-04 02:22:47 +02:00
Tasuku Suzuki 830cbb1aaf Make qtbase compile with QT_NO_TEMPORARYFILE
Change-Id: Ida2f59bb245ef70bf65f7e8944c4c315d5bc2f81
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-04 00:05:55 +02:00
Peter Hartmann 1c901913c0 QNetworkAccessManager: add public methods to pre-TCP/pre-SSL-connect
If an app knows it needs to connect to a host beforehand, it can "warm up" the
connection cache by making DNS lookup, TCP (and if needed SSL) handshake before
the actual HTTP request is sent. When the HTTP request is made, it will be
considerably faster when there is already a working connection.

Here are some typical results from the benchmark:

* Linux desktop with Ethernet:
  "http://www.google.com" full request: 279 ms, pre-connect request: 61 ms,
    difference: 218 ms
  "https://www.google.com" full request: 344 ms, pre-connect request: 60 ms,
    difference: 284 ms

* mobile device (BlackBerry 10) with Wifi:
  "https://www.google.com" full request: 898 ms, pre-connect request: 159 ms,
    difference: 739 ms
  "http://www.google.com" full request: 707 ms, pre-connect request: 200 ms,
    difference: 507 ms

Task-number: QTBUG-30771
Change-Id: I3566b7f08216ab93a39e2024ae7d1ceb7ae21891
Reviewed-by: Jonas Gastal <gastal@intel.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-06-03 23:16:08 +02:00
Andy Nichols fb7e0e24c4 eglfs: Fix bug determining physical screen size
In the situation that the screenSize EGLFS hook had been defined, but
not the physicalScreenSize, the uninitialized contents of
fb_var_screeninfo vinfo would be used to calculate the fall-back
physical screen size.  Since this value is undefined, devices like the
Raspberry Pi would end unable to render DPI dependent fonts.

Change-Id: Ic9f67c1c646cc7b328b695b76a84d78577fefcd8
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-06-03 22:24:07 +02:00
Andy Nichols 51a35f5c02 eglfs: prevent expose/geometrychange loop
This prevents EGLFS from getting stuck after
exposing the first frame, by constantly generating
new Expose and GeometryChange events which are
synchronously processed.

Change-Id: Id3b09821ea31e9c1ddab7c520e782a4e42844a08
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-06-03 22:24:04 +02:00
Oswald Buddenhagen 8d69232b28 let configure create the forwarding qconfig.h again
this avoids that syncqt needs to forward to a yet unexisting file (which
will have a yet unknown location, when syncqt is run at packaging time
already).

the %inject_headers syncqt config variable remains, so it can be told
not to purge "foreign" files.

Change-Id: I127ff6e0b7d5702fb0acaee9a5b7940b482d3608
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-06-03 17:59:31 +02:00
Mitch Curtis 15da0a5af2 Make QTime::toString output milliseconds for Qt::TextDate, Qt::ISODate.
Section 4.2.2.4 of ISO 8601 allows for decimal fraction representations
of dates and times. Currently, when calling
QDateTime::toString(Qt::TextDate) or QDateTime::toString(Qt::ISODate),
the milliseconds will be omitted. However,
QDateTime::fromString(str, Qt::TextDate) and
QDateTime::fromString(str, Qt::ISODate) already support decimal
fraction representations, so this patch just adds this support to
QTime::toString, and hence QDateTime::toString().

Task-number: QTBUG-30250
Change-Id: If58e4b3d3105322c51d11a76b832e5e634d8991f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-03 17:05:12 +02:00
Frederik Gladhorn 7315b3ab2f Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-06-03 12:58:00 +02:00
Thiago Macieira 2cb5f1957a Silence warning in QtNetwork build
qnetworkconfigmanager.cpp:63:9: error: unused variable ‘shutdown’ [-Werror=unused-variable]

This warning was introduced by f273d6fbc0

Change-Id: Ied650a4d94d18495684a8f08ab5f2cd628026fb7
Reviewed-by: Jonas Gastal <gastal@intel.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2013-06-03 09:56:04 +02:00
Ivan Komissarov 1840400a9a Fix leak in QNSView.
Change-Id: Ide0e826bf068340c86d87a8ccbb3bd58b60f6d8c
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-31 23:19:16 +02:00
Martin Smith d12c045a95 qdoc: excludedirs works again
It was comparing an absolute path to a relative path.
These could never be the same. Instead of the relative
path, it now gets the canonical absolute path, so the
comparison succeeds when it should.

Task-number: QTBUG-31404
Change-Id: I9c482d4649d493ce6d4f9a522cb61f2c8a5eb21f
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-31 15:08:39 +02:00
Frederik Gladhorn 883951928f Merge remote-tracking branch 'origin/release' into stable
Change-Id: I0a8fe79a80b7720f76e3c0b03cc2c9a769d4009b
2013-05-31 13:47:45 +02:00
Gatis Paeglis 468a37fa20 Support Mac key equivalent Cmd+Period
On Mac Cmd+Period isa special key combination which never got delived
to Qt application. We can intercept these special keyboard shortcuts in
the performKeyEquivalent function.

Task-number: QTBUG-11386
Change-Id: I680385bde07b2810e8bde86ec9fbbe7e09156c84
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-31 12:28:24 +02:00
Mitch Curtis 530c475d90 Fix typo in QSettings docs.
Change-Id: I96dc2d57f5cc52c162ba0fd38d20141683847423
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-31 11:43:33 +02:00
Thiago Macieira cef67cc8db Fix the host_bins variable in the QtCore pkg-config file
The qmake HOST_BINS property has no /raw variant. We need to use the
regular one.

Change-Id: I38254f77d1039c312913a987353342ce5ed3feec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-31 08:04:46 +02:00
Gatis Paeglis 9e36747786 Use [NSEvent characters] to retrieve the input character.
This is how it was done in Qt 4.

An issue with the current approach was that it did not consider
modifiers when setting a Qt::Key_* value, which would assign the same
Qt keycode for:

a = a(65)
Alt + a = ā(65) [here it should return a unicode value for 'ā']

This is inconsistent with the other platform plugins.

Also in the combination with a dead keys it was returning nothing in
the output.

Task-number: QTBUG-29005

(cherry picked from commit 6730413fcac1d7eb39af3683b87f965c5823cb6c)

Change-Id: Ic28eb55b3a9798ecb6012cc2e3fb18589b8b0392
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-30 17:01:19 +02:00
Gabriel de Dietrich 12ae86119c Mac style: Remove yet another reference to widgets
Change-Id: I545cfe22c6307864cdb18093a37e09a8ad042347
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-05-30 17:01:16 +02:00
Janne Anttila 20d08a96c8 Fix tst_qtendian autotest build for WEC7.
MSVC2008 compiler fo ARM targets fail to compile qToUnaligned when
using sizeof(T) inside memcpy fynction. The compiler fails at least
when the code is reached through the following macros and templates:
    -> tst_QtEndian::toLittleEndian
        -> qToLittleEndian(T src, uchar *dest)
            -> qToUnaligned(const T src, uchar *dest)

The above sequence produces internal compiler error with
MSVC2008/ARM builds when called from tst_endian.

As a workaround sizeof(T) is called outside memcpy function.

Change-Id: Ib4d382c2cebecb6e54bb99fc8fad72db93825fcd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-30 17:01:12 +02:00
Mitch Curtis f587d1de6b Refer to setDragEnabled in QLineEdit's detailed description.
It's currently not obvious how to drag text from a QLineEdit.

Task-number: QTBUG-22413

Change-Id: I5b92ce5c7425a1cb8ee6f401c685424eb9396592
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-30 15:01:35 +02:00
Mitch Curtis 49d9fd1935 Fix incorrect statement in QTreeWidgetItem docs.
Task-number: QTBUG-25598

Change-Id: Ib90578081d4e52877ce4842ebbc824ef74179341
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-30 15:00:55 +02:00
Friedemann Kleint de3d449dcf Windows: Suppress mouse events synthesized by OS.
Change the hint for
QPlatformIntegration::SynthesizeMouseFromTouchEvents to false
for Windows and suppress the events synthesized by OS.

The synthesized events cause touch events to generate 2 clicks
in Quick2.

Leave code as is for Windows CE.

Task-number: QTBUG-31386
Change-Id: Ia0987342dcdd55c8540810da5e4b90518a501ce6
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-30 12:49:54 +02:00
Samuel Rødal 1df7a6a50a Move QBasicDrag and QSimpleDrag to QtGui.
These are useful as default implementations of
QPlatformIntegration::drag(), instead of having it return 0 which will
lead to crashes in Qt Quick 2 and widgets applications that use drag
and drop.

Task-number: QTBUG-31288

Change-Id: I70efa139306ced5d879def0f74e3a72d3bcd64f7
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-05-30 12:49:51 +02:00
Friedemann Kleint aa1b4c0943 Disable precision timers when running MSVC2012 code on pre-Windows 8.
Precision timers can cause the event loop to lock up
when running MSVC2012 code on pre-Windows 8.

Task-number: QTBUG-27266

Change-Id: Idd73731e82843d0d140859bab825bc1a54eccf1a
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-30 12:49:45 +02:00
Topi Reinio 389b6f5161 qdoc: Handle collision nodes when building index files
Currently qdoc skips collision nodes (and their children)
when reading index files. This means that cross-linking
between modules does not work for nodes that are defined
under a collision page node. Most notably, the QML global
object 'Qt' cannot be linked to from outside Qml module
as it collides with Qt namespace.

This change fixes the issue by skipping collision nodes
and only processing their children when writing index
files. In addition, we need to adjust the function that
searches for nodes to the possibility that there may be
multiple nodes with the same name but different type.

Task-number: QTBUG-31096
Change-Id: Ic71d714f85539d8537021c73d8f1a527006a6f23
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-05-30 12:49:42 +02:00
Gabriel de Dietrich 75cdce283f QMenu: Remove last references to QMacWindowFader
It was never ported to Qt 5, and 10.7 has simple API for that.

Task-number: QTBUG-31336
Change-Id: Ie00c4ed3af9cd098c9e63eba1c654f1801aa83aa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-30 09:55:57 +02:00
Gabriel de Dietrich a09a867de0 Cocoa: Allow delayed title setting in menu items
This is what happens in uic generated code. Therefore, we should not
mark an item as text-synced until it's got its text set.

Task-number: QTBUG-31378
Change-Id: I7bb7db8abad922b50546c7669d285369ebf01394
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-30 09:55:52 +02:00
Gabriel de Dietrich 1faafdbe4a Cocoa: Hide empty menus from the menubar
Task-number: QTBUG-31378

Change-Id: I33ab2979a26166fb07e836c85dfc8089af5e1fda
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-30 09:55:47 +02:00
Martin Smith a4fdd382e4 qdoc: "All Overview and HOWTOs" no longer lists internal pages
This page is generated by a function in qdoc
that was wwrriten especially for this page.
It wasn't checking to see of the group member
pages were marked with \internal. Now it does.

Task-number: QTBUG-31197
Change-Id: If3f0e90f1a3748c47b3975373047b04d011d6748
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-30 09:55:42 +02:00
Martin Smith 8230a0d38d qdoc: QML property lists were not shown
For grouped properties, the property list in
the summary section was not shown owing to a
bug introduced when implementing the abstract
base class concept for QML types. This has
now been fixed.

Task-number: QTBUG-31317
Change-Id: Idc2344539ecf3da53e1be6816f59e01922c5c6fc
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-30 09:55:39 +02:00
Tor Arne Vestbø 0fd442aebe iOS: Look up OpenGL symbols using RTLD_DEFAULT instead of RTLD_NEXT
Even if the call site is in the application binary, it's safer to use
RTLD_DEFAULT as that implies using the default library search order.

Change-Id: I1b30bded92b95fc7451fcdbf7afd7444dcecea71
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-29 15:00:40 +02:00
Sergio Ahumada 78511a8afc Bump Qt version to 5.1.1
Change-Id: Id5e2e1c69f09e43460e45d8ccf7a430f3052149b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-29 12:23:55 +02:00
Samuel Rødal 89f219da0c Disable "QBackingStore::flush() called with non-exposed window" warning
This warning is pretty annoying and doesn't necessarily imply that an
application is not working properly.

Task-number: QTBUG-28613
Change-Id: Id0a2ebd91f9e4d59dce3e3e29637988d8e6175a9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-29 08:15:17 +02:00
Samuel Rødal 72768c089a Fixed crashes in QGLTextureDestroyer.
QGLTextureDestroyer will try to make the context current on the GUI
thread, regardless of whether it is owned by another thread. Use
QOpenGLSharedResourceGuard instead which does the right thing and takes
shared contexts into account.

Task-number: QTBUG-31403
Change-Id: I1377f9284995a7ba5af32c85296eef152fc035c8
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-29 08:15:13 +02:00
Friedemann Kleint 81e981a704 Fix QPlatformWindow::initialGeometry() to not touch large windows.
Do not touch windows whose geometry (including the  unknown frame
size) is likely to be larger than the screen.

Remove fix-up in the Windows plugin.

Task-number: QTBUG-30142
Task-number: QTBUG-31071
Change-Id: I13a8ffb9fb9d8c71d35de75094275388fa427f2c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-28 19:56:50 +02:00
Gabriel de Dietrich 85a6446164 Cocoa: Use actual modifiers when sending ShortcutOverride event
Probably a typo since keyCode clearly has no modifiers encoded.

Change-Id: I1c7908b06a759baf7b2c3462861a5d61f8c52b9f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-05-28 19:56:46 +02:00
Benjamin Port aedeb1cca6 Added a placeholderText property to QTextEdit.
This commit adds a placeholder text for text edit. If text edit doesn't
have focus and the document() is empty, this placeholder will be shown.

Change-Id: I8b51f1a246452b63d6390e94853cf2864a7ff05f
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-05-28 10:53:32 +02:00
Richard Moe Gustavsen 875480ed99 iOS: bugfix function portraitToPrimary()
The old implementation was wrong since it did not use the
screen's height (which was already in primary orientation) to
calculate what the new y value of the target rect (which was in
portrait) should be.

Change-Id: Ie5b2241119e244d099e06d85f69953c1d64979aa
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-28 10:17:56 +02:00
Gunnar Sletta 7f1ad7c7c9 Fix transparent toplevels on Mac OS X again..
We're using QWindow::format() to decide opacity or not in
a few places, but this used to resolve to
QPlatformFormat::format() which would in turn return a default
format without alpha set. Instead, return the format requested
by the user.

Masked windows were always broken as converting a 32-bit image
to an Indexed8, doesn't give a grayscale image, but rather
a randomly spreadout set of indices based on the colortable
generated by the converToFormat function.

Task-number: QTBUG-28531
Change-Id: I537288f85c70b1e6194785b9ebcb5ea1f9581cee
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-28 08:07:26 +02:00
Tor Arne Vestbø 9fdb9b269b iOS: Use right DPI for all iPad Minis, not just the WiFi version
The 3G versions are iPad2,6 and iPad2,7.

Change-Id: I43a00e84535d494550bca8a533a6d16af4be6722
Reviewed-by: Ian Dean <ian@mediator-software.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-27 23:50:55 +02:00
Christoph Schleifenbaum 7ed15da3c1 Core: QDebug and comparison operator support metatypes.
This patch adds a way to enable operator<, operator== and operator<<
into QDebug for QVariants with custom types.

Change-Id: I3d12d891bd7252ad2b8f1de69bced354800a1f29
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-27 19:58:19 +02:00
Thorbjørn Martsum 63354e0d09 QToolTip - add static showText with time.
It is nice to be able to control how long time a tooltip is shown.
This is the first part of solving:

Task-number: QTBUG-1016

Change-Id: I8e313df8a2acdc5ccc91d9c8ce956c30c76daf4b
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-05-27 19:58:19 +02:00
Gunnar Sletta 991b817e75 Avoid double-highdpi scaling for attached painters.
updateMatrix will us both redirection matrix and highdpi
scale matrix, so make sure we don't multiply it in twice.

Change-Id: I7394e504746a8de54b4dc79492264deba320538f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-27 17:56:17 +02:00
Ian Dean 27e0ddcd29 Set current directory to application bundle on startup.
Set the current directory to application bundle on startup. This allows
Qt examples etc. that load resources from the deployment path to work
correctly without modification.

Change-Id: I5846de135c39d2158ee6c1ae21493739c3532239
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-27 17:47:20 +02:00
Richard Moe Gustavsen 130ee40b5e iOS: take orientation into account when reporting touch positions
This implementation will look at the orientation of the main
screen to convert the touch coordinates. This will most
likely change in future work, where we might look at a views view
controller instead to decide orientation etc.

Change-Id: Ic7875c5ecc4f21538f82a4f0467350bdf8ecc0b0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-27 15:48:13 +02:00
Gabriel de Dietrich 60768a0af9 Windows: Respect geometry set before native window creation
Task-number: QTBUG-31071
Change-Id: Idab21c5996d1dc31b0a6fab4960c3c48a50d4966
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-27 15:46:48 +02:00
Giuseppe D'Angelo cada1fb4ef Add QComboBox::currentData
Convenience function that returns user data for the current item,
analogous to currentText().

This avoids to having to write the cumbersome

  QVariant variant = comboBox->itemData(comboBox->currentIndex());

(It's quite common to put strings as text and the corresponding
enum values as user data.)

Change-Id: I8c7632c647c5583d18e4e22703aeb4447d73162d
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-05-27 15:19:41 +02:00
Jan Arve Saether cf366e8b86 Made sure items with preferred width of 0 could also stretch
If no stretch factors were specified, we used the preferred size as a
stretch factor. Obviously, that didn't work if the preferred size was
actually 0.

This patch works around this by actually setting the stretch factor to
1.0 if this is the case.
This should work fine in most cases, except for the case where there
are also other items with a preferred size close to 0.
In this case, the item with preferred size 0 will just grow
faster than an item with e.g. preferred size 0.1.

Task-number: QTBUG-31217

Change-Id: I966455da0bdd00308591c7f7cfbc4e134d423e57
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-27 12:38:53 +02:00
David Gil 24466d3542 Add web color QLineEdit to QColorDialog.
This web color QLineEdit shows the hex number of the selected color.

Besides, it can be edited and accepts 3 and 6 digit hex numbers.

Change-Id: Idf629fbdc203fc099d446b31cbb49f2ff56be810
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-27 09:49:41 +02:00
Jerome Pasion 3194df547e Doc: Removed pages from "technology-apis" group.
"technology-apis" doesn't serve a purpose anymore and its product
function is replaced by the new overviews on the landing page.

Change-Id: I1e959981fd163966a54bec0d697bed12007c39e6
Reviewed-by: Geir Vattekar <geir.vattekar@digia.com>
2013-05-27 02:45:21 +02:00
Sze Howe Koh e9723d9d31 QtTest: Output correct library name
"QTest" is the C++ namespace; "QtTest" is the library name

- Edited the logger output in qplaintestlogger.cpp
- Updated documentation
- Updated expected outputs for self-tests

Change-Id: I43c525c43221a8d4e843a00d6d55b0f06ef55fd7
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-27 00:41:46 +02:00
Romain Perier c886491ad0 Reduce the usage of QT_PREPEND_NAMESPACE in the Cocoa platform plugin
This is no longer required as QT_USE_NAMESPACE is used most of the time

Task-number: QTBUG-23946

Change-Id: Ia6225260531adbf34ec1846805b8fe1d66dbaef8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-26 20:09:00 +02:00
Lorn Potter c1d5f46d23 Need to register dbus metatypes to have them work correctly.
Change-Id: Ic994a0747c692fffe8a986eba6f754a6c0eddfa8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-26 01:03:49 +02:00
Richard Moe Gustavsen 683228f8de iOS: don't activate non-toplevel windows
Parts of the code seems to assume that all QWindows are
top-level windows. This will be false when not using
alien, as then, each widget will be wrapped inside a
QWidgetWindow. In that case, we should not tell QPA to
activate the "window".

This bug caused focus handling (and text input) to fall
apart for e.g graphicsview when using a QGLWidget as viewport.

Change-Id: I579db7a84d718973e02e96ed535fe6e25baf4bd5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-24 19:37:44 +02:00
Samuel Rødal 9ae5162b3c Prevent QOpenGLShaderProgram::link() from showing unnecessary warnings.
If the liking didn't fail there's no need to print out warnings. The
warnings can still be accessed by the application after calling link()
through the log() function.

This prevents warnings such as these from appearing:

QOpenGLShader:🔗 "No errors."

Task-number: QTBUG-31326
Change-Id: I03c9be5dfada8822c3ab1c3610eac2fc0a91410b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-05-24 11:53:09 +02:00
Matt Hoosier 6359f42064 QNX: fix buffer creation
During some coding style cleanup in 02311c07 ("QNX: normalize braces")
some braces which were actually necessary got removed.

The result was an spurious report of a fatal error when no underlying
error condition had occurred.

This change restores the braces to preserve the prior behavior.

Change-Id: Ic32fbd5961ce59f6c01476fd2cef6fec0bdae93e
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-05-24 11:53:09 +02:00
radman0x dff296c826 Fixed static linking against QtGui and QtOpenGL
When linking QtGui and QtOpenGL libraries on linux a multiple defined
symbols linker error causes failure. This change renames the offending
class in the QtOpenGL library. For more information see:

http://qt-project.org/forums/viewthread/27458

Change-Id: I05488bf2c5c612476432c11095b24bc2b29c78f2
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-24 09:48:08 +02:00
aavit a3a43abc04 Fixes: QtNetwork compilation for OpenSSL < 1.0.0
Incorporate some more of the API changes between OpenSSL versions
0.9.8 and 1.0.0.

Task-number: QTBUG-31140

Change-Id: Ie719b34e3ec8751f0fbc07d315e82816c110762c
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
2013-05-23 22:00:46 +02:00
Lars Knoll 7878eb6ba3 Fix parsing of long latin strings in the json parser
Latin1 strings are usually stored as 8 bit data in the json binary
format. But that data structure has a size limitation of 16bit, so
we need to fall back to storing the string as 16 bit data if it is
too long.

Task-number: QTBUG-30946
Change-Id: I0069b1367030b0b2f819fd1f04e34c9e2534a2a3
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-23 22:00:46 +02:00
Frederik Gladhorn d3a8bc803c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qdatastream.cpp
	src/corelib/io/qdatastream.h
	src/corelib/json/qjsonwriter.cpp
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbkeyboard.cpp

Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
2013-05-23 21:27:07 +02:00
Friedemann Kleint d2ec7e05eb Fix crash in QCococaWindow::childWindowAt().
Task-number: QTBUG-31297

Change-Id: I96f4652e410334fae54a0012ed917a965becfe5c
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-23 20:01:40 +02:00
Matt Hoosier c1ca272f04 QNX: support underlain foreign windows
Previously, any foreign window was treated as an overlay, with its
z-order being forcibly set above the native Qt windows.

This change adjusts the strategy to treat foreign windows whose initial
z-order is less than -1 (the default z-order used by mmrender for its
overlay surfaces) as underlays; otherwise the foreign window is treated
as an overlay.

Change-Id: Ifbcfd3a956965fa1a347076e9845afa50a81edfd
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-05-23 20:01:40 +02:00
Matt Hoosier 77a06e7e6c QNX: Support window translucency
A few tactical changes were necessary to do this:

* The root window's buffer must be the full size of the window in
  order for transparency to work. We now transition this buffer
  to full-size upon first request of some QWindow to be translucent.

  At the same time the root window is transitioned to being full-
  screen, we also set its alpha blending mode to Source-Over in
  order to permit lower z-ordered apps to show through.

* Set the root window's buffer position to (0, 0) to avoid a momentary
  flicker of unpainted pixels on the far right-hand border as a
  translucent window comes on-screen.

* Use Source-Over alpha blending for normal child windows too.

The QtGui core logic for setting the backing surface pixel format to
something with an alpha channel if Qt::WA_TranslucentBackground is
set on the toplevel QWidget already accomplished the remainder of
the work.

Change-Id: I1c2b31aa6323b4555fa194313f0f5e06ada494fc
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
2013-05-23 20:01:40 +02:00
Gabriel de Dietrich 47a7628023 Cocoa: Amend 5d07a4d944 to avoid an assert in QWidget::mapTo()
For now, we only call 'flushWindowSystemEvents()' for top-level
QWindows.

Change-Id: Ie6f6d3f9b70241820d9c38bcc0caf832d521268b
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 17:47:54 +02:00
Mitch Curtis 964be00403 Fix regression when pasting into QTextEdit from Firefox.
Return the codec if one was found by QTextCodec::codecForUtfText,
instead of returning the default (UTF-8).

Task-number: QTBUG-31293

Change-Id: I95e3260376c00537006b7fbfdc3df5850e1ba657
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-23 16:55:30 +02:00
Friedemann Kleint 26ae24e20b Windows: Fix toplevel window flags for Qt::Dialogs/Qt::Tool.
Task-number: QTBUG-31111

Change-Id: I58dcf8101077f18c7867cae914026c692735fc15
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-23 16:21:43 +02:00
Friedemann Kleint de098e21d1 Improve error message in GL context creation.
Output format, glGetError(), shared context as well.

Task-number: QTBUG-30077
Change-Id: Ibc4a7f9ad99bdcdcb439e719394d2532445c3fbe
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 12:49:39 +02:00
Rafael Roquetto 02311c07cf QNX: normalize braces
Change-Id: I05f140a0626e543535cc74c6f737be9be1e27a5d
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-23 12:49:39 +02:00
Bjoern Breitmeyer ea70ec8711 Fixed CE build of sqlite3
The updated sqlite3 lacks a forward declaration of localtime.
Depending on the CE version that forward declaration
was sometimes available.

Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
(forward-ported from commit fb1649d30b)

Change-Id: Ief6d8ed1cad51fa92a333a20c5dfe781d19761eb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-23 12:49:39 +02:00
Mark Brand 7e0bf979a4 update bundled sqlite to 3.7.17.0
Change-Id: I90c213f1501d71b80babb83a0306b5df8e18e905
Reviewed-by: aavit <eirik.aavitsland@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-23 12:49:39 +02:00
Leonard Lee ad443dfb1d Fix clipping of QTextList decorators.
List decorators may be clipped if you set a large font size and/or
small indent for a QTextList. This fix is to prevent clipping by
moving list decorators and items to left (or to right in case of
right to left layouts) so that the list decorator is always painted
inside the layout.

This commit fixes painting related issue, so auto test is not needed.
The manual test program can be used for verification purposes.

Task-number: QTBUG-5111
Change-Id: I7fdd92399445d33fe9eaf525a05fe5cd860b57c6
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-23 12:49:39 +02:00
Morten Johan Sørvig 5d07a4d944 Process initial expose events immediately.
Required to prevent qmlscene flicker on startup.

Also brings back that qWait() in tst_QGL::graphicsViewClipping()
that seems necessary after all.

Amended-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Change-Id: I14ba6e18ac98e5df1ce8ecbc263b30176b67d111
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 12:49:39 +02:00
Jocelyn Turcotte b2cce40b30 Fix the Mac build on 32bit with c++11
CGFloat is a float on 32bit and qreal is a double. This causes a
narrowing error when building with c++11 support.

Change-Id: Ia73378ff9798d1f547b37f97393564e2c9e3672d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-23 12:49:39 +02:00
Friedemann Kleint 5d5a476e59 Windows: Pass auto-fixed window flags to shouldShowMaximizeButton().
Task-number: QTBUG-28407
Task-number: QTBUG-31258

Change-Id: Ie918fddbeb6adee4ccbfffb2fab62b3d1842d272
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-23 12:49:39 +02:00
Friedemann Kleint 15fbc0112d Suppress "Click to focus" for widget windows.
Calling requestActivate() on native child widgets
can cause focus problems (keyboard input going to
widgets that don't handle it,etc).

Breakage introduced by:
4675681b5e88b178adbdef775ac6a4b1e573458 .

Task-number: QTBUG-30922

Change-Id: I4efdfef6bffc89fe62156d248f05ed99c58bf794
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-23 12:49:39 +02:00
Friedemann Kleint 8078a04e19 Observe initial screen for fullscreen windows.
Introduce flag to determine "create" state and do
not try to determine the screen from the geometry.

Fixes breakage introduced by
ded4613ae4.

Task-number: QTBUG-31166
Task-number: QTBUG-30724

Change-Id: Ibe8df95e0ea84be070fdd06b158a6a10c76d42be
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 12:49:39 +02:00
Friedemann Kleint b94fe52f85 Clear QWindowPrivate::positionAutomatic in setFramePosition().
Task-number: QTBUG-31166

Change-Id: Ic0fa26e93db5a035539850ece819b1df2c58e95a
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 12:49:39 +02:00
Gabriel de Dietrich 004f25df78 QGLWidget: Support retina framebuffer grabbing
And update the opengl/grabber example.

Task-number: QTBUG-31173
Change-Id: If09f1f3634b353d034f51240fc68be6ee7aabb48
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 12:49:39 +02:00
Gabriel de Dietrich 602bd98737 Make QWindow update its screen when moved to a different one
Also implements the Cocoa backend for that.

Change-Id: I32977e12a04e1cf48b12333442482746c69ce133
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-23 12:49:39 +02:00
Samuel Rødal f610814b05 Made the X11 eglfs hooks provide mouse input.
Makes the X11 hooks slightly more useful for testing eglfs.

Change-Id: I53652cef7b9fc6830ee72e44c153fe281bc1bd7d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-05-23 12:49:39 +02:00
Gabriel de Dietrich 27f68818c8 Cocoa: Make sure main window gets focus after closing modal dialog
As explained in the code, this is due to our event dispatcher. This could
also make applications crash due to the way we bind windows to the menubar
in the Cocoa QPA plugin.

Task-number: QTBUG-30451
Change-Id: I6dd190d5b3b83f1216caec0b14414efa771634a5
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-23 12:49:39 +02:00
J-P Nurmi 7a6c0f0673 QFusionStyle: fix highlight colors
Respect the current color group of the palette,
and fix the inactive highlight color.

Task-number: QTBUG-30034
Change-Id: Iddfc15a2dd98d4588c6c587b7aaf64d88538fa28
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-05-23 09:58:18 +02:00
Friedemann Kleint 23fd348631 QPrintPreviewDialog: Prevent changing of page in resize handling.
Task-number: QTBUG-14517

Change-Id: I59e444eed8d44be9fb7213fdbab4be473d595be8
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
2013-05-23 09:31:27 +02:00
Gabriel de Dietrich 9c674c58fb Cocoa: Remove "Incomplete implementation" compilation warning
Change-Id: I1db62c2504b55ef1451cb147d745c19cbef7de1e
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-23 06:37:02 +02:00
Shawn Rutledge 767342dd5d A Dialog should not hide when the application is deactivated
To get this behavior, use Qt::Tool.

Task-number: QTBUG-31133
Change-Id: I4811b5fe7e180a63bcdfe8018b35a56b370d9b61
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-23 06:36:52 +02:00
Dmitry Shachnev d1ad5d6b46 Do not call g_type_init() with GLib >= 2.36
g_type_init() is deprecated and the type system is now initialized
automatically.

Change-Id: I5bf5702136cc948dea0a55676dfee2486f12ca00
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-05-22 23:57:16 +02:00
Samuel Rødal a53e929889 Fixed XCB build with -no-opengl
Task-number: QTBUG-30115
Change-Id: I1651a1cdda2a5370e23fabe631b0742a617631c0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-22 15:24:02 +02:00
Samuel Rødal f3aad61120 Fixed crash associated with reparenting a QGLWidget
We need to make sure that we don't reset() the context when the
QGLWidget is being reparented, as that will lead to the QOpenGLContext
being destroyed and not recreated, leading to a crash in makeCurrent().

Also, don't destroy() the widget if it has not yet been created, as in
that case there's no ParentAboutToChange event sent.

Task-number: QTBUG-31016

Change-Id: I409fff94456802a80bd72b470a6fbaee87505baa
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-05-22 15:23:59 +02:00
Paul Olav Tvete 3c50917a6a Android: Fix crash when using QBackingStore
When making a QBackingStore for a QWindow that was not created yet,
Qt would try to dereference the (null) platform window pointer.

Task-number: QTBUG-31022
Change-Id: I866c71cce9d401ebb598ea4cc91f7cf9bbb30982
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-05-22 15:20:18 +02:00
Bernd Weimer 18db71d601 QNX: Fixed build of QPA plugin
Added private core and gui includes to project file. Those were
implicitly included in the past, but removed with commit 289302e.
Removed redundant module, as well.

Change-Id: I878d9acabc5497702dc282e25d6fdd9016ae2ad6
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-05-22 14:02:36 +02:00
Kai Koehne f9b3b02360 Fix compiler warning about deprecated API
Explicitly disable warnings about qInstallMsgHandler being deprecated.
We have to use it in testlib to not break test cases still using it.

Change-Id: Icf7eb6c4d549f80ef45a4201fab2ac3eb03dda9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-22 13:18:03 +02:00
J-P Nurmi fffca846c1 Fusion palette: add missing disabled roles
Task-number: QTBUG-30034
Change-Id: I98358cfe43963ef27a8aa527d6100095be753305
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-22 13:07:34 +02:00
Shawn Rutledge 381c0050c1 Ignore mouse enter/leave on non-exposed windows
If you put two OpenGL widgets in two tabs, you will have several
QNSViews on the Mac (because using OpenGL forces a lot of the widgets
to be non-alien).  The GL widget on the non-visible tab will not be
exposed, but QCocoaWindow::childWindowAt is recursive and was returning
the last window found which contained the mouse location; but the
children are not reordered when switching tabs.  It should ignore
the invisible windows and report that the mouse entered the
one which is visible.

Task-number: QTBUG-30934
Change-Id: Iae28db56e15815671bf39e1b1f382c8c285532bd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-22 10:31:03 +02:00
Friedemann Kleint d934ddc297 Silently strip leading dot off QFileDialog default suffixes.
Change-Id: Ie41fafe8c2ce7e8ac8dd595ca3809c1da3b386f4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-21 07:55:16 +02:00
Maurice Kalinowski a2d75c5558 apply standard behavior
According to documentation hoverLeaveEvent calls update(), which happens
in QGraphicsItem. As QGraphicsWidget has not been calling parent
implementation that did not happen and e.g. animatedtiles example did
not work correctly.

Change-Id: Ia25dda967bd21298c763996589c63dc173ba6b6a
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2013-05-21 07:13:56 +02:00
Michael Brasser 8a082ad32c Fix linuxfb plugin when fb offset is present.
Task-number: QTBUG-30994
Change-Id: Ic9e80f5bfaf54e89e9a9187f3e73e57015ed8c3d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-20 15:36:52 +02:00
Stephen Kelly 899af081d7 Make CMake not fail if EGL is not found.
As EGL is not a 'public dependency' of Qt, it is ok for it not
to be available where Qt is deployed.

Change-Id: I02dcc5f72ca4437210cff10e8b557e216f3e0419
Reviewed-by: Johannes Lochmann <johannes.lochmann@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-20 15:20:46 +02:00
Stephen Kelly c2f2c8a4e7 Check that files we expect to find actually exist when using a cmake package.
Change-Id: If7c724daa85df5e29e410b8deb4e69beb43ee8ea
Reviewed-by: Alexander Neundorf <neundorf@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-20 15:20:26 +02:00
Oswald Buddenhagen 2bf76918ab mark private dependencies as such
Change-Id: Ic93c8dc5aaad3973e4d4fc6bb3b70ad7c0a632b0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-20 15:20:26 +02:00
Oswald Buddenhagen 289302e61f remove redundant QT statements
the top-level file already adds core-private and gui-private

Change-Id: Ic3e3a9c5683cc43f5e7a1075efbd7ce7c2f41e1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-20 15:20:26 +02:00
Oswald Buddenhagen da03abe54a make sure that dependencies added by the pri files become visible
Change-Id: I0ec56a0a7bd13cd09451cfc27afde1f75cd37cba
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-05-20 15:20:26 +02:00
Martin Smith e469ee1340 qdoc: Brief attribute was written incorrectly
The brief attribute for a C++ property was being written
after the <property> tag had been closed. This has been
fixed by explicitlty writing the brief attribute for each
XML tag that has a brief text to write.

Task-number: QTBUG-31149
Change-Id: Ic3857b8fa50cfb84536b838771751d8b92ed590e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-20 15:20:26 +02:00
Topi Reinio b735ef88a2 Doc: Remove widgets examples from Qt Print Support documentation
The .qdocconf file for Qt Print Support includes examples/widgets in
its exampledirs, presumably because a few examples there have printing
support. The documentation for these examples is not accessible from
Print Support index/module pages, and qdoc prints a lot of warnings
for them (missing images).

There's only few dependencies to examples in Print Support docs.
These are resolved by copying a code snippet to correct place,
and removing \sa links from QAbstractPrintDialog.

Task-number: QTBUG-31137
Change-Id: Iac20d151f93ac16449241c6ee85979781b26e607
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-20 15:20:26 +02:00
Oswald Buddenhagen 85e61297f7 restore QProcessEnvironment shared data thread safety on unix
implicit sharing together with 'mutable' is a time bomb.

we need to protect the nameMap, because concurrent "reads" may try to
insert into the hash, which would go boom.
we need to protect the key/value of Hash objects, because while the
refcounting is atomic, the d pointer assignments are not, which would
also go boom.

we can simply use a QMutex to protect the whole environment, because it
is very cheap in the uncontended case.

Task-number: QTBUG-30779
Change-Id: Iaad5720041ca06691d75eb9c6c0e1c120d4a7b46
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-20 15:20:26 +02:00
Richard Moe Gustavsen c30a7ecce1 iOS: fix bug when reporting the screen position of touch events
The way we reported screen position (and normalized position)
for touch events was just wrong. The old implementation did
not take into account that a view could be anything else than
a direct child of the window, which fails for many cases (e.g
when using QGLWidgets). Nor did it take into account the status
bar, which made it hard to push small buttons since the touch
would always be slightly offset.

This patch calculates the screen pos by converting the touch pos
to window pos, and then subtract the application frame (that
contains the size of the status bar).

Change-Id: Ib7f5f6dcea3a611e1ed75d57fb4a4718564752f0
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-20 15:20:26 +02:00
Rafael Roquetto 2b02d9b064 Fix QEventDispatcherBlackberry build when debug is on
Change-Id: Ia00d0f32e7d552421cc230ffca25085ab0a3a31e
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-20 15:20:26 +02:00
Stephen Kelly b88b09fb16 Make it possible to access QPair and std::pair elements from a QVariant.
Change-Id: I9dc73748073d0d1e43bdadbce73339dfcc1bc647
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-20 13:19:16 +02:00
Thiago Macieira 6c98035c99 QThreadPool: Fix regression from Qt 4 in dealing with priority starts
The optimisation done in cbaf52b099 for Qt
5.0 got the order wrong of the comparison. The queue must be sorted in
decreasing priority order. But since higher numbers mean higher
priority, that means the queue must be sorted in decreasing priority
number order.

Task-number: QTBUG-29163
Change-Id: Iaf3424b9bb445bf5c71518927f37253cead454f3
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-05-20 12:06:48 +02:00
Jan Arve Saether 0cad334ab6 Only call QA::updateAccessibility() if the "control owner" is a QWidget
QGraphicsItems are not accessible, and calling updateAccessibility()
with a QGraphicsTextItem caused the accessibility framework to try
to load a plugin for QGraphicsTextItem. Since that was not found, it
dumped this on the console:
"Cannot create accessible interface for object: QGraphicsTextItem"

Task-number: QTBUG-29720

Change-Id: I4aaa08ee6e97f03617fa08da0c6ef35992efdebf
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-20 12:06:48 +02:00
Liang Qi 57acf1b46c QtCore: fix the number precision in QJsonDocument.toJson()
In JSON, any number is stored in double. We need to make sure we
keep the maximum possible number precision for integer number. In
IEEE 754 double format, the significand precision is 53 bits(52
explicityly stored).

Autotest is included. qint64 and double work fine.

Task-number: QTBUG-28467
Change-Id: I7f857671c50e4334e9329c778f9b4f090f490540
Reviewed-by: Sune Vuorela <sune@vuorela.dk>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-20 12:06:48 +02:00
Eskil Abrahamsen Blomfeldt 2e6e295f61 Never show EGLFS mouse cursor in Qt for Android platform plugin
The hack to use the environment variable for turning off the
mouse cursor is broken when running against Ministro, because
Ministro does not pass the environment on.

A better solution is to make it possible to turn the cursor
in the EGLFS plugin off in the hooks instead.

Task-number: QTBUG-30553
Change-Id: Id09b48c350d2c95de9bb174f7480cf0cd2bf8145
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-20 12:06:48 +02:00
Giuseppe D'Angelo f66af39933 Make QRgb-related functions constexpr
Change-Id: I44b2b60e89a3312889101d7e5c305f4f7c18f7ae
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-20 12:06:48 +02:00
Olivier Goffart e63b831bbd moc: Fix Generator::registerableMetaType
when the type is a pointer to a registerable 1 argument template type.

Task-number: QTBUG-31002
Change-Id: Iac0d6b71b2b805a1876110a0781d02188083c4e5
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-20 12:06:48 +02:00
Gatis Paeglis 3f46b03a66 Use [NSEvent characters] to retrieve the input character.
This is how it was done in Qt 4.

An issue with the current approach was that it did not consider
modifiers when setting a Qt::Key_* value, which would assign the same
Qt keycode for:

a = a(65)
Alt + a = ā(65) [here it should return a unicode value for 'ā']

This is inconsistent with the other platform plugins.

Also in the combination with a dead keys it was returning nothing in
the output.

Task-number: QTBUG-29005
Change-Id: Ic28eb55b3a9798ecb6012cc2e3fb18589b8b0392
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Cyril Oblikov <munknex@gmail.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-20 11:12:56 +02:00
jian liang 403c46b9b7 Fix QLocalePrivate object leaking
Set ref count to zero in QLocalePrivate::create() to avoid QLocalePrivate
object leaking.

Change-Id: I8948c27d59b2038266ab04c6113610b9b4481b45
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-20 10:06:04 +02:00
Gatis Paeglis b8673b8468 Fix ambiguity in shortcut matching
Comparing to the Qt4 implementation, possibleKeys() should skip records
where qtKeys are equal.

Task-number: QTBUG-31132
Change-Id: I2fb073b4dc7291f909cce616f40f7c2491e7cf26
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2013-05-20 10:06:04 +02:00
Olivier Goffart 208e9a2757 moc: recover bad template parsing.
When encountering code such as:
  X<a<b>
moc does not have the mean to know if 'a' is a type or a variable, so the
type parser currently assume that '<' always open a template parameter.
(instead of being the operator<)

The type parser do not care about the actual type, it just need to strip
the string out. The problem is that then the whole rest of the file will
be considered as the type.

With this patch, we also stop the parsing at semicolon.  The type will
be wrong, but this allow the parser to recover and it will continue to
look for more classes after this.

(In other words, moc will no longer break if it encounter such construct
in a header. But it will still not parse such types correctly if used
within a Q_OBJECT class)

Task-number: QTBUG-31218

Change-Id: I1fef6bc58493d7c00df72401c9ad55463b24eaa7
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-20 10:06:04 +02:00
Stephen Kelly 87e27eb870 Add container access functionality for associative containers in QVariant.
Change-Id: I4763a4c157e52918a0a68cba63624c0649aca235
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-20 09:09:06 +02:00
Stephen Kelly 65f953407a Change the ownership semantics of metatype converter functions.
Destroying the instances is a problem because the instances might
have been created in a plugin. In that case, the destructor of
the instance will be implemented in the plugin. As the instance
destruction code is run very late, the plugin might have already
been unloaded by the time an attempt is made to destroy the
instance.

The workaround is to create static instances on the stack.

Task-number: QTBUG-31142

Change-Id: Ic2632c3548a734b742da46d90249916c35705d46
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-20 09:08:59 +02:00
Jørgen Lind 048ce11557 Add BypassWinowManagerHint
Change-Id: Iaf04172aa4fce8d6b354c1c1fc3c376831ee8e91
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-05-20 08:03:48 +02:00
Jørgen Lind 0623d832c7 xcb: fallback to gtk cursor themes
When Xcursor LoadCursor fails to find a cursor

Task-number: QTBUG-27537

Change-Id: I46086c78c3d5bea3c39187dcc55b4774e58f5749
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-20 08:03:09 +02:00
Jørgen Lind 3d43d178e6 Add QXcbConnectionGrabber class
Inspired by QMutexLocker

Change-Id: I66e31091d2a006db3272b627567d95d3e0b1c4f9
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-20 08:02:34 +02:00
Jørgen Lind 0f31a5d91f Introduce QXcbXSettings
This allows you to easily retrieve properties in the XSETTINGS
specification. It is also possible to add listeners to get notified when
a specific property changes.

XSETTINGS is lazy initialized, so it will not be instansiated before
someone uses it. For now the intended use is a fallback for finding
cursor theme

Change-Id: Id47f0613f5876424cd47d721b40da17d3f63429e
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-20 07:36:55 +02:00
Romain Perier 94c7002df3 Improve Qt-in-namespace implementation in the Cocoa platform plugin
Objective-C++ does not support namespaces. In order to make this work,
we decorate each symbol with suffix using the macro QT_MANGLE_NAMESPACE.
However, with such a technic each public symbol needs to be explicitly exported through
this macro. The use of @compatibility_alias allows to define alias to use it
automatically and transparently.

Task-number: QTBUG-23946

Change-Id: Id521b8160bab126fda40a9d960277b1c04cc8b66
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-16 10:45:04 +02:00
Tor Arne Vestbø 3c69751ef2 Prevent windows from jumping when changing geometry on OS X
We were setting the frame origin and content size as two separate steps.
The frame origin was asynchronous, while the content size was synchronous.
This resulted in the window visually jumping/moving, instead of applying
the new geometry in one single step.

We now set both in one go using setFrame, by manually calculating the
frameRectForContentRect. This makes the whole process asynchronous.

Task-number: QTBUG-31039
Change-Id: Iaba46106b9f200c707507f330fa801c99e2e7d89
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-15 05:06:15 +02:00
Liang Qi 69c05bbef4 QtWidgets: avoid integer divide by zero in QProgressDialog
Autotest is included.

Task-number: QTBUG-31046
Change-Id: Ie549b59112f458de478294fa00443a3cf6898c85
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-05-15 05:06:15 +02:00
Gatis Paeglis 252cba3cd5 Don't send the same Input event twice to QGraphicsProxyWidget::inputMethodEvent
Task-number: QTBUG-30705
Change-Id: I6fa02807255d0abf74aa38e94662bbe3d9e642bb
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-15 05:06:15 +02:00
Jens Bache-Wiig a4463311a9 Don't draw size grip on Mac > 10.6
After Apple added the resize functionality to window borders,
they stopped rendering the size grip in most apps. Hence we do not
need to either.

Since the status bar height depends on the status bar being
there, we considered the safest option to keep it but make
it hidden.

Change-Id: Ida06e8f0de0f50d746a7d25bc5a472e22a370645
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-15 05:06:15 +02:00
Gabriel de Dietrich 1caa0c023f Cocoa: Fix Open GL resolution in high-dpi
We permanently enable 'wantsBestResolutionOpenGLSurface' when creating
an Open GL window/surface. We were enabling it once we would detect a
high-dpi Cocoa backend, whitout ever turning it off. Leaving it 'on' on
non-high-dpi displays should not change anything.

Task-number: QTBUG-31000
Change-Id: I3d0c77f7b36f3c22dacd04a50fcc5a7d88af32c0
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-15 05:06:15 +02:00
Jan Arve Saether 27e690e163 Respect specified minimum height for menuBar also if it has HFW.
If the menu bar is subject to height for width (HFW) we should of
course respect that, but in addition we should ensure that the HFW is
within the minimum and maximum height. This also is consistent with how
QGridLayout calculates the effective minimum row height.

This fixes a regression because change 4780f94e391b5e881497c5228661dead
turned QTabWidget into a proper height-for-width citizen, and when
setting a QTabWidget as a menuwidget, the buggy codepath for HFW was
suddenly hit in menuBarHeightForWidth().

Task-number: QTBUG-31057

Change-Id: I3c1bb8063c92d6eda7e9433e44f08967d8e1c43e
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-14 17:57:24 +02:00
J-P Nurmi 0b862e0677 QGV: fix items not to be selected on right mouse button release
Task-number: QTBUG-30990
Change-Id: I421d9169b592da2b468eceb9df4f3f7c6a06e8d6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
2013-05-14 15:21:23 +02:00
Bjoern Breitmeyer 3f1519d40a Fixed WINCE linking error in QProcess
The error was introduced with
28ee554b37

Change-Id: If3e51227af3880496ef2da3a18835b36d65bad78
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-14 15:18:50 +02:00
Andy Nichols 27cbb58a92 Fix breakage of tst_qquickwindow::grab(invisible)
Instead of waiting for -drawRect to call -setView on the
NSOpenGLContext, we go ahead and attempt to set the context as soon as
possible.  If it is indeed required that we call -drawRect first then
will try to call -setView again during -drawRect with the new
NSOpenGLContext.

Change-Id: I33d9f2ba241b49e8cfa6c9156dd5bf5e4cc6b164
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-14 14:45:13 +02:00
Venu 32f09caa35 Doc: Replaced the HTTPS links with HTTP
The HTTPS links fail in Qt Assistant on Windows as the
qt installation package includes qt libraries that are
built without SSL support for legal reasons.

Task-number: QTBUG-31073
Change-Id: I86909abadb1e8164749d924cc53ee05aa57f8f31
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Karsten Heimrich <karsten.heimrich@digia.com>
2013-05-14 11:48:00 +02:00
Oswald Buddenhagen 8739487b1c install host libraries into -hostprefix
... and introduce -hostlibdir configure option for symmetry.

the libraries built for the host have no business in the target prefix.

in principle this code would even support dynamically linked host
libraries, but that's currently unused.

Task-number: QTBUG-30591
Change-Id: I8e600fa4911a020fb0e87fbf7ef2f35647c7c4d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Ivan Romanov <drizt@land.ru>
2013-05-13 21:54:40 +02:00
Thorbjørn Martsum adaa50e37d QHeaderView - add parameter to control sizeHint precision
Currently Qt looks at 1000 rows when scaling a column.
That can be slow in some situations and too inaccurate in others.

With this patch we leave it up to the user to decide how precise
e.g resizeToContents should be.

Change-Id: I6ef60f9a3bb40fc331ce1a1544fdc77488d20ca3
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-13 16:32:50 +02:00
Thorbjørn Martsum 70410467f0 resizeToContents - QTableView to consider cells outside visible area
This makes sizeHintForColumn and sizeHintForRow considering indexes that
are outside the visual area - which is what most people want. It is
a bit weird that scrolling gives '...'

That will make the behavior a bit more like QTreeView, that considers
indexes outside the visual area.

Furthermore it is important since the user cannot just resize a column
when QHeaderView::ResizeToContens is used.

Task-number: QTBUG-4206

Change-Id: Icb209a19ce9e62cd30ca7159a4ad2aa9aadc1b6a
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-13 16:32:40 +02:00
Friedemann Kleint 38dc6ccca0 QWidgetWindow: Prioritize keyboard grabber over popup for key events.
Fix the inline editor of the QMenuBar in Qt Designer not working
due to the key events being sent to the QMenu which is open
at that time.

Task-number: QTBUG-31059
Change-Id: Ic96bc119d0d2566d8f8d6ee62858445a70a447b7
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-13 15:39:35 +02:00
Nico Vertriest e63d262b6a Doc: added scenario in case of failure QNetorkInterface
Task-number: QTBUG-30301
Change-Id: Id68129737b8d584ad36e6888cd7318badf0b4ae2
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-05-13 15:39:35 +02:00
Nico Vertriest a1ef6b0087 Doc: remove references to toWinHBitmap and fromWinHBitmap
Task-number: QTBUG-30738

Change-Id: I5a33493b37488b3ac4f5a499e5c5aa22e4e277f4
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-05-13 15:39:35 +02:00
Mitch Curtis 6f4f844689 Fix typo in QGraphicsItem documentation.
Change-Id: I69e7be75ec8164b81c2cd64fc0d4b475495a3db9
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-13 13:29:48 +02:00
J-P Nurmi 00859fe32f Cocoa DND: respect QDropEvent::setDropAction()
Task-number: QTBUG-31061
Change-Id: Id3275a0510bfa619a52d17cf48a3e48b3bae5354
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-13 13:29:48 +02:00
Gatis Paeglis b8a73f96da Fix HTML data transferring through the Clipboard on Windows
When transferring html formated data through the clipboard
some of the html markup was lost when converting from Windows
clipboard native mimedata to Qt mimedata type.

On X11 we are sending everything - inluding <!DOCTYPE ...><html> .. </html>.
This patch enables the same behavior on Windows.

Task-number: QTBUG-30984

(cherry picked from commit 9e28245da1580e25e77a665b7738c59eb298c422)

Change-Id: Ic0e339ad53955f1d31e8dff92ccf38b6eeec369a
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-05-13 13:29:48 +02:00
Richard Moe Gustavsen 2e3282d5e4 QCFSocketNotifier: initialize member variable to avoid crash
The function pointer "maybeCancelWaitForMoreEvents" was never
initialized to any value. This caused qt_mac_socket_callback
to call that "function" when it had a non-zero value, which caused
a crash under some circumstances.

Change-Id: I1d31be7b5b7c103fdc0204ffa6e9a5ecbb28d062
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-13 13:29:48 +02:00
Friedemann Kleint 65ae781215 QWindowsFontEngine: Fix warnings about GetGlyphOutline() failures.
tst_qglthreads::painterOnPixmapInThread reports

QWinFontEngine: unable to query transformed glyph metrics...

(Desktop OpenGL only).

Task-number: QTBUG-28264
Change-Id: Ib456905a13a95037ec13dfc4cb828f830076ee89
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-05-13 13:29:48 +02:00
Kevin Ottens 64a2e00e37 Allow to filter the type of fonts displayed
QFontComboBox had convenient filtering options but somehow not
QFontDialog, so provide the same type of flags and a similar behavior.

Change-Id: Ia8efabc60ae795673c772ff8ed63fd49244a5bb9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-13 12:11:21 +02:00
Thorbjørn Martsum 587a15739b QTreeView - clean up comments (do not add spans)
Maybe spans would be better in QTreeView than QHeaderView - but
from what I have seen of them (complex and slow) I doubt that
it is what we want in QTreeView.

Beside that the code removes a dead line of code, that is bug.
This is a comment fix that does not change the code.

Change-Id: I4c67a95c4bd2904612d6146077b7cbd59de7bdd6
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-13 12:11:21 +02:00
Andy Shaw 12e84748aa Ensure the hovered signal is emitted for the action and menu for Cocoa
In the Cocoa platform plugin the hovered signal() was not being emitted
for the corresponding QMenu. This now ensures it is emitted for the
action itself and its QMenu.

Task-number: QTBUG-30841
Change-Id: I3cfe634a71de7b55550e2561eb1c6a939536216d
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-13 11:18:41 +02:00
Gatis Paeglis a77e4ea207 Restore cursor before sending QDropEvent
When users created a modal window in a dropEvent(QDropEvent* event),
the cursor was not restored to its original shape until after the modal
window had been dismissed.

Change-Id: Id4723e3cb66b36a3ca18ff097a3993563816d9e1
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-13 11:18:41 +02:00
Gatis Paeglis 29b9b92f40 Don't send QMouseEvent events from the QXcbDrag::timerEvent()
This is not needed. The DnD initiated scrolling is done by
installing an eventFilter which forwards all MouseMove events
to the QGuiApplicationPrivate::processDrag which creates and forwards
all the necessary QDrag* events. QAbstractScrollArea has its own logic
in the timerEvent() to make the view scroll when the pointer is standing
still on the edge and the drag process is still ongoing.

With the current implementation, widgets (during the DnD) were receiving
DragMove events even when the pointer was standing still outside auto scroll
areas.

Task-number: QTBUG-28171
Change-Id: I355d88f3eab0ad39f916f84d66f5d0af7c0ff93e
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-13 11:18:41 +02:00
Eskil Abrahamsen Blomfeldt 151dd9c67c Fix transformed raster fonts on Windows
We removed all Q_WS_WIN code when going to Qt 5. One of the things
removed was the condition that we do painter path text rendering
for transformed, non-ttf fonts, since the GDI engine does not support
transforming those. This has now been reintroduced and adapted to the
QPA way of doing things, by checking for it in the font engine subclass.

Then there was the problem that QStaticText only supports cases
where the font engine can transform the glyphs. Thus we need to fall
back to regular text drawing in drawStaticText() for unsupported cases,
and we need to skip the optimized path in the raster engine (which
goes to drawStaticTextItem)

Task-number: QTBUG-30932
Change-Id: I17ba7355ee127811b0e77bb3a9b9db092e99893b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-13 11:18:41 +02:00
Thiago Macieira 4c13b53702 XCB: Handle new enum value in switch
The new enum value was introduced in f3612f39ff

Change-Id: I9ab5d8fba459408246e9a6f40c5c086af5abbf82
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-13 11:18:41 +02:00
Thorbjørn Martsum 00b4bd0a42 QWidgets QPA - remove wrong setting of mouse timestamp
The comment to the code said it was to avoid double click.
However it actually breaks wanted double clicks.

The reason for it must be that the replayed event in earlier
code versions could be changed into a double click (together
with the first event).

However (now) we only test qt_replay_popup_mouse_event in
void QWidgetWindow::handleMouseEvent(QMouseEvent *event);

Regardless what kind of event we receive as input it will send
QEvent::MouseButtonPress when it sends replay mouse event.

I.e. it will then call QCoreApplication::sendSpontaneousEvent(r,e)
=> QCoreApplication::notifyInternal(receiver, event)
=> QCoreApplication::notify(receiver, event)
=> QApplicationPrivate::notify_helper(receiver, event) (+filters)
=> (probably) QWidgeWindow::event(receiver, event)
=> further handling in widget classes.

That especially means that it will *not* get into the function
QGuiApplicationPrivate::processMouseEvent where doubleclicks are
created. Therefore no doubleclick can be made from the extra event.
That makes the statement have no good effect - just side effects.

Change-Id: I190baff3c060548775201695e324059560bb7106
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-13 09:27:38 +02:00
Sze Howe Koh b9adf2a90e Clean up old PostScript printing code
PostScript support was removed back in 2011:
34f712e79e

- The QPSPrint* classes are gone
- The QPrinter::OutputFormat enum only has NativeFormat and PdfFormat
  constants
- QPaintEngine::PostScript is unused now

Change-Id: I27d595b92341f41e14bd1e4fd860eac6826d7890
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-12 13:58:04 +02:00
Andreas Holzammer 741eb8cbb1 QNX: Add support for WindowDoesNotAcceptFocus flag
Set SCREEN_PROPERTY_SENSITIVITY to SCREEN_SENSITIVITY_NO_FOCUS of the
screen window when the Qt::WindowDoesNotAcceptFocus window flag is set.

Change-Id: Iac0764a84186c382dcd3f4bdd31dd24ac15df768
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-05-11 15:05:47 +02:00
Thorbjørn Lund Martsum fff9119028 QSplashScreen - add message function
There is no point in not being able to get the message.
Sometimes it can be the case that we just want to append a dot
(or something else) on the existing message.

Change-Id: I171495f1edc568ae1654f43b3cf734a4eb67d374
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-11 06:52:56 +02:00
Sze Howe Koh 8f26a9aa64 Doc: Remove PostScript print support
PostScript support was removed back in 2011, but not documented then:
34f712e79e

Change-Id: Ie818bf5f733422db910efadd57efa0ddabcc5175
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-11 02:59:08 +02:00
Gatis Paeglis 96d00ed19b Fix HTML data transferring through the Clipboard on Windows
When transferring html formated data through the clipboard
some of the html markup was lost when converting from Windows
clipboard native mimedata to Qt mimedata type.

On X11 we are sending everything - inluding <!DOCTYPE ...><html> .. </html>.
This patch enables the same behavior on Windows.

Task-number: QTBUG-30984

Change-Id: Ic0e339ad53955f1d31e8dff92ccf38b6eeec369a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-10 23:48:44 +02:00
Gatis Paeglis d1bf366e42 Use [NSEvent keyCode] to retrieve a virtual key code.
No need to use old style Carbon Event Manager function when there is
Cocoa [NSEvent keyCode] equivalent for retrieving virtual key code.

Change-Id: I5cceb76fc662e42a46a17dc69131091a64ca6060
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-10 23:48:32 +02:00
Matt Fischer d37dc75116 Improve support for <MODULE>_PATH options
Several modules, including DBus, MySQL, and OpenSSL have
configure options of the form <MODULE>_PATH, which is used
on Windows (where pkg-config is not present) to specify the
locations of third-party libraries.  These switches had been
implemented by adding extra variables which were referenced
in .pro files, to add the appropriate compiler and linker
switches.  This is undesirable because it means there are
two independent paths for adding the switches to the build,
which can get out of sync with each other, and indeed this
had happened for some of the DBus tools.

To remedy the situation, all three of the switches were
reworked so that they added values directly to the principal
variables that are used in the project files.  This reduces
maintenance, by ensuring that the pkg-config and non-pkg-config
paths appear the same to the rest of the build system.

Change-Id: Iae342f1d14b79fbcfef9fe38aadc803ad3141799
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-10 19:39:53 +02:00
Andy Nichols cd2a51a66f Fix Invalid Drawable error for QGLWidget on Mac
You are not supposed to call NSOpenGLContext -setView: for a view that
has not yet called drawRect.  We we attempted to do this, we would get
the invalid drawable error, leading to QGLWidgets just drawing garbage.

Task-number: QTBUG-28175
Change-Id: I47aef07b4676f2db8591f98fc1661f6f447bdef9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-10 17:43:52 +02:00
Stephen Kelly 5c86dd5401 Fix module name in license headers.
Change-Id: I71afbb3170869f3cd0313fb7c707062d1599251c
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-05-10 17:00:40 +02:00
Venu 0f38fe972e Doc: Updated the addtional information about elide marks
Added the same information for QFontMetricsF::elidedText.

Task-number: QTBUG-30865
Change-Id: I57791de21f5721d7a505c3d13f450e5ec6cd2730
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-05-10 16:58:24 +02:00
Tor Arne Vestbø 5e1bdf1ee8 Fix warning about unused variable when not using any SIMD drawhelpers
Change-Id: Ic87be3b6c7afbde869bd011a3a585b0fe7dbf15d
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-05-10 12:09:41 +02:00
Topi Reinio ab345856b1 Doc: Fix invalid exampledirs in qtopengl.qdocconf
Remove redundant and invalid exampledirs definition from .qdocconf
for Qt Open GL module.

Change-Id: I5a725bf57d78b2fd35aa4dbd24e8cb3881499ed3
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-10 12:09:41 +02:00
Topi Reinio 2e685628b9 qdoc: Don't try to add html files for images in .qhp
QDoc adds document nodes as files into the .qhp, including nodes with
image subtype. This will generate a lot of unnecessary warnings for
missing '<image>.png.html' files from qhelpgenerator when running
'make docs'.

This change makes qdoc skip the above step for image nodes to remove
the warnings. The images are still always added to .qch in a separate
step.

Change-Id: Ib07fc8a3ce65f5d4dd700daf00f5f6a36f74a696
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-10 12:09:41 +02:00
Jørgen Lind c1e24f8838 Implement apostrophe in windows cmd args
Task-number: QTBUG-15379

Change-Id: I4a2ca942d2dbfa490302858b589e00bd91e25636
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-05-10 12:09:41 +02:00
Bernd Weimer ebd5de126c BlackBerry: Revised error handling in event dispatcher
Added an upper bound check for socket notifier file descriptors. Too
high FDs have been a real source of failure.
Added compiler hints to allow error-free code path run faster (errors
are highly unlikely) and adjusted warning messages (some were misleading
and too long).

Change-Id: I1c9c41f5d006ca9d3a28214c3a464555b8a1c71f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-10 11:41:27 +02:00
Peter Hartmann 3be197881f QSslConfiguration: add API to persist and resume SSL sessions
Session tickets can be cached on the client side for hours (e.g.
graph.facebook.com: ~ 24 hours, api.twitter.com: 4 hours), because the
server does not need to maintain state.
We need public API for it so an application can cache the session (e.g.
to disk) and resume a session already with the 1st handshake, saving
one network round trip.

Task-number: QTBUG-20668
Change-Id: I10255932dcd528ee1231538cb72b52b97f9f4a3c
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-05-10 09:15:55 +02:00
Mitch Curtis 9a7bc0fc1b Rename Numpad to Num, ensure Numpad is translated in all cases on Mac.
Numpad is unnecessarily long.

Change-Id: I19a6ce129e26a4f6f8344f514317214c48abde6e
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-05-10 09:10:45 +02:00
Thiago Macieira 7ebf21e004 Defer enabling std::atomic on GCC until GCC 4.7
The implementation that GCC came with from 4.4 to 4.6 used external
locks for most platforms, other than x86. It's unsuitable to be called
"atomic" at all. More importantly, it's not behaviour-compatible with
Qt's own QBasicAtomic classes.

Change-Id: I92a0beab58504e6bd7cd236d358fef905c69821c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-10 03:45:35 +02:00
Thiago Macieira ea461b7800 QProcess: leave a warning about the signal with overload, for Qt 6
You can't write:
  connect(proc, &QProcess::finished, [](){});

because of the overload.

Change-Id: I651cc56ee15481392590dc44942d8e814fad75f6
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-10 03:45:33 +02:00
Tor Arne Vestbø 1b2d3be446 Sanitize QT_COMPILER_SUPPORTS_xxx in qcompilerdetection.h
... instead of scoping the defines in qconfig.h, which relied on the
Q_PROCESSOR_xxx defines and meant that we had to include qconfig.h
after qprocessordetection.h, which added a whole bunch of other
dependency issues.

We now let configure write QT_COMPILER_SUPPORTS_xxx to qconfig.h as
before, without any scoping, and then undefine the ones that don't
apply for the given processor. This means we need to include
qprocessordetection.h before qcompilerdetection.h in qglobal.h,
but the former does not depend on the latter, so this should be
fine.

Change-Id: If00c00d405463e9626fa0f7f5e6b17f68778904f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-10 01:12:40 +02:00
Sérgio Martins 95fe97dbcb Remove QT_NO_FILEICONPROVIDER ifdefs
FILEICONPROVIDER isn't listed in qfeatures.txt and Qt doesn't
build without it.

If you need QT_NO_FILEICONPROVIDER, besides reverting this commit,
you'll need to add a good amount of ifdefs to QFileDialog,
QFileSystemModel and QFileInfoGatherer classes.

Change-Id: Ic288c90268f6a900e160ba8eb4457580d1fd7a5a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-09 17:01:03 +02:00
Rafael Roquetto 6dfba7c628 QNX: Use 'disabled' child window buffers.
Because there is only one QBackingStore per top-level window, child windows do
not need to have their own buffer, since Qt will use the TLW backing store as
their drawing surface. Since QNX's libscreen does not support windows without
buffer, a 1x1 buffer is used instead.

Change-Id: I4b81fdd0f3e6059c46b1d4302d2a754d72dc8a68
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-09 14:56:32 +02:00
Sérgio Martins 46685f755b Windows: Introduce QFileDialog::DontUseCustomDirectoryIcons
Folders can have a custom icon, set by the user. Some system
folders also have one, for example c:\windows\fonts.

This option allows you to disable this behavior, you'll get the
folder directory icon.

As a side-effect, you'll get a very big performance improvement
on removable/network media: 2 seconds vs 60 seconds on a SDCard
with 10000 folders.

Change-Id: Id55ea628186e0a6523585ec7a4ff622d6f5da505
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-09 14:56:32 +02:00
Friedemann Kleint 0e9ea64edc Add Style hint for Clear buttons within QLineEdit.
Initial-patch-by: Kevin.Ottens@kdab.com

Change-Id: I4893923d5015535eb6d934636d6b5925088d7be8
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
2013-05-09 14:56:32 +02:00
J-P Nurmi 71034bb2ea QMacStyle: fix transient scrollbar fade out animation
If a transient scrollbar was hidden during the fade out animation,
it got stuck visible after being shown again. A regression introduced
by f52177829a.

Task-number: QTBUG-31060
Change-Id: I1cda16c6afa4370cce4702d3b4fdaee9f44f9ab9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-09 12:17:59 +02:00
Albert Astals Cid 95cab90b10 Make QFlags enum flags (C++11 strict enums) friendly
Change-Id: I9ccb3e4d281a545ca1845db4f6aa7ac6c04e8621
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-09 12:17:59 +02:00
Jake Petroules f7eea69a2a Utilize the new Q_OS_MACX define.
All occurrences of `#if defined(Q_OS_MAC) && !defined(Q_OS_IOS)` have
been replaced with `#if defined(Q_OS_MACX)`.

Change-Id: I5055d9bd1845136beb8ed1c79a8f0f2c0897751a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-09 12:17:59 +02:00
Jake Petroules bf10f2be19 Repurpose the former Q_OS_MAC synonym "Q_OS_MACX" to mean "OS X".
The equivalent was done earlier for qmake, and this will enable
developers writing OS X-specific code to use #ifdef Q_OS_MACX as
opposed to overly verbose #if defined(Q_OS_MAC) && !defined(Q_OS_IOS).

The sole usage of Q_OS_MACX within qtbase has been changed to the
now appropriate value and documentation has been updated.

Change-Id: I2c59eea02e94b691b705170b2f96a97940fdc756
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-09 12:17:59 +02:00
Lars Knoll e1d3687d64 Fix crashes when creating large documents
Compact an object in regular intervals when inserting
data into it, to avoid the object becoming huge.
Compact an object/array before inserting into another
array or object.
Check that the document doesn't get so big it's overflowing
the internal data structures.

Task-number: QTBUG-29288
Change-Id: Id39d80dac1e7d5a11f40819f41b4b336bce16947
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-09 10:20:21 +02:00
Olivier Goffart 9cc106d9d7 Fix a case of connect()ing to signals declared in a base class
Fix connection to pointer to member signal that belongs to the base
class, but whose type is a pointer to a member of the derived class.

The current code only use the QMetaObject of the type coming from the
function type to look up the signal id. But if the signal was casted
to a pointer to member function of a derived type, then we also need to
look in the base classes

Change-Id: Ib98fc38f63942946acb34d9f83c100991d58e4e5
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-09 08:23:48 +02:00
Thorbjørn Martsum 7e6fbb9af1 resizeToContents - QTreeView - improve sizeHintForColumn
QTreeView actually had a better model than QTableView, but after
previous patches QTableView now has a better one.
This patch makes sizeHintForColumn similar to what QTableView has.

Change-Id: I2f2d35e7aa66fc8990f54e2f4a12d97f490840e5
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-09 06:45:11 +02:00
Thorbjørn Martsum 03c761287f resizeToContents - move some of sizeHint into separate functions
Some of sizeHintForColumn is now moved into widthHintForIndex.
(and in QTreeView some of sizeHintForRow into heightHintForIndex)

This makes the code a bit more readable and it prepares some
extensions that will use these functions more. There should
be no semantic changes in this patch.

In releasemode this does not seem to have a performance cost.
(QTableView actually seemed to be a bit faster)

Change-Id: I940432ee01715ce94cd6aab5f3b2aa00dcd19ace
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-09 06:45:01 +02:00
Thorbjørn Martsum 03c5eacfbb resizeToContents - QTableView - faster hint when view is hidden
In some situations we can get into resizeSections in a hidden
QHeaderView. If the headerView is hidden then we look at all the
rows, and that can be extemely expensive for a large model.

This patch limits the sizeHint with only looking at a maximum
1000 rows. Though this is more inaccurate it is also faster -
and it is not much different from what QTreeView does.

Change-Id: Ief4b54c5a3c5a0db02e8b595c9b9b3162633ee67
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-09 06:44:54 +02:00
Gabriel de Dietrich baa2822077 Revert "OSX: obey the Qt::WindowTransparentForInput flag"
This reverts commit 79e729e111, which
partially fixed QTBUG-30122 and will need to be reopened.

On the Creator side, we think using the Qt::ToolTip flag is a bit unsafe
since tooltips are supposed to have very limited interactivity. We would
like to propose to use a similar pattern as in QComboBox instead.

Task-number: QTBUG-30702
Change-Id: I245b7d8b16ac870564ea44f24f481ebfec8ca9a1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-08 14:07:41 +02:00
Olivier Goffart 3e44a72ae7 Remove references to inexisting enums in Q_ENUMS
moc currently silently ignores them, but I have a version which display
a warning.

Change-Id: I9a239cb7e99d40a57a013fb66357c4a6426d6e8b
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-08 14:07:41 +02:00
Stephen Kelly 929e08a3d6 Fix since version of new metatype conversion functions.
Change-Id: Icedd0942eaef9bdcf034d747f0a03a00ca461a95
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-08 12:46:09 +02:00
Stephen Kelly 508ee5616b Add automatic container access registration for built-in containers.
Change-Id: I4d590c23e072994930922ff73367600f848fbcf0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-08 12:45:59 +02:00
David Gil cfaa98011b Fix typos and style in QInputDialog's docs
Change-Id: I1285938efd252346c4016c8f059c7e4f78ca12a9
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-08 12:01:29 +02:00
Giuseppe D'Angelo 305300cd9c Avoid a QStringRef -> QString conversion by using the new qt_hash overload
During qHash refactorings, this line was changed as qt_hash didn't have
an overload taking a QStringRef. This causes a performance regression
w.r.t. the same code in Qt 4.

Task-number: QTBUG-30821
Change-Id: I17b27a54a73cb9061c20f1bd7f79d0c405050edd
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-05-08 12:01:29 +02:00
Kai Koehne ab94a98b58 QUrl: Fix compiler warning about uninitialized var
Fix gcc 4.8.0 warning about potential use of uninitialized variable.

Change-Id: I0881b1209e9156323b2710c50256d4bed83930ca
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-08 12:01:29 +02:00
Martin Smith 0317763781 qdoc: Documentation for QMetaObject::Connection now appears
qdoc's faux C++ parser did not recognize class declarations
of the form:

class Name1::Name2 {
...
};

...where class Name2 is nested in class Name1. Now it does,
but this fix doesn't handle deeper nestings. doc needs a
proper C++ parser.

Task-number: QTBUG-28664
Change-Id: I5adf88cc1b2ce03f5565250734416bf9592914b5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-08 12:01:29 +02:00
Martin Smith 843b7f1a17 qdoc: Briefs from other modules now show up
The brief text for a documented thing is now output as an
attribute of that thing in the module's index file, and it
is reconstituted in the thing's tree node, when qdoc reads
the module's index file later. Only the verbatim text of
the brief is saved in the index file, i.e. no links or
other markup.

The effect is that brief texts can be used in other modules.

Task-number: QTBUG-31021
Change-Id: I932a0c85259b6d1901138f0c0959ddb9815b7db5
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-08 12:01:29 +02:00
Topi Reinio d4966a9364 qdoc: Standardize paths used in example and demo manifest files
There is no longer any difference in install directories between demos
and examples (QT_INSTALL_DEMOS is obsolete and points to the same dir
as QT_INSTALL_EXAMPLES for compatibility). This change removes any
special handling of demos' paths used in manifest xml, enabling the
demos to be visible in Creator welcome mode as well.

Change-Id: I5afdf578a42d001fab05979d3ea1102fd52b51da
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2013-05-08 10:01:05 +02:00
Mitch Curtis 83315ce8b2 Revert QDateTime serialisation to pre-Qt 5 behaviour.
In Qt 5, I managed to break the guarantee that a deserialised local
datetime is the same time of day (potentially different UTC time),
regardless of which timezone it was serialised in. This happened after
I fixed QTBUG-4057 with If650e7960dca7b6ab44b8233410a6369c41df73a,
which serialised datetimes as UTC.

This patch reverts QDateTime serialisation to pre-Qt 5 behaviour to
restore the guarantee and consequently re-opens QTBUG-4057.

Change-Id: Iea877f7ed886f530b928067789b53534e89fe8cb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-08 10:00:29 +02:00
Gabriel de Dietrich 7e7d40eeb7 Cocoa: Add support for ForeignWindow window type
Necessary to make QWindow::fromWinId() work on Mac.

Change-Id: I0dc3a1b0d63cff61d484693aee711dc54fea6b2f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-08 09:48:05 +02:00
Gabriel de Dietrich bdebec4e2e Menu item shortcuts reaching Qt's event loop are disabled
See comment in code and Cocoa event dispatching overview at
https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/EventOverview/EventArchitecture/EventArchitecture.html

Task-number: QTBUG-30657
Change-Id: I88907aeeefa4962e1121495cd51af17a8e71b7de
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-05-08 09:48:01 +02:00
Friedemann Kleint 649fa0b004 Suppress warning about unsupported frame strut events.
The warning causes a test failure since it occurs with XCB.
Introduced by enabling frame strut events for all widgets
by f2fcf75381 .

Task-number: QTBUG-30530
Task-number: QTBUG-29012
Change-Id: I025b55f5198a270072b33cae033221709db256aa
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-08 09:36:30 +02:00
Gatis Paeglis c5a6b894e7 Fix the assert failure in QShortcutMap::find
Don't send Qt::Key_unknown down the shortcut handling pipe, because
unknown keys are not part of a shortcut sequence and results in an assert.

Task-number: QTBUG-30871
Change-Id: Idd451fb793bd07124a96d75ed7b936f7ff584f28
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-08 08:12:27 +02:00
Miikka Heikkinen 01bc34088e Fix tabFocusFirst when that item is removed from QGraphicsScene
If tabFocusFirst is not cleared or set to another valid item,
there will be crash later if the removed item is deleted after
removal.

Task-number: QTBUG-30923
Change-Id: Iba9a6ce9334c52f8e552b0accda95ebb5fcfcdb1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-05-08 06:47:29 +02:00
Thiago Macieira bf2a0c795e QLocalePrivate: remove unused dataPointerForIndex function
Change-Id: I0cd3f8a526e11c3df53fe0cbb063e01c5a3564f9
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-05-08 06:05:40 +02:00
Thiago Macieira 8aff3d0bed Add a pair of constructor/assignment function pairs to QPair
To allow copying one QPair of two types to a QPair of two different
types.

Change-Id: Ie7aa84cf5a361be6b7d242517578172c35bcacfd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-08 06:05:35 +02:00
Stephen Kelly 620f788f86 Add QVariantList extraction from a QVariant with a sequential container.
Change-Id: Id9fac7bf47ed3fbb385222b25941215ac24b8b88
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-08 06:02:53 +02:00
Stephen Kelly 01fb843af8 Add QVariant container iteration API.
A new set of classes is introduced for iterating over the contents
of a container within a QVariant without knowing the exact type of
the container, but with the guarantee that the element type within
the container is a metatype.

The implementation of the iterable interface uses
the stl-compatible container API so that we can also iterate over stl
containers, or any other container which also conforms to stl norms.

This enables the functionality in the bug report.

Task-number: QTBUG-23566

Change-Id: I92a2f3458516de201b8f0e470982c4d030e8ac8b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-08 06:02:45 +02:00
Christoph Schleifenbaum f7b313e6d8 Core: Support for converting user defined QVariant types.
This patchs allows the user to convert defined QMetaType types like
MyType to be converted by using e.g. QVariant::toString(), mapping to
MyType::toString(). Also all the other QVariant::toXYZ() methods are
supported so far.

The patch adds static methods QMetaType::registerConverter supporting:
- implicit convertion
- conversion using member method of source type
- conversion using unary functor

Change-Id: I4f1db83d9c78bcc9df5c42f82f95cce0480cdcc3
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-08 06:02:35 +02:00
Jonathan Liu 157596b1c2 Specify gnu_printf for message formatting with MinGW
The custom printf formatter Qt ships supports e.g. %lld, which is part
of gnu_printf, but not ms_printf. This fixes a lot of MinGW warnings.

Change-Id: Iff600f20ac23ecb88c4b569d2e668f5d4af6ef27
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-05-08 03:16:35 +02:00
Olivier Goffart 263b86a559 moc: use fprintf instead of qWarning
qWarning now depends on QT_MESSAGE_PATTERN, depending on that variable.
It will show things like the moc process id or the Parser::error
function name.  We don't want that.

Change-Id: I5b35401200f0f7de2442aa77d700a82402081489
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-05-08 00:55:15 +02:00
Richard Moe Gustavsen 758f064558 iOS: don't send ended touch events to QPA
The current implementation kept a list of TouchPoints that
was reused when sending active touces to QPA. This list was
never cleaned up, so if you pressed three fingers, and released
one, we would still continue to sendt three touches to QPA.
Especially, since this list was not cleaned up when receiving
a touch cancel, mouse events sometimes stopped working when trigging
a system gesture (like a four finger swipe). This can be seen by
using the fingerpaint example.

Since we cannot rely on TouchPoints having IDs that corresponds to
their index in the touch point list, it ends up being
simpler (and results in less code) to rewrite the implementation to use
a hash table of UITouch to TouchPoints instead.

Change-Id: I5b32f57a8d72a0b8759a64ac7cdfa6700109d2b3
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-05-07 22:43:14 +02:00
Richard Moe Gustavsen 53e01c4329 QWidgetWindow: don't accept touch events while in popup mode
QWidgetWindow will always redirect mouse events to the active popup
(if any). The same logic is not implemented for touch events, which
means that touch events are always delivered to the widget under the
finger.
It is therefore possible to interact with widgets that are modally
shaddowed by the popup. It is also not possible to close popups
without touching them directly.

This patch will ignore touch events when a popup is active, and
as such, force a synthesised mouse event to be sent instead.
Implementing proper touch support also for popups is out of scope for
widgets.

Change-Id: I023c09c3e1fd4e5495df990c11419c69ecafb8f9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Jan Kundrát c0e04bad70 doc: QWidget::setEnabled cannot enable children of a disabled widget
The current documentation is not terribly clear on this topic, and there's a
couple of posts on various forums where people want to do this. In fact, the old
wording suggested (at least to me) that it is OK to explicitly override a
disabled state, which is apparently not true.

Change-Id: I10c54e0089e9ba5d16958aea62df27feafdf7b3d
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Friedemann Kleint bbf1e1a667 Add workaround for case-changing renaming of files on Linux/FAT32.
The underlying rename() of the operating system simply does
nothing when renaming 'foo' to 'Foo' in a case insensitive file
system. Work around by moving in 2 steps.

Change-Id: Ibc73724bfca402a5ce7fcf2a83e8fea32ff71093
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis a2a8a9ea01 Make access to xkbcommon_workaround.h more generic
It makes more sense to keep this workaround header together with the other
libxkbcommon files for a better access point since it's used by several *.pro
files.

Change-Id: I63d4eb58f6e7f3852834e41c4b6e058a2c962233
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis 43578e1901 Use X11 core protocol when xkb not available
To have a properly working key input in the xcb plugin in the case when
xcb-xkb library is not available we can update the xkb_state struct with the
keyboard state information available in the X11 core events.

The current modifier state is reported to clients in a number of core
protocol events and can be determined using the QueryPointer request.

This is how it is done in Weston, Wayland's reference implementation.

Note: In case the X server doesn't have a xkb support on it (which is very
unlikely), then xkbcommon will only pick up the user's primary layout.
The X server with the xkb support stuffs unused bits (13 and 14) of 'state' in the
core events with the effective keyboard group, which we can use to determine layout
changes.

Change-Id: I9f1ef635109870e7412ef1157ca592f3c8f9271c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis 260bfaf056 Added possibleKeys(QKeyEvent *) to QXcbIntegration
This is required for a modifier+key shortcut support.

Also fixes old Qt bug when keymap group changes were not handled
properly for shortcut functionality.

Task-number: QTBUG-26902
Task-number: QTBUG-4845

Change-Id: I04d2c2ad7049df7420999816154605848fa670e1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis 05351b0cde Utilize libxkbcommon API for the keyboard backend on X11
libxkbcommon is a keymap compiler [1] which utilizes xkb
keyboard configuration database [2].

xkbcommon simplifies keyboard state handling by providing xkb_state
object which holds the current state of all modifiers, groups, LEDs,
etc, relating to the provided keymap.

Detecting modifier mapping should become simpler once it gets supported
in libxkbcommon. Also with xinput2 we could get rid of the XkbStateNotify
events, because xinput2 key press/release already include all the mod/group
info.

[1] http://xkbcommon.org/
[2] http://www.freedesktop.org/wiki/Software/XKeyboardConfig

This patch:

- Removes a dependency to -lxcb-keysyms
- Removes a dependency to XLib call - XLookupString
- Enables required functionality to fix QTBUG-27681

Task-number: QTBUG-27680
Change-Id: I10e10f873821ee02f6df72238e215a541150f38f
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis 9c1d62cc95 Add xcb-xkb to 3rd party libs
1) -qt-xcb

a) Use xkb from the 3rd party libs. As it is done for the other xcb
dependencies when qt configure with -qt-xcb.

2) -system-xcb (default)

a) If xkb found then use xkb from the system. (Currenly xkb is not
enabled by default when configuring libxcb library).

b) If xkb can't be found on the system then keyboard state will be
updated from X11 core events.

Change-Id: I7c3dbce6daa2cec52067cd5af80f19040233a0db
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Gatis Paeglis 2122e731ab Add libxkbcommon to 3rd party libs
This library is required by the XCB platform plugin. As we depend on
very recent version of this library and it might not be available
in base repositories of distributions, users can use -qt-xkbcommom
switch to build Qt with the bundled version.

Change-Id: I0ed2a5cc2f1df98b0e7cc926cabfa69818674e08
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 22:43:14 +02:00
Samuel Rødal 4635536bfb Re-enable automatic evdev support in EGLFS for Qt on embedded Android.
Change-Id: I2ed6bb57c14ee2c5a72d99e01d1d7d1ae966245f
Reviewed-by: aavit <eirik.aavitsland@digia.com>
2013-05-07 22:43:14 +02:00
Samuel Rødal 69ee30260a Prevent crash due to giving QWidget::update() a large region.
Similar to what change a298216bb4 does for update(QRect) we clip
the update region against the widget's rect and return if it's empty.
Otherwise we risk ending up with update rects that are larger than
INT_MAX due to multiple update rects being merged.

Task-number: QTBUG-30876
Change-Id: Idf695b1fdca50449a1e5ddf37500653de290590c
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-07 22:43:14 +02:00
Eskil Abrahamsen Blomfeldt f963d70c30 Android: Change default Ministro download location
Set up for downloading from the qt-project.org servers instead
of KDE servers.

Change-Id: I6f9e69f91ea956165300d75109e1683d0b1aa5f0
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-05-07 22:43:14 +02:00
Eskil Abrahamsen Blomfeldt 9fa1bdeeb2 Fix compilation for Android ARMv5
We have to use the 4.4.3 compiler toolchain for producing binaries
for ARMv5 on Android, since the 4.7 toolchain has a regression for
this architecture. The regression has been fixed, but the fix has
not been released yet, so until it has, we need to use the 4.4.3.
However, the 4.4.3 toolchain has a different bug, which breaks
compilation in qtimageformats with a message about redefinition of
uint. This works around that bug for Android builds. When the
patched compiler has been released, we can revert this.

Task-number: QTBUG-30921
Change-Id: I620c186c6e932413a4de1dd331fbf4b9401f2e72
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-07 22:43:14 +02:00
Stephen Kelly 3483336889 Only expect EGL libraries in the cmake files if Qt is configured to use it.
Change-Id: Ida382a80dba882bbeb920756adc0c16321efe37e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-07 22:43:14 +02:00
Stephen Kelly ed2df46949 Create a proper variable name in the cmake macro.
Change-Id: I98145fb3149dd8f7aba60d305da98c148aa9c705
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-07 22:43:14 +02:00
Giuseppe D'Angelo 66ff3f7fa4 Add qt_hash(QStringRef) overload
This enables fixing a performance regression compared to Qt 4.
Also, add some qt_hash tests.

Change-Id: Id830e17dec99fb67e5930c80029ac2233b2f427e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-07 22:43:14 +02:00
Ivan Komissarov 0866e48ae2 Fixed applying invalid data from QLineEdit to model
Task-number: QTBUG-2216

Change-Id: I5d1c18aadb380667dedc2bb9f9b7e3dd8178a24c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-05-07 22:43:14 +02:00
Rafael Roquetto 46d80dedb7 QNX: Fix screen event thread compilation
Breakage was caused by two typos

Change-Id: Ic9ca3a3db8dbf191b3bee8b2ef6e3513f7c9adc4
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-07 20:55:35 +02:00
Friedemann Kleint 51c6800a19 qdoc: Fix warning about unused variable 'high'.
Introduced by a2892ad1d7 .

Change-Id: If41d5990724fd75d27e29987ad19bda50e29518f
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-05-07 20:40:41 +02:00
Kevin Ottens 48e3cc30ed Set the base used to display the spin box value
Provide a new displayIntegerBase property which control the base used
by the spin box to display the value in its internal line edit.

Change-Id: Ibadc37107db8770d757b64350946bf19142e8f6c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-05-07 18:40:43 +02:00
Friedemann Kleint f2fcf75381 Enable non-client-area mouse events by default for widgets.
Task-number: QTBUG-30530
Task-number: QTBUG-29012

Change-Id: Iaddbb89bbb198e2b04419407e0871951650552ce
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 16:52:21 +02:00
Friedemann Kleint eb11f67dd9 Set geometry set by QPlatformWindow::initialGeometry() on widget.
Task-number: QTBUG-30855

Change-Id: I15f3dfa0b493874671711cce2190d0710b368796
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 16:52:08 +02:00
Sergio Ahumada 37aa3e0155 qdoc: Fix missing images in 09-qdoc-commands-includingimages.html
Change-Id: I50936f2cab4e6b8a37cf2b13211f99afca4032ff
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-07 16:52:07 +02:00
Sergio Ahumada 1a2ee6bd1d qtgui: Fix missing images
Change-Id: I52bae22829bd464d368452573321cda02e97611b
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-07 16:52:01 +02:00
Sergio Ahumada ef7ceb81b2 qtprintsupport: Fix missing images in tools-customcompleter.html
Change-Id: I115e7a76ec9078cdc2e6da61510962cd11e23593
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-07 16:51:53 +02:00
Joerg Bornemann d3a2ee8b1c remove dead declaration from QColorMap
Change-Id: Idf50084c4688c8bb6b7a2e754cad28266e09271f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-07 15:30:05 +02:00
Joerg Bornemann 28ee554b37 QProcess/Win: drain output pipes on process finish
If a process dies before all output is read into the internal buffer
of QProcess, we might lose data. Therefore we must drain the output
pipes like we already do in the synchronous wait functions.

Task-number: QTBUG-30843

Change-Id: I8bbc5265275c9ebd33218ba600267ae87d93ed61
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-05-07 15:02:34 +02:00
Martin Smith 36b7c3cd2b qdoc: The \wrapper command is added
If \wrapper appears in a \class comment or a
\qmltype comment, qdoc will not print warnings
when it finds public members of the class or the
QML type that are not documented.

The \wrapper command is added to several
opengl classes. This reduces the number of
qdoc warnings by several thousands.

Task-number: QTBUG-30755
Change-Id: Iba1eebc1590ccf54100e40fe91423240c1b3d09d
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-05-07 14:56:01 +02:00
J-P Nurmi 44c47af950 Unify header-based scroll offsets in itemviews
This is a spin-off of 00b11cc.

Change-Id: I042f066bdb1d248a04473d4b0a31002330a73907
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2013-05-07 14:43:14 +02:00
Richard Moe Gustavsen 0d308c4111 QApplication: fix touch to mouse bug when setting buttons()
QApplicationPrivate::translateTouchToMouse always sets
buttons() to Qt::LeftButton for synthesised events. This is wrong
for a mouse release, since 'button' should in that case be
Qt::LeftButton, and 'buttons' should be Qt::NoButton (since no buttons
are actually being pressed).

This caused problems for QGraphicsView, which refuses to
release any mouse grab set on a QGraphicsItem if at least one
button is being pressed (which was always true).
This resulted in broken drag behavior on touch platforms.

Change-Id: Iefe63cd753f9f8bb04278fd04a4d728e3deda25e
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-07 14:31:02 +02:00
Richard Moe Gustavsen 3c46b829f9 QGraphicsView: ignore unhandeled touch events
When QGraphicsView has sceneInteractionAllowed == false (e.g
when dragMode == QGraphicsView::ScrollHandDrag), all touch
events are accepted. This is wrong, and will stop mouse synthesising
from happening on touch platforms. This in turn will make
ScrollHandDrag not work (since no mouse events will come through).

This patch will call QEvent::ignore() if the touch event isn't send
to the scene, which will cause a mouse event to be synthesised.

Note that according to http://doc.qt.digia.com/qq/qq11-events.html
the correct approach would probably be to just return 'false', rather
than calling QEvent::ignore(). But this logic is not followed
consistently elsewhere (e.g in QApplication::notify), so I choose
to follow what the code actually expects for this bugfix.

Change-Id: Ida777647134c41661bab156d7b164ebd882a6bb1
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-05-07 14:30:56 +02:00
Shawn Rutledge dd7058898c xcb: don't do mouse synthesis from touch unless we find a reason
One reason is when we are using XInput 2.2, because touch devices
will then generate touch events only.  For the other X11 scenarios,
X11 does its own mouse emulation.

QPlatformIntegration::styleHint() wasn't overridden yet.  The remaining
hints are TODO for now.

Change-Id: I2e444a00a18b33ed840ebfa8d8218655c2c39aad
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 14:30:50 +02:00
Shawn Rutledge df93d356df Don't destroy the window if the QCloseEvent wasn't accepted
It's possible to override event() to receive the QCloseEvent and
do event->ignore() to prevent the window from closing.

Task-number: QTBUG-31019
Change-Id: I9abed47fca02a002b78727f98d678a824854adfc
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-07 14:30:26 +02:00
Jerome Pasion d0725dce7b Doc: Removed pages from "qt-sql" group.
-"qt-sql" removed in qtdoc
-no longer needed because "Data Storage" and Qt SQL pages already serve
as the main introduction to SQL support in Qt

Change-Id: I7384ae04ab4c09ecc9d76668e4e7f836095066c1
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2013-05-07 14:28:16 +02:00
Tor Arne Vestbø 87d08acf40 iOS: Set context and bind FBO before allocating render-buffer storage
defaultFramebufferObject() may be called from anywhere, at any point,
not just makeCurrent(). One example is the glyph-cache, which uses it
to re-bind the default FBO after generating the texture cache.

If the default FBO had already been created, but the render-buffer was
out of sync with the window size, we would end up in the resize code
without the correct context current, and without the render-buffer's
owning FBO bound. This caused "Failed to make complete framebuffer
object 8cd7" warnings at runtime.

We now make the context current and bind the FBO, even though it might
already be bound and the context current from makeCurrent(), or when
initially creating the FBO. For the future we should move the whole
resize logic out of defaultFramebufferObject() and call it from
makeCurrent(), or possibly [EAGLView layoutSubviews]. That's a
higher impact change though, which we reserve for the 'dev' branch.

Change-Id: I50ea949c12a02ad1af6ec9fdc3215d5da85b324f
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-05-07 14:19:04 +02:00
Tor Arne Vestbø 8dfeb1c374 Don't use GL_REPEAT for image-brush drawing on OpenGL ES2
OpenGL ES2 doesn't support NPOT textures in combination with GL_REPEAT,
so for OpenGL ES2 we use a custom program that emulates repeat by taking
the fractional part of the texture coordinates.

This is not enough though, as merely setting GL_TEXTURE_WRAP_x to GL_REPEAT
with a NPOT texture is an error in some implementations, so we have to
guard the call to updateTextureFilter() in updateBrushTexture() with
a check for OpenGL ES2 and use GL_CLAMP_TO_EDGE instead.

This fixes missing/black backgrounds in the diagramscene example on iOS.

Change-Id: I5020090b5f17faeb06dcab9dc0292459e021af30
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-05-07 14:18:58 +02:00
Sergio Ahumada db44b891fb Merge branch 'stable' into dev
Change-Id: Ica003a10ede86914bbbb062a2dc277a2ce39a259
2013-05-07 12:02:41 +02:00
Jan Arve Saether 9504516847 Remove the crash pending warning
Even though the intentions of this warning were good, the warning
was a bit harsh. In addition, in certain circumstances
(like the autotest demonstrates) we could end up calling object()
on an interface where the object was in the destructor. This
could happen because: *after* we got the destroyed() signal, the
widget would still notify the accessibility framework of a FocusOut
event.
Since the code even called object() from isValid(), we could not even
(as a defensive measure to circumvent this issue) check the isValid()
of an interface without getting this warning (duh).
So - for isValid(), the warning is not needed at
all, since the caller will of course check the result of isValid() and
act accordingly.

As for the result of object(), it should always be a pointer, but it
might point to a partially destroyed object. To detect this, you simply
check isValid() first:

if (iface->isValid())
    doStuff(iface->object());

Change-Id: I206307fe618806133d8c6bc338c412d0009d7181
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-05-07 07:20:52 +02:00
Thiago Macieira 4d6572aac0 QLocale: cache the QLocalePrivate for the default QLocale
Change-Id: I6f05da4d426a0aa685dd9f2fd0020e413a4bebad
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-01 23:05:35 +02:00
Thiago Macieira 30a8d73fdc QLocale: cache the C locale's private
Change-Id: I81bbfeffebb5b7fc29d67bb7127beaf13838ac9f
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-05-01 23:05:35 +02:00
Rafael Roquetto a2f59955ae Fix QFontConfigDatabase crash
Take into account the possibility that the target platform plugin does not
support platform services.

Change-Id: I48e7fac2e1230a9a7d450414044d23ed26b334be
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-05-01 23:05:35 +02:00
Albert Astals Cid b1de018e9a Fix QLocale::standaloneMonthName when d->m_data == systemData()
At the moment if  d->m_data == systemData() it calls
systemLocale()->query but forgets about the standalone part
so you get the wrong data

This patch introduces the new enums so that backends can implement
properly the standaloneMonthName feature properly. At the moment the Windows
and Mac ones still return the monthName, the Unix and Blackberry ones return
the data we store in months_data

Change-Id: Idc5a50b04ab1f914f16c7385be1dca2e027feae3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Mehdi Fekari <mfekari@blackberry.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-01 21:05:33 +02:00
Giuseppe D'Angelo 05984c910f Reintroduce QIcon doc image (from Qt 4 docs)
This fixes the

   [Missing image icon.png]

warning on QIcon docs.

Change-Id: I16aafb51c146fb675f657a7d8210033a17abf642
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
2013-05-01 15:11:50 +02:00
Eskil Abrahamsen Blomfeldt 522c7ba1ac Enable bundling Qt in Android package in build system
For bundling Qt, we need two things:

1. We need to build a regular .jar file out of the Java files,
so that they can be built into the app package. Dexing the
classes first (i.e. compiling the JVM bytecode to Dalvik
bytecode) is required for loading the .jar file at run-time,
but cannot be used for building it into the app, so we need
two different paths.

2. We need to specify which extra files have to be bundled for
each module (this is primarily for plugins and imports). This
is because there is no static dependency on these files, so
it cannot be detected during deployment.

Task-number: QTBUG-30751
Change-Id: I733603ee5d1c64bd7c5b9357eb5d993b9d0298f7
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-05-01 11:24:15 +02:00
Eskil Abrahamsen Blomfeldt 94bed3ad14 Make it possible to bundle Qt libraries in Android apk
Add the enablers so that Qt Creator (or another
deployment tool) can add a specification in the app's
meta data of which libraries are bundled and the
Java code required to extract plugins and imports into
the required directory structure inside the app's
data directory.

This is intended to be an alternative to using Ministro
for deployment, and the mechanism of extracting
libraries on first startup is a work-around for the
requirement in Qt of having this directory structure.
For Qt 5.2, the approach should be changed to load
plugins directly from the app's lib directory and
the other files in imports will be bundled as qrcs
in the native plugins.

Task-number: QTBUG-30751
Change-Id: Ibdb3a672548b4802f9bf3ecd05fc194426ac30e7
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-05-01 11:24:03 +02:00
Thiago Macieira 75fba93fc6 Fix more warnings, found by cross-compiling Qt
KeccakF-1600-opt32.c:497:5: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
harfbuzz-thai.c:264:49: error: comparison is always false due to limited range of data type [-Werror=type-limits]

These warnings are caused by "char" defaulting to unsigned on ARM. In
particular, the second warning was introduced by commit
785e95ef0a, which is not upstream...

qbenchmarkvalgrind.cpp:224:5: error: variable ‘_qzz_res’ set but not used [-Werror=unused-but-set-variable]

This one was fixed for x86-64 in 7b54571ec2 but not
for the other platforms.

KeccakF-1600-opt32.c:250:5: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]

This one is wasn't caught before because it applies only to big-endian
code.

Change-Id: Ice33b639e55d95140cbf912bb81b6f508ed3744a
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-01 08:48:13 +02:00
Thiago Macieira e68845ec78 Oops: bugfix support for ref qualifiers in GCC 4.8.1
51ee309a79 introduced this check, but it
was supposed to be >= (it's available in 4.8.1, not after 4.8.1)

Change-Id: Id993b128de5c3500684833aea8ef556b31aac5f2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-05-01 06:44:38 +02:00
Tor Arne Vestbø 130b579a16 iOS: Don't use -1 as magic value for UIDeviceOrientationFaceUp/Down
The check in [QIOSOrientationListener orientationChanged] ensured we
never reported the two unsupported orientations through QPA, but we
were reporting back the orientation through QIOSScreen::orientation()
as well, and that didn't have a guard for -1. This resulted in crashes
in client code that assumed the range of QScreen::orientation() was
defined by the enum, such as the paintedwindow example.

The listener now ignores the two unsupported orientations, which leaves
us at the previous orientation. For the conversion function, we still
have to support all UIDeviceOrientations, so we fall back to portrait
for the two unsupported orientations. In the future we should consider
caching the previous value explicitly, or fall back to the interface
orientation.

Change-Id: Ic19d0ce86b4ddea250ea927d5e8664396b2b68fd
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-30 23:30:56 +02:00
Tor Arne Vestbø 02e406ac50 iOS: Don't pretend like our OpenGL context is single-buffered
Internally iOS double-buffers its rendering using copy instead of flipping,
so we reported that our context was single-buffered so that clients could
take advantage of the unchanged buffer. This failed when clients (such as
Qt itself) then assumed that calling swapBufferes() was not needed.

We now properly report that we're double-buffered, and we'll have to find
another way to report the way double-buffering works if that's still an
optimization we'd like to provide to clients.

Change-Id: Id2e4faa68ed3b837ad01d6f22b2927fc9c9769c2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-30 23:30:52 +02:00
Olivier Goffart 008aedc8d1 QAccessible::State is no longer an enum
Since 39a052c664, QAccessible::State is no
logner an enum that moc understand.

moc currently silently ignores it the Q_ENUMS

Change-Id: Iecc30ad57055fc9ccaa33e9e9c400d96997d0902
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-30 22:53:48 +02:00
Gabriel de Dietrich c904860669 Cocoa: Port QCocoaTheme::fileIconPixmap() to Cocoa
Task-number: QTBUG-30907
Change-Id: Ie460db63413ab9c8e0fb5fb85af907e1c7f12759
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-04-30 19:23:05 +02:00
Thiago Macieira 08ac38a6e3 Make QLocalePrivate POD
QSharedDataPointer does not actually need a class derived from
QSharedData. All it needs is a member called "ref".

Change-Id: I2f7fe4cc143478ef7ef64681eada16e2d4c2e63a
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-04-30 17:21:21 +02:00
Thiago Macieira 50ab31a5df QLocalePrivate: remove QLocalePrivate::m_index
It's not used anywhere, so we don't need to cache the locale data
index. We already have the pointer to the QLocaleData anyway.

This saves us a few roundtrips calculating the index from the data
pointer only to get the data pointer again.

Change-Id: I6905d20a382ddcb9fb04cc886a17499b467f905a
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-04-30 17:21:21 +02:00
Thiago Macieira 600c538cd6 Move the code that creates QLocalePrivate to separate functions
Direct benefit is that the code between the two QLocale constructors
taking language, country and (maybe) scripts is merged.

This will also allow us to cache the QLocale::c() result.

Change-Id: Ia46c5a37764dc287bfcd3a52a022ac413c53a582
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-30 17:21:21 +02:00
Paul Olav Tvete 6c719079ec Android: don't crash on exit
We have to call DetachCurrentThread() for each time we call
AttachCurrentThread(). Fortunately we have this convenience
class that we prepared earlier.

Task-number: QTBUG-30847

Change-Id: I5ffb94b336d3787a3bae197bab22b91770d58848
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-30 17:21:21 +02:00
Paul Olav Tvete 8d1b8b97ac Don't block back button after keyboard is hidden
The back button would be non-responsive for 5 seconds after
hiding the software keyboard. This is a minimal change that
does not look into why we need to have a 5 second delay in
the first place.

Task-number: QTBUG-30752

Change-Id: Ied514b77650cea7accc37a03efef2ce861090f65
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-30 17:21:21 +02:00
Frederik Gladhorn c56372e379 Clarify documentation for QKeyEvent::text
Change-Id: I4b455a512b2e678b6127ea488b456c68eb80cdbc
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-30 15:11:23 +02:00