profile/ivi/qtbase.git
12 years agoOnly create the Qt5::WinMain target if it doesn't exist yet.
Stephen Kelly [Wed, 11 Jul 2012 12:13:15 +0000 (14:13 +0200)]
Only create the Qt5::WinMain target if it doesn't exist yet.

Multiple calls to find_package(Qt5Core) would otherwise attempt to
create multiple targets of the same name.

Change-Id: I5639671fec66d4dd62dcce018dea5d18dcfd3dc3
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoMake sure the emulated mouse event comes last
Kevin Ottens [Thu, 12 Jul 2012 09:39:06 +0000 (11:39 +0200)]
Make sure the emulated mouse event comes last

With the recent refactoring in qtdeclarative for the handling of touch
and mouse events, QQuickCanvas automatically transforms touch events in
mouse events too.

It means that since we do something similar in the platform plugin, in
the case of QQuickCanvas the mouse event is duplicated. It it fine
except that having mouse event, touch event, mouse event in that order
is likely to mess the states of some elements. It happens to be the case
for MouseArea which will discard the second mouse event in the case of a
press, and because of that not receive the other events.

By changing the order in the plugin, we ensure getting events in the
following order: touch event, mouse event, mouse event. In the case of
MouseArea, since the press event will be accepted with nothing in
between, we'll keep receiving the other events.

Note that we can't simply remove the mouse event simulation on our side,
otherwise we'd break QWidget support.

Change-Id: If08fe0d97c6d60d0f858b228a014d94bc86dcf6f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agostatemachine: Micro-optimization for signal transition connect
Kent Hansen [Thu, 12 Jul 2012 20:06:21 +0000 (22:06 +0200)]
statemachine: Micro-optimization for signal transition connect

It's silly to call one virtual function plus one function that
walks the inheritance chain, on every signal transition connect
and disconnect, when the method offset of the internal
QSignalEventGenerator class cannot change.

Change-Id: Ic4e83bdc6ab445ea8ca00f3d8da3031250621e2f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Use new Qt5 api for obtaining method parameter types
Kent Hansen [Thu, 12 Jul 2012 19:59:50 +0000 (21:59 +0200)]
statemachine: Use new Qt5 api for obtaining method parameter types

This is much faster than the string-based api.

Change-Id: Id7ba76aee3346dd90412ec5c8505329360aae937
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Make signal transition registration thread-safe
Kent Hansen [Thu, 12 Jul 2012 19:54:41 +0000 (21:54 +0200)]
statemachine: Make signal transition registration thread-safe

Since Qt's connections are thread-safe, QStateMachine's plumbing
around them should be thread-safe too.

Change-Id: I8ae91c2edc2d32ca4ed4258b71e5da22de30ed91
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Fix signal transition handling in multi-threaded setup
Kent Hansen [Thu, 12 Jul 2012 18:07:18 +0000 (20:07 +0200)]
statemachine: Fix signal transition handling in multi-threaded setup

By default, QStateMachine lazily registers signal transitions (i.e.,
connects to the signal) when the transition's source state is
entered. The connections are established in Qt::AutoConnection mode,
which means that if the sender object lives in a different thread,
the signal processing will be queued.

But if a sender object's signal is used in an out-going transition
of the target state of the queued transition, it's possible that a
second signal emission on the sender object's thread will be
"missed" by the state machine; before the machine gets around to
processing the first queued emission (and registering the
transitions of the new state), a sender object on the other thread
could have emitted a new signal.

The solution employed here is to eagerly register any signal
transition whose sender object is on a different thread; that is,
register it regardless of whether the transition's source state is
active.

Conversely, when a machine's transitions are unregistered (i.e.,
because the machine finished), signal transitions with sender
objects on other threads should be left as-is, in case the machine
will be run again.

This doesn't solve the case where the sender object is moved to a
different thread _after_ the transition has been initialized.
Theoretically, we could catch that by installing an event filter
on every sender object and handle the ThreadChange events, but
that would be very expensive, and likely useless in most cases.
So let's just say that that case isn't supported for now.

Task-number: QTBUG-19789
Change-Id: Ibc87bfbf2ed83217ac61ae9401fe4f179ef26c24
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Small refactoring of transition registration
Kent Hansen [Thu, 12 Jul 2012 18:00:15 +0000 (20:00 +0200)]
statemachine: Small refactoring of transition registration

Split the guts of registerTransitions() into a registerTransition()
function. This allows a particular transition to be registered,
instead of walking the source state's whole list of transitions
every time.

Move the logic for determining whether a transition should be
registered to the state machine, since that's also where the actual
registration takes place.

Change-Id: I0496dee9454cd77b62cf2768942a82a96b320744
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agolinuxfb: fix style in QFbCursor
Girish Ramakrishnan [Fri, 13 Jul 2012 02:45:40 +0000 (08:15 +0530)]
linuxfb: fix style in QFbCursor

Fix coding style, constness, m-prefix for member variables.

Change-Id: I9d75b410b398e5c3084b086b41884f2a0ddd6e5e
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agostatemachine: Fix dynamic transition registration edge cases
Kent Hansen [Thu, 12 Jul 2012 17:40:04 +0000 (19:40 +0200)]
statemachine: Fix dynamic transition registration edge cases

Some of the transition constructors didn't call the maybeRegister()
function, causing the transitions to be ignored if they were created
when the state machine was running and the transition's source state
was active.

Added tests that cover all possible cases.

Change-Id: If1b593b127bd719e3be4e5a2e6949a780c4e97c3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Avoid warning when setting up signal transition
Kent Hansen [Thu, 12 Jul 2012 17:41:03 +0000 (19:41 +0200)]
statemachine: Avoid warning when setting up signal transition

If the sender object was set, but not the signal signature, the
registration would proceed anyway, producing a strange warning like

QSignalTransition: no such signal: MyObject::

Change-Id: If0b113bdb60dd770d60b0d38d509b673e9d8c5eb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Set correct signal index when signal is non-normalized
Kent Hansen [Thu, 12 Jul 2012 15:03:03 +0000 (17:03 +0200)]
statemachine: Set correct signal index when signal is non-normalized

The originalSignalIndex member was not set if the signature had to be
normalized. This caused the SignalEvent passed to onTransition() to
report a signal index of -1.

Improve the signal transition tests so they check both the event
passed to eventTest() and onTransition().

Change-Id: I5331fd1944d53310b6d11eb2fd8713b80faa53a1
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agodoc/snippets: normalize signals/slots
Marc Mutz [Thu, 12 Jul 2012 20:22:14 +0000 (22:22 +0200)]
doc/snippets: normalize signals/slots

There's one in corelib that has a comment
  // slower due to signature normalization at runtime
I obviously didn't change that one.

This is the result of running util/normalize --modify
from Qt 4.7 with manual review.

Change-Id: I0ffb2305800a9cb746b7f8a4eb710702d64f1b92
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoQtWidgets: normalize signals/slots
Marc Mutz [Thu, 12 Jul 2012 20:27:04 +0000 (22:27 +0200)]
QtWidgets: normalize signals/slots

This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I024d48cd111ab89f3fe83d9df51b188c9ad5023c
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Debao Zhang <dbzhang800@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoQNX: Fix flushing the backing store to non-owner windows
Thomas McGuire [Wed, 11 Jul 2012 14:41:32 +0000 (16:41 +0200)]
QNX: Fix flushing the backing store to non-owner windows

Multiple windows can share the same backing store, which we did not
take into account. Don't ignore the window parameter in flush() to fix
that.

Change-Id: I4f98bba34d4da9134163e478cb78cab4ca0358d2
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
12 years agoQNX: Extract and move adjustBufferSize() function
Thomas McGuire [Wed, 11 Jul 2012 14:36:47 +0000 (16:36 +0200)]
QNX: Extract and move adjustBufferSize() function

Change-Id: Ia1719314460b9c51d6eba04ab1c43f02be1777b6
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
12 years agoQNX: Apply state from QWindow when creating new QQnxWindow
Thomas McGuire [Wed, 11 Jul 2012 14:34:20 +0000 (16:34 +0200)]
QNX: Apply state from QWindow when creating new QQnxWindow

Otherwise things like the window position and the parent/child relation
were wrong.

Change-Id: Ibe22a54f093f187e510f9c4258db2d80abe54a81
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
12 years agoImprove accessibility test helpers.
Friedemann Kleint [Mon, 9 Jul 2012 12:39:23 +0000 (14:39 +0200)]
Improve accessibility test helpers.

- Wait for accessibility events using qWait, allowing for
  event processing,
- Output a verbose message if the event cannot be found.

Change-Id: Iaadbd235c15dd12bb14724e1724dd04328532a96
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
12 years agoAnalog clock and raster window examples
Gunnar Sletta [Fri, 15 Jun 2012 11:41:18 +0000 (13:41 +0200)]
Analog clock and raster window examples

Change-Id: I36586fbaa7da25208bbc1964d2708f094d0d5c98
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoQtGui: normalize signals/slots
Marc Mutz [Thu, 12 Jul 2012 20:24:36 +0000 (22:24 +0200)]
QtGui: normalize signals/slots

This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I36e54222b27f1e71eb7d89cdfc595177c8d2bdb3
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agomeego: normalize signals/slots
Marc Mutz [Thu, 12 Jul 2012 20:34:55 +0000 (22:34 +0200)]
meego: normalize signals/slots

This is the result of running util/normalize --modify
from Qt 4.7  with manual review.

Change-Id: I9dcff4e0982be616313e9f162203a21b447df64b
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoMake it possible to connect to QAbstract{State,Transtion} private signals.
Stephen Kelly [Mon, 9 Jul 2012 07:56:58 +0000 (09:56 +0200)]
Make it possible to connect to QAbstract{State,Transtion} private signals.

Use the same trick as used for private signals in the models.

Change-Id: I4235788490cae0e3d554565621d145652dc5b0ca
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoMake it possible to use new syntax to connect to model signals.
Stephen Kelly [Mon, 9 Jul 2012 07:56:56 +0000 (09:56 +0200)]
Make it possible to use new syntax to connect to model signals.

The private signals can not be used as function pointers, as
required by the new syntax, so we introduce a parameter which
can only be created privately.

Change-Id: I3d7bb8a163e764d685e8007cba831fb77e3c6855
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoCreate a way to inform moc about private signals.
Stephen Kelly [Mon, 9 Jul 2012 07:56:51 +0000 (09:56 +0200)]
Create a way to inform moc about private signals.

Moc checks for the use of the QPrivateSignal struct, which is part of
the Q_OBJECT macro and is private to each class that uses it. Moc then
generates a name of the signal which does not include the private
struct, and generates code to invoke such signals with an instance of
the private struct.

This way we can mark private signals as such and prevent them from
being emitted from subclasses or from outside of the class entirely.

The drawback to this is that it only works if the private
signal has no default arguments. However, at least in Qt, there are
no such signals.

Change-Id: Id16eadaa8d3c36a2c3b265077877f3e1d8304c84
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoMake it clear that stickman example animations are binary files.
Jason McDonald [Thu, 12 Jul 2012 01:22:28 +0000 (11:22 +1000)]
Make it clear that stickman example animations are binary files.

Add a .bin extension to the filenames to ensure that packaging scripts
treat these files as binary instead of text.

Change-Id: Ib49e2bdb93a43ddb7590cb8fc0b542a251a786f8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agoTest for QMetaType binary breakage.
Jędrzej Nowacki [Thu, 21 Jun 2012 15:19:33 +0000 (17:19 +0200)]
Test for QMetaType binary breakage.

Type traits can not be changed durring Qt5 life time.

Change-Id: If69f65ff2113c901580afee91b11ae1b11c13a4f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
12 years agoqdoc: Clean path names before using them
Martin Smith [Thu, 12 Jul 2012 08:15:55 +0000 (10:15 +0200)]
qdoc: Clean path names before using them

The excludedirs variable doesn't work correctly when its values have
'../' in them. The solution is to use QDir::cleanPath() on each path
name before using it.

Task Nr: QTBUG-26492

Change-Id: I2db74e79cf096c1c75ab5b10877320360c016fc7
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
12 years agoMac: Fix crash on Mac OS 10.6 with new scrollbars.
Christoph Schleifenbaum [Thu, 12 Jul 2012 07:18:13 +0000 (09:18 +0200)]
Mac: Fix crash on Mac OS 10.6 with new scrollbars.

Add missing runtime for OS X version in constructor. This ended up in a
crash when starting a version compiled on 10.7 on 10.6.

Change-Id: I25c5562ee905317554e79d83a2f5236ce9e2a145
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
12 years agotst_QMimeDatabase: use QFutureSynchronizer
Marc Mutz [Wed, 11 Jul 2012 08:41:59 +0000 (10:41 +0200)]
tst_QMimeDatabase: use QFutureSynchronizer

Replace a list of QFuture<void>s and a loop that calls waitForFinished()
on each of them with a QFutureSynchronizer<void>, which does exactly that.

Change-Id: I1f2e90169a5b2949bd8cb9d1009a5a7af1500139
Reviewed-by: David Faure <faure@kde.org>
12 years agostatemachine: Fix state entry bug for parallel state groups
Kent Hansen [Thu, 12 Jul 2012 01:12:06 +0000 (03:12 +0200)]
statemachine: Fix state entry bug for parallel state groups

The SCXML spec had a bug that would cause the initial state of a
compound state within a parallel state group to be entered even if
the transition specified another (non-initial) state of the compound
state as its target. This only happened if the transition had
multiple target states.

The bug has been fixed in recent revisions of the SCXML spec. This
commit implements the fix, which is to walk the ancestors of the
transition's target states only after all the target states
themselves have been added, so that the default initial states are
correctly overridden/ignored.

Task-number: QTBUG-25958
Change-Id: Iac532047678c483a4a3996e24dacf30e00f6bbe0
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Move invariant code out of loop body
Kent Hansen [Wed, 11 Jul 2012 23:01:17 +0000 (01:01 +0200)]
statemachine: Move invariant code out of loop body

The lca variable doesn't change inside the loop. Comparing our
implementation to the algorithm in the SCXML spec reveals that this
check should indeed be done outside the loop.

Change-Id: I5e9824758fd147766e975d107a73561bd7f5a190
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agoFix compilation for some glxext.h header versions
Gunnar Sletta [Thu, 12 Jul 2012 07:00:50 +0000 (09:00 +0200)]
Fix compilation for some glxext.h header versions

Change-Id: I62b636d9f884c225e64a653db1a5f5da822d4af2
Reviewed-by: Chris Adams <christopher.adams@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoFix small problems with tst_QProcess
Thiago Macieira [Tue, 10 Jul 2012 16:45:28 +0000 (18:45 +0200)]
Fix small problems with tst_QProcess

Remember to register the metatype where we use it, so we don't depend
on another test being run previously.

And skip the setWorkingDirectory test completely on Unix. I don't know
why it needs to be skipped, but if we're not going to verify anything,
don't even try to do anything. This saves us one memory leak at least.

Change-Id: I22e151cc3fa7b4e976972aca8978b88b263d9bee
Reviewed-by: Mitch Curtis <mitch.curtis@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoEnable modularization of translation files.
Jan-Arve Saether [Mon, 2 Jul 2012 13:11:38 +0000 (15:11 +0200)]
Enable modularization of translation files.

This is accomplished by introducing dependencies to catalogs.

This requires one API change:
QTranslator::load(const uchar *, int);
  changes to
QTranslator::load(const uchar*, int len,
                  const QString &directory = QString());

Since now, even the load from memory might need a directory if
the memory block contains a qm file with dependencies.

Change-Id: I781f333d07f53bb431d0a7b5fa1abe282dc4d338
Task-number: QTBUG-26138
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoFix crash when column is inserted before rowspanned cell
Eskil Abrahamsen Blomfeldt [Thu, 12 Jul 2012 10:55:04 +0000 (12:55 +0200)]
Fix crash when column is inserted before rowspanned cell

When you're inserting a column in front of a rowspanned cell
and this cell is not the first in the rowspan, we would get
the wrong logical index of the new cell (putting it in
front of the initial cell with the rowspan). If the cell
does not span all rows, the table will get into a broken state
and trigger asserts in update(). To fix this, we search for
the first cell after the insertion point which has a logical
index higher than the cell directly before the insertion point.

Change-Id: I42e91a20d77b2ba9c5607f6cab23f51ed888cbd3
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
12 years agofix splitting of $PATH when looking for sh.exe
Oswald Buddenhagen [Thu, 12 Jul 2012 13:59:05 +0000 (15:59 +0200)]
fix splitting of $PATH when looking for sh.exe

Change-Id: I1ec0a48879d6ba7c0e2e7fdc0939980d0f817a68
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoremove another symbian remnant: QMAKE_RVCT_LINKSTYLE
Oswald Buddenhagen [Thu, 12 Jul 2012 13:44:34 +0000 (15:44 +0200)]
remove another symbian remnant: QMAKE_RVCT_LINKSTYLE

Change-Id: Ibac060ecae061c72d4c7076b2d61a5cdd6247420
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agotest behavior of $${absolute,relative}_path() with empty 1st argument
Oswald Buddenhagen [Thu, 12 Jul 2012 09:19:48 +0000 (11:19 +0200)]
test behavior of $${absolute,relative}_path() with empty 1st argument

Change-Id: I76c0853a9d397979f2ae5eb780374d2380c989f1
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoremove pointless checking/fallback code for $$TARGET
Oswald Buddenhagen [Mon, 9 Jul 2012 14:10:37 +0000 (16:10 +0200)]
remove pointless checking/fallback code for $$TARGET

qmake always sets that variable, so unless somebody pro-actively screws
it up (which doesn't seem like being worth checking for), it will just
work.

Change-Id: I3c4ada47cbd34ac68695d8efbf09c605392616f5
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoremove support for syncqt-based config tests
Oswald Buddenhagen [Thu, 5 Apr 2012 15:08:26 +0000 (17:08 +0200)]
remove support for syncqt-based config tests

now that all modules have migrated, dispose of the clutter.

Change-Id: Ib8937c1452536f645b76c0097b927df1108afc1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoremove QT_NO_SIGNALMAPPER from features
Tasuku Suzuki [Wed, 11 Jul 2012 17:49:47 +0000 (02:49 +0900)]
remove QT_NO_SIGNALMAPPER from features

QSignalMapper is a small and extremely low-level interface.

Change-Id: I7e799673c6fe559178739fbc58385141ae3f0789
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agoFix wince build
Andreas Holzammer [Thu, 12 Jul 2012 09:21:47 +0000 (11:21 +0200)]
Fix wince build

Wince does not have a style so we cannot save it.
This was introduced by Change-Id: I6fca399376cd1fa9bffea0a686b56c4d5ec26605

Change-Id: I249aa8e9688e5a862b3787c531c19baea7338d5e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoQPA: pass cmdline arguments to QPlatformIntegrationPlugin constructor
Girish Ramakrishnan [Fri, 6 Jul 2012 13:10:08 +0000 (18:40 +0530)]
QPA: pass cmdline arguments to QPlatformIntegrationPlugin constructor

Two observations of the current code:
1. The cmdline arguments are passed as dynamic properties of the native
   interface. This is not optimal. First, the args should be made available
   in the plugin constructor (and thus in the QPlatformIntegration constructor).
   This allows the integration to make decisions when initializing itself.
   Second, the preferred way for apps to query properties from the platform plugin
   should be through the various methods in QPlatformNativeInterface.

   With that in mind, the dynamic property approach should be obsoleted. I have left
   the code as-is for backward compat.

2. The -platform argument is parsed twice. Once in init_platform and then
   again in QPlatformIntegrationFactory. QPlatformIntegrationFactory now takes
   the name and arg list separately.

Change-Id: I6b568ed9e28feeaf036bf340417fa00bdf1b7da3
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@kdab.com>
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoImplement qWaitForWindowShown using qWaitForWindowExposed.
Friedemann Kleint [Thu, 5 Jul 2012 10:08:31 +0000 (12:08 +0200)]
Implement qWaitForWindowShown using qWaitForWindowExposed.

Deprecate qWaitForWindowShown for Qt 6 as it is just a wrapper.

Change-Id: I0f8195679679120bd402e273fed4d331dc926708
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
12 years agodon't unnecessarily normalize $$[QT_INSTALL_*] any more
Oswald Buddenhagen [Thu, 12 Jul 2012 09:25:39 +0000 (11:25 +0200)]
don't unnecessarily normalize $$[QT_INSTALL_*] any more

they are always normalized nowadays

Change-Id: I2d6d00639a4838da1a4def93a3416b000b8cd589
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoQNX: Rename copyBack() to blitPreviousToCurrent()
Thomas McGuire [Wed, 11 Jul 2012 12:34:33 +0000 (14:34 +0200)]
QNX: Rename copyBack() to blitPreviousToCurrent()

Change-Id: I12cff8f4533f9a257b85d2a2db6ee3ef4a0c9751
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoQNX: Factor out blitHelper() function
Thomas McGuire [Wed, 11 Jul 2012 12:31:13 +0000 (14:31 +0200)]
QNX: Factor out blitHelper() function

Change-Id: If4d671aae557065d502c3c134f50c89c621cb145
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoQNX: Add comment in post() explaining how buffering works
Thomas McGuire [Wed, 11 Jul 2012 12:30:11 +0000 (14:30 +0200)]
QNX: Add comment in post() explaining how buffering works

Change-Id: Ieb87ea1bd926700277bf90c6a50ae89f1a8da1c2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
12 years agoTests: Fix printsupport profiles.
Friedemann Kleint [Thu, 12 Jul 2012 09:06:11 +0000 (11:06 +0200)]
Tests: Fix printsupport profiles.

Fix reversed conditions, breakage introduced by
32db7de2079967fe1c333c562b742318c50321a4.

Change-Id: I6fca399376cd1fa9bffea0a686b56c4d5ec26605
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agomake the prl lookup search in standard locations
Oswald Buddenhagen [Thu, 12 Jul 2012 07:38:44 +0000 (09:38 +0200)]
make the prl lookup search in standard locations

qtAddModule() skips adding standard library paths to LIBS. however, as
processPrlFiles() didn't know anything about that, it would not find the
prl files of qt libraries in these paths.
so centralize the definition of these default paths (we should actually
ask the linker for them) and use it in both places.
do the same for the include paths for symmetry.

Change-Id: I7e3692dc2d1c2d0c97a9151d15887b1263de137a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoandroid: fix build mistake from earlier mkspec naming
Robin Burchell [Wed, 11 Jul 2012 13:08:19 +0000 (15:08 +0200)]
android: fix build mistake from earlier mkspec naming

Change-Id: I48d9f097e3177f9e2f558845e531f4e438035586
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoFix static plugin loading.
Thiago Macieira [Mon, 9 Jul 2012 11:46:48 +0000 (13:46 +0200)]
Fix static plugin loading.

The QFactoryLoader::indexOf and keyMap functions expect to receive the
metadata that contains a "MetaData" entry, instead of the entry
itself.

Also, QFactoryLoader::metaData() skips static plugins with the wrong
IID, so we need to skip it too in QFactoryLoader::instance().

Change-Id: I8a453087feb88d0e8d1021054353f3600d5100a5
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
12 years agoWrite qHash functions for QDate, QTime and QDateTime.
Mitch Curtis [Thu, 28 Jun 2012 13:53:41 +0000 (15:53 +0200)]
Write qHash functions for QDate, QTime and QDateTime.

These functions didn't exist - this patch implements them.

Task-number: QTBUG-23079
Change-Id: I9eb6e238531d5cda878f5f2cdd27bab30aa60669
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoAdd unary operator+ to QPoint and QPointF.
Mitch Curtis [Fri, 6 Jul 2012 13:12:41 +0000 (15:12 +0200)]
Add unary operator+ to QPoint and QPointF.

As requested by Winfried Schenke:

"QPoint should have an unary operator+ (the unary operator- exists).
Classes with arithmetic operators should provide a complete set of
operators, because some template code relies on it."

Task-number: QTBUG-22913
Change-Id: Ib0c5105975f56c15f00bb48d83c8d911f5a204ac
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
12 years agoPut the ICU libraries in LIBS_PRIVATE
Thiago Macieira [Wed, 11 Jul 2012 15:15:40 +0000 (17:15 +0200)]
Put the ICU libraries in LIBS_PRIVATE

We don't expose ICU in our public API, so there's no need for end-user
applications to be forced to link to ICU.

Change-Id: Ie7a1cef205b9859be4c6b21f486392d192cf6063
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agofix QT.<module>.*_VERSION references
Oswald Buddenhagen [Wed, 11 Jul 2012 14:35:24 +0000 (16:35 +0200)]
fix QT.<module>.*_VERSION references

Change-Id: I448de417d86f2500015b967581dbe7aab58e894a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agodo not mess with VERSION
Oswald Buddenhagen [Wed, 11 Jul 2012 14:33:47 +0000 (16:33 +0200)]
do not mess with VERSION

the import version is not supposed to determine the plugin version -
it's only used by the qmltypes target.

Change-Id: I0cb072cb0ee469bd96830262dbf4971a2bf3134f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoImprove windowflags, windowgeometry manual tests.
Friedemann Kleint [Wed, 11 Jul 2012 13:12:26 +0000 (15:12 +0200)]
Improve windowflags, windowgeometry manual tests.

- Make them compile with 4.8 for comparison
- Add Active to WindowStates control
- Add -layout option to windowgeometry

Change-Id: I052330eb8689883c104a0552708ea700c7cd790a
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
12 years agoeglfs: add virtual destructor to QEglFsHooks
Robin Burchell [Wed, 11 Jul 2012 13:08:12 +0000 (15:08 +0200)]
eglfs: add virtual destructor to QEglFsHooks

Fixes:

qeglfshooks.h:56: error: 'class QEglFSHooks' has virtual functions and accessible non-virtual destructor

Change-Id: I5b8d96e764121c85fcc73d2231427cd123de8cd9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: Add config.test and configure support
Girish Ramakrishnan [Mon, 2 Jul 2012 21:30:41 +0000 (03:00 +0530)]
linuxfb: Add config.test and configure support

The code is exactly the same as what is already done for DirectFB.

Change-Id: I3b84e67a3e999f692da4110f3ac9c82d98b0637c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoFix some spelling errors
Sergio Ahumada [Wed, 11 Jul 2012 12:44:38 +0000 (14:44 +0200)]
Fix some spelling errors

Change-Id: I19d3b2e9a5180b13deb828b55195404ef20be295
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
12 years agoAdd protected virtual ensureActiveTarget() to QOpenGLPaintDevice
Jocelyn Turcotte [Tue, 10 Jul 2012 17:13:19 +0000 (19:13 +0200)]
Add protected virtual ensureActiveTarget() to QOpenGLPaintDevice

Make sure that QOpenGLPaintDevice supports it the same way as
QGLPaintDevice::ensureActiveTarget dit. It is made virtual since the
external code needs to manage FBOs for QOpenGLPaintEngine.

Task-number: QTBUG-25995
Change-Id: Ieed9616f6a14204aae628d7febe6a11538496b3d
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
12 years agoImprove QPoint and QPointF auto tests.
Mitch Curtis [Thu, 5 Jul 2012 15:06:31 +0000 (17:06 +0200)]
Improve QPoint and QPointF auto tests.

Improve test coverage for QPoint and QPointF.
Separate QPointF tests into their own project.

Change-Id: Id28dc5b85aba9fc179d87b2bca1d99854f27a5ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoAvoid loading multiple bearer plugins of the same key
Jiang Jiang [Tue, 10 Jul 2012 08:32:03 +0000 (10:32 +0200)]
Avoid loading multiple bearer plugins of the same key

There may be duplicated debug plugins, loading both will cause
crash.

Change-Id: Icc2a3643c318844bc7f2e149a6434e95de2449b2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agoAdd stylehint to use querying RTL keyboard support.
Friedemann Kleint [Fri, 29 Jun 2012 10:38:53 +0000 (12:38 +0200)]
Add stylehint to use querying RTL keyboard support.

Change-Id: Ic58ed7cb64cc7fe60b4d431e9f29e389c62265fc
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoClear qt_button_down widget when starting a drag.
Friedemann Kleint [Mon, 9 Jul 2012 10:50:00 +0000 (12:50 +0200)]
Clear qt_button_down widget when starting a drag.

Prevent pickMouseReceiver() from using the
widget from which the drag was started.

Task-number: QTBUG-26145
Change-Id: I65d4c295a894193e41c676fb9fd1f7113c2631b5
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agofix build with namespaced qt
Oswald Buddenhagen [Tue, 10 Jul 2012 17:34:48 +0000 (19:34 +0200)]
fix build with namespaced qt

Change-Id: Ie7d8ce60448aea98141baa66a57796447a31040e
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoDon't set the resize and move flags when activating fullscreen mode
Thomas McGuire [Tue, 10 Jul 2012 09:00:36 +0000 (11:00 +0200)]
Don't set the resize and move flags when activating fullscreen mode

This fixes tst_QWidget::movedAndResizedAttributes() for platforms
that don't have support for QPlatformWindow::setWindowState().

Change-Id: Id0f123d11b08a75c0c131080d509e6b23b281600
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoFix unit tests when CMAKE_PREFIX_PATH env var is not set.
Stephen Kelly [Tue, 10 Jul 2012 15:56:54 +0000 (17:56 +0200)]
Fix unit tests when CMAKE_PREFIX_PATH env var is not set.

Tests which are expected to not build need to get a way to find the
Qt 5 config packages. Because they use try_compile, there is no way
to pass the contents to it.

Work around that by generating a file containing the prefix which
the tests will include.

Change-Id: If43080c241539e4af5fe1c183e7da72066278b73
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agolinuxfb: Remove QFbWindow::setVisible
Girish Ramakrishnan [Mon, 9 Jul 2012 10:00:45 +0000 (15:30 +0530)]
linuxfb: Remove QFbWindow::setVisible

QFbWindow::setVisible doesn't call into the base class implementation
and thus suppresses the delivery of the expose event. It turns out we
don't need to track the visiblity at all since the base QPA code tracks
this already.

After this change, windows are now render on the framebuffer.

Change-Id: Ifcfc730456883eb423d79479bd0b04330b8c2d72
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: Add m prefix to all member variables
Girish Ramakrishnan [Sat, 7 Jul 2012 03:26:50 +0000 (08:56 +0530)]
linuxfb: Add m prefix to all member variables

Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Change-Id: Id1eb31ff15713c4ce3659f71d23a18ecf42f6bd3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: raise and lower should take QFbWindow as args
Girish Ramakrishnan [Sat, 7 Jul 2012 03:19:12 +0000 (08:49 +0530)]
linuxfb: raise and lower should take QFbWindow as args

Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Change-Id: I856ea141a39f23968169ba29be1445fa089f7f02
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: let the window register itself with the screen
Girish Ramakrishnan [Fri, 6 Jul 2012 21:16:24 +0000 (02:46 +0530)]
linuxfb: let the window register itself with the screen

This moves the addWindow call to the platformsupport code.

Change-Id: Icf9175ae86ad880248036362e9c5f40124744272
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: Add option to not switch to graphics mode
Girish Ramakrishnan [Fri, 6 Jul 2012 13:18:38 +0000 (18:48 +0530)]
linuxfb: Add option to not switch to graphics mode

When in graphics mode, printf/qDebug doesn't get printed
on the console. So, it's nice to have this option for
debugging.

Change-Id: Idd552292da2526e07d9c74d2a901e0d675edb2e1
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: Rework screen code
Girish Ramakrishnan [Fri, 6 Jul 2012 00:10:57 +0000 (05:40 +0530)]
linuxfb: Rework screen code

Move the screen code from integration. The design philosophy
is that QFbScreen takes care of generic framebuffer composition.
QLinuxFbScreen is just an linux framebuffer adaptation layer.

Change-Id: I8456c13826f06621037dd77fe0d0bd8873806c96
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: remove mScreens from QFbWindow
Girish Ramakrishnan [Thu, 5 Jul 2012 22:44:37 +0000 (04:14 +0530)]
linuxfb: remove mScreens from QFbWindow

A QWindow can only be in one QScreen, so it makes no sense to track
a list of screens.

Change-Id: I341a67afa90c7fbbbd95786b43d0a322fc1ddba2
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: create image only on resize
Girish Ramakrishnan [Thu, 5 Jul 2012 16:30:28 +0000 (22:00 +0530)]
linuxfb: create image only on resize

Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Change-Id: I04cd75f96cf755ef0c12fad70e3bbd96fbbed9a1
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: don't store window in backingstore
Girish Ramakrishnan [Thu, 5 Jul 2012 15:36:14 +0000 (21:06 +0530)]
linuxfb: don't store window in backingstore

The backing store already knows about the window.

Also, rename surface to backing store in QFbWindow.

Change-Id: I3701b3cdbdc228200da9b93b13037655dc436f53
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Thomas Senyk <thomas.senyk@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoQNX: fix linking by implementing QStandardPaths::enableTestMode()
Marc Mutz [Tue, 3 Jul 2012 12:28:49 +0000 (14:28 +0200)]
QNX: fix linking by implementing QStandardPaths::enableTestMode()

Change-Id: Ia223ff598d816dd6420437a9a58be26da55d7c07
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: David Faure <faure@kde.org>
12 years agostatemachine: Support parallel root state
Kent Hansen [Sat, 7 Jul 2012 04:07:11 +0000 (06:07 +0200)]
statemachine: Support parallel root state

QStateMachine inherits from QState, so it should be possible to set
its childMode to ParallelStates, and it should behave as expected
(the machine should emit the finished() signal when all its child
states are in final states).

Task-number: QTBUG-22931
Change-Id: Ic436351be0be69e3b01ae9984561132cd9839fa7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Emit finished() signal when the initial state is final
Kent Hansen [Sat, 7 Jul 2012 03:43:11 +0000 (05:43 +0200)]
statemachine: Emit finished() signal when the initial state is final

It's legal to set a QFinalState as the initial state. The state
machine should correctly emit the finished() signal upon entering
such a state in the initial transition, and don't do any further
processing.

Change-Id: Ica8d3fadbbde604512ea1136624af54eb3b13b11
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Small refactoring of initial transition code
Kent Hansen [Sat, 7 Jul 2012 02:51:24 +0000 (04:51 +0200)]
statemachine: Small refactoring of initial transition code

In preparation of supporting parallel root states, which will make
the initial transition creation slightly more involved.

Change-Id: Iad996eb4db248842c1a2088430c13bd5c953c374
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Get rid of hidden start state
Kent Hansen [Sat, 7 Jul 2012 02:33:30 +0000 (04:33 +0200)]
statemachine: Get rid of hidden start state

The hidden start state was used as a mechanism for performing the
initial transition (to the real initial state,
QStateMachine::setInitialState()), but it mutated the state machine
in a way that causes problems when the root state is a parallel
state group (see future commit).

Change-Id: I41ac4f6bcabf3bec0a412e46282a1373928105a3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agolinuxfb: add linuxfb.json and moc main.cpp
Girish Ramakrishnan [Mon, 2 Jul 2012 12:49:55 +0000 (18:19 +0530)]
linuxfb: add linuxfb.json and moc main.cpp

This makes the linuxfb plugin load

Change-Id: Idbe888b5795f8ac86f1e3cf197e42c99cca04818
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: make linuxfb compile
Girish Ramakrishnan [Mon, 2 Jul 2012 10:01:17 +0000 (15:31 +0530)]
linuxfb: make linuxfb compile

The plugin now compiles, it is not known to work.

Change-Id: I8dd086eb7fc41c6e197debc2601eebba3404187c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agolinuxfb: make platformsupport convenience compile
Girish Ramakrishnan [Mon, 2 Jul 2012 08:36:03 +0000 (14:06 +0530)]
linuxfb: make platformsupport convenience compile

Rename fb_base to fbconvenience in-line with the other
convenience classes.

The code only compiles, it is not known to work.

Change-Id: If51700ddf0a11ace5129af6f00f34fd895a6a4df
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agosupport building tools as application bundles
Oswald Buddenhagen [Tue, 10 Jul 2012 18:53:52 +0000 (20:53 +0200)]
support building tools as application bundles

qmlplugindump needs that

Change-Id: I3b6b6689a32744262184fa781fda465460a87640
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agoList required xcb packages for Ubuntu 12.04.
Jason McDonald [Mon, 9 Jul 2012 07:05:57 +0000 (17:05 +1000)]
List required xcb packages for Ubuntu 12.04.

Change-Id: Ia934a9da9986f451d90053891c80ec352b939172
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
12 years agostatemachine: Revamp property assignments implementation
Kent Hansen [Thu, 5 Jul 2012 10:55:20 +0000 (12:55 +0200)]
statemachine: Revamp property assignments implementation

In the old implementation, property assignments
(QState::assignProperty()) were "second-class citizens".
Assignments were not really integrated into the state machine
algorithm, but rather done as a separate step
(QStateMachinePrivate::applyProperties()). While that was
convenient for SCXML spec transcription purposes, it resulted
in some pretty poor semantics on the user side:

* Properties were not assigned until _after_ both the
QAbstractState::onEntry() function had been called and the
QState::entered() signal had been emitted.

* Automatic property restoration (QStateMachine::RestoreProperties)
did not play nice with nested states (and parallel states, in
particular).

The proper fix is to refactor the implementation to make
property assignments first-class in the core state machine
algorithm (QStateMachinePrivate::microstep()).

In practice, this meant splitting some steps. Instead of calling
exitStates() straight away, we now first only compute the states
to exit (without actually exiting them), and use the resulting set
to compute which properties are candidates for restoration.
Similarly, instead of calling enterStates(), we first only compute
the states to enter (without actually entering them), and use the
resulting set to compute which properties are assigned by the
entered states.

With that in place, the rest was a matter of moving the various
chunks of the old applyProperties() logic to the place where they
belong in the per-state entry/exit.

All existing autotests pass. Added several tests that verify the
desired semantics in more detail.

Task-number: QTBUG-20362
Change-Id: I7d8c7253b66cae87bb0d09aa504303218e230c65
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agostatemachine: Refactor {enter,exit}States() functions
Kent Hansen [Wed, 4 Jul 2012 22:03:41 +0000 (00:03 +0200)]
statemachine: Refactor {enter,exit}States() functions

Move the computation of the sets of entered/exited states to
separate functions.

This separation is done in order to facilitate the integration
of property assignments (QState::assignProperty()) into the
core state machine algorithm.

Change-Id: I5b7084e0e37037eb64909d217856746d81bf1878
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
12 years agoXCB: Use glXCreateContextAttribsARB if available
Sean Harmer [Sat, 7 Jul 2012 18:40:15 +0000 (19:40 +0100)]
XCB: Use glXCreateContextAttribsARB if available

If the GLX ARB extension ARB_create_context is available use the
function glXCreateContextAttribsARB to create a context for OpenGL 3 or
newer that honours the requested profile and version.

If a core profile is requested we also ensure that it is forwards
compatible.

Also ensure that the stored surface format reflects the requested
version.

Change-Id: Ie4f77be19bfc400440a2f8c9b3d99240eb430925
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
12 years agoRemove clipboard operations from QAccessibleEditableTextInterface
Jan-Arve Saether [Wed, 7 Mar 2012 10:59:30 +0000 (11:59 +0100)]
Remove clipboard operations from QAccessibleEditableTextInterface

Also, remove its subclass QAccessibleSimpleEditableTextInterface

Instead of having the subclass that implements this conveniently,
we move this behaviour over to the bridge. The bridge should
check if role() == EditableText is set, and then it should try to
support the IAccessibleEditableText interface (i.e.
it should accept the calls to replaceText(), deleteText() and
insertText()) and change the text with the following operations:
1. Query the text using QAccessibleTextInterface::text() or by
   using QAccessibleInterface::text(QAccessible::Value) as a fallback
2. Do the requested delete/insert/replace manipulation
3. Update the text with setText(QAccessible::Value, newText);

Change-Id: Iee5e41faf14351951e2bfca8c9eac970a113e878
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
12 years agoChange deprecated use of qgenericplugin_qpa.h to qgenericplugin.h
Sergio Ahumada [Tue, 10 Jul 2012 08:59:49 +0000 (10:59 +0200)]
Change deprecated use of qgenericplugin_qpa.h to qgenericplugin.h

  In file included from kernel/qgenericpluginfactory.cpp:46:0:
  ../../include/QtGui/qgenericplugin_qpa.h:4:4: warning:
  #warning Header <QtGui/qgenericplugin_qpa.h> is deprecated.
  Please include <QtGui/qgenericplugin.h> instead. [-Wcpp]

Change-Id: I533270e23e742e6f15ad5d480afb4901fb8541b0
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
12 years agoadd feature file for centralized qml plugin project handling
Oswald Buddenhagen [Mon, 9 Jul 2012 17:17:00 +0000 (19:17 +0200)]
add feature file for centralized qml plugin project handling

Change-Id: I7cdce31d7ac458656cf8e8490fd7f7e5c04ca106
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
12 years agoSet the IMPORTED_SONAME for imported targets.
Stephen Kelly [Wed, 4 Jul 2012 08:11:07 +0000 (10:11 +0200)]
Set the IMPORTED_SONAME for imported targets.

On windows this doesn't need to be set. On Mac I'm not sure yet on
the various configurations.

Change-Id: I31f191711a2ae0a1bb7221ae6e1fef377d62f1dc
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agoFix the name of _debug libraries on APPLE.
Stephen Kelly [Tue, 10 Jul 2012 16:05:13 +0000 (18:05 +0200)]
Fix the name of _debug libraries on APPLE.

Change-Id: Id3ae730c0ce0630f8ccc222fe09e5d3da23d124d
Reviewed-by: Clinton Stimpson <clinton@elemtech.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
12 years agofix linking against installations in /usr/lib
Oswald Buddenhagen [Tue, 10 Jul 2012 17:34:35 +0000 (19:34 +0200)]
fix linking against installations in /usr/lib

Change-Id: I17a6a2e058f039e525461d459477329fd7090417
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
12 years agomake sure that building tests implies building other parts
Oswald Buddenhagen [Tue, 10 Jul 2012 06:59:40 +0000 (08:59 +0200)]
make sure that building tests implies building other parts

some tests have runtime deps on the other parts

Change-Id: Ieb2925e762e94b3c0b16884be0f59e10ce8e4878
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoFix showNormal() and friends for platforms with fullscreen hint
Thomas McGuire [Tue, 10 Jul 2012 07:06:11 +0000 (09:06 +0200)]
Fix showNormal() and friends for platforms with fullscreen hint

Don't call show() inside of QWidget, as that might make the window
fullscreen due to QStyleHints::showIsFullScreen().

This regression was introduced earlier when QWidget::show() gained
support for the hint. No auto test caught the problem, as the
affected platforms (EGL and QNX) are not CI-tested.

Change-Id: I647c2362ac5b53ced562f1d77848552cc122fba0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
12 years agoqtbase: Add missing example installs and files.
Friedemann Kleint [Tue, 10 Jul 2012 14:13:06 +0000 (16:13 +0200)]
qtbase: Add missing example installs and files.

Change-Id: I071fd862e001b766c9fb13106242edf23a608663
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
12 years agomake gui compile with QT_NO_SHORTCUT
Jeremy Katz [Tue, 10 Jul 2012 11:57:51 +0000 (13:57 +0200)]
make gui compile with QT_NO_SHORTCUT

The metatype system expects operator<<(QDataStream &, QKeySequence &)
even when shortcuts are disabled. This provides empty definitions for
that case.

Task-number: QTBUG-24816

Change-Id: Ie29fd01d38178bdc31cc51f1f08662b30edfc1e4
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>