summaryrefslogtreecommitdiffstats
path: root/src/widgets
Commit message (Collapse)AuthorAgeFilesLines
* Ensure the QMenu is polished before creating the native windowMartin Gräßlin2014-05-091-0/+1
| | | | | | | | | | | | | | | | Call ::ensurePolished from QMenu::exec before the native window gets created. This ensures that the style handles the menu before its too late. E.g. a style which wants to create RGBA menus needs to add the appropriate flag before the native window gets created. Without this change the style cannot change to RGBA as the native window has already been created and changing the format used by QWindow is not possible after QWindow::create was called. Change-Id: Ic861037a438b4cb74c59a00be0ef2d633db538ed Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Avoid drawing when the QOpenGLWidget isn't mappedJocelyn Turcotte2014-05-081-1/+1
| | | | | | | | | | | | | | Do as QGLWidget::updateGL does and avoid calling paintGL in updateGL when we we don't have a valid QSurface to draw on. We currently end up calling makeCurrent on the context with a null QSurface in that case, which is the equivalend of doneCurrent, and causes QOpenGLContext::currentContext to return null later when paintGL is called on the subclass. Change-Id: I712ee59274855457b0e4de3757754f56b3528955 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* Remove trailing whitespace.Jake Petroules2014-05-081-1/+1
| | | | | Change-Id: Id487c8951d7f258c57fa71fd35a60ddb8c5a3fb2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fix visual index lookup in QTreeViewPrivate::adjustViewOptionsForIndex().Friedemann Kleint2014-05-061-10/+3
| | | | | | | | | Determine the visual index by looking up the column of the QModelIndex in the logicalIndices array instead of looping. Task-number: QTBUG-37813 Change-Id: I5c3c73c67537877b03cdc2c36a52041d99f7f49d Reviewed-by: David Faure <david.faure@kdab.com>
* QFileDialog: Return empty QUrl from the static get..FileUrl() functions.Friedemann Kleint2014-05-061-3/+8
| | | | | | Task-number: QTBUG-38672 Change-Id: Idf554cd93d1a79db7c82f3165bd128fb31ead3e5 Reviewed-by: David Faure <david.faure@kdab.com>
* Fix typo in QGraphicsView's interactive property doc.Mitch Curtis2014-05-061-1/+1
| | | | | Change-Id: Iccc58490b330657d5d23c333fc408cde33231d95 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Prevent interaction with a disabled menu in the menubarAndy Shaw2014-05-061-2/+2
| | | | | | | | | | When moving the mouse over a disabled menu it could appear to be usable but it should not show any interaction at all. Task-number: QTBUG-31688 Task-number: QTBUG-37488 Change-Id: I9e6594b40e8b209146d8c3705750dfd75f1258c5 Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
* Use QCoreApplication::postEvent() for replaying popup mouse events.Friedemann Kleint2014-05-061-4/+6
| | | | | | | | | When replaying the mouse events synchronously, nested calls of QEventLoop::exec() may happen in conjunction with menus. Task-number: QTBUG-38550 Change-Id: I2b1dafdac59d1a080775af5f165d1e594ea58804 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* QMdiArea: Ignore events of other instances in the event filter.Friedemann Kleint2014-05-051-0/+3
| | | | | | | | | | | This caused for example the variable QMdiAreaPrivate::isSubWindowsTiled being cleared from another instance, which resulted in odd resizing behavior. Task-number: QTBUG-31448 Change-Id: I880f7e415d6654e52499df1bfaf99f2c55d86320 Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Fix crash on startup when running screenreaderFrederik Gladhorn2014-05-051-2/+4
| | | | | | | | | | | | | | | For exaple Qt Creator would crash when started and a screen reader (eg NVDA) is running. This is due to updateAccessibility being called during the ctor of the TextEdit and on Windows the AT can access properties in the same call resulting in accessing the text control before it's fully constructed. Also make sure to not send accessibility updates for non-widget type edits since we don't support any accessibility in Qt Quick 1. Task-number: QTBUG-38659 Change-Id: I1635fa3b2c4d3509f44daf760e4d7b4171d67e1d Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Fix typo in QListWidget documentation.Mitch Curtis2014-05-051-1/+1
| | | | | Change-Id: Ieefb664a49bb578efc70ea1ab1a09fb4c8507568 Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Fixed wrong condition in QMacStyle.Ivan Komissarov2014-05-031-1/+1
| | | | | | Change-Id: I003e59bd50754dbbda23de5c55096ca2d25b7a7a Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Mac style: Get proper ThemeButtonKind for QDateTimeEditGabriel de Dietrich2014-05-021-6/+24
| | | | | | | | | | | | | | | | | | When it gets 'calendarPopup' set, that is. The reason lies, indirectly, in the extra margins we add to QComboBoxes and other QPushButtons in the Mac style. However, these extra margins do not apply to spinboxes, which is what QDateTimeEdit is. In particular, this causes Designer to show QDateTimeEdit at the wrong size when it's not in a layout. Task-number: QTBUG-38615 Change-Id: I3dd52e10db8c8970a6dc40b39fbe29dd86167daa Reviewed-by: Jake Petroules <jake.petroules@petroules.com> Reviewed-by: J-P Nurmi <jpnurmi@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Ignore the fullscreen state of a QMdiSubWindowFabian Bumberger2014-05-021-2/+5
| | | | | | | | | | | | On some platforms all windows are by default forced into fullscreen mode when show() is executed. In QMdiSubWindow we cannot handle the fullscreen state and should ignore it. Otherwise the window will be forced in "normal" state and ignore any previously executed geometry changes. Change-Id: I09ce6507a1eac6a0adb3405ca3f423642d30f801 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Bernd Weimer <bweimer@blackberry.com>
* Only query for the theme if it is available in the GTKStyleAndy Shaw2014-05-021-1/+1
| | | | | | | | | If the theme is not available then it should not try to use it when getting the file system icon as it will cause a number of messages to be outputted to the console as it is an invalid call. Change-Id: I33003568f6785ee423c4a6e079a6c62c95145cbc Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Widgets going "undercover" should also undercover the QWindowJan Arve Saether2014-04-301-2/+9
| | | | | | | | | | | | | | | Sometimes Qt wants to hide a widget without calling setVisible(false). This is usually done by setting the widgets geometry outside the parents clip rect (and usually by setting its y coordinate to a sufficiently negative y coordinate). QSplitter uses this when it needs to collapse its children. Previously the QWindow was just moved straight above the QWidget it was hosted in. Task-number: QTBUG-38475 Change-Id: I154dd4d13f108c3d34c64eadb41dd6b477dc5c4e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* Observe case insensitive file systems in QFileDialog::selectFile().Friedemann Kleint2014-04-291-20/+40
| | | | | | | | | | When stripping the root path from a file name that cannot be found in the model, use case sensitive comparison depending on file system. Task-number: QTBUG-38162 Change-Id: I28e28973fca2da35a5768fdd00cc258b9669a15a Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix QFileDialog::viewMode() when using a native file dialog.David Faure2014-04-281-1/+1
| | | | | | | | | | | It should return the view mode that was set in setViewMode() and stored in the options. Change-Id: Iaaa94a201a25baa251446688bf5bdaca5cf3373b Reviewed-by: Mark Gaiser Reviewed-by: Dominik Haumann <dhaumann@kde.org> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Fix crash when accessing QFileDialog::selectedFiles() before widgets exist.Friedemann Kleint2014-04-281-2/+2
| | | | | | | | Discovered while investigating: Task-number: QTBUG-38414 Change-Id: I764195254ba4b54c86079c6e8ef750d6249960d9 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* QMenu: Add support for QWidgetAction on MacGabriel de Dietrich2014-04-254-2/+60
| | | | | | | | | | | | | | | The implementation follows a similar logic as in Qt 4 making sure we properly interface with the QPA backend. We also make sure to delay moving the action widget to the QPA menu until it's about to show. We still don't support moving the action widget back from QPA world into Qt, as explained in the QWidgetAction documentation. Task-number: QTBUG-19840 Change-Id: I47f6359b0806f967d80c67fbb1f36c3d5ec8603e Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* Use showNormal() instead of show() in QToolTip.Milian Wolff2014-04-251-2/+2
| | | | | | | | | | | | | | | | | Even on platforms that use the QPlatformIntegration::StyleHint ShowIsFullScreen we do not want to show tool tips fullscreen which would happen if we just call show(). This is also required to fix somewhat random crashes on QNX when browsing a website and hovering links that would trigger a tooltip to be shown. There, we could end up with nested calls to QToolTip::showText when the tooltip was shown full-screen. Since QToolTip is not reentrant that can lead to crashes since QTipLabel::instance could be deleted/invalidated inbetween. Change-Id: I335fcd10cb6d4cffeb622ed8e0caf17f6413d62d Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* Accessibility Windows: Improve MenusFrederik Gladhorn2014-04-253-8/+0
| | | | | | | | | | | | | | This would especially trigger when moving the focus between menus - after the right menu got the focus we would send another event for the QMenuBar, preventing the screen reader from reading the actually selected menu, announcing the menu bar instead. [ChangeLog][QtWidgets][QMenu] Accessibility: Menus are read by screen readers with more reliability. Task-number: QTBUG-38498 Change-Id: Ie4028120b234949380315296bf07ca53863d0ad8 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Update tooltip palette when receiving a theme change notification.Friedemann Kleint2014-04-252-4/+11
| | | | | | Task-number: QTBUG-38183 Change-Id: Ia86ae698ae4afcf9d5c361f178f3ca44ae9a3ee5 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* Merge remote-tracking branch 'origin/release' into stableJani Heikkinen2014-04-232-1/+12
|\ | | | | | | Change-Id: Id13b4a3803664692f32f9d57549be8a0c4a08567
| * Restore Qt 4 behavior in default double click handlerLaszlo Agocs2014-04-171-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert 3bb902495291c50a2f06e8e03a62a647db3e5cd4. That fix was an attempt to handle the issue that has been fixed in 5.3 by 9063edef796ad10eb9ac2229627f36d60168f0e2 and should have been reverted when the new approach, that restores Qt 4 behavior for widgets, was introduced. Task-number: QTBUG-38242 Task-number: QTBUG-36423 Change-Id: I8f8a82da22605fac90543492e9b2cd2b568544e7 Reviewed-by: Jørgen Lind <jorgen.lind@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| * Doc: document obsolete QApplication::setGraphicsSystem()Marc Mutz2014-04-101-0/+9
| | | | | | | | | | Change-Id: I5a87564d2dbfa5e739d1ca40db480e8e0c1b7fdf Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | QMacNativeWidget: Fix background renderingGabriel de Dietrich2014-04-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | The widget's background is transparent, but Qt is not owning the backing store in this case, so we must make sure it gets properly cleared and flushed. Task-number: QTBUG-19840 Change-Id: I1087ce80aae3620d64a8c180129d79b5b022750b Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | CMake: Include the definition of the Qt5::AccessibleFactory target.Stephen Kelly2014-04-161-0/+2
| | | | | | | | | | | | | | | | | | The file will not exist if the accessible plugin is not built. Task-number: QTBUG-37849 Change-Id: I2983d01a085b11737bf49805edab5ca33fb5174a Reviewed-by: Volker Krause <volker.krause@kdab.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* | Fix crash when deleting top level windows embedded into QGraphicsProxyWidget.Friedemann Kleint2014-04-141-0/+4
| | | | | | | | | | | | | | | | | | | | Clear proxyWidget pointer in slot QGraphicsProxyWidgetPrivate::_q_removeWidgetSlot(). Task-number: QTBUG-29684 Task-number: QTBUG-33213 Change-Id: Ibdbd52aa810ca908e3d98daa00954345e7a93a48 Reviewed-by: Andreas Aardal Hanssen <andreas@hanssen.name>
* | Restrict QFontComboBox's popup width to screen widthFabian Bumberger2014-04-141-2/+5
|/ | | | | Change-Id: I5a92308beb2f245d9f031918bb8154757316ef56 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Mac: Implement unified toolbar look for QTabBarMorten Johan Sørvig2014-04-093-41/+88
| | | | | | | | | | | | | | | | | | | | | | | | | Extend the unified title and toolbar gradient to tabs in document mode that are adjacent unified tool bars. Change the updateMacBorderMetrics() function to register the tab bar geometry and visibility status with the Cocoa platform plugin. The Cocoa platform plugin will then merge this area with other registered areas if possible. Add QCocoaNativeInterface::testContentBorderPosition(). This function tests whether the given point is within the unified title and toolbar area. Use testContentBorderPosition() in QMacStyle to enable code paths that skips drawing the QToolBar bottom separator line and paints the active tab background with transparent pixels to make the background gradient visible. Change-Id: I2b70f9bb0c2c59af053a691a7df538f958783dab Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Cocoa: Update unified toolbar area on toolbar hideMorten Johan Sørvig2014-04-093-5/+23
| | | | | | | | | | | | | | | | | | | | | Add setContentBorderAreaEnabled() which us used to enable or disable an area. Used together with registerContentBorderArea() this allows changing the border area geometry and enabled status independently. Add section to the QToolBar show/hide event handler which calls setContentBorderAreaEnabled(). Make sure QToolBar and QToolBarLayout uses the same identifier - the QToolBar object pointer. Rename enableContentBorderArea -> setContentBorderEnabled. The "ContentBorder" is now the entire unified toolbar area while "ContentBorderArea"s are the sub-areas covered by toolbars. Change-Id: I339f381a50856e048ae40e7ffadd6a8a510c4994 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Fix crash when trying to place toolbar into zero-height window.Friedemann Kleint2014-04-093-20/+32
| | | | | | | | | Change QToolBarAreaLayout::item() to return a pointer and check return values in plug(). Task-number: QTBUG-37183 Change-Id: I7029eb9739cbe603460e87d3e5493f116bdb3a89 Reviewed-by: J-P Nurmi <jpnurmi@digia.com>
* Fix crash in qt_try_modal.Friedemann Kleint2014-04-091-2/+1
| | | | | | | Task-number: QTBUG-34580 Change-Id: Idc549116fa99aa49ac7c67dcfc76d32ca71f3c76 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* QComboBox: Set the proper font after a MacSizeChange eventGabriel de Dietrich2014-04-091-0/+12
| | | | | Change-Id: I5c90817e52a3e87d9b06b2bb670d69a6953efd47 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Cocoa: Use private property to enable NSWindow child windowsGabriel de Dietrich2014-04-091-0/+1
| | | | | | | | | Enabled for QToolBar to allow it to overlap OpenGL widgets when expanding. Task-number: QTBUG-33082 Change-Id: I76dc8da52bc04eedc6d6779c48753da100ed1c9f Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* QOpenGLWidget: Avoid crashing if updateGL is called before the first resizeJocelyn Turcotte2014-04-091-0/+3
| | | | | Change-Id: I9e7788334de98b35dc5d6beee97a63783a1fe267 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Forward "_q_platform_*" QWidgets's properties to QWindow.Tomasz Olszak2014-04-092-0/+7
| | | | | | | | | | | This way we can customize QPlatformWindow by using dynamic "_q_platform_" properties in corresponding QWindow. Change-Id: I987b7a17d252541fe766af6aa37a6cffb67f1807 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com> Reviewed-by: Andy Shaw <andy.shaw@digia.com>
* Mac style: Fix one-pixel offset for combo boxes in small sizeGabriel de Dietrich2014-04-081-1/+1
| | | | | Change-Id: I744c102bd086742b1052ed547e50037dddff4654 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QStyle: Add new SH_ComboBox_UseNativePopup style hintGabriel de Dietrich2014-04-072-0/+4
| | | | | | | | | | | | If the style hints it, QComboBox::showPopup() will try to show a native popup instead. This is currently undocumented and an opt-in feature (typically by using a proxy style). Works only on Mac so far. Task-number: QTBUG-32731 Change-Id: I4447e884cbd6b490f3039c7a95168698c0bed16e Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* QComboBox: Use native popups on MacGabriel de Dietrich2014-04-072-6/+94
| | | | | | | | | | | | | | This remains an opt-in solution bound to the usage of SH_ComboBox_UseNativePopup in a proxy style. The midterm goal is to make this option on by default, possibly in 5.4. This solution is and will remain a hint in the sense that some exotic use cases of QComboBox (e.g., when setting its view) are inherently incompatible with the native popup idea. Task-number: QTBUG-32731 Change-Id: I2a3d780795c22f9989e44325fcaf314538b1de49 Reviewed-by: Jens Bache-Wiig <jens.bache-wiig@digia.com>
* Fix a crash on startup with QOpenGLWidgetJocelyn Turcotte2014-04-071-1/+2
| | | | | | | | | | | After c4aabeb2b82d777bb555f836f55e1f7ae4fb4581 we now try to access q_ptr in QWidgetPrivate::setRenderToTexture. QOpenGLWidget needs to delay this call after the QObject constructor is done to make sure that setTextureChildSeen doesn't dereference q_ptr before it has been initialized. Change-Id: Icaee82c8b806f42bc7614b0ac6fe4e6026331750 Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Accessibility text updates for QTextEditFrederik Gladhorn2014-04-053-0/+30
| | | | | | | | | For Mac this makes QTextEdit work nicely with VoiceOver. Task-number: QTBUG-37204 Change-Id: I1326d24ca6a932ad667ee395f62881b6ec64e892 Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
* Improve QWidget::metric for PdmDevicePixelRatio.Morten Johan Sørvig2014-04-051-6/+9
| | | | | | | | | | | | | | Use QWindow::devicePixelRatio() which is the most accurate devicePixelRatio accessor since it can ask the platform native window directly Fall back to qApp->devicePixelRatio() if the window pointer is not valid. Task-number: QTBUG-37606 Task-number: QTBUG-38078 Change-Id: Ief1468a0c6ced07439f55329ab056883016241cc Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Compile: isChildOfQMdiSubWindow may be unused.Morten Johan Sørvig2014-04-051-0/+2
| | | | | | | [-Werror,-Wunused-function] Change-Id: Icf1e60ce3c5dadb96272453583d1cd03379eb73b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNX: Surpress manual window activation during showFullScreenFabian Bumberger2014-04-051-0/+3
| | | | | | | | | | When a window is shown, libscreen will give it keyboard focus. Requesting the activation right after the window is created (and before libscreen activated the window) causes problems on some devices e.g. Q10. Change-Id: I29f7a38990ea4259a8b0c6624f70e31d7291af00 Reviewed-by: Sergio Ahumada <sahumada@blackberry.com>
* Make it possible to render QtWebEngine in QOpenGLWidgetJocelyn Turcotte2014-04-041-0/+2
| | | | | | | Setup the GL context as shared with the Qt global share context. Change-Id: I199cfc7d290466d0ad99294bcffcd738b615862b Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* Don't assume qt_tablet_target widget exists from one event to the nextShawn Rutledge2014-04-041-10/+2
| | | | | | | | | | | | | | | | In this scenario there is a widget with a button inside, and you click the button with the tablet. The target of the event is the button, but when you click it, the parent (or ancestor) is destroyed. Commit 2bac49265efcf8faabc3756d1a3e405a3d336f68 took care of the case when the parent is a window, but it is not always a window which is being destroyed. So the approach of using a QPointer is better because it should take care of all the cases when the qt_tablet_target is destroyed during the course of a tablet event sequence. Task-number: QTBUG-36848 Task-number: QTBUG-38040 Change-Id: Ia0e861f2cb2fbc30234aa596f3a36ddd0835a9af Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
* OS X: Fix QRubberBand drawing on retina displaysMorten Johan Sørvig2014-04-031-1/+3
| | | | | | | | | | | Extend the existing rect adjustment to cover the upper/left edges as well. Check for a valid rect before drawing. Task-number: QTBUG-34534 Change-Id: I156abf4fb52924c350ec24fb44eadca86b2d5339 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Steve Mokris <smokris@softpixel.com>
* Avoid double clicks confusing popupsLaszlo Agocs2014-04-031-1/+1
| | | | | | | | | | | | Setting qt_button_down on DblClick is dubious and breaks popups like menus since they won't appear correctly on every click anymore when clicking on them rapidly several times. Task-number: QTBUG-37891 Change-Id: Ic6cbbbe8b42891d2f9fa2ff66aa42bb89230d896 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com> Reviewed-by: Rick Stockton <rickstockton@reno-computerhelp.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>