summaryrefslogtreecommitdiffstats
path: root/examples
Commit message (Collapse)AuthorAgeFilesLines
* Add missing indentationAllan Sandfeld Jensen2016-04-281-16/+16
| | | | | | | Discovered with gcc 6. Change-Id: Ib5ba49df6a1f4d9574842ffe5f3e9856da0e60d0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* OpenGL/contextinfo-Example: Add command line options and status label.Friedemann Kleint2016-04-232-0/+29
| | | | | | | | | | Add command line options to be able to set the QCoreApplication attributes that influence Open GL context creation and add a status label at the bottom that displays it besides the QT_OPENGL environment variable. Task-number: QTBUG-52693 Change-Id: Id9793292596e0feb3da5220fde2e5b2e495f87ff Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* Fix compiling examples with -no-smJoni Poikelin2016-04-072-1/+6
| | | | | | | | There is access to session manager functions which are not present when building with -no-sm. Change-Id: I1c92b4a70f7adb56816877930fb9f55b04ff8940 Reviewed-by: Andy Shaw <andy.shaw@theqtcompany.com>
* Remove empty first lines of files.Friedemann Kleint2016-04-061-1/+0
| | | | | | | They might upset licensing related tools. Change-Id: I858d21fc418ba16959c88847b559b11bea29ed6b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* QtXml/htmlnfo example: Remove Nokia-related HTML demo file.Friedemann Kleint2016-04-062-216/+0
| | | | | Change-Id: I0b0ebcf20747a607ad9eed130d7b4fe810a1f2e1 Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6.0' into 5.6Frederik Gladhorn2016-03-172-0/+18
|\ | | | | | | Change-Id: Iac8ff05cd76cbacf859138a73e8e2ed0a979c75a
| * Add option to disable "session management by closing windows".Andreas Hartmetz2016-02-152-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | That feature is a poor man's session management for applications that do not implement any specific session management features. It badly interferes with proper session management support, so applications must be able to disable it. This enables fixing applications with QGuiApplication::quitOnLastWindowClosed() true - the default - dying too early, before they are enumerated for the list of applications to restart on session restore, thus preventing them from being restored. See https://bugs.kde.org/show_bug.cgi?id=354724 [ChangeLog][QtGui] Qt asking to close windows on session exit as a fallback session management mechanism has been made optional. Disabling it fixes session management for applications that implement full session management. See QGuiApplication::isFallbackSessionManagementEnabled(). Task-number: QTBUG-49667 Change-Id: Ib22e58c9c64351dea8b7e2a74db91d26dd7ab7aa Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | Skip spurious .toLower() on returns of QUrl::scheme()Edward Welbourne2016-03-101-1/+1
| | | | | | | | | | | | | | | | | | QUrl::setScheme() parses and canonicalises the scheme, so that scheme() always returns a lower-case string anyway; no need to .toLower() it. Change-Id: Ied00814b63f159386a42552dcf06346ee56f9f97 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@theqtcompany.com>
* | Standarddialogs example: Remove horizontal spacer from fullscreen layout.Friedemann Kleint2016-02-091-1/+0
| | | | | | | | | | | | | | | | It does not work as expected since the QLineEdits do not expand. Amends b880b7e1ac15f3458c009d63002c872e7521eeab. Change-Id: I0b3b3822cca7fc6442a7155eecd46bd3d134d069 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* | Doc: Replaced Trolltech logo with Qt logoNico Vertriest2016-02-034-0/+0
|/ | | | | | Task-number: QTBUG-37505 Change-Id: If59039b2f7e60ffea3e8c7803d38e528acf35383 Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* Polish the Tablet exampleShawn Rutledge2016-01-287-452/+339
| | | | | | | | | | | | | | | | | | | | | - Introduce Qt 5 signal-slot connection syntax. - Merge MainWindow::createMenus()/createActions() into MainWindow::createMenus(), removing the need to store the actions as member variables. Use QMenu::addAction() for brevity. - For actions in QActionGroups, carry the Valuator enum in QAction::data so that the slot to handle the selection does not need to compare the QAction pointer itself. - Use a non-modal QColorDialog, so that the user can change colors more easily while drawing. - Choose saner shortcut keys: control-Q should not override the default usage for quitting the application, and using shortcuts for About dialogs is anyway dubious. - Improve the example documentation. Change-Id: I57aaf5f5b885c13a953482dbcc41275dd3d6bff4 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Doc: Added brief statement to XML examplesNico Vertriest2016-01-262-0/+3
| | | | | | Task-number: QTBUG-50261 Change-Id: I0ba4bd630746612d0f1f1632e87c6fdd6aef160f Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Doc: removed double occurrence of systray.qdocNico Vertriest2016-01-262-186/+6
| | | | | | Task-number: QTBUG-50287 Change-Id: Iaf8602fc338dadcc0998f33d41ad9fbc827589e2 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* Doc: Added brief statement for examples overview pageNico Vertriest2016-01-262-0/+3
| | | | | | Task-number: QTBUG-50261 Change-Id: Ia0daf0c5c7fc0b2e54904f0b7fe6ebe1220e5c4d Reviewed-by: Martin Smith <martin.smith@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2016-01-191-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: config.tests/common/atomic64/atomic64.cpp configure src/3rdparty/forkfd/forkfd.c src/corelib/io/forkfd_qt.cpp src/widgets/kernel/qwidgetwindow.cpp tests/auto/corelib/statemachine/qstatemachine/tst_qstatemachine.cpp tests/auto/network/socket/qtcpsocket/tst_qtcpsocket.cpp tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp tools/configure/configureapp.cpp Change-Id: Ic6168d82e51a0ef1862c3a63bee6722e8f138414
| * Use unique shortcuts for the different actionsAndy Shaw2015-12-111-2/+2
| | | | | | | | | | Change-Id: Ibc143ffac83dfb30facc9e93651e5f18550ab612 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* | Standarddialogs example: Adapt layout for fullscreen platforms.Friedemann Kleint2015-12-092-7/+21
| | | | | | | | | | | | | | | | Insert a group box depending on style hints. Change-Id: I1b49dc31d5bd32c92d88f95be0683d5223329c11 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com> Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | fortuneserver/fortuneclient: Fix layout for WinRT.Friedemann Kleint2015-12-092-2/+2
| | | | | | | | | | | | | | Use the new API QStyleHints::showIsMaximized(). Change-Id: I1342b3c29ef4ccfcf635a32d403f9aa7ce0cb4e4 Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | Polish the fortune server/client examples.Friedemann Kleint2015-12-036-50/+78
| | | | | | | | | | | | | | | | | | | | | | | | | | - Remove Qt::WindowContextHelpButtonHint. - Make the server label interactive (enable copy). - Introduce new connection syntax. - Remove unneeded member variables. - Use constructor initialization where appropriate. - Adapt the layout to fullscreen platforms by wrapping it into a QGroupBox. Change-Id: I6e397ad082f22ba1e99fc5a17440b2be1f9584f6 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* | Doc: Fortune Server Example: fix typo in function nameTopi Reinio2015-11-301-1/+1
| | | | | | | | | | Change-Id: Ib0a5030cc2f88cf90ba7d25c75871c439486abe3 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Doc: corrected error in doc static pluginsNico Vertriest2015-11-131-3/+3
| | | | | | | | | | | | | | Task-number: QTBUG-43160 Change-Id: I94f92318cec095391050b2af90980010bd1066b9 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Polish the HTTP example.Friedemann Kleint2015-11-054-127/+189
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove unneeded member variables. - Use new connection syntax. - Streamline code. - Add a QCheckBox for launching the file after download and make the default file name and download directory configureable. - Make status messages more verbose. - Set Password echo mode on authentication dialog. - Extract the progress dialog to a separate class that is directly connected to the QNetworkReply, which is created on demand. Set set minimum and duration on it. This fixes a crash that currently occurs when clicking "Abort" on the SSL error dialog and "Cancel" on the progress dialog that is then re-shown due to its internal force timer/minimum duration handling. - Resize according to screen size. Task-number: QTBUG-48332 Change-Id: Ia2611e63fe96d6f49e4cdd06049a206ddb2c2864 Reviewed-by: David Faure <david.faure@kdab.com>
* | Fix the closeEvent of the systray example on OS XAlejandro Exojo2015-11-032-1/+10
| | | | | | | | | | | | | | | | | | | | | | The implementation of the close event handler requires handling the two close events that are received on OS X when the user quits through the application menu bar or the Command+Q shortcut. The first is an spontaneous event, and the second a non-spontaneous one with the window already closed. Change-Id: I24e3d3f0de4d631bd2d5616c85ce747f085691e0 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | examples: remove use of obsolete QStyleOption*V<N> typedefsMarc Mutz2015-11-022-3/+3
| | | | | | | | | | | | | | These are obsolete since Qt 5.0. Change-Id: I297477eff129558553f52a04bb7828d95db27969 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | TextEdit example: fix build when clipboard is disabled.Rafael Roquetto2015-10-192-2/+4
| | | | | | | | | | Change-Id: Ib25563e3dc299dc2d23bed8b3071af1ba81150e7 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Image viewer example: Fix broken error message formatting.Friedemann Kleint2015-10-191-1/+1
| | | | | | | | | | | | Task-number: QTBUG-48851 Change-Id: Ie86bcc498c9dc1f9754192a256a28fa467f6dbc9 Reviewed-by: Shawn Rutledge <shawn.rutledge@theqtcompany.com>
* | Polish the complexpingpong exampleAlexander Volkov2015-10-193-10/+10
| | | | | | | | | | | | | | | | | | | | - Use QDBusServiceWatcher to detect that pong service became available (QDBusConnectionInterface::serviceOwnerChanged() signal is deprecated). - Use new connection syntax. Task-number: QTBUG-28082 Change-Id: I7b93b961ee6d45aaeefab77fa1d1943e38b4a4c0 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Remove webkit-guide from examplesKai Koehne2015-10-19269-9046/+0
| | | | | | | | | | | | | | | | Qt5WebKit is now deprecated and removed from the packages. Change-Id: I176344cb2a6b43ffc44cc0e7ef1abb4e765a35b4 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-131-10/+0
|\| | | | | | | | | | | | | | | | | Conflicts: src/network/socket/qabstractsocket.cpp src/plugins/platforms/winrt/qwinrtscreen.cpp src/sql/drivers/mysql/qsql_mysql.cpp Change-Id: Ifb73623d09f53340ee5e10283f1f86b580998902
| * Doc: remove unused code from OpenGL Window exampleSamuel Gaist2015-10-071-10/+0
| | | | | | | | | | Change-Id: Ifb2c7206dee55102eba91b4c30543f3ac4838259 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Examples/Doc snippets: Fix single-character string literals.Friedemann Kleint2015-10-1324-68/+68
| | | | | | | | | | | | | | Use character literals where applicable. Change-Id: I79fa5018f05735201ae35ee94ba0d356fcad1056 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Polish DnD Examples.Friedemann Kleint2015-10-0916-215/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove class DragLabel in draggabletext and add a static creation function instead since it only has a constructor setting some properties. - Use QRegularExpression instead of QRegExp - Use new connection syntax. - Ensure compilation with DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII demonstrating use of QLatin1String vs QStringLiteral. - Streamline code. Change-Id: I2e2ddeb40837dba379990836c77fb72ad7263e2d Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
* | Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6Liang Qi2015-10-024-33/+183
|\ \
| * | Merge remote-tracking branch 'origin/5.5' into 5.6Liang Qi2015-10-024-33/+183
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: qmake/doc/src/qmake-manual.qdoc src/corelib/tools/qstring.h src/gui/image/qimagereader.cpp src/network/access/qnetworkaccessmanager.cpp src/tools/qdoc/doc/examples/examples.qdoc src/widgets/accessible/qaccessiblewidgetfactory_p.h src/widgets/doc/qtwidgets.qdocconf Change-Id: I8fae62283aebefe24e5ca4b4abd97386560c0fcb
| | * Remove confusing license information from torrent.qdocDmitry Shachnev2015-09-211-33/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The torrent example does not have its own code to work with SHA-1, it uses QCryptographicHash instead. Change-Id: Ided0e3dcded1096feb3366682c97530c4cec0a14 Reviewed-by: Lisandro Damián Nicanor Pérez Meyer <perezmeyer@gmail.com> Reviewed-by: Sami Makkonen <sami.makkonen@digia.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
| | * Doc: System Tray Icon exampleNico Vertriest2015-09-043-0/+183
| | | | | | | | | | | | | | | | | | | | | | | | Moved from qtsvg to qtbase Task-number: QTBUG-47201 Change-Id: Iab185ea2e270893c0937d1ff87fdb544d226d603 Reviewed-by: Martin Smith <martin.smith@digia.com>
* | | Doc: Update obsolete URLs to external documentationTopi Reinio2015-10-023-3/+3
|/ / | | | | | | | | | | | | Change-Id: I199de83971701c14e903e712fcdcd29aaff95c6d Task-number: QTBUG-48420 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* | Clean up debug code and unused functions from imagegestures exampleJoni Poikelin2015-10-013-4/+0
| | | | | | | | | | Change-Id: I0dbbb5c6f3227e8cfe3e0f6eb27b2bf16b5d222b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
* | Fix up QOpenGLWidget transparency supportLaszlo Agocs2015-09-242-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The glColorMask call was troublesome. In addition, the Qt::WA_TranslucentBackground was misinterpreted and recommended misleadingly in the documentation. The hellogl2 example's --transparent argument was disfunctional in practice. Replace glColorMask with glBlendFuncSeparate. The hellogl2 example and the docs are now corrected wrt enabling semi-transparency in a QOpenGLWidget that is not a top-level (which is the most common case). Task-number: QTBUG-47276 Change-Id: I6f40e732d455f5efcf158649ac9a52ff9f240e85 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com> Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
* | Polish the settings editor example.Friedemann Kleint2015-09-237-161/+151
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Set QtProject as organization. - Remove unneeded member variables. - Use member initialization in the constructor. - Use new connection syntax in createActions() to assemble the menu there, removing the createMenus() function. - Introduce a QSharedPointer to ensure settings are deleted. Previously, the settings were parented on the tree widget, which is a hack of sorts. - Fix OS X macros. Change-Id: Ibbc6bfb03eb5c7eda077b1a3aa3f1707667f7f13 Reviewed-by: Topi Reiniö <topi.reinio@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
* | Polish the Icons example.Friedemann Kleint2015-09-1411-313/+533
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove unneeded member variables. - Use new connection syntax in createActions() to assemble the menu there, removing the createMenus() function. - Use a QButtonGroup for the sizes with the style metrics as id. - Streamline code, rename variables for clarity. - Introduce static functions returning the list of states/modes and their names in display order to IconPreviewArea, removing the duplicates. - Split actions to open sample icons provided from source directory or standard pictures location to make sample icons more prominently visible. - Check and display @2x images and add tooltips showing device pixel ratio and actual size. - HighDPI: Add groupbox displaying screen name and device pixel ratio, connect to screen changed signal and update icons panel accordingly. Add check box for toggling Qt::AA_UseHighDpiPixmaps. - Adjust documentation Task-number: QTBUG-18680 Task-number: QTBUG-46615 Change-Id: Ice96e9898f168ef2a30e9f46cb260ed57ae015f0 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Re-add systray.qdoc and images.Friedemann Kleint2015-09-113-0/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | The system tray example initially was in QtSvg after the Qt 5 modularization split since it depended on it. In the meantime, it has been moved back to qtbase. Fixes qdoc warning: qtbase/src/widgets/util/qsystemtrayicon.cpp:56: warning: Can't link to 'System Tray Icon Example' Change-Id: Ie3c13baf4ac91ecf0c814885f71ac44dc05b427c Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
* | Port examples/opengl to new connection syntax.Friedemann Kleint2015-09-029-37/+38
| | | | | | | | | | Change-Id: I486a4a2326bf57ec5ea08bccdcef79c3e5553db5 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Polish the screen shot example.Friedemann Kleint2015-09-014-139/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove unneeded member variables. - Set window sizes depending on screen geometry for High DPI screens. - Flesh out code for saving the image, setting the supported mime types on the file dialog. - Streamline constructor code, remove create...() functions. - Use new connection syntax in createActions(), - Obtain the screen from the widget. - Adapt documentation. Remove note saying that widgets do not need the parent parameter (since creating parentless widgets can result in flicker in some cases), explain that QScreen pointers should be checked. Change-Id: I0332bbf10eafe861fe3fd5573522694ab5c0183a Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Polish the systray example.Friedemann Kleint2015-09-011-12/+13
| | | | | | | | | | | | | | | | - Port it to new connection syntax. - Replace module include by class includes. Change-Id: I1b8d682bb7bb2e05b6b2b77a9c0d01730ea09cf2 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Polish rich text example.Friedemann Kleint2015-08-313-221/+196
| | | | | | | | | | | | | | | | | | | | | | | | | | - Introduce Qt 5 signals & slot syntax. - Use mime types in the file dialogs. - Streamline the code creating the actions. - Introduce QCommandLineParser. - Query the available size when determining the initial size instead of using hard-coded values for High-DPI screens. Change-Id: Ifc84a41ed55a4a674b6eafdb6120ac42441405b6 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Compile in namespaced buildsSean Harmer2015-08-311-0/+4
| | | | | | | | | | Change-Id: I2894fbadec50286c0831bf381d149b54ade9182d Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
* | Fix some qdoc-warnings.Friedemann Kleint2015-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qtbase/src/widgets/kernel/qaction.cpp:1257: warning: Can't link to 'QApplication::setAttribute()' qtbase/src/widgets/kernel/qapplication.cpp:519: warning: Can't link to 'arguments()' qtbase/src/widgets/kernel/qapplication.cpp:1939: warning: Can't link to 'quit()' qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'quit()' qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'exit()' qtbase/src/widgets/kernel/qapplication.cpp:2946: warning: Can't link to 'processEvents()' qtbase/src/widgets/widgets/qmenu.cpp:1354: warning: Can't link to 'Recent Files Example' qtbase/examples/widgets/doc/src/tetrix.qdoc:28: warning: Can't link to 'QApplication::quit()' qtbase/src/testlib/qtestcase.cpp:268: warning: Undocumented parameter 'timeout' in QTRY_VERIFY2_WITH_TIMEOUT() qtbase/src/corelib/global/qnamespace.qdoc:2427: warning: Can't link to 'QApplication::setLayoutDirection()' qtbase/src/corelib/global/qnamespace.qdoc:751: warning: Can't link to 'QApplication::setDesktopSettingsAware()' Change-Id: Ic8170a40fb1cd84e3fb4dd75d9429f4b485f8bd9 Reviewed-by: Martin Smith <martin.smith@digia.com>
* | Extend the image viewer example.Friedemann Kleint2015-08-242-17/+120
| | | | | | | | | | | | | | | | | | | | Add: - Save As - Copy - Paste from clipboard into new image Change-Id: Ibbc308e9bbd2ce407119cd9358874f5c22a6bb83 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* | Polish the imageviewer example.Friedemann Kleint2015-08-213-74/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Remove unneeded member variables. - Use member initialization in the constructor. - Use new connection syntax in createActions() to assemble the menu there, removing the createMenus() function. - Fix coding style issue (braces) - Avoid empty label showing up by setting the scroll area invisible until an image is loaded. - Set a new image only if image read succeeds. - Add status bar with information message. Task-number: QTBUG-46848 Change-Id: I32d5af70d8eb71ec16dd58a0b98c32eb2bd988d7 Reviewed-by: Topi Reiniö <topi.reinio@digia.com>