Commit Graph

22710 Commits

Author SHA1 Message Date
Gabriel de Dietrich
374c60e046 Make QPersistentModelIndex an internal meta-type
It was already a user meta-type, so it only gets
promoted to internal.

[ChangeLog][QtCore] QPersistentModel index becomes an built-in
meta-type, including QVariant support.

Change-Id: I63d733d1eb66aa61691e7afce27fe7372a83ac00
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-06 07:07:39 +00:00
Thiago Macieira
9a3d7adaad Fix -Wunreachable-code warning from clang in preprocessed Q_ASSERT
Q_ASSERT expands to:
 do {} while (false && (<your condition>))

Which is fine for Clang as long as it's a macro. However, when you
compile as a preprocessed source, the macro is gone and Clang prints the
warning:

 warning: code will never be executed [-Wunreachable-code]
 do {} while (false && (f()));
                        ^
 note: silence by adding parentheses to mark code as explicitly dead

So add the parentheses that it's asking about.

The changelog refers to the full Q_ASSERT change from
ebef2ad136.

[ChangeLog][Important Behavior Changes] Q_ASSERT will now expand the
condition even in release mode when asserts are disabled, albeit in an
unreachable code path. This solves compiler warnings about variables and
functions that were unused in release mode because they were only used
in assertions. Unfortunately, codebases that hid those functions and
variables via #ifndef will need to remove the conditionals to compile
with Qt 5.5.

Change-Id: Ia0aac2f09e9245339951ffff13c8aa70229254d0
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-06 06:19:47 +00:00
Laszlo Agocs
4fe9798db3 Optimize egl cursor update events
Avoid invokeMethod on every cursor movement and use an event instead. This is more
lightweight and efficient. Also, there is no need to have a separate QObject just
for this.

Change-Id: I65ae202943eeb1e30cf22926576f84198f2487f8
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-03-05 16:11:45 +00:00
Friedemann Kleint
87af240c86 Manual dialog test: Add a message box for printer errors.
Task-number: QTCREATORBUG-13742
Change-Id: I137854eee589cde7a6cf3b841b0b63311e031517
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-05 16:01:59 +00:00
Boris Dušek
d4789294a4 Support "writing-mode" accessibility text attribute
Change-Id: Ib682b6f7828cfd42050bcb9c846fd8aeb7fdd05f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-05 15:18:13 +00:00
Boris Dušek
8944d2dcbb Fix QAccessibleTextWidget::characterRect for off-cursor positions
Current code retrieved the character format at position where the cursor
currently was, irrespective of the position actually passed to the
characterRect function. This is now fixed and we retrieve the character
format for the QTextFragment containing the specified offset.

This fixes display of visual bounds around text by screen reader in some
cases. E.g. on OS X, when searching text using VoiceOver, VoiceOver
first queries the visual bounds of the found text (and thus also
characterRect), and only then it moves cursor position to the found
text. If before the change of position the cursor was on some text with
different metrics (i.e. a bigger font), the visual bounds for the found
text reflected those metrics, not the metrics of the actual found text
for which the bounds were drawn. This resulted in smaller/bigger
rectangles around the found text than was actually correct.

Change-Id: If23b4b8492ec77f0f073fc5c25628b67b483724e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-05 15:05:12 +00:00
Boris Dušek
e19a43be90 Fix QAccessibleTextWidget::characterRect for complex lines
Current implementation of QAccessibleTextWidget::characterRect returned rect
with correct vertical position only when the font point size did not vary
inside the line. This commit makes it work for lines where point size changes
by taking text ascent and descent into account.

Change-Id: I9684b4872566ddfa86dc7a2e9c803a1be0138000
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-05 15:05:01 +00:00
Boris Dušek
1cdb117001 Fix accessibility character rect tests
textEditTest in qaccessibility test was using QTextEdit::setCurrentFont
on second pass, but that did not change the font used for text in any way.
I don't know what was the purpose. So I changed it into something that
made sense to me and actually tests text with a different font on second pass.

Also fixed characterRect function in tests to use correct font/format.

Change-Id: I3663e02abda381be1401e298c15b51cd0fb75939
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-05 15:04:52 +00:00
Frederik Gladhorn
b1c43b072f Fix tst_qaccessibility::textEditTest for some screen resolutions
On a high resolution display the test will potentially create a text
edit that introduces line breaks and these make it fail then.

Change-Id: Ie82cc4b4139fe0f51ddca219c5c911957fa715b7
Reviewed-by: Boris Dušek <me@dusek.me>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2015-03-05 15:03:50 +00:00
Florian Bruhin
c4c895d2dd Remove unneeded check in QNetworkReplyImpl::abort.
QNetworkReplyImpl::abort immediately returns at the beginning of the function
when the state is already finished, and the state does not get changed by the
code in between - so this condition will always be true.

Change-Id: Ia98df7cbecf471c7236b5e17caddd1301b647d2b
Reviewed-by: Peter Hartmann <peter-qt@hartmann.tk>
2015-03-05 10:57:32 +00:00
Konstantin Ritt
a5d5353b59 Introduce QQuaternion::dotProduct()
Change-Id: I14b9857ca0a43808b7d536fc258a6bb10f611211
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2015-03-05 10:46:07 +00:00
David Faure
6c973dee2c Make QCoreApplication::applicationName available after app destruction.
Calling applicationName() in the destructor of a global static (e.g.
via QLockFile) was working when calling setApplicationName explicitly
but otherwise it would suddenly return an empty string.
This led to inconsistencies, the application name switching from
non-empty to empty at saving-on-destruction time.

There was already a global static, used when setting the app name
explicitly before construction. Use it now to store the app name
in all cases (explicitly set, or fallback).

Change-Id: I71d3a0c40158f8bfd022c385b198346a2594b1cb
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-05 10:29:27 +00:00
Maurice Kalinowski
dce3721f90 WinRT: Update documentation on icon handling
ecf6e34efefcedbff0a457ed4b5e0f4e5d096b37 introduced new values to
specify icons in the manifest.

Change-Id: I8f0cc9790ffd2f50ed2008bc8bab053b3db4965e
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-05 10:28:01 +00:00
Laszlo Agocs
d04c3d2079 eglfs: Pluginize RPi, iMX6 and Mali backends
eglfs does not depend on the device makespecs anymore when it comes to these device
integration backends (hooks). Instead, backends are autodetected by configure.

The name of the preferred plugin is still set in the device makespecs. This
is optional. When not set and there is more than one plugin present in the system,
the environment variable QT_QPA_EGLFS_INTEGRATION will have to be set at runtime.
In the absence of that, the order is undefined.

Change-Id: Ie1ced2c9aa1beff2adb13b4fdea7c499cb5a6aab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
2015-03-05 09:51:16 +00:00
Nico Vertriest
c6045db4a6 Doc: fixed links on index page QtConcurrent
Task-number: QTBUG-35199
Change-Id: I1fa81e69d47ea150fb08c653c8569670c40b554a
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-05 09:40:16 +00:00
hjk
dd06d03661 QLockFile: Avoid zero-sized lock file on write error
Failure to write into a successfully opened lock file left the
lock file with size 0 in the filesystem.

Task-number: QTBUG-44771
Change-Id: I561bf629b9f160174d658bf105be828f71d78ff9
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-05 09:38:51 +00:00
Laszlo Agocs
b35c389b6a Add Raspberry Pi 2 specs
Change-Id: Ifc99af49398e5d6e057035d2de55fe218c8418d6
Reviewed-by: Andy Nichols <andy.nichols@theqtcompany.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
2015-03-05 09:36:34 +00:00
Eskil Abrahamsen Blomfeldt
c29c6d9003 OS X: Fix mixing writing systems, ligatures and text formatting
In QFontEngineMulti::stringToCMap() we call the primary engine's
implementation of the same function. If this engine does not support
the character in question, then it's supposed to clear the glyph array,
otherwise there may be left-over junk in the glyph array from previous
script items and the font selection algorithm will think it has already
found a match for the character corresponding to the glyph position.
The freetype engine, for instance, clears the respective entries
in the array when it gets a 0 glyph from the font engine.

In particular, this would happen when you had a ligature preceding
an item that was shaped separately. The ligature (e.g. "fi") would
set the first two slots of the glyph array, but later replace
them with a single glyph. The next item would then get an offset
of 1, i.e. pointing to the position in the glyph array where the
glyph for i was originally contained. If this was not cleared,
it would assume the primary engine supported the character. If
the character was of an unsupported writing system, then you would
get a box in place of it instead.

[ChangeLog][OS X][Text] Fixed appending text with a different
writing system and formatting to a latin ligature.

Change-Id: Id8c81cdc8e2d8994cc1a999769fcae452c4f52ae
Task-number: QTBUG-44708
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2015-03-05 09:34:14 +00:00
Friedemann Kleint
d70492d1ee Remove debug formatting functions obsoleted by the new debug operator for QFlag<T>.
Change-Id: I6d737eb86b790eeefb537ca5e6a075bf30a3dcfb
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-05 08:56:43 +00:00
Friedemann Kleint
ae554cb8c2 Windows plugin: Simplify cursor code in platform screen.
Change the shared pointer to store a QPlatformCursor instead of
QWindowsCursor, removing the dependency of qwindowsscreen.h on
qwindowscursor.h.

Change-Id: I8b4bbc9fd4d5046c30ac3784f14229a9cc6d8dc6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-05 08:56:35 +00:00
Friedemann Kleint
eee4c6f190 Clean headers in the Windows plugin.
Change-Id: Ibc6b904e6e0b21f5daa0730a7eda2cae43cd3dcf
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-05 08:56:30 +00:00
Friedemann Kleint
e1ae71d3c3 Clean headers in the Direct2D plugin.
Change-Id: Iab85ccdf49ee81214ada87a2e476f650b39a29ce
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-03-05 08:56:25 +00:00
BogDan Vatra
1ee25cedb4 Android: Make sure applicationState is set correctly
The Activity onResume function is always called before the application
gets initialized and we let the applicationState set to the default
value which is AppicationInactive.

Change-Id: Ifc3c7e3dfc51f2b821f8ca87f8b711f485b6a6f8
Reviewed-by: Peter Rustler <peter.rustler@basyskom.com>
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-03-05 08:50:04 +00:00
Pasi Petäjäjärvi
9d19753bfa Fix disabling libinput feature if libudev is not available
When using default configure value (auto) for libudev + libinput and
libudev is not available, disabling libinput failed and it is enabled
even it requires libudev to work.

Change-Id: Ia2ead66c5cebc8658f2c29445f5c81c9f8b30dc8
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-05 08:50:03 +00:00
Friedemann Kleint
8ceb4d9dbc Implement debug operator for QStyle::State using the new operator for QFlags<T>.
Call the new operator and add ### fixme comments for removal.

Change-Id: Ibe4dfe00b6ea1aa5ca5551f10b1f27fdde2114c4
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-05 08:30:36 +00:00
Shawn Rutledge
918e976d39 xcb: QkeySequence::Quit is control-Q
Until now it was mapped that way only under KDE and Gnome.

Task-number: QTBUG-44772
Change-Id: I65a425bb531909dff4110f086c9aee8ae7a747c6
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-03-05 08:29:28 +00:00
Christian Strømme
7f5b94b473 Fix shortcut overriding.
Moved to processKeyEvents() on all platforms except OS X.
Previously QWindowSystemInterface::tryHandleShortcutEvent() was called
from inside QWindowSystemInterface, this is considered unsafe as it
ends up calling sendEvent(). On some platforms the call might come from
a different thread then the receiver and cause an assert.

Task-number: QTBUG-44712
Change-Id: Ie80c698f63b9c3d9f52aa94380e539a84caea912
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2015-03-05 08:15:15 +00:00
Stephan Binner
983bdc0713 XcbSystemTrayTracker: fix uninitialized value
Change-Id: I5798652408cde3ef6628a4b546c2ebecde1e3081
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-05 06:32:20 +00:00
Thiago Macieira
212285639d Add missing fetchAndXxx methods to atomic classes based on std::atomic
And add tests for the GCC intrinsics and for std::atomic.

Task-number: QTBUG-43794
Change-Id: Ic5d393bfd36e48a193fcffff13b9b2dbaee80469
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-03-05 00:05:00 +00:00
Thiago Macieira
126d489f7f Adjust the socket address family before bind()/connect()/sendto()
If our socket is already of a given type (probably due to a previous
call to bind()), then constrain the incoming target address to be of the
same family. On some OSs, trying to send or connect to an IPv4 address
from an IPv6 socket will fail with EINVAL, even if the socket is not in
"v6only" mode.

bind() can't be called after already being bound, but the function can
still be called on a socket created by the user and passed on with
setSocketDescriptor().

Change-Id: I209a1f8d0c782c6b6de2b39ea4cfad74d63f3293
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-03-04 23:58:11 +00:00
Thiago Macieira
9fb68a90af Fix bind+connect in both TCP and UDP
This has been known to be broken for a while. Now it works: you can bind
and you'll retain the port (and the file descriptor) for the connect
call. Incidentally, in fixing the binding for more than one IP for the
hostname (with event loop), this commit fixes the setSocketDescriptor
XFAIL.

[ChangeLog][QtNetwork] Fixed a bug that caused both QTcpSocket and
QUdpSocket to close the socket and lose any bound ports before
connecting. Now bind()/setSocketDescriptor() followed by connect() will
retain the original file descriptor.

Task-number: QTBUG-26538
Change-Id: I691caed7e8fd16a9cf687b5995afbf3006bf453a
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-03-04 23:58:03 +00:00
Nikita Baryshnikov
29051bce39 QSslSocket: fix compilation error
invalid conversion from ‘unsigned char**’ to ‘const unsigned char**’

Task-number: QTBUG-44744
Change-Id: I6263db106fe28c6aa04db8ca79421b3a9fc5adc9
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-03-04 23:48:24 +00:00
Thiago Macieira
259b2b6cd7 XCB: Solve crash when plugging a screen with unshown QWindow
If a QWindow has never been shown, it has no platformWindow (it's null).
So it's a valid condition and we need to be sure that the pointer isn't
null before dereferencing it.

Task-number: QTBUG-44766
Change-Id: Ia0aac2f09e9245339951ffff13c7eb024d6a0773
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-04 22:43:52 +00:00
Allan Sandfeld Jensen
f4a8dceb67 Remove non-templated pixellayout methods
Removes the non-templated pixellayout methods that were used for
non-c++11 builds, and instead initialize with the templated ones
verbatim.

These versions are faster, and using only those removes duplicate code.

Change-Id: I91a7d9122d2601ad282287a2f5ed6b88877d52fb
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-04 22:41:26 +00:00
Stephen Kelly
1a0dfd93bb Make some QAbstractItemModel API invokable
As QAIM and related classes are becoming more useful in the QML
environment, it makes sense to make these invokable.

Make the access API and the setData method scriptable.  Avoid
making the structure changing APIs scriptable now to be conservative.

Export the ItemDataRole enum through the staticQtMetaObject to make
built-in roles available.

Change-Id: I47b1682e6fa8ba32c7314c73fc10a7bbaa6d1f98
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Stephen Kelly <steveire@gmail.com>
2015-03-04 22:39:05 +00:00
Stephen Kelly
196fde2ac7 Make the QItemSelectionModel::selection a property.
QML code like this should be possible:

 Text {
     text: selModel.selection.contains(modelIndex) ? "blue" : "yellow"
 }

If the selection is just a Q_INVOKABLE method, then all consumers need
to set up

 Connections {
    target: selModel
    selectionChanged: foo()
 }

That is obviously not the API we want (made more clear by the fact that
the signal is already perfectly named) because it is not declarative but
it can be.  So, make it declarative by making selection a property.

Change-Id: Id1a05ae9b91e45e6d462bea4272b8740571e9fc3
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-03-04 22:38:55 +00:00
Tor Arne Vestbø
38e64664a2 Add __APPLE_CC_ to QMAKE_COMPILER_DEFINES for moc.prf
Moc doesn't have the built in defines that clang has, so we need to
hard-code some of these so that moc resolves the Q_OS_IOS define
in the end, based on qsystemdetection.h and TargetConditionals.h

Change-Id: Id9a7f870b940f99f27c55a2a887d0ce93217b821
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-04 22:13:41 +00:00
Allan Sandfeld Jensen
b678445901 Fix leaking ISA extensions in LTCG builds
Due to common subexpression elimination instruction set extensions may
leak from the objects where they were enabled when doing link-time
optimizations.

To avoid that this patch disables LTCG/LTO on files built with extra
instruction set extensions.

Change-Id: Ie34ad900be7fb04a0dc4d3562187ee170c183333
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-03-04 16:45:05 +00:00
Oswald Buddenhagen
38b5e9f8ba Merge remote-tracking branch 'origin/5.5' into dev
Change-Id: Idd21ab419588ee8b893649e3227d41c46a32e519
2015-03-04 16:49:00 +01:00
Oswald Buddenhagen
8ac63a3323 Merge remote-tracking branch 'origin/5.4' into 5.5
Change-Id: I556be99cc7ad3fc6f7177542b7444269616a7478
2015-03-04 13:44:29 +01:00
Eirik Aavitsland
88550543f8 Painting: Avoid endless loop for certain bezier curves
If the coordinates were too close (at the limit of the number
accuracy), the splitting algorithm in QBezier::shifted() would never
finish. Ref. testcase in bugreport.

Task-number: QTBUG-44674
Change-Id: I2a575cdc6284504ef5e3eb2b749857576fe433c3
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-04 09:18:24 +00:00
Thiago Macieira
96e9b41e25 tst_QNetworkDiskCache: Stop using actual web servers
www.example.com is a reserved domain (RFC 6761), but IANA is running a
web server there. As for www.foo.com, that also exists, is a real
website and is often content-filtered in corporations (it triggers a
firewall warning for me -- "You attempted to visit a site that is in
violation of Intel acceptable use guidelines").

So use a localhost instead, since we don't actually need to connect to
the servers to do the work. And since we don't need to connect, I chose
port 4 as it's extremely unlikely someone is running an HTTP server
there (/etc/services lists it as unassigned).

Change-Id: Ia0aac2f09e9245339951ffff13c82439c6d5f945
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-03-04 09:17:10 +00:00
Allan Sandfeld Jensen
59f168c5e5 Optimize fallback RGB888 to RGB32 conversion
Improves the conversion from RGB888 to RGB32 on platforms without SIMD
versions. This includes the fallback used on non-neon ARM devices.

Besides image conversion the routine is also used for decoding JPEG.

On x86 this version is within 0.7x of the speed of the SSSE3 version.

Change-Id: Id131994d7c3c4f879d89e80f9d6c435bb5535ed7
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-03-03 13:38:17 +00:00
Olivier Goffart
bfb92c03e0 Document Q_ENUM and Q_FLAG
[ChangeLog][QtCore] Q_ENUMS and Q_FLAGS have been deprecated, and replaced
by Q_ENUM and Q_FLAG macros. These two new macros automatically register the
enum with the Qt metatype system, allowing automatic conversion to or from
string in QVariant, or to show the strings by QDebug operators. They also
enable the new QMetaEnum::fromType function.

Change-Id: I80cccd7ad3fc46b11aee2fe50681a8126debf972
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-03-03 13:31:44 +00:00
Shawn Rutledge
b134327475 QTabletEvent manual test: use built-in QDebug operator
There's no need to decode the event details here anymore, and anyway
this had a bug: it always said the device is unknown.

Change-Id: If99dddbe2136d95e818f4fe526f62650cbd7c1ca
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-03 13:30:54 +00:00
Shawn Rutledge
3b6d2575ae QEvent types: use Q_ENUM qDebug support instead of custom formatters
Change-Id: I10886de57b3ba24dddfcd4b78e1a32c470ac1889
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-03 13:30:45 +00:00
Shawn Rutledge
877032bfdf autotests: fix the build in case of QT_NO_WHEELEVENT
Wheel event tests aren't possible if there's no wheel event.

Change-Id: Ibe380c01fbf6cebfd2f43c6ecb52863134ea3c01
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-03-03 13:30:39 +00:00
Shawn Rutledge
34a58b0eb7 avoid sending QPinchGestures based on unreasonable pinch deltas
On some devices there can be spurious events indicating that the two
touchpoints are very close together, so that the ratio of present
line length to previous line length can be very large, and the angle
delta can be random.  But in the normal scenario, there will be a lot
of events, in which the touch point movements are small.  So if the
line length ratio is unreasonable, it's safe to ignore one event and
wait for the next.

Task-number: QTBUG-44665
Change-Id: Ibb7fe560b6a3f7db72d73aad3468c61f24a95d13
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-03-03 13:30:32 +00:00
Shawn Rutledge
a9515cd02f doc: imagegestures example: document the pinch handler
The swipe handler is simple, and also doesn't currently work on every
platform.  But the pinch handler is the one that needs explanation,
because the difference between incremental and absolute values of the
rotation and scale properties is tricky.

Change-Id: Ie3c7f4941d4a17734c9a920a8dd978f86fb03c4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-03-03 13:30:25 +00:00
Oswald Buddenhagen
c0a5e8c9d7 Merge remote-tracking branch 'origin/5.5' into dev
Conflicts:
	src/plugins/platforms/xcb/qxcbscreen.cpp

Change-Id: Ie42931791a849b34b63d814d2eb5ac653986d868
2015-03-03 13:37:38 +01:00