Commit Graph

9923 Commits (02afd94ef4c1913735bd650ca93279cfb00dc534)

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

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

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

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

Task-number: QTBUG-22413

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

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

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

Leave code as is for Windows CE.

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

Task-number: QTBUG-31288

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

Task-number: QTBUG-27266

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

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

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

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

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

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

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

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

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

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

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

Remove fix-up in the Windows plugin.

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

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

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

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

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

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

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

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

Task-number: QTBUG-1016

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

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

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

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

This avoids to having to write the cumbersome

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

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

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

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

Task-number: QTBUG-31217

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

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

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

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

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

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

Task-number: QTBUG-23946

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

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

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

This prevents warnings such as these from appearing:

QOpenGLShader:🔗 "No errors."

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

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

This change restores the braces to preserve the prior behavior.

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

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

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

Task-number: QTBUG-31140

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

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

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-31293

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

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

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

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

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

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

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

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

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

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

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

Breakage introduced by:
4675681b5e88b178adbdef775ac6a4b1e573458 .

Task-number: QTBUG-30922

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

Fixes breakage introduced by
ded4613ae4.

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

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-31016

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-29720

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

Autotest is included. qint64 and double work fine.

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

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

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

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

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

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

This is inconsistent with the other platform plugins.

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

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

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

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

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

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

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

Task-number: QTBUG-31218

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

The workaround is to create static instances on the stack.

Task-number: QTBUG-31142

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

Task-number: QTBUG-27537

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

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

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

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

Task-number: QTBUG-23946

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

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

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

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

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

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

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

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

Task-number: QTBUG-31057

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-4206

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

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

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

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

Task-number: QTBUG-30984

(cherry picked from commit 9e28245da1580e25e77a665b7738c59eb298c422)

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

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

QWinFontEngine: unable to query transformed glyph metrics...

(Desktop OpenGL only).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-30984

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

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

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

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

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

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

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

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

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

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

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

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

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

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

because of the overload.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

class Name1::Name2 {
...
};

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This enables the functionality in the bug report.

Task-number: QTBUG-23566

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This patch:

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

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

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

2) -system-xcb (default)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Task-number: QTBUG-30843

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

   [Missing image icon.png]

warning on QIcon docs.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

moc currently silently ignores it the Q_ENUMS

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

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

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

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

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

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

Task-number: QTBUG-30847

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

Task-number: QTBUG-30752

Change-Id: Ied514b77650cea7accc37a03efef2ce861090f65
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-30 17:21:21 +02:00
Frederik Gladhorn c56372e379 Clarify documentation for QKeyEvent::text
Change-Id: I4b455a512b2e678b6127ea488b456c68eb80cdbc
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-30 15:11:23 +02:00
Tor Arne Vestbø 299154bd65 iOS: Simplify context format setup
Change-Id: I6a6a025410298cecd5f62abd08388a7379359af7
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-30 12:45:30 +02:00
Gabriel de Dietrich 5e652bbcbc Mac style: Fix text offset within 'small' combobox
Change-Id: I2bde1c71e0e79a6d8ef2897acc053357b12dc00c
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-04-30 12:45:30 +02:00
Gabriel de Dietrich 16413d8bd1 Mac style: Update appearance of 'button with menu'
Most of the logic was still following the 10.6 UI guidelines, and had
not yet been upgraded to the 10.7 new button look. We tried to keep
10.6 compatibility were possible, and improve 'small' and 'mini' Aqua
sizes support.

Change-Id: I64139f24cccd095e9349b27a987395210b55c586
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2013-04-30 12:45:30 +02:00
Martin Smith 08be36c176 qdoc: Config class uses current path for each path var
The Config class is further modified to make
use of the current directory information it
stores with each configuration variable.

Task-number: QTBUG-30725
Change-Id: I34c845e6c05d7868266324f1d54e56f94d709f95
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-30 12:45:30 +02:00
Martin Smith a2892ad1d7 qdoc: Config class keeps track of current path
The Config class is modified to build a single
multimap containing a record for each variable
found in each .qdocconf file. Each reacord
contains not only the name and value of the
variable, but also its location in the qdocconf
file it was read from and the path to that file.
This single multimap replaces 3 maps in the
Config class.

Task-number: QTBUG-30725
Change-Id: I049a69790f943b24c014a24b55b2b39725a1b56f
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-30 12:45:30 +02:00
Shawn Rutledge 542e3be40d don't customize dialog buttons if GTK version is too old
gtk_dialog_get_widget_for_response was introduced in GTK 2.20

Task-number: QTBUG-30610
Change-Id: I30510f132c1d81c5d44863b3efddbc5e50771362
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-04-30 12:45:30 +02:00
Shawn Rutledge 124da0f5e6 Fix possible segfault when setting up window's transient parent
tp->handle() can be null.

Task-number: QTBUG-30919
Change-Id: Ie18b70d4cc6916d2e821a71d00d1bf99956b0632
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-04-30 12:45:30 +02:00
Caroline Chao dc5a579a16 QPlainTextEdit: add missing feature zoom on Ctrl+Wheel
When the control is read only. This is documented but not implemented.

Add functions to zoomIn and zoomOut.

Task-number: QTBUG-30845

Change-Id: I692b5f8cc5791498d34d35ea3dafa18b6e5d3e65
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-30 12:45:30 +02:00
Caroline Chao 7375c06328 Doc: Zooming inside QTextEdit
One can zoom in/out text inside a QTextEdit when the widget is
read-only or when using the zoomIn/zoomOut functions.

Zooming inside a HTML document only works if the font-style is not set
to a fixed size inside the document though. Adding this information
to the documentation.

Change-Id: I66a62da53827e1ce3241ba16b91e86926b97c297
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-30 09:40:40 +02:00
Frederik Gladhorn c917579a15 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-30 09:33:19 +02:00
Sze Howe Koh bf9ae9018e Doc: Give C++ class lists consistent titles
The majority format is "<Qt Module> C++ Classes" (see
http://qt-project.org/doc/qt-5.0/qtdoc/modules-cpp.html)

Also, fix a broken link (Qt Network C++ Classes)

"<Qt Module> C++ API" is perhaps the more correct format, but that's
part of a much bigger cleanup: QTBUG-30556

Change-Id: I753365e2bec8d85d9a5f686b4aa35c9eeeaf0871
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-29 19:01:48 +02:00
Kevin Ottens ac06bfdc76 Add QUrl based static methods to QFileDialog
With QUrl variants of the static methods, it is possible to get to use
VFS facilities of the platform if available.

Since we can't predict if the application will use the VFS available in
the platform or its own mechanisms, an extra parameter is provided to
restrict the protocols allowed to the user. This extra parameter
defaults to no restriction, which is the most convenient if the platform
file dialog and the application use a matching VFS. It's likely to be
the most common use.

Change-Id: I4c9effde9d194d226cd8b7a140eb9036187ba87b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-04-29 18:41:55 +02:00
Tor Arne Vestbø 62eb4d7f3d iOS: Don't resize backing store twice in beginPaint()
The first call to resize() was a left-over from before we had retina-support.

Change-Id: I637e8d40f443f81fe7cfc367650bb28b917da2bc
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-04-29 16:56:58 +02:00
Eskil Abrahamsen Blomfeldt d59e9af592 Make sure window is updated on resize event
After 475d1ed4f6a21686828fbd018542b469a8b2dbcd in qtdeclarative,
orientation changes on Android were broken, because the resize
event no longer implicitly causes an expose event. So we need
to post both when doing the resize.

Task-number: QTBUG-30909
Change-Id: I87c8c38e14d96a03b3409ef6439c3ac6ef432005
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-29 14:50:49 +02:00
Holger Hans Peter Freyther 694559a201 uclibc/pcre: Fix the linking of libQtCore for mips/uclibc
The mips/uclibc features.h of the toolchain used by a former key
account of PSO is defining both __USE_XOPEN2K and __USE_BSD this
will lead to POSIX_MADV_* and MADV_* being defined while only the
symbols for madvise are present. Change the order to make it link.

Change-Id: If324b978d72ad2b37b8cd624562e81503c9465d4
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-04-29 14:50:49 +02:00
Frederik Gladhorn 85e3c53e5c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2a54058b64ac69c78b4120fdaf09b96e025a4c6c
2013-04-29 14:17:09 +02:00
Olivier Goffart 529b648ece Fix possible race in QMutex
As described in the QTBUG-30872, there may be a race condition involving
3 threads fighting for a mutex.  I am surprised it was not caught
before despite all the Q_ASSERT and the stress test in tst_qmutex.

We do not need to call store(0) because the unlocking thread will
eventually remove the BigNumber flag. And perhaps it even did it
already, and another thread has incremented waiters (hence the Q_ASSERT
is wrong)

Here is a paste of part of the description from the bug report:

---
many threads, one of them is ready to release mutex, while at least two other trying to acquire it
d->waiters is 0
Thread 1 release mutex in unlockInternal:

   if (d->waiters.fetchAndAddRelease(-QMutexPrivate::BigNumber) == 0)

d->waiters is now -QMutexPrivate::BigNumber
Thread 2 try to acquire mutex in lockInternal:

   old_waiters = d->waiters.load();
   if (old_waiters == -QMutexPrivate::BigNumber) {
   if (d_ptr.testAndSetAcquire(d, dummyLocked())) {

It acquire 'about to release mutex' by changing d to dummyLocked
Thread 1 continue release procedure:

   d->derefWaiters(0);

d->waiters is now back to 0
Thread 3 try to acquire mutex in lockInternal:

    while (!d->waiters.testAndSetRelaxed(old_waiters, old_waiters + 1));

d->waiters is now 1
Thread 2 continue its dummy lock:

    d->waiters.store(0);

d->waiters is force to 0

Thread 3 continue wait procedure
but it realize that mutex was already unlocked so decrease back waiters

   if (d != d_ptr.loadAcquire()) {
   if (old_waiters != QMutexPrivate::BigNumber) {
   d->waiters.deref();

d->waiters became negative value of -1
Neither thread need internal data so it is released back to pool
The waiters counter in released internal structure is still -1
---

Change-Id: I1b22555db764482775db6e64a8c9ffa9e1ab0cf6
Task-number: QTBUG-30872
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-29 11:15:35 +02:00
Gatis Paeglis 7f943968ad Fix QKeySequence matching
QKeySequence failed to find a match in the shortcut table when QKeyEvent
contained Qt::GroupSwitchModifier modifier. It's not a part of the shortcut,
it simply shifts character group in a keyboard mapping table.

Task-number: QTBUG-26302
Change-Id: Id91cd4999777f7085068e9dba5cb22b40653e23d
Reviewed-by: David Faure (KDE) <faure@kde.org>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-29 08:56:09 +02:00
Samuel Rødal a298216bb4 Prevent crash due to giving QWidget::update() a large rect.
We can simply clip the update rect against the widget's rect and return
if it's empty. Otherwise we risk ending up with update rects that are
larger than INT_MAX due to multiple update rects being merged.

Task-number: QTBUG-30876
Change-Id: I23bd0149fbe8d1a007a60b228e6bddb45dc4fc32
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-29 08:09:24 +02:00
Kevin Ottens 2e749c089f List the URL schemes supported by QNetworkAccessManager
Introducing a new method which allows us to know before hand if an URL
scheme will be supported by QNetworkAccessManager. It is especially useful in
combination with QFileDialog URL based methods to pass this list as the
allowed schemes the user can select in the dialog.

Change-Id: If625b045e87959bfd78fea2c9213b69caf506886
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-04-28 13:58:48 +02:00
Kai Koehne 3d42f6fed2 QFlags: Remove text promising 64 bit enums for 5.1
Change-Id: I34173abd693cb124beb8feec5e0cee1f7842725e
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-04-28 10:33:20 +02:00
David Gil d928dbbc91 Add a screen color picker button to QColorDialog
Add a new button with which any color present on the screen can be picked
up. This feature is very useful in any image processing application.

Notice:
--I have setMouseTracking to true because I consider that it makes much
easier to grab the desired color.
--I have set the cursor manually because for some unknown reason the
cursor wouldn't change with grabMouse(Qt::CrossCursor).

Task-number: QTBUG-14332

Change-Id: I39e3543d3ed55276f43d569a2f03087bbf89b27a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-04-28 03:27:49 +02:00
Jan Arve Saether c29cbfa858 Get rid of this hack where QAccessible inherits from QObject.
This was added just so that moc could pick up the enums and so that
we could use the enums in Q_PROPERTY declarations, which was needed for
accessibility in QML. It turns out that Q_GADGET is enough for us.

This is a strictly a binary compatible change.
However, QAccessible was marked internal in 5.0, so we are free to
change it. In addition, this class is static and cannot be instantiated.

Change-Id: I27e2e97c5f4b45c38678264c6b593a4383db8d3e
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-26 23:27:18 +02:00
Paul Olav Tvete 53ac80c50c Android: fix crash on exit
QTouchDevice is already automatically deleted at shutdown.

Task-number: QTBUG-30847
Change-Id: Id6a407083efed849a34ccb1caa315204fc5a5891
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-04-26 21:19:23 +02:00
Richard Moe Gustavsen f46a732a4f iOS: remove setMouse/keyboardGrabEnabled warning
Setting mouseGrabEnabled means that the window should continue
to receive mouse events even when the mouse is not over the
application. This is not an issue on iOS, but the warning is
still annoying.

Change-Id: I0dd7c3828bcb1a51a4eae534aca1da5bfa258f03
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-26 16:21:35 +02:00
Richard Moe Gustavsen 08f0b5dbc4 iOS: stack true popup windows ontop of tool windows
The current implementation would never hit the Qt::Tool case, since
a tool is also a Qt::Popup. This patch fixes that by making the
logic more explicit.

Change-Id: I0e6898081a18289e1007c8a168b374740915b3ff
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-26 16:21:35 +02:00
Richard Moe Gustavsen ff9b3fcf69 iOS: add convenience functions for getting window type
Change-Id: I971df06dd348d1da68578e04076a02e85866e141
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-04-26 16:21:35 +02:00
Jørgen Lind fca94fa5ed Add QXcbWindowEventListener
This makes it possible to listen for events on xcb_window_t which are
not platformwindows inside the xcb plugin

Change-Id: Ic9ec17ed757a7f9a5302ef2759c119a72bac573c
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-26 14:18:16 +02:00
Jørgen Lind 7288625c52 Moving logic from Qt4 for grabbing the X server
Basically you don't want to grab the X server while your debugging.
Also added an environment variable which lets you force to not grab
the X server

Change-Id: Iba03f11c8f486ce71c55fac7716bffcb7cc8cb98
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-26 14:18:16 +02:00
Morten Johan Sørvig f8e2a8469f Don't crash on null QCoocaMenuItem.
Change-Id: Ia70f616983141134afe874b69a5957e31f6f5ed9
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-26 14:18:16 +02:00
Josh Faust c90d9b697f Fix ignoring close events on OSX
QNSWindowDelegate was not handling windowShouldClose, which is how you
can tell Cocoa that your window should not close if the close button is
pressed. This change moves the close handling from windowWillClose to
windowShouldClose, and adds an optional "accepted" pointer to
QWindowSystemInterface::handleCloseEvent so that QNSWindowDelegate can
return a true/false value for whether the window should actually close

Task-number: QTBUG-28965
Change-Id: I67c6296ad42cbeeb71413e05411467d4e558adb4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-26 14:18:16 +02:00
Topi Reinio e12d384d7b Doc: Fix module name in .qdocconf
Use CamelCase for module name(s) used in in .qdocconf - this is
required as qdoc will generate visible output (tags in example
manifest files) based on these names.

Change-Id: Ie246e740203ee0b996fea5dee612bf7f61638991
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-26 14:18:16 +02:00
Topi Reinio e80a8fe861 qdoc: Adjust regexp that generates tags from module names
Use a slightly better regular expression for splitting module names
into tags used for example manifest files.

This will correctly split words with consecutive capital letters
(e.g. QtDBus)

Change-Id: I1320e08a1fbd44f718b82a1fcfea19eabca035fc
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-04-26 14:18:16 +02:00
Albert Astals Cid 67d7651212 Add since 5.2 to the new QColor features
Change-Id: Ia45feca4ffb1cbec8ccab78284b05e89a2061e31
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-26 12:50:28 +02:00
Shawn Rutledge 9f1b64766b Don't use the SubWindow flag for windows embedded in foreign windows
Instead, add QCocoaWindow::setEmbeddedInForeignView which can be called
via QPlatformNativeInterface::NativeResourceForIntegrationFunction

Task-number: QTBUG-30805
Change-Id: I05861e80ca664ddb430216388cf0fec573a4d32b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-26 12:08:24 +02:00
Morten Johan Sørvig 2e69015d74 Increase the loopLevel when activating menu items.
Apply 0293aff5c44202e5c62e229b74d8bd0bf9206185
from Qt 4.

Without this, calls to deleteLater() may create delete
later events with a loopLevel of 1. Those events will
not be processed until QApplication::exec() returns.

Add a QScopedLoopLevelCounter that increases the loopLevel
for the duration of the activated() call.

Task-number: QTBUG-30660

Change-Id: I7ab3bb3a53243691b8f7f64e025150e5cc7da2c8
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-26 12:08:24 +02:00
Albert Astals Cid 9b021a1fbd Make QColor understand #AARRGGBB
This way I can have in my QtQuick something like
Text {
 text: "<font color='#ff0000'>H</font> <font color='#99ff0000'>H</font>"
}
and it works properly

QtQuick already supports #AARRGGBB for color: properties so I've
decided to go the notation

Once this is merged we can remove the extra code
in QQuickColorProvider::QColorFromString

I've also added some tests for the hex -> QColor conversion that where
non existent

Change-Id: I1dd4a2ec113293aec26968329b2e4930df6fdcb7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-26 09:59:04 +02:00
Frederik Gladhorn 08585f02dc Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-04-26 09:45:55 +02:00
Frederik Gladhorn 4ca105b9bb Fix shortcut override for menus
Since we use native Cocoa menus, we cannot rely on the
normal shortcut handling. Shortcuts can be overridden by
the currently focused object in Qt.
In order to make that possible we need to send a
QShortcutOverride event before accepting any key event.

For menus the key event goes from the NSApp directly to
the menu, so the shortcutOverride would not work.

This is mostly an adaptation of the Qt 4 code.

Task-number: QTBUG-30695

Change-Id: Icb4979309d2d6f9606eb9c8abc4130dc79926593
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-26 09:42:34 +02:00
Andy Shaw 89e2319322 Don't do any transitions if the widget is disabled
On Windows 8 it would end up changing the look of the QLineEdit when the
mouse hovered over it even though it was not enabled. None of the
Windows platforms show the lineedit changing when hovered over if it is
disabled so we can skip the whole thing.

Task-number: QTBUG-29224

Change-Id: Ib9495bf395477f114e91b744e1b1209c9e11f336
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-04-25 19:59:16 +02:00
Andy Shaw b06b519759 Respect the hotspot when creating the cursor in Cocoa
The hotspot was not taken from the QCursor so if one was set then it
was reset to 0x0.

Change-Id: Ie81f1c2ac15a16f10436738367e612c44dc42d38
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 19:59:16 +02:00
Friedemann Kleint 3860848674 Windows: Update transient parent in show().
Similar to XCB.

Task-number: QTBUG-30707

Change-Id: I6dd7aa370891a46aa5a2243528692180d8366486
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-04-25 17:56:26 +02:00
Gabriel de Dietrich 220b2b92b6 Cocoa: Improve text heuristic menu item syncing logic
Don't try anything after the original syncing, particularly after
changing the menu item's text. Also, don't try anything if the menu
item cannot be linked up to a menubar (see QTBUG-30756). This latter
point requires extra syncing after adding a menu in the menubar.

Finally, to be able to find the menubar, we need to clean the code for
moc's eyes.

Task-number: QTBUG-30756
Task-number: QTBUG-30812
Change-Id: I88fad663f1c35d03a0cb167d1723d16f590918c0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 17:56:26 +02:00
Gabriel de Dietrich 370e89f064 Cocoa: Reflect menu hierarchy in QCocoaMenu* objects
QCocoaMenu is child of either a QCocoaMenuBar, a QCocoaMenuItem as a
submenu, or nothing as a standalone menu. QCocoaMenuItem is child of
its containing QCocoaMenu.

The parent is set during insertion and cleared during removal.

QMenu needs to be updated to avoid double deletion and leaking its
own platform menu.

Change-Id: Iadf60d8062d7466fa616f84f3761fe322fc9aa2e
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 17:56:26 +02:00
Gabriel de Dietrich 7a1cdac052 Cocoa: Remove dead code in QCocoaMenu*
Change-Id: I56136594f073295ced645d06f657187a54e84384
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-25 17:56:26 +02:00
Oswald Buddenhagen da55d48ad7 fix namespaced build
Change-Id: I9d0a3cb08de5e91807da7f0358c83b6693ebd1ea
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-04-25 17:56:26 +02:00
Oswald Buddenhagen 0dea24054f fix QProcessEnvironment documentation re case conversion
Change-Id: I854382d1d431ee084ef0faa2e240e093b9183ec8
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-25 17:56:26 +02:00
Friedemann Kleint 42760e43ea Windows native save file dialog: Do not append suffix afterwards.
Instead, set the currently selected filter's suffix as
default suffix of the dialog unless another default suffix
has been set.

This emulates the behavior of Qt 4 behavior which would set
the selected name filter's suffix as default suffix in
QFileDialog::getSaveFileName().

Task-number: QTBUG-30748
Change-Id: I111cd6190ddab8775a0fa72b94b3c728dd411c5e
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-04-25 17:56:26 +02:00
Jan Arve Saether b9db3e4785 Do not include the treeview header if its hidden
Previously, accessibleTree->child(0) would return an interface for the
header even if it was hidden.

Also, the assertion was wrong since the index would be 0 if both row
and column were 0. The assertion was actually found while using the
project explorer of Qt Creator (2.7)

Change-Id: I9f3cc2c13b6887569d10c4e062a64552f898231a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-25 17:56:26 +02:00
Gunnar Sletta 2e0575ce89 Fix windows expose logic
Make sure the value of QWindowsWindow::isExposed is in sync
with regions we expose.

This provoked a couple of existing issues in the qwidget test.

setWindowGeometry tested that windows with invalid sizes got
exposed on screen. They didn't, but because the plugin sent
bogus events, these used to pass. Same with windowMoveResize.

The expect fails are also rather bogus. Showing invalid-size
widgets could be considered undefined behavior. The Window
manager could resize it, choose to not show it at all, etc,
but they now pass on windows.

resizeEvent has been broken since 5.0.0, but the test didn't
spin the event loop so the second event didn't get delivered
before the test completed.

Task-number: QTBUG-30744
Change-Id: I3a9efcd095f366126a87739f4248185b6c81d407
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-25 15:41:54 +02:00
David Faure 55145c5267 Improve desktop environment detection.
UNKNOWN now means generic unix theme, rather than Gtk: there
are other KDE/Qt-based desktops, and there's also the case of
no desktop at all (e.g. bare Xvfb, as used by automated builds).

To make this correct for GTK-based desktops, this commits improves
the detection of the current desktop environment.

Change-Id: Ib696624de39d5024527880df7adc26c65b838d15
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-04-24 19:45:26 +02:00
hluk b43609404c Fix segfault while handling system-wide shortcuts with xcb
Change-Id: I8485031edc623f99b4b858d4f777be43f4bc3264
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-24 18:30:33 +02:00
hluk 9e035d9de2 Use Qt::Key_unknown for unknown keys instead of -1 with xcb
Task-number: QTBUG-3515
Change-Id: I9875437744455a2cce2da075c1fa6e2a91f55b63
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-24 17:15:49 +02:00
Jan Kundrát 78fc0d4872 Respond to the _NET_WM_CONTEXT_HELP WM_PROTOCOLS message
This change restores a proper function of the "(?)" button in the window
decorations which is used as a clue for the user to check what a particular
widget is supposed to do. The change is only implemented for QtWidgets because
the underlying QWhatsThis is inherently widget-specific -- which is why it sends
an event to QGuiApplication, but only processes it in the QtWidget-specific
QApplication.

Thanks to Alberto Mardegan and Gunnar Sletta for their feedback on this patch.

Change-Id: Ibb912e3960f1e9aec54c5ed77ade1c6744d6ca23
Reviewed-by: Alberto Mardegan <mardy@users.sourceforge.net>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-24 16:24:40 +02:00
Stephen Kelly 106dc410e9 Use variadic templates to mark function pointers as non-QObjects.
Change-Id: I4d4e7a0498ff8f5b834dae4008d1311838180036
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-04-24 14:19:26 +02:00
Konstantin Ritt affdd9d00c Improvements for DirectWrite font engine
- don't check if m_directWriteFontFace is not null, it MUST be initialized
  just in the constructor;
- fix support for surrogate pairs in stringToCMap();
- reorder some affected code for better readability.

Change-Id: Ibdcf7b50f06910e95cefe074f33932b8fbcdcfe1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-04-24 14:12:41 +02:00
Tor Arne Vestbø 4afb128d31 iOS: Don't try to set screen orientation before QApplication startup
We create our QIOSViewController in didFinishLaunchingWithOptions,
and schedule a timer to run the user's main. If the device is
placed in landscape orientation at startup, we will receive a
willRotateToInterfaceOrientation message before the timer is
triggered to run the user's main, which means we do not yet
have a QApplication.

To fix this crash we exit early, but we might have to store the
new orientation for later, and make sure the initial QScreen is
then created with the correct orientation.

Change-Id: I0cc02f0d36b992d190736e98858dc7d002d595b7
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-24 13:36:53 +02:00
Friedemann Kleint ded4613ae4 Windows: Position full screen windows on the correct screen.
Find effective screen by searching the virtual sibling that
contains the center as does QDesktopWidget::screenNumber().

Task-number: QTBUG-30724
Change-Id: I8441ab4f3e5ee8169613a82f150d1a4f1777b662
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-24 11:10:02 +02:00
Peter Hartmann b4985215df QNX host lookup: do not try to load libresolv.so, it is not there
Not trying to load the lib saves 30 - 50ms upon an apps' 1st host
lookup.

Task-number: QTBUG-30809
Change-Id: Id893cec09ff57494776625700c93f7efe96fcc6b
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-04-24 09:01:14 +02:00
Samuel Rødal 2cea97bc61 Fixed documentation of QWidget::mouseDoubleClickEvent.
Since change 3bb9024952 the documentation is invalid.

Task-number: QTBUG-29680
Change-Id: I7d5fcb6bc490aa5cba83439d33f798459640c42d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-04-24 09:01:14 +02:00
Samuel Rødal 9d7fe3eb3d Fixed crashes relating to SVG icons.
Creating a second QFactoryLoader for the same plugins seems to trigger
an unload of the plugins loaded by the first factory loader. The
QIconEngine created by the SVG icon plugin thus gets an invalid virtual
table pointer, which causes a crash when attempting to call any virtual
function in the QIconEngine (pixmap(), the virtual destructor, etc).

Reusing a single QFactoryLoader instead fixes the crash.

Task-number: QTBUG-30496
Change-Id: I80c5fa8b52ab9b0db68499f8c37fad14a1ac4f3c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-24 06:49:44 +02:00
Mark Brand af35ee291a qsql_odbc: fix SQLGetStmtAtt usage
Failure to initialize the variable can cause spurious non-zero
values.

http://msdn.microsoft.com/en-us/library/windows/desktop/ms715438(v=vs.85).aspx

"..value can either be a SQLULEN value or a null-terminated character
string. If the value is a SQLULEN value, some drivers may only write the
lower 32-bit or 16-bit of a buffer and leave the higher-order
bit unchanged. Therefore, applications should use a buffer of SQLULEN
and initialize the value to 0 before calling this function. Also, the
BufferLength and StringLengthPtr arguments are not used."

Follow-up to 1509316a37

Change-Id: I2e92eb845a2590bea0849c52bde8902adff1b419
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-04-24 01:30:20 +02:00
Stephen Kelly 4341ae32f4 Enable OpenGL library detection for mac.
Change-Id: If99d3faf2b08ac5109d619ff69efdaa3857c007f
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-24 01:30:20 +02:00
Peter Hartmann e145b67fbd SSL internals: do not write after shutting down the socket
... but rather throw an error, so the HTTP layer can recover from a SSL
shutdown gracefully. In case the other side sent us a shutdown, we should
not send one as well, as it results in an error.

Change-Id: Ie7a56cf3008b6ead912aade18dbec67846e2a87e
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-04-23 23:22:43 +02:00
Thomas McGuire e0cf3fcd8f Fix retrieving of the generic system proxy via environment variables
ignoreProxyFor() always returned true if the no_proxy was not set,
which resulted in the first token being an empty QByteArray, causing
the endsWith() check to always evaluate to true.

Add a unit test that is enabled for those platforms that use the generic
system proxy.

Change-Id: I6081ad5e0b8e2c3fee1568835907c32bde5b7772
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
2013-04-23 21:02:50 +02:00
David Faure 1ea1abeb91 Implement startup notification spec again.
This functionality was in Qt4's qapplication_x11.cpp and was missing
from the XCB QPA plugin. Ported the code from xlib to xcb.

This code was actually tested (with plasma), unlike the Qt-4.8 code which
skipped every other character...
    for (uint i = 0; i < 20 && i + sent <= length; i++)
        xevent.xclient.data.b[i] = message[i + sent++];

Provide a QPA native-function for accessing the startup id, for cases where
an application doesn't show a window, but starts another app instead, or asks
a running app to show the window on its behalf.

Change-Id: If392179efddd70a51c45a8fab4fb9d753913094a
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-04-23 21:02:50 +02:00
David Faure 71a1ff39bc qxcb: output clear error message when running on an 8-bit display
Currently, running a Qt5 widget app in Xvfb (with its default setup, 8 bit color depth)
outputs a stream of error messages, starting with:
QWidget::paintEngine: QWidget::paintEngine: Should no longer be called

Better output clearly the reason why we end up in that method: painting
on a null image, due to the unsupported image format.

Maybe this should even be a qFatal...

Change-Id: Iae8f1b057518c146bf8e034999c1b5e67ce6ef5e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
2013-04-23 21:02:50 +02:00
Konstantin Ritt 3821047e6c Fix memory access violation
The pointer returned by unicode() was deleted right afterwards.

Change-Id: I7cef72386d02c7be42e71134f616926506d37ea6
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-04-23 21:02:50 +02:00
hjk 01cbd7e4b5 Remove QLocalePrivate::m_localeID
It was only used for toUpper/toLower but always computed in the
constructor, including QString::toLatin1 conversion and allocations.

This needlessly slows down all other uses, including supposedly "cheap"
operations QString::toDouble, or accesses inside QResourceFileEngine.

The benchmarks indicates that doing it always when needed is bearable.
There's still a lot of improvement potential on these code paths.

Change-Id: I88b637ee11f9f7ea614f8da4ec5df0bf40664fce
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-04-23 18:57:45 +02:00
hjk 649da796f5 QDataStream: Be a bit more verbose about operator>>(char *&)
This also fixes a few "sloppy" mentionings of "new" into "new []".

Task-number: QTBUG-30777
Change-Id: I3f4add07777b59cd09cac97b672c73273b3b97eb
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-04-23 18:57:45 +02:00
hjk 32629676b9 Use a QVector<QDateTime> instead of an array in QFileInfoPrivate
Since QDateTime is pimpled, default allocation is expensive and
regularly shows up in profiles of code using QFileInfo.

For Qt 6, QDateTime's data members should be put into the class
proper, and this change here reverted.

Change-Id: I94a50e467b12772e1076181eb2ac6031984d8802
Reviewed-by: Thorbjørn Lindeijer <bjorn@lindeijer.nl>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-23 18:57:45 +02:00
Gabriel de Dietrich 38bf6da7dd Cocoa: Fix disabled minimize button on main windows
Task-number: QTBUG-30775

Change-Id: Idec64f2cc6181e6889498171ead676d33c66e537
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-04-23 18:57:45 +02:00
Morten Johan Sørvig 56cc59110a Don't crash on a null window pointer.
Task-number: QTBUG-30731

Change-Id: Id256b915012b43d1eb85bba62cbc1d42cfb58b34
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-23 18:57:45 +02:00
Gabriel de Dietrich f2fa65e4bf Cocoa: Add setAlertState(), isAlertState(), beep() functions
Also, fix operator precedence error in QApplication::alert().

Change-Id: I140ccfba29638d24bc1c97f5f9a9611f66eb6b8f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-04-23 18:57:45 +02:00
Samuel Rødal 1f6ab6a661 Fixed QGLWidget not being able to be made current with a context.
If the QGLWidget's creation is triggered by a sibling or similar being
created it would end up without the surface type OpenGLSurface. We need
to make sure the QWindow has the correct surface type to prevent
QOpenGLContext::makeCurrent() from failing.

Task-number: QTBUG-30811
Change-Id: Ifc85f9120d89bd0bed4a3911233799830cb3a0f3
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-04-23 18:57:45 +02:00
Jan Arve Saether 146658a10f Fixed QLayout::addChildLayout(QLayout *l) when l had a parent
Previously if l had a parent, addChildLayout would warn and skip the
reparenting, but it would still add the sub layout to the layout.
This caused some inconsistencies in the hierarchy which in worst case
could cause crashes.

Task-number: QTBUG-30758
Change-Id: I618ec3341636b97bd71e421201b22c746dcf43e1
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-04-23 18:57:45 +02:00
Friedemann Kleint ad3b61554b Move Mac translations to .cpp file for lupdate to pick them up.
Task-number: QTBUG-30125

Change-Id: I4e56fd3021b4ef5f344d4d36ae594dd88e2aa1bd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-23 18:57:45 +02:00
Stephen Kelly ecc11ccd65 Set the sysroot if cross compiling the cmake tests.
Change-Id: Iae268f30b86a67fcf978983ca9b12f850948dd24
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-23 18:57:45 +02:00
Thiago Macieira 06b6784c28 Fix header check: you must #include qconfig.h before QT_NO_OPENGL
Change-Id: I50518bd1b721d19e4712a6c11afb0a93afeaa7ea
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-04-23 16:38:09 +02:00
Frederik Gladhorn 9c47a273ff Accessibility: Ignore negative child indices in main window
Change-Id: I6b3d0b066bf20a09b43d6d80255fb8d428d38df1
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-23 14:10:05 +02:00
Stephen Kelly 93aa83e074 Fix typo in docs
Change-Id: I3ee3e3d061fc87c0c2ea05197b37a952c8d63dd2
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-04-23 14:07:50 +02:00
Stephen Kelly 38fea4d642 Fix build with QT_NO_CLIPBOARD
Change-Id: I138a29e1099e691770b9e3e094a108fc8c52f8cb
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-04-23 14:07:37 +02:00
J-P Nurmi a7dc708eb5 Fix QAbstractItemModel::moveColumn()
Task-number: QTBUG-30346
Change-Id: I3d6dbe1e88bb5e2748eadabb2663f30be16f8d18
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
2013-04-23 13:35:31 +02:00
Gabriel de Dietrich e324f5bc0e Fix crash when deleting a QMenu on exit
If the application object is an ancestor of QMenu, dereferencing qApp
in its destructor will cause a crash.

Task-number: QTBUG-30756
Change-Id: I31a33db0fd783bb210a420618911ea8b412e9a0f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-23 13:12:33 +02:00
Frederik Gladhorn a7ce34dba4 Accessibility: Menu item should keep track of owner being valid
The QAction may stay around while the parent/owner gets deleted.
This is for example the case for some dynamically created menus.

This is required for fixing QTBUG-30792

Change-Id: I7b6122edec6def69aed77502403134e1568e21c9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-23 13:11:22 +02:00
Liang Qi 8d60a10462 QWindow: expose active as property
And add activeChanged signal for it.

Change-Id: I9ebe9263e99863267c3a81b9286eaa5b29222085
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-23 12:45:32 +02:00
Liang Qi 941f7a5283 Make requestActivate() as a slot in QWindow
Then it could be used in QML world.

Task-number: QTBUG-28667
Change-Id: Ib65ad3b271a07ba50d3ca50d61f486f829f69119
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-04-23 12:45:30 +02:00
Kai Koehne a6e903299b Fix def files for Mingw (32 bit)
Add missing symbols.

Change-Id: I73579f13b0cbc8b4b405a50b3745785e088cf82d
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-23 12:45:22 +02:00
Kai Koehne 43e1c61a19 Add missing intrin.h include for __cpuid
This is already fixed upstream in

https://codereview.appspot.com/8615046/patch/1/2

Change-Id: I4b9e865f6b5622c484418a8381334381bc256887
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-23 12:45:16 +02:00
Libor Tomsik 2fbfad8b0d Added grabbing option for qevdevkeyboard and mouse.
Added option grab=1/0 which allows user to choose using environment variable
if the application will exclusively grab the input device or let
the OS read it in paralel(default).

Task-number: QTBUG-30004

Change-Id: If3caa8419584be46f320931ddb152a41893d8693
Reviewed-by: Samuel Rødal <samuel.rodal@digia.com>
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-04-23 12:39:14 +02:00
Gabriel de Dietrich 3b992f8319 Enforce focus policy in item delegate's editor
Focus policy can be wider in this case given the limited scope of the
editor widget. This helps workaround platform specific focus policies,
like on Mac, were focus can be restricted depending on the widget type.

Task-number: QTBUG-30715
Change-Id: I69acf8ebff4ba16d473964c91680a1cb0235e3cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-23 12:32:47 +02:00
Mitch Curtis 7dd81686e8 Fix QKeySequence::toString() returning gibberish for Qt::KeypadModifier
This is the patch from the bug report with a few alterations to get it
to compile, and also with the GroupSwitchModifier code removed, as this patch
just focuses on Qt::KeypadModifier. The problem was determined to be in
QKeySequencePrivate::encodeString, which doesn't handle the
Qt::KeypadModifier flag.

Task-number: QTBUG-4022

Change-Id: Ic981eb8b5cd88c7b36892d3019b8175db4b7b6f2
Reviewed-by: David Faure (KDE) <faure@kde.org>
2013-04-23 12:26:13 +02:00
Morten Johan Sørvig 3f58fc00c9 Guard usage of m_cocoaPlatformWindow.
m_cocoaPlatformWindow is cleared when Qt is "done"
with the QNSWindow or QNSPanel to prevent messages
from Cocoa calling into possibly stale pointers.

Change-Id: Id42b794fedbd3e597a0c4b50584cca976ba74c0f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-04-23 07:45:03 +02:00
Morten Johan Sørvig f9ecaa8825 Return GroupRole for unknown accessibility roles.
UnknownRole draws attention from the screen reader
and makes it focus on the unknown item. GroupRole
is ignored and passes focus to child items.

Change-Id: If7b4cd9ec02b1890929a709b84d897f452c39587
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-04-23 07:44:20 +02:00
Morten Johan Sørvig d576d77f03 Don't set WA_AcceptTouchEvents on Mac OS X.
Setting this flag causes scroll event lag, so we want
to keep it off for all widgets that do not need touch
events. QPanGestureRecognizer is installed on all
QAbstractScrollAreas. Prevent it from setting the
flag.

Change-Id: Idd4fcc545ff26377607b56f75db75c2865a5fc82
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-04-23 07:44:02 +02:00
Kevin Ottens aa5f70c00a Make sure QIconLoader is always initialized
It is necessary to properly initialize the icon loader in all case.
Otherwise some calls might give wrong results if a platform theme plugin
is involved.
For instance, we might miss the actual theme name reported by the
platform theme, eg it's what happen with QStyle::standardPixmap if no
one created a QIcon before its first call.

Also clean up the accesses to the global static and have only
QIconLoader::instance() use it. All other call go through the static
method. This way only instance() needs to call ensureInitialized(),
definitely safer and looks cleaner to me.

Change-Id: Id3ea6816edd5a65586004f69464960abc3602cf8
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-04-22 20:19:28 +02:00
Thiago Macieira ccb7db2ee3 Document that the mutex passed to QWaitCondition::wait must be locked
Simply say that the behaviour is undefined if you don't do what you must
do. I don't want to introduce a check: it can't be done reliably anyway.

Task-number: QTBUG-30806
Change-Id: Iba1bbbdfe62ffcb133f9c52215efdcc0ee7bd9bd
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-04-22 18:35:52 +02:00
Frederik Gladhorn e5e54a9ceb Accessibility Windows: always check for negative child ids
Some screen readers will pass in child id's that are negative
as response to notifications.
We should always check for negative id's on incoming calls.

Task-number: QTBUG-30792
Change-Id: Idaba3d1931d35ed068cfd9f20e70aa26da427616
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-22 18:35:52 +02:00
Stephen Kelly bc4fbcd215 Add IMPORTED targets for the GL libraries used by Qt.
There may be multiple libraries specified in the mkspec, such as
EGL and Mali, as used in devices/linux-sh4-stmicro-ST7108-g++, so
create an imported target for each one. Also populate the
Qt5Gui_EGL_LIBS variable with all created imported targets. Similar
variables are created for the used OPENGL implementation.

In the case of using the packaged ANGLE library, we already know the
exact locations of the binaries.

This makes it possible for third parties to use the same GL
implementation as used by the Qt build itself. As these are used only
privately by QtGui, they are also added to the DEPENDENT_LIBRARIES
of that target so that they are found for rpath-link usage.

On some platforms (eg Raspberry Pi), multiple include directories must
be set to include egl.h, as the headers it includes for vcos are a
bit scattered.

Task-number: QTBUG-29132

Change-Id: I1126da3d37cd51c88d3670347c8b6405b285efb5
Reviewed-by: Volker Krause <volker.krause@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-04-22 18:35:52 +02:00
Frederik Gladhorn d257e69a79 Accessibility Mac: Implement accessibilityFocusedUIElement
Change-Id: I17b5b1f741a8b340d8f4b16f4ec39cc9a8159bfa
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-04-22 18:35:52 +02:00