Commit Graph

15783 Commits

Author SHA1 Message Date
Friedemann Kleint
a8f37e4775 Windows: Delay creation of the static OpenGL context.
Delay initialization/GL detection until a surface is requested.
Remove member variable from window and access static context
from QWindowsIntegration only.

Task-number: QTBUG-43832
Change-Id: I4b9a324b58af4399df5c314bfb2b952455b1e080
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-01-19 13:18:02 +01:00
Giuseppe D'Angelo
5ee8ed27e0 rcc: fix build failure on Windows XP / MinGW 4.9
The code makes usage of _fileno without including the appropriate
header, which is stdio.h according to Microsoft:

http://msdn.microsoft.com/en-us/library/zs6wbdhx%28v=vs.120%29.aspx

Task-number: QTBUG-43900
Change-Id: Ic9d407c66243d64823353a1c7e79cf0825c735db
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2015-01-19 13:17:56 +01:00
Oswald Buddenhagen
553a3661c1 Bump version
Change-Id: I250fa893cdf831d03f9217b5dc0a5aa2f9a6a6b5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-19 10:54:37 +01:00
Ulf Hermann
0310cef332 FusionStyle: Don't try to draw null pixmaps
We have the same check for null already for PE_IndicatorHeaderArrow
which actually uses the same pixmap. If the file is not found the
pixmap will be null and the code dividing by its width or height will
thrown an arithmetic exception.

Task-number: QTBUG-43067
Change-Id: I13a5ee9f21f4189b7bbcfd57a6f5b52113de834d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2015-01-19 10:53:10 +01:00
Daniel Teske
c243dd5643 QIncrementalSleepTimer: Use QElapsedTimer instead of QTime
Since the former is monotonic and we need a monotonic timer here.

Change-Id: I34325da4fe0317e12f64629a6eef6a80990c3e1a
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-19 10:50:08 +01:00
Sze Howe Koh
c49641a117 Doc: Fix typos
Change-Id: I29d5576902a5d1ea25558e980081952d9157f7f0
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-01-19 10:48:03 +01:00
Sze Howe Koh
0f5b970894 Doc: Remove references to QOpenGLContext::destroy()
This function is private.

Task-number: QTBUG-35907
Change-Id: I370c0bfd8fda11c68ee76ee42967f117a81b381c
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2015-01-19 10:48:00 +01:00
Pierre Rossi
890ae41d06 Fix a crash in QPlainTextEdit::documentChanged
The layout for an invalid block is very likely to be null, it
shouldn't be accessed without checking the block's validity first.
We can make the check a bit more conservative and simply check that
the block isn't empty.

Change-Id: Ic1459a6168b1b8ce36e9c6d019dc28653676efbe
Task-number: QTBUG-43562
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2015-01-19 10:47:28 +01:00
Andy Shaw
7c9497ad6a Respect the hotspot passed in for the cursor
When the hotspot is set to be QPoint(0,0) then QPoint will see this as
being a null QPoint. However, it is a valid position as far as the hot
spot for the cursor is concerned, so we default to QPoint(-1,-1) instead
and check for that.

Task-number: QTBUG-43787
Change-Id: Ibf6253033016c4b556b8a2a79c89819a4d5825cb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-19 10:44:54 +01:00
Andy Shaw
730d07df83 Account for pixmap's device pixel ratio when calculating the label size
When determining the size of the QPushButton's label then the device
pixel ratio of the pixmap used to represent the icon needs to be taken
into consideration so it is rendered correctly.

Change-Id: If32760b120d7a749a51e2c30592d621c0e63dace
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-01-19 10:44:48 +01:00
Andy Shaw
17cce24648 Only call ShowWindow() once when going from FullScreen to Maximized
Since going from FullScreen to Maximized is taken care of inside the
FullScreen block then we don't want to call ShowWindow() again in the
Maximized block. Therefore the Maximized block is moved so it is only
invoked if it is not coming or going to fullscreen.

As the minimized case is not accounted for in FullScreen that is left as
is in its own if block.

Task-number: QTBUG-43849
Change-Id: I3141347e072c50b2a4475098d7b8ee0b207578a7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-19 10:44:42 +01:00
Marc Mutz
b69c2e86de QFreeList: fix undefined behavior
Signed integer overflow is undefined behavior ([expr]/4),
but unsigned arithmetic doesn't overflow, so isn't
([basic.fundamental]/4, footnote there).

So, use unsigned arithmetic for the loop-around serial
number generation in incrementserial(). While we're at
it, also use it for the masking operation in the same
function.

Found by UBSan.

Change-Id: I500fae9d80fd3f6e39d06e79a53d271b82ea8df8
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-01-19 10:43:45 +01:00
Marc Mutz
62a96dbb53 QTextFormat: fix undefined behavior
Left-shifting of negative values is undefined ([expr.shift]/2).

Since hashValue is a uint already, rectify by casting it->key to
uint prior to shifting.

Found by UBSan.

Change-Id: I94a5311f5a4492f514f595b8fb79726df1e7d0de
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-01-19 10:41:57 +01:00
Marc Mutz
390ea21873 QByteArrayMatcher: fix undefined shift
The REHASH macro is used in qFindByteArray() with a char argument.
Applying the shift operator promotes (a) to int. The check in
REHASH, however, checks for the shift being permissible for
_unsigned_ ints.

Since hashHaystack is a uint, too, rectify by casting (a) to
uint prior to shifting.

Found by UBSan:

  src/corelib/tools/qbytearraymatcher.cpp:314:72: runtime error: left shift of 34 by 30 places cannot be represented in type 'int'

Change-Id: Id09c037d570ca70b49f87ad22bed31bbb7dcc7fb
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-01-19 10:41:22 +01:00
Marc Mutz
b18e6396bd QBenchmarkResult: fix uninitialized value
This manifested itself in a UBSan report about loading a non-enumerated
value from an enumeration variable:

   src/testlib/qbenchmark_p.h:95:7: runtime error: load of value 11091, which is not a valid value for type 'QBenchmarkMetric'

(or similar).

The chosen value is simply QTest::QBenchmarkMetric(0).

Change-Id: I8492a871a71d89fa6f7902d38f9eecee4b060646
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-01-19 10:41:09 +01:00
David Faure
7fc8c560e2 Fix QPrinter::setPaperSize regression when using QPrinter::DevicePixel
The QPageSize-based refactoring led to casting DevicePixel to a QPageSize::Unit
value of 6 (out of bounds). And then the switch in qt_nameForCustomSize
would leave the string empty, leading to "QString::arg: Argument missing: , 672"
warnings.

Change-Id: I85e97174cc8ead9beccaaa3ded6edfad80f8e360
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2015-01-19 10:39:55 +01:00
Rainer Keller
20480070a6 Autotest: Selftests fail in UTC timezone
Selftests for testlib fail when executed in UTC timezone because local and
UTC are the same, but expected to be different. A custom timezone is used
instead.
Debug output of qCompare does only handle local and non-local timezones, using
new Qt5 features allows to show the correct timezone in format string.

Change-Id: I753884a12370952b7b62a90d62896db4f2d3d1b4
Reviewed-by: Jason McDonald <macadder1@gmail.com>
2015-01-19 10:21:26 +01:00
Liang Qi
cd389e4584 Fix possible divide by zero in QMacStyle
[ChangeLog][Widgets][QMacStyle] Fixed a possible divide by zero crash.

Task-number: QTBUG-43398
Change-Id: I8b5c6fd87d07eb42ad43e8c2405b7cad19372b86
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-01-19 08:21:01 +01:00
Morten Johan Sørvig
49fd3511f5 Fix memory leak in Qurl::toCFURL()
Release the temp CFString.

Change-Id: I8a5b8f18a42a4a9b2c6671f0f5b32a3f0b14238d
Task-number: QTBUG-43710
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-19 08:20:24 +01:00
Michael Marley
128cab4635 Set pendingClose to false on init in QSslSocket
Fixes an issue where under certain circumstances, QSslSocket could get
stuck in a state where it would disconnect immediately after starting
encryption.  Since it doesn't make any sense for the socket to be
initialized to a state where any connection attempt will fail, the
pendingClose value should be set to false.

Thanks to Martin Sandsmark for his help debugging this issue.

Task-number: QTBUG-43793
Change-Id: I7deebacbac588c21439a8e594db4222095cf3f22
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-01-19 08:16:24 +01:00
Gatis Paeglis
3c21c4581d Fix drag and drop regression
Fix regression introduced by e4becdc3d3

Add QPlatformDrag::ownsDragObject() function, QDragManager can use the
return value of this function to decide if it should take care of deleting
QDrag object or platform plugin will take care of deleting QDrag.

XCB platform plugins uses async dnd data delivery mechanism. It allows
user to drop something and then continue working with the assurance that
the target will get the data regardless of how slow the network connections
are, which means that a source window should preserve QDrag data until
dnd has finished.

Change-Id: I1fbad7380cddec98b756698993dd397409833150
Task-number: QTBUG-43436
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-19 08:15:54 +01:00
Laszlo Agocs
5bb2e84a76 Fall back to ANGLE on OpenGL 1.x
Apparently on some cards, that only provide OpenGL 1.4,
the check for OpenGL 2 specific functions is not sufficient
(presumably some old extensions provide the functions and so
the test passes, even though it really shouldn't)

To avoid crashing the apps later on, we should check the
context version and activate the fall back to ANGLE if it's
below 2.0.

Task-number: QTBUG-43870
Change-Id: Id0e3d8ad1f632334ba03bbb1a4802413f28436dc
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-19 08:10:28 +01:00
Thiago Macieira
ec9bc843d8 Fix compilation with Apple Clang 425
This version was based on Clang mainline between releases 3.1 and 3.2,
which means it has part of 3.2 features but not all. One of the missing
features is __builtin_bswap16.

Change-Id: Ic5d393bfd36e48a193fcffff13b95664c7f664de
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-01-17 05:03:33 +01:00
Thiago Macieira
be5b04fd37 Move enabling of C++11 Unicode Strings with ICC from 12.1 to 14.0
The support in 12.1 and 13.x appears to be incomplete. Move it to the
official supported version

https://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler

Note: this commit will cause a conflict in 5.5 against
99357e32a0

Task-number: QTBUG-43864
Change-Id: Ic5d393bfd36e48a193fcffff13b9a07106e96795
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-01-17 05:03:29 +01:00
Oswald Buddenhagen
3f17d0349b Merge 5.4 into 5.4.1
Change-Id: I78d848c0bb396584a205a8066d253f2bcac8da56
2015-01-16 21:02:26 +01:00
André Klitzing
6839aead04 Fix compile error if openssl is built with no-ssl3-method
Since openssl 1.0.1k with enabled option no-ssl3-method we need to
check for OPENSSL_NO_SSL3_METHOD to use following functions:

- SSLv3_method
- SSLv3_server_method
- SSLv3_client_method

Change-Id: Iee83a6f4bacbf5660baa6bdb89eb02ceb9f11614
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-16 16:19:24 +01:00
Morten Johan Sørvig
b2cff0b4bf Fix stylesheet crash.
Style sheets that refer to the progress bar (like
"QProgressDialog[maximum='0']{}") may dereference a
null-pointer during the styleHint() call in QProgressDialogPrivate::init()
since the progress bar has not been created yet.

Move the creation of the progress bar closer to the
top of init(), before the styleHint() call.

Change-Id: I31c3c1c346430fc9fe86b0977403dea0c0dc5e90
Task-number: QTBUG-43830
Reviewed-by: Andras Becsi <andras.becsi@theqtcompany.com>
2015-01-16 14:27:26 +01:00
Morten Johan Sørvig
5239ba95e8 Add missing AppDataLocation case
This amends commit f3bc9f5c.

Change-Id: I69b1a5080e7ac92b8a39746d814da77b17c271c2
Task-number: QTBUG-43868
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-16 13:50:28 +01:00
Marcel Krems
593e3f2fbb Update printer metrics after resolution change.
[ChangeLog][QtPrintSupport] Fixed QPrinter::{width,height} return values
when the resolution is changed in the print dialog.

Task-number: QTBUG-43124
Change-Id: Ib805907affed4b1ffb48e6b1ff89f7a79ab3e329
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2015-01-16 13:34:37 +01:00
Eric Lemanissier
c28718b88b Correction on bound values in case of repeated QSqlQuery::execBatch
Until now, QSqlQuery::execBatch did not call resetBindCount, which lead
the next call to QSqlQuery::addBindValue to start at non zero index.
This is problematic in case of a prepared query which is called several
times.

Task-number: QTBUG-43874
Change-Id: I1a0f46e39b74d9538009967fd98a269e05aac6f2
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2015-01-16 13:14:26 +01:00
Nico Vertriest
576cf413bb Doc: verb "to layout" changed to "to lay out"
Task-number: QTBUG-43657
Change-Id: I574186253ee423cc380ec3c6f274f1caa2a6aa2a
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-16 10:29:46 +01:00
Nico Vertriest
871560d45c Doc: define target voor function qsnprintf()
Task-number: QTBUG-43537
Change-Id: I76c511891a1a07eca77da399d23097e76047f824
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-16 10:29:22 +01:00
Nico Vertriest
24238e6a31 Doc: link issues in corelib
Task-number: QTBUG-43115
Change-Id: Ia80802e698f16730698e9a90102f549fb35f9305
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-16 10:29:12 +01:00
Paul Olav Tvete
a8a00f646b Turn off font hinting when we do high DPI scaling
Font hinting depends on the specific pixel size, and ends up very
wrong when the painter is scaled.

Change-Id: I2007ec7e7ad8d52358d76e88e030ea4df7e91455
Task-number: QTBUG-43809
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-01-16 09:52:44 +01:00
Paul Olav Tvete
c1d08afd31 Fix constantly growing window bug with devicePixelRatio
Rectangles need to be mapped differently depending on what they are
used for. Expose events need to cover the entire geometry, so they must
be rounded up, potentially increasing the size. If we use the same
conversion for window geometries, it is possible to end up with a
feedback loop if the window reacts to the new size.

Task-number: QTBUG-43743
Change-Id: I7881cc77bf2148fed2ae743c4226617a61197434
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-01-16 09:52:38 +01:00
Friedemann Kleint
988f1b2e57 Windows: Use DND effect chosen in DragEnter/Move for Drop.
The value of pdwEffect passed to IOleDropTarget::Drop() is always
the one with which the drag was initiated.

Task-number: QTBUG-43466
Change-Id: I045fef634b55d4f113b393aa0ad4aa15d37db372
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-16 08:16:36 +01:00
Laszlo Agocs
5856f6e305 Fix regression with frameless dialogs on Windows
Task-number: QTBUG-41162
Change-Id: I6d4e6d0e8a262fead30d642d632f6b4021cc20ab
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-16 08:14:28 +01:00
Frederik Gladhorn
ccb5978c6d Fix namespacing of QNSViewMouseMoveHelper
Task-number: QTBUG-43061
Change-Id: Ied8cdf49c34ef155b0f0bbc7e547b7c01bcd1d11
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2015-01-16 06:47:26 +01:00
Friedemann Kleint
241d32bfe3 Fix inlining order of functions in qpathclipper_p.h.
When compiling tst_qpathclipper with MinGW:

In file included from QtGui/private/qpathclipper_p.h:1:0,
                 from tst_qpathclipper.cpp:33:
src/gui/painting/qpathclipper_p.h:469:29: warning: 'static QPathEdge::Traversal QWingedEdge::flip(QPathEdge::Traversal)' redeclared without dllimport attribute after being referenced with dll linkage
inline QPathEdge::Traversal QWingedEdge::flip(QPathEdge::Traversal traversal)
                             ^
qpathclipper_p.h:474:29: warning: 'static QPathEdge::Direction QWingedEdge::flip(QPathEdge::Direction)' redeclared without dllimport attribute after being referenced with dll linkage
inline QPathEdge::Direction QWingedEdge::flip(QPathEdge::Direction direction)

Change-Id: I38feb07d693768285c1d405b3fc92a58c3309547
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-01-16 06:31:46 +01:00
Friedemann Kleint
9b35c2cc27 Windows: Fix crash when focus window does not have a native window.
Check and warn in that case.

Change-Id: Ic513334b5aa48e1c7e44685c30da3e9be52c3c52
Task-number: QTBUG-43833
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-01-15 23:25:56 +01:00
Friedemann Kleint
97a82f62c4 Windows: Add infrastructure to be able to a GL renderer based on GPU.
Introduce flags for the renderer type and move code to
qwindowsopengltester. Introduce
QWindowsOpenGLTester::supportedGlesRenderers() where type-dependent
checking can be added.

Change-Id: I4bbffaf861cb0fdbea0919e081e3626fb5a872de
Task-number: QTBUG-43263
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-01-15 23:25:48 +01:00
Friedemann Kleint
0fa092cbae Windows: Add GPU detection.
Compile qwindowsopengltester on all platforms and add struct
GpuDescription with detection method based on IDirect3D9 (dynamically
loaded).

Expose as a QVariantMap-property to QWindowsNativeInterface to be
able to access it from qtdiag.

Task-number: QTBUG-43263
Change-Id: I3c6cd0bbbe36465e0e05f7064ecfc943d6ea4101
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-01-15 23:25:44 +01:00
Kai Koehne
ecd74bcc94 Bump copyright year to 2015
Bump copyright year in tool output and user visible strings to 2015.

Change-Id: I9b29907fe3f555e78005cb296a49d92f601fb7ec
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-15 09:24:51 +01:00
Thiago Macieira
c3590c7677 Update doc saying QDateTime::setTime with invalid time sets to midnight
QDateTimePrivate::setDateTime has a comment saying this is intentional,
so document it.

Task-number: QTBUG-43704
Change-Id: Ic5d393bfd36e48a193fcffff13b965409eaf7be9
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-15 08:37:10 +01:00
Richard Moe Gustavsen
13ecde3b7a iOS: guard text responder from clearing selection
When programatically setting a text selection on iOS, we
call [UITextInputDelegate selectionWillChange] to report
the change. If auto correction is enabled, UIKit will then
reset the current tracking, and for some reason tell us to
clear the selection. This is contradictory to us
saying the the selection is about to change, and will
cause an unwanted recursion back to Qt.

Since there seems to be no way to stop UIKit from doing
this, this patch will instead add a guard that refuses
to change the selection recursively while processing
a selection change from Qt.

Task-number: QTBUG-43716
Change-Id: Id487a57cdda55d7e2d09c3efc14c7f03f566f15a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-15 08:24:26 +01:00
Friedemann Kleint
ea9a366d3f Swallow wheel events while a popup widget is open.
Wheel events should not cause a popup widget parented on a scrollable
widget to be closed or moved to correctly reflect the system behavior
on OS X and Windows.

Task-number: QTBUG-42731
Task-number: QTBUG-40656
Change-Id: I4ef75aa8331390309c251316ac76db2cf9ec51f7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2015-01-12 21:09:26 +01:00
Gabriel de Dietrich
be5cfa960b QMacPasteboardMimeFileUri: Use file paths instead of file references
Change-Id: I732d94bc6add2814c8ebd2c7fe80592024dd1b9a
Task-number: QTBUG-40449
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-01-12 13:49:54 +01:00
Nico Vertriest
34ce66cd89 Doc: link issue D-Bus Viewer
Moved doc D-Bus Viewer from qdbusviewer.cpp to qtdbus-index.qdoc
Doc moved from qttools to qtbase
Task-number: QTBUG-43537
Change-Id: I718781a8f5029f64fea0f2be241b4d584cc8bfce
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-01-12 13:44:24 +01:00
Paul Olav Tvete
3f0b8a9f19 Multi-screen DPI support for X11
Calculate the logical DPI independently per screen, but
only when auto dpr is enabled.

Using a constant DPI value for all screens, based on the combined
geometry is arguably incorrect, but changing this now will
cause pixel-size fonts to behave visibly different from point-size
fonts when moving the window to a different screen.

However, with QT_DEVICE_PIXEL_RATIO=auto, the pixel size fonts are
already changing when the devicePixelRatio changes. Without this change,
the point-size fonts will *not* adapt, which is a clear bug.

Task-number: QTBUG-43713
Change-Id: I3e71618f9d55b7828ccd70b69a7b7ce656c69d65
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-01-12 09:50:36 +01:00
Paul Olav Tvete
075ae987c4 X11 devicePixelRatio screen mapping fix
Fix screen detection and window geometry when screens have
different displayPixelRatios.

We must use the native coordinate system to figure out which
screen a window belongs to. Also, when a window moves to a
screen with a different devicePixelRatio, we must recalculate
the Qt geometry.

Task-number: QTBUG-43713
Change-Id: I93063e37354ff88f3c8a13320b76dfb272e43a9c
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-01-12 09:48:11 +01:00
Tomasz Olszak
3ba1b989a6 xcb: build fix when XCB_USE_XLIB is not defined.
When XCB_USE_XLIB was not defined QXcbXSettings still used XIproto.h.
This change removes XIProto.h dependency and leaves QXcbXSettings
uninitialized when XCB_USE_XLIB is not defined.
QXcbXSettings::initialize() is already used in other parts of code e.g.
qxcbcursor.cpp.

Change-Id: I48eb82e39c5c091b41e8ec19e742a21d41de2610
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-01-11 16:31:09 +01:00
Thiago Macieira
fb16664893 Fix memory leaks with QDBusServer
Two serious mistakes:
 - we need to call dbus_server_free_data_slot as many times as we call
   dbus_server_allocate_data_slot
 - we need to delete the d pointer...

The changes to the unit tests are simply to cause the used peer
connections to be removed so they don't show up in valgrind.

Change-Id: I9fd1ada5503db9ba481806c09116874ee81f450d
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-01-11 03:39:40 +01:00
Thiago Macieira
2924279c23 Don't unnecessariy set localAddress in QNativeSocketEngine's nativeBind
The outer QNativeSocketEngine::bind() function will call
fetchConnectionParameters() as soon as nativeBind() returns, so don't
bother copying localAddress.

Change-Id: Ice13e507ccb9c575a7d3bdf0b41394f35230b746
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-01-11 03:32:57 +01:00
BogDan Vatra
a0737f65a6 Fixes for surface creation/destruction
- After reset a surface we must call makeCurrent before we are usign
swapBuffers.

 - No need to set the surface in QPA when surfaceCreated are called in
QtSurface.java, some time the OpenGL surface is not fully initialized at
this stage. Is better to wait for surfaceChanged which is always fired
at least once.

 - DO NOT reset m_surfaceId to 1 when there is no surface. The problem
is that if we have one surface and when we distory it we don't (need to)
wait for its surfaceChanged/surfaceDestroyed notifications, and if we
create another one quicly it will have the same id (1).

Task-number: QTBUG-39712
Change-Id: I2aa31e5b59d81ef3b03624d4636a4381eea6d543
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-01-10 16:43:01 +01:00
Laszlo Agocs
8dcfb43d8f Resolve GLES3 functions from the shared lib
Unfortunately the few functions that are part of the OpenGL ES 3.0
standard and are used by QtGui have to have special handling after all.
Just directly calling the functions causes issues when building on a
GLES3 capable system and deploying somewhere where only GLES2 is available.

Using eglGetProcAddress and such is not an option because the ES spec does
not guarantee that standard functions are resolvable via that mechanism.

Task-number: QTBUG-43318
Change-Id: I72f985d75ca669835839016573cbb8e4a3fb41db
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-01-10 10:55:47 +01:00
Thiago Macieira
05d39ec9c0 Optimize QHostAddress::operator== for SpecialAddress
There's no need to allocate memory for the special address.

Change-Id: I5f3760565807731ab595e91fc934c21d10df212a
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-01-09 18:16:13 +01:00
Thiago Macieira
b25cfdce46 Fix compilation with MSVC 2010
2013 and 2015 compile this fine. I didn't test 2012. I wouldn't have
fixed if the objective weren't to enable QtDBus by default on all
architectures: since it is, we can't have Qt fail to compile from
sources on MSVC 2010.

qdbus_symbols.cpp(92) : fatal error C1001: An internal error has
occurred in the compiler

Change-Id: I42b930bc37c4e478a66725d83c8a73836fbf567c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2015-01-09 18:15:50 +01:00
Oswald Buddenhagen
44f8f2084b de-duplicate and comment EffectivePaths presence detection
Change-Id: Ibf9731c216df84c9e17ebd699d8349cc716ff3cc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-09 16:57:36 +01:00
Oswald Buddenhagen
26547c0275 remove nonsensical conditional
we are in an #else of #ifndef QT_BOOTSTRAPPED here already.

Change-Id: I02c4ff2959490110c21ad1016c664b7ddcfea7c0
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-09 16:57:33 +01:00
Sérgio Martins
6e217f0678 QColorDialog: Don't loose focus while color picking
On Windows mouse grabbing doesn't work across processes, which
means we're interacting with other windows when picking colors.

Workaround that by having a transparent 1x1 window below the cursor
at all times so we catch the mouse click. Clicking before the window is below
the cursor won't happen because our timer interval is 30ms, so it's quite fast.

It's hacky but it's what we can do for a feature which was very broken on Windows.

Task-number: QTBUG-43663
Change-Id: I295378e033ddc6d9c2230335f0953a727c21e1dd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-09 16:54:54 +01:00
Allan Sandfeld Jensen
8f095d67a0 Fix glyph runs painted badly with perspective transform
A mismatch between requiresPretransformedGlyphPositions and
shouldDrawCachedGlyphs in QRasterPaintEngine will cause the text
position to be transformed twice when using drawGlyphRun on a QPainter
with a perspective transform. Since this case falls back to drawing
text as paths there is no reason to require any special treatment.

Change-Id: Ib1c14aee4cc6774dd8feadc5748f0b0ee59633b9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-01-09 15:51:41 +01:00
Tor Arne Vestbø
56a82e87e6 iOS: Prevent recursion when updating/syncing QIOSViewController properties
Change-Id: I22f1eaa892cba23c498ae210a9a483e468268581
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-09 11:22:59 +01:00
Tor Arne Vestbø
95cb745e00 iOS: Fix QWindow::reportContentOrientationChange on iOS6+
On iOS 6 and above, [UIViewController supportedInterfaceOrientations]
needs to return 0 for [UIApplication setStatusBarOrientation] to work.

This means once you report a content orientation other than the primary
orientation, you'll disable auto-rotation. Reporting the orientation as
Qt::PrimaryOrientation restores the auto-rotation behavior.

Change-Id: I1b8c765c507728fdbc5b828e0b4215324014e221
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-09 11:22:59 +01:00
Sérgio Martins
5c5f43e95b docs: Explain the limitations of QWidget::grabMouse() on Windows
Because carbon is dead, I merged both OSX and Windows in the same note.
Change-Id: I5d43c5fce30e187f63a1e3e5af688c344eb80d28
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-08 21:25:12 +01:00
Tor Arne Vestbø
d62cd6508a iOS: Move implementation details of QIOSViewController to class extension
Change-Id: I602d8f1c9f20d3bfed4db3405460021146b546d8
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-08 21:08:30 +01:00
Paul Olav Tvete
e6699afbee Fix physical DPI and size for rotated screens on X11
Rotated screens would use the unrotated physical geometry, causing the
calculated physical DPI to be completely wrong.

In RandR, the output does not rotate, so the physical size is always for the
unrotated display. The transformation is done on the crtc.
http://www.x.org/releases/X11R7.6/doc/randrproto/randrproto.txt

Task-number: QTBUG-43688
Change-Id: Ifde192fcc99a37d0bfd6d57b4cdeac124a054ca3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
2015-01-08 10:53:04 +01:00
Ashish Kulkarni
da6a706eb3 fix error when cross-compiling with --system-zlib
This is broken since 1f461ac45b, where
Z_PREFIX was defined to namespace the bundled zlib symbols. The
bundled zlib is used by bootstrap.pro when cross-compiling which uses
the namespaced symbols. This breaks linking of rcc when --system-zlib
is used, as it will try to link to compress2 instead of z_compress2.

To fix this, the aliases are pulled in via zconf.h and the bundled
zlib is prepended to the INCLUDEPATH (i.e. before the system zlib).

Change-Id: Iec76cbdead40f888e2ac6a887ec8f3b7bc7db501
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-01-08 09:31:49 +01:00
Lorn Potter
72bc032ca8 Refactor networkmanager QtBearer backend to use QDBusAbstractInterface.
Using QDBusInterface causes introspection, which may not be permitted
by some platforms.

Change-Id: I953d27b9c0fc7c21d52fefeb8c7760a7235aed9d
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-01-08 06:42:44 +01:00
Gatis Paeglis
d40b66a8ef Fix use-after-free bug
xcb_image_destroy() calls free on m_xcb_image
and then few lines down we access member of
m_xcb_image. Swap order of these two actions.

Change-Id: I01fb43a066459cce462df6af22161c35cef524eb
Task-number: QTBUG-43623
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2015-01-08 01:06:21 +01:00
Kai Pastor
1daa7aff4d Remove extra ';' after QPrint namespace block
The extra ';' causes a warning when gcc is used with -Wpedantic.

Change-Id: I3d99aca6f160e46dbe2173106160474664e06b2c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-08 01:06:07 +01:00
Tim Blechmann
099075427b QCoreTextFontDatabase: close memory leak in themeFont
if the CTFontDescriptorRef is already contained in m_systemFontDescriptors
we leak a reference, unless we explicitly release it.

Change-Id: I5b263aa52b4433e7e28cc01164098892cc9cd2ae
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-07 21:32:05 +01:00
Tim Blechmann
b0088967c3 QCoreTextFontDatabase: release CTFontDescriptorRef references in dtor
QCoreTextFontDatabase::m_systemFontDescriptors owns the references to the
underlying CTFontDescriptorRef objects. in order to avoid a leak, we should
release them

Change-Id: I8fc6c158908e0173696cd91058ac34efb3de01d5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-07 21:32:05 +01:00
Tor Arne Vestbø
8f9ced9857 iOS: Raise window level instead of hiding statusbar during VKB scroll
Hiding the statusbar using the normal iOS APIs result in QScreen
reporting new availableGeometry, which is not what we want. The
scroll of the screen is a purely visual effect, and shouldn't
have any effect on observable Qt APIs besides the keyboard rect
changing.

Instead of actually hiding the statusbar, we achieve the same
effect by raising the key window (and any other application
windows, including the keyboard) to the level of the statusbar,
effectively putting them above the statusbar. This still leaves
popups and alert windows above the key window, as normal.

Change-Id: Ib7694240ca86cfb9000de35bf0c49343ffb37e32
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-07 21:32:04 +01:00
Daniel Molkentin
83bd9393e5 Fix crash if PAC script retrieval returns a null CFData instance
The documentation for CFURLCreateDataAndPropertiesFromResource()
does not make this clear but from looking at the CFNetwork implementation
and a user stacktrace it appears that this function can return true
but not set the data argument under certain circumstances.

Change-Id: I48034a640d6f47a51cd5883bbafacad4bcbd0415
Task-number: QTBUG-36787
Patch-By: Robert Knight
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2015-01-07 10:29:13 +01:00
Daniel Molkentin
a83e4d1d9d Fix possible crash when passing an invalid PAC URL
This commit checks whether CFURLCreateWithString() succeeded.

It does not appear to be possible to enter an empty URL directly in the
PAC configuration dialog but I can't rule out the possibility
that it could find its way into the settings via some other means.

Change-Id: I6c2053d385503bf0330f5ae9fb1ec36a473d425d
Patch-By: Robert Knight
Task-number: QTBUG-36787
Reviewed-by: Markus Goetz <markus@woboq.com>
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2015-01-07 10:29:09 +01:00
Daniel Molkentin
ea4dcc5931 Fix crash on Mac OS if PAC URL contains non-URL legal chars
macQueryInternal() was retrieving the PAC URL string as-entered by
the user in the 'Proxies' tab of the system network settings dialog
and passing it to CFURLCreateWithString().

CFURLCreateWithString() returns null if the input string contains
non-URL legal chars or is empty.

Change-Id: I9166d0433a62c7b2274b5435a7dea0a16997d10e
Patch-By: Robert Knight
Task-number: QTBUG-36787
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Markus Goetz <markus@woboq.com>
2015-01-07 10:29:06 +01:00
Andy Shaw
e7210a4945 Remove redundant code
The non client mouse events have the right information regarding the
modifiers now so the old code covered with Q_WS_WIN can be removed.

Change-Id: I3e4ebc0debdd66970b18233f189b5d9e880e40a9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-07 09:57:21 +01:00
Andy Shaw
bb16ceac68 Prevent buffer overrun when getting the glyph images
The change 35bc3dc45a moved some padding out
of QTextureGlyphCache into the font engines directly, however this was not
done for the DirectWrite font engine so it caused a buffer overrun.

Task-number: QTBUG-41782
Change-Id: I4e643159036f06c5edd8a742dc6694d517a47826
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-01-07 09:42:32 +01:00
Friedemann Kleint
5517d1fde5 Windows: Remove check for minimum/maximum size constraints.
The warning was triggered when increasing the fixed size of a window.
If there is a real violation of the size constraints, the below
warning will show.

Task-number: QTBUG-43420
Change-Id: I85d7d0a91d040aa3ddeff8c3d105351efd5e14a9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-07 09:17:51 +01:00
Friedemann Kleint
58fc02241a Windows: Release mouse capture when window is blocked by modal window.
The capture needs to be cleared when for example a modal dialog
is opened from a timer slot or similar while moving the window.

Task-number: QTBUG-43308
Change-Id: Id0c01080d67d1057004a7f85b037dce5e220de42
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-07 09:17:41 +01:00
Friedemann Kleint
6796f2337e Windows: Fix OS version determination for Windows >= 8
First, try to determine the version of kernel32.dll by
using the version API. If that fails, loop using the
version macros, taking the major version into account.

Hangs in the minor version loop have been observed, potentially
related to the major version.

Task-number: QTBUG-43413
Change-Id: I982e78873510e7598c7cf839177e59812acd86f6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-01-07 09:17:18 +01:00
Thiago Macieira
cf4b413fa4 Make QtDBus unit tests compile with runtime dbus-1 too
There's a change in Qt 5.4.0 that makes Qt compile with its own set of
D-Bus headers, which means QT_CFLAGS_DBUS may be empty. Thus, we can't
compile or link if we're using the actual libdbus-1 API to build the
test.

This commit makes these unit tests use the same dynamic loading
mechanism.

Change-Id: I56b2a7320086ef88793f6552cb54ca6224010451
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2015-01-06 18:16:32 +01:00
Orgad Shaneh
a457bf3ff7 Doc: Fixed date format doc bug in QDateTime/Qt namespace
MM stands for month, SS is invalid

mostly cherry picked from Qt4 commit 670f460fab6a386407c07281cf6417ccf6430970.

Task-number: QTBUG-12236
Change-Id: I7af4be655d2d10f1befa1366abb48225c60d31dc
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-06 17:54:58 +01:00
Thiago Macieira
acf80b9a2b Fix build error with Intel Compiler 15 on Windows
If the constructor is inline, the generated code needs access to the
vtable, which gets emitted with the first virtual function (in QtGui),
but somehow icl.exe can't find it in debug. Looking at the .obj files it
generates and comparing to MSVC, it seems that:

 - both generate and export the inline constructor from Qt5Guid.dll
 - MSVC will call that constructor from qoffscreenintegration.obj
 - icl.exe will inline the constructor and requires a symbol not
   exported from Qt5Guid.dll

I can't explain why (probably a compiler bug).

Change-Id: I0ab9c078ae4fc794826025d68d364124c7247e80
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-01-06 17:48:29 +01:00
Thiago Macieira
9d9b785259 Give ICC-as-Clang a Q_CC_CLANG version number too
Give it version number 3.5 for current compatibility.

Change-Id: Ia023d29b3b3946f8642a0550279ae63cbb803fc5
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-06 17:39:03 +01:00
Tor Arne Vestbø
2bdcea9d31 iOS: Remove QIOSKeyboardListener self-change assert/guard
We're fairly confident self won't change in that case, and the
assert was causing warnings in release builds.

Change-Id: I4a826579bb4cedef8423e8d43cb370e1f3b80407
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-01-06 17:38:59 +01:00
Thiago Macieira
624ee454ec Make QDBusConnection and QDBusServer return an error on default objects
The error of "Not connected".

This incidentally solves a crash when QDBusServer().lastError() is
called but libdbus-1 couldn't be found.

Change-Id: Id93f447d00c0aa6660d4528c4bbce5998d9186a8
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
2015-01-06 17:37:00 +01:00
Thiago Macieira
01fc82e357 Re-enable constexpr for ICC 15
The bug noted in d88e4edcd5 appears to be
resolved.

Change-Id: Id20906ff83f74bd16267d44bf447626b81187e71
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-01-06 17:36:49 +01:00
Thiago Macieira
f3e9f11265 Fix change-of-sign warnings with ICC
qlocale_p.h(427): error #68: integer conversion resulted in a change of sign

We hadn't enabled Q_COMPILER_CONSTEXPR for ICC.

Change-Id: Ie7e3070b9f8f2cf512d2745001312865e698596b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2015-01-06 17:36:47 +01:00
Friedemann Kleint
16c32c6dfb JPEG: Fix reading of EXIF orientation.
The orientation is unsigned short, read it as such. In
JPEG-files created by Ricoh/Pentax cameras, the data is saved in
Motorola format. Reading the wrong data size will produce invalid
values when converting the byte order.

Change-Id: I8f7c5dc5bfc10c02e090d3654aaefa047229a962
Task-number: QTBUG-43563
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-06 14:26:00 +01:00
Sérgio Martins
38a3158d2f Windows: Fix QColorDialog's live updates while picking outside color
Microsoft's SetCapture() doesn't work on windows owned by other processes,
so instead we use a timer. This is the same approach as used by qttools/src/pixeltool.

The mouse move approach however is more elegant and doesn't hammer the CPU with
QCursor::pos() calls when idle. For this reason the workaround is Q_OS_WIN only.

Task-number: QTBUG-34538
Change-Id: I40a6f7df5bf2a3a29ade8fe4a92f5b5c4ece7efb
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-01-06 14:22:21 +01:00
Marc Mutz
d7fa2d060a Fix a memleak in QAssociativeIterable::value()
QtMetaTypePrivate::QAssociativeIterableImpl::{find,begin,end}() allocate a new _iterator,
so when they're used outside of the ref-counted world of QAssociativeIterable::const_iterator,
their lifetime needs to be manually managed.

Instead of going to that length, which failed in previous iterations of this patch, implement
value() in terms of (new) find() and let find() operate on const_iterator.

Because of forwards compatibility between patch releases, use (unexported) friend functions
for now with the intention to make them proper member functions come Qt 5.5.

Task-number: QTBUG-41469
Change-Id: I43b21eae0c2fc4c182369e669a8b3b457be68885
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-04 02:20:32 +01:00
Raphael Kubo da Costa
350c60b79e Link against QMAKE_LIBS_EXECINFO when using backtrace(3).
Add a new mkspec variable, QMAKE_LIBS_EXECINFO, for platforms where
backtrace(3), backtrace_symbols(3) and others are not in libc, but
rather in a separate library -- on the BSDs, this is libexecinfo.

Use it in corelib/global/global.pri so that libqt5core links against it
and has the proper dependency when necessary.

Change-Id: I62ac36c9b3ba7ab0719420cb795087d43ec138a4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-01-03 14:48:53 +01:00
Thiago Macieira
86ca4de8a2 Doc: fix the type listed for the functions in QAtomicInteger
The "int" was a left over when this was documentation for QAtomicInt.

Change-Id: If7b7688982d27cbbd42f080eff7d08344b587f44
Reviewed-by: Richard J. Moore <rich@kde.org>
2015-01-02 17:50:17 +01:00
Israel Lins
b60773934d [QDateTime] ISO Time zone designators can be [+-]HH
Added support on QDateTime::fromString to read correctly dates on ISO
format with Time zone designators at format [+-]HH

Change-Id: Ied5c3b7950aee3d0879af0e05398081395c18df5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-12-30 23:56:01 +01:00
Maximilian Hrabowski
a44749855e QODBC: fix converted string values empty SQLServer 2012
SQL Server 2012 Native Client (version 11.0.2100.60) or later introduced
a change in the behavior of the SQLGetData method when converted string values
are involved. In older version a (sometimes wrong) size was returned. Now always
SQL_NO_TOTAL is returned which signals to read as much data as available.
SQL_NO_TOTAL was handled like SQL_NULL_DATA in the code before which indicates a
NULL value so the returned string was empty.

See link for more info: http://msdn.microsoft.com/en-us/library/jj219209.aspx

Change-Id: Ia0d2296caf593890b301ee1848d1bf3eb8d7b6fe
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-12-30 23:55:51 +01:00
Julien Blanc
190f64aab3 Added timezone support for datetime fields in PSQL
This patch adds correct timezone support in PSQL plugin. Prior to this
patch, no timezone support was provided, so only the following case
worked :
 * using local time in both client application and postgresql server
 * datetime were using second precision

This patch tries to take care that postgresql has two different
datatypes for date time, respectively :
 * timestamp with time zone
 * timestamp without time zone

Both are internally stored as UTC values, but are not parsed the same.
 * timestamp with time zone assumes that there is a time zone
   information and will parse date time accordingly, and then, convert
   into UTC before storing them
 * timestamp without time zone assumes that there is no time zone
   information and will silently ignore any, unless the datetime is
   explicitly specified as having a time zone, in case it will convert
   it into UTC before storing it

Both are retrieved as local time values, with the following difference
 * timestamp with time zone includes the timezone information
   (2014-02-12 10:20:12+0100 for example)
 * timestamp without time zone does not include it

The patch does the following :
 * parse the date retrieved by postgresql server using QDateTime
   functions, which work correctly
 * always convert the date to UTC before giving it to postgresql
 * force time zone so that timezone information is taken into account
   by postgresql
 * also adds the milliseconds when storing QDateTime values

The following configurations are tested to work :
 * client and server using same timezone, timestamp with or without tz
 * client and server using different timezone, timestamp with tz

The following configuration will *not* work :
 * client and server using different timezones, timestamp without tz

Because data will be converted to local time by the postgresql server,
so when returned it will be different from what had been serialized.
Prior to this patch, it gave the illusion to work because since TZ
information was lost, time was stored as local time from postgresql.
Lots of inconsistencies occurred, though, in case client tz changes...

I don't expect this to be an issue since having different TZ in server
and client and *not* handling this is a broken setup anyway.

Almost based on changes proposed by julien.blanc@nmc-company.fr

[ChangeLog][QtSql] Added timezone support for datetime fields in PSQL

Task-number: QTBUG-36211
Change-Id: I5650a5ef60cb3f14f0ab619825612831c7e90c12
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2014-12-30 23:49:14 +01:00
Thiago Macieira
62e7518421 Report QHostAddress::Any explicitly in qDebug()
With toString(), it was printing "0.0.0.0", which is the same as
QHostAddress::AnyIPv4, making it difficult to tell the two apart.

Change-Id: I4668ec3337c25ddfdc2fa3bbacc83b9d34316b1f
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-28 15:56:24 +01:00
Sérgio Martins
9a0c4fc479 Fix win32-g++ build due to -Werror
qwindowsprintdevice.cpp:182:85: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
         && DeviceCapabilities((LPWSTR)m_id.utf16(), NULL, DC_PAPERSIZE, NULL, NULL) == paperCount

MinGW DeviceCapabilities is returning an int, although microsoft documents it as returning DWORD.

Change-Id: I3acd76dde0b8b83f8a785ec84e3413115c847cb2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-26 01:50:57 +01:00
Thiago Macieira
98a7497d74 Silence warning in tst_QUdpSocket::multicast for Any+IPv4
QUdpSocket doesn't support binding to QHostAddress::Any and then joining
an IPv4 multicat group since QHostAddress::Any is really an IPv6 socket
with v6only = false. The test did check this case, but failed to ignore
the warning.

Change-Id: I62d782408319a6e566e0ff1a6081b706ac1f669c
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 22:49:26 +01:00
Roger Maclean
dec81ad2da QNX: Revert the change to give higher precision timers.
The previous change (SHA 82c2118c) to provide better
than 1ms accuracy for timers on QNX is not safe.

According to the docs, ClockCycles is not guaranteed to
return consistent information if called from different
CPUs.  While this can be addressed by locking the thread
to a single CPU, you wouldn't want to do that here.

On some systems (e.g. BB10) the behavior  is extremely bad
since ClockCycles only has 32 bits of precision.  This
results in overflows in the calculations making short
timers run very slowly (16ms timers were around 1s).  Also
ClockCycles wraps in under three minutes causing even
more problems.

I've talked to the kernel developers and there is currently
nothing that will give you better than 1ms accuracy.  An
individual program could use ClockCycles to calculate more
accurate times if they want.

It's not clear to me what benefit one would get with
increased accuracy.  Unless I've missed something, these
times are only used to calculate timeouts for calls such as
select.  These timeouts will themselves have the same
resolution as clock_gettime provides so the increased
accuracy would appear to be for naught.

Change-Id: Ia38b154ca41949becbd0b8558a9ff4ddd5e01a43
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-12-24 20:35:09 +01:00
Thiago Macieira
23ba824b7d Fix silly mistake: 0 is a valid file descriptor
Change-Id: I60baa01f0ef9419a73535c761c4722c5abd6f26e
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-24 14:42:51 +01:00
Giuseppe D'Angelo
ceeb032de6 QRawFont: improve the thread-safety checks
384388f2 introduced some checks, and used an assignment in an assert;
that sets off compiler warnings about expressions with side effects
into an assertion. Hence, that code needs to be reworked a bit.

Unfortunately, there's no single define we can use to know if
assertions are enabled or not in Qt, so simply use QT_NO_DEBUG
to enable/disable those checks. The actual "thread" data member
is kept around to avoid break ABI depending on debugging flags.

Change-Id: I8b07e7ff6f81359d6b0653a1d9cc2b720541d1b9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-23 16:38:56 +01:00
Thiago Macieira
7f34bee849 Fix include headers for qsslcertificate_qt.cpp
The order is:
 1) own header
 2) own private header, if any
 3) other headers

Commit f17d7a124f broke the order.

Change-Id: I7225024691db91fd936a057accdad65bacb3f979
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-23 12:20:19 +01:00
Nico Vertriest
a8714548d1 Doc: corrected broken links qtbase
Task-number: QTBUG-43115
Change-Id: Ib441326083294a6d59d75510142b1481f7b0bc35
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-23 10:55:45 +01:00
Joni Poikelin
0920e00932 Check screen before changing cursor
Task-number: QTBUG-43508
Change-Id: I6b525cab2a3958f4e3528ed8102d07984f152e60
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-23 10:11:23 +01:00
Jason Haslam
033318f7a7 Check for valid receiver before sending gesture events.
Gesture events sent to a disappearing tooltip can crash. This can most
easily be seen by scrolling over a tooltip on OSX with a magic mouse
middle scroll gesture.

Task-number: QTBUG-42826
Change-Id: Id5510895f63297ca157e3d24a3f4e3a6034586e8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-23 10:11:08 +01:00
Dmitry Shachnev
13972476ad qstorageinfo_unix.cpp: Fix build on BSD and other unices
* Include statvfs.h on all non-Linux and non-Solaris systems.
* Fix type of stat_buf structure on BSD.

Change-Id: I6336503082fafd7f6108cf95c079bdd329d2ea0f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-23 09:12:01 +01:00
Aleix Pol
c63bb90ac7 Fix typo in Qt5CoreMacros.cmake
According to the documentation, the argument is called COPYONLY instead
of COPY_ONLY.
Fixes warning and ensures it works properly.

Change-Id: I643f5ea808aaaf94c3ee666ec39485e84ed38df1
Reviewed-by: Vishesh Handa <vhanda@kde.org>
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
2014-12-23 01:14:11 +01:00
Alexander Volkov
2b7204c0a9 Doc: Describe the enum item QStyle::PE_FrameStatusBar as obsolete
Change-Id: Ibda864d2b037bd8b2484b8642423ae1bca218021
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-22 23:47:14 +01:00
Sérgio Martins
66a8be2681 QColorDialog: Fix a few layouting issues.
Fixes combo-boxes being too big and some alignment issues
that were not present in Qt4.

See screenshot in JIRA task.
Tested with QT_SMALL_COLORDIALOG too.

Task-number: QTBUG-43501
Change-Id: I2aefb64be1c5f3c4894149d85e1a12c9c0cc3d62
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-12-22 15:46:47 +01:00
Timur Pocheptsov
c085382555 Revert "OS X: rename special menu items instead of duplicating"
This reverts commit 8c538d10da.
This patch, unfortunately, do not combine well with another
problematic code producing, as a result, a serious regression.
While the proper/better fix in Cocoa menu not found, I'm reverting
this patch.

Change-Id: I1ff03dbe12805da447cb3cfe3e2f231528bf1a16
Task-number: QTBUG-43471
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
2014-12-22 14:27:51 +01:00
Thiago Macieira
7b6ab50c68 Remove the hardcoding of Unix socket paths for QtDBus
This allows the tests to be run on Windows too by using TCP socket
connections instead of requiring Unix sockets. The tests shouldn't have
hardcoded the path, which came from QDBusServer anyway. Now the tests
simply defer to QDBusServer.

This is a slight behavior change for Windows, but not one that should
matter since anyone who was using the default constructor resulted in a
QDBusServer that failed to listen.

[ChangeLog][QtDBus][QDBusServer] Fixed a bug that made QDBusServer's
default constructor try to bind to a Unix socket on non-Unix systems.
Now QDBusServer will attempt to bind to a TCP socket instead.

Change-Id: I2a126019671c2d90257e739ed3aff7938d1fe946
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-12-20 07:36:42 +01:00
Thiago Macieira
cfab934186 Fix loading of the dbus-1 DLL built by MinGW on Windows
QLibrary does not append the version suffix on Windows by itself, since
there's no established practice on how to do this. The MinGW builds of
dbus-1 call it "libdbus-1-3.dll", so we need append the suffix
ourselves.

Unfortunately, other names like "dbus-1.dll" have been seen in the wild,
so we need to try both basenames (Windows doesn't prepend the "lib"
prefix). Both basenames work on Unix, so give "libdbus-1" on Unix since
that will result in one fewer stat.

Change-Id: I92506df5fd30c7674216568406bf86b25bf646b8
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-12-20 07:36:20 +01:00
Thiago Macieira
d1d3c36e87 Simplify use of __has_include in qlogging.cpp
Easier to just #define it to 0

Change-Id: Ife99fdca6564077762fa67c6d7a5becaf48655d8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-20 07:36:17 +01:00
Jeongmin Kim
741dd3da33 QNetworkDiskCache: Do not store set-cookie headers of the response in disk cache.
The cookies may contain sensitive information. so we should not store cookies in disk cache.

Task-number: QTBUG-42546
Change-Id: I6331bdd766445af41f55bfaf0e9132b75dd7957f
Reviewed-by: Jeongmin Kim <jm86.kim@lge.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-20 04:20:07 +01:00
Thiago Macieira
a31b75b766 Use the GCC and Clang __builtin_bswap intrinsics in qbswap
Glibc will use the intrinsics for 32- and 64-bit, but didn't for 16-bit
(probably because GCC didn't document it until version 4.8), so this
commit will make us access the intrinsics directly the intrisincs for
all type sizes.

Additionally, this will get us access to the compiler intrisics even
without Glibc, such as when building against uclibc or Bionic.

Another benefit is that both Clang and ICC will use the MOVBE
instruction on Atom and Haswell architectures.

Change-Id: I39d1891f479887d719d69ebe4ac92ac9bfeda8af
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2014-12-20 01:41:00 +01:00
Thiago Macieira
c70658d301 Make sure we don't try to ask QByteArray to allocate too much
QFile::readAll could be asked to read a file that is over 1 GB in size
and thus cause an assertion:

ASSERT failure in qAllocMore: "Requested size is too large!", ...

The idea behind the existing code was correct, but the value was wrong.
It prevented overflow of the integer size request, but didn't prevent
overflowing the storage size.

Change-Id: I072e6e419f47b639454f3fd96deb0f88d03e960c
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-20 01:39:33 +01:00
Thiago Macieira
80d0075588 Fix QThread::idealThreadCount on Unix if sysconf or sysctl fails
The BSD4 code (including OS X) calls sysctl and if that fails, it sets
cores to -1. Similarly, the generic Unix code calls sysconf() and
assigns the returned value to cores, but sysconf can return -1 on
failure.

Change-Id: I9e521d366e9c42f36c2ba20a37e7a74539ddb8f4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-12-20 01:39:22 +01:00
Pavel Krebs
1c1cce67fa QScrollBar: emit valueChanged once even if a slot takes too much time
Put also processing of control activation into initial timer check for possibly
pending mouse release event.

[ChangeLog][QtWidgets][QScrollBar] Fixed a bug where the valueChanged() signal
was emitted twice if a connected slot took too much time.

Task-number: QTBUG-42871
Change-Id: I7bad5279ef84463a033b55256d241d4445374081
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-12-19 17:15:07 +01:00
Eskil Abrahamsen Blomfeldt
0655504015 Also search current directory in QFINDTESTDATA
On Android, none of the file system paths used for QFINDTESTDATA
currently are suitable. We do have the possibility of putting
test data in qrc, but in cases where the test is specifically
testing access to the regular file system, we need a way to
find files there as well. We add a fifth step when all other
fail, which searches the current active directory for the data.

Change-Id: I4f02f8530b5843eb282bd112ea03ed6a476593d6
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-12-19 16:00:59 +01:00
Andy Shaw
a07120d496 Don't clear lineedit in non normal echo mode when validation is invalid
This fixes a regression introduced with
c09e9f71173a698670d6c728291ee24f53d50800 which caused the lineedit to
clear the whole text when an invalid character was entered into a lineedit
with an echo mode that was not Normal and a validator was set.

Now if undo() is called directly then it will still clear the text as it
is considered to be called as a user. Whereas the validation will take
care of the invalid entry by using internalUndo() as before which avoids
the clearing of the entire text.

Task-number: QTBUG-29318
Change-Id: I5ff5777a75ab864de2217441b5f518f50646bd8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-12-19 15:55:07 +01:00
Andy Shaw
7393bb0af4 MSVC: Restore 'public' accessibility of QMetaType member functions
They were made 'private' as a side effect of a change enabling
support of template friends for MSVC. However, accessibility
is part of the MSVC's name mangling and thus BC was broken.

[ChangeLog][Important Behavior Changes] Restored binary
compatibility with Qt 5.3.2 on Windows when using MSVC 2012 or
MSVC 2013. This means that Qt 5.4.1 is no longer binary compatible
with Qt 5.4.0 when using either of those compilers.

Change-Id: I18679aa15821a7365606dc80fdc8411641573820
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-12-19 09:15:30 +01:00
Martin Smith
7869ee5b9d qdoc: Fixed broken TOC links to Reimplemented sections
This update fixes some links in the table of contents on class
reference pages. Links to sections of reimplemented functions did not
work because the word 'reimplemented' was not included in the anchor.
This update fixes that bug.

Change-Id: Ifae972c45ebf6c81e865cfb36f645ea42d74cf55
Task-number: QTBUG-42237
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-12-19 08:07:55 +01:00
Alejandro Exojo
2bd8443663 doc: Fix mistake in QProgressBar::orientation
Reported on qt-interest: should say "true" instead of "false".

Change-Id: Ic9d2608631679896179ae8601790847163a9224c
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
2014-12-19 01:54:44 +01:00
Simon Hausmann
f7716732a5 Remove direct linkage to dbus and qdbus
It appears that there is no code in the plugin that actually uses dbus.

Change-Id: I654cf0b8f5ecc018f2c6ae8701220f7496915a60
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-18 14:45:50 +01:00
Allan Sandfeld Jensen
c4bee2c47f Revert "Fix printing of semitransparent images to PDF"
The patch was incorrect and caused semi-transparent images
have inversed colors instead of fixing it.

This reverts commit 624740cdcd.

Change-Id: I3f1fa17309fcb53995520843449aae972e0090b8
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-12-18 14:42:19 +01:00
Roger Maclean
627afca13c QNX: Handle the case where screen returns a refresh rate of 0.
Screen sometimes returns a refresh rate of 0.  This has been observed
on VMWare though it is unknown if this is always the case and whether
it happens on other platforms as well.  Returning a refresh rate of
0 causes animations to fail so we're better off returning a value that
might be wrong than returning 0.

Change-Id: I4846017bcb0d6bd52faad727df4ef6dac1a6250f
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-12-18 11:35:30 +01:00
Rafael Roquetto
1acb774b2b Remove unused code from QFontEngineFT.
This method is not being called anywhere.

Change-Id: Ia32e8b48d324e4848db666de4d274a260d22b06d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-18 11:23:00 +01:00
Alexander Volkov
8a075c4057 xcb: Don't return 0 from QXcbKeyboard::possibleKeys
It's possible to get 0 for baseQtKey in case Caps Lock is used as
a layout switcher. So don't include this value in the result.
Similar fix was in commit d904533acb.

Task-number: QTCREATORBUG-9589
Change-Id: I46fc91f9faf6fd0699f062a72fd2ca3187232f5a
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2014-12-18 10:47:56 +01:00
Topi Reinio
9290383a1e qdoc: Remove zero-width-space characters from function signatures
The extra character was added in 5.4.0 to allow web browsers to
break up long function signatures in a nice manner. However, not
every browser supports it, and it causes problems in some code
editors when copy-pasting the code.

Change-Id: If6a52b92d683788c5e32f40bb8c280d76112723e
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-18 10:31:16 +01:00
Dmitry Shachnev
15cc31c013 QPlatformSystemTrayIcon: the timeout is in msecs, not secs
What gets passed to this function is in milliseconds, not seconds (see
QSystemTrayIconPrivate::showMessage_sys_qpa implementation), and the only
currently existing implementation (in KDE frameworkintegration) expects
milliseconds as well.

Change-Id: I7a2c847530391aa73183704251c996664668a740
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-18 10:18:23 +01:00
Lars Knoll
384558d78a Qt OpenGL is deprecated with 5.4. Show that in the docs as well
Change-Id: Idadf24d5331443d2c947a633029c7d4ea2305caf
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-12-18 09:48:37 +01:00
Marko Kangas
84569773db Fix OS X style MDI area subwindow resize
Fixed regression bug of the commit #fc11798

Change-Id: I3d64fd67dfe2196a726886a19b9510dd12ff255d
Task-number: QTBUG-43392
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-12-18 09:46:52 +01:00
BogDan Vatra
14e2d8cc09 Update gradle build script.
Change-Id: If5142c039b6307660402f1dbd30ded75e12f8c50
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-18 09:46:31 +01:00
Laszlo Agocs
6c2da36c22 Prevent continuous painting with viewport QOpenGLWidget
Add the source widget to the texture list (may be null for custom
compositor implementations that add textures not belonging to actual
widgets). This allows us to do proper checks with the
dirtyRenderToTextureWidgets list.

As a result paint events are only sent to a QOpenGLWidget if (1) there
was an update() for it or (2) it was actually marked dirty. (2) was
previously behaving differently: the widget got a paint event when
anything in the window has changed. This is fine for naive animating
OpenGL code but less ideal for QGraphicsView.

Bool properties like stacksOnTop are now stored in a flags value to
prevent future explosion of texture list fields and parameters.

Task-number: QTBUG-43178
Change-Id: I48cbcf93df72ac682c9b5d64982a8b648fe21ef3
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
2014-12-18 09:46:23 +01:00
Alex Blasche
b8e71aa847 Qt should not print warning unless we have an API miss-usage case
This warning is always printed.

Change-Id: I524011f251f7f7e0d76eb94b16e1511e72f26422
Reviewed-by: Lorn Potter <lorn.potter@gmail.com>
2014-12-18 09:46:14 +01:00
Alex Blasche
8eb4b281d9 Change bugreports.qt-project.org -> bugreports.qt.io
The Qt bug tracker URL changes as part of the qt.io transition

Change-Id: Icb4ab198943b93639b5e3a8d99262303785c6459
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-18 09:46:09 +01:00
Eskil Abrahamsen Blomfeldt
9f63e2dc0e Fix PDF when embedding fonts with large internal leading
Setting lfHeight to a positive value in LOGFONT requests the font
with the given cell height, which is em square size + internal
leading. When setting this to the em square size, it means we
will get glyphs that are actually sized for an em square with
sides that are (emSquareSize - internalLeading). For most fonts,
this was not noticeable, but for some fonts with large internal
leading, the resulting glyphs would be very small.

When setting lfHeight to something < 0 instead, we are selecting
the font with the given character height instead, which is not
including the internal leading.

[ChangeLog][PDF] Fix embedding glyphs from fonts with large
internal leading.

Task-number: QTBUG-43082
Change-Id: Id74cf2279df2062804e9431fe305d803cb0b19d2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-12-18 09:43:13 +01:00
Friedemann Kleint
7f6c4390ec Windows: Return false from event processing of unhandled multimedia keys.
Otherwise, potentially active players no longer receive the keys when
a Qt application is running.

Task-number: QTBUG-43343
Change-Id: Iefa511a101734690305e3244fafec4a460a9212d
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-18 06:33:24 +01:00
Friedemann Kleint
c07559bf5b QOpenGLContext: Use static invocation of QGuiApplication::platformNativeInterface().
Fix MSVC warning (release build):
qopenglcontext.cpp(1116) : warning C4189: 'app' : local variable is initialized but not referenced

Change-Id: I00fa5237bbac4c0e3bb63ea9d3e5096e05dbe1be
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-18 06:32:39 +01:00
Sérgio Martins
2746fe4243 QColorDialog: Fix matching against predefined colors.
The grids are filled top to bottom, left to right, so use division to get
the column.

Task-number: QTBUG-43371
Change-Id: I02ad518512858ed71e0e3a0cae8c4e02d537a9b9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-16 13:44:40 +01:00
André Klitzing
87ede1fc7a Fix constant "Qt" LOG_TAG in Android
The LOG_TAG for Android can be set by QCoreApplication::applicationName
instead of a constant "Qt" tag. This will avoid that multiple apps
will use the same tag.

Also it will be easier to filter the logs for different apps instead
of "adb logcat -s Qt" for all Qt apps.

Change-Id: I422cc3adf8b526634b5daa9a1bb1b90403de5618
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-15 21:24:02 +01:00
Eskil Abrahamsen Blomfeldt
19bb9aa9e5 Fix possibly corrupted log clusters when using custom tab stops
The calculateTabWidth() can trigger shaping of the item, which can
cause the layout data to be reallocated, so we need to update the
local pointers to it, like we do when we explicitly invoke the
shaper.

[ChangeLog][Text] Fixed problems with text layout when using custom
tab stops.

Task-number: QTBUG-43126
Change-Id: Ifaeeeb4bfb1a55e6638b12b444f53d2679d3d1e6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-12-15 21:02:12 +01:00
BogDan Vatra
21101d9c52 Fix crash when Android Style is set more than once.
Load again JSON document is it was freed.

Task-number: QTBUG-43111
Change-Id: I22f1de221371b49fec8b3d66ad5f0bd2af9656fe
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-15 14:16:11 +01:00
Maurice Kalinowski
3466950837 [ANGLE] Fix compilation with MSVC2013 Update4
Update4 provides a native Sleep implementation. Hence the wrapper
needs to be disabled.

Change-Id: I162da45934b02c262ac09b557c66c3363c276e54
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-12-15 09:19:48 +01:00
Tor Arne Vestbø
1cc83b575d Make GL2PaintEngine::drawCachedGlyphs use updateTexture
Ensures that we have a consistent view of what the last used texture
was, which is critical when deciding whether or not we need to re-bind
the texture or update texture properties.

Change-Id: Ib47eb00abde98d148fc6e569ce3e359b340328fb
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-14 17:09:58 +01:00
Sérgio Martins
37fa842f41 QColorDialog: Fix picking screen colors inside QColorPicker
If you click "Pick screen color" and move mouse over QColorPicker (the square with gradients)
unexpected things will happen: black will be picked half the times.

This is because QColorPicker's black cross is painted under our mouse cursor.

Although "pick screen color"'s use case is to pick colors in other windows, there's no reason
to not make it work on QColorDialog itself too.

Task-number: QTBUG-43288
Change-Id: I03ca02148cc15ad41d545723d4ac4f5a82842b4b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-13 05:39:12 +01:00
Thiago Macieira
dc469691a9 Bump version number to 5.4.1
Change-Id: I54231de422ffc63162e49c587f371c56c3312210
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-12-13 05:12:17 +01:00
Tor Arne Vestbø
dfccd78aa6 Ensure that GL::updateBrushTexture() activates and binds properly
Calling QOpenGL2GradientCache::getBuffer() will generate the texture the
first time, calling glBindTexture in the process. We did this without
first ensuring that the right texture unit was active, resulting in the
generated gradient texture binding onto the glyph cache mask unit.

We now provide a specialization of bindTexture for a QGradient, which
ensures that the right unit is active before calling getBuffer().

Unfortunately we have no way of knowing if the result of getBuffer()
was a texture that was already bound, or if we need to bind the result,
which means we have to do an unconditional bindTexture of the resulting
texture ID. This means double-bind for the initial texture generation,
but this was already an issue in the original code.

Task-number: QTBUG-43039
Task-number: QTBUG-41244
Change-Id: I20c9b795c8c14f8d58be2b60a284c5a060705ec0
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-13 01:49:24 +01:00
Konstantin Ritt
384388f2cd Make QRawFont usage safer in a multi-threaded environment
QFontEngine must be accessed amd deleted only in a thread in which
it was instantiated, so we remember that thread and check if it
hasn't been changed every time we access the engine.

Change-Id: I28bc0394ced9cbd437dc950d35ffcbd99cfa7152
Reviewed-by: Pierre Rossi <pierre.rossi@theqtcompany.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-12-13 01:29:32 +01:00
Tor Arne Vestbø
37490d465b GL: Make updateTexture invalidate texture on change of texture unit
Switching texture units means the value of lastTextureUsed could be
invalid, meaning we need to unconditionally re-bind and update parameters.

A future optimization would be to keep a per-texture-unit cache, so
that we wouldn't have to re-bind and set parameters when switching
units back and forth, but this complicates the current code somewhat,
so it's left for another patch.

Change-Id: Icb2a5d03457a907f3c25bbb437feeb7c5f155716
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-12 22:37:00 +01:00
Jørgen Lind
2e2de5e482 Fix xcb backend not grabbing the server as default
The xcb backend relies on grabbing the x server in a few situations like
popuphandling. For Qt 5.4.0 the logic enabling this code path was moved
into the plugin. However it defaults to never grabbing the server

Change-Id: I82489a0727affbce62587b3d7470085cf716a0cc
Task-number: QTBUG-43049
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-12 16:38:02 +01:00
Paul Olav Tvete
71a63836ed Make ImhNoPredictiveText work on Samsung devices
Samsung does not support TYPE_TEXT_FLAG_NO_SUGGESTIONS, even
though that flag was introduced in API level 5. Therefore, we
have to use TYPE_TEXT_VARIATION_VISIBLE_PASSWORD. This effectively
makes ImhNoPredictiveText a synonym for ImhSensitiveData on Android.

Task-number: QTBUG-43297
Change-Id: I3e7139d144276462e46512445ad7b8e7114d8e32
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-12 15:43:30 +01:00
Nico Vertriest
fff996e8ad Doc: corrected documentation addOptions()
Task-number: QTBUG-43259
Change-Id: If27c0658f7abaa4ce01de343ce90c14bd911212f
Reviewed-by: Martin Smith <martin.smith@digia.com>
2014-12-12 15:33:14 +01:00
MihailNaydenov
dc583a0576 Fix incorrect QImage transformation when its devicePixelRatio != 1
QImage::transformed compensates for unwanted translation. This compensation
is performed in "pixel space". However, a possible code path to perform the
transformation uses QPainter which is devicePixelRatio-aware and expects the
transformation matrix to be in logical coordinates.

For example, image.transformed(QTransform().rotate(45)) will result in
cropped out image if devicePixelRatio == 2.

Change-Id: I830ff3ffa25531d842dc9c77f1d0e8d4bd502c9d
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-12 15:32:55 +01:00
Thiago Macieira
d47b9ace50 Fix the Apple build version numbers for Clang
A bunch of zeroes were missing. And not to the left.

Task-number: QTBUG-43279
Change-Id: I1a710cf572099547b2ade7b2574a7e0a61649758
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-12 03:39:37 +01:00
Friedemann Kleint
d61ee49df4 Windows: Do not register windows obtained by QWindow::fromWinId() for touch.
Fixes a warning:
RegisterTouchWindow() failed for window ''. (Access is denied.)

Task-number: QTBUG-43252
Change-Id: I92a565f3a5e2e8815eb709b5c6d0ccdba7330e31
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-11 16:10:53 +01:00
Friedemann Kleint
994bbcf1df Windows: Fix window geometry when using QWindow::fromWinId().
Take margins into account.

Task-number: QTBUG-43252
Change-Id: I816115d2bbbcee3e8663f42bf07b1a140a049e69
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-11 16:10:47 +01:00
Alexander Volkov
7b8aaf04f6 Propagate the source of mouse events
Set the source for mouse events which were caused
by other mouse events.

Change-Id: Ifca1648883ef2b94bb317ed9340759475d350146
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-11 15:54:01 +01:00
Richard Moe Gustavsen
fb9eca8c9c iOS: let keyboard gesture work better with other gestures
Let the keyboard gesture work better alongside other gestures
by reporting that it should:

1. not prevent other gestures from triggering. This means that
    even if our gesture triggers (we close the keyboard), gestures
    attached to sub-views will still continue tracking.
2. not be prevented by other gestures. This means that if
    a gesture in a sub-view triggeres before our gesture, our gesture
    will still continue to track.

In short it means that regardless of other gestures, we always
close the keyboard if our text responder is first responder and
the user flicks down. And we do so as "silently" as possible.

Change-Id: I22386b5ef5dedbc498a2899929ddd07424e514d8
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-11 15:20:08 +01:00
Richard Moe Gustavsen
de04841e19 iOS: only clear focus object if it supports IM
We try to keep a on-to-one relationship between UI controls with text input
and keyboard visibility. But if the control does not use text input, then
there is no reason for us to clear focus when the keyboard hides. In fact, we
should avoid doing so, since that will stop e.g buttons from working correctly.

The typical flow is:

- a touch release targeting a button is sendt to QApplication.
- QApplication transfers focus to the button.
- qiosinputcontext gets notified, we refuse, and clear focus again.
- QApplication enters a propagation loop where it tried to
    find out the receiver of the event. Since the button is now
    unfocused, the event will propagate up to a grandparent instead.
- the button will as such not trigger.

Change-Id: I70baa38299f40defc4a77f62790502e2d6ebbba9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-11 15:19:59 +01:00
Kai Koehne
87e9e76d97 ANGLE: Do not use std::strlen
This is a cherry-pick from upstream change

e7cfb3dd2029c1bfe5c175ad994c03cac221ad4d

Change-Id: Iefe01545319f9ad268c0c6bf8e8b2181e09d8a84
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-11 14:39:05 +01:00
Tor Arne Vestbø
8aa663e139 iOS: Only scroll to cursor on keyboard hide gesture reset if requested
Change-Id: I15b313b5f0d57358e405f16e941fc5061028c6a7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-11 14:39:00 +01:00
Tor Arne Vestbø
e415ed83af iOS: Don't scroll screen on changes to input item transform
We auto-scroll the screen to reveal the cursor whenever the cursor rect
changes or other properties of the input methods are updated, but the
expected behavior when explicitly moving an item under the keyboard,
such as when scrolling a view or moving an item using drag, is to
not scroll the screen until typing commences. This matches how eg.
Safari or the Notes app handles the same use-case.

Change-Id: I6b6932d9bcbdccd8df26db982246c162f1574d86
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-11 14:39:00 +01:00
Tor Arne Vestbø
47326b9c5c GL2PaintEngine: centralize logic for updating/preparing textures
Rewrite of updateTextureFilter to include activating and binding as well,
so that we can maintain a single view of which texture was the last one
to be used from within the engine itself.

The behavior should be the same as before.

Change-Id: I41781d00458b0176c614266f4360db3c68b120a1
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-11 06:14:28 +01:00
Tor Arne Vestbø
e9222e199d GL2PaintEngine: Prevent fillInPendingGlyphs from breaking gradients
The glyph cache internally uses the image texture unit when blitting,
but doesn't always activate the unit before binding its texture,
resulting in sometimes binding the glyph cache texture to the
wrong unit.

The image texture unit is also the same as the brush texture unit,
so any time we fill in pending glyphs we need to re-bind the brush
texture, otherwise drawing text with eg. gradients will fail after
the new glyphs have been filled.

The new hasPendingGlyphs() member function of the glyph cache
is an optimization so that we don't need to activate and rebind
unless there are glyphs that need to be filled.

Change-Id: Iac74130145d2d6d7bf95206b5e8a2fc760743cb5
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-10 21:49:55 +01:00
Paul Olav Tvete
e79cdd0e6d Enable input methods for QQuickWidget
Make it possible for widgets to have non-widget focus objects. Since
we cannot add new virtual functions due to binary compatibility, we
have to do it in QWidgetPrivate.

Task-number: QTBUG-42677
Change-Id: I5f74daed2793c1c149bbe02e54ff2f7e2ad1af9e
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2014-12-10 15:56:47 +01:00
Martin Gräßlin
6a7ee92b39 Handle SelectionClientClose in QXcbClipboard
QXcbClipboard listens for subtype SelectionClientClose of Xfixes
SelectionNotify event, but doesn't handle it. When the client holding
the clipboard selection closes the Clipboard becomes empty and thus the
change should be emitted.

This fixes downstream KDE Bug #329174.

Change-Id: I19fb8cfd7bd3b249c0bc6ca2a724a9aeeb05ac7e
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
2014-12-10 12:45:58 +01:00
Alejandro Exojo
dd670a2f3d doc: Clarify NOTIFY emission with MEMBER variables
Document that NOTIFY signals should be emitted only when really needed,
and that such is the case with MEMBER variables.

Change-Id: Icc38a0790aa43ffe8f24d124da966b4240a41a6f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2014-12-10 11:09:25 +01:00
Kai Koehne
f17d7a124f Use categorized logging for ssl code
Place all debug output into the 'qt.network.ssl' category.
This allows people to disable certain warnings at runtime.

Task-number: QTBUG-43173
Change-Id: Ide731fae3109f9cd7730cc096ee069a5b99d35f1
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-10 11:07:46 +01:00
Benjamin Summerton
7d2357b0a8 Fixed small bug in code snippet for QGraphicsItem
If the enumeration "Type" isn't declared in the public scope, it will
cause an issue upon compilation.  Previously, it was ambiguous on which
access level this should be in.  Snippet [18] though has the enumeration
in the correct access level.

Change-Id: If699df80def3e1b09d8d82df74c4ca85eba003d2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-10 05:50:14 +01:00
Benjamin Summerton
30fdd71b63 Removed redundancy in QGraphicsItem documentation.
Snippets [1] and [QGraphicsItem type] are the exact same, each
referenced once, and only in the same file.  Removed the later snippet.

Change-Id: I4f35a8322034b00e9b5f5d6c6d96e652f11f8384
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-10 05:50:04 +01:00
Paul Olav Tvete
b9547af45e Android: Make cursor keys work again
On Android, we disable mouse selection, since that does not work
well with touch screens. In change a03a69efb9,
we accidentally disabled keyboard selection as well. Unfortunately,
disabling keyboard selection will disable all keyboard movement.
This change re-enables TextSelectableByKeyboard.

Task-number: QTBUG-42991
Change-Id: Ie63ed3d88a0abcb72f04e0ec60a5b91c0b14a47e
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-09 17:40:02 +01:00
Dmitry Shachnev
404f4281fd qimage_conversions.cpp: Fix build on big endian systems
Change-Id: I8149eb2deaa101daf85a957ff48c3a7140c43bbc
Reviewed-by: Timo Jyrinki <timo.jyrinki@canonical.com>
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
2014-12-09 17:03:04 +01:00
Jan Arve Saether
5a6735316a Do not initialize accessibility code by default on startup.
Instead listen for if the accessibility service is running or not by
implementing AccessibilityStateChangeListener.
This seems to work smoothly when turning on or off TalkBack.

This should also improve startup time.

Change-Id: I3eb7d6cb9c9c1618afbb59675e4e089c9159019c
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-09 16:59:03 +01:00
Friedemann Kleint
a6436ff559 Windows: Limit cursor cache.
Prevent the cursor cache from growing indefinitely hitting GDI resource
limits if new pixmap cursors are created repetitively by purging out
all-noncurrent pixmap cursors.

Change-Id: I4a3bbd6235af13e306ca84ac6fea3fcd69d53279
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-09 16:53:37 +01:00
Paul Olav Tvete
66e48d2c2f Support vertical sliders on Android
There is no such thing as a vertical slider in the native Android
style. Therefore, we need to rotate the painter in order to draw
one.

Task-number: QTBUG-41992
Change-Id: Ibe2bf1d7fa27756aad0b8469c8752d6d3e848527
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-09 11:47:40 +01:00
Giuseppe D'Angelo
b39bbc95f6 QHeaderView: take the sort indicator into account when eliding text
By adding PM_HeaderMarkSize to the margins if the section is showing
a sort indicator. Turns out that that particular enum was actually
unused in QtWidgets (!), so tune the value to match reality.

Task-number: QTBUG-629
Change-Id: I8bc70451656d634a064c8b5014e449977c55aa9d
Reviewed-by: Cristian Oneț <onet.cristian@gmail.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-09 07:49:02 +01:00
Giuseppe D'Angelo
b5f8502c12 Styles: improve SH_Header_ArrowAlignment handling
The docs were wrong, and the returned values from some styles
did not match reality, so fix that. Again, this style hint was
not used at all within QWidgets...

Task-number: QTBUG-629
Change-Id: Ie6ff80fd09bc3292ba3d787ccca4d6f4c0056e89
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2014-12-09 07:48:58 +01:00
Przemysław Czerpak
1b548faa77 Added support for CTRL key modifier to Android builds.
Change-Id: Ib3eddb33348c54cec6cee62abdf69104059affb0
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-08 13:23:56 +01:00
Alejandro Exojo
1d61e3267d doc: Clarify \inqmlmodule usage
The \inqmlmodule command only accepts one parameter: the name of the module.
This was producing some confusion, since in qtdeclarative there were some wrong
import statements and it wasn't obvious which command was producing them.

Change-Id: Idb41f12f20f05757942b0957c512d195ec8500b3
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2014-12-08 11:38:44 +01:00
Laszlo Agocs
d52ea19862 Take ShareOpenGLContexts into account in QOpenGLWindow
While the attribute was originally intended for widgets (QOpenGLWidget,
QQuickWidget) only, we need a way to get multiple QOpenGLWindow instances
whose contexts share with each other.

Change-Id: Ib983c9c2815b0a3911bc504ffad8d8dddad192aa
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2014-12-08 10:28:13 +01:00
Richard Moe Gustavsen
370d421495 Widgets: be more careful when setting focus on touch release
An application might choose to change focus when receiving mouse/touch
press/move events. This is in conflict with Qt assigning focus on touch
release (QPlatformIntegration::SetFocusOnTouchRelease), since Qt
might then reassign focus to something else.

An example of this is seen with the "frozencolumn" example. Here, when
the user double clicks on a cell, the application creates an 'edit'
widget inside the cell that gets focus. But at soon as the last release
is sent, Qt will change focus to the focus proxy of QScrollArea instead.

This patch will introduce an exception to setting focus on release, so that
we only set focus if we detect that focus didn't change (by the app)
while processing press/move events.

Task-number: QTBUG-39390
Change-Id: I7b398b59e3175265afd2fcd938e11f88155abc89
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-08 09:56:25 +01:00
Friedemann Kleint
aca0fb1786 Update window flags from QToolBarPrivate::endDrag().
Activate previously #ifdef'ed code which cleared
the Qt::X11BypassWindowManager hint. With the hint
set, the tool bar stays on top and does not get deactivated
along with the application by the WM.

Task-number: QTBUG-41189
Change-Id: I6f3f334860e46dd4867f5942f15e5a090340f2d7
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2014-12-08 09:47:31 +01:00
Tor Arne Vestbø
8ee7aa78af qt_mac_loadMenuNib: Prevent stale NIB files by diffing file size
If we're changing the contents of the nib files in Qt, we need to
overwrite the nib files that we write to /tmp, as QFile::copy() does
not overwrite files.

This also catches the case where the files in /tmp are empty due to
a possible broken qrc-run, where re-runs of qrc to fix the resources
would still leave the corrupt nib in /tmp, resulting in:

  -[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did
     you forget to send -finishEncoding to the NSKeyedArchiver?

And as a consequence:

  qt_mac_loadMenuNib: could not instantiate nib
  ASSERT: "mainMenu" in file qcocoamenuloader.mm, line 154

Change-Id: I2907a32d1a56c23a27343c81839a06b65a529372
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-05 15:39:10 +01:00
Friedemann Kleint
05ad2fc2f4 Fix warnings by MSVC 64 in qtranslator.cpp.
kernel\qtranslator.cpp(880) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data
kernel\qtranslator.cpp(881) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data
kernel\qtranslator.cpp(882) : warning C4267: 'initializing' : conversion from 'size_t' to 'const uint', possible loss of data
kernel\qtranslator.cpp(975) : warning C4267: 'initializing' : conversion from 'size_t' to 'const int', possible loss of data

Task-number: QTBUG-39757
Change-Id: I54f130e1d83ecc1623ab3c7b9b4fb14de6351625
Reviewed-by: Albert Astals Cid <albert.astals@canonical.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-12-05 15:32:46 +01:00
Nico Vertriest
b74e046174 Doc: corrected autolink issues qalgorithms.qdoc
Task-number: QTBUG-40362
Change-Id: Ia609b68b52472342d791a032974a3d866e8d3266
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2014-12-05 15:32:43 +01:00
Simon Hausmann
8c0014213b Merge "Merge remote-tracking branch 'origin/5.4.0' into 5.4" into refs/staging/5.4 2014-12-05 16:45:27 +01:00
Paul Olav Tvete
8015ffef1e Fix QOpenGLWidget/QQuickWidget GUI freeze
A window with a renderToTexture child uses the OpenGL path, but when
we open a popup or dialog, that uses the raster compositor, which opens
a separate surface. This patch fixes two issues when combining GL rendering
with the raster compositor:

1. GL-rendered widgets were counted as part of the raster-rendered region,
meaning that we did not punch a hole in the raster surface.

2. We did not destroy the surface when no longer needed.

Task-number: QTBUG-41467
Change-Id: I2a2a0e860cce065b330df1c864d51fd02103aa1b
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-05 14:25:09 +01:00
Gabriel de Dietrich
a43684c0da QMacStyle: Fix 32-bit build
Again one of those CGRect vs. NSRect issues.

Change-Id: Ia933cd6f002585e21247d2f9f85d2451db6dbaa0
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Timur Pocheptsov <Timur.Pocheptsov@digia.com>
2014-12-05 13:34:03 +01:00
Tor Arne Vestbø
3f1cb33d35 Reformat QOpenGL2PaintEngineExPrivate a bit to make it easier to refactor
Change-Id: I99f7192008ae8ea3a16f5300e5e4ebdde50847af
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-05 13:22:19 +01:00
Simon Hausmann
7644faa881 Merge remote-tracking branch 'origin/5.4.0' into 5.4
Change-Id: I0cd11cbe95693b78450ea81a0187760f4a6a8b5f
2014-12-05 11:53:33 +01:00
Oliver Wolff
451668d252 WinRT: Only set keepalive socket option in certain socket states
The keepalive socket can only be set if the socket is not connected
(see
http://msdn.microsoft.com/en-us/library/ie/windows.networking.sockets.streamsocketcontrol.keepalive)

Task-number: QTBUG-38623
Change-Id: Ia40dc66f071a8109538e4be7a8f420de81d5be8d
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
2014-12-05 08:00:44 +01:00
Giuseppe D'Angelo
8920200c97 QColumnView: don't set an invalid index as the current one
When any item in a QColumnView gets selected, the next column gets
normally set to show the children of that index. When we are on a leaf
of a tree model, the next column will have an invalid root index, yet
we set that root index as the "current index" for the current column.

Due to the special handling for invalid indexes in
QAbstractItemView::setCurrentIndex, this ends up breaking the current
item AND the current selection in that column. Further clicks inside
the column for instance trigger the entire column (up to the clicked
index) to get selected, because of that broken first setCurrentIndex.

The simple fix is to stop doing that when the next column has
an invalid root index.

Task-number: QTBUG-2329
Change-Id: Icd10c0b958e25cd868536e1315561787977b68bd
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2014-12-05 07:57:46 +01:00
Jan Arve Saether
e682ea6f78 Draw the accessibility focus rectangle properly
Previously, the accessibility focus rectangle was only visible when it
overlapped with the m_editText View of QtActivityDelegate. The reason for
this is not completely verified, but this is the most likely reason:

  * The SurfaceView and QtLayout (ViewGroup) does not do any drawing
    themselves. Due to this their default value of the View::willNotDraw
    property is true.  Because of this Android might assume there is no
    content for the focus indicator to surround. (This was verified with
    setting the willNotDraw property to false on the accessibility view);

  * Another possible reason could be that overlays does not work for
    SurfaceView. It is documented that overlays does not work for
    SurfaceViews, so therefore it tried to use the overlay of another
    view. For some reason it picked the m_editText overlay instead of the
    QtLayout overlay.

    See here about overlay:
    http://developer.android.com/reference/android/view/View.html#getOverlay()

The solution is to add another View that covers the whole screen, which
will be used solely by android to draw the accessibility focus indicator.

In addition, we change the QtAccessibilityDelegate to no longer have the
SurfaceView as a host, but have the m_accView as a
host (the host can be freely changed, since all accessibility nodes are
virtualized through the delegate anyway)

For the record, this will be the current ordering of views in QtLayout:
(back-to-front order):
                                Qty     Default Qty
* Surface View(s)               >= 1    1
* Accessibility View            == 1    1
* Native View(s)                >= 0    1
* m_editText View               == 1    1
where the m_editText migth be interleaved among the Native Views.

[ChangeLog][Android][Accessibility] Fixed an issue where the accessibility
focus rectangle was not drawn properly

Task-number: QTBUG-38869
Change-Id: I64d6b6ec45b27d0d93ac9dd840de764c18c55d04
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-05 06:15:52 +01:00
Friedemann Kleint
2df293267e Windows: Skip calculating margins for Qt::FramelessWindowHint.
Always skip calculating style-dependent margins for windows claimed
to be frameless by Qt. This allows users to remove the margins by
handling WM_NCCALCSIZE with WS_THICKFRAME set to ensure Areo snap still
works.

Task-number: QTBUG-40578
Change-Id: Ice7771df8fbf59b370568219d10c12ce04e99628
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-12-05 06:10:01 +01:00
Andrew Knight
5367fa3562 winrt: Fix window resize
The fixed-size EGL display must be updated on PC as well as Windows Phone.

Task-number: QTBUG-43112
Change-Id: I0ba90370b67e8c065843e5754579e341b647266d
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-12-05 05:37:01 +01:00
Allan Sandfeld Jensen
30772c7270 Fix loading of web fonts with broken hinting bytecode
The Fira Sans font by the Mozilla Foundation has bytecode that goes
into an infinite loop. Fortunately FreeType catches the case, but we
fail to render any glyphs and spends too long trying the bytecode on
every glyph.

This patch instead switches the font to auto-hinting when this error is
encountered.

Task-number: QTBUG-41034
Change-Id: Icd044b41396a06fb435bc189cdbd71d703107de6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-04 20:30:55 +01:00
Friedemann Kleint
8860522d7e QDockWidget: Prevent repetitive unplugging of floating dock widgets.
When calling QDockWidget::setTitleBarWidget() from within signal
QDockWidget::topLevelChanged(), a nested call of
QDockWidgetPrivate::setWindowState(unplug=true) is triggered, leaving
it with Qt::X11BypassWindowManagerHint set and thus invisible/off
screen.

Force the unplug parameter to false if the widget is already
in floating state.

Task-number: QTBUG-42818
Task-number: QTBUG-38964
Change-Id: I6aff61e4ee1501f5db281566b66db66c19351410
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-12-04 20:18:21 +01:00
Friedemann Kleint
50d29a695a Windows: Handle WM_WINDOWPOSCHANGING during window creation.
Fix warnings:

QWindowsContext::windowsProc: No Qt Window found for event 0x46 (WM_WINDOWPOSCHANGING), hwnd=0x0xde0408.

occurring when using Active X controls.

Factor out message handling to a static function which can be used
during window creation when QWindowsWindow does not yet exist.

Task-number: QTBUG-36318
Change-Id: I3ce56fd377e3392b0dd22d3d26a7048065380f13
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2014-12-04 20:18:13 +01:00
Albert Astals Cid
247607a1af Don't make invalid assumptions about memcmp()
In qtranslator.cpp match()

Task-number: QTBUG-39757
Change-Id: I49e3ccc0ce900564bbe14609bfda47688382d5f3
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-12-04 19:22:15 +01:00
Sérgio Martins
1edc7554de FreeType: Fix font rendering with fonts with embedded bitmaps
Only reproduced with Windows font Calibri. This font has both
outline (vector) and bitmap glyphs. QFontEngine_FT has an hack
to get metrics from EBLC table, but this might fail, resulting
in a 0 ascender and descender, meaning QFontMetrics::height()
will be 0, meaning totally broken text.

This patch checks for that failure, and fallbacks to the outline
metrics instead of the bitmap ones.

Task-number: QTBUG-42898
Change-Id: If33fc3404d0c7f84557f8c4a5ae71b30f78d60a7
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-04 19:21:15 +01:00
Sérgio Martins
33739ccb95 Windows: Bring FreeType rendering up to par with other platforms
The text was very washed out, almost white on small font sizes.

This ifdef was introduced to cater for GDI differences between Vista
and Pre-Vista, it's GDI specific, nothing to do with FreeType.

Text now looks good, and md5sum of the rendering is the same as on Linux.

Task-number: QTBUG-42564
Change-Id: I2e06b83b80df093331454fe1b780d26462db597d
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2014-12-04 19:20:58 +01:00
Tor Arne Vestbø
36818ae9ef Collate calls to updateTextureFilter in updateBrushTexture
Change-Id: Id13d5bc122c4f9cc8f44ff82df345a50f2944118
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-04 18:51:39 +01:00
Tor Arne Vestbø
fd29be6a6b Revert "Use single finger pan to scroll text edits on touch screens."
This reverts commit 2ffa46054d.

It completely broke text selection in text edits on iOS, and wasn't
even tested on that platform before landing. It's also changing
behavior in a patch release for multiple platforms, from being
able to both scroll and select text, to only being able to scroll,
which would be considered a feature-regression and an automatic
-2 on the original patch.

This means QTBUG-40461, a P2 regression from Qt 4 on Windows, will
have to be re-opened, so that we can fix it properly.

Task-number: QTBUG-43101
Change-Id: I26a2bafb4500b1ff4dc3fb942f197d11038b630b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-04 18:51:39 +01:00
Tor Arne Vestbø
20d10d90f2 Revert "QWidgetTextControl: Suppress drag selection for OS-synthesized mouse events."
This reverts commit cf0d96f4c8.

It broke text selection on iOS and was never tested on that platform.

Task-number: QTBUG-43101
Change-Id: I9f224a3838a1f741bc9a9c24f16923ef2018ddf3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-04 18:51:38 +01:00
Friedemann Kleint
8e9d78e43e QMenuBar: fix extra indent on the right with a TopLeftCorner widget.
When setting a left corner widget on a QMenuBar, the first
action rectangle is offset by its width and thus the width
should not be added to the size hint. Use QSize::expandedTo()
instead.

Task-number: QTBUG-36010
Change-Id: I660e3facbd0aeb5fb84fac8923db3e0c7998309d
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-12-04 06:33:03 +01:00
Thiago Macieira
5d8baf9056 Change misleading error message in QDBusReply
"no signature" is misleading and even led me to re-check the code to see
if it meant that the reply failed and no signature could be obtained.
Saying that the signature was obtained but is empty is better.

Change-Id: I1381cf53b334798125d36db0934105d15b63b84f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
2014-12-04 00:41:06 +01:00
Tor Arne Vestbø
b1652b8697 Simplify GL2PaintEngine::updateTextureFilter, it doesn't need target
Change-Id: I8b71c33adb37c166bf4fc6dc8c2e7418d60fbf81
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2014-12-03 22:06:15 +01:00
Jeongmin Kim
165b1c7da1 QHttpThreadDelegate : Fix QHttpThreadDelegate don't read response data about Synchronous error reply.
The App might use response data of Synchronous 401 reply. (example : specific error info of code, string as json)
so, Added a function to read it for Sync.
Async is already OK. Sync path is different from Async path.

Change-Id: I683d4b6b40f600793d2545811dcd6644515de79c
Task-number:QTBUG-43030
Reviewed-by: Jeongmin Kim <jm86.kim@lge.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2014-12-03 13:45:06 +01:00
Andrew Knight
c609a83426 ANGLE: Fix handling of shader source with fixed length
This is a cherry-pick of upstream f60fab6d154f4c9bf599e92976cd8cee7f8633e0
(See https://chromium-review.googlesource.com/231612)

Task-number: QTBUG-42882
Change-Id: I7b4bdc4b68a1b93ff514f09ce35dbf4e9360af9b
Reviewed-by: Marko Kangas <marko.kangas@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-12-03 13:45:00 +01:00
Andy Shaw
2ca57e39e3 Respect the size hint signal for the column and row delegates
The sizeHintChanged() signal from the column and row delegates need to be
connected to the doItemsLayout() slot so that the view is updated when the
size hint changes.

Additionally doDelayedItemsLayout() is called to ensure that this is
up-to-date as the size hints may have changed when the new delegate was
set on the row or column.

Change-Id: I458293f05ce9ef40a03bdbcab1a6e7a10f648c89
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Kevin Puetz <PuetzKevinA@JohnDeere.com>
2014-12-03 13:31:07 +01:00
Eskil Abrahamsen Blomfeldt
ab6d645850 Android: Fix broken system palette
When we overwrite the default palette, we have to make sure
we don't overwrite default values with black for all the
colors that are not retrieved from the json file. We would
for instance get black as both the base color and text
color which would make some components unusable.

Change-Id: I1079a70a0ac7eb379ed5e8d92c6b39c2ea77ba49
Task-number: QTBUG-42812
Task-number: QTBUG-42998
Reviewed-by: BogDan Vatra <bogdan@kde.org>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2014-12-03 12:29:09 +01:00
Sérgio Martins
e7e6d6f95a QFontEngine_FT: Don't check for null after dereferencing.
Must have been a copy paste mistake, the check is used in other places
to make sure we don't unlockFace() without a lockFace(), but here
we're certain lockFace() was called first.

Makes Coverity happy.

Change-Id: I679129727b29a40d780f4fa903f44f7cbc9ec8cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-12-02 18:22:06 +01:00
Jan Arve Saether
35222edfc8 Remove unneeded call to m_editText.bringToFront()
There is no need to call bringToFront() when the item was just made to
be the last child in the two previous lines. (Child views are ordered
in stacking/paint order)

Change-Id: Ie9fbe5de6dce2bbc96cd44a8a6a779504cd0becd
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-02 12:01:41 +01:00
Jan Arve Saether
438b65bada Make sure that created surfaces are stacked on top of previous ones.
The old code would stack the new surface just below the topmost surface.
It also did not consider if the m_editText was added to the layout or
not (thus, m_layout.getChildCount() - m_nativeViews.size() - 1) was only
correct if the editText was added.

Spotted by plain code reading while investigating some accessiblity
issues.

Change-Id: I12c9f373a471c0a7ee624a47232e8952d69c9067
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
2014-12-02 12:01:29 +01:00
Tor Arne Vestbø
afae4ee0b1 iOS: Guard against UIGestureRecognizer messing with self
We pass in self to initWithTarget, so we need to be sure that the
init doesn't return a new self.

Change-Id: I90d0d10d2fd1a5d38ef1ff3f23169dcce00b28e2
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2014-12-02 10:57:15 +01:00
Tor Arne Vestbø
df75cb4c09 iOS: Properly support QInputMethod's visible and animating properties
We now emit and change the 'visible' and 'animating' properties of the
QInputMethod according to the documentation, which means the 'visible'
property will change immediately when the keyboard is about to become
visible, or about to hide, and the 'animating' property will determine
if the visibility-change is just starting out, or has ended.

The keyboard rect will at all times reflect the currently visible area
of the virtual keyboard on screen (in focus-window-coordinates), not
future state after the animating completes. Getting the future state
is a missing piece of the QInputMethod API, and could be solved in
the future by adding arguments to the animatingChanged signal that
allow platform plugins to pass on the before- and after states.

The logic for determining the keyboard state has been moved into
a central function, updateKeyboardState(), which allows us to change
and emit property changes atomically. There is still some parts left
of the old approach, but these are left in to make further changes
to the code easier to diff and understand in isolation.

Change-Id: Ica52718eba503165ba101f1f82c4a425e3621002
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2014-12-02 10:57:01 +01:00
Tor Arne Vestbø
44e9e7fe19 iOS: Simplify view management in QIOSKeyboardListener
We don't need to keep track of the view-controller or add ourselves as
a gesture recognizer inside QIOSKeyboardListener. In fact, leaving the
call to removeGestureRecognizer in [QIOSKeyboardListener dealloc] will
result in QIOSKeyboardListener never being released, as the view that
we add the recognizer to will keep a strong reference to the recognizer,
so dealloc is never called unless the view is also released, which is
unlikely to happen. We now fully control the lifetime of the recognizer.

Change-Id: I6755e8cdfcc8f1062314db51aa54a2b7ecd1b967
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2014-12-02 10:56:54 +01:00
Tor Arne Vestbø
c59c8ddf1f iOS: Refactor QIOSKeyboardListener implementation and usage
QIOSKeyboardListener takes care of both maintaining the virtual keyboard
state, and acting as a gesture recognizer for the hide keyboard gesture.

We make this explicit though a union in QIOSInputContext, so that we can
access each 'mode' separately. This improved code readability and allows
later refactoring of the state and gesture into separate classes without
changing the call sites.

Change-Id: Icc60f4a542983cda7ca0fd6622963d32d1e90db9
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
2014-12-02 10:56:47 +01:00
Sérgio Martins
9d2edfe524 Fix build due to source incompatible change with FreeType 2.5.4
http://git.savannah.gnu.org/cgit/freetype/freetype2.git/commit/?id=b3500af717010137046ec4076d1e1c0641e33727

../gui/text/qfontengine_ft.cpp: In member function ‘QFontEngineFT::Glyph* QFontEngineFT::loadGlyph(QFontEngineFT::QGlyphSet*, uint, QFixed, QFontEngine::GlyphFormat, bool) const’:
../gui/text/qfontengine_ft.cpp:1126:39: error: comparison between signed and unsigned integer expressions [-Werror=sign-compare]
                        for (int x = 0; x < slot->bitmap.width; x++) {

Change-Id: Idb58f9e5895aac8c02163870d7c7d4a49237086b
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-12-02 10:47:15 +01:00
Albert Astals Cid
68cab0b250 QNetworkReply::abort will also call finished()
Change-Id: I86e493178bf523c47eed36015354c0fbbebd56d2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-12-02 09:11:25 +01:00
Friedemann Kleint
03c4b52e13 QLayout: Observe contents margin when positioning the menu bar.
Task-number: QTBUG-38152
Change-Id: I53ea6bce33057251265a7eca1651aeabca314ba9
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-12-02 08:36:59 +01:00
Friedemann Kleint
4958cadeda QMainWindow: Observe left contents margin when positioning status bar.
Task-number: QTBUG-38152
Change-Id: I4c762a113dbfe47472d1087aa34c0e327083ee16
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-12-02 08:36:54 +01:00
Thiago Macieira
2409ed7d48 Fix placement of QT_{BEGIN,END}_NAMESPACE in qfunctions_winrt.h
Those functions weren't getting properly namespaced. Even if we're
testing WinRT namespaced builds, it wouldn't catch this mistake: those
functions would simply all be in the global namespace. I guess we don't
have a "namespace cleanliness" test.

Change-Id: I2d3d09dc66dad476563dbf51c171683be155ebfd
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
2014-12-01 21:37:30 +01:00
Thiago Macieira
2bfc010b83 Un-tighten the WinRT specific code out of qfunctions_winrt.h
Keep the WinRT specific parts for WinRT only. This commit is a partial
reversal of 67c83f329e "Tighten Q_OS_WINRT
ifdefs in qfunctions_winrt.h", which let the WinRT definitions out too
wide.

Strictly speaking, the C++ code that uses
Microsoft::WRL::ComPtr<IAsyncInfo> without the #include is broken. The
forward definition is not enough, but since Visual Studio is also
broken, two wrongs made a right... (MSVC does not implement two-stage
parsing of template code properly). But if you accidentally tried to
compile qfunctions_winrt.h with a non-broken compiler, like GCC (MinGW),
it would correctly complain.

Change-Id: I7591015861d291a82050afe0f4df0cb18b43e23d
Reviewed-by: Andrew Knight <andrew.knight@theqtcompany.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2014-12-01 21:37:24 +01:00
Andrew Knight
2dbcaf5d96 QOpenGLFramebufferObject: pass sized format also with dynamic GL
The GL_RGBA8_OES define is not in scope for dynamic OpenGL builds, so
pass in GL_RGBA8 instead (it is defined as the same value, 0x8058) when
in ES mode. The functionality check already ensures the extension is
available, so the ifdef guards can be removed.

This fixes default multisampled FBO creation under ANGLE when using
-opengl dynamic.

Task-number: QTBUG-40921
Change-Id: Iac4b7e230a463c27b61af75c3307421f9deac856
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-12-01 20:04:11 +01:00
Andrew Knight
2903db0469 winrt: Fix Windows Store Certification
WinRT requires that IDXGIDevice3::Trim() is called on application
suspend in order to pass Store Certification.

Task-number: QTBUG-38481
Change-Id: Ia3cb5d3f6a2db8f11e4bfa4fd5c7791e18d6c36d
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
2014-12-01 20:03:50 +01:00
Eike Ziller
03b5ecce4a FSEvents file system watcher: Do not watch whole parent hierarchies.
Unfortunately the FSEvents implementation for watching parent
hierarchies has the major flaw, that watching a path will then
create watches for the whole parent hierarchy even if that
hierarchy is already watched. Watching /A/B/C and /A/B/D will
create two watches each for /A and /A/B. This leads to an explosion
of open file handles.
Luckily we do not need to watch the parent hierarchy since this
is not a supported usecase of QFileSystemWatcher anyhow, so just don't
do it.

Task-number: QTCREATORBUG-13531
Change-Id: I9ecb5f08e4be35e4fbd58a7ca3155867fcb1589f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-12-01 20:03:42 +01:00
Thiago Macieira
a2da88712f Make QtDBus compile without libdbus-1 headers, if dlopening
Most of QtDBus already needs very little from libdus-1, so create an
extra header containing the minimum API we actually need.

One large advantage of this solution is that now QtDBus can always be
enabled, even if the system doesn't have libdbus-1 installed. This is
interesting on OS X, where libdbus-1 is often installed by Homebrew or
MacPorts, which may include extra libraries we don't want in our
packaging.

Change-Id: I1b397121ec12eeca333ef778cf8e1c7b64d6b223
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-12-01 20:03:33 +01:00
Albert Astals Cid
e4eb9bfbf7 Break after handling the read/write
The loop is there because watchers may have two Watcher for the same
fd, one for read and one for write, but after we're processed the
correct one we don't need to keep looping.

This fixes a crash since it's possible that while in processing
q_dbus_watch_handle we get a watch added/remove this invalidating
the iterator and crashing

Change-Id: Icb61deae272d2f237a4c616fae598404d419af90
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-11-28 09:06:14 +01:00
Frederik Gladhorn
3de7382044 Merge remote-tracking branch 'origin/5.4.0' into 5.4
Conflicts:
	dist/changes-5.4.0

7231e1fbe2 went into 5.4 instead of the
5.4.0 branch, thus the conflict.

Change-Id: I70b8597ab52506490dcaf700427183950d42cbd1
2014-11-27 18:12:10 +01:00
Richard Moe Gustavsen
fa9bde7d3a iOS: override QPlatformWindow::propagateSizeHints()
propagate size hints means that we should forward minimum/maximum
size set on QWindow to the underlying native window to restrict
how the user can resize the window. On iOS this does not make
sense, but nevertheless, if we don't override the function, the
default implementation will issue a warning. This again will
always make creator inform that the application ended with error
upon exit.

Change-Id: I0a8bd74c47fafe2115add5b6eb4e77616fcbc365
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-11-27 11:40:32 +01:00
BogDan Vatra
7c539579b9 Use Holo theme on Android 5.0.
This is a temporary "fix" until we'll fix all the problems with the new
Android Material theme.

Task-number: QTBUG-42900
Change-Id: I5485cfd5ac5fdd66cb85da423fe2e63e65be010f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
2014-11-27 11:22:23 +01:00
Friedemann Kleint
cb679241b1 Implement heightForWidth().
Add a virtual function QWindowPrivate::closestAcceptableGeometry()
which is called from the platform plugin.

Task-number: QTBUG-36220
Task-number: QTBUG-36318
Change-Id: I2b3d205e2c75f1d4dd2ba1d333b0d89bc0fcf13a
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2014-11-27 11:10:31 +01:00
Benjamin Lutz
c6aa76122e Fix size miscalculation in QByteArray::toBase64
The size calculation in QByteArray::toBase64 overcalculates the size
required for the output by up to 3 Bytes. This is fixed, which also
implies that truncate() at the end is needed only if OmitTrailingEquals
is used.

Task-number: QTBUG-32436
Change-Id: I92a893047e7aca027c4aa0a6655bcca514585ff5
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-11-27 10:29:08 +01:00
Allan Sandfeld Jensen
fc3402ca82 Clarify QString::clear()
QString::clear() sets the string to the null QString, not just an empty
one.

Change-Id: Ie6f070f9f2e464105a7b87376e6dad90b5e4d2f2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2014-11-27 10:18:43 +01:00
Allan Sandfeld Jensen
8d2d4255c6 Clarify QGuiApplication::primaryScreen
Clarify that shown here refers to where they are shown initially.

Change-Id: I962fd4b98d80fb1d43e086660fb74eea6b8f532a
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2014-11-27 10:18:34 +01:00
Shawn Rutledge
b36059f611 fix the build with animation omitted
configure -no-feature-STATEMACHINE -no-feature-ANIMATION

Change-Id: Idb89c0bae8d699e76916317f83490c6c94c7d8b4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-11-27 09:36:04 +01:00
Samuel Gaist
cc23ebace8 Fix build of QGestureRecognizer on OS X
ifdef panTouchPoints which is not used on OS X. Otherwise the build
fails when the -Werror,-Wunused-function flags are used.

Change-Id: I4f5498774905fcb2ba1fae40e41587d5821af8b9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2014-11-27 09:18:47 +01:00
Giuseppe D'Angelo
8f201ca4e7 QJsonArray::(const_)iterator: mark the pointer typedefs as internal
Just like the other typedefs; removes the doc warnings.

Change-Id: I61142b8db57f4e0cc44cb8c459b1e82e69da3413
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@theqtcompany.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@theqtcompany.com>
2014-11-27 09:03:02 +01:00
David Faure
2d0b20ef92 QLineEdit: take text margins into account in minimumSizeHint().
sizeHint() did it exactly like this, but minimumSizeHint() didn't,
which made it too small. Didn't affect the actual size in most cases
since the vertical size policy is fixed, so sizeHint() is called instead.
But when writing a subclass, if one re-implements sizeHint() by
calling the QLineEdit's minimumSizeHint(), it would then be wrong,
when text margins are used.

Change-Id: I29ae8dcab00842b3b5ca534cdb250efc0b496f45
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-11-27 04:19:05 +01:00
Shawn Rutledge
b9d98c10bd Deprecate implementations of functions deprecated in headers
If you build with configure -DQT_NO_DEPRECATED this will avoid some
build errors.

Change-Id: If2b2e57b6919091f3f077ebc2aeca0c3fd2421aa
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2014-11-27 04:16:22 +01:00
Friedemann Kleint
b55f88caba Windows: Correctly associate IME contexts.
Associate a 0-context with the window if IME is disabled, store
this state as a flag to QWindowsWindow. Associate default context
again when enabled window gains focus.

Task-number: QTBUG-40691
Change-Id: I78d5494a05f93a39e245ca7c096d45445e684ea8
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2014-11-26 21:14:48 +01:00
Friedemann Kleint
c91c05b056 Add capabilities to QPlatformInputContext.
Add a capability enumeration to QPlatformInputContext and
use that to turn off input methods for hidden text depending
on platform support. Disable on Windows.

Task-number: QTBUG-40691
Change-Id: I9909005de1f21316ec8f64e2729f1fffcd37c7c3
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Björn Breitmeyer <bjoern.breitmeyer@kdab.com>
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2014-11-26 21:14:40 +01:00
Laszlo Agocs
421f78a65f Reorganize devicediscovery header
As pointed out in 13b939c7f4 the approach
qdevicediscovery_p.h takes is just wrong. The defines it relies on will
often be missing when the header is included from random places in qtbase.
This results in different class layouts. It was working only because the
interface of the class is very limited and the public part was matching
regardless of having the macro defined.

This is now corrected by introducing subclasses and a common, non-variated
base class. QDEVICEDISCOVERY_UDEV is removed completely.

Change-Id: I9c83b5b041440a3a6ea3a604eee4a325d4d74439
Reviewed-by: Louai Al-Khanji <louai.al-khanji@theqtcompany.com>
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2014-11-26 16:22:43 +01:00
Richard Moe Gustavsen
a7dcc661d5 iOS: only skip activating the most simple popup types
The current approach of not activating transient windows with the
popup flag set was found to be too restrictive, as it would
e.g stop transient dialogs from being able to contain editable
controls.

This patch will restrict the number of popup types that we
skip activation for to only contain a few subtypes.

Task-number: QTBUG-41613
Change-Id: I381a5a79fb4f7082da18a6b4e06a7255ff400b1a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-11-26 15:57:23 +01:00
Richard Moe Gustavsen
cf8dc020ff Widgets, iOS: don't tell the input panel to hide on focus out
On iOS, autoSIP is handled by the platform plugin. We therefore
avoid letting widgets tell the input panel to hide on focus out
so we can gain better control over this from the plugin.

Note that we could also set QApplicationPrivate::autoSipEnabled
to false and achieve the same. But since autoSIP is logically set
on iOS, it's better to report it as set in case the app asks.

Change-Id: I96c68bc446a1e299fd57afe03a9e273491df08a7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2014-11-26 15:56:30 +01:00
Nico Vertriest
5ed2f422fc Doc: corrected autolink errors corelib/io
Task-number: QTBUG-40362
Change-Id: I1cdbde1f6b003556ba4b5e97a49c6d918518da0d
Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2014-11-26 10:47:46 +01:00