Commit Graph

15103 Commits

Author SHA1 Message Date
Paul Olav Tvete
7805d39ca3 Fix android after Eglfs binary compatibility break
Change-Id: I95d98b475188b43f1e0946c7ad6fd2388839d619
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-09-20 12:03:43 +02:00
Gunnar Sletta
2e2289e1b5 Disable tst_QFileSystemWatcher
Task-number: QTBUG-33574

Change-Id: Ieed6b87f34964a902f339215d74c0184a27eb2a2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-20 12:03:22 +02:00
Paul Olav Tvete
74d2249e37 Android: handle inverted orientations
Add logic to detect InvertedPortrait and InvertedLandscape orientations
and implement QPlatformScreen::nativeOrientation() for Android.

Task-number: QTBUG-32144

Change-Id: I294506714ea0faa9eacd7a15e1cfc45342659964
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2013-09-20 12:02:58 +02:00
Stephen Kelly
dd6b053b6c MetaType: de-inline the container iterables.
This means the *Iterables and corresponding const_iterators need
to be exported.

Change-Id: Ic93283616bda96e0d7752b0e881bf0230a5c2146
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-20 12:02:57 +02:00
Jan Arve Saether
229f931d6e Add support for baseline alignment
This is a prerequisite for baseline support in Qt Quick Layouts

Change-Id: I1f032106cd1e7248a7688b6b9ca59f062a596d49
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
2013-09-20 11:58:44 +02:00
Sune Vuorela
e24f75af4d Implement QMainWindow::takeCentralWidget()
This allows the application developer to restructure the application,
including moving the central widget some place else.

Change-Id: Idca2f74c190500db24404e020b0eb400e41aad10
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2013-09-20 11:54:13 +02:00
Alan Alpert
938c838c10 Change QT_FILE_SELECTORS to be comma separated
It is not full paths being used, so switching to comma does not require
different environment variables per platform nor does it appear to be
platform dependent.

Change-Id: I219517d740fa7385e923a9e09cb7e241378f85ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-09-20 01:09:12 +02:00
Christian Strømme
9329f786da Android: Add private API for jni in QtCore
When interfacing with Java API's on Android we need to write code using
the Java Native Interface (JNI). Writing JNI code requires a lot of
boilerplate code to be written. This patch contains API's to minimize the
amount of work needed to write JNI code.

QJNIEnvironmentPrivate:
 On creation QJNIEnvironmentPrivate will attach the current running
 thread to the Java VM, and expose the java environment.

QJNIObjectPrivate:
 Wrapps around a Java class enabling the user to access the class from C++.

Change-Id: Ib633437ae36ff513d934292e9eeefcdd5b757d29
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-20 00:59:55 +02:00
Christian Strømme
ad4657f639 Android: Added JNI_OnLoad to QtCore
JNI_OnLoad is called for each library during the start-up of a Qt
application on Android. When the JNI_OnLoad is called we can get a
handle to the Java VM and necessary classes which enables us to access
Java API's in QtCore.

Change-Id: I64c1f1106cc0d5ab5a7bc9b22c752c09162fe813
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2013-09-20 00:59:16 +02:00
Martin Klapetek
a6f7ba0f8b Check if Print Properties dialog was shown before accessing it
Prevents a crash in case the user did not open
the properties dialog, in which case
QUnixPrintWidgetPrivate::propertiesDialog is null.

Change-Id: I43c8c6ab90053757835bbf41d6167204d42efcef
Reviewed-by: John Layt <jlayt@kde.org>
2013-09-20 00:50:36 +02:00
Martin Klapetek
00e50fb97c Expose more CUPS options via the 'Properties' dialog
On systems with CUPS support users can now choose how many pages from
a document are to be printed on paper. This can vary from 1 page per
document to 16 pages per document.

The page preview changes upon the users selection.

Also included in the patch is an option to choose the flow for text.
Users
can now print documents in the "Right to Left" order or "Bottom to Top",
including many other options.

[ChangeLog][QtPrintSupport][QPrintDialog] Added support for setting CUPS
Pages Per Sheet and Pages Per Sheet Layout options

Change-Id: I4e60a4523c6e06d4c15fe9ee9590248fa7ae2038
Reviewed-by: John Layt <jlayt@kde.org>
2013-09-20 00:50:04 +02:00
Mitch Curtis
438912f273 Revert 15da0a5af2.
It apparently breaks users' applications.

Task-number: QTBUG-33487

Change-Id: Iaeceb3a02b5c7b9ab839c14693aaffcdf9394bc6
Reviewed-by: John Layt <jlayt@kde.org>
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-09-19 14:58:27 +02:00
Jan Arve Saether
89294d04e2 Specify valid values for QScrollArea::setAlignment()
Change-Id: If0c19d83d97fd218fc79f44421e16ca362964e8f
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-09-19 14:56:04 +02:00
Frederik Gladhorn
b449791c35 Make Accessibility public
There is no point in having QAccessible2, so merge it with the normal
QAccessible. The header will be removed in a subsequent commit as it is
still needed by declarative at this point in time.

Change-Id: I1fc47d484d482f25387eba827bc5a373536b7a8b
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-09-19 14:55:19 +02:00
Eskil Abrahamsen Blomfeldt
580d816bb8 Android: Add tokens for androiddeployqt in template files
Make it possible for the androiddeployqt tool to replace certain
parts of the template with data from the .pro file.

Task-number: QTBUG-32856
Change-Id: Iaedd2076bc1ea5dac0b94624c0ba3a755d2a08f3
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
2013-09-19 14:50:42 +02:00
Eskil Abrahamsen Blomfeldt
a6f1123fe5 Add qmake generation of Android deployment settings
This outputs a json file with the necessary settings from qmake
so that an external build tool can easily get the settings without
having to parse the entire .pro source. Used by the androiddeployqt
tool.

Task-number: QTBUG-32856
Change-Id: I5d3ac0ab6a0350162d06b0a0bf0c9bcbd90d8b5a
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-19 14:50:36 +02:00
Stephen Kelly
4c83183e71 MetaType: Add assignment operator to the container iterators.
Change-Id: Ib4f2197a0ab6bd41c91de667cd3087fb40e44097
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-19 09:05:56 +02:00
Andrew Knight
09f9c6e1b9 Don't automatically create a platform window on content orientation change
The platform window creation is policy is such that native resources are
created only when necessary. Since QWindow already tracks
contentOrientation, there is no reason to implicitly create a platform
window when a content orientation change is reported. This makes
content orientation follow the same convention used by windowState.

Change-Id: Ic9920360791e3e5b2abbc36df631a3e53931835b
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-19 08:53:44 +02:00
Andrew Knight
1a334f8135 ANGLE: Update to version 2446
Update ANGLE and reapply patches.

Patch changes:
"Dynamically resolve functions of dwmapi.dll"
  Removed; ANGLE no longer uses DWM API
"Make it possible to link ANGLE statically for single-thread use"
  Avoid name collision by using ANGLE-style getCurrent()
"Fix build when SSE2 is not available."
  Added guard for __cpuid(), which is not available on ARM
"Make DX9/DX11 mutually exclusive"
  Adjustments due to underlying code changes
"ANGLE: Avoid memory copies on buffers when data is null"
  Removed; fixed upstream
"Add missing intrin.h include for __cpuid"
  Removed; fixed upstream

Change-Id: I4f3d850fc555d3194ddc05e0b51c4966d33f7eaf
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-09-19 08:53:35 +02:00
Martin Smith
d84ed9a92a qdoc: Documentation for property groups is back
This bug was marked fixed and closed, but I'm not sure
it was ever completely fixed. The qdoc commands for QML
property groups were not being processed, so although
the property group and its sub-properties appeared on
the page, the documentation text for the property
group and its properties was never written to the HTML
file. This has been corrected with this update.

Task-number: QTBUG-32341
Change-Id: I5b33ab512a53456379c52236496fb7bc74850842
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-09-18 11:28:28 +02:00
Fabian Bumberger
aed9a8d49b Split QQnxWindow into QQnxEglWindow and QQnxRasterWindow
Change-Id: I2fb4096ccca54fa6631aa16c9b8d1308b0a6b918
Reviewed-by: Sergio Ahumada <sergio.ahumada@digia.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2013-09-18 11:28:26 +02:00
Jan Arve Saether
e39d629ebe Include hidden headers in trees and tables consistently
There was a disagreement between the a11y plugin and QTreeView
whether the horizontal header should have been exposed or not.
When the header was hidden, this resulted in that we sent an event
with a child id that was wrong, or in worst case higher than
QAI::childrenCount(). This was the reason we got the warning
output as described in the task.

With this commit, we consistently *expose* hidden headers both for
QTreeView and QTableView, but ensure that their state().invisible is
set to true instead.
This makes it consistent with how hidden cells are exposed.

This also fixes a bug in QTableViewPrivate::accessibleTable2Index
where we always added 1 to the index, which was spotted while
writing the test.

Task-number:  QTBUG-33247

Change-Id: Ifd1f83d56296dd071424fdb81fce7628bc24fe0a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-09-18 11:28:22 +02:00
Scott Deboy
af61b7312e Resolve error caused by server-initiated TLS renegotiation
Updating the SSL_write code to correctly handle
SSL_ERROR_WANT_WRITE and SSL_ERROR_WANT_READ, which are not actual errors.

Change-Id: Icd7369b438ef402bf438c3fcc64514a1f9f45452
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Richard J. Moore <rich@kde.org>
2013-09-17 23:13:05 +02:00
Kamil Trzcinski
898b8d05c5 qmake: added WMAppManifest generation for winphone target
Platform specific qmakespec needs to enable: autogen_wmappmanifest and winphone. Manifest will be generated once and only for the application template.

The Manifest will generated from following variables:
* PRODUCTID - the GUID (application specific)
* PUBLISHERID - GUID (publisher specific)
* TARGET - short application name (executable)
* AUTHOR
* PUBLISHER
* DESCRIPTION - application description

Change-Id: I225c24dc256c57451775e37658080e88b842a7d8
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-17 23:09:24 +02:00
Laszlo Agocs
ff7b57bbb9 Use egl.prf in xcb instead of hardcoding -lEGL
Task-number: QTBUG-33494
Change-Id: I55df1acdf2c95f66a93890b4b30f14a52bee6684
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-17 14:57:12 +02:00
Laszlo Agocs
ba20945c0f eglfs: Do not leak the QOpenGLShaderProgram instance
Change-Id: Ia0691b99d57986328b9dd81e527ea4f402d7bc5b
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-17 14:57:08 +02:00
Laszlo Agocs
2b20ed5af4 eglfs: Sanitize the X11 hooks
Replace all xlib calls with xcb equivalents, leaving only the
absolutely required xlib calls. Handle WM_DELETE_WINDOW so that
closing the window exits the app as expected. Finally, introduce
EGLFS_X11_FULLSCREEN to enable requesting a fullscreen native window.

Change-Id: I8c46ae832d38549ec7d673592f400a4f34bf4314
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-17 14:57:03 +02:00
Martin Gräßlin
9c3b79200b Export x11 screen of the QXcbConnection to the native interface
With XCB a client cannot retrieve the information on which X screen it
is running. This information is only available when opening the xcb
connection. As this is done by Qt no application is able to retrieve
this information. By exporting the x11 screen we can provide this
information again in QtX11Extras.

Change-Id: I50f1d3e803dc7e3afac0e5c7f1648ccda4502e7c
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2013-09-17 14:35:59 +02:00
Martin Klapetek
75ffb131ed Add CUPS Page Set options to print support
Adds combobox to select CUPS Page Set option (even/odd pages) into the
Unix print dialog

[ChangeLog][QtPrintSupport][QPrintDialog] Added support for setting CUPS
Page Set (even/odd pages only) in the print dialog.

Change-Id: I27dd846f58c164039fe2759064aafdf726a1287e
Reviewed-by: John Layt <jlayt@kde.org>
2013-09-17 14:24:48 +02:00
Stephen Kelly
f098148ebc Fix extension of static plugins
Change-Id: I2656746cbc93a0912bb844fab7d466da39997867
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-17 14:05:34 +02:00
Stephen Kelly
39baade304 MetaType: Fix memory leak of QAtomicInt.
Change-Id: I04c87c4caeb96c820c4d332a803cb2824fea5891
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-17 14:05:21 +02:00
Stephen Kelly
2af188c6d0 MetaType: Fix operator{++,--}(int) with the type-erased const_iterators.
Similar to commit 8b062418 (MetaType: Fix operator{+,-}(int)
with the type-erased const_iterators., 2013-09-11), explicitly
create a copy of the iterator and intialise it.

Change-Id: I8b9edef40ca00c826f72768cba4a0992e55371f8
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-17 14:05:01 +02:00
Marc Mutz
bcb68461c9 QMap: don't dereference nullptr II
root(), leftNode() and rightNode() can be nullptr.
These pieces of code happened to work because the first thing lowerBound()
does is

   Node *n = this;
   // ...
   while (n)
     // ...

But that is _after_ dereferencing nullptr, which is undefined behavior.

So, check first, then deref.

This is the completion of I9137bf6e21014cd68404a7e49a748910b1d768cf:
all uses of root(), leftNode() and rightNode() have now been manually checked.

Change-Id: I3fcb958af9362104f94d6eea9c62da2ae07f1d5e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-17 09:31:35 +02:00
Marc Mutz
250190b39b QMap: don't dereference nullptr
root(), leftNode() and rightNode() can be nullptr.
These pieces of code happened to work because the first thing lowerBound()
does is

   Node *n = this;
   // ...
   while (n)
     // ...

But that is _after_ dereferencing nullptr, which is undefined behavior.

So, check first, then deref.

Change-Id: I9137bf6e21014cd68404a7e49a748910b1d768cf
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-17 09:31:25 +02:00
Kai Koehne
bc9c03a550 Remove mentioning of 5.0 Alpha from QPA Readme
While at it, I hope that qplatformtheme API's are stable
by now :)

Change-Id: I83bf3118c91608710bb19380458e8f55cb3d427b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-09-17 09:31:19 +02:00
Kai Koehne
03951bd3ff Fix name of argument in documentation
Change-Id: Ia137f75865390f4bbabd65c75ba81ac4bba93eba
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-17 09:30:54 +02:00
Thiago Macieira
cfa5c1698d Fix the C++11 and GCC-atomic intrinsics when not using GCC
Both Clang and ICC complain about the use of those atomics when used
with a forward-declared pointee. GCC doesn't, which makes me think
it's a GCC bug.

When using QBasicAtomicPointer<Foo> with these atomics, the _q_value
member causes the instantiation of QAtomicOps<Foo>, which causes the
instantiation of the regular member function
QAtomicOps<Foo>::fetchAndAddRelaxed. The problem is that function
takes a QAtomicAdditiveType<Foo>::AdditiveT as parameter, which
requires sizeof(Foo). Clang 3.3 and ICC 14 correctly expand and
complain. GCC 4.7-4.9 apparently don't.

The fix is to apply the same trick we used for the other atomics:
change all ops functions (including fetchAndAddRelaxed) to be member
templates. That way, they can't be expanded until the actual use.

Clang errors:
qgenericatomic.h:73:33: error: invalid application of 'sizeof' to an incomplete type 'QMutexData'
qatomic_gcc.h:136:48: note: in instantiation of template class 'QAtomicAdditiveType<QMutexData *>' requested here
qbasicatomic.h:272:22: note: in instantiation of template class 'QAtomicOps<QMutexData *>' requested here

ICC errors:
qgenericatomic.h(73): error: incomplete type is not allowed
    detected during:
      instantiation of class "QAtomicAdditiveType<T *> [with T=QMutexData]" at line 111 of "qatomic_cxx11.h"
      instantiation of class "QAtomicOps<T> [with T=QMutexData *]" at line 272 of "qbasicatomic.h"

Found-by: Tor Arne
Change-Id: I9b10648cd47109a943b34a4c9926d77cd0c4fe12
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-17 03:07:09 +02:00
Thiago Macieira
a33d9351a8 Remove useless code setting but not using variables
Clang 3.3 found a variable assigned to itself, probably to cause
GCC to shut up about a variable set-but-unused. So simply stop
assigning the value at all to this variable.

qxcbxsettings.cpp:155:16: error: explicitly assigning a variable of type 'uint' (aka 'unsigned int') to itself [-Werror,-Wself-assign]

Change-Id: I74ae8f724e87c1b3f6b9d358e13d6a440ff4a3e1
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2013-09-17 02:57:08 +02:00
Dario Freddi
90005fae17 qeglfshooksrpi: update vc_dispmanx_element_change_attributes
Remove the extern prototype as it's now defined in latest
firmware headers correctly. Moreover, the signature of the function
changed. This patch fixes both issues.

Change-Id: I0114b436dbaf5a171e6429a1e3760e292c7152cf
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2013-09-16 23:46:39 +02:00
Dario Freddi
76b06f993e QObject: allow connecting to functors with a receiver object
Up to now, it was only possible to connect to functors in a direct
way, without being capable of using Qt::ConnectionType. This patch
allows for specifying a receiver for Functors and function
pointers, hence making it possible to specify effectively the
connection type.

To do this properly, it was needed to add an enum in FunctionPointer
representing whether the considered function is a member function
or not, to reduce ambiguity upon overloaded calls.

Moreover, now senders are checked for the existence of a slot obj
as well. This way, should the context be freed, the slot obj and
the functor contained in it will be freed as well.

On a side note, connecting to a static slot
(like QCoreApplication::quit) specifying the receiver object is
now compiling.

Change-Id: I46474099413b1dc6ca4db9934191d469baeef070
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-16 23:46:30 +02:00
Tor Arne Vestbø
ae577e6b8f Don't use ARMv5/6/7 atomics on 64-bit ARM, as they are AArch32 specific
Change-Id: I0c359e62a8cbf560691019187f316561bddbee52
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-16 23:19:26 +02:00
Tor Arne Vestbø
51da240149 Don't use Mac OS X QCollator backend on iOS
We don't have CoreServices on iOS, which hosts the UC* APIs.

Change-Id: I95b1b173e57665c2fc2cdc1701f8ad57cdc0e567
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-16 23:19:06 +02:00
Tor Arne Vestbø
410e9cd5b1 Add support for ARMv8/ARM64 to qprocessordetection.h
As used by the upcoming iPhone 5S' A7 SoC.

Change-Id: I276dc739c2565bce23fb1a12c9470dcd311e67ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-16 23:18:59 +02:00
Marc Mutz
15c384f82f QDateTime: fix unused function warning on non-Windows
Change-Id: I8fbf1f8b0ebfdf58cd72c724326227dc1610e746
Reviewed-by: John Layt <jlayt@kde.org>
2013-09-16 22:58:44 +02:00
Konstantin Ritt
36e768cd71 Un-export qt_registerFont() internal function
QPlatformFontDatabase::registerFont() method must be used instead.

Change-Id: I80aa5567a748a980f689c90125f8bcc20c304ee2
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-09-16 20:25:06 +02:00
Alan Alpert
b674b15dff Add QFileSelector API
For easy cross-platform and cross-device UIs, automatic asset swapping
based on filename is being developed. This API provides the logic for
the swapping, so that applications can use it themselves with the same
logic as any automatic swapping done in application templates.

Selector set is initially minimal, aiming for just platform selection
and enabling a common selection mechanism for Qt platforms to use.

Change-Id: I219517d740fa7385e923a9e09cb7e241378f857a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-09-16 19:42:22 +02:00
Olivier Goffart
4b02585f30 Fix spelling in Q_STATIC_ASSERT in qobject_cast
Change-Id: Ibc2b1296bf7eb20e41c1af044797a9a026bed369
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-09-16 15:36:59 +02:00
Martin Smith
433f2315ac qdoc: Now reports duplicate page titles better.
Currently, qdoc reports duplicate pages, when it should be reporting
duplicate page titles. Sometimes the duplicate titles actually refer
to the same page, but often they are different pages with the same
title. This update changes the error message to better indicate that
two identical page titles were seen.

A further complication was that the qdoc warnings for these duplate
page title errors were useless when the duplicates were in different Qt5
modules, because the support for file location information in the qdoc
index files was inadequate. This update adds better location information
to each section in the index file. This makes the index files bigger
and will increase qdoc runtimes, hopefully not too much.

Task-number: QTBUG-33506
Change-Id: I35db3c5e1551b9ef748d63377e94453da80c1e26
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
2013-09-16 15:35:33 +02:00
Tor Arne Vestbø
4bae7158d3 Don't send posted events from QWindowSystemInterface::sendWindowSystemEvents
The responsibility of sendWindowSystemEvents() is to process events from
the window system. Historially that logic was part of the QPA/QWS event
dispatcher, which naturally also sent posted events. Through refactoring,
the code at some point ended up in in the QWindowSystemInterface class,
still with the posting of events in place.

This resulted in QPA event dispatchers adopting a pattern of just calling
sendWindowSystemEvents(), as that would cover both posted and window system
events. Other event dispatchers would call sendWindowSystemEvents(), and
then use a base-class implementation from QtCore for processing events,
resulting in two calls to QCoreApplication::sendPostedEvents() per
iteration of processEvents(). This breaks the contract that processEvents
will only process posted events that has been queued up until then.

We fix this entanglement by removing the sendPostedEvents() call from
QWindowSystemInterface::sendWindowSystemEvents() and move it to the
respective event dispatchers. For some EDs it means an explicit call
to sendPostedEvents, while others were already doing sendPostedEvents
though a separate source (GLib), or using a base-class (UNIX/BB), and
did not need an extra call.

We still keep the ordering of the original sendWindowSystemEvents()
function of first sending posted events, and then processing any
window system events.

Task-number: QTBUG-33485
Change-Id: I8b069e76cea1f37875e72a034c11d09bf3fe166a
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-09-16 15:22:40 +02:00
Shawn Rutledge
4c19055cb1 remove unnecessary beginPaint and endPaint overrides
QPlatformBackingStore::endPaint does not take a QRegion parameter.
6ce6b8a378 set the API, but the
platform implementations were not all synced up since then.  There
was anyway no point in overriding beginPaint and endPaint on
platforms which don't need to do anything there.  This fixes
clang warnings of the form
QXcbBackingStore::endPaint hides overloaded virtual function

Change-Id: Id6cd0fc2c831a34576ac2c73eeb0d5741d26e622
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-09-16 15:21:40 +02:00