summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/winrt
Commit message (Collapse)AuthorAgeFilesLines
* winphone: Remove old codeAndrew Knight2015-08-051-5/+0
| | | | | | | The platform message dialogs are always used on WP. Change-Id: If55e1ea804981201fded796adaaf11eb17bc5050 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* winphone: Remove old non-DirectWrite codeAndrew Knight2015-08-053-36/+2
| | | | | | | Since 8.1, DirectWrite is always used on WinRT platforms. Change-Id: I742e4a48be6c478a62c16a32cf89852b850aff9d Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* Updated WinRT license headers to use LGPLv3 instead of LGPLv21Jani Heikkinen2015-05-2029-290/+377
| | | | | | | | | From 5.5.0 -> WinRT port is licensed with LGPLv3, see http://blog.qt.io/blog/2015/04/29/windows-10-support-in-qt/ Change-Id: I7e42564276af3fdbd0d4c61e2736610fa698b11c Reviewed-by: Tuukka Turunen <tuukka.turunen@digia.com> Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* WinRT: fix namespaced buildJoerg Bornemann2015-05-165-7/+16
| | | | | Change-Id: I0505523a5524995e374dc8f005f101d0cea8b01e Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* QPA plugins: Use _iid macros instead of strings in Q_PLUGIN_METADATA.Friedemann Kleint2015-05-131-1/+1
| | | | | | | | | This makes it easier to change the version numbers by changing the macros in QtGui. Task-number: QTBUG-46009 Change-Id: I94c9591ec6f7c9173a698df9e1fe8fd6a904caf4 Reviewed-by: Paul Olav Tvete <paul.tvete@theqtcompany.com>
* winrt: Use ANGLE sub-buffer swap on Windows PhoneAndrew Knight2015-05-082-0/+15
| | | | | | | | | This allows the plugin to communicate the swap region to ANGLE and avoid glitches when the orientation changes. Task-number: QTBUG-44333 Change-Id: I40240cbcb3aaec92dbf4a82f4957965e92b9c3da Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* winrt: properly retrieve font writing systems from unicode rangesAndrew Knight2015-05-051-7/+82
| | | | | | | | | | | | This was completely broken until now because the ranges were assumed to be from the OS/2 header map. These are actual unicode ranges from the cmap, so they need to be matched by looping over the values and checking if they fall within a given writing system range. Task-number: QTBUG-44155 Done-with: Peng Wu <peng.wu@intopalo.com> Change-Id: I933429627c4dbf3377f41c9281df5a801057698f Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* winrt: Fix platform plugin after ANGLE upgradeAndrew Knight2015-04-091-17/+2
| | | | | | | Remove manual EGL window resizing as this is now handled inside ANGLE. Change-Id: I0d4c4df71114c60f4ce75e9010f40a0fd58dee1a Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* winrt: set correct virtual keyboard sizePeng Wu2015-04-094-29/+31
| | | | | | | | This is done by multiplying by the DIP scale factor. Task-number: QTBUG-44152 Change-Id: I587a66f1a2f7fa3a713c279f5d877e6acb844620 Reviewed-by: Andrew Knight <qt@panimo.net>
* winrt: remove the dead WP8.0 code from input contextPeng Wu2015-04-091-23/+0
| | | | | Change-Id: I8db61b4db32052f64833767085f2ebc5f1cc5bcf Reviewed-by: Andrew Knight <qt@panimo.net>
* Fix WinRT native file picker empty parametersPeng Wu2015-03-271-29/+35
| | | | | | | | | Properly handle some empty parameters cases in QWinRTFileDialogHelper which cause WinRT file engine native API failure. Task-number: QTBUG-44933 Change-Id: I89de2f98ca501af24c356d5b9bb98abd20b9bbf5 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* Implement flush function in WinRT file enginePeng Wu2015-03-272-8/+29
| | | | | | | | This is needed by the abstract file engine. Change-Id: Ia7ceca1be59f00a90e96e97ccd394634bad8b02f Task-number: QTBUG-44969 Reviewed-by: Andrew Knight <qt@panimo.net>
* Decide whether to synthesize mouse events on a per device basisAlexander Volkov2015-02-251-2/+0
| | | | | | | | | | | | | | | | | | | | | Currently Qt uses the QPlatformIntegration::StyleHint SynthesizeMouseFromTouchEvents to check whether to synthesize mouse events from touch events. But not only platform plugins can produce touch events, they can be created by e.g. QTest::touchEvent() and in this case we almost definitely need synthesizing regardless of the platform. This commit introduces a QTouchDevice::MouseEmulation capability which replaces use of the QPlatformIntegration::SynthesizeMouseFromTouchEvents. So it's possible to pass QTouchDevice without this capability to QTest::touchEvent() and be sure that mouse events will be synthesized. Notice that touch pads always emulate mouse events. As a result we can activate some tests which were disabled for specific platform configurations by commits 6c1670d8c273819435867c42725c0db0eee597dc and e9760f1559361c39f269fb89f1ebd01f6ee8378d. Change-Id: Idc82fa4007a095fc1cb5934979361b0023d2b793 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.4' into 5.5Frederik Gladhorn2015-02-241-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/xml/htmlinfo/simpleexample.html examples/xml/rsslisting/rsslisting.cpp qmake/generators/win32/msbuild_objectmodel.cpp src/3rdparty/harfbuzz-ng/src/hb-private.hh src/corelib/global/qlogging.cpp src/corelib/io/qstorageinfo_unix.cpp src/corelib/thread/qwaitcondition_unix.cpp src/gui/kernel/qguiapplication.cpp src/plugins/platforms/linuxfb/qlinuxfbintegration.cpp src/testlib/doc/src/qt-webpages.qdoc tests/auto/other/qaccessibility/tst_qaccessibility.cpp Change-Id: Ib272ff0bc30a1a5d51275eb3cd2f201dc82c11ff
| * WinRT: Fix access to style hint instead of theme hintMaurice Kalinowski2015-02-021-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | You need to specify explicitly the styleHint enum instead of the theming one, which is where we want to forward to. This caused all clicks to be ignored in case there is a listener to pressAndHold as the hold period is reduced to 0 milliseconds. Task-number: QTBUG-44196 Change-Id: I30d1771b91b5fa358e896e8441ade965543d4613 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Andrew Knight <qt@panimo.net>
* | Fixed license headersJani Heikkinen2015-02-174-4/+4
| | | | | | | | | | Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* | Pass params of shareable type by const-ref rather than by valueKonstantin Ritt2015-02-131-1/+1
| | | | | | | | | | | | | | | | ...where passing them by value was not intentional. Change-Id: Ifd5036d57b41fddeeacfbd3f5890881605b80647 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Update copyright headersJani Heikkinen2015-02-1129-263/+231
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* | Add QFont::Weight enum valuesPierre Rossi2014-12-121-25/+1
| | | | | | | | | | | | | | | | | | | | And try to make good use of them in order to match the QFont request more closely. Task-number: QTBUG-38482 Change-Id: I768dfa8828e370d77a1c17ecf4796d750b3edd9b Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devSimon Hausmann2014-12-101-4/+19
|\| | | | | | | | | | | | | | | Conflicts: doc/global/template/style/online.css mkspecs/android-g++/qmake.conf Change-Id: Ib39ea7bd42f5ae12e82a3bc59a66787a16bdfc61
| * winrt: Fix window resizev5.4.0Andrew Knight2014-12-051-4/+6
| | | | | | | | | | | | | | | | The fixed-size EGL display must be updated on PC as well as Windows Phone. Task-number: QTBUG-43112 Change-Id: I0ba90370b67e8c065843e5754579e341b647266d Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * winrt: Fix Windows Store CertificationAndrew Knight2014-12-011-0/+13
| | | | | | | | | | | | | | | | | | WinRT requires that IDXGIDevice3::Trim() is called on application suspend in order to pass Store Certification. Task-number: QTBUG-38481 Change-Id: Ia3cb5d3f6a2db8f11e4bfa4fd5c7791e18d6c36d Reviewed-by: Maurice Kalinowski <maurice.kalinowski@theqtcompany.com>
* | Make more font databases report fontsAlwaysScalable()Konstantin Ritt2014-12-092-1/+7
| | | | | | | | | | | | | | | | DirectWrite and CoreText supports scaling of non-scalable fonts. Change-Id: I910c6a35e3d94c31efa9b26dd89bcb027951ac99 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-11-247-17/+107
|\| | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/qiodevice.cpp src/plugins/bearer/linux_common/qofonoservice_linux.cpp src/plugins/bearer/linux_common/qofonoservice_linux_p.h src/plugins/platforms/android/qandroidplatformtheme.cpp src/tools/bootstrap/bootstrap.pro src/widgets/styles/qmacstyle_mac.mm Change-Id: Ia02aab6c4598ce74e9c30bb4666d5e2ef000f99b
| * winrt: Resize window on Windows Phone using EGLAndrew Knight2014-11-151-13/+33
| | | | | | | | | | | | | | | | | | | | To avoid duplicating code in ANGLE, we can resize the framebuffer in QPA. This potentially allows us to synchronize rendering to avoid displaying a frame which is rendered for the new geometry but is displayed with the old geometry. Change-Id: I5f3a0634628d9ea4ca73349a02e646eb043bd757 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * winrt: Blacklist certain devices from creating a depth/stencil bufferAndrew Knight2014-11-145-5/+47
| | | | | | | | | | | | | | | | | | | | | | This passes the EGLConfig created in the platform screen to the underlying context, and certain GPUs are blacklisted to be prevented from creating a configuration which does not render properly with Qt Quick. Task-number: QTBUG-42260 Change-Id: I7e1cdc33c2f5662538723c6930fad5f13b151d6f Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
| * WinRT: Set WindowTitle in application switcherMaurice Kalinowski2014-11-032-0/+28
| | | | | | | | | | | | | | | | Add platform backend for QWinRTWindow::setWindowTitle. Task-number: QTBUG-40736 Change-Id: I0b03c9b5977368b38ba63044b00178c3f2bb0b86 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devFrederik Gladhorn2014-10-091-0/+2
|\| | | | | | | Change-Id: I05fcd8dc66d9ad0dc76bb7f5bae05c9876bfba14
| * Revert "winrt: Remove depth/stencil from the default window format"Andrew Knight2014-09-291-0/+2
| | | | | | | | | | | | | | | | | | This reverts commit 636d2e340206664a5885656c06e1ae9eb032d446. The issue was caused by a bug in ANGLE, not a lack of hardware support. Change-Id: If2a66cd023dc7f2329dc2812169042487eecd428 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* | Merge remote-tracking branch 'origin/5.4' into devOswald Buddenhagen2014-09-2925-470/+269
|\| | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/tools/qbytearray.cpp src/gui/image/qimage.cpp src/gui/image/qppmhandler.cpp src/gui/kernel/qguiapplication.cpp src/gui/painting/qpaintengine_raster.cpp Change-Id: I7c1a8e7ebdfd7f7ae767fdb932823498a7660765
| * Update license headers and add new license filesMatti Paaso2014-09-2425-467/+267
| | | | | | | | | | | | | | | | | | - Renamed LICENSE.LGPL to LICENSE.LGPLv21 - Added LICENSE.LGPLv3 - Removed LICENSE.GPL Change-Id: Iec3406e3eb3f133be549092015cefe33d259a3f2 Reviewed-by: Iikka Eklund <iikka.eklund@digia.com>
| * winrt: fix compiler warning on Windows PhoneJochen Seemann2014-09-231-1/+1
| | | | | | | | | | | | | | qwinrtscreen(1010): 'd': local variable is initialized but not referenced Change-Id: Ic21a9bc087d8418ad9f01b263677438a4db8f493 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
| * qpa: Make screen geometry updates (full and available geometry) atomicTor Arne Vestbø2014-09-101-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Updating the geometry and available geometry in two steps means that QScreen will be in an inconsistent state when emitting the geometry change signal, as the available geometry has not been updated yet. Piggy-backing changes to the availableGeometry based on the virtual geometry changing does not make sense, so we now tie geometry and availableGeometry (and their size variants) to their own separate geometryChanged and availableGeometryChanged signals. Change-Id: Iee0ced642cbb91c470cb54bc507d2c0512482c13 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
* | WinRT: use qEnvironmentVariableIntValue()Marc Mutz2014-09-121-1/+1
|/ | | | | | | | | It doesn't allocate memory, so cannot throw and is a lot faster than qgetenv(). Change-Id: I73d548ad4e25424fc41722961f527e63632a7b56 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* winrt: Fix mouse coordinates on high-DPI displaysAndrew Knight2014-09-011-3/+5
| | | | | | | The scale factor was only being applied to touch coordinates. Change-Id: I7fc2793b1514c73986a574a95478306c1eb54c5e Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* WinRT: apply text color to WindowText as wellMaurice Kalinowski2014-08-231-0/+1
| | | | | | | | Otherwise some text gets rendered black, which is the default background color on Windows Phone. Change-Id: I963875879655207e881ab0199bdac98a1e4f4ea5 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* Remove QPlatformScreenPageFlipper.Robin Burchell2014-08-191-1/+0
| | | | | | | | | | | | | | | | Use of this was removed from QtWayland quite a long time ago, which was the only public user of this API. Furthermore, it isn't easily possible to implement any use of this API without full control of the graphics stack (a very rare occurrence) and there is no public demonstration of this. There is ongoing research to provide a better replacement for this in the form of QPlatformHardwareCompositor. Change-Id: I80d666a5b465aa80f73fed6c44838ce7210bbd30 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
* winrt: Remove depth/stencil from the default window formatAndrew Knight2014-08-191-2/+0
| | | | | | | | | | | After the last ANGLE upgrade, some hardware fails to render proper QtQuick scenes when using a depth buffer (which is present in the default window format). As the batched renderer no longer requires a depth buffer, this workaround can be safely applied. Task-number: QTBUG-40649 Change-Id: Id0f6e418aa5c6346186678728f88a6c18af5fb74 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* winrt: Fix theme paletteAndrew Knight2014-08-111-29/+73
| | | | | | | | | | | Windows Phone didn't handle the base color enums well, and ARM was getting incorrect colors due to different byte ordering. So, use the Phone-specific enums where applicable and pass in the proper char sequence for the color. Change-Id: I7ffbc383c07d2160974560110fea221a204577ea Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com> Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* winrt: Fix backing store blitAndrew Knight2014-08-111-4/+4
| | | | | | | The calculation forgot to take the mirrored texture upload into account. Change-Id: Ia69c9c4b9d852d9ac652e71aaa466c5387ff5bca Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* winrt: Use native file dialogAndrew Knight2014-08-097-2/+1241
| | | | | | | | | | | | | | | | | | | | | | The native Windows Runtime file picker is required to support picking of any file/folder from the system. Due to platform security restrictions, the non-native file dialog is effectively useless when outside of the application's installation or local storage directories. This adds a QPA implementation for the WinRT file picker, as well as a simple file system engine to handle files which were opened by the picker. This necessary for platform security reasons, as it is not possible to open files from arbitrary paths - only file handles opened by the picker can be used, so these are kept inside this file system engine and acted upon when a known path is observed. The file system engine is only instantiated when needed, and may prove useful for other areas of Qt (such as known folders/standard paths) which must operate on a virtual file rather than an absolute path. Task-number: QTBUG-37748 Change-Id: Ia4fd6c5065ac92101ce34adcb6c9026fbcff56df Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* winrt: Refactor backing storeAndrew Knight2014-08-074-326/+82
| | | | | | | | | | Thanks to new features in ANGLE, the backing store implementation complexity can be greatly reduced. By using ES3 framebuffer blit, no shader code is required, and the shader loading code and blit shader can be removed. Change-Id: Iab3d915e279ad6468a75ef6257794f12acd8cb65 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* winrt: Fix orientation update maskAndrew Knight2014-08-052-14/+5
| | | | | | | | | | | | | | | | | On WP8.0, setting auto rotation preferences at runtime worked like an orientation update mask, and did not modify the behavior of the window. With WP8.1, setting auto rotation preferences has the side effect that the compositor will then resize the window when moving from e.g. portrait to landscape. Because of this, the auto rotation API should not be called inside orientationUpdateMask(). The default implementation is now sufficient, so the platform override is removed. Developers looking to set auto rotation preferences should use the application manifest or call the native api directly. Task-number: QTBUG-35953 Change-Id: I90cf4290ced34df1bb350cb6aa5deff209622865 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* winrt: Fix EGL context getProcAddress()Andrew Knight2014-08-052-0/+157
| | | | | | | | As ANGLE doesn't resolve non-extension functions, these need to be resolved manually. Change-Id: I0fe45005f662f7d7f2b53c09ef129efd65fb999a Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* WinRT: Fix physical size of screenJochen Seemann2014-08-051-1/+11
| | | | | | | | | | | | | | Currently, the physical size of the screen is calculated with the logicalSize and the logicalDpi of the screen. This doesn't work because logicalDpi has a user-defined multiplier and a strange value. The easiest and accuratest way is to take the raw dpi of the axis and the raw pixel size (logicalSize*scaleFactor). This all is needed for a correct value of Screen.pixelDensity in QtQuick. Change-Id: I8be0139d762364140043c3fa0d203298ca7ef293 Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* winrt: Use physical window resolutionAndrew Knight2014-08-052-42/+36
| | | | | | | | | | | | | | This partially reverts eea02ff1 in that devicePixelRatio() will now always return 1. This is because non-integer ratios are bound to cause problems with pixel alignments, and their use prevents users from accessing the complete pixel grid in Qt Quick. Now, the full physical resolution of the screen/window is reported instead. The EGL initialization is adjusted to match requirements for ANGLE 2.1. Change-Id: I24c6dcf4419f30e5e4c73c592beb446a418a0b8b Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com> Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* winrt: Clean up platform message dialog helperAndrew Knight2014-07-105-221/+259
| | | | | | | | | | | | | | | | | | | | - Remove "Platform" from class name for consistency - Use ComPtr and HRESULT checking where missing - Use UICommand ID class to reduce callback complexity - Use dialog completed callback to fix failed repeated dialog opening These changes have been tested with the QtQuick.Dialogs message dialog example, and all features appear to be working. Note that the WinRT dialog supports a maximum of three buttons, though, and a warning is printed if this number is exceeded. Similarly to Android, the native hooks can be now be disabled by using qputenv("QT_USE_WINRT_NATIVE_DIALOGS", "0"). Task-number: QTBUG-38115 Task-number: QTBUG-39868 Change-Id: I9943c7c11bd640790db68219cefdca1a680e96ec Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* winrt: Introduce theme paletteAndrew Knight2014-07-102-0/+77
| | | | | | | | | Use the colors returned by WinRT's UISettings class to construct the system palette. Change-Id: Id0d99c7b2e3df209de0755ee72a0d2bda67fda8c Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com> Reviewed-by: Jochen Seemann <seemann.jochen@gmail.com>
* winrt: Clean up platform themeAndrew Knight2014-07-105-117/+151
| | | | | | | | | | - Drop "Platform" from class name for consistency - Move styleHint() into theme class for better code reuse - Use ComPtr and result checking - Remove obsolete WinRT ifdefs Change-Id: Id26bd75739a9665f61ee2e70eb3fb36747b75410 Reviewed-by: Maurice Kalinowski <maurice.kalinowski@digia.com>
* winrt: Clean up QWinRTScreenAndrew Knight2014-06-253-337/+312
| | | | | | | | | | | - Remove WP8.0 code paths - Remove WinRT types from header as much as possible - Use ComPtr where appropriate - Use COM convenience methods Task-number: QTBUG-38115 Change-Id: Ib241c3e5107add255a48340f86ee5885f895ff83 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>