Commit Graph

15977 Commits

Author SHA1 Message Date
Shawn Rutledge
b4bb709733 Remove QMacStyle titlebar height + 4 adjustment and consequences
This was a tweak to fix a bug in 2005 which has probably outlived its
usefulness, plus an accumulation of workarounds on top.  (started as
48b5266e8ff9b472a16290dd923fe24dd0b6989b in the historical repo)

Task-number: QTBUG-34760
Change-Id: I2c01269e43636385ee5c89305c6b90f4a7f2c537
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-21 11:22:38 +01:00
Robin Burchell
52ba7b1ffc Cleanup freetype data in a thread-safe way
One less obvious part of this patch: the fontCache pointer in engineData was not
safe. It isn't safe to rely on pointer addresses to verify we're cleaning up the
right thing, as a sequence of malloc()/free()/malloc() can return the same
pointer, and nothing was cleaning up the dangling pointer in engineData.

With this, it is possible to safely drop OpenGL contexts in QtQuick under all
conditions with no possibility of crashes.

Done-with: Aaron Kennedy <aaron.kennedy@jollamobile.com>
Change-Id: I7b91384251593730124323a74737d41333a05f59
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-20 19:25:56 +01:00
Robin Burchell
e70ecc06b1 Clear QCoreApplication::applicationFilePath cache if argv[0] changes.
This allows boosters to precreate Q*Application instances.

Change-Id: Ie2c1399b216d9cc996210e077fa6d42d24bf9b0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-20 19:25:47 +01:00
Frederik Gladhorn
982da20cf2 Remove empty QAccessible2 header
Change-Id: Ia5e9b1adf9280e6b7d7aaf8cb5b5167b694a6070
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-11-20 15:11:24 +01:00
Frederik Gladhorn
c83c08d84f Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-11-20 12:18:23 +01:00
El Mehdi Fekari
1e446fc991 QLocale: Avoid a deadlock in error case
QBBSystemLocaleData emits qwarnings when it fails to open or read a pps object.
If the user code installs a message handler that will invoke QLocale API again
(i.e QDate, QDateTime, ...) which leads to a deadlock situation, since
the QBBSystemLocaleData global static object's ctor() is not yet done.

This patch logs the QBBSystemLocale's warnings to stderr and
skips the Qt message handler.

Change-Id: I3d51f85761253e09b14a44179dd14a887733b392
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-11-20 10:33:04 +01:00
Arvid Nilsson
711d0a1658 Add QQnxNativeInterface::nativeResourceForContext
This mechanism is used by QtWebEngine to extract the platform GL
context. In the QNX case, the platform context is an EGL context, so
the resource you need to ask for is the "eglcontext". Compare to the
xcb native interface which has a similar implementation already.

Change-Id: I873eaadf96898abb24de347ac624c88cd54254cb
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2013-11-20 10:33:04 +01:00
Andy Shaw
f3a4bc17ab Keep the dockwidget with the mouse when moving to another screen
When you move a dockwidget from one screen to another then it needs to
be kept at the same position on the new screen, i.e. with the mouse
pointer. This fix ensures that this is happening including when the
screens may not 100% align up with each other.

Task-number: QTBUG-33369

Change-Id: If414effdd0e0415629ca31a86f8bbe382dd29f80
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-20 10:33:04 +01:00
David Faure
e1c0a1b56c QProgressDialog: add unittest for the auto-show feature
Change-Id: I244d0b740467a09e8833f4debb95b19e45df371f
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-11-20 09:03:09 +01:00
Andy Shaw
cefa54d478 When we get a WindowBlocked event then reset the qt_button_down value
Whenever a window gets blocked, then the qt_button_down variable should
be reset as it is not going to receive the release event for the mouse.
This fixes problems with the mouse cursor not being updated when moving
over widgets (such as QLineEdit) after a dialog is shown in response to
a press event.

Change-Id: Idfd072eaf36f51b816a0b2a0391cdc447d7a5d9d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-20 08:44:46 +01:00
Sergio Ahumada
97abe053e2 Bump Qt version to 5.2.1
Change-Id: I6ee560e48625307e1ea24854fe58fdc190650a4f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-20 00:38:49 +01:00
Sérgio Martins
9943ac440e Doc: Q_REVISION/Q_INVOKABLE are added to declaration not definition.
Change-Id: Ia06d33df1b5d38783e22b0c45956a5154338ed33
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-11-19 22:56:55 +01:00
Friedemann Kleint
1b9be3f481 Testlib.selftest: Improve process execution, run on openSUSE.
Give processes a more complete environment (openSUSE
requires more variables to start an X11-process),
add test column indicating whether a test is
supposed to crash. If it is not, report crash reason.

Change-Id: I1e0ad59824963f69ee425f331d845741be2b3928
Reviewed-by: Tony Sarajärvi <tony.sarajarvi@digia.com>
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-11-19 22:47:43 +01:00
Gunnar Sletta
1f22d924e8 Clear focus from active widget when windowcontainer gets focus.
Task-number: QTBUG-31853
Change-Id: If0d29ee0a125464b32be99332502473b7c626bb0
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-11-19 20:32:41 +01:00
Alberto Mardegan
911cfc4e90 XCB: do not assume that sizeof(long)==4
The code was using the "long" type when a 32 bit type was actually
needed. This can cause bugs in those systems where "long" is 64 bits
wide, such as Linux x86-64 (which is LP64).

Task-number: QTBUG-34861
Change-Id: Iab289b2af3847dd62d8b4ecea51896936ca4c7a2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-11-19 14:31:08 +01:00
Peter Hartmann
09644cb12f mkspecs: add qfeatures.pri to installed files
... so it will be found when included. That file was added with
commit 3b6b615334,
"export QT_NO_<foo> equivalents to the build system"

Change-Id: I38208aafe5b274d5976cec5d5149a41e6a963798
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-19 14:26:23 +01:00
Jorgen Lind
20272ad6e5 Fix configure script to not dictate OpenGL ES 2 when EGL is enabled
Change-Id: I4d940ef436f21fd915f3d03558fd4fb4c7b3e5b7
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-19 10:14:39 +01:00
Jorgen Lind
f087ffdc53 Remove the GLES 2 dependency for eglfs and kms
Change-Id: If7b80487e01db726367f5a67d2860073f60a0844
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-19 10:14:30 +01:00
Christoph Schleifenbaum
7e768dde39 Widgets: Never revoke focus by click on focused widget.
When clicking on a widget currently focused, w/o having Qt::ClickFocus
set as focus policy, the focus should stay on the widget and not get
propagated to the widget's parent.

Task-number: QTBUG-34042

Change-Id: I53f1153829cc7228de02a90e38125b5cf4ee5008
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
2013-11-18 20:38:41 +01:00
Frederik Gladhorn
72ea790085 Merge remote-tracking branch 'origin/release' into stable
Change-Id: Ie6d44caf1d630cb029178a1af40c637f24a25ee7
2013-11-18 12:27:04 +01:00
Sérgio Martins
cd93a2c0e1 Windows: Fix bug where windows stopped painting after a restore.
This is an improvement over 6800728d where we only fixed it if
the window was in "normal" state (Qt::WindowNoState) before
minimizing.

With this patch, if the window was previously maximized or
full-screen it will also get the expose events when being
restored.

Change-Id: I4a30423145e0999c5d0a5ee2a989730b83f4e3f2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2013-11-18 10:14:30 +01:00
Thorbjørn Martsum
aafbd7392e QHeaderView - do not ignore -1 as minimum section size
We claim that -1 is a special automatic value, but calling
setMinimumSectionSize with -1 is unfortunately ignored due a
regression in 524c3e05e8

Change-Id: I7d7e5dbbf78e561849d2f2352c9edb2df36aa181
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-11-17 20:49:00 +01:00
Marc Mutz
eb122a6fe4 tst_QAlgorithms: fix compilation with C++11 enabled
GCC refuses to use a merely static const uint array in a constexpr function.

Fix by making the array constexpr if supported by the compiler.

Change-Id: Idd59d3f74f8f4e98aad82bc892f4a6469932df9f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-17 09:48:17 +01:00
Marc Mutz
e721cf1508 QCollatorSortKey: inline operator<
This code was duplicated in every qcollator_platform.cpp and identical everywhere,
except in _icu, which uses a QByteArray m_key and the implementation used
QByteArray::operator<, which is semantically and probably code-wise identical to
what the other implementations did (after inlining).

Inlining this function removes a potential maintenance problem and increases
speed without violating encapsulation.

Change-Id: If3e9d38a7d4326b49f0611a9f4187c53960e8a03
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-11-17 09:47:34 +01:00
Marc Mutz
70bc2e882f QCollator(SortKey): declare as shared
This enables specialisations of (std and q) swap using member-swap
and declares the types movable for efficient use in Qt containers,
and QList in particular.

This is a binary-incompatible change, so cannot wait for 5.2.1.

Change-Id: I7e90b6397ac4d00d0a7a5c42bae166c1b43e1994
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-17 09:47:21 +01:00
Marc Mutz
3e803b5180 QCollator: enable move semantics
This necessitates adding d==0 checks in QCollator. By documenting that
moved-from instances can only be assigned to or destroyed, we can
limit the functions in which to check for d==0 to the assignment
operator and the destructor.

Doing otherwise would destroy all advantages of move semantics by
introducing a heap allocation to re-populate other.d.

Add a test for this (QCollator didn't have any before).

Change-Id: Ic6ff202072822bebfd5e48259c3d0fa345a63118
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-17 09:47:07 +01:00
David Faure
2026e50259 QCommandLineParser: add word-wrapping algorithm
Rather than breaking at column 79 precisely, break entire words,
to improve readability.

Change-Id: Ie30db00f0e6ed95cce87480c3b91804826c6076b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-11-17 00:45:03 +01:00
Martin Pley
6c04c21c10 Crash fix in QTreeView::sizeHintForColumn().
Vertical scrollbar may get out of sync. When this happens, the calculation of
firstVisibleItem will retrun "-1". This must be handled in ::sizeHintForColumn().
Added an auto-test for the crashes.

Task-number: QTBUG-34717

Change-Id: I867fd144ef3ce45e382337c5eafe345f573cd944
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
2013-11-16 16:40:46 +01:00
Marc Mutz
8cbea7a886 QFileSelector: mark ctor explicit
This is standard for (QObject*) ctors.

Change-Id: I4756ba50b1f3148d72e95e581d52a37ebd47a7ae
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: Alan Alpert <aalpert@blackberry.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-11-16 16:39:38 +01:00
Andy Shaw
be405c86f8 Fix the window flags for Cocoa windows
This ensures that the possible window flag combinations are respected
where possible in Cocoa.

Task-number: QTBUG-34645
Task-number: QTBUG-31616
Change-Id: I6be8ca666b7cbc397575e97cd95ea298f52a7113
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-16 16:39:23 +01:00
Friedemann Kleint
afe8e36872 Stabilize tst_qabstractitemview.
Center windows on screen to avoid conflicts with Unity taskbars,
observe minimum geometry for Windows, move cursor out of the
way for Mac. Introduce QScopedPointer to ensure cleanup in
case of failures.

Change-Id: Ic169e015e795597457b8e85a28ff7fcb7b9b9430
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-11-16 14:57:10 +01:00
Stephen Kelly
e9af987f28 Try to find GL headers in Mac SDKs.
Task-number: QTBUG-32308

Change-Id: Ibbab3852e5cc289faa63d0a66a3816ab8062ccb9
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Brad King <brad.king@kitware.com>
2013-11-15 20:24:59 +01:00
Michael Brasser
42aacbf5eb Improve interaction between QPlatformTheme and QPlatformIntegration hinting.
Ensure that custom style hints returned by subclassed
QPlatformIntegration::styleHints() are used if not explicitly overridden
by subclassed QPlatformTheme::themHints().

Task-number: QTBUG-34589
Change-Id: I0a3114cb00b532d2a5cd40941eca192b32412bcf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-11-15 19:05:27 +01:00
Allan Sandfeld Jensen
345525db99 Missing entry in QImage inplace_converter_map
The inplace_converter_map never had an entry for ARGB4444_Premultiplied
this leads to the possibility of accessing outside of the array, and
means the RGBA8888 formats are misplaced.

Change-Id: Ida0d94912b53a7730b8fb5f6ccc31e7879ea3d27
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-15 16:45:08 +01:00
Erik Verbruggen
81f2d6eaac Fix compiler warning for cast from int to id.
qcocoaapplication.mm:118:61: warning: cast to 'id' from smaller integer type 'int' [-Wint-to-pointer-cast]
    id a1 = ([args->arg1 isKindOfClass:[NSNumber class]]) ? (id)[args->arg1 intValue] : args->arg1;
                                                            ^
qcocoaapplication.mm:119:61: warning: cast to 'id' from smaller integer type 'int' [-Wint-to-pointer-cast]
    id a2 = ([args->arg2 isKindOfClass:[NSNumber class]]) ? (id)[args->arg2 intValue] : args->arg2;

Change-Id: Ibcf3d5d5698ff863f3c9bd65e0388ccca147f419
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-11-15 16:44:28 +01:00
Marc Mutz
2c450d90b6 QCollator(SortKey): add member-swap
This is required for a Qt value type these days.

Change-Id: Ibd4e1581a4f4791a410caa10fede92c26b35dd9d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 16:44:03 +01:00
Marc Mutz
4225e71038 QCollator: mark ctor explicit
QCollator and QLocale are not equivalent types, so there should
be no implicit conversion between them.

Change-Id: I395f8dc3c35b4202c9276c3eea0686176f8e07cc
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 16:44:03 +01:00
Shawn Rutledge
e3383ab646 GTK theme should not claim to provide a native MessageDialog yet
It was providing all possible types, but now MessageDialog is a new
native dialog type, and only on Android at the moment.

Task-number: QTBUG-34784
Change-Id: I2fb288c8d5e176ca4dafbbc310de2f29bbcfc000
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-11-15 16:44:03 +01:00
Lars Knoll
3e88ebc43d Remove stray debug output
This was actually causing test failures in qtdeclarative
and blocking the CI there.

Change-Id: I4538342f16b6468ad60b283c19948863b20ad5d4
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-15 13:02:40 +01:00
Sérgio Martins
f59e29d9bf Don't accept wheel events if sendEvent() returns false.
Otherwise wheeling over disabled items won't let the wheel event
propagate to the parent.

An easy way to reproduce the problem is by having a flickable with
some disabled item in it.

Task-number: QTBUG-33477
Change-Id: Ib327cc34dd9f415617ffbc41064f689507446c05
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-11-15 12:42:36 +01:00
Friedemann Kleint
e2557933cb Remove QTRY_ macro from tst_qabstractitemview.
Change-Id: Ic8b8e5c242b640581aa735a3716666d4e7ff44eb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-11-15 12:42:36 +01:00
Mitch Curtis
a106be6f46 Fix QCoreApplication documentation.
Task-number: QTBUG-33360

Change-Id: Ifdc0bcc580d0a2dacc6a0bdce10aa278e0bdfe9c
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-11-15 11:02:36 +01:00
Jan Arve Saether
de5b3780cf QFormLayout: Avoid assertion with negative spacings.
It's not really clear if styles *must* return a non-negative value for
QStyle::pixelMetric(PM_Layout{Vertical,Horizontal}Spacing), but both
QBoxLayout and QGridLayout seems to be robust enough to handle this.
They will simply make sure that the spacing is never negative.
We therefore make QFormLayout equally robust.

Task-number: QTBUG-34731

Change-Id: I62235bfcd8adf7757cf15bc9927b29650ae6459d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-11-15 09:15:13 +01:00
Jan Arve Saether
191f96cb88 Avoid compiler warning about alignment for MSVC2013 (x64)
Only align if we actually *need to* (due to SSE/XOP usage)

The code will currently not compile as it is now with UseSSE or
UseXOP defined, (so the ALIGN macro could just
be totally removed). In order to keep the diff to upstream as small
as possible, we keep the ALIGN macro definition.

Task-number: QTBUG-34362
Change-Id: I6cf420205896e3a476cdcfbf3308a07e0ae0c84e
Reviewed-by: Richard J. Moore <rich@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 09:14:40 +01:00
BogDan Vatra
50a64e7626 Don't maximize dialogs.
Task-number: QTBUG-34765

Change-Id: Ia249e93dbbea11f3c03881c5fb88396bfad0e8fa
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-11-15 06:38:34 +01:00
Bernd Weimer
00b13e6388 QNX: Fixed touch event positions
Touch positions reported by libscreen have to be adjusted relative to
the window position to be properly interpreted by Qt.

Task-number: QTBUG-34812
Change-Id: I68744dc9da95fb1d0d1704d12154fb24c148fe03
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2013-11-15 06:37:29 +01:00
Alan Alpert
7d72516b52 Change platform selectors to match qmake selectors
Previously matched Qt.platform.os, however that can only provide one
string. Multiple selectors can be present at once, so we can provide
both unix and linux instead of having to pick the most specialized one.

Task-number: QTBUG-34796
Change-Id: I219517d740fa7385e923a9e09cb7e241378fbaee
Reviewed-by: David Faure <david.faure@kdab.com>
2013-11-15 06:36:44 +01:00
Eskil Abrahamsen Blomfeldt
63824d2e00 Android: Support popup menus
This is used by QML comboboxes, menu buttons, etc.

Task-number: QTBUG-31420
Change-Id: I6d3f32fd80ce91c4be34eae636d1b95a4e251a49
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-11-15 06:36:00 +01:00
Oswald Buddenhagen
770a0c91f3 fix header bundling in some framework builds
!build_all is a sufficient condition for bundling headers in both debug
and release configurations, as it means that we will likely make only
one of the builds, and that needs to be self-contained.

Task-number: QTBUG-34575
Change-Id: I1a19e4b619eeff207cfbfd50d3b761053aeaa667
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 06:32:12 +01:00
Marc Mutz
38e90ad2b3 qcompilerdetection.h: add Q_COMPILER_UNIFORM_INIT
Up to now, the feature classe Uniform Initialization was subsumed by the
Q_COMPILER_INITIALIZER_LISTS flag together with support for
std::initializer_list.

This caused at least two problems:
1. On QNX, the standard libray does not ship <initializer_list>, even
   though the compiler (a GCC 4.6, IIRC) supports it. But since there
   was only one Q_COMPILER flag for both, support for the compiler-only
   part of the feature had to be disabled, too.
2. MSVC 2013 supports initializer lists, but has a bug that renders full
   uniform initialization support, as required for QUuid, useless.

By splitting the feature into two, we can separate them better, and do
so in QUuid, which is the only class that currently takes advantage of
uniform initialization (to provide constexpr constructors).

Since Q_COMPILER_INITIALIZER_LISTS worked as a flag for uniform
initialization so far, with the two known exceptions above,
UNIFORM_INIT is defined whenever INITIALIZER_LIST is, except that
I don't revert UNIFORM_INIT on QNX as I do for INITIALIZER_LISTS
and that I expect the MSVC 2013 features to set INITIALIZER_LIST,
but not UNIFORM_INIT.

Task-number: QTBUG-34705

Change-Id: I81916e950a0f3aab3de7977e0326d2de3d31b14c
Reviewed-by: Yuchen Deng <loaden@gmail.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-11-15 06:30:53 +01:00