Commit Graph

730 Commits (eb4828bbfd54540b2b987bbae1cd6385e49c2a67)

Author SHA1 Message Date
Laszlo Agocs a4fbae9fd9 Fix xcb's native resource getters.
Returning pointers to unexpected types for unknown keys is quite
wrong. The clients expect 0 in such a case but what they got (until
now) was whatever was associated with the default constructed enum
value.

Change-Id: Iefd7bf461bfb2c1f4c73f5f9f291aecad60219eb
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Jani Uusi-Rantala <jani.uusi-rantala@nokia.com>
2012-02-10 19:40:19 +01:00
Samuel Rødal 38257651b7 Properly read back the actual format in xcb and xlib plugins.
Change-Id: Iccef2c4a87863b93914b84edf3a6015dad5e512a
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-02-10 16:24:47 +01:00
Jan-Arve Saether ff2886db6a Move all usages of Relation enum values to QAccessible::relations()
Next step is to remove navigate(), but that has to be done in
qtdeclarative first.

Change-Id: I01ea1386c092446be04cc19d0f70adf53f094adc
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-02-10 15:21:46 +01:00
John Stanley 7038151326 Add support for xlib backend X Event filters
Change-Id: Id1e7995f98395de748ce47a27365e4bdd564ea49
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-02-10 03:02:07 +01:00
jian liang c6a1cb701c Improvement to font database cleanup
This patch do the following things:

1) Call QFontDatabasePrivate::free() to clean up font database before
destroying the platform integration object. This is to prevent object leak
which is allocated by platform plugin.

2) Allocate FontFile structure for each font registered in windows
platform to prevent double free of FontFile structure.

3) qt_registerFont() will release the old handle of the registered font
and replace it with the new handle. This is to prevent FontFont structure
leak.

Change-Id: Ib5ca20c695e1e365689fd8554f7caff6ee77a0b1
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-02-10 00:27:44 +01:00
Albert Astals Cid 651016020f Take into account shaping in findRealWindow
It can happen that there is a window covering all the screen but it is shaped
to only take part of the screen. If that happens, besides the condition of
   QRect(attr.x,attr.y,attr.width,attr.height).contains(pos)
we also need to query the server for its region rectangles and make
sure the cursor is inside one of those rectangles. If that does not happen
we have to return 0 so the hierarchical xcb_query_tree_children xcb_query_tree_childrenntinues

Change-Id: I67327672e3d854d064190b55a07bd56ade4dfddb
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-02-09 10:50:20 +01:00
José Millán Soto 4c9266fd16 Make copy and cut methods work in QAccessibleTextEdit
Correct the implementation of cutText and copyText in QAccessibleTextEdit so
they use cut() and copy() methods of QTextEdit

Cherry picked from Qt 4 - 36202cf8fca822492615d418bd563a40bee4af08

Change-Id: I86a531ed7059b1a928cb8515c2743d4d8b596b36
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-02-08 07:48:46 +01:00
Jonathan Liu 029bad8b5a Fix compilation with MinGW-w64
Fix compilation with MinGW-w64 with the following changes:
- Include intrin.h to fix __cpuid not declared error
- Include intrin.h before *mmintrin.h headers to avoid extern linkable
  mismatch
- Use quintptr instead of unsigned long to handle LLP64
- Do not declare winuser.h structs already provided with MinGW-w64
- Work around IID_IShellItem being declared but not defined with
  MinGW-w64
- Remove incorrect use of SUCCEEDED macro on pointer

Change-Id: Ia21f8e3a1d225cf501e646eacd968bfc744ce0a2
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-08 03:13:32 +01:00
Friedemann Kleint a313db2c81 Fix warnings in input contexts.
Change-Id: Idbd46b8bfe73015cce98d510992b3bb57c1e1ded
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-02-08 03:13:28 +01:00
Laszlo Agocs 684a1559f0 Reorganize evdev plugins
linuxinput becomes evdevmouse. The experimental touch code is removed,
now the plugin's purpose is solely to generate mouse events from
absolute and relative pointer events.  The plugin key is EvdevMouse.

touchscreen becomes evdevtouch. The plugin key is EvdevTouch.

In case keyboard support appears some day, it will fit nicely in the
system by the name of evdevkeyboard or similar.

Some little udev code is moved to platformsupport so it can be shared
between the plugins. This may be extended later if more sophisticated
udev support is needed. N.B. the intention is to keep this as simple
as possible. We are shipping these plug-ins as reference examples, not
as full-featured drivers.

evdev and udev support has configure time tests from now on. This
means the "drivers" (generic plugins) will get built automatically
when the support is available.

Change-Id: Iaf6260b5c2edfb9f25d070d2764466725adc6b4e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-02-08 03:13:18 +01:00
Andreas Holzammer 194d2ca5c3 Use Q_OS_WINCE instead of Q_WS_WINCE
Window system defines have been deprecated,
so use Q_OS_WINCE instead.

Change-Id: I52059d0f854fe783ac20610ab248800c3e1e827c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-07 20:04:44 +01:00
Friedemann Kleint 8e1107fb22 Fix compiler warnings in accessible code.
- Add missing return value.
- Remove unused static functions.

Change-Id: I0271cacc2a01b33209c4d9d2d958ad89924f8951
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-02-07 20:03:43 +01:00
Bradley T. Hughes 3722bc5d3c Ensure that posted events are sent by Q*Application::processEvents()
Commit b7ca6a81db removed a call to
sendPostedEvents() that deemed unnecessary. Unfortunately, it is
necessary, as shown by the
tst_QScriptEngine::processEventsWhileRunning() test in the QtScript
module. Re-add the call, but only when not waiting for more events.

Change-Id: I648d66dd3ba484ad9e9a93fc03a9792cca5035c6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2012-02-07 12:47:25 +01:00
Friedemann Kleint 6a75785f49 Compile with -no-freetype.
Fix breakage introduced by
3f75fb8d8f.

Task-number: QTBUG-24091
Change-Id: I322bbab382a5e375dccd4273c70a0ed8b525d125
Reviewed-by: Jonathan Liu <net147@gmail.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-07 10:12:33 +01:00
Jan-Arve Saether 1d18fd0164 Remove QAccessible::FocusChild, add focusChild()
Also cleanup (reduce) all implementations of navigate() in order
to make the final removal of navigate smoother.

Change-Id: I2c216db8f5b2e40afcce8f859fc775053adc2fe3
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-02-06 10:15:09 +01:00
Friedemann Kleint 3f75fb8d8f MinGW: Fix warnings.
- Special #define to access HB seems no longer necessary
  (it was causing about mismatching DLL import attributes).

Change-Id: I57cc7d57b12a67c1d549b053db81e1f198f87786
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
2012-02-04 08:43:38 +01:00
Friedemann Kleint 5117f55063 Fix compilation on MinGW.
- Add missing constant.
- Make FontKey a pair instead of a function-local type which
  cannot be used as template parameter for gcc.
- Fix warnings about redefinition of NOMINMAX and enumeration.

Change-Id: Ie3eb6e5b8dd9cd81210d6e10270ada0158aaf809
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-03 15:09:03 +01:00
Bradley T. Hughes b7ca6a81db processEvents(WaitForMoreEvents) should return after delivering events
The Cocoa event dispatcher sends timer, socket, and posted events
correctly, but they are not NSEvents, and as such, they do not cause
[NSApp nextEventMatchingMask] to return. When calling processEvents()
with WaitForMoreEvents, but the EventLoopExec flag isn't set, we want to
interrupt the WaitForMoreEvents.

As a result, We should not call wakeUp() at the top of processEvents(),
otherwise we end up shortcutting other event sources. We also do not
need to call QCoreApplication::sendPostedEvents() directly either in
processEvents(), it's the postedEventsSource job to do that.

The interruptLater mechanism is always run when calling processEvents()
directly (not via exec()), which causes problems when testing
processEvents(). Don't use interruptLater unless the modal sessions
change (which is indicated by the cached session pointer being reset
to zero).

Change-Id: Iec2b49a4f306b2702c979522f12a28d0b5fbd0b4
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2012-02-03 01:40:24 +01:00
Friedemann Kleint 920795e99a Windows QPA: Compile with QT_NO_CAST_FROM_ASCII, warnings.
Change-Id: I75d6a102a6a1fa0b5f8add049442f23d6fd57725
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-02 17:16:26 +01:00
Morten Johan Sorvig ae664f7dc7 Move QString <-> NSString conversion to QtCore
Add (private) API to QCFString:
	static QString toQString(NSString *)
	static NSString *toNSString(const QString &)

Add implementation to qcore_mac_objc.mm. Keep the
mac_cpp since it's used for building qmake as well
as bootstrapping.

Replace usage of NSString conversion functions
in the cocoa and corewlan plugin with QCFString.

Change-Id: I9f34edd5231255aef9d8d6e9a60306174bb279b3
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-02-02 14:18:36 +01:00
jian liang b852b01958 speed up font enumeration in windows platform
Currently, font enumeration is very slow in windows platform, it will take
several seconds to enumerate all fonts for the first time. This patch
cache the font information queried from font registry, it can
significantly speed up font enumeration.

Change-Id: Ic783877b7f3db3facf24965b0c5d669b22d40c61
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-02-02 11:10:04 +01:00
Pekka Vuorela 71726ccf67 Renamed QInputPanel as QInputMethod
QInputMethod better describes what the class is about, input methods
in general, be they panels or just composing input from key events.

Compatability headers added for old name. Not bulletproof but should be
enough to get transition done.

Change-Id: Iefde6e7ccb1ec4a3b226cef3469089e751c60fc1
Reviewed-by: Joona Petrell <joona.t.petrell@nokia.com>
2012-02-02 11:10:04 +01:00
Bradley T. Hughes b2b3abe0eb Remove duplicated function from QCocoaEventDispatcher
The qt_mac_waitForMoreModalSessionEvents() is identical to
qt_mac_waitForMoreEvents(), except that it passes a different inMode
parameter to [NSApp nextEventMatchingMask]. Change the latter function
to take the mode as a parameter itself, defaulting to the default mode.

Change the dequeue parameter to [NSApp nextEventMatchingMask] from YES
to NO. Having the function dequeue the event, and then immediately
reposting the event is not necessary.

Change-Id: Iba45d41ad3ff4d5721d1068e6d5c78585cb15810
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@nokia.com>
2012-02-02 09:27:25 +01:00
Friedemann Kleint 40fa7a816f Move QPlatformDialogs from QtWidgets to QtGui.
- Remove dependency of the Windows platform plugin on
  QtWidgets.

Change-Id: Iceb876ba7df46b49966af0fc101816654eedb5c5
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-02-01 23:57:21 +01:00
Gunnar Sletta 7518adbb13 Introduced BufferQueueingOpenGL capability in platofrm integration
Change-Id: Iedb7255862fd3a11aceae0e06e90a5539febc7e7
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-02-01 08:25:45 +01:00
Simon Hausmann fe7265a0bb Maliit: Fix enter on VKB not resulting in text input field acceptance
Pressing enter on the VKB should result in the emission of the accepted()
for text input fields in QML or the returnPressed() signal in QLineEdit.
In that case the Maliit input server calls our keyEvent method over DBus,
which this patch implements.

Change-Id: I46170c30315adaf21db0e232f53780ccaa67e4bf
Reviewed-by: Jan Arne Petersen <jpetersen@openismus.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2012-01-31 19:57:33 +01:00
Jan Arne Petersen b27bf9bb94 Rename meego to maliit platforminputcontext
Also build the plugin on linux systems with D-Bus. There is nothing
MeeGo or Maemo specific about this plugin or Maliit.

Task-number: QTBUG-22994
Change-Id: Idcccfb01f79166a54c5809741389b29ccac05a15
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-01-31 19:57:12 +01:00
Kai Koehne 20beb5ff53 Windows: Fix compilation with -qtnamespace
Change-Id: Ib006d74299d65e5872a5a524eaa937e127306ec7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-31 16:17:55 +01:00
Kai Koehne ef63b7befd Mac: Fix compilation with -qtnamespace set
Change-Id: Id3b9f4e3edf2caeac32c8a44278cdf05a1fc70fb
Reviewed-by: hjk <qthjk@ovi.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-31 16:17:55 +01:00
aavit 4fce5d1795 Moving tiff image format support and libtiff out of qtbase
The tiff plugin and bundled libtiff is moving to the qtimageformats
project on Gerrit.

Task-number: QTBUG-23887
Change-Id: I4c848232fdccddd7e7f54215f9eaa78dc4c3a53d
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-31 14:31:04 +01:00
Frederik Gladhorn bf9bdf5328 Use events for accessibility updates.
The problem with the old updates is that it was impossible
to send details about the update.
For the Linux implementation to work properly with AT-SPI I need to know
which state changed (currently I only get a generic "state changed" event)
or which part of the text was changed for long texts (imagine a word processor sending updates).

This also gives us more options when updating with events generated from not QObject based objects.

Change-Id: If0b6c83c523092565eb48e79f3f6de5a1b905ea8
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-31 12:02:33 +01:00
Uli Schlachter 9464458098 xcb: Check for SHM extension before using it
If we call any xcb_shm_*() function, libxcb will have to figure out
SHM's major number. However, if that fails because the SHM extension is
not available, xcb will disconnect from the server. Obviously, that's
not what we want and must be avoided.

Change-Id: I8eba5ff9e84e0e2017a5c0d88fda4efd0459bd1e
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-31 04:56:04 +01:00
Uli Schlachter 98d34beb03 xcb: Check for SYNC extension before using it
If we call any xcb_sync_*() function, libxcb will have to figure out
SYNC's major number. However, if that fails because the SYNC extension
is not available, xcb will disconnect from the server. Obviously,
that's not what we want and must be avoided.

Change-Id: I9a1032e1cfac074a52bafcb0772304bfd423e770
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-31 04:55:50 +01:00
Kurt Korbatits 0790756c93 Changed debug output to option in qminimalbackingstore.
- Added QT_DEBUG_BACKINGSTORE environment variable to enable
  debug output. Defaulting to no output if not set.

Change-Id: Id9c369031f946d77605321c8b28ab3378da8fbf9
Reviewed-by: Kurt Korbatits  <kurt.korbatits@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-31 04:55:05 +01:00
Holger Hans Peter Freyther 8f6ee81ee9 directfb: Use QPlatformPixmap::fromFile for Qt resources
Move to fromFile to load Qt resources for two reasons. The
first is that ::fromData creates a QBuffer on our raw data
and is passing that to the QImageReaders. Right now we there
is a QFile -> QByteArray -> QBuffer transition that wastes
cycles. The other reason is that QPlatformPixmap::fromData
did/does not check if the decoded image is null and might
cause a crash because of that.

Change-Id: I7cb92d84874323e7205ab28883cc0fe9ecca1e27
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-01-31 04:55:00 +01:00
Jason McDonald 0d00841c5f Avoid non-standard indentation of license headers.
The strange indentation has made maintenance of license headers
difficult on several occasions.

Change-Id: Ib29a7e5275e2c7a2c13a3f32fd2479f34d3353ca
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 16:40:10 +01:00
Friedemann Kleint 870f19f44b Add native event filters to Windows, forward to Widgets.
Use prototypically for qwizard_win.cpp.

Change-Id: I075e81ae1bc3d62d9f27e51c73c800ffd71cbcd6
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-30 16:40:02 +01:00
Jason McDonald 5635823e17 Remove "All rights reserved" line from license headers.
As in the past, to avoid rewriting various autotests that contain
line-number information, an extra blank line has been inserted at the
end of the license text to ensure that this commit does not change the
total number of lines in the license header.

Change-Id: I311e001373776812699d6efc045b5f742890c689
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-30 03:54:59 +01:00
Jan Arne Petersen f91c39fe3a Use per session socket to connect to maliit server
In newer versions of maliit a per session abstract socket for
communication between maliit server and input contexts is used. The
address is published over the D-Bus session bus as address property in
the org.maliit.Server.Address interface of the
/org/maliit/server/address object at the org.maliit.server service.

Fallback to old socket when org.maliit.server service is not available.

Task-number: QTBUG-22982
Change-Id: I1b2cdd0c804d3d625e18b4958dd60008ea289d91
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-01-29 14:42:06 +01:00
Friedemann Kleint 692a1babe5 Decouple QPlatformTheme from QDialog.
- Use an enumeration for the dialog type.
- Implemented on Windows and Mac

Reviewed-by:  Morten Johan Sorvig <morten.sorvig@nokia.com>

Change-Id: I213748a08168efbabc2ac0106308e97ff19d19c0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-27 21:17:14 +01:00
Friedemann Kleint 69b9943d94 Windows: Fix exit crash related to deletion of platform screens.
Do not delete screens in the destructor as this might call
back to the Windows and use QWindowsContext.

Change-Id: I5e66e480d4b6ddb8b17cc92e4bef93013e336be6
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-27 21:12:35 +01:00
Simon Hausmann a120f1a733 Fix compilation of MeeGo/Maliit related code after Qt::ScreenOrientation API changes
Qt::UnknownOrientation is now Qt::PrimaryOrientation.

Change-Id: I2846a90bd11ecd1416c29b7bd861f180ccb129a1
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2012-01-27 13:55:55 +01:00
Samuel Rødal 7f9b624e12 Fall back on glXChooseVisual() if glXChooseFBConfig() doesn't work.
Some older drivers don't fully support glXChooseFBConfig(). As a bonus,
fix some memory leaks here and there.

Task-number: QTBUG-21880
Change-Id: Ie306dee27f616927a6aa55fd71601569b828afcc
Reviewed-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-01-27 11:01:14 +01:00
Simon Hausmann 6b85acd515 Fix virtual keyboard on Harmattan not following window content orientation changes
Track the input item's window and notify the input method server when the content
orientation changes.

Change-Id: I401c4fd677ed2eebd8b85968d4a2b3692517e097
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2012-01-26 15:45:19 +01:00
Gunnar Sletta 4ecf82795d Remove use of QT_MODULE from library
These defines were there to aid in the commercial
licensing scheme we used long ago, and are no longer needed.

Keep a QT_MODULE(x) define so other modules continue compiling.

Change-Id: I8fd76cd5270df8f14aee746b6cf32ebf7c23fec7
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-25 10:19:44 +01:00
aavit 48f9ba388b Remove support for the MNG file format and the bundled libmng
The MNG file format is generally abandoned, and libmng has been
unmaintained for several years.

The MNG plugin and bundled libmng has been moved to the
qtimageformats project on Gerrit.

Task-number: QTBUG-21869
Change-Id: I946432347014ffde2b72307a5f8b166ca5553602
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-25 02:22:18 +01:00
Jiang Jiang af48e0ba36 Move glyphMargin() to QFontEngine
glyphMargin() support for QTextureGlyphCache is implemented in
respective font engines, thus this function is platform dependent.
Before Qt 5 the code is guarded in macros like #ifdef Q_WS_MAC,
now we should move them into QFontEngine and its subclasses.

So far only Windows font engines support it. FreeType and Core Text
based font engines all ignore it.

Change-Id: Ia14016533d8fbfaacf848a7d3bc928f8197318f5
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
2012-01-24 17:42:04 +01:00
Samuel Rødal b39df8bf92 Made window orientation API more flexible.
Previously we only had QWindow::setOrientation() which was a hint about
the orientation the window's contents were rendered in.

However, it's necessary to separate between the orientation
corresponding to the window buffer layout and orientation of the
contents. A game for example might typically want to use a landscape
buffer even on a portrait device. Thus, we replace
QWindow::orientation() with QWindow::reportContentOrientationChange() and
QWindow::requestWindowOrientation().

Change-Id: I1f07362192daf36c45519cb05b43ac352f1945b5
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-24 15:38:48 +01:00
Xizhi Zhu 8511ed8bc2 Remove Symbian specific code from QtGui.
Change-Id: I103abb545d1a5deed7d40c0b50fc3eff0c89d622
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-24 01:09:16 +01:00
Xizhi Zhu 8cb2fc67fa Remove Symbian and Maemo code from uikit plugin.
The code is only supposed to be used by iOS, so platform specific code
is removed.

Change-Id: Ibea585dfac9e6a7a87e66a1426793dfd8713fdef
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-24 01:09:12 +01:00
Morten Johan Sorvig 95ea9cb191 Use QObject pointer as QCocoaAccessibleElement id.
Each QCocoaAccessibleElement needs to provide a
unique stable id through the -(NSUnterger)hash
method.

The previous approach of basing the hash on the parent
hash plus the child index is unpractical now that
childAt() can return distant descendants instead
of immediate children only. Use the QObject pointer,
which is set for all accessible interfaces today.

Change-Id: I5868e3a81c1b4da7233504f30003ab8060e9fa3f
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-23 14:47:10 +01:00
Holger Hans Peter Freyther 43696a9e42 directfb: Deal with Qt trying to create a QSize(0, 0) platfom window
Qt will attempt to create a platform window with the above size and
DirectFB will fail to create the window. Make sure the width/height
is at least 1 before handing it to DirectFB.

According to Samuel it is legitimate to create a QPlatformWindow  with
QSize(0, 0) and it is the job of the platform plugin to make it work.
Follow the approach of the XCB plugin and increase the size.

Change-Id: Ifc92780b46f1a73123945988d06bd21a3deb6bb0
Reviewed-by: Jonas Gastal <jgastal@profusion.mobi>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-23 12:52:27 +01:00
Friedemann Kleint 0b1586f86c Windows: Implement native event filters.
Change-Id: Ibdf556428e4dbb9156c87504b923ec9600bcf871
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-01-23 11:02:18 +01:00
Friedemann Kleint e309e7a3e8 XCB: Introduce enumeration for event filter types.
Remove QByteArray-construction and hash lookup in the event
handling; use an enumeration indexing an array instead.

Change-Id: I4d272b32a5ff71c8da58197cf3a0b38c1e61d489
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
2012-01-23 11:02:18 +01:00
Uli Schlachter bd2ce747fc xcb: Correctly check the X11 connection
Commit e08453f31a added a check which makes
sure qt prints an error message instead of segfaulting when it can't
connect to the X11 server.

However, libxcb will never return NULL from xcb_connect() and thus that
commit only works if XCB_USE_XLIB is defined and used.

Change-Id: I8cc1496494a94f07055a3ac5093ce362dd347c5b
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-23 11:02:18 +01:00
Xizhi Zhu 4b3cdc3c1a Remove Symbian specific code from QtSql.
Change-Id: I3fc538862c7334914ec9e4331ef2d3db5c699ea9
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-23 11:02:18 +01:00
Uli Schlachter 04a4b99902 xcb: Don't crash on missing mouse pointer
The draganddrop examples all crashed here because they were using a
default-constructed QImage() (i.e. one without any content).

I guess this happens here because I don't have any mouse theme set.
To test, one could start a second X server, but without any WM or DE.

The "evil" QImage() came from QGuiApplicationPrivate::getPixmapCursor().
This function seems to just always "return QPixmap();".

This fix is correct because the only caller has another fallback if the
createNonStandardCursor()-fallback didn't work. This caller is
QXcbCursor::createFontCursor().

Change-Id: I7ec7fbcfdf0203e983149b5e73016cc7e85ecf40
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-23 11:02:18 +01:00
Jason McDonald 629d6eda5c Update contact information in license headers.
Replace Nokia contact email address with Qt Project website.

Change-Id: I431bbbf76d7c27d8b502f87947675c116994c415
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-23 04:04:33 +01:00
Mark Brand 2ae91491b4 move plugin text codecs to QtCore
Having plugin text codecs adds considerable complexity to
configuring Qt. The plugin interface is designed for optional
features, but text codecs tend to be used for essential functions.
A dramatic example is loading a codec plugin from a file whose path
needs to be converted by the codec.

Codec plugins can also be a nuisance to builders of applications
linking to static Qt. This is because the application might need
to explicilty import the static codec plugins which are actually
dependencies of QtCore.

For these reasons, it has been decided not to have text codec plugins
any longer.

Change-Id: Ic6c80a9c949bd42e881e932d1edae23fe4fe4c88
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2012-01-20 18:48:22 +01:00
Friedemann Kleint fc366046b4 Windows: Work on QPlatformScreen implementation.
Implement virtual desktops (which is the default for
EnumDisplayMonitors) and change notifications.

Change-Id: Id24a1b6d9766903901ddf1ded8e9933aa03589d4
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
2012-01-20 14:17:41 +01:00
Friedemann Kleint 0f8ad242fb Add a virtual sendPostedEvents() to QEventDispatcherWin32.
Reimplement this in QWindowGuiEventDispatcher to send both Qt posted events and
queued QPA window system events. We need to do this at a well defined place,
instead of sending events outside of the eventloop from the Windows proc.

This fixes various hangs for example in tst_qinputdialog, which used a 0-timer
to close a dialog.

Change-Id: I64e0b8f1209fb434059a7fa667ed585902c19db4
Initial-patch-by: bhughes <bradley.hughes@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-20 14:17:41 +01:00
Eskil Abrahamsen Blomfeldt c274ea7cf5 Introducing QPlatformSharedGraphicsCache
Interface to provide cross-process caching mechanisms in a platform
plugin. Can be used for shared glyph caches and icon caches etc.

Change-Id: If0d89a0a50bbd6eee05daf908448262ff270fc5b
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
2012-01-20 14:17:41 +01:00
Simon Hausmann 1ca05bb0c1 Add support for platform plugin specific event filters.
The setEventFilter on the platform native interface allows subscribing to
events on the backend by event name.

Change-Id: Ib10077fbc69f0207edbae1177e7bbd18c8d0f9ae
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Michalina Ziemba <michalina.ziemba@nokia.com>
2012-01-20 12:43:52 +01:00
Mark Brand ce2428c608 fix case of included windows headers
Allows cross-building on unix.

Change-Id: If389138c2d3bf5e72c62c85d054785ac9232f158
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-01-19 23:58:34 +01:00
Bradley T. Hughes a84d893bae Add "nswindow" resource to the Cocoa native interface implementation
This will return the NSWindow* for the given QWindow*. Port the QWidget
autotest helper to use the native interface and the "nswindow" resource.

Change-Id: I754b7e9288690ac3c99c3ec65c5526d5fe121234
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-19 11:31:22 +01:00
Bradley T. Hughes 1e29040c17 Prevent menubar related crashes
The native menubar interface does not communicate menubar destruction
down to the implementation, so we cannot keep naked pointers (otherwise
they become dangling). This happens often while running autotests as
windows, menus, widgets, etc. are quickly created, tested, and then
destroyed.

Work-around the crashes for now by using QWeakPointer. A proper fix will
need to be investigated to prevent the menubars hash from holding
dangling key pointers.

Change-Id: Ie8e50cbc52f9510e844fc3c0c5ae6a0865320282
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-19 11:31:22 +01:00
Friedemann Kleint 114079e224 Windows: Implement QPlatformScreen::name()
Change-Id: I04ec91b12936bdcc179b79558ac2285b70281dcd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-19 10:09:09 +01:00
Jan-Arve Saether ec550e28d2 Remove all references to QAccessible::Self
navigate() to Self does not make any sense (its basically a clone).
It seems that its not that useful to return Self from relationTo(),
since it was only one place where relationTo() was called where it
checked for the Self flag. This was in the windows bridge, and we
could easily work around that.
If it really turns out that Self is useful, we can always add that
enum value back later.

Change-Id: I9ebb60da059a843de5e6fcab9e815b919afc6f2a
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-19 08:05:05 +01:00
Morten Johan Sorvig 81e55fede7 Improve accessibility actions descriptions on Mac
Use built-in descriptions for built-in actions

Change-Id: Ic5581e89e4568abcc6c3add126d492345d26d87d
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-17 19:24:29 +01:00
Samuel Rødal b41fd5cf12 Added libxrender-dev to xcb's README.
Task-number: QTBUG-23633
Change-Id: I9428d04dab9e769f531a5aaffb943c6c2fa79f9a
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
2012-01-17 17:41:14 +01:00
Simon Hausmann 6e24833dc9 Support current screen orientation changes on Harmattan
Subscribe to the corresponding property via DBus and report it
through QWindowSystemInterface::handleScreenOrientationChanged.

Change-Id: Ibd2901de798866e177aba898374ee2b9877310ed
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-17 16:12:53 +01:00
Simon Hausmann 14e237816d Add support for QWindow::setOrientation on Harmattan
Set the _MEEGOTOUCH_ORIENTATION_ANGLE property on the window, just like
Qt Components for MeeGo and MeegoTouch itself.

Change-Id: I0b9adf4550593678bbcba89a2d4f1f65c1f4bd20
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-17 12:21:56 +01:00
Morten Johan Sorvig bc02ef882b Delete src/widgets/platforms/mac
This looks like the mac port but isn't any more,
remove it to prevent confusion.

Change-Id: I498f536d77d1a3c53e687f696ca6992539a1a90b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-17 12:19:29 +01:00
Frederik Gladhorn 7a0099183a Accessibility plugin is for widgets.
Change-Id: Ifbfe1a7ec62979097ad82343b20be823579d99b9
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-16 15:27:50 +01:00
Jan-Arve Saether 56c80382c6 Remove all reimplementations of relationTo() returning Unrelated.
QAccessibleInterface::relationTo() already return
QAccessible::Unrelated by default. No need to duplicate that code.

Change-Id: I40e6758b946c43ca8773cdb2d28407edf99aad49
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-16 15:27:50 +01:00
Bradley T. Hughes 802c3580e0 Cleanup properly when destroying QCocoaWindow
[NSNotificationCenter addObserver]'s documentation clearly states that
removeObserver needs to be called before releasing the object being
observed. The m_contentView we create was never released either, so be
sure to release that as well.

Change-Id: Ia54eb1c5c751f4cb0edb21ad559b261cb8f24208
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-16 13:48:30 +01:00
Uli Schlachter 23a372ab8d xcb: Obey maximum request length when uploading images
When connecting to an X11 server, the server tells the client what its
maximum allowed request size is. Larger requests are not permitted.
Thus, libxcb verifies that all requests which are sent are smaller than
this size limit and possibly kills the connection (without any good
error message).

Thus, when uploading an image, we could be trying to send more pixel
data than fit into a single request. If this would be the case, the
code will now use multiple requests where each request only sends a
part of the allowed rows.

In case all the data fits into a single request, this commit shouldn't
change any behavior.

Change-Id: I84a4ebfcdb6de7e206015c37e3e33cba3bd309b1
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-16 11:01:09 +01:00
Frederik Gladhorn ba888bb8c8 Clean up and extend QAccessible::State.
The state should contain useful and clear information.
Some of the old enum/bitfield members were not really clear.
Make them follow Qt terminology and shift the burden of interpreting
them to the bridge.

Apart from the previous commit changing from enum to bitfield, these
flags have changed names:

unavailable -> disabled
mixed -> checkStateMixed
protected -> passwordEdit (in the last commit)

floating is completely removed, even MSAA documentation states it is unsupported.

Some new states have been added.
Documentation added.

Change-Id: I152256e77a061f28ee5780f527524c80a2c7e333
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-16 08:55:37 +01:00
Rohan McGovern e08453f31a xcb: abort (rather than segfault) when X is not available
Be more user-friendly (e.g. when logging into a machine by ssh and
forgetting to export DISPLAY).

Change-Id: I9d07b0af9c5b4841827826053bb27b507801ae61
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-16 08:26:16 +01:00
Morten Johan Sorvig e97d77d5bc Clean up QCocoaIntegration destruction.
Fix memory leak - delete the font database. Remove
the NAApplication delegate.

Change-Id: I7c69eb4df01c8450c0abde360f77fbb318b20c83
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2012-01-14 05:36:12 +01:00
Mark Brand f0841fe4cf remove symbian support vestiges from text codecs
Change-Id: I7b577d360cb9c7225da108ee56fd927a91a04dee
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2012-01-14 03:54:41 +01:00
Laszlo Agocs 77cfaf1f2c Update touchscreen plug-in's readme
To match the new mouse-for-unhandled-touch-event feature in
QGuiApplication.

Change-Id: Ifa3872ab51a8e95bee235a3681b0a9d1ec13081c
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-13 13:23:20 +01:00
Mark Brand 621b121c07 add missing multiple inclusion guard
Change-Id: I82e9d1ddfc1a46bf47b8948dce800dcbcc1a0305
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Constantin Makshin <cmakshin@gmail.com>
Reviewed-by: hjk <qthjk@ovi.com>
2012-01-13 11:30:43 +01:00
Friedemann Kleint 7549dc9e54 Windows: Use a message-only window as clipboard viewer or for GL.
Change-Id: Ib8d287404b157aae2f4493ef8eba220afaba6c47
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
2012-01-13 11:30:43 +01:00
Samuel Rødal e50416066c Added application flags to translate between touch and mouse events.
The current way we do it of having the platform or touch plugin send
both mouse and touch events is not ideal. There's no good way to write
an application that works sanely both on a touch-only device and on a
desktop except by restricting yourself to only handling mouse events. If
you try to handle touch events you don't get any events at all on
desktop, and if you try to handle both, you end up getting duplicate
events on touch devices.

Instead, we should get rid of the code in the plugins that automatically
sends mouse events translated from touch events. This change enables
that by making the behaviour fully configurable in QtGui.

Two new application attributes are added to explicitly say whether
unhandled touch events should be sent as synthesized mouse events and
vice versa, and no duplicates are automatically sent as the current
situation. Synthesized mouse events are enabled by default.

We also get rid of the QTouchEvent::TouchPoint::Primary flag, which
was only used to signal that the windowing system automatically
generated mouse events for that touch point. Now we only generate mouse
events from the first touch point in the list.

Change-Id: I8e20f3480407ca8c31b42de0a4d2b319e1346b65
Reviewed-by: Laszlo Agocs <laszlo.p.agocs@nokia.com>
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@nokia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Denis Dzyubenko <denis.dzyubenko@nokia.com>
2012-01-13 09:38:05 +01:00
Morten Johan Sorvig 7407045388 Cocoa: Send window activation events.
Change-Id: I599b4316f1535bf4855b205bfb2117bbcee63bf0
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
2012-01-13 07:47:47 +01:00
Jan-Arve Saether 0fda46932d Remove invokeMethod in favor of the recommended virtual_hook()
We don't remove the Method enum (yet), since there are functions in
dependent modules that still refer to it.
Unfortunately there is no way we can commit to several repos
"atomically".

Change-Id: Ia1923dc4bf0751a9ba67727d14da5a2e60bd4e74
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-12 15:15:30 +01:00
Jan-Arve Saether 1133c0dd22 Remove all references to QAccessible::(Up|Down|Left|Right)
It is now the resonsibility of the bridge to support this
(by querying for QAccessibleInterface::rect())

The windows bridge (currently the only bridge in need of this) has
already been updated to reflect this in commit
7dca461620

Change-Id: Ief1339ab6edc118e2d47e3875e09fa885db65c2f
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-12 15:05:57 +01:00
Bradley T. Hughes a43986e2a5 Don't crash during QApplication construction
The QCoreApplication::init() function calls the virtual
QCoreApplicationPrivate::createEventDispatcher(), which for
QApplication, also creates the plaform integration. Unfortunately, the
Cocoa menubar integration uses qApp before QApplication is constructed,
causing a crash. Circumvent this by using QGuiApplicationPrivate
directly.

Change-Id: Ib36f628641761e70f9e9e39dd23e70e7537a165b
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-12 14:38:29 +01:00
Morten Johan Sorvig ff5ae4a578 Ignore uninteresting accessibile interfaces.
Certain interface roles should be ignored and not
be a part of the user-visible accessibility interface
tree.

Change-Id: I264fef909052c528ee505875e3a211a33114d881
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-12 10:19:49 +01:00
Laszlo Agocs 893eb97b2a Do not mark any touch points as primary when no mouse event is sent
The touchscreen plug-in generates touch events only and therefore no
touch point must be marked as primary because that would mean there
is also a mouse event created from that point which is not the case.

Change-Id: I80c5fdbc52b048cd74c834900b6c8100963210e6
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-12 10:19:49 +01:00
Samuel Rødal 8ff37ff535 Make show() default to sane sizing behaviour based on the platform.
Traditionally it's been hard to write a Qt app that behaves sanely
across embedded and desktop platforms, i.e. defaults to fullscreen on
embedded and non-fullscreen on desktop. For Qt 5 we can fix this by
making the behaviour of the default QWindow::show() be customizable by
the platform plugin.

If the application developer wants to override this behaviour he can
still use the explicit showFullScreen(), showNormal() etc functions.

Change-Id: I26a907b404058e345d841c818daefbb57a26d3fd
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-12 10:19:49 +01:00
Frederik Gladhorn 30ad53a0a6 Make QAccessibleInterface::indexOfChild() 0-based.
Makes the code nicer and more consistent with the rest of the world.

Change-Id: I5ba0ee39f5b0afd1a079a3cea9990d123955ed3f
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-11 11:18:51 +01:00
Morten Johan Sorvig 630131d585 Add support for accessibility actions.
Match Cocoa and Qt actions manually. Some have no
corresponding action on the other side.

Change-Id: I775cb8987ab843bd88d57d856ef7c0403290db00
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@nokia.com>
2012-01-11 11:18:51 +01:00
Albert Astals Cid 657038ca30 Match the name in the cpp file
Which is actually the name Lars wanted i just forgot to fix it everywhere

Change-Id: Iaa190da6c17d0a423c34202c986d69feec01af96
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2012-01-11 01:11:47 +01:00
Friedemann Kleint da71c1c755 Introduce a QVariant themeHint() to QPlatformTheme.
Start on removing platform-specific code from QtWidgets.

Change-Id: Ic2163a0ce6f2db2151cdf7ca93766b2d861eeb55
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-11 01:11:47 +01:00
Friedemann Kleint 7024ddba4b Platform style hints: Introduce keyboard repeat rate.
Change-Id: I556c2ecec7d5368122875a659af3ae7db88aa481
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
2012-01-10 09:13:11 +01:00
Zeno Albisser 1f6f1de163 Fix key codes on mac.
Qt key codes match the unicode character in upper case format.

Change-Id: I92b43463921e71f2607e569ba7ee23d6f844c50a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
2012-01-10 09:13:11 +01:00
Frederik Gladhorn 39a052c664 Accessiblity State as bit field.
We would like to add more flags that will be over the 32 bit boundary.
On Windows enums don't seem to digest values >32 bit.
This patch changes the state flags to be a bit field instead.

The windows part of the patch was written by Jan-Arve Sæther.

Change-Id: I2d1d87807f920ce4d4a5c7bfea8b1122ed44eb08
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
2012-01-10 07:14:34 +01:00
Jason McDonald 5313c28b30 Update year in Nokia copyright headers.
The previous change missed some headers from years prior to 2011, and a
few new files were merged after the previous change.

Change-Id: Ib7d1a2b7062228c2a5373da64242b2ee1f0981e1
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
2012-01-10 07:12:41 +01:00