Commit Graph

3080 Commits (a7e58bf253d08b896df3bbf247bbbaae718e426d)

Author SHA1 Message Date
John Layt 27c33a8f7a QPrintEngne - Fix PPK_Creator
Add support to the Mac and Windows print engines to preserve the
creator name when switching between native and pdf format.

Change-Id: Ie036af3140f24d8e34aa886f091384f93aa0157b
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-05 19:33:59 +01:00
John Layt 0ee72b09fd QPrintEngine - Fix PPK_CollateCopies
Mac supports Collate Copies using native api, so add support.  Note
this is mostly only useful for setting the print dialog default, as
Mac supports server-side multiple copies so the app will never need to
collate the copies itself.

Change PDF and Windows to default to collate true to match Mac as this
is the behavior users expect.

Task-number: QTBUG-27724
Task-number: QTBUG-35251
Task-number: QTBUG-22144

Change-Id: Ia43dbc260b3a71aa5b267cca54c168ffbea794fc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-05 19:33:54 +01:00
John Layt 27473f19bb QPrintEngine - Fix PPK_DocumentName
Add support to the Mac print engine for set/get the Document Name using
the Job Name setting. Our documentation states this is one use that the
document name will be put to so is appropriate to be used.

Change the Windows print engine to default to a blank Docuemnt Name
consistent with the other print engines. If still blank when printing
then use a default value.

Task-number: QTBUG-27724
Task-number: QTBUG-22144

Change-Id: If590811b5720e6f759eabc290b578b94e221f9f4
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-05 19:33:50 +01:00
John Layt 053bee8b80 QPrinter - Clean up Print Engine Key defaults and tests
The PrintEngine keys are not consistently treated across the platforms
and are not properly tested.  Start the process of making the print
engines behave consistently by documenting and testing the current
behavior. Ensure all unsupported features return a consistent
default value.

The auto test for valuePreservation() has been flaky depending on the
platform and installed printers so remove it and replace it with more
complete testing.  If no native printers available then don't test
the native engines.

Fixes for the individual inconsistent keys will follow.

Task-number: QTBUG-26430

Change-Id: Iab914d7e0a5ae4a2cdc24c8645751f0910cf440c
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-05 19:33:42 +01:00
Frederik Gladhorn 760ad40700 Make QWindowContainer accessible
Change-Id: I93451b8842648db0815c96d64d319daecb45f0de
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-02-05 13:33:47 +01:00
Rafael Roquetto bb9dd25843 QNX: fix wrong coding style
Change-Id: I84b166ee528b7d586f1901e6bfda999ef698c3fd
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-02-05 13:07:00 +01:00
Thierry Bastian 4c173e96c1 Adds the ability to not have an activity on Android
That code allows for not having an activity on Android.
In my case I've made some java code to handle an Android service.
The code is mainly about not dereferencing null pointers.

Change-Id: Ia7fda03cbbc55e6afeacd928445a4b72b51c679e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-02-05 09:19:38 +01:00
Friedemann Kleint 09e53c8b6e Plugin minimalegl: Remove superfluous keys() function.
This is no longer needed in Qt 5.

Change-Id: I10a2b893fdc822a526abc19c3d1f0f2538de0d83
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-02-05 08:50:19 +01:00
Liang Qi 839997adfa Cocoa: fix single punctuation input via CJK input method
2d05d3bd28 was not correct.

On OS X, when user uses CJK input method, only types single punctuation,
it was converted to CJK ones, and not showed in composing text.

Task-number: QTBUG-35700
Change-Id: I2d1063d2f837d075929dc5ebb5722fdefc6ee0f6
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-05 02:35:11 +01:00
Morten Johan Sørvig d01f0213b8 Cocoa: Establish pattern for accessing globals
Use a static QCocoaIntegration pointer instead of
QGuiApplication. This removes the need to call out
of the platform plugin as well as the casting from
"platform" to "cocoa" types.

Change-Id: If432b3567811223b73a67548e475e07d63635b73
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-04 22:59:04 +01:00
Maurice Kalinowski eba56a35e3 Add suspend and resume event handling for WinRT
Task-number: QTBUG-35952

Change-Id: Icb4edb0f55c1d02dfbb5501df311b0fff87d2dc1
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-02-04 13:56:18 +01:00
Konstantin Ritt 19463c5c3f Fix character mirroring issue with HarfBuzz-NG
HarfBuzz-NG does character mirroring where appropriate.
A simple solution is to unset RightToLeft shaper flag when
text gets shaped with HB-NG. Instead, move the mirroring code
right to HB-old proxy function and decrease code duplication.

Change-Id: Icdcd50b73b3e6a43da4b85addc7d8f51edf86512
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-02-04 13:37:14 +01:00
Samuel Gaist 6d48df83ab Clean up QXCBSessionManager
Removed useless overrides and inline simple functions.

Change-Id: I69df0ec8446fe2c8bb904c7d4d9cc2e1d269533b
Reviewed-by: Teo Mrnjavac <teo@kde.org>
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-02-03 21:55:50 +01:00
Friedemann Kleint 0e16bf01a5 Windows: Silence QWindowsOleDataObject::GetData().
Change-Id: Iad97a35af334f951f56a7bf02ec1bf2873901aa1
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-02-03 17:21:47 +01:00
Shawn Rutledge 64d95e3df2 OSX: FileDialogHelper uses options to remember the selected filter
Task-number: QTBUG-35958
Change-Id: I998cf93232e79f70837cfa8f63592b69ea0dc563
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-02-03 07:49:51 +01:00
Fabian Bumberger c1c5aca6f1 [QNX] Handle the case when an egl surface can not be created
If an egl surface can not be created (e.g. when out of memory) the
application should not crash. In this case we will not be able to make
the egl surface current and have to return false in the makeCurrent call
in QQnxGlContext.

Change-Id: If9b5a82a0f64dc0a42bee687d351bea43fb05d51
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-02-02 14:40:44 +01:00
Fabian Bumberger 74d84f32da [QNX} Remove adjustBufferSize from the egl window
setGeometry will adjust the buffer for an egl window when a egl surface is created.
Adjusting the buffer somewhere else can be potentially harmful. Another reason is that
every egl window has a buffer on its own (unlike raster windows) so we do not have to
check if we have to create a buffer after reparanting.

Change-Id: I01406867a0dab598dac7d86e1f1e28ca9736a299
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-02-02 14:40:41 +01:00
Fabian Bumberger 29cd7db616 [QNX] Fix crash when creating eglSurface
Change-Id: I9cf9d56003a5f237dcf00b621fddf74e8d0ca190
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-02-02 14:40:35 +01:00
Louai Al-Khanji 8d38c0f6d6 Move Direct2D paint engine on top of QPaintEngineEx
Make QWindowsDirect2DPaintEngine a subclass of QPaintEngineEx instead of
QPaintEngine like the other paint engines inside Qt. This should both be
faster and better supported, as the code paths handling QPaintEngineEx in
QPainter are tested more.

Additionally the visual output is closer to the raster engine, as all
primitives are drawn using the same mechanism, resulting in fewer
off-by-one-pixel errors.

This change also makes designer work mostly correctly, apart from some
remaining clipping bugs.

Change-Id: I53d36c08e73883ff35e389d57f9d30b482fc6721
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-31 14:51:48 +01:00
Gabriel de Dietrich 79fb39a87c Cocoa: Merge QNSWindow and QNSPanel, inherit NSPanel
Since we will later have frameless NSWindow child QWindows, it makes
sense to be able to keep and reuse the instantiated NSWindows in cases
like QDockWidgets. If we keep these 2 different classes, it becomes
impossible to morph one into the other.

Task-number: QTBUG-33082
Change-Id: I351c628b887101b1cfd67689afbf689f119554de
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-01-31 14:43:54 +01:00
Samuel Gaist 85ff4e8fe4 Upgrade Window Level for stay on top widget on OS X
Currently setting the WindowStaysOnTopHint makes the window appear over
its children e.g. a QMessageBox.

This patch aims to provide a more sensible level for stay on top widget

[ChangeLog][QtWidget][OS X] Fixes an issue where stay on top widgets
would cover their own children

Task-number: QTBUG-36178
Change-Id: Ie86b0e0244d2fdee3638d4ab576445ef190d4bc6
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-31 12:24:10 +01:00
Friedemann Kleint de27b71c19 Windows: Fixed alert sound of QMessageBox.
Task-number: QTBUG-33303

Change-Id: I184f169a2ae0e1fa5e21b906c1f7659316030b34
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
2014-01-31 12:07:59 +01:00
Laszlo Agocs 6953f3a501 eglfs: Mouse hotplugging support
On Embedded Linux with libudev support hotplugging was already working,
except that the mouse cursor was not shown and hidden. This is now
corrected so that the cursor disappears when all mice become disconnected
and reappears if a mouse gets plugged in later on.

[ChangeLog][QtGui] Mouse hotplugging is now fully supported in eglfs
when running on Embedded Linux systems with libudev support enabled.

Task-number: QTBUG-36374
Change-Id: Iec7c1557ba6085e3958dd357460cc032896fb174
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra 231cac6119 Disable the rendering profiling
Change-Id: Ia2d6216104c66a4b2e7bfb36418c13eaa51f55e9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra 25d5b2e07b Fix the repaint position.
The geometry is used to set the dirty region of the screen, so it must be
translated in screen coordinates.

Change-Id: Ic559a0a0d0e840cb2aa27ae1b02dcc140b29556f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra 630d74a40c Don't add/remove/lower/raise children windows to the TLW stack.
Change-Id: I4fe6b05fe2a7d6de7c8ecaf9934fd8e285b2c64e
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra 37355965c2 Fix repaint of transparent images.
Remove the native bitmap and paint directly on the surface instead.

Change-Id: Ie7010d97aa934a170c079de549903fc3391df4d9
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra 5096355f0a Fix surface leak, cleanup opengl window.
ANativeWindow_fromSurface already acquires the surface, no need to
call ANativeWindow_acquire.

Remove unused variables.

Change-Id: I563573072687927256aef76fab20f645f35778a2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra b86f7c1c8e Sort include headers
Change-Id: Ib987ee7c6e2cfcabd725fde4399c968a11dc0868
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
BogDan Vatra 398f029f62 Shut up setParent warning.
Change-Id: I43af8bf83d3071f7c1d2eff082df5b1414f553b8
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-31 12:07:59 +01:00
Eskil Abrahamsen Blomfeldt 55db6736ac Android: Don't skip first file in assets entry list
We're using AAssetDir_getNextFileName() to verify that the
directory exists and has content, and this moves the
current file pointer to the second file in the dir, so
we need to reset the pointer before iterating to populate
the entry list.

[ChangeLog][Android] Fixed QDir::entryList() for assets
scheme to no longer skip the first file in the directory.

Task-number: QTBUG-36528
Change-Id: I9938c669658330b0e11d6fbe3df8c6566fd79f5f
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-01-30 13:33:06 +01:00
Tor Arne Vestbø 18b7015e86 Add QWindowPrivate::topLevelWindow() helper function
Might be useful to expose to QWindow in 5.3, but for now it's private
so it can be used by platform plugins.

Change-Id: Iad96d7e249a7b85695668f8d7e8918164ec67442
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-01-30 13:29:28 +01:00
Konstantin Ritt e4588b70dd QWindowsFontDatabaseFT: Code deduplication
Re-use a private helper API from QWindowsFontDatabase.
This also helped in consolidating the behavior between these two.

Change-Id: I93ba0a486a2c11fdefd328af090497dde5b0fbdb
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2014-01-30 12:44:23 +01:00
Konstantin Ritt a5614264d5 Get rid of QGlyphLayout::advances_y
...and thus consume 4 bytes less per glyph and increase the performance a bit.
It seems, the only CTFontGetAdvancesForGlyphs() returns both x and y
advances, though y advances are always equal to 0 for horizontal
orientation and x advances are always equal to 0 for vertical orientation.

Also, rename `advances_x` to `advances` for consistency
and declare QGlyphLayout's data size in a single place.

Change-Id: I56b20f893f8a6feb7aa870e3edbca99dd93ba2e2
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-01-30 12:43:33 +01:00
Laszlo Agocs dca65cd2bc linuxfb: Report WindowManagement capability as false
Just like eglfs does. This will result in dialogs, like file dialogs,
showing up properly centered on the screen.

Change-Id: I2682c7792e4bc66773e31f602a4bee4cf525a6a1
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-01-30 12:43:33 +01:00
Frederik Gladhorn 4eea0f1199 Remove unused variable
This fixes clang a clang warning:
src/plugins/platforms/kms/qkmsscreen.h:114:18: error: private field
'm_refreshTime' is not used [-Werror,-Wunused-private-field]
    unsigned int m_refreshTime;
                     ^
                     1 error generated.

Change-Id: I850f676abbde595963373afaf630307042dbf5a7
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-01-29 17:11:29 +01:00
Friedemann Kleint dbda292d2f Windows: Simplify cursor code.
Streamline code, remove unused arrays
(Qt::PointingHandCursor is handled in other switch-clause).

Task-number: QTBUG-36266

Change-Id: I533965ca4910230deefa8150d50b3ac677baaf1a
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-29 00:18:15 +01:00
Fabian Bumberger fc24452fbf [QNX] Implement the requestActivate function
This allows manually transferring focus from one window to another, if the
application has focus.

Change-Id: If73ddca6ffbb735eaf4ee9fd322d978f9366fb4c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-01-29 00:18:15 +01:00
Bernd Weimer b709d07c34 QNX: Cleanup some issues in QPA
* Avoided crash, if root window is reparented
* Corrected video window name
* Made parent window member private again

Change-Id: Icef9fad5495413e0de87c4366f25dad6c4fd5775
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-29 00:18:15 +01:00
Friedemann Kleint 8545ba9366 Fixed Drag and Drop driven by touch-synthesized mouse events.
When dragging by touch driven by synthesized mouse events, the cursor
is suppressed. Use a popup window to show the drag cursor instead.

[ChangeLog][QDrag][Windows] Fixed Drag and Drop driven by touch-synthesized mouse events.

Change-Id: Id8c1aab79a091c89986ee7ee62ded44a3267fd3f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-28 19:33:16 +01:00
Fabian Bumberger a46198a7b3 QNX: Create the egl context according to the version in QSurfaceFormat
Change-Id: Iee556d51ad1d7db2593e3996da4d90d938d13e17
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2014-01-28 19:33:06 +01:00
Fabian Bumberger b8103a4e81 [QNX] Introduce proper screen error handling
This patch adds a new function which does the error handling for libscreen calls.
The patch introduces following changes:
- Libscreen errors will not crash (qFatal)the application any more but rather post a
warning message.
-With the "flush-screen-context" option the screen_context is always
flushed when a screen function is called. This enables better correlation between the
time an error happens and the time it is logged.

Change-Id: Ie2456e5b746dcf917d786f3b832847d2ebbe5f1e
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-01-28 19:32:53 +01:00
Morten Johan Sørvig c58c98a248 Cocoa: Silence tablet event warning on 10.6
10.6 sends tablet events for trackpad interaction,
but not proximity events. The reason for this is not
known. The events are discard.

Silence the warning to avoid flooding the console.

Change-Id: I6c215e8c15fc5b4b80e68b00f172121fc4d251b7
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-28 14:39:37 +01:00
Friedemann Kleint 97bc287782 QWindowsCursor: Add API for determining the cursor state.
Detect the 'suppressed' state new in Windows 8.

Change-Id: I0faa994aa7b91869cedba36b777b1784818efcce
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-28 13:40:55 +01:00
Friedemann Kleint 245e630cfd Windows: Refactor QWindowsOleDropSource.
Introduce a struct CursorEntry for the cursor map which also contains
pixmap and hotspot required for follow-up changes. Streamline code
in createCursors(). Fix cacheKey checks in GiveFeedback() to trigger
for non-zero keys only.

Change-Id: Iafcbfd9ec9e8c6ae8bbaced21667887b10b47f23
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-28 13:40:50 +01:00
Frederik Gladhorn c30fc6949a Merge remote-tracking branch 'origin/release' into stable
Change-Id: I4680723bef393a15d5aa63b9dd7d5fbb599bd9fa
2014-01-27 18:58:04 +01:00
Louai Al-Khanji bd9e1f3915 Improve direct2d backing store implementation
Add a per-window swap chain to a QPlatformWindow subclass instead of tying
it to the backing store. This is needed to support native widgets (as
opposed to alien widgets).

Change the backing store to draw to an intermediate pixmap and flush to
the requested window by using the per-window swap chain. This also opens
the door for faster window presentation later on by using the swap chain
more intelligently.

Also add a changelog entry for the direct2d plugin, which was omitted
earlier.

[ChangeLog][QtGui][Windows]
Introduce experimental direct2d platform plugin for Windows. This plugin
shares most code with the current windows plugin, but substitutes a
direct2d-based paint engine for window backing stores and pixmaps.

Change-Id: I5f54e7e4c1fb15b1639bd26b712fb40ac141e4ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-27 09:09:13 +01:00
Shawn Rutledge aac064b1c7 X11: build again on Linux distros that don't have XInput 2.2
fixed1616ToReal is needed by the XI2 tablet event debugging added in
ecf11d62fc, so it needs to be available
if tablet events are supported and XI 2.2 events are not (older Linux
distros).

Change-Id: Id763d585790a9f037abc408dfba4ab5eec6dd421
Task-number: QTBUG-36437
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Wolfgang Bremer <wbremer@blackberry.com>
2014-01-27 08:15:39 +01:00
Laszlo Agocs a9f59f981d Disable terminal keyboard on eglfs and linuxfb
Unify the behavior for eglfs, linuxfb and kms. The relevant code is
now moved from kms into fbconvenience.

From now on, on all three platforms, terminal keyboard input is turned
off by default. This feature can be disabled by setting
QT_QPA_ENABLE_TERMINAL_KEYBOARD to 1. This is similar to what the
evdev-based keyboard handler did in QWS in Qt4.

[ChangeLog][QtGui] The main Embedded Linux platform plugins (eglfs,
linuxfb, kms) are changed to behave identically with regards to
terminal keyboard input: it is turned off by default on all of these
platforms. If this feature is not desired, it can be disabled by
setting the environment variable QT_QPA_ENABLE_TERMINAL_KEYBOARD.

Task-number: QTBUG-36394

Change-Id: I69e47ed7580464dc5e703e9a0e23891c7c8b7790
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-01-24 15:31:51 +01:00
Laszlo Agocs e02bda2105 eglfs: Fix physical screen size regression for some hooks
On boards that provide their own custom ways of querying the screen size
the resolution of widget apps became somewhat incorrect after the recent
eglfs/eglconvenience refactor. This is because the physical size query
helper was not able to access the screenSize() provided by the hooks,
it was instead falling back to the default fb query which in turn returned
the default screen size (e.g. 800x600).

Change-Id: I46d487b61341d69dd9cb76d93198b1f44b64f195
Reviewed-by: Andy Nichols <andy.nichols@digia.com>
2014-01-24 15:20:18 +01:00
Friedemann Kleint b87106811e Windows: Reconstruct MSG-structure properly.
The MSG structure is supposed to contain screen coordinates of the mouse
position. Use GET_X/Y_LPARAM for mouse events and transform for
client coordinates. Use GetCursorPos() for other events.

Task-number: QTBUG-36337

Change-Id: I3ad4de20e1a460ee58f22645a4339a2444d129ed
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-24 11:31:19 +01:00
Friedemann Kleint 13cbcff097 Windows: Remove unused function QWindowsBackingStore::rasterWindow().
It was only used to access the QWindow which can be retrieved
using QPlatformBackingStore::window(), potentially causing a crash
when  QWindowsBackingStore::resize() was called before the window
is shown.

Change-Id: I7c1bfce0f2c371d5d8847fd15fd1dc760b769a8f
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-24 11:11:18 +01:00
Louai Al-Khanji 413129e207 Fix Q_ASSERT in direct2d qpa plugin
When calling end the refcount should be greater than zero, as calls to
begin/end should match.

Change-Id: I49adbf6f9f1c21cb60985ba4e02574e6c0841b74
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-24 05:54:28 +01:00
Samuel Gaist 73b54f85c5 Cleanup of the android clipboard handling
Currently there's an unguarded class member for the clipboard, allocated
but unused and not deleted in the destructor. The getter creates a
static clipboard allocated on the heap. This patch aims to add the
missing guards as well as use the class member.

Task-number: QTBUG-36025


Change-Id: I86969390eebcd67b65707e3ecbd4b3be15c7dadb
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-01-23 22:15:13 +01:00
Jorgen Lind eeff8f7e74 Silence failed xcbxsettings initialization
also add a boolean flag indicating if xsettings is initialized and can
be used

Change-Id: I9dae83b8fef224171744d2b940767cbf54ce4f55
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-23 19:18:35 +01:00
Bernd Weimer 506c34fdd2 QNX: Fixed window opacity
Opacity was not set initially and not committed to libscreen when
changed.

Change-Id: Icf24be833de28bd72275cf93a3ab2fb344726023
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-22 20:46:32 +01:00
Gabriel de Dietrich 3fadd88f30 Mac Style: Fix non-native menubar item spacing
Unfortunate consequence from inheriting from Common style instead of
Windows style.

Also, a font entry missing in QCocoaTheme.

Task-number: QTBUG-36224
Change-Id: I560494b1727734671478f70ee1ba800d21c916ca
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-01-22 14:00:46 +01:00
Friedemann Kleint 74fc422985 Windows: Observe Qt::NoDropShadowWindowHint.
Task-number: QTBUG-36230

Change-Id: I8a9956c4b0ccd98b92f98107ea6dbbb08b296d09
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-22 13:18:11 +01:00
Friedemann Kleint db51ffc0d1 Port Windows QPA plugin to new logger API.
Introduce logging categories and change most debug statements
to qCDebug().

Retrieve the filter rules from the environment variable
QT_QPA_VERBOSE (should be removed once the logging framework
offers a more convenient way of configuring).

Replace the old per-category variables controlling verboseness
of the output by a single variable which can be set on the command
line.

Change-Id: Iae55ecdb0e150efd165b7d3e90b371f72853f194
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-22 12:12:17 +01:00
Frederik Gladhorn f3bf2efcbd Merge remote-tracking branch 'origin/release' into stable
Change-Id: I885821d93a41b0caad627bfc16aa8eed21d2f5b9
2014-01-22 11:36:01 +01:00
Shawn Rutledge debe31e047 X11: Qt::ActiveWindowFocusReason in QFocusEvent when appropriate
When one window loses focus because another window got it, the reason
should not be Qt::OtherFocusReason.  If it is ActiveWindowFocusReason
or PopupFocusReason, any QtQuick text elements that were in the
window which lost focus will not deselect any selected text.

Task-number: QTBUG-36292
Change-Id: I4630f74e6aacd928284cedab6ed711c95b24bff7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-01-21 21:21:16 +01:00
Frederik Gladhorn 46791c08e1 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-01-21 17:57:54 +01:00
Eskil Abrahamsen Blomfeldt 4c4f336160 Android: Remove debug output from platform window
Some debug info and a #warning had somehow made it through :)

Change-Id: I420a7637bfd5d1a79a342eacefcc35430994feff
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-01-21 14:08:09 +01:00
Eskil Abrahamsen Blomfeldt 909dbb92eb Work around FBO readback bug on Samsung Galaxy Tab 3
Symptom of the error is garbled text in Qt Quick 2, and the
fix has been confirmed to be enabling the texture resize workaround.

Task-number: QTBUG-34984
Change-Id: If6f621b43120c7913cbd33ab326c52ad6e2599bc
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-01-21 11:12:07 +01:00
Liang Qi 09f54e99f2 Cocoa: avoid a crash for cursor in QCocoaWindow
It need to be copied.

Task-number: QTBUG-35887
Change-Id: Ia165e6a8f9dc23733e53e11f9e1e98bf54e7dd20
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-21 07:03:48 +01:00
Laszlo Agocs 6ae1c87c75 xcb: Do not leak when compressing events
The event must be freed in all cases, also when a motion or configure
notify is skipped.

Change-Id: Ie55e62d0c3ab25bd9b20cc85098ea337d0b1ac5d
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-01-20 19:35:06 +01:00
Gabriel de Dietrich 38813a3b32 Use pkg-config to find the prefix for X11 install
Needed to run the XKB extension where we used to expect X11 to be
installed in /usr. In FreeBSD, for instance, X11 is installed in
/usr/local like all the other not out-of-the-box packages.

Same thing goes for the compose platform input context plugin.

Change-Id: Ib7ace3117eaacc6e150394450d1330cba654ba8a
Reviewed-by: Gatis Paeglis <gatis.paeglis@digia.com>
2014-01-20 19:24:39 +01:00
Frederik Gladhorn 9033977d39 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/corelib/tools/qstring.cpp
	src/gui/image/image.pri
	src/gui/image/qimage.cpp
	src/plugins/platforms/cocoa/qcocoawindow.h
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/eglfs/qeglfshooks_stub.cpp
	tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp

Change-Id: I3b9ba029c8f2263b011f204fdf68c3231c6d4ce5
2014-01-20 18:18:59 +01:00
Eskil Abrahamsen Blomfeldt e5e43a2386 Android: Don't crash on 100+ combo box items
Local references are valid until the original native method
returns (if it's a Java thread), or until the current thread
is detached from the VM. This means that we have to manually
manage local references and delete them when they are no longer
in use, otherwise we will leak memory and flood JNI's local
reference array.

[ChangeLog][Android] Fixed crash on populating large combo boxes
or menus.

Task-number: QTBUG-36074
Change-Id: I7095bd1472f759be98183737a8d3912fa9763f30
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2014-01-20 14:38:53 +01:00
Gabriel de Dietrich 1e20115cf0 Make xcb QPA plugin link on FreeBSD
dlopen, etc. are defined in libc on FreeBSD.

Change-Id: Iad47113ec77029f8e300e4f08f454d70b3070b5a
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-20 11:30:09 +01:00
Friedemann Kleint ab2c90cc52 Introduce function for standard button texts to QPlatformTheme.
Change-Id: I91eec04a95b5047d893490a70152237b2991f662
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-01-18 09:23:38 +01:00
Roger Maclean 30e677e2bb QNX: Allow creation of parentless child windows
There is no reason why a parentless window from a Qt perspective needs
to be a screen application window.  There are some cases, such as the
BB10 dialog service whose windows are always parented by a window in
another process.

Ideally one would have a means to indicate a child window was wanted that
had no other side effect (i.e. the rest of Qt would ignore).  The use of
Qt::Dialog is not ideal as some code does pay attention to this type given
the number of bits available for window type, it is not reasonable to add a
new one.  The use of Qt::Dialog seems safe since it is hard to conceive of
a window of type Qt::Dialog wanting to be a top level window.  If in future
it is required to have a parentless, child window that is not of type
Qt::Dialog one can simply define some additional way of signalling this.

Change-Id: Ie7035980ac2efd5bc722a8371c834f21ea7755f4
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-18 04:39:25 +01:00
Roger Maclean f2792a9cf0 QNX: Avoid crashing on exit when have a cover window
QQnxScreen destructor was leaving the cover window to a reference
to it leading to a crash when the cover window itself was destroyed.

Change-Id: Id82097d54fea79b0b9ec1cef439bd704da9ca453
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-01-17 14:32:50 +01:00
Roger Maclean 6e836271fd QNX: Make window groups work reliably
Window group related code worked previously only for the 'root'
window and other windows that had no parents (which then joined
the window group of the root).

Introduced a new function joinGroup that makes the group related
calls, this can both join and leave groups.

Default group joining is performed in setVisible now rather than
setScreen.  The advantage of setVisible is that one can rely on it
getting called at some point but it is also possible to create and
interact with a QQnxWindow before it is called.  This allows
the default group handling to be overridden via the native
interface.  If the group is set (or explicitly not set) then the
default handling is not done.

joinGroup is also called from setParent so that if the parent window
is changed the window joins the parent group.

Change-Id: I03e3801ecb4e4cf901c02e45f00472a87692c2ec
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-17 14:32:36 +01:00
Laszlo Agocs 328f2f9c35 eglfs: Move reusable functionality to eglconvenience
The cursor implementation is generic GL(ES) code that should be shared
by all the present and future egl-based embedded platform
plugins. Follow the pattern of QEGLPlatformContext and move this class
into eglconvenience as QEGLPlatformCursor.

Similarly, the common bits from the context implementation context are
moved back to EGLPlatformContext.

eglconvenience has now base classes for integration, screen, window,
etc. too. By using these, eglfs becomes much smaller and cleaner. This
also paves the way for creating new, separate EGL-based platform
plugins for Android, embedded Linux, etc.

Also added some documentation to each of the base classes.

devicediscovery is now fixed to be usable on any platform. The
implementation in this case is naturally a dummy one. This finally
allows using it from anywhere without myriads of ugly ifdefs.

Change-Id: I02946e360c04e02de7fe234a23a08320eff4ccf5
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-01-17 14:30:48 +01:00
Wolfgang Bremer 93154216ca Fix BlackBerry10 build on NDKs prior to 10.2.1
This commit adds a dependency checking for a recently
introduced define. On NDKs 10.2.1 and later it compiles
with support for VIRTUALKEYBOARD_LAYOUT_ALPHANUMERIC.
NDKs 10.2.0 and earlier do not know this define
and therefore it will be ignored.
This is necessary because there is no newer NDK
publicly available than 10.2.0.
Assuming pure QNX SDKs are missing the define completely,
we are only including it on recent BB NDKs.

Change-Id: I6f814e5c2d77c50edf8534f3567b157f71147555
Reviewed-by: Peter Hartmann <phartmann@blackberry.com>
Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
2014-01-17 12:25:48 +01:00
Gabriel de Dietrich 11442778ed Cocoa Helpers: Add qt_mac_flipRect(const QRect &)
Task-number: QTBUG-33082

Change-Id: If72b2744d3694b3899c124c7a6a6ccc6e6397165
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-01-17 12:22:57 +01:00
Kai Koehne 278152fffd Replace win32-g++ with mingw scope
Commit 773dd01 introduced a general mingw platform scope, which
is cleaner and more flexible than matching the spec name.

Change-Id: Ie3a9cb791a83f7c8a51bc4e23069190c452ab521
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-17 12:08:24 +01:00
Tor Arne Vestbø 64b385a82f iOS: Remove unused file
Change-Id: If082be4b5c50cd5e1d5660bbe26136b9a0ee0352
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-01-17 11:04:36 +01:00
Bernd Weimer 9d4d18a3a8 QNX: Fixed window positioning
Child windows have to keep their relative position when the parent is
moved.

Change-Id: I7d24d67578c9aaa332136d18ad9b478b120e4696
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-17 10:23:55 +01:00
BogDan Vatra 8a9bd001c9 Support multiple native surfaces on Android.
Support for multiple native surfaces is needed by applications that need
to mix raster windows with GL windows.
Rework the raster and opengl implementation, get rid of eglfs and
fbconvenience dependencies.
Create a single android platform plugin.

[ChangeLog][Android] Rework the raster and opengl implementation.
[ChangeLog][Android] Create a single android platform plugin.

Task-number: QTBUG-34650

Change-Id: I9b1ab51554823329dda8cfbf8fef27c38f917c7b
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2014-01-17 10:23:08 +01:00
Bernd Weimer 338f4c9246 QNX: Fixed some window issues
Corrected EGL error code query and cover windows creation in the
"no-rootwindow" case.

Change-Id: I86aaa4b59283f7153f8ab63c5bf231bc9da7538c
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-17 10:22:21 +01:00
Eskil Abrahamsen Blomfeldt a19817082c Use non-threaded render loop on Samsung Galaxy Tab 3
We get EGL_BAD_ACCESS from eglMakeCurrent() on this device, and
only on this device, so we simply work around it by disabling
the threaded render loop.

[ChangeLog][Android] Add workarounds for OpenGL bugs on Samsung
Galaxy Tab 3.

Task-number: QTBUG-34984
Change-Id: I309881f8317473ff87aea2f92d0f6f1b898342d3
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
2014-01-17 09:18:00 +01:00
Oliver Wolff 0c09d2ccb9 Windows: Do not try to update keymap on WM_IME_CHAR messages
Task-number: QTBUG-35806

Change-Id: Ie1082353155aa7ee61f49f2fbcbfdb01d57e797c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-17 09:17:32 +01:00
Eike Ziller e4d6488ffa QCocoaTheme: Fix size of pixmap returned by fileIconPixmap
The code assumed that CGImageForProposedRect would return a sensible
sized image, but that can return basically any size (depending on the
NSImage's image representations). In the case of the bug report this is
a 1024x1024 pixmap when requesting a pixmap of size 64x64 and larger.
Make sure that we return a pixmap of the exact requested size.
For this, themeHint must also return sizes in device coordinates.

Task-number: QTBUG-35009

Change-Id: Iaae11023bab6d4122815ca4010aab6967dfb18a0
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-01-17 09:13:56 +01:00
Andreas Holzammer 5dee237022 [QNX] Set Window usage
Set Window usage prior to use the framebuffer.
For OpenGL windows set OpenGL usage and for
normal painting set it to native usage.

Some QNX libscreen implementations don't set
usage automatically, so we must set this explicitly.

Task-number: QTBUG-35912
Change-Id: I5154c0bcf9c65ef6d47af6a1cf8f17765ccf51dd
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Vladimir Minenko <vminenko@rim.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-01-16 20:39:00 +01:00
Liang Qi 2565ef220b Revert "Cocoa: fix single punctuation input via CJK input method"
This change makes a regression.

This reverts commit a79f8a3a67.

Task-number: QTBUG-36033
Change-Id: Ibcb19cd8631f85c81433c9625bbbf280404db1c4
Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
2014-01-16 20:38:27 +01:00
Gabriel de Dietrich 6cbbd1f93d Cocoa: Popups should not become key
... at least not like that.

We still need to find a way for the popup to receive and process key
events on its own, instead of depending on other layers inside Qt.
This would make Qt Quick control's PopupWindow implementation much
simpler, for example.

Revert "Cocoa: Allow popups to grab mouse and keyboard"

This reverts commit a25e6528d3.

Task-number: QTBUG-35820
Task-number: QTBUG-35904
Change-Id: Ica10529308ab25938397c16b9c1e1ce6cbd8f247
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2014-01-16 20:38:08 +01:00
Laszlo Agocs 87d2fa5f84 eglfs: Allow using a different framebuffer device
Right now /dev/fb0 is hardcoded. This is not ideal. Therefore
QT_QPA_EGLFS_FB is introduced. This environment variable can be set to
a different framebuffer device. Once it is set, eglfs will use the
specific device. This is similar to linuxfb's fb=... plugin parameter.

The actual behavior depends on the board-specific implementations.
For now only iMX6 has real support. It extracts the index from the
device name as bind the EGL display to the corresponding framebuffer
using the vendor-specific fbGetDisplayByIndex(). Other hooks can
follow suit later on.

With this patch eglfs is at least on par with linuxfb, meaning that,
if the board supports it, different apps can run on different screens.

Task-number: QTBUG-36113
Change-Id: Ia3c88bd06e108bc668433e3c5c3fce34a5a0e73d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-01-16 15:52:21 +01:00
Friedemann Kleint 7622049a71 Windows: Remove rarely used integration/theming logging categories.
Preparing the introduction of the categorized logging system for the
plugin.

Change-Id: I2b180d88cf508559f495d39d4e1d36b8f3da7051
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-15 18:43:20 +01:00
Cyril Oblikov 6233f006df Saving physical size changes of screen on Windows
On windows (tested on win7) physicalSizeMM is changed after changing
screen resolution. We need to save new size.

Change-Id: I1b38d9ba2af9679812a973737a724c9a9c5395da
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-15 06:47:02 +01:00
Friedemann Kleint 1cf5cd34f7 Windows: Silence warnings about BitBlt() failing.
After showing the lock screen, spurious warnings about BitBlt()
failing occur with last error set to ERROR_SUCCESS or
ERROR_INVALID_HANDLE.

Task-number: QTBUG-35926
Task-number: QTBUG-29716

Change-Id: I3e899cdf1ae60e76d13b81caec43716ad7c9725d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-15 06:32:41 +01:00
Friedemann Kleint 73a98ccc46 Windows: Use focusWindow() as native dialog parent when 0 is passed.
A parent is required, otherwise the application gets deactivated when
the dialog closes. The same is done in Qt 4.

Task-number: QTBUG-36039

Change-Id: I56688b3259f1d207edd1bec499afd1365ae511dc
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-14 22:33:43 +01:00
Oswald Buddenhagen 882bf3475c expand tabs and related whitespace fixes in *.{cpp,h,qdoc}
the diff -w for this commit is empty.

Started-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: I77bb84e71c63ce75e0709e5b94bee18e3ce6ab9e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2014-01-13 22:46:50 +01:00
Laszlo Agocs 9752cf7d13 linuxfb: Migrate to QRegularExpression
Change-Id: Ieeef375a5f613c09b2c85f632a093dd575290ba2
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2014-01-13 17:28:07 +01:00
Fabian Bumberger 109e155c3f Remove unnecessary call to updateHirarchy
updateHierarchy is already called in the lower/raise member function in
the QQnxWindow.

Change-Id: If3765fa7a7e69273672d47003534b04e3615916c
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-01-13 12:32:20 +01:00
Morten Johan Sørvig 0caaf9966a Cocoa: Add setContentBorderThickness().
Add setContentBorderThickness() to the Cocoa platform
plugin. This functions requests that the platform
plugin draws a gradient in the unified title and toolbar
area and/or the status bar area.

The background gradient is drawn before and under
the Qt backing store content. It is expected that
parts of the backing store will be filled with transparent
pixels to allow the  gradient to be visible. To facilitate
this the backing store image is created with an alpha
channel.

Task-number: QTBUG-34411
Change-Id: Iadc5e64ee9b9b42e92fb84a615817fdffd7a8802
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-11 10:48:40 +01:00
Sérgio Martins 79b0780783 Fix kms build with -qtnamespace
Change-Id: I6aa3f3bc3c098b96ec0eec369b85a938c552f364
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2014-01-11 06:30:39 +01:00
Lorn Potter fa7451043e make 'AlwaysAsk' if found help determine whether the configuration is Discovered or not.
Since bearer has no idea about user interaction, we just do this,
and make the roaming/always ask scenario unavailable.

Change-Id: Id509a4d3346cdbb9367ddb465364c3500fc62fdf
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-01-11 03:30:57 +01:00
Lorn Potter 1db89eb5a4 fix connman QNetworkConfiguration Discovered
Make Discovered depend on autoconnectable service

This stops seemingly automatic use of a non autconnectable service,
and allows the connection dialog to popup.

Change-Id: Idea9a22eb4bbfb4fefeca7867526a2ddc3954376
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-01-11 03:30:52 +01:00
Lorn Potter c28763d83c update the network configuration list
when changes in the networks happen.

Task-number: QTBUG-34021

Change-Id: I2bd187e7d04d6876294f18d917c9a384afe5db35
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-01-11 03:30:44 +01:00
Donald Carr 151bea6aae Fix namespaced build on Linux
Change-Id: I01f389517824e3ada4e4ab153c41c58f05a246fd
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-01-10 23:19:46 +01:00
Frederik Gladhorn 7917dfbf1c Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I99af0bef7f1c931533a324ebcfb27c40ee871a5e
2014-01-10 18:27:49 +01:00
Morten Johan Sørvig 263fdd15da Don't force create the platform window.
This causes all sorts of unintended side effects and
is generally a bad idea.

Task-number: QTBUG-32988
Change-Id: Iebdae34764be4cfd9ced47aa93789871e0455ab3
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-01-10 17:15:21 +01:00
Gatis Paeglis b088e4827f Fix bug on X11 with WA_TranslucentBackground and native child windows.
The native child windows need to inherit the parent's visual in order
to have a translucent background as well.

Surface with type QSurface::OpenGLSurface should not be forced to use
the parent window's visual - the parent visual for instance, might not
even be GL capable.

Changing WA_TranslucentBackground during runtime is not supported, for
two reasons:

1) Other platform plugins seem not to support it
2) It would require recreating X windows.

Task-number: QTBUG-29625

Change-Id: Ic1474dd2de99069027481c7db6bf865f9b8d616d
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-01-10 15:37:51 +01:00
Louai Al-Khanji b9362903b3 Add new direct2d platform plugin
This is an alternative plugin for the windows platform. It shares most
code with the current windows plugin, but substitutes a direct2d-based
paint engine for window backing stores and pixmaps.

Change-Id: I78fafd9c5871fa090b49436f5b40ec80f8789f8b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-10 15:10:29 +01:00
Louai Al-Khanji 5a2fc4c367 Shuffle things around in preparation for Direct2D platform plugin
Add a layer of abstraction in some spots where the Direct2D plugin will hook in.

Change-Id: Ifca7daf6ad0284af52a81822e970c2317d339234
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2014-01-10 15:10:29 +01:00
Thiago Macieira e0a21c71f4 Don't check if a file exists before opening it
If the file doesn't exist, open() will fail. But open() might fail
even if the file exists(), which would lead to bad follow-up code. In
any case, this saves one unnecessary stat(2).

Change-Id: Ic99507c9dc07a4387ee6a4fe9c24830fca54e095
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2014-01-10 02:35:21 +01:00
Allan Sandfeld Jensen 097b0a5316 Use XInput2 scrolling events to enable smoother scrolling
With this patch all wheel events will be generated by XInput2 where
available. This enables higher precision and smoother scrolling
especially from input devices such as touchpads on laptops.

[ChangeLog][Platform Specific Changes][X11 / XCB]Support XInput2 smooth scrolling events

Change-Id: I3b069ed92ad5c53e08af64baaece32de82e9b5c4
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-01-09 19:27:32 +01:00
Mike Fenton 8ca19dde55 QNX: Expand on Virtual Keyboard Support
Add additional keyboard type and enter key support to
QQnxAbstractVirtualKeyboard and update the subclasses for PPS and BPS
to match.

Update the PPS handler to be more streamlined by adding a helper
function to write the encoder and convert from type to string.

Change-Id: I32dbf9d8c44694789b5e24b4f72da8455836ae32
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
2014-01-09 19:27:32 +01:00
Shawn Rutledge 7c03f00a4e GTK FileDialog: don't convert QUrl to QString prematurely
File dialog APIs are being converted to QUrls as much as possible.

Task-number: QTBUG-35947
Task-number: QTBUG-35948
Change-Id: I98d86249ac5018c3b7439065ae6ad7f1c7422a08
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2014-01-09 17:54:23 +01:00
Friedemann Kleint b4c28856f1 Windows: Silence warning in QWindowsFileDialogHelper::selectFile().
The function is invoked from the QFileDialog constructor in
save file mode when passing a non-existing file.

Task-number: QTBUG-35703

Change-Id: I5c13efb9b6789404b28739f6ce88ed87b594b6e4
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2014-01-09 12:28:52 +01:00
Frederik Gladhorn af9910e450 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2014-01-08 15:51:02 +01:00
Fabian Bumberger 592d79fc83 QNX: Add some more properties to a touch point
Change-Id: Ic1c889557148f112e357c3ee34199ff6d19b4a6e
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2014-01-07 19:12:22 +01:00
Andrew Knight 153f82390d WinRT: Improve event dispatcher
- Sleep when there are no events to process. Otherwise, CPU usage remains
  high all the time.
- Reorder processing so window events are processed after being collected
  by the native event loop.
- Provide basic interrupt and WaitForMoreEvents flag support.

Task-number: QTBUG-35327

Change-Id: I8a5545cba5f3e65eafd0bb40695bf6ffde68bb04
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
2014-01-07 10:55:28 +01:00
Tor Arne Vestbø 702bda5cc9 iOS: Use in-place string renaming to rename main() instead of ld
Processing the object file with ld strips away debug information for
the main() function, resulting in the debugger not being able to
break on specific lines of the function.

It also causes issues when externing sybols in main's object file.

We revert back to the approach of using the strings in-line in the
object file (which is why we keep the name the same length, 'qtmn').

Task-number: QTBUG-35553
Change-Id: I8b0acee36f48ecfefa2e4fd008a842365713d985
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
2014-01-06 20:58:28 +01:00
Frederik Gladhorn c8046f7d42 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I0b021b369725b73f09faa14b9da9e2431dc24fad
2014-01-06 15:26:02 +01:00
Uli Schlachter ae56140b50 xcb: Remove useless flushes
Calling xcb_flush() right before QXcbConnection::sync() is pointless.
The flush sends all requests that were already queued to the server and
the call to sync() then just sends another request, flushes it and waits
for its reply. Having just sync() implicitly flush for us means less
overhead and has the same effect.

Another useless flush is in QXcbShmImage::put(). The only caller is
QXcbBackingStore::flush() and this calls put() in a loop. If we just
call xcb_flush() from flush(), then xcb can send more requests in a
single write() call again.

Finally, calling Q_XCB_NOOP() twice in a row without doing any
interaction with xcb in between doesn't help much, so remove one of the
two calls from QXcbShmImage::put()

Change-Id: Ia3d6945b8d961e2844fc3e31fdf8189c47b534d1
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2014-01-06 12:56:37 +01:00
Uli Schlachter ffac6ee267 XCB: Fix pixmap leak
In qt_xcb_XPixmapFromBitmap(), a new pixmap is generated for the caller.
This pixmap has to be freed after use. However,
createNonStandardCursor() didn't do this and instead leaked the pixmap.

Change-Id: I6fee180ec6508db9e82a5bb028957e7d9f7a4632
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2014-01-05 21:04:43 +01:00
Allan Sandfeld Jensen 2c65b78b40 Avoid duplicate emulated mouse events with XInput2
When using a touch screen on a Linux machine, we receive both touch-events
and emulated mouse events from XInput, on top of that we synthesize mouse-
events ourselves for the touch events.

This patch grabs the touch device for touch events whenever it processes
a touch-begin thereby avoiding XInput from synthesizing mouse events.

Task-number: QTBUG-35157
Change-Id: I5849d5841be236d6719cd080af2e9e39eb9cdd84
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2014-01-03 16:08:23 +01:00
Liang Qi bdd3ead827 OSX: support fake fullscreen and etc
* Fix QCocoaWindow::setGeometry() to respect WindowFrameInclusive
* Support fake fullscreen on 10.6 or WindowFullscreenButtonHint was not set on
10.7 and later
* Fix tst_qwindow on 10.6 and later

Task-number: QTBUG-23059
Task-number: QTBUG-34629
Change-Id: I6e032ca55b45674388b00506a424d3bd7ece429f
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-03 15:27:38 +01:00
Simon Hausmann b5ab7ee0d7 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Id13badc270db98806048753fd7fb658aa17f1ede
2014-01-03 14:30:21 +01:00
Liang Qi a79f8a3a67 Cocoa: fix single punctuation input via CJK input method
2d05d3bd28 was not correct.

On OS X, when user uses CJK input method, only types single punctuation,
it was converted to CJK ones, and not showed in composing text.

Task-number: QTBUG-35700
Change-Id: I919edb3f5165bf943c0d90d06a788a2f335bb1ba
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2014-01-03 13:00:18 +01:00
BogDan Vatra f9a47a6aa5 Android: Don't show ActionBar at startup.
Task-number: QTBUG-35151

Change-Id: Ie62e50032aaa647a86c4f03b1a3363e5ef6a1bbb
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
2014-01-02 20:21:41 +01:00
Allan Sandfeld Jensen 68974f31ff Extend multimedia keys
Extends the Qt keycodes with four missing keys, common on remote controls:
Guide, Info, Settings and Exit.

Change-Id: I6789f13dbb662da4261a3c947757644e12306dd9
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: BogDan Vatra <bogdan@kde.org>
2014-01-02 10:29:27 +01:00
Andrew Knight 080096590b xcb platform: Fix build when both EGL and xcb-Xlib are used
Fix a multiple define when Qt is configured to use both EGL and xcb-Xlib.

Change-Id: I6fdb282f575842711b3b5d377bbdf3bc9909bf0c
Reviewed-by: Christoph Cullmann <cullmann@kde.org>
Reviewed-by: David Faure <david.faure@kdab.com>
2013-12-31 16:58:47 +01:00
Kurt Pattyn 6b0e7f111c Windows platform plugin: Add missing case statement
Change-Id: I9b9fc6cf000b262277711374e0a2fe119328849e
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-12-30 18:38:23 +01:00
Robin Burchell 5923196bc3 mtdev: Change to use configure detection instead of requiring source hacking.
This coincidentally fixes a case of accidental BIC in qevdevtouch_p.h, where not
all users would necessarily define USE_MTDEV: having it centralized inside Qt
makes this now, blessedly, impossible.

Change-Id: I196a8f21742830705759aa917a823afdc94ba2b5
Done-with: Michael Brasser <michael.brasser@jollamobile.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-30 16:51:23 +01:00
Laszlo Agocs e8d31d1b31 linuxfb: Make mouse cursor behavior match eglfs
On non-Android systems hideCursor should default to false, just
like it is done in eglfs. This is especially useful on udev-less
systems where currently one has to resort to setting
QT_QPA_FB_HIDECURSOR to "0" to enable the mouse cursor. This is
not ideal. Defaulting to showing the cursor unless disabled by
the environment variable or, in absence of that, the lack of a
mouse reported by udev is a better choice.

Change-Id: I7362ac47046179d5eb8ed8b44cf2c36c0fc23432
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-12-30 15:23:43 +01:00
Christoph Cullmann fe4ebf1269 fix compile of qt without egl available
move the dpy to the place where it is used inside the egl ifdef guard
fixes compilation on old distros not having egl

Change-Id: I7eebe5305f3a584c0c5da2ea7b9099fdd994249d
Reviewed-by: David Faure <david.faure@kdab.com>
2013-12-30 12:24:08 +01:00
Shawn Rutledge ecf11d62fc xcb: added env variables to show input devices and events
export QT_XCB_DEBUG_XINPUT_DEVICES=anything to show detected
input devices at startup
export QT_XCB_DEBUG_XINPUT=anything to log mouse, touch and tablet events

Change-Id: Id14844b68ad376740f82a36aab2c59c84d2017ab
Task-number: QTBUG-35583
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-12-30 10:56:29 +01:00
Thiago Macieira 5ee3d1e456 XCB: Don't recalculate the DPI if we have a forced DPI setting
logicalDpi() already has the logic to check m_forcedDpi, so let's reuse
it. I hope it's not a problem that we send a signal that it changed when
nothing changed.

[ChangeLog][Platform Specific Changes][X11 / XCB]Fixed a bug that caused
Qt applications to think the screen DPI had changed when it had not,
after connecting or disconnecting monitors.

Task-number: QTBUG-32683
Change-Id: I45dd27de5109e65e7599915f11cfdb633a65a67c
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-12-30 09:17:47 +01:00
Jan Arve Saether f0cf47092e Don't translate a null rect.
This was probably because of some forgotten braces, since the
indentation seems to indicate that.
The current behavior might cause a null rect to become not null, which
might cause for QRect::isNull() to give a false positive.
Worst case it might case a program to crash (i.e. div by 0)

Change-Id: Iba49699880250e605b427ff4c1228c68a3471a2f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-12-27 10:53:21 +01:00
Roger Maclean 8a5c261954 QNX: Add support for BB10 text highlighting and spell checking
Adds the QPA side of the support for text highlighting during text
entry and for spell checking.  The changes are compatible with
existing Qt text controls though require more advanced ones to have
any effect.

QQnxInputContext has three colors it can now use for highlighting
text during composition to represent the active region, auto
corrected text and reverted text.  If any of these colors is invalid,
that form of highlighting is not used. By default, only the active
region color has a valid default which corresponds to the highlighting
capabilities of classes such as QQuickTextInput.  The QNX QPA native
interface has been augmented with the ability to get a function
pointer that can be used to set any or all of the three colors.  The
set of colors is reset to the default at any time that focus changes
to ensure appropriate behavior if there is a mix of controls.

It's worth noting that while the colors can be changed even when
used with one of the standard Qt text controls, the auto-correct
color will not show up since it is applied immediately before
committing the text.  Appropriate display of this highlighting
requires that the control maintain the highlighting for a period
after committing the text.

Spell checking is provided via another function accessible through
the QNX QPA native interface.  This takes a string and a callback
function to be called once spell checking is complete.

As a slightly unrelated change, toSpannableString now uses
toWCharArray to convert the QString to UTF-32 as required by IMF,
the previous code was invalid in the case of strings containing
UTF-16 surrogate pairs.

Removed some extraneous includes.

Change-Id: Ifdf3744d1990e0560d1923bca5db30953dea0192
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2013-12-24 19:17:36 +01:00
Frederik Gladhorn f0fbff4c90 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I2defae1904154283446b069d151c3ef57302ec7b
2013-12-24 00:56:59 +01:00
Simon Hausmann d776937df9 Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-12-23 22:44:13 +01:00
Shawn Rutledge 8fa6cb83c6 cocoa: avoid sending windowNotification to a non-QNSView
Then it's possible to embed native cocoa widgets without crashing.

Task-number: QTBUG-35629
Change-Id: Ic212c36178282b4d090c6ce0470012adc8e0c2bb
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-12-23 12:16:57 +01:00
Tor Arne Vestbø ed22c1721b iOS: Fix C++11 build
Change-Id: Ib7dc8dcbeca7e85d97b8c7fb04d2cf42e5245298
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-12-21 15:29:07 +01:00
Andy Shaw d54af5d3f6 Prevent a crash when there is no accessible interface
Change-Id: I058b76ff9d40b75eb51f9a6b1b89032ead629aed
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-12-21 00:23:15 +01:00
Sérgio Martins 436270e104 Fix warnings about forward declarations (-Wmismatched-tags)
These are structs in gbm.h.

Change-Id: I448ddc072c3aa924672f802dca42b2183470519e
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
2013-12-20 17:50:02 +01:00
Oliver Wolff 8e2f95e5a2 Fixed another assert in qwindowskeymapper
When we get a WM_CHAR message we do not need to add anything to the key
map as these messages already contain the character code in question.

Task-number: QTBUG-35532

Change-Id: If73993cd873b7c616876b9ba52ceba6b27a6a7b1
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-20 11:11:34 +01:00
Konstantin Ritt e4a910eb2a Minor optimization
Querying the "extra" fallback fonts (which are hard-coded names, actually)
for family only makes sense for scripts that cover more than just a single WS;
these currently are Common (<-Inherited) and Han.

Change-Id: I37682f1ae51a476a21b933607de48b01255cf1c3
Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2013-12-20 10:07:05 +01:00
Konstantin Ritt 4b2c73b476 Fix writingSystems determination by code page range bits
Do exactly what windows font database does to determine
writingSystems in case of non-truetype fonts.

Task-number: QTBUG-13585

Change-Id: I4a1a48d74c36e403c31f20847cf80295d89a34bc
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
2013-12-19 05:49:20 +01:00
Daniel Giurcanu dbf3c559da tslib: Derive default device value from TSLIB_TSDEVICE environment variable
Most devices that use tslib have the device path defined by
the TSLIB_TSDEVICE env. variable.

Change-Id: I89fc17cb2c7fba7741de2fd348aacd608cb21a2a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-18 21:57:44 +01:00
Daniel Giurcanu 1e44ff671e Fix [Linux]/[Linuxfb] screen initialization.
For the linuxfb platform the screen was registered
before its geometry was calculated resulting that
the qpa controller will deal with a screen instance
that has geometry of QRect(0,0,1,1) .
This masks pretty much all the painting and the input.
The fix is to call screen init before registering
the screen instance to the qpa controller.

Change-Id: If84daca6587dc368301b578cdbf7b2a65a56a5b5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-18 20:29:07 +01:00
Morten Johan Sørvig c8d696eee7 Fix static builds on Mac.
QMacPasteboardMime is a public class in Qt 4. Qt 5 has
two copies, one public QtMacExtras and an internal
one in the cocoa plugin. This causes a symbol collision
when building statically.

Rename the internal copy to QMacInternalPasteboardMime.

Task-number: QTBUG-35310
Change-Id: I891787b451a0b342ed85aa7196e606bc11623e21
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-12-18 20:28:37 +01:00
Matt Hoosier e40cefff94 QNX: avoid composition when possible
Window buffers are currently always created with an alpha channel when
the underlying display supports them. This is the correct thing to to
in order to support translucency. However, the cost is that the
composition manager unconditionally performs blending even when the
use-case in the GUI doesn't make use of it. That is rather expensive,
particularly on hardware which doesn't have extremely efficient
dedicated 2D blitting hardware.

This patch adds inspection of the user's requested window format
and--if no blending is desired--sets an additional Screen window
property which permits Screen to skip blending on the window surface.

Change-Id: I83c100a351a00ef0e8bea1b1d1fec10b7218d1de
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Frank Osterfeld <frank.osterfeld@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-12-16 19:29:52 +01:00
Albert Astals Cid 2f38bfe0a3 Remove .values() call in foreach
foreach already knows how to iterate over the values without the need to create an intermediate qlist

Change-Id: Icf6bacc3472e09fde6fe3735086cea289ca0fa96
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
2013-12-16 18:19:03 +01:00
Lorn Potter ec07cdc91e On configuration removal, take it away from foundConfigurations
Prevents derefence of freed QNetworkConfigurationPrivate pointer in
QConnmanEngine::getConfigurations().
original submitter:  Jakub Adam <jakub.adam@jollamobile.com>

Change-Id: Ib915c5a68aeb3196c6ac91c96338ebee9dad30b6
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-12-16 17:32:33 +01:00
Lorn Potter bfe005a888 make sure to signal only changed configurations
really use this

Change-Id: I082f8d84da572a2c51f67355dcbc06394940c421
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-12-16 17:32:33 +01:00
Lorn Potter 9518c17837 add NetworkSessionRequired to connman caps.
This allows QNetworkAccessManager::get(..) to make a connection,
instead of failing.

Change-Id: If5af707f7e67946357f5530cac724b223441116a
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-12-16 17:32:33 +01:00
Frederik Gladhorn 3f3be55835 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/gui/kernel/qplatformtheme.h
	tests/auto/network/socket/qudpsocket/tst_qudpsocket.cpp
	tests/auto/widgets/widgets/qspinbox/tst_qspinbox.cpp

Change-Id: Iecd3343d6a050b8764f78d809c4a1532aeba69e5
2013-12-16 16:59:33 +01:00
Shawn Rutledge 654a9df4be iOS has native windows but not window management
This will tell QtQuick.Dialogs not to use native windows for dialogs.

Change-Id: Ie2e5878b84a9597e1f730d2cb1ebe2f59be6bc75
Reviewed-by: Liang Qi <liang.qi@digia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-12-16 15:35:30 +01:00
Lorn Potter b12bec0fcf always use connman to connect to cellular services
connman provides better error messages.

Change-Id: Ifcfd4a4ff8d632273ab9ff7478a6c43cbf2cde98
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2013-12-16 13:02:19 +01:00
Laszlo Agocs fc10bfd550 Correct debug bit setting with WGL
No need to tie the debug bit to OpenGL 3.0+. xcb is correct
in this respect, let's correct the windows plugin too.

Change-Id: I13ea48de067d3fb61575be8f71b97bb547d8eb02
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-12-13 13:58:07 +01:00
Fabian Bumberger d56f5df84f QNX: Fix focus handling for secondary screen
This patch removes the activaton aand deactivation of a window when we get the window group
activated event from the navigator. This event is sent to both the primary and secondary screen
and does not state if a window should be active from a Qt perspective.
A window should only be active if it has screen keyboard focus.

Change-Id: Ibbed0dd76a21d86f4b580265f996357a8eef5192
Reviewed-by: Roger Maclean <rmaclean@qnx.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
2013-12-12 15:56:35 +01:00
Tor Arne Vestbø 37f99502f9 iOS: Fix failing assert in QUIView displayLayer()
In layoutSubviews we take the root viewcontroller position into account
when determening the new QWindow geometry, but we were missing this logic
in displayLayer, and would assert if the in-call statusbar was visible.

Since we don't really need the position of the window in displayLayer,
we change the assert to only check the size of the exposed area, which
is independent of the position of the root viewcontroller.

Change-Id: I774b8d9b075518e729f488a789b3a9e584c3f4d3
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-12-11 13:40:14 +01:00
Friedemann Kleint a134b57152 Windows: Show context menu on mouse release.
Introduce a hint to QPlatformTheme to control the behavior.

Task-number: QTBUG-35231

Change-Id: Ia28e153a8dd3f1931321a222d8906ca87166ed62
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-12-10 16:46:22 +01:00
Dominik Holland 639b4e85ae Disable the eglfs input handlers by Environment variable
Added a Enironment variable to make it possible to disable the
automatic installation of EVDEV input handlers.

This is needed if you want to use your own generic plugin instead,
which also uses evdev

Change-Id: I17d47008c10999bf918db62a22a3b6a38d7abb80
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-10 13:44:31 +01:00
Sérgio Martins fbc6240cc6 Windows: Fix corner case where frameless windows would cover the taskbar.
In commit 0c936ca83c we fixed the case
where the window was maximized programmatically, but if the window gets
restored by clicking on the taskbar we don't get to set WithinMaximize
flag, since we immediately get the WM_GETMINMAXINFO request from Windows.

To reproduce the problem, run tests/manual/windowflags, remove frames,
maximize, minimize, and restore by clicking on the taskbar.

Task-number: QTBUG-8361

Change-Id: I8a7cf4fccbb2c3dac5f570848501ac1e8d2c2307
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-09 15:40:18 +01:00
Simon Hausmann 25b390256b Merge "Merge remote-tracking branch 'origin/stable' into dev" into refs/staging/dev 2013-12-09 10:13:48 +01:00
Thiago Macieira 8be546d107 Revert "Move the glxfbconfig configtest to qpa and rename it to glx"
This reverts commit a2d3b7c991. That
commit broke -opengl es2 builds on Linux desktops (when GLX is
available).

/usr/include/GL/gl.h:162:17: error: conflicting declaration ‘typedef double GLdouble’
qopengl.h:97:17: error: ‘GLdouble’ has a previous declaration as ‘typedef GLfloat GLdouble’

Change-Id: Id5f48c05803be1a8c03eeffca139b80e9a85a0eb
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-12-07 21:17:07 +01:00
Oliver Wolff fadcb0a72b WinRT: Added networkinterface and hostinfo
While QHostInfo and QNetworkInterface are implemented,
socket implementation is just a stub for now. Having
stub implementation is preferable over not having them
at all is because most applications will not build, if
sockets are not available. Even though they do not
do anything useful yet, applications can be compiled
and run to get an idea how network will work on WinRT.

Change-Id: I78ea88901a30280d4098b75ef7398c2628dd19c8
Reviewed-by: Andrew Knight <andrew.knight@digia.com>
Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
2013-12-06 15:06:47 +01:00
Sérgio Martins 0c936ca83c Windows: Don't cover the taskbar when maximizing frameless windows
Brings Windows QPA on par with other platforms.

[ChangeLog][Windows] Don't cover the taskbar when maximizing
frameless windows.

Task-number: QTBUG-8361
Change-Id: Iba35132f697cb7379650a4c883b616c5c2023d4c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-06 13:52:34 +01:00
Frederik Gladhorn f6dbdd9c16 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/sql/drivers/sqlite/qsql_sqlite.cpp

Change-Id: Ia7cffd2c99ae3d5eea6b5740683c06e921336dcd
2013-12-05 18:52:38 +01:00
Frederik Gladhorn 733ace5a7a Merge remote-tracking branch 'origin/release' into stable
Conflicts:
	configure
	mkspecs/macx-ios-clang/features/default_post.prf
	tests/auto/widgets/widgets/qmenu/tst_qmenu.cpp

Change-Id: Iaba97eed2272bccf54289640b8197d40e22f7bf5
2013-12-05 17:42:33 +01:00
Andy Shaw 434b37323a Respect the WindowDoesNotAcceptFocus flag
When the window is requested to be made active then it should check if
the window accepts focus or not. If it does not then it should ensure
it informs the underlying system that it does not accept the activate
event.

Change-Id: I3e6533be792d8bdbb2bfcdf3b9c1a93e2c67c75a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-12-05 17:19:07 +01:00
Tor Arne Vestbø cd1ce77bf8 iOS: Apply default geometry to platform window if not set on QWindow
If a platform window is created from a QWindow without setting a valid
size or position on the QWindow, the platform window is expected to
apply sane defaults. We use the baseclass initialGeometry() function
for this, similar to other platform plugins.

The default geometry unless otherwise set and/or calculated based on
size hints is that of the screen's available geometry.

An improvement to this is to detect whenever we apply the screen
geometry, and also apply the appropriate window state, but that
needs more testing.

Change-Id: I02b12064ce6d55c04fe0cc2cd1d2816ca1113f40
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-05 13:41:53 +01:00
Tor Arne Vestbø 95822e28e2 iOS: Don't claim that windows with zero width and/or height are exposed
When sending expose events to Qt, Qt will ask us if we're exposed,
and we need to tell it that we're not, so that clients will not try
to makeCurrent on a CA layer that has a zero width and/or height.

Note that this only works because we flush expose events.

Change-Id: Idfbe03a2f35681084061376a3c650a8da027fda4
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-05 13:41:41 +01:00
Gunnar Sletta ec03058fa5 Clear QCocoaGLContext's m_currentWindow when window is hidden.
Task-number: QTBUG-35363
Change-Id: I1b3d883ed10200af8a2d4188fb1725b36eb78022
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
2013-12-05 09:16:47 +01:00
BogDan Vatra 2b70b318e3 Android: use binary name when using loadClass.
QtAndroid::findClass uses loadClass methods to find Qt's java classes.
The documentation says that we should use a binary name.

Change-Id: I2146789235435b7052827cde58b7719b7d62dc1d
Reviewed-by: Christian Stromme <christian.stromme@digia.com>
2013-12-05 08:39:59 +01:00
Richard Moe Gustavsen 6c5febd203 iOS: move infoPlistValue to qiosglobal
Change-Id: If237f08683290105413dc47923e23a496765bb22
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-04 14:50:56 +01:00
Richard Moe Gustavsen 2e13285446 iOS: don't show statusbar if hidden from Info.plist
Currently there is no way to always hide the statusbar
on iOS other than showing a window in fullscreen. This
patch will check if the statusbar is (initially) hidden
from the Info.plist, and respect that in the application.

SubAttack is an example of an app that (because
of styling issues with MainWindow margins) manually
sets the geometry larger than fullsreen, and calls
showNormal(). In that case we still want the statusbar to be
hidden.

Change-Id: Ia365d14971978360d0b39621ff0f8f82f74b57e2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-04 14:50:43 +01:00
Tor Arne Vestbø 996d78d4c9 iOS: Handle statusbar changes to child windows
Going through the platform window failed when the parent wasn't created
yet. We can still get the window state of an yet-to-be-created top level
window.

Change-Id: Iaa61ddc50df037ac0bd2fd0884884c2bfce1dd9a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-04 14:50:25 +01:00
Morten Johan Sørvig 63aa431999 Revert "Cocoa (OpenGL): If no view is attached, makeCurrent() should return false"
This reverts commit 2eb1e28a90,
which makes several of the OpenGL examples crash on startup.
(textures, hellogl_es2)

Change-Id: Id47d2df6f57b2396c333e478b3c062f4cb4becb5
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-12-04 14:49:51 +01:00
Richard Moe Gustavsen b05b940185 iOS: fix assert when using QOffscreenSurface
Qt defaults to creating a QWindow as offscreen surface
if QPlatformIntegration::createPlatformOffscreenSurface
returns 0. Using an offscreen surface is often done
in a background thread, which is problematic, since then
a QIOSWindow will also be created in a background thread.
According to Apple docs, working with a UIView from other
threads than the main thread should not be done. In our
case, we instead hit an assert in QApplication that
checks for the same.

As a quick fix for Qt 5.2, we remove the offending call that
causes the assert, since we anyway will call the same function
lazily when becoming first responder.

Task-number: QTBUG-35378

Change-Id: Id35462f99783a9748c688b163f6497de9bfff73e
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-04 14:49:05 +01:00
Tor Arne Vestbø 520eee8570 iOS: Disable drag and drop completely instead of enabling simple d'n'd
The drag and drop event filters do not play nicely with touch events
or virtual keyboards.

Task-number: QTBUG-35348
Change-Id: Id4d079ae72882f48750d394f13e10700d60e4532
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-12-04 14:48:33 +01:00
Morten Johan Sørvig c687410685 Improve expose event handling.
Prevent the cocoa platform plugin from sending expose
events for windows that are off-screen or has invalid
geometry.

Differentiate between initial exposes and geometry
update exposes, in order that e.g. geometry updates
that happen before setVisible() don't trigger expose
events. After the initial expose geometry updates
to and from invalid geometry will trigger obscure
and expose events.

Task-number: QTBUG-35143
Task-number: QTBUG-35091
Change-Id: Ibbff20c69974f098ea7635e9ca38620597840a05
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-12-04 14:48:21 +01:00
Friedemann Kleint 17333720e0 Minimal plugin: Use a dummy font database for command line tools.
Suppress warnings like:
QFontDatabase: Cannot find font directory '...' - is Qt installed correctly?
occurring for example when using qmlplugindump.

Add option flags (similar to Windows plugin) to the integration
class to be used for QT_DEBUG_BACKINGSTORE and other functionality.

Add a dummy font database with empty populate() function to be
used unless the debug flag for the backing store is used.

Task-number: QTBUG-33674
Task-number: QTCREATORBUG-10685
Change-Id: I7eaff3025de12e6b0471a3430f986b0cd810e22c
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-12-04 12:07:58 +01:00
Richard Moe Gustavsen bd9cf0b7b9 iOS: fix crash when focusWindow changes while keyboard is open
It turns out we cannot rely on QGuiApplication::focusWindow() to
be non-zero at all times (e.g when pop-ups are closing etc).
So instead use m_focusView.qwindow which points to a
valid QWindow. This window is the same as QGuiApplication::focusWindow
most of the time, except when a focus window closes.
For those cases we get a new call to scrollRootView immediately
after with m_focusView updated to reflect the new focusWindow.

Task-number: QTBUG-35339

Change-Id: Icb3a8d3140af1f1904495a9289c8c26ab79e70f6
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-04 09:11:43 +01:00
Richard Moe Gustavsen 32f71db1bd iOS: fix crash when application quits
An application will sometimes crash if the keyboard
is told to hide while the application is about to
quit. This patch will ensure that we set m_qioswindow
(and [UIView qwindow]) to 0 when the window is destroyed.
We also check this pointer before telling QUIView to
resign first responder when closing the keyboard. The
latter will fix the crash.

Task-number: QTBUG-35356

Change-Id: I934088beb7e877c5b33d96225cb215a8ffd4dbb2
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-04 09:11:39 +01:00
Andrew Knight 28d77c24c2 xcb qpa: initialize EGL for non-XLib builds
Move the EGL initialization code outside of the XLib ifdefs, so it
can be enabled for non-XLib builds as well

Change-Id: Ie025551e4e99bb0b365f025356bd9725f4283b82
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-12-03 20:02:45 +01:00
Richard Moe Gustavsen 119ea0f2db iOS: fix application hangs when opening keyboard
QIOSInputContext controls QUIViews first responder status
based on whether or not the keyboard should be open.
But since QGuiApplication updates focusObject before
focusWindow (when e.g a popup closes), we sometimes ended up
activating the old window upon a call to becomeFirstResponder.
This in turn led the application to hang because of
recursive dependencies in qioscontext when the focus window
changed.

So the solution for now is to avoid activating the window
when the view becomes first responder. This should be
fine since we now activate the window from
QIOSWindow::requestActivateWindow (ref: 6272a816d1)

Task-number: QTBUG-35340
Change-Id: I3068c14fec18d84d4b0b348a043c4c054e366c75
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-12-03 14:12:20 +01:00
Christoph Schleifenbaum 5361513ec8 Cocoa: Mouse enter events on window activation.
This patch tells the window system that it should create a mouse enter
event if a window was activated when the mouse was inside. This wasn't
working and was a regression.

Task-number: QTBUG-35109

[ChangeLog][Cocoa] Fix enterEvent not being called on activate.

Change-Id: I4e4662b4a4c58dafa8d0a2c09458ab88f678d243
Reviewed-by: Liang Qi <liang.qi@digia.com>
2013-12-03 11:40:50 +01:00
Friedemann Kleint 1f6c4a514c Use case insensitive comparison when checking platform plugin keys.
Change-Id: Iff44698dcc941ca244b476f0e6c6a993f2ad75f3
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-12-03 11:16:24 +01:00
Andy Shaw 26a0a3ed85 Respect the custom paper size settings on Mac
When the user added a custom paper size then it would be silently
ignored when printing on Mac. This now ensures that it is respected when
appropriate.

[ChangeLog][Platform Specific Changes][OS X][QtPrintSupport] Respect
the custom paper size settings when printing.

Task-number: QTBUG-34700
Change-Id: I08afe24e0e67a50e9301abf4642c6f65bb0df1fe
Reviewed-by: John Layt <jlayt@kde.org>
2013-12-03 00:23:45 +01:00
Rafael Roquetto 2e7a90bac1 BlackBerry: properly clean up QFileDialog files
Task-number: QTBUG-34983

Change-Id: I1af5c6a9c43eba77394b11d31d1d223af8bc221f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-12-01 01:58:18 +01:00
Rafael Roquetto f60e383917 BlackBerry: remove unused variable
m_result is not used by qqnxfiledialoghelper_bb10.cpp, only by its playbook
counterpart.

Change-Id: I4fae924283560703393c5313527c5c9c2005d35b
Reviewed-by: Tobias Koenig <tobias.koenig.qnx@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-12-01 01:58:07 +01:00
Rafael Roquetto 0312cb3ffe BlackBerry: Fix QFileDialog show()/hide()
QFileDialog::show() no longer worked after the dialog had already been shown
and hidden before.

Task-number: QTBUG-34983
Change-Id: I7300374b74805308e0966db7b3545e5fd8470465
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-12-01 01:57:59 +01:00
Frederik Gladhorn 777cdb00e7 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: Ibb342cc5fc55ff9a3f4b3ecbd53936b57bc13e63
2013-11-29 15:59:34 +01:00
Lars Knoll 7079f11213 Merge "Merge remote-tracking branch 'origin/release' into stable" into refs/staging/stable 2013-11-29 15:09:56 +01:00
Simon Hausmann 8e04691543 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I2e2bf789b0fe8442ed623bc0c8aef591235cdabe
2013-11-29 11:38:28 +01:00
Laszlo Agocs dc9e32caed cocoa: Use swapInterval from QSurfaceFormat
xcb and windows already do this. The default value is 1 so the
behavior on cocoa does not change when setSwapInterval() is not
called.

Task-number: QTBUG-31939
Change-Id: Id9d9204c9324f1cc187c6aee4286e7da42583759
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-29 10:26:02 +01:00
Tor Arne Vestbø 9b782dca45 iOS: Update screen properties when we trigger statusbar changes on iOS7
Ideally we'd have a callback from iOS when this happens, so we can also
react to changes done outside of Qt, but willChangeStatusBarFrame and
friends do not seem to give us what we want.

Change-Id: I686ce7950395a83c4257372363c773a95c3935ed
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-29 09:55:14 +01:00
Tor Arne Vestbø c5b19f2521 iOS: Forward [UIApplicationDelegate handleOpenURL:] to QDesktopServices
The user may use QDesktopServices::setUrlHandler() in combination with
the appropriate Info.plist keys (CFBundleURLTypes, CFBundleURLSchemes)
to react to URL requests from other applications.

This is among other things useful for handling OAuth authentication from
applications such as Dropbox. See:

  https://www.dropbox.com/developers/core/start/ios

We protect against recursive URL opening, but an application may still
redirect a request to open a URL by opening another URL, eg a website.

Task-number: QTBUG-35201
Change-Id: I9f1d246206c5594b1b65bb11fa98c6bcdefc443e
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
2013-11-29 09:55:05 +01:00
Liang Qi d55db6dd53 Cocoa: avoid a crash in QCocoaDrag
NSEvent needs to be copied.

Reference:
http://lists.apple.com/archives/cocoa-dev/2007/Dec/msg00678.html

Task-number: QTBUG-33533
Change-Id: I73709545573e59aab6875a8c3dd903cb171e858f
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-11-29 08:49:06 +01:00
Jorgen Lind a2d3b7c991 Move the glxfbconfig configtest to qpa and rename it to glx
We require glx version 1.3 which is where fbconfig is first defined.
Also make use of the configure test and report the glx status.
GLX support should always take precedence when compiling the
xcb backend

Change-Id: Ie46834210bf5cd2ac4006ff08379e0d3434ffa2b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
2013-11-28 12:57:33 +01:00
Andrew Knight d34cae51fa Add new configure parameter for Xcb-Xlib
This adds a new configuration parameter, xcb-xlib, which allows
overriding the configure test for that existing configuration option.

The use of xcb-xlib in the xcb platform plugin becomes the preferred path
for non-OpenGL ES 2 builds, while the EGL codepath is used otherwise.
This has the advantage that EGL can be used with Desktop OpenGL if Qt is
configured with -no-xcb-xlib.

Change-Id: I5018e31fe0399b94f020c671eff9414d00431c44
Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
2013-11-28 12:57:33 +01:00
Jorgen Lind 75c9a058b3 Remove stale xcb_dri2 code in QXcbNativeInterface
Change-Id: Ifc8dc8d84fc60b70f8a49282dfe32cd248bef9ba
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-11-28 11:21:44 +01:00
Simon Hausmann 83d36c3ff8 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I860404a1ef18c88a968a9eded405bb67967047b9
2013-11-28 09:19:24 +01:00