Commit Graph

1426 Commits (264eeb68b2183b2808d255fc37206d3cac7dc91c)

Author SHA1 Message Date
Eskil Abrahamsen Blomfeldt a620b77896 Use DirectWrite font engine for non-ttf fonts as well
DirectWrite supports different font types, not just TTF. In order
to enable e.g. CFF support, we simply remove the test for TTF
which was initially put in to be on the safe side when handling
bitmap fonts. However, using DirectWrite with bitmap fonts also
seems to work fine, so there's no reason to have the fallback.

Task-number: QTBUG-22654
Change-Id: I8572bc421ab3dd223025ea152ba9b33f7cf33a8a
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-10 14:23:56 +02:00
Eskil Abrahamsen Blomfeldt e316519c0e Get font's underline position in DirectWrite font engine
Fetch the correct underline position for the font along with
other metrics.

Task-number: QTBUG-22656
Change-Id: I35f6ea15ad18088033a5e7b7b83e2430c1b32a8f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-10 14:23:46 +02:00
Eskil Abrahamsen Blomfeldt 69fb70f6b3 Support fallback fonts in DirectWrite font engine
When selecting fallback fonts for a DirectWrite font, we would
cast the font engine to QWindowsFontEngine and get unpredictable
results and crashes. This change factors out getting the LOGFONT
data from the QFontDef struct and will use this to create a new
DirectWrite engine.

Task-number: QTBUG-22658

Change-Id: I743944d9a44d8742b47b1aa3354532493362cc4a
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-10 03:24:53 +02:00
Konstantin Ritt 5cf93c4352 Fix the UCS-2 surrogates handling in Q*FontEndine*::stringToCmap()
by making sure QGlyphLayout's numGlyphs member is properly initialized
if the string-to-glyphs lookup was successful
(tip: a surrogate pair produces a single glyph index).

Change-Id: I01953f3b6281d79e1a214bfab0424e796d94769a
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-10 03:23:46 +02:00
Konstantin Ritt 1db99a6250 Move ShaperFlags enum from QTextEngine to QFontEngine
These flags are specific to font engine(s) and has nothing
to do with the text engine or the text layout.

Change-Id: I4bb793c3c634b3cf0ae0a8a8c23b946fad5874b6
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
2012-07-10 03:23:41 +02:00
Eskil Abrahamsen Blomfeldt 3593701940 Fix glyph positions with DirectWrite font engine
Make same change as we have done in the other engines (floor instead
of round) to be in sync with changes in the paint engines.

Task-number: QTBUG-26409
Change-Id: I7a99aa27c93cb695ac91507505ef0b940cd78ebc
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-09 15:55:57 +02:00
Eskil Abrahamsen Blomfeldt 6fb5b6fa58 Fix bounding box of DirectWrite font engine
Vertical bearings of the font were ignored, giving the wrong height.
Also, the left bearing is right bound in DirectWrite, so the sign
should be flipped.

Task-number: QTBUG-22649
Change-Id: I82934f5b08e68e46d1b2221b35008bf9d75c5748
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-09 15:55:49 +02:00
Joerg Bornemann 1c2d95d1b7 QWindowsWindow: fix FullScreen state transition
When putting the window into FullScreen state, we
   - must not override the saved style and geometry
     if it has been saved before.
     E.g. FullScreen -> Minimized -> FullScreen
   - have to retrieve the window's normal geometry
     if the window is currently minimized.
     E.g. Minimized -> FullScreen

Task-number: QTBUG-26420
Change-Id: If4164feee5997682406701f0ea7018d7f6257d35
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:32 +02:00
Joerg Bornemann 1a86e35709 QWindowsWindow: fix state transition FullScreen -> Minimized
When going from FullScreen to Minimized we must not restore the window's
saved geometry.

Task-number: QTBUG-26420
Change-Id: I75af8bb9aeb38f5bc24bc4e0b725786c8c22fdb3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:29 +02:00
Joerg Bornemann a2bd91c5e9 QWindowsWindow: fix restoring from minimized to fullscreen
This fixes the state transition FullScreen -> Minimized -> FullScreen.

Task-number: QTBUG-26420
Change-Id: I555c4f332e796b465149e592c2583d615b37c4ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-09 10:50:27 +02:00
Tasuku Suzuki 89d7a55db4 QPlatformScreen::grabWindow() support on Mac
Added QCocoaScreen::grabWindow() and copied Qt 4 implimentation.
examples/desktop/screenshot works but WId window is not handled yet.

Change-Id: If228bb59d98a5166788ab38293d7e6a6300d1f85
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-07-06 13:57:55 +02:00
Miikka Heikkinen e70e9f8239 Fix positioning when embedding native widgets such as QGLWidget
Embedding native widgets creates window before ActiveQt has a chance
to set the _q_embedded_native_parent_handle property on the window,
so embedded flag doesn't get set during window creation.
Update embedded flag also when setting window flags.

Task-number: QTBUG-26438
Change-Id: Id29d7123de81d6542dfd6471d6dba3d31bbfe2df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-06 13:01:37 +02:00
Jorgen Lind c6d7f9c1a0 Implement nativeResourceFunctionForContext for xcb
Change-Id: Icf6c39fb456b39fec58ac2f74c569b9d01993589
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-07-06 03:54:30 +02:00
Bjoern Breitmeyer 5f04a127a7 fixed cursor handling on wince
Change-Id: Iea91dde458b0e41a55ba6cb3e157756a1473f653
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-06 01:38:30 +02:00
Robin Burchell 56e751a0c9 eglfs: Allow setting screen size through environment variables.
This adds:
- QT_QPA_EGLFS_WIDTH
- QT_QPA_EGLFS_HEIGHT

If both are set, fb0 detection is completely bypassed, otherwise, the
environment variables act as an override for the fb0 values.

Change-Id: Iaf38c8b0d40ce0a921bb6c5dbf31af788802d3fa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-07-06 00:37:39 +02:00
Rafael Roquetto c54ba8c252 Disable dedicated screen event thread by default.
Screen events should come through QEventDispatcherBlackberry by default.

Change-Id: I64d17b99e9dd8edf23f68e1186e9318849f1a398
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2012-07-05 18:57:29 +02:00
Morten Johan Sorvig a0e617f669 Sync QWindow properties on NSWindow creation.
Synchronize size hints, window title, flags and state.

Change-Id: Ibc2358d8d4d0625aaddfbcad159e3682e3e79d3c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-07-05 11:06:33 +02:00
James Turner 76b1df3032 Native drag implementation on Mac
Create a native implementation of QCocoaDrag, using the 10.6 (and earlier) Cocoa
dragging API. This matches the implementation in Qt4 closely for the moment.
In the future it may be desirable to create an alternative implementation using
the new (non-blocking) drag API introduced in 10.7, but that will require deeper
changes to the mime-data handling.

This changes makes one more method on QPlatformDrag virtual, since the
Cocoa behaviour diverges from the base version: ::defaultAction is customised.

Change-Id: I1843293a62b2b4973a07b5e75ea3c312dc064018
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-07-04 18:00:41 +02:00
Morten Johan Sorvig a8fb38f230 Cocoa: Fix size hint and resize increment setting.
Call the corresponding NSWindow size functions.
Add special cases where Qt returns null or empty sizes.

Change-Id: I880c50c04e92271dc342ad587191c8cb2c006dba
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-07-04 18:00:41 +02:00
Girish Ramakrishnan 3517949390 Make QGenericPlugin and QGenericPluginFactory public API
These classes are not specific to QPA.

Discussed in QtCS 2012.

Change-Id: I32bc5fad4f0fa5e7095af86d61966fdf4d9e4ad7
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-07-04 14:40:20 +02:00
Christoph Schleifenbaum f4dd0828dc Platform-plugin support for QSystemTrayIcon.
Implement QPlatformSystemTrayIcon providing QPA-plugin-support for
system tray icons. Make QSystemTrayIcon use this as new backend.

Ported over qsystemtrayicon_mac.mm to qcocoasystemtrayicon.mm to provide
Cocoa support for the new interface. It had to be changed to match the
interface, especially for icon and menu handling.

This interface is made to not use QStyle or QMenu which are related
classes of QSystemTrayIcon. It's therefore not introducing QtWidget
dependency into the platform plugin.

Task-number: QTBUG-20978

Change-Id: I0d0a73835698b3b4f97219d4f5bbcfa2af57dbe2
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 16:48:33 +02:00
Miikka Heikkinen 8368557b9c Fix focus handling when the application has QAxWidgets.
Removed old defunct platform specific code from
QWidget::isActiveWindow() and added call to
QPlatformWindow::isActive() instead. This is done because
the embedded native windows inside QAxWidgets can have
focus but are not part of the parent application's Qt
window hierarchy, so native methods are required to determine
if they are part of the active window or not.

QWidgetPrivate::setFocus_sys() was implemented to activate
the window of the focused widget if the focus was elsewhere.
This is required because embedded native windows can steal the
focus from the main application window.

Focus event handling in Windows platform adaptation plugin was
fixed to correctly identify the active window in cases where
the are embedded native widgets that can have focus.

Also fixed three test cases that were affected by these changes.

Task-number: QTBUG-25852
Task-number: QTBUG-23699
Change-Id: I817e0ce4317e88955bb49b034eacd630a876ccf0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 14:50:34 +02:00
Eskil Abrahamsen Blomfeldt b84bb0b245 Compile when -directwrite is passed to configure
The signature for alphaRGBMapForGlyph() was updated in the
header but not the implementation. The include with
QT_BUILD_GUI_LIB defined would re-export several symbols in
QtGui from the plugin which would make the link against QtGui
fail.

Change-Id: I23c67f97ca68f984b7a1603059c6f177fef60cca
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-07-03 14:39:50 +02:00
Girish Ramakrishnan 122741c671 Suppress QWindowSystemInterface inclusion warnings.
Since QWindowSystemInterface is now part of QPA API. The correct
inclusion is:
    #include <qpa/qwindowsysteminterface.h>
    #include <qpa/qwindowsysteminterface_p.h>

Bulk of the work was done by:
    find . -type f | xargs sed -i -e 's,#include <\(QtGui/\)\?QWindowSystemInterface>,#include <qpa/qwindowsysteminterface.h>,g'

Change-Id: If75fc32611e72ef1cf58505794def375b1acf74a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 14:24:20 +02:00
Bjoern Breitmeyer fe37ae066f fixed compile for mouse button handling on wince
WinCE does not support SM_SWAPBUTTON, so the define will
let ce fail the function call and correctly assume normal mouse
button handling

Change-Id: Id603b3b6a995e22d8800e19a5566a56df95c8962
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 01:55:34 +02:00
Konstantin Ritt 48925d98f3 Optimize QWindowsFontEngineDirectWrite::initFontInfo() a bit
by using QVarLengthArray instead of allocating memory on a heap
and by skipping a subsequent checks & calls in some cases.

Change-Id: I300d8eaf02ef718ce50833b7c2ca7ebe8cfd0224
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-03 01:09:14 +02:00
Konstantin Ritt 02aee5d174 DirectWrite font engine: don't leak the font table buffer
Ideally, each TryGetFontTable() call sequence should be followed
by the call to ReleaseFontTable() with the context value
taken from the first TryGetFontTable() call,
otherwise we'll leak the buffer allocated for the font table.

Change-Id: I627bf0133b7f61798e82929723ccfb780ce9ee69
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-07-03 01:08:49 +02:00
Sean Harmer ca456f34b0 QNX: Enable threaded OpenGL rendering on QNX
The only complicated aspect to this was deferring EGLsurface
re-creation as a result of window geometry changes (e.g. when we
receive an orientation change event). To allow this to be done
in a controlled way we defer the surface manipulation until the
next call to QQnxGLContext::makeCurrent().

Change-Id: I8062d3e4d19220a822fbc3b8ca563bb1e3be09d0
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-07-03 00:40:58 +02:00
Jonathan Liu f58390e0f4 Fix MinGW-w64 compilation
Task-number: QTBUG-24699
Change-Id: If6210315926f0266045766bb5d3b00a6d0bdf703
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-07-02 10:06:11 +02:00
Friedemann Kleint f58e046a61 Add framestrut mouse events.
- Add infrastructure to QWindowSystemInterface.
- Add a setter for enabling framestrut events
  to QPlatformWindow.
- Add Windows implementation, pass keyboard modifiers.

QDockWidget relies on it for docking.

Task-number: QTBUG-26296
Change-Id: I9d84b356e9a5eb341f57b6f51f34b6b494ff7f87
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-06-29 16:22:19 +02:00
Marc Mutz e6c98287cc QQnxWindow: properly scope a local variable
Change-Id: I71f1052f614f4e926acf2c2b76963770f7b35c96
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-29 15:42:05 +02:00
Thomas McGuire ec12d11892 QNX: Don't detach when iterating over child windows
Change-Id: I55dcc1d188a2c45a11b0ab6a194625b50906eca9
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-28 17:15:17 +02:00
Laszlo Agocs 26c85a5f79 Basic tablet support in xcb through XI2
The Maemo-specific function have been renamed a bit to prevent them
clashing with the more generic stuff.

Task-number: QTBUG-25865

Change-Id: Id55693159e15d5a0c679546eb48308feb48acac9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-28 12:35:14 +02:00
Thomas McGuire a85759f077 QNX: Make geometry changes sync to fix QWidget::showFullScreen()
These can't happen async, as otherwise the geometry of the widget is
changed too late, having the effect that QWidget::show_sys() would
overwrite the window geometry again.

Change-Id: Id60d009867a5b282ac14c112c872af1075660732
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-28 12:35:14 +02:00
Joerg Bornemann 3b2731839c fix QWidget::showFullScreen on Windows
When calling SetWindowPos in QWindowsWindow::setWindowState_sys we must
inform the QWidget about the new size we have set.

Task-number: QTBUG-26226

Change-Id: I42b01125f50a94cdb97026c74f5445f9ff47d8ba
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-28 12:35:14 +02:00
Miikka Heikkinen bbb15b4612 Further fixes to widget masking
If mask was set to a widget before the widget was shown,
the mask was not applied.

Also, if toplevel widgets were set a mask in Windows, the mask was
applied to frame coordinates instead of client coordinates.

Ported relevant code from Qt4 to fix these issues.

Change-Id: Id6187cf4952b81b5b60c167e2fd284b7dc83ed9c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-28 10:18:15 +02:00
Weng Xuetian 4dd2de9c76 Move QPlatformInputContextPlugin/Factory to QtGui
PlatformSupport is no longer shared and there should be no plugin
factory in it otherwise it will break plugin loading.

Since PlatformInputContext is already in QtGui, so move QPlatformInput-
ContextPlugin/Factory to resolve the platforminputcontexts plugin
loading problem. And remove platformsupport-private dependency from
existing inputcontexts plugin.

Change-Id: If4cb766470b8f9c8b72157da86cb33b4e1ff09e3
Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
2012-06-28 06:22:03 +02:00
Gatis Paeglis fdcdae21d8 Set window's surface format to support alpha channel.
Task-number: QTBUG-26114
Change-Id: I33f191373327832fb9d3054366412ec5be855cff
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-28 06:22:00 +02:00
Thomas McGuire 20e2fd074a QNX: Add support for window states
Now QQuickView::showFullscreen() works as expected.
QQuickView has no fallback for platforms without window state support,
as opposed to QWidget.

Change-Id: I9c41fe563ea1f6d117eaebd3ea1db87465142b85
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-27 14:43:00 +02:00
Thomas McGuire c196f89b7e QNX: Flush after changing rotation
This fixes a painting glitch where the window would stay in the old
position with the old rotation until it got repainted.

Change-Id: Id9de256b525760e8b32e55a87549efeccca151e0
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
2012-06-27 14:43:00 +02:00
Weng Xuetian 3dbd381e03 Also use x11FilterEvent for auto repeat key in xcb.
filterEvent for QPlatformInputContext is already used for auto repeat
key, x11FilterEvent also need to be filtered.

Task-number: QTBUG-25795
Change-Id: I3db87fdffdb5b01404047e905793ae6e10bb1e90
Reviewed-by: Pekka Vuorela <pekka.ta.vuorela@nokia.com>
2012-06-27 14:43:00 +02:00
Albert Astals Cid 175c69108a Add const & to foreach 'iterators'
Change-Id: I8c0600dfd919f45d14a0011f2da9b9fe0b9a0df3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-27 14:43:00 +02:00
Friedemann Kleint bc8cafcf64 Add QPA prefix and version number to QPA plugin factory interfaces.
The interfaces may change in Qt minor versions.

Change-Id: I43bc6245ddbba8232e00313bdc64e8e60c7eab6f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-27 12:39:53 +02:00
James Turner 9315497d2a Convert QPA menus to use QIcon, and enable icons.
Icon support was disabled in QPA menus, now QIcon is in QtGui, convert the QPA interface, enable setting the icon in QMenu, and make the Cocoa implementation use it. (And fix a ref-counting leak if an icon is actually set)

Change-Id: Ica203bf6826b79d8beee58f39febc851b9633a66
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-27 00:46:35 +02:00
Morten Johan Sorvig e1402c0d27 Add a method for querying window activation status from QPA.
Add QPlatformWindow::isActive(), where the platform
can do further isActive tests, and Windows implementation for it.

Change-Id: I1acfc44d3a4ab36a3aaee52fb7b5f5b40661095e
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-27 00:46:35 +02:00
Giuseppe D'Angelo 5211f45d58 Fix compilation for XCB-without-Xlib
Commit 6481218da1 broke the build by
removing the #ifdef XCB_USE_XLIB guards, but forgetting to port
Button1 to the XCB equivalent.

Change-Id: I9102feceb4deb0135ce0df318e46b35d1134a0b9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-26 20:32:07 +02:00
David Faure 27d7d7c69e Fix warning when ibus is not available.
This is perfectly ok on a linux desktop, so no reason to abort when
setting QT_FATAL_WARNINGS.

Change-Id: I64ba987679195741631fb204af57ae3d283bb516
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-26 14:40:50 +02:00
Friedemann Kleint 8e280d1e18 QPlatformWindow: Add Window masks.
Add functionality for window masks to QPlatformWindow, which is
required to implement QWidget::setMask() in order to fix
the regression in functionality from Qt 4.8.

Change-Id: I2c2d5629f0b4c6d90e52595ad70b13559aab1f41
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-26 14:40:26 +02:00
Rafael Roquetto 9e66ee2d59 [QNX] Enable MT screen event handling on Blackberry
Consuming incoming screen events through the BPS event
dispatcher on its current incarnation has proven to be
very inefficient since it cannot put up with the screen
event throughput. This patch enables the screen event
thread also for Q_OS_BLACKBERRY platforms, in addition
to stock QNX. This behavior can still be configured
through the project file, though.

Task-number: QTBUG-26177
Change-Id: I98a3b22549c9fbf0c16b5a8c39a55c1eaa6ec1f4
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-06-26 11:07:20 +02:00
Lars Knoll 72cd356200 Use the new plugin system
Convert the last remaining three plugins over from
the old plugin system.

Change-Id: I355e6bb068ec4afb58a2ee9542f86e2913b3851d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-25 00:19:15 +02:00
Tasuku Suzuki d2e83f3056 Make qtbase compile with QT_NO_DRAGANDDROP
Change-Id: Ief16e435af6e6d246b84505a1c1208994c7b0b38
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
2012-06-24 21:22:51 +02:00
Robin Burchell d153b73c12 Guard evdev specifics with QT_NO_EVDEV.
Android fails the evdev configure test at present.

Change-Id: I1cbaf2dab589f647c02c8c5b92f72bd5159ccfa9
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-24 05:26:39 +02:00
David Faure 9a16e14666 Implement QXcbIntegration::queryKeyboardModifiers()
Change-Id: Ifd2255362f5ef005e2a57f4001a72d932497b453
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 17:38:59 +02:00
Girish Ramakrishnan 17d35cfdca Add gui-private to generic plugins
QWindowSystemInterface will shortly be marked as QPA API.

Change-Id: I0b7cb1a75e3a4f0fc4627329edd3bfd21583a0a6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-22 15:42:44 +02:00
Girish Ramakrishnan 7042de0894 eglfs: move m_pos into Cursor
Change-Id: I51e92d265e7ea6372ae58b357f75362e2d9a2df9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-22 15:42:44 +02:00
Glenn Watson 4a8d9eed87 Fix key modifiers in mouse wheel events on Windows.
The Windows platform plugin was not checking for the control or
shift keyboard modifiers when processing mouse wheel events. Added
a function to convert Windows wheel events to Qt::KeyboardModifiers
and passed this through the event chain.

Task-number: QTBUG-25754
Change-Id: I6551e98b4eaebad5704058bddfb06502ded5155d
Reviewed-by: Martin Jones <martin.jones@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-22 11:47:24 +02:00
Uli Schlachter 6481218da1 Reimplement QXcbWindow::startSystemResize() with xcb
This function just sends a ClientMessage to the window manager. XCB can
do this fine and there is no need to require Xlib for the job.

Change-Id: Iad3d78c393c1f439fff987fa19b4d82513810930
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-22 11:47:24 +02:00
Samuel Rødal c752bb8eb8 Improved QCursor::setPos() robustness on xcb.
This makes tst_QGraphicsView::hoverLeave() less flaky.

Change-Id: Iaa1be6e2d02499679c69b26c07132413040173b6
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-20 10:04:26 +02:00
Friedemann Kleint e4505acd12 Windows: Fix MinGW warnings.
- Missing initializers for structs
- Missing enumeration value
- Mixing enumeration/ints in operator ?

Change-Id: I149ab01ad2ebd04f89e5c699905d5ba724828e0f
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-20 03:17:49 +02:00
Janne Anttila a0cf2119a7 Disable TranslucentBackground for WinCE to fix Windows QPA plugin build.
WinCE and WEC7 does not support layered Windows APIs:
http://msdn.microsoft.com/en-us/library/hh300132.aspx

For now - fallback to default window BitBlt always in WinCE.

Change-Id: I6f99d198dec9e90fb4a968882271b466638009d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-06-19 09:14:31 +02:00
Johannes Zellner e7836e6a9a platform hooks: provide defaults for screen size and depth hooks
Default hooks for querying screen size and color depth based on linux
fbdev API.

Change-Id: I7fc75c0df5e0f507cf679439416fe68c8f62f91d
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-19 00:38:02 +02:00
Girish Ramakrishnan 3c8eb40487 xcb: ensure the primary screen is added first
Currently, Qt windows without an explicit screen parameter always appear
on screen 0 despite the DISPLAY being set to :0.1. With this change,
the xcb backend adds the primary display at the beginning of the
screen list. QGuiApplication::primaryScreen() will then return that
display for all windows without an explicit screen.

Change-Id: I657c4ed92b9e0f0ed379e91c732dad9d69c4f5e0
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-18 21:58:30 +02:00
Johannes Zellner 11aa64b1a1 eglfs: Pass QSurfaceFormat to createNativeWindow() hook
Change-Id: Ib352d8591360a224359ef218b95cd27cdfaf81aa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-14 16:12:31 +02:00
Girish Ramakrishnan f2d04d9b8c eglfs: Make QEglFSWindow respect the window format
Prior to this change, eglfs code used to override the window format
with it's own format. With this change, eglfs will respect the window
format. This is useful when the application requires a surface with
alpha (for example, so that the video layer below is visible)

QEglFSHooks::surfaceFormatFor() allows the hook author to override
the context and window surface format.

Change-Id: I97f03a8b0871dfebfca73004fa0188b33d0d0367
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-14 16:12:19 +02:00
Thiago Macieira 606c21526a Use QPointer, not QWeakPointer.
QWeakPointer tracking of QObjects is deprecated.

Change-Id: I1a81a0f9bbe02a6a38a50ab4a50e7c65212fa591
Reviewed-by: Jan Arne Petersen <jpetersen@openismus.com>
Reviewed-by: Michael Hasselmann <michaelh@openismus.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
2012-06-14 15:29:07 +02:00
Friedemann Kleint 0137f092af Introduce QPA API for size grip handling.
- Introduce API to do size grip handling (mouse press
  and move).
- Move Windows code to Windows plugin.
- Move X11 code to XCB plugin and activate it.

Change-Id: I2f61d6ddc1fa07447e668554d41ecc820efca23f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-14 03:05:41 +02:00
Friedemann Kleint 1539e8e310 Windows: Fix warnings about being unable to load fonts from font dir.
Do not call QPlatformFontDatabase::populateFontDatabase(), which
tries to load qpf2-fonts from the Qt library directory.
This directory is not installed on Windows.

Note: This affects non-in-source builds only.

Task-number: QTBUG-26066
Change-Id: I5782e61965958fc48e0edd7a3d50eef325529708
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-14 03:05:27 +02:00
Sean Harmer 0346d605e3 Do not add debug/release to QMAKE_CONFIG. Let module system enable them
This solved QTBUG-26111 in which qtjsbackend gets built with an
incomplete framework on Mac OSX. This was traced back to commit
6a6fd56e66 which moved QMAKE_CONFIG
values from .qmake.cache to mkspecs/qmodule.pri. Since qtjsbackend
contains config tests it creates its own .qmake.cache which was
previously masking this issue.

QMAKE_CONFIG incorrectly contained debug for debug_and_release builds
even though debug and release are already present in the CONFIG variable
in mkspecs/qconfig.pri. The changes to configure prevent CONFIG in
qmodule.pri from containing debug and release variables and ensure
that QT_CONFIG contains build_all and debug_and_release if appropriate.
Configure.app is also adjusted to match this behaviour.

The other part of the change is to qt_module_config.prf and
qt_plugin.prf. These changes take care of populating CONFIG with
the appropriate debug_and_release and build_all variables depending
upon what is present in QT_CONFIG. This ensures that the Qt modules
and plugins get built with the same configuration as qtbase.

The special handling for the qcocoa QPA plugin ensures that it is
built in release mode only to preserve the behaviour introduced by
commit 5603f94eaa.

Task-number: QTBUG-26111
Change-Id: I6f65aba50709e1b2431b8b4411ff30a06f7d8aed
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-14 03:03:38 +02:00
Toby Tomkins 3e9c45c4cc Fix namespace compilation on OSX.
Change-Id: Ib579ae298a5f894b8b02a5d56567870109bd29bd
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-06-14 03:03:38 +02:00
Girish Ramakrishnan 4b7a4c40d8 eglfs: mark overriden methods with Q_DECL_OVERRIDE
The current cursor implementation can be a bit hard to read
without hints about which methods are overriden.

Change-Id: I3376890a13be46e1ece03d1442dd5a15ccd61382
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 23:59:17 +02:00
Girish Ramakrishnan 58d1b8253e printersupport: Fix cups.pro qmake warning
Change-Id: I59c8e3021fbf733af003ebd99be4a63e0a68f155
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-13 23:59:03 +02:00
Simon Hausmann 5230d62feb Partial fix for WebKit compilation on Windows
qdatetime.h uses std::min/max and on Windows windows.h (or some subsequent
header file) may under certain circumstances define min/max as macros.

The easiest way to prevent the windows header files from doing that is to
define NOMINMAX in the place right before windows.h is included. The other
way is to define min and max to min/max themselves to prevent windows.h
from doing its evil thing.

If a user of Qt (WebKit in this case) chooses the approach of defining
min/max to themselves and then includes qdatetime.h, then a subsequent
inclusion of windows.h doesn't work because qdatetime.h undefines min/max.

We should not enforce the type of workaround needed, therefore this patch
removes the workaround from qdatetime.h and requires user code that
happens to include windows header files before qdatetime.h (seldom case)
to choose either workaround.

Change-Id: I7347eec7369491a065e894cff557004e069453d5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-13 23:24:08 +02:00
Bradley T. Hughes 46abc9138b Cocoa: re-enable getUrl: and appleEventQuit: AppleEvent handlers
The getUrl: and appleEventQuit: handlers are only called if we register
them with the NSAppleEventManager. The Cocoa documentation says the best
place to do this is in the applicationWillFinishLaunching: delegate
method, so add this method and move the code from
qcocoaeventdispatcher.mm to there. Since QCocoaApplicationDelegate is
only used when AA_MacPluginApplication is not set, we do not need to
check again in the delegate code. Be sure to remove these event handlers
when shutting down the application.

For the getUrl: handler, send file open events when receiving this
event. This restores Qt 4 behavior.

Remove the qDebug() from the appleEventQuit: handler.

Change-Id: Ibcbdd541695176e3d236366d4d541e4811882d6c
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-12 11:19:29 +02:00
Bradley T. Hughes b0e0671152 Cocoa: Remove unused QApplicationPrivate from QCocoaApplicationDelegate
To avoid a QtWidget dependency, we should use QGuiApplicationPrivate
isntead, but instead of storing, we can use
QGuiAppliationPrivate::instance() instead.

Change-Id: If3f63fee804b7ad32fe8d612bf70c051b70f54c8
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-12 11:19:20 +02:00
jian liang 778e2b3bf5 Implement WindowTransparentForInput flag in Windows platform.
set WS_EX_LAYERED | WS_EX_TRANSPARENT style if the window has
WindowTransparentForInput flag.

Change-Id: I6b0dcf35abb5fc63c800439e9b81ace1070dcad4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-12 04:30:02 +02:00
Bradley T. Hughes 0fb84aa7a9 Cocoa: do not terminate applications prematurely
Re-enable application termination as it was in Qt 4.
QApplication::exec() must return to main() so that the destructors in
main() are run.

The QApplicationPrivate::canQuit() function from Qt 4's
qapplication_mac.mm is gone, so bring back this function in
QCocoaApplicationDelegate instead.

Change-Id: I1c21894d59061687c36ab49bcb2e4e3ae0752fa4
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-12 04:29:56 +02:00
Morten Johan Sorvig 3abf49cdc8 Cocoa: Compile when configured with -no-widgets
Build printing only if Qt is configured with
widget support.

This is mostly useful for testing -no-widgets builds.

Change-Id: I2d47b420e311869e85508db1f7372fe326617dec
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-12 04:29:53 +02:00
Girish Ramakrishnan e9df01d3db eglfs refactor: move window creation into qeglfswindow
This potentially allows the creation of multiple QWindows. The platform
context is now in a seperate file and the integration provides a new
instance of the context allowing creation of multiple contexts.

Change-Id: If2b6fa29b573d87c0a4cd0a8eff1f044bd1ff9b8
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-12 04:29:49 +02:00
James Turner c23e8f932b Fix Mac menu-merging case-sensitivity.
Use case-insensitive string comparisons to deal with any combination of case in the target or menu text correctly. Fixes issues reported by BHughes in TextEdit and Creator.

Change-Id: Ic3b577bf9034659b2de4aa206757b3a5a303a7b8
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-11 11:41:08 +02:00
Morten Johan Sorvig ee895bdbb1 Remove QtWidgets include.
Change-Id: I39ff73ce0dbfe36634b5331538165e636f62e57c
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-11 11:21:49 +02:00
Morten Johan Sorvig 4e2199617c Cocoa: Remove QtWidgets dependencies.
Make the file/color dialog helpers use QCoreApplication::
translate("QDialogButtonBox", text) instead of
QDialogButtonBox::tr(text)

Change-Id: I7ee4c32f8f8b9cd002836e24b962ef1c0f2e0737
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-11 11:21:37 +02:00
Miikka Heikkinen 5e6b167fea Windows: Fix window positioning for ActiveQt servers
The toplevel window for an embedded ActiveQt server does not have
a parent QWindow, but it does have a parent HWND, so is not a real
toplevel. Enable using a QWindow property to inform windows platfrom
plugin that a window is embedded and handle geometry accordingly.

Task-number: QTBUG-25808
Change-Id: Ie26c53b587c312b1df397b25cb944019c020b8de
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-09 10:45:01 +02:00
Joerg Bornemann e03d1ae953 implement Qt::TranslucentBackground for Windows
Adapted the Qt 4.8 implementation of translucent widgets in
the Windows platform plugin. This is only working for non-OpenGL
top level Windows.

Change-Id: Ic4c1c52d33b380f530f6a07e96c0c154a0571415
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-09 08:34:56 +02:00
John Layt 14f45e535b QtPrintSupport - Add CUPS printer and options queries to plugin
Implement initial support in the CUPS plugin for directly calling CUPS
to obtain printer list and basic printer info rather than QCupsSupport.

Add api to the plugin to return any options for a printer, usually IPP
options as implemented for CUPS, but whatever applies for the host
print system.

Future changes will add support for returning the PPD options.  This
api may eventually be added to QPrinterInfo, but not in 5.0.

Change-Id: I6c8bae4c9295009599e6ab31382f5fff4c93981f
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-09 01:46:36 +02:00
John Layt 20c7fa62ca QtPrintSupport: Move printer list into plugin base class
Move the cached printer list from the Windows plugin into the base
class so the CUPS plugin can also use it in a subsequent commit.

Change-Id: Idf5fb7fc49b1820aad58f16e8854ab9120caa193
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-08 18:44:55 +02:00
John Layt 271b484b00 QtPrintSupport: Move plugin access of QPrinterInfo internals to base
Move all plugin methods requiring access to QPrinterInfo internals
into the plugin base class, and remove the plugin classes as friends
from QPrinterInfo.

Change-Id: Ic527efc681e198abf19e038dd77c36bb8017d049
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-06-08 13:33:50 +02:00
Morten Johan Sorvig 2922f85e70 Reduce QtWidgets dependencies in the Cocoa plugin.
b8246f08 added the new menus implementation which
removes one of the major QtWidget dependencies.

Continuing on the path to QtWidget-freedom this
commit removes the following:
- qmenu_mac.h/mm. Not used.
- FORMS += filedialog.ui. Not used.
- qt_strippedText from qaction.cpp. Duplicate.
- Misc stray includes.

What is left should be the dependencies needed by
the print engine implementation. These will be
handled at a later time.

Change-Id: I0cead4cdaddcebd402d30c6112f3e889d0f28740
Conflicts:
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-08 13:00:03 +02:00
Lars Knoll 02191b6e4b Remove dependency from QFactoryInterface for the print plugin
Change-Id: Ia35890b72e7797ef655bf97b4a34af2908657c0e
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:20 +02:00
Lars Knoll 7715a2d0a5 Remove QFactoryInterface from the input plugins
Change-Id: Ia4a9dc5b4ef276dca39681848e531b4c9e4f64e2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:16 +02:00
Lars Knoll cf9264bb6b Remove QFactoryInterface from bearer plugins
Change-Id: I8d6736e56f34f49041fff409d040634475eb0bf5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:13 +02:00
Lars Knoll 0b69385e42 Remove the QFactoryInterface dependency from platform plugins
Change-Id: I4010e59dcd8a790e06bb9a0ccf3cc9a5c7737ed1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:09 +02:00
Lars Knoll d173da37ee Remove QFactoryInterface from the generic plugins
Change-Id: I5a4351ca4b6605f9628496701bb8c6063cf36c78
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:09 +02:00
Lars Knoll 2903db8b4c Remove the QFactoryInterface dependency from accessible plugins
QFactoryInterface is not needed anymore and will get removed soon.

Change-Id: Ib2806200b1a7f4a45d62e2b556380946ef68f585
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-06-08 00:12:03 +02:00
Lars Knoll c9d040c1f5 Don't inherit from QFactoryInterface for image plugins
QFactoryInterface is obsolete now that we have the new plugins loading
mechanism, where we can get the keys out of the plugin without
having to load it. Remove it from QImageIOHandlerFactoryInterface
as a first step of getting completely rid of it.

Change-Id: I856b149dd20131e1cdcdcb271c1a355c9e0da6ab
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-08 00:12:00 +02:00
Lars Knoll 9d3e77f18e Remove QFactoryInterface from sql drivers
Change-Id: Ib31e6c4ce5264fc1e4281c8846df5630a6479a7c
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-06-07 21:18:36 +02:00
Friedemann Kleint d728bfe793 Windows: Store only full-size DC's obtained by BeginPaint.
Avoid painting bugs in case the DC covers only a part of the
window and QBackingStore does a full flush.

Task-number: QTBUG-26039

Change-Id: Ic918d9898ac824690273ac59bcb1e7e546cc698a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-06-07 17:13:38 +02:00
Sean Harmer 6aa09123df QNX: Take nativeOrientation into account for QNX device orientations
Change-Id: Idfe4a5bd9c9638a1f9ae52a7b1def3f869286587
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-06-06 20:17:11 +02:00
Samuel Rødal 66a0b8446d Fixed compile error in eglfs plugin due to narrowing conversion.
qeglfscursor.cpp:300: error: narrowing conversion of
‘((const QRectF*)r)->QRectF::left()’ from ‘qreal’ to ‘const GLfloat’
inside { }

Change-Id: Ic4273828ad361ffac5a68068372bf400d468fb38
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-06-06 15:29:34 +02:00
Bradley T. Hughes e8cd9a617d Cocoa: do not send multiple window activation events
When switching the active window within the same application, Cocoa
sends us an NSWindowDidResignKeyNotification for the old activated
window, then an NSWindowDidBecomeKeyNotificationfor the newly activated
window. Our handling of this would first set Qt's active window to zero,
then immediately reset it afterwards. Avoid this by checking the key
window when handling the deactivation event, and don't set the active
window to zero if a new window has become active.

Task-number: QTBUG-24322
Change-Id: I8719fc501049eeaaebb75e9ea03261b2209458b6
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-06 12:07:48 +02:00
Morten Sorvig 09001e72dc Cocoa: Fix QCocoaBackingStore::flush on 10.8
The call to displayRect works on 10.7 but does not
update the pixels on screen on 10.8. Many Qt windows
do not update properly.

This is a workaround found by trail and error
without fully understanding the underlying issue.
I would like to have this in place until we can
determine the cause of the bug.

Change-Id: I1ecee745f42a93ded4f651cc8ad51963f250e78d
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-06 07:41:14 +02:00
Kent Hansen 4951d16110 Fix compilation when configured with -no-widgets
printsupport plugins need QtPrintSupport (which needs QtWidgets).

Change-Id: I8cc9cc15abd19c95b8d4bac26dfd17d027bbfa96
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-06-06 02:03:23 +02:00
Pasi Matilainen b24bf21fcb Do not set an action on native submenu items on Mac
On Mac, clicking on a submenu entry triggers QMenu::triggered(QAction*)
signal, which is unexpected, and also closes the submenu, which does
not match platform behavior. This happens because native submenu items
have an action set, so fix it by not setting the action.

Task-number: QTBUG-16738
Task-number: QTBUG-10706
Change-Id: I6819999e5af35e6acab1aec035d5d85445189f11
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-06-06 02:03:05 +02:00
Girish Ramakrishnan b5e041d48d eglfs refactor: Query screen and format info from hooks
This allows boards to customize what they really work best for
without having to set environment variables.

Change-Id: Ib40c3a870ade568f66e37e621a8abc6b17e39411
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-05 18:48:40 +02:00
Girish Ramakrishnan f35470a442 eglfs refactor: Move egl initialization to the integration
Change-Id: If2c870538c742fd034fb9e5c115e4ac0bd8e2e03
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-05 18:48:16 +02:00
Holger Hans Peter Freyther e1774d2029 Verify the surfaceType before activating the GL context
Verify that the surfaceType() of the QPlatformContext is of type
OpenGLSurface before making the context active. Make it possible
to get the QSurface from a QPlatformSurface, make QPlatformWindow
use that to access the QWindow. Remove the setSurfaceType call from
the eglfs plugin as this hiding a problem.

Change-Id: I08906da052e066bb1f1f042030643c6389ab17d7
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-05 18:48:00 +02:00
Stephen Kelly 7d28f7772c Use QPointer instead of QWeakPointer.
The use of QWeakPointer for tracking QObject pointers is to be
deprecated.

Change-Id: If460ca7f515db77af24030152f4bd56e1a5fae7c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 18:42:26 +02:00
Kevin Ottens 0915d073f1 QNX: Implement QQnxScreen::nativeOrientation()
Provide a proper version of nativeOrientation(). We use the screen
physical size as reported by the device to determine its native
orientation.

Change-Id: I45b593b0d62436529f89050e98e10b8c9463b6b9
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
2012-06-05 16:01:29 +02:00
Bradley T. Hughes a6d6719c26 directfb: Compile with C++11 support enabled
qdirectfbblitter.cpp:146: error: narrowing conversion of 'srcRect.x()'
from 'qreal' to 'int' inside { }
qdirectfbblitter.cpp:152: error: narrowing conversion of 'rect.x()' from
'qreal' to 'int' inside { }

The same error exists for calls to y(), width(), and height() at both
locations.

Change-Id: I14f165a6a1cab9502e157e798157b835faf2300f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-06-05 12:30:02 +02:00
Thiago Macieira 006edbd0d9 The QFontEngineFT files are not built into QtGui anymore.
These files are only built into QtPlatformSupport, so the Q_GUI_EXPORT
macro is now wrong. Remove it.

Additionally, since these files are built into QtPlatformSupport, the
windows platform plugin does not need to build them again.

To-Do: move the files to src/platformsupport/fontdatabases

Change-Id: I9d69b97ca25ee52ab627cfa633f43b277acc5e05
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-06-05 06:14:19 +02:00
Laszlo Agocs bc3cfebc66 evdevtablet plugin
Change-Id: Ie8fbaac929180e6d4c626253c4c20d1b3a9083f5
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-04 22:29:10 +02:00
Laszlo Agocs b6535f65e1 Fix touchpads with evdevmouse
evdevmouse only worked properly with real mice, the ABS event handling
was somewhat broken, it wasn't possible to properly move a mouse cursor
with a touchpad due to unwanted jumps. The button handling is also
corrected.

Change-Id: Id04ef65d867a75bcfc54240d192a78224a4481d6
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-06-04 09:26:09 +02:00
Girish Ramakrishnan 2a1b50d67c eglfs: Create mouse, keyboard and touch handlers by default
Prior to this change, input support for eglfs was loaded as plugins. With
this change, eglfs supports evdev based keyboard, mouse and touch input
out of the box.

The event dispatcher is created in the constructor because the evdev
code creates QSocketNotifiers in the constructor which requires an
event loop.

Change-Id: I4e08f4121b9381ee5b414d0886eae2b8a2925800
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Romain Pokrzywka <romain.pokrzywka@kdab.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-06-02 10:25:31 +02:00
Corentin Jabot 6131b90953 Implement QXcbWindow::setWindowIcon
Change-Id: I1908cbef0c20d3725423b559f234bd6d3ddd4167
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-02 01:14:22 +02:00
Laszlo Agocs bb4e8e37d2 Add QEvdev prefix in evdevtouch and update readme
Now that the code is in platformsupport we need to avoid too generic
names so rename the classes a bit.

Change-Id: I7241aa1a3449be772de369ebd08df01e886dbfa3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-06-01 15:24:30 +02:00
Girish Ramakrishnan 5933205cfc eglfs: implement hardware cursor for the raspberry-pi
The cursor is rendered on a dispmanx layer and moved
around. This approach saves us from having to update the
underlying window each time the cursor moves.

Dispmanx layers cannot be moved to negative coords. As
a result, currently it is not possible to move to a
location less than the hostpot. A future commit will
fix this problem.

Change-Id: Ida5ee961d03a6929860c515e503482756a4913ed
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 15:22:49 +02:00
Laszlo Agocs 22ef98c0b1 Migrate tslib to new plugin format
Also rename the binary and avoid crashes when tslib initialization
fails.

Change-Id: Ia7ccf7c997e1b1484bd475626ca16c9a9642466e
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-06-01 03:15:52 +02:00
Girish Ramakrishnan 3aac6768f8 Move evdev to platformsupport
Also wraps various string literals with QLatin1String.

Change-Id: Ia0681bfae00006d9e9ad51f05d0e0d0f45cf2cec
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-06-01 01:21:24 +02:00
Laszlo Agocs 115f45ff41 Prevent evdevkeyboard file opening from failing
On many systems the device nodes will not be writable normally. There
is no reason to open for writing in any case. Also switched back to
non-blocking I/O.

Change-Id: I9290e6b1ce7e3bc6cb0e75069b3968f647ffbeee
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 17:49:50 +02:00
Girish Ramakrishnan 56cfd5d83f Add QObject parent parameter to constructors
Also drop the explicit keyword in constructors with multiple
args since it has no effect on multi-arg constructors.

Change-Id: I48af6ede6cc968c52720c6107cadf3aa4dbfc7f7
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-05-31 17:49:39 +02:00
John Layt f70924e9cc QtPrintSupport: Add CUPS printsupport plugin
Move CUPS code around to create a new CUPS printsupport plugin, this
fixes QPrinterInfo for CUPS which depends on the plugin to work.

It QT_NO_CUPS is defined then the plugin is not built and only Print
to PDF is supported under Linux.

* Move unused genericiunixprintersupport plugin to start new CUPS
  printsupport plugin
* Split QPdfPrintEngine to create QCupsPrintEngine
* Remove LPR related code from QPdfPrintEngine
* Move CUPS specific code from plugin base class to derived CUPS class
* Remove forcing CUPS print engine to use PDF mode as PDF is now Native
* Move qt_getCupsPrinterPaperSizes from qprinterinfo_unix to
  QCUPSSupport
* Remove qprinterinfo_unix as no longer used
* Remove all QT_NO_LPR uses

There is now no CUPS specific code left in printsupport/kernel except
QCUPSSupport which is needed for the dialogs.

Task-number: QTBUG-23060

Change-Id: Ie8fa4512a2424edc8943068e0fa9fb714cc42db9
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-31 17:40:55 +02:00
Girish Ramakrishnan 8710c900d6 eglfs: allow cursor to be created without a context
Textures are now created and uploaded on demand on first render()
call where we are guaranteed to have a current GL context.

Change-Id: I352c876dd1d8b7ed73536de21fa2880cdc6bdb60
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-31 09:25:56 +02:00
Girish Ramakrishnan 94492d88a7 Remove QCursor::handle
This used to be the Qt/Embedded's QCursor handle implementation.

Change-Id: I31b8ed44ac9325defcb13d887949d9536a262be8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-31 09:13:01 +02:00
Friedemann Kleint e7f1106edb Windows: Add ANGLE support.
- Add QWindowsEGLContext usable for ANGLE and Windows CE.
- Add QWindowsEGLStaticContext containing the display
  for resource cleanup.
- Add EGLSurface to QWindowsWindow.
- Add a -angle option specifying the path to the external
  ANGLE installation to configure, add libraries to
  the mkspecs.

Initial-patch-by: Jabot Corentin <corentinjabot@gmail.com>

Task-number: QTBUG-24207

Change-Id: I5f80b1efb6996da7c5d70aa3720f7801c9e4c6af
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-31 09:13:01 +02:00
Holger Hans Peter Freyther 44bc32d9c5 directfb: Allocate a special surface for OpenGL
Allocate an RGB16 surface when we need to use OpenGL, set the
custom DSCAPS_GL for this EGL mode. The broadcom hardware would
allow us to use ABGR but we have some issues with the QSurfaceFormat
to select the right kind of surface.

Change-Id: I0fff7906154f3d7afb35b2b5d2bb91510cf3aa4d
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 19:29:35 +02:00
Samuel Rødal 4f539b2671 KMS platform plugin: Introduce default cursor for better usability.
Similar to the default cursor in eglfs, not having it makes it hard to
interact with Qt applications using the evdevmouse plugin.

Change-Id: I9638267c7d790d91b66620e4a82d86f299061922
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-30 11:11:02 +02:00
Girish Ramakrishnan e18569ee1d eglfs: keep context active only during flush
The OpenGL context needs to be current only while flushing
the backing store.

Change-Id: I4d6a10f22bcfe04f35a14a690180237f6c691829
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-30 11:10:42 +02:00
Girish Ramakrishnan 0cb7dac534 Add minimalegl QPA platform plugin
The EGLFS platform plugin was originally meant to be an example
and thus to be kept simple. However, EGLFS is becoming more
and more complex with the addition of hooks for board support,
cursor integration, built-in evdev support etc.

minimalegl is a new platform plugin that intends to follow
the original intentions of EGLFS.

The code is an adaptation of EGLFS as of f913859f8

Change-Id: I3d4cf84cde380cdcc7e0e8bfefff4df6be731b8d
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-05-30 08:30:42 +02:00
Holger Hans Peter Freyther 9e424adbdd directfb: Allow a window subclass to allocate a different kind of surface
A subclass of QDirectFbWindow might need to allocate a window with
different surface flags. This is the case for the DirectFB EGL plugin
and QSurface::OpenGLSurface type of surfaces. Add createDirectFBWindow,
make it virtual and call it from the platform integration classes. Add
an assert to verify that this method is only called once. Remove the
pre DirectFb 1.1 code as it was never really tested.

Change-Id: Icf3d262f40bca70e376043935eeb292958f6df5d
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-05-30 08:30:42 +02:00
Girish Ramakrishnan 56fca8ce14 Fix compile error in eglconvenience
Change-Id: Ic20d890a9c59e21a5f0c81f961074ab02083a266
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
2012-05-30 06:29:10 +02:00
Holger Hans Peter Freyther 717ca1a2a6 directfb: description.surface_caps was already assigned conditionally
We have already assigned this flag in case the IDirectFBSurfaceLayer
has the capability of premultiplied alpha. Do not set it unconditionally.

Change-Id: Id5f9bd6bdfa29dc9cd35d913b61fb55c09f54864
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 04:27:50 +02:00
Johannes Zellner e6a4d6054d evdev: Cleanup mouse and keyboard plugins
Remove fallback event0 device usage. All available devices should be
detected automatically from DeviceDiscovery either through udev or the
static fallback discovery method. This also removes the never used 'key'
argument, which was pulled over from Qt4.

Change-Id: Iffe8bd80f0770664024019a220cbbc6f98843340
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-30 04:25:48 +02:00
Morten Johan Sorvig 9ea919915d Make popup windows show on the correct desktop.
Set NSWindowCollectionBehaviorFullScreenAuxiliary
for Qt::Popup windows. This will make them show
on the same desktop as their parent full-screen
window.

Change-Id: Ice1bd50976ef0cd66b01a683a43e08e782573153
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-30 01:54:45 +02:00
Samuel Rødal ef204659b9 Fixed KMS y-invertedness.
Upgrade to new gbm_surface API which lets us use eglCreateWindowSurface.

Change-Id: I4af86d442375017ae3b4744e7b3bdebf3b496b6e
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-29 23:48:29 +02:00
John Layt 44f7df439f QtPrintSupport - Add QPrinterInfo api for more printer details
A previous commit changed the Mac behaviour for printerName()
from returning the CUPS Description to returning the CUPS Name.
In case anyone was relying on this for a human-readable name
add new api to return the CUPS Description.  Also add the
Location and Make and Model which will be used in the Unix
print dialog instead of directly calling CUPS.

Change-Id: I9901bf8d6368466adf111580f5db5a3f01ca9170
Reviewed-by: Teemu Katajisto <teemu.katajisto@digia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-29 23:48:15 +02:00
Girish Ramakrishnan d460f089e5 eglfs: Don't update screen for non mouse-move events
Change-Id: I7df089a9dc87396e19c08cef3d76c7c7f95a8fbf
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:51 +02:00
Girish Ramakrishnan a72f64f1c1 Add q_printEglConfig to qeglconvenience
The code was initially part of eglfs.

Change-Id: I8aa6e77edec85ab2b23765ca04e4416757f3bed6
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:47 +02:00
Girish Ramakrishnan e973d0965c eglfs: remove support for widget rendering using opengl paint engine
The eglfs backing store code can render either using the raster paint
engine (through QImage) or using the opengl paint engine. Rendering
quality using the opengl paint engine is pretty poor so remove
it.

Change-Id: I64061ceb3a480049cfebe61aaf172ad1f1da7042
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:43 +02:00
Girish Ramakrishnan d324019913 eglfs: release shader program after use
Change-Id: Ibe89de88c6c01d182a240def92eb78c0cc896463
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:37:40 +02:00
Girish Ramakrishnan 42f4fa60f3 eglfs: rename QEglIntegration to QEglFSIntegration
Change-Id: Ifa096537d417571ed660a63a501fed188186f400
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-29 23:36:49 +02:00
Thiago Macieira a4ca3280c0 QApplication::activeWindow is replaced by QApplication::focusWindow
Change-Id: I28ec9b59171fbacbe5c7c0dd1cc998d75538545f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-29 20:12:53 +02:00
Friedemann Kleint 97659d87be Windows QPA plugin: Add \internal to class documentation.
Prevent the classes from appearing in the Qt documentation.

Change-Id: I62abff0c57effdf16629f9d5a0dc384ea2c43d5a
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-29 20:12:24 +02:00
Gatis Paeglis 2defa750b7 Qt 5 to-do in QXcbKeyboard
Rescheduling to Qt 6 since Qt 5.0 was decided to have as little source incompatible changes as possible.

Change-Id: I47cd3e236dd90717efb287aef8fbbedacea1bc0f
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-05-26 10:14:23 +02:00
Sean Harmer 48768ab433 QNX: Adding native file dialog support for Blackberry
This patch enables use of native file dialogs in the application
modal case.

The native file open dialog is reasonable but the native file save
dialog could do with some improvements to make it more usable.
Perhaps providing our own "native" dialog UI would be an option
once the widget style is finished.

Change-Id: If5fb7cf73d27e52db7bfa6d97d8f8fb7912960bb
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-26 00:34:40 +02:00
Tasuku Suzuki 576d4a1cce Fix xcb plugin compilation for -qconfig large
Change-Id: I1ee1fb9c140396e83272d607ee4dd63ce2c50b8d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-26 00:34:40 +02:00
Friedemann Kleint 2848395b50 XCB/EGL: Free display.
Fix valgrind reporting resource leaks.

Change-Id: I4c2038f61b63dc5b6bc0c7eca43f0f339ddf723a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-25 17:23:20 +02:00
Friedemann Kleint 9015e479db Fix warnings about unused variables.
Change-Id: Ie95f032981d2ce68b1193725ab55ac207d187525
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-25 17:23:20 +02:00
Girish Ramakrishnan b8420c9fc2 eglfs: use GL API directly in QEglFSCursor
The upcoming hardware cursor support for pi requires the cursor
code to render with it's own context. This is because the cursor
rendering happens in the input event (gui) thread which may be
different from the the scenegraph thread.

Currently, Qt can be informed about the current opengl context by
using QOpenGLContext::makeCurrent(). All of Qt's helper OpenGL
classes complain if that function has not been called. Usage of
makeCurrent API requires a QSurface. A big rewrite of EGLFS is
needed to make such a QSurface (QEglFSWindow) available to the
cursor code. There is no other way around this since Qt
has no other API to inform it that an opengl context is active.

The solution is not use Qt's OpenGL helper classes and use GL API
directly.

Change-Id: If47030d9a289686ebf2e758f90445323d1733dc0
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-25 17:23:20 +02:00
Sean Harmer 49b12d8236 QNX: Rationalise the usage of qDebug() to remove lots of #ifdef's
Change-Id: I097e4af86a6a0941f4fd7e122970f88ba536ab38
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Andriy Golovnya <andriy.golovnya@googlemail.com>
2012-05-25 14:46:04 +02:00
Rafael Roquetto df7a1a28aa Implementation of the Blackberry bearer engine.
An implementation for Blackberry devices based on the BPS netstatus APIs.

Change-Id: I2c019efecb7296b6db626b626d4618ded4d3df37
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 17:59:07 +02:00
Miikka Heikkinen 3c3e938c82 Windows: Fix verbose debug output
The isEmpty() check for environment variable contents was inverted.

Change-Id: Ic220f4eed9e45539d6e89fe1e0d37976f7757eda
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-24 17:52:52 +02:00
Sean Harmer 66e68b79c2 QPA: Refactor QFileDialogPrivate::qt_clean_filter_list for QPA
Allows QFileDialog and QPA plugins to access this helper function.

Needed by the Cocoa and QNX plugins. This commit fixes up the
Cocoa plugin. The QNX support will be in a follow-up commit.

Change-Id: I8dd08a9f3dc27d85edd0dc9dad9629406c1e677a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-24 17:46:15 +02:00
Kevin Ottens 425c902ed0 QNX: Recreate EGL surface when the window geometry changes
Change-Id: Ic578e9c3f4d8f70bcac0d95f59942cd2724aee51
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:20 +02:00
Kevin Ottens b283213712 QNX: Make sure calls to (create/destroy)Surface are symmetric
As a matter of fact also reduces state duplication with QQnxWindow
by getting rid of m_surfaceSize.

Change-Id: I47f5af0f00a317d3bb246c0c9161e2219fbd3263
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:14 +02:00
Kevin Ottens 20a52687ec QNX: Advertise geometry changes to Qt event system
Some QWindow subclass rely on those events to be sent to know when
the window geometry changes (e.g. QQuickCanvas).

Change-Id: I16d3928803d09761f265544fdf10a5d080fccc17
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:08 +02:00
Kevin Ottens 2ee67d3826 QNX: Force windows resizing when the screen orientation changes
Change-Id: I82e464df86b55f04498a8f6f5c1cc5011cac0bd6
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-24 14:47:02 +02:00
Morten Johan Sorvig 48e104aa1d Add QMacPasteboardMime::count(QMimeData*).
As QTBUG-25076 points out, the ### comment indicates
that we want to add virtual function to
QMacPasteboardMime.

The default implementation returns 1. Reimplement 
for QMacPastebardMimeUrl and return the url count.

Change-Id: Ie300574eab9991af625986805d2b030914291cc0
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-24 14:20:11 +02:00
Samuel Rødal 4b4975ceae Compile fix for kms platform plugin.
Change-Id: Ieed141c390920d118f8bb34fa884574ba308d23e
Reviewed-by: Andy Nichols <andy.nichols@nokia.com>
2012-05-24 14:06:12 +02:00
John Layt 36f469bdb1 QtPrintSupport - Modify Platform Plugin QPrinterInfo api
Change the way the printsupport plugin creates QPrinterInfo
objects, provide platform api to return a named printer, and
expose this as static public api in QPrinterInfo.

Only the Mac plugin used the old api, the other plugins will
have direct support added in separate commits, but will use
the default implementation for now.

Change-Id: I7d6b6556eb39919cfb15bc0e814afbaf13c5712c
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-24 09:48:27 +02:00
Johannes Zellner ce5c1db2d3 udev: UDevHelper becomes DeviceDiscovery
Rename QUDeviceHelper to QDeviceDiscovery and add a static device
discovery fallback in case we dont have udev. The fallback so far only
scans /dev/input/event* and /dev/dri/card* at startup and detects device
nodes only by device path.

Change-Id: I7a423910b30ae16a10d8f1f47b86c6b4d2c2ec36
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
2012-05-24 07:15:02 +02:00
Pekka Vuorela 7dd64fd2bb Initialize member variable in QXcbWindow
Change-Id: Iddf3f70ae2cb7be0703c0084da87e41412ad1d06
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-24 07:14:58 +02:00
Friedemann Kleint 0a290318fb Fix compiler warnings in QtGui, QtWidgets.
- Unused variables.
- Deprecated headers.

Change-Id: I8fb5d5f2cc02aca145a8c857358527592b7491ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-23 23:55:43 +02:00
John Layt f3ad57e90e QtPrintSupport - Fix Mac printerName() use
Mac in Qt4 and 5 has been using the PMPrinter Name for the QPrinter
and QPrinterInfo printerName() value, but this is incorrect. This
is in fact the CUPS Description field, is in human readable form
and is not guaranteed to be unique. The CUPS Name field is the
PMPrinter ID value and should be used as the unique identifier
when accessing printers. This has worked up to now due to an
undocumented feature in the OSX api that accepted the Name when
the ID should be used.

Changing all uses of PMPrinterGetName to PMPrinterGetID fixes this
and allows the QPrinterInfo test of names to pass without
munging the names.

Change-Id: I25322aa1a924bed9f67f4ad5e208274c8b700e17
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: John Layt <jlayt@kde.org>
2012-05-23 23:55:43 +02:00
Kevin Ottens e9d20b1951 QNX: Post orientation change events
Change-Id: I4dc13e5388e065c2425641c7efabcdee8f94800e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-23 23:55:43 +02:00
Jiang Jiang d74a246cc9 Fix font rendering gamma correction on Mac
It needs a 2.0 gamma (as in Qt 4) in platform plugin styleHint.

Change-Id: I2286532c607554c41baee4fa348cd7899bf010e1
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Bradley T. Hughes 19a6c50061 Cocoa: Handle keyboard dead keys correctly
Some keyboard layouts have physical dead keys (like the ¨ key on a
Norwegian keyboard). These do not send any text, so we should not use
[NSString characterAtIndex:0] if the string is empty. When encountering
an empty [NSEvent character] string, use Qt::Key_unknown and
QChar::ReplacementCharacter.

Change-Id: I7281aa9ea6005341c0dcfa5900bfe601e4eac6a9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Bradley T. Hughes 321a549510 Cocoa: Avoid UTF-16 to UTF-8 to UTF-16 conversion in key handling
When coverting NSEvent characters to a QString, use
QCFString::toQString(), which copies the UTF-16 characters out of the
NSString into a QString (instead of converting to UTF-8 and back again
on each key press).

Change-Id: I78f7c46e75283b7b51c762fd7f22e351ac068072
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Bradley T. Hughes 2d05d3bd28 Cocoa: don't send input method events for basic text input
When receiving keyDown events on the Mac, we pass them to NSView's
interpretKeyEvents method, which ends up calling our insertText method.
This means we end up sending input method events for most text input
(instead of normal key events). While this is not wrong, it is
unexpected, and different form how Qt 4 works.

Change insertText to do nothing if no preedit string has been set when
handling a key event. For normal text input that does not need input
method handling, we can simply return and let handleKeyEvent send key
events instead.

Our insertText implementation has to take care to not ignore calls from
outside key event processing (such as the user input characters with the
Character Viewer). As a result m_keyEventsAccepted changes to
m_sendKeyEvent to let insertText know whether or not insertText was
called via handleKeyEvent.

Change-Id: Ie8c2eb67f6a8438f08442f9ff48f2027a041ca23
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-23 14:18:34 +02:00
Sean Harmer 856ca268f8 QNX: Implementing QPlatformScreen::refreshRate() for QNX QPA
Change-Id: I777ebd2c1ca51d244de714eb5b235d931df044d6
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-23 10:52:11 +02:00
Morten Johan Sorvig 98dbaecf7f Minor QPlatformMenu API cleanup.
Make the QPlatformMenu* classes abstract with
pure virtual functions. Delete qplatformmenu_qpa.cpp.
QtGui no longer has to carry the empty implementations.

Change the inheritance tree - Make QPlatformMenu
and QPlatformMenuBar inherit QObject instead of
QMenuItem. Add (now) missing virtual functions to
QPlatformMenu. The effect of this change is to 
reduce the number of pure virtuals the platform 
has to implement.

Change QPlatformMenuBar::syncMenu to take a
QPlatformMenu pointer instead of a QPlatformMenuItem*
pointer.

Fix a couple of header/unused variable
compiler warnings.

Change-Id: I77450e40c6aae26f3e1aca204603acebd242c036
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-05-23 10:02:11 +02:00
Sean Harmer 03392e1edf QNX: Register for navigator events before any window creation
This prevents a possible race condition in which the nvaigator service
notices that we have created a window and starts sending us messages
possibly before we have registered with bps for navigator messages.

This resulted in applications sometimes missing navigator messages at
startup.

Change-Id: I362fd782d7798990bc196f23e07b58293b13275d
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
2012-05-23 03:15:18 +02:00
Holger Hans Peter Freyther 30cf695e7a bcm97425: Enable the egl mode directfb QPA platform plugin
The directfb_egl mode of the directfb QPA platform plugin was never
enabled. Modify directfb.pro to check for directfb_egl inside the
QT_CONFIG variable. This issue was introduced when moving the config
from the CONFIG variable to QT_CONFIG.

Change-Id: Ia86ec48475ac037d05282e69ee6324969054e186
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-22 20:56:38 +02:00
Girish Ramakrishnan 6af65edcb6 qpa api: replace QPA headers with something more benign
The current 'we mean it' headers are considered too aggressive for QPA.

Replaced using the following script.
for file in `find -type f -name "qplatform*.h" -and -not -name "*_p.h"`; do
    LINE_NO_1=`grep -n -m 1 "W A R N I N G" $file | awk -F ':' '{print $1}'`
    LINE_NO_2=`grep -n -m 1 "We mean it." $file | awk -F ':' '{print $1}'`
    if [ -z "$LINE_NO_1" ]; then
        LINE_NO_1=`grep -n -m 1 "#define " $file | awk -F ':' '{print $1}'`
        LINE_NO_2=$((1+$LINE_NO_1))
    else
        LINE_NO_1=$(($LINE_NO_1-2))
        LINE_NO_2=$(($LINE_NO_2+2))
    fi
    head -n $LINE_NO_1 $file > $file.new
    cat >> $file.new <<EOF
//
//  W A R N I N G
//  -------------
//
// This file is part of the QPA API and is not meant to be used
// in applications. Usage of this API may make your code
// source and binary incompatible with future versions of Qt.
//
EOF
    tail -n +$LINE_NO_2 $file >> $file.new
    mv $file.new $file
done

Change-Id: I8a974c9bf8942647b7ad950afb372c1f738aa725
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-22 20:56:38 +02:00
Jan-Arve Saether 018cb899d4 Replace (un)checkAction with toggleAction (3/3)
Remove all references to (un)checkAction.
This commit finalizes the intended change.

Change-Id: I79d3b30b5c3d9fbe276c2c94fed5971bb21d6c02
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-22 20:56:38 +02:00
Holger Hans Peter Freyther bb2ea689ab directfb: Handle focus, close and geometry change events
Report the focus, close and geometry to Qt.

Change-Id: I059fef5aba5f0e5c0654ba11b0615bc0f5ac50aa
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:07 +02:00
Holger Hans Peter Freyther 6956ce0912 directfb: Expose the window when it becomes visible
This change is required to make DirectFB windows appear on the
screen again.

Change-Id: Ib00d3fa597bc23879b5646bddd6cbb5c627b0edf
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:07 +02:00
Donald Carr 707fc2bb00 Clean up Raspberry Pi spec
Introduce platform libs hook to handle/allow device specific initialization and the associated symbol resolution

Change-Id: I098b07dcb581390d369d9165c6cedc7ace1e088a
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-22 05:09:04 +02:00
Friedemann Kleint 41b18267a1 Windows/MinGW: Fix warnings about missing enumeration values.
Change-Id: I8fa6456e517d670a4d463fdc589cb32e4f79843c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-21 16:02:06 +02:00
Sean Harmer 0b97f55530 QNX: Take orientation into account when reporting physical size
Previously landscape orientation was assumed in the QQnxScreen ctor. We
now calculate the initial physical dimensions correctly.

Change-Id: I6c434eaba1f931c769f343671fb80052287b51e5
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-21 16:02:06 +02:00
Sean Harmer 9be17aa468 QNX: Implement the QPlatformScreen::orientation() function
Also removed some invalid TODO comments.

Change-Id: I470a9a6538ce10a3a14df14faa641d7be7f18a74
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-21 16:02:06 +02:00
Johannes Zellner 39c5bad574 input: Synchronize multiple mice handled through evdevmouse plugin
EvdevMouseManager now receives relative pointer coordinates from each
connected mouse and is then responsible for clamping and forwarding them
to the QWindowSystemInterface. This avoids jumping cursors when multiple
pointer devices are connected. This does not change behavior together
with devices handled through the evdevtouch plugin.

Change-Id: I7feb358f68c3b3ebd138116224b4747c88c6761f
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-21 16:02:06 +02:00
Friedemann Kleint 061968d082 QWindowsBackingStore: Implement scroll.
Similar to XCB.

Task-number: QTBUG-24299
Task-number: QTBUG-24296 (partially fixed)

Change-Id: I4c9d813d9645f957f2caad0c4e395ce0d3d222cc
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-21 16:02:06 +02:00
Morten Johan Sorvig f5641c503b Cocoa: Fix memory leak in the accessibility code.
QCocoaAccessibleElement takes ownership of the
QAccessibleinterface pointer. Delete it in dealloc().

Change-Id: I45a5540b9cf564c639bfa119ff4882008d63fd96
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-05-21 13:00:29 +02:00
Johannes Zellner 278e9cb65d Input: evdevmouse plugin cleanup
Remove unused code and variables from the evdevmouse plugin.

Change-Id: Id7881bc726b5ffb2fa452e4d4dd082fe70f7ed28
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-21 03:10:49 +02:00
James Turner b8246f08e4 Cocoa implementation of QPA menu interface.
Implement the QPA platform menu interface for Cocoa,
including native menubar support and merging with the
predefined menus created from the bundled .nib. Cleanup
code previously used to maintain the menus, and add
a manual test of the menus code.

Change-Id: Ia99267ddb6485e18e05c540eb32c5aee6cbb85db
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-19 10:18:21 +02:00
James Turner 1f55af8e54 QPA menu abstraction, originally based on Morten's work
Create a QPA abstraction for native menus, derived from the
Cocoa support in 4.8, but with the expectation to support
other platforms too. Update the QtWidget QMenu and QMenuBar
code to maintain their QPA equivalents if they exist.

Change-Id: Id605de3da8811dc832bf48b35f9107778ad320ff
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-19 01:45:04 +02:00
Sean Harmer b16a307dbc Adding QPlatformTheme support for Blackberry devices.
Starting off simple with fonts that follow the Playbook guidelines.

Change-Id: If772f9a20c5e7566543be6bba47b49cdf3bf1524
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-19 01:45:04 +02:00
Sean Harmer b09d601261 QNX: Special case z-ordering of the QDesktopWidget window
The assumption that window creation order implies correct initial
z-ordering is broken when dealing with certain window types. In this
commit we special case the QDesktopWidget's window which maybe created
after normal application windows yet still need to be layered below
them.

Without this fix we may accidentaly activate the Desktop window when the
blackberry navigator service sends an event to activate the window
group. That results in broken focus handling.

Change-Id: I42dfde2efb4a0011e37e7bd2e7c5442590606a24
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Kevin Ottens <kevin.ottens.qnx@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-19 01:45:04 +02:00
Girish Ramakrishnan dd699d5ea5 eglfs: hooks can never be null
e60ca0de60 reworked the hooks design.
hooks is initialized with a stub pointer if we don't have a platform
hook.

Change-Id: Ia60facfebd9e4d9c08d237c6d49793efb598130f
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-18 15:28:32 +02:00
Girish Ramakrishnan 5672cbf131 eglfs: Add support for cursor hotspots
Cursor information is now loaded from cursor.json.

Done-with: Johannes Zellner

Change-Id: I093cf8e944d495269973e777d0b444ae4ececee1
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-18 15:28:09 +02:00
Girish Ramakrishnan 601a707f66 eglfs: Allow cursor atlas to be specified using an env variable
The atlas it assumed to have 8 cursors per row. All cursors have
to be square.

Change-Id: I7ffbad4662be450b146f84032bb26187894d528f
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-17 05:14:34 +02:00
Girish Ramakrishnan 40583c3d31 eglfs: delete cursor textures in the destructor
Change-Id: I7e86313134c428bacda41f5e5401ebc392ceecd8
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-17 05:14:31 +02:00
Girish Ramakrishnan ff3a081827 eglfs: remove multiple references to qeglfshooks.h in HEADERS
ce2b46daea introduced the mistake.

Change-Id: Ifbd276dc24138dfb771d0cb14cb5d18dfa7beb2d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-17 05:14:31 +02:00
Samuel Rødal 9487acb9d2 Handle EglDisplay and EglContext in the native interface of eglfs.
Change-Id: I793176204f12eea9d915fb7fe489bd3450a283cd
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-16 19:36:27 +02:00
Girish Ramakrishnan ce2b46daea Add eglfs cursor support
cursor-atlas.png was generated from existing cursor images
(qttools/src/shared/qtpropertybrowser/images/)

Change-Id: Ic4b396590eaec93e14a4b0915b15f735f5b1a5f5
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-16 19:36:19 +02:00
Johannes Zellner 7a304015bd input: Use UDev or specific device paths
Keyboard,mouse and touch plugins using evdev now either
use udev for device discovery or the plugin arguments
for fixed device paths.

Change-Id: I72606ad48c15c55a49724a82f7bc285dd3984c43
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-15 20:44:36 +02:00
Friedemann Kleint 5031aee972 Windows: Trim filter specification of the native file dialog.
In the event customer code (namely Qt Creator) does not pass a
clean specification (corresponding to 4.8 behaviour).

Change-Id: I8271e3a45bea4bea912fcdf0b7c0aae6c022c6a8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-15 18:08:11 +02:00
kb 4c3a35adec Do not limit mingw mkspec to "win32-g++" only.
The Qt configure script and various qmake project files interpret
mkspecs with a win32-g++ prefix as needing special mingw treatment.
This patch corrects one instance of the too-specific "win32-g++"
qmake platform scope and broadens it to "win32-g++*" -- bringing
it in line with the rest of the Qt project files -- thus re-enabling
custom mkspecs for crosscompilation.

Change-Id: I8c5107053ce9e0c499002b1990b492bda0eec52b
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-15 14:34:23 +02:00
Friedemann Kleint 8b4bf5f816 Fix font printing on Windows using the native engine.
- Add HFONT, LOGFONT, trueType as properties of the
  Windows font engine, make it a real Q_OBJECT.
- Query properties in the Windows print engine and use the HFONT,
  LOGFONT there.

Change-Id: I5c35275b32ef6580d7fa15ed83c6e79e33dc3334
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-15 14:34:04 +02:00
Girish Ramakrishnan b048b7ea18 Fix include path to fb_base.pri
Also fixes a typo in fb_base.pri.

Change-Id: I4fae156640325a7a2894ea0d1fbe96936f190bdb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-15 04:57:44 +02:00
kb cff6e39cd1 Remove capitalization when specifying include-libraries.
MinGW installations on case-sensitive filesystems expect
lowercase names of include-libraries and (usually) include
files.
When crosscompiling on Debian 6 (targeting MS Windows) linking
fails because mingw is looking for non-existent include-libraries.
Using lowercase names solves this.

Change-Id: Id3454f4ed8ba42b6ea93d65d9c0ce567db6712df
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-05-14 21:34:08 +02:00
kb 9bd24b6edc Do not override CO_E_NOT_SUPPORTED
Change-Id: Id0cb9e1dca67400a2e3a02da663d810b06bdb6ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-14 21:33:58 +02:00
Friedemann Kleint 61ebcc3ae7 Windows: Query mouse double click interval from system.
Change-Id: I6bfd19a76bf3fde1344760d7f216a2dffa4b9018
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-14 21:33:48 +02:00
kb dfd9ef3469 Add missing include library to prevent link failure
When cross-compiling the uuid library needs to be included
explicitly so the linker has access to _IID_IUnknown et al.

Change-Id: I713af426357603c08eef55857be20105e5aa6eba
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-05-14 09:14:05 +02:00
Thiago Macieira 61a3615c46 QGuiApplication::activeWindow() is deprecated
Change-Id: Id66740eb42fdaa86807222fbebc148de9434fa6e
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-11 19:41:25 +02:00
Christoph Schleifenbaum 358fd91951 Make QFileOpenEvents delivered again.
Create a FileOpenEvent within QWindowSystemInterfacePrivate and handle
it in QWindowSystemSystemInterface and QGuiApplication

Change-Id: Ie777c923958d83d56e8648c9bfb1f9dcb985654d
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-11 15:11:20 +02:00
Friedemann Kleint e3bbfe00d1 Windows: Compress Window Activation events.
If the next active window is already known at the time a focus
out is received, pass it to QWindowSystemInterface.
Fixes a test and Qt Creator's locator bar.

Task-number: QTBUG-24186
Task-number: QTCREATORBUG-1

Change-Id: I0aed4c386c08ed182555c95640e1637c5b67f5ce
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-11 15:11:20 +02:00
Marius Storm-Olsen ad97aba452 Doc: Fix \sa usage
Ensure comma between elements (757 missing), single space and curly-
braces around title elements, etc.

Change-Id: Id16c3fda7fc47a12a0682f8720214f4990609a97
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
2012-05-11 01:42:02 +02:00
Bjoern Breitmeyer 9b9895de8d Fix for windows platform plugin to work with WINCE.
Made opengl optional.
Made Clipboard and Accessability optional.
Moved internal mime data into its on source file,
was implemented in the clipboard source
which is just strange.

Change-Id: I6ddf0c656533bd45e22e24492fc2254d15b7822f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-10 22:56:25 +02:00
Friedemann Kleint 39b4e528e1 Fix warnings in evdevkeyboard-plugin.
- Fix warning about set-but-unused variable in case QT_NO_LIBUDEV.
- Compile with QT_NO_CAST_FROM_ASCII, string usages.

Change-Id: Ie98f1b4283919be878f8bbfc6e7378ad655152f8
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
2012-05-10 17:08:46 +02:00
Albert Astals Cid 07f3c1e26a XShaping drag and drop fixes
No shaping rectangles means no interaction with the window
The shaping rectangles are based on the window coords, so need to substract the window coords when checking for the point

Change-Id: Ic9004a8ec0f447cddcd1b4324d9fd60a94787cb9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-10 13:50:35 +02:00
Bradley T. Hughes 5f43422ddf qpa: Remove QPlatformDialogHelper::deleteNativeDialog()
This function isn't really needed. The QDialogPrivate destructor deletes
the platform helper, so the QDialog destructor does not need to do it.
Subclasses of QPlatformDialogHelper are now responsible for deleting any
native resources they create.

The one place in QFileDialog that needs to recreate the native dialog
can simply recreate the helper. QDialogPrivate::deleteNativeDialog() now
becomes QDialogPrivate::deletePlatformHelper(), which resets all state
to allow the platform helper to be recreated.

Change-Id: I58adfe8801e02e63b3cb4a9a3a0b8cb5b3c7b161
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 06:56:20 +02:00
Bradley T. Hughes d223b30c42 qpa: Clean up QPlatformDialogHelper API
Remove the _sys suffix from all members of QPlatformDialogHelper and its
subclasses. The QPlatform* class prefix already implies that these
methods are system specific, we don't need the method suffix as well.

Change-Id: I5ad1f928fab3a989992951acc244915e7fa48d32
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-10 06:56:04 +02:00
Samuel Rødal 4ab7d53431 Compile fix for kms plugin.
Change-Id: I0ad9716273a7beb643fab5fafc7fcf4884c8a364
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-09 17:51:53 +02:00
Laszlo Agocs 52bc65dc8a Enable float coords in evdevtouch
There is no reason to truncate the touch position.

Change-Id: I2bdcd43d3bb06a664e909d92704a701ece603847
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-09 17:51:18 +02:00
Friedemann Kleint 014ad6bf1b Windows: Disable Non-modal native file dialogs.
Disable dialogs, add explanatory comment. This is now
equivalent to Qt 4.

Change-Id: Ib6f4853d6f7ef1812bd5887d3ced8d7c8d1db5c8
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-09 16:46:11 +02:00
Bradley T. Hughes ab947649eb QPA: Cleanup native dialog modal execution
Remove the _q_platformRunNativeAppModalPanel() function, together with
the launchNativeAppModalPanel() signal and
emitLaunchNativeAppModalPanel() slot, which were previously used to run
the modal loop inside the QDialog::exec() loop. This trick isn't
necessary anymore, so remove the mechanism and code related to it.

Rename QPlatformDialogHelper::platformNativeDialogModalHelp() to
exec_sys(). This function is now responsible for both showing the native
dialog and running the modal loop. QDialog:exec() now calls this
function if a native dialog is in use (it does not call
QEventLoop::exec() anymore).

The dialogResultCode_sys() function was unused, so it has also been
removed.

This commit also removes some unused private slots that were left over
from the port to QPA.

Note that the comments in the Cocoa plugin are still valid and relevant,
but this commit does not fix the scenarios mentioned. This will be done
in a future commit.

The Windows plugin needs minor changes. The QueuedConnections to
accept() and reject() cause the deliver to come too late, resulting in
crashes, hence the change to AutoConnection (which ends up being a
DirectConnection).

Change-Id: Ifc90325c945ca78737e60bf331929f03ecc52e0a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-09 13:42:03 +02:00
Friedemann Kleint b316c3ac5e Improve widget geometry.
- Rename posFromMove to posIncludesFrame in Widgets and
  make the handling more fine-grained; try to clean it up
  as soon as the frame margins are known
  in QWidgetPrivate::fixPosIncludesFrame().
- Implement QWidgetPrivate::updateFrameStrut().
- Windows: Handle posIncludesFrame in window creation,
  notify changed geometry after setting window flags.
- XCB: Do not change the window gravity in propagateSizeHint()
  as this causes the window to jump around. Determine
  the gravity in window creation, leave it constant and
  fix the geometry when setting instead.
- Store the normal geometry when maximize/fullscreen
  state change events are received.
- Remove xfails from fixed tests

Task-number: QTBUG-25331
Task-number: QTBUG-24905
Task-number: QTBUG-24294

Change-Id: I89c7229d86aaf88f02247d63915da7905e4a27ea
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-09 13:40:16 +02:00
Friedemann Kleint e996009eb7 QPA: Add a themeHint for the animations.
Introduce a flag matching the Qt::UI_Effect enumeration and
return it as hint.

Replace the separate boolean flags in QApplication by a single
integer using the flags.

Change-Id: I29e33d4d23d13723ddb1b3f62fe781b9c0747572
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-05-09 02:28:31 +02:00
Bradley T. Hughes cf48eded4d Don't leak native dialog resources
Have QDialog::~QDialog() call deleteNativeDialog_sys() on the helpers,
so that we don't risk leaking any resources allocated in the helper.
QFileDialog does this now, but not QColorDialog or QFontDialog. The
Cocoa plugin worked around this problem by calling
deleteNativeDialog_sys() itself, but the Windows plugin does not do
this, resulting in leaks.

Change-Id: I380d87c95686c8f3cb260f9242299be27329280d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-09 01:36:09 +02:00
Samuel Rødal f280efc620 Added QScreen::refreshRate() to get the vertical refresh rate.
To give applications that want it the option to use a fixed timestep for
animations, and to avoid having values of 60 hard-coded (we have a
couple of those in qtdeclarative/src/quick already), we need to know the
refresh rates of the screens we are rendering to.

Change-Id: Ife49162e830440ad7eab563a27e8aebbbafc5fc5
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-05-08 22:30:10 +02:00
Konstantin Ritt 51998eb4f6 fix glyph's CMAP index might be corrupted
when SMP sybmol is present in the font.
this is a simple typo fix, actually

Change-Id: I54a4df43ece1a36f5c7997d121b7655afb2069e3
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-05-08 11:47:29 +02:00
Girish Ramakrishnan 36547f4eff Expose QPA API under qpa/*
The main reasons for doing this are:
1. _qpa.h end up in the master QtGui include file. QtGui is meant for
userland applications. qpa code is neither binary nor source compatible.
Inadvertant use of QPA api makes the user code binary-incompatible.
2. syncqt creates forwarding headers for non-private header files. This
gives people the impression that this is public API.

As discussed on the mailing list, even though QPA api is internal and subject
to change, it needs to  treated differently from private headers since they
will be used by  in-qtbase and out-of-qtbase plugins.

This commit does the following:
1. The _qpa in QPA header files is dropped.
2. syncqt now treats any file with qplatform prefix as a special file and
moves it to qpa/ directory. The recommended way of using QPA API in plugins
is: #include <qpa/qplatformfoo.h>. This allows the user include QPA API
from multiple modules (for example, qplatformfoo might be in QtPrintSupport)
3. The user needs to explicitly add QT += <module>-private to get access to
the qpa api.
4. Creates compat headers for the olden style qplatformfoo_qpa.h and QPlatformFoo
includes.

This commit does not change the cpp filenames. This requires a more careful
merging of existing non qpa cpp files and existing cpp files on a case by
case basis. This can be done at anytime.

The following files are not renamed as part of this changed but will be fixed
as part of a future change:
src/gui/kernel/qgenericpluginfactory_qpa.h
src/gui/kernel/qgenericplugin_qpa.h
src/gui/kernel/qwindowsysteminterface_qpa.h

files were renamed using

    for x in `find . -name "qplatform*_qpa.h"`; do git mv $x "${x/_qpa.h/.h}"; done
    for x in `find . -name "qplatform*_qpa_p.h"`; do git mv $x "${x/_qpa_p.h/_p.h}"; done

includes were renamed using script

for file in `find . -name "*.h" -or -name "*.cpp" -or -name "*.mm"`; do
    sed -i -e 's,.*#.*include.*<\(Qt.*/\)\?\(QPlatform.*\)>,#include <qpa/\L\2.h>,g' \
        -e 's,.*#.*include.*"\(Qt.*/\)\?\(QPlatform.*\)",#include <qpa/\L\2.h>,g' \
        -e 's,.*#.*include.* "\(qplatform.*\)_qpa.h",#include <qpa/\L\1.h>,g' \
        -e 's,.*#.*include.*"\(qplatform.*\)_qpa_p.h",#include <qpa/\L\1_p.h>,g' \
        -e 's,.*#.*include.*<\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)>,#include <qpa/\2\3>,g' \
        -e 's,.*#.*include.*"\(Qt.*/\|Qt.*/private/\|private/\)\?\(qplatform.*\)_qpa\(.*\)",#include <qpa/\2\3>,g' \
        $file
done

Change-Id: I04a350314a45746e3911f54b3b21ad03315afb67
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
2012-05-07 20:25:24 +02:00
Friedemann Kleint 365cd77c26 Windows: Fix helper routine for formatting errors.
Some return values were empty, or missing. Use QByteArrayLiteral.

Change-Id: Ib9f124dea1245c000c53098164bf29e78eaa13d2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-07 12:58:01 +02:00
Sean Harmer d0e7014429 Query the screen physical size rather than assuming fixed dpi of 96
Change-Id: I405e8d1cfbf7f0607f8525f9c8c93053109478d9
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-07 02:18:56 +02:00
Thiago Macieira 8c3a6570af Change remaining uses of {to,from}Ascii to {to,from}Latin1 [QPA plugins]
This operation should be a no-op anyway, since at this point in time,
the fromAscii and toAscii functions simply call their fromLatin1 and
toLatin1 counterparts.

Task-number: QTBUG-21872
Change-Id: I4aef078ea87ecd3699de107d1e9352d9fb6d6e39
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Paul Olav Tvete <paul.tvete@nokia.com>
2012-05-04 12:47:56 +02:00
Shane Kearns b45f0418e3 Windows 7 - fix nativewifi bearer plugin
The plugin code only handled the 2 events from windows XP, while
there are more events defined on vista/7. As the scan complete event
was being ignored, updates did not complete.

Task-number: QTBUG-24503
Change-Id: Ib1fd6883b0fd6962f61dab7830e577b9292163ef
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
2012-05-04 12:07:07 +02:00
Lars Knoll 6dac3f1894 Merge "Merge remote-tracking branch 'origin/api_changes'" into refs/staging/master 2012-05-03 16:11:58 +02:00
Lars Knoll 1e49914fee Merge remote-tracking branch 'origin/api_changes'
Conflicts:
	src/corelib/global/qglobal.cpp
	src/corelib/global/qlogging.cpp
	src/gui/kernel/qguiapplication.h
	src/gui/kernel/qwindow.cpp
	src/gui/kernel/qwindow.h
	tests/auto/corelib/kernel/qvariant/tst_qvariant.cpp

Change-Id: I62a8805577a7940d4d36bed985eb3e7019d22f2e
2012-05-03 12:26:09 +02:00
Friedemann Kleint c505a16451 Windows: Fix QWindowsNativeFileDialogBase::directory()
The item was never initialized.

Change-Id: Iaf404c7f601713886c1c1346cc145460e7e89171
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-03 11:33:05 +02:00
Kevin Ottens b6a4d69830 Advertise window (de)activation to Qt event system
The integration plugin now connects screens to the newly introduced
signals of the navigator event handler. The relevant screen then push a
corresponding event to the Qt event loop.

Change-Id: Ide6779bd1288c6560d113c77c60fc0ae30866d7f
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-03 11:33:05 +02:00
Kevin Ottens f74e5a0359 Emit signals to notify window (de)activation
The event notifier now deals also with the windowActive and
windowInactive PPS messages. The event handler simply emit the
corresponding signals.

Change-Id: I1906a47a314bf81877e4dd3dc52c6463312f3aac
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-03 11:33:05 +02:00
Lauro Neto 31a5fb1fa2 Update QXbWindow orientation API
After orientation handling was split in window orientation
and content orientation QXcbWindow remained with the old api.
This patch renames setOrientation to handleContentOrientationChange,
fixing the issue of double status bar (portrait and landscape)
when running Qt5 apps with QtComponents on N9 in portrait mode.
(thanks to Simon for pointing out the difference between
changing the window and the content orientations)

Change-Id: I20d0be0c7f7e4593ac1e3c2ac2518144fc7fed0e
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-05-02 22:38:11 +02:00
Kevin Krammer a818a1eb2f Add implementation of virtual keyboard based on BPS events
Change-Id: Ida4fa344c54db32b7b22b08a124b8c7b6df8adef
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Nicolas Arnaud-Cormos <nicolas@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-02 17:52:50 +02:00
Debao Zhang ade8888603 Don't use obsolete qVariantValue, qVariantCanConvert, etc.
qVariantValue and qVariantCanConvert are Compatibility members, while in
Qt4.8 they are marked as Qt 3 Support Members.

qVariantFromValue and qVariantSetValue are Obsolete members.

Change-Id: Ie8505cad1e0950e40c6f6710fde9f6fb2ac670fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-05-02 08:30:59 +02:00
Donald Carr 6102ab8d64 Make eglfs hooks functionality namespace cognisant
Change-Id: Ie9f86bd0494c0423f50d0f405922ab169b2431e3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
2012-05-02 04:29:15 +02:00
Rohan McGovern 2929b920af Fixed windows platform plugin with -qtnamespace.
Added missing QT_BEGIN_NAMESPACE/QT_END_NAMESPACE

Change-Id: I2ffc5ec18d19027c01c81ba9c29f6d7cac5e9619
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
2012-05-02 03:20:56 +02:00
Olivier Goffart 9420a7da7a Fix warning
qxcbnativeinterface.cpp:209:8: warning: unused parameter ‘context’
[-Wunused-parameter]

Change-Id: I0c90e94020907cf84626af9f3fef3e6746182431
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-01 09:41:27 +02:00
Kevin Krammer 050ff2730c Handle navigator events in BPS event filter
Change-Id: I37b5de4bf1e9f9bbe53910eb5e3f490172b28371
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-01 07:10:45 +02:00
Kevin Krammer e212d25972 Register for and handle screen events delivered through BPS
Delegates actual event inspection and reaction to the screen event
handler class already used by the PPS screen event handler

Change-Id: Ic07efa1de3f6b452f3091e901bd8a577175e3cf0
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-05-01 07:10:43 +02:00
Lars Knoll 69218f58a9 Initialize members
Change-Id: I786de497af63a45d9c38780e856a3f27c5ce8468
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-05-01 07:10:28 +02:00
Kent Hansen 31e9f2a7a5 Port bearer plugins to QMetaMethod-based connectNotify()
The const char *-based API is deprecated and will be removed in Qt5.

Some of the reimplementations were commented out since the signals
being checked for aren't even declared by the relevant classes.

Change-Id: I4486d1f3242db21cebd55fb53def3904f7c236ba
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-05-01 01:18:03 +02:00
Bradley T. Hughes b46189c3c3 Support all modality types in QPlatformDialogHelper
Modality is not a boolean property in Qt. There are 2 types: window
modality and application modality. Native dialogs can support both of
these types as well (e.g. on Cocoa, a window modal file dialog should be
displayed as a Sheet). Remove the QPlatformDialogHelper::ShowFlags enum
and instead pass a Qt::WindowModality parameter to
QPlatformDialogHelper::show_sys().

The Windows implementation has been updated to check for
Qt::ApplicationModal instead of the ShowModal flag (since only
Qt::ApplicationModal dialogs are blocking).

The Cocoa implementation has been updated to only use non-modal and
application modal native color and font dialogs (which restores Qt 4
behavior). These are shared Cocoa panels that cannot be shown as sheets,
however. If the programmer asks for window modal color/font dialogs, we
use the Qt versions, not the native ones. The file dialog can be shown
either as a Sheet (but we need to pass an NSWindow parent for it to work
properly) or as an application modal dialog.

This change has been tested on Mac OS X with
tests/manual/windowmodality.

Change-Id: I9064987433895c55f68aac979ef8e8207fb24bbe
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-04-30 14:01:22 +02:00
Morten Johan Sorvig 4e59daf34f Cocoa: Fix beep-on-show for Creator menus.
Maintain a current window state variable in QCocoaWindnow
and use it when setting the new window state on the
NSWindow.

The NSWindow state accessors can apparently not be
trusted, in particular isZoomed always returns true
for the Creator popup menu.

Change-Id: I78f13de251f3730752813bba17459011f8558aee
Reviewed-by: James Turner <james.turner@kdab.com>
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-04-30 14:01:22 +02:00
Miikka Heikkinen e1e9295926 Fix the tst_QOpenGL::sharedResourceCleanup() test case in Windows
QWindowsGLContext was returning always false for isSharing() query,
as it was falling back to default implementation.

Task-number: QTBUG-24192
Change-Id: I884d559d69545ef85a0d07d7287bc50ce459c1bd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-30 14:01:22 +02:00
Kevin Krammer fa94f01489 Use BPS based event dispatcher
Create a QPA specific subclass of the blackberry event dispatcher
(basically the BPS equivalent to the QUnixEventDispatcherQPA created
by createUnixEventDispatcher()).

Create an event dispatcher event filter that will receive all BPS events
and then either handle them itself or delegate to event subtype
specific handlers.

Change-Id: I112e0274156727d3aa9e5693b59d041c65be4daf
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
2012-04-30 14:01:22 +02:00
Miikka Heikkinen 891345072e Remove declaration of QWindowsFontEngine::createEngine()
There is no implementation for this function so might as well remove
the declaration. The function is actually implemented by
QWindowsFontDatabase class, where it is also properly declared.

Change-Id: I8f5c050fa3f3c48b07e10f205eb0f7b16e12b737
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-30 11:37:36 +02:00
Friedemann Kleint bf4a4a106f QWindowsBackingStore: Flush to correct window.
Task-number: QTBUG-25435

Change-Id: I13f57a328a7ac3402fe0def9d724f7e700016c80
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-04-27 20:15:52 +02:00
Kevin Krammer 8c59e22538 Create interface for navigator calls and implement for BPS and PPS
Makes QQnxServices available on non-BPS systems by delegating to an interface
which is implemented on systems with BPS using the currenly used navigator API
and on systems without BPS by sending an appropriate message to the navigator's
PPS service interface.

Change-Id: I0e32fb11e6debb7b7b4693c0bc02af4f75ee2162
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2012-04-26 15:21:46 +02:00
Jan-Arve Saether c10a0c29d3 Map QAccessible::Role to the proper IA2Role.
All enum values after the MSAA-specific roles needs a special
mapping.

Change-Id: I6c77abf09b68d2d3d772937be986d532db2e5292
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-04-26 11:45:01 +02:00
Sean Harmer 5c882dbb89 Use non-blocking reads on virtual keyboard pps device.
Change-Id: Iad350c948049128f3014a6ad6536ac9dc2ee86d5
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Giuseppe D'Angelo <dangelog@gmail.com>
2012-04-26 11:45:01 +02:00