summaryrefslogtreecommitdiffstats
path: root/examples/widgets/doc/src
Commit message (Collapse)AuthorAgeFilesLines
* Doc: complete Draggable Text exampleNico Vertriest2017-12-191-0/+1
| | | | | | Task-number: QTBUG-60635 Change-Id: Ib901c677ad78a663c3f3e0dd689b8d65be10be83 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: complete Easing Curve ExampleNico Vertriest2017-12-181-0/+3
| | | | | | | | | | | | - updated logo - updated screenshot - add link to easing.qdoc Task-number: QTBUG-60635 Change-Id: I9389dfbbe66cfa5f4e8641bee2f8fd63f5c95f99 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io> Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Complete Simple Anchor Layout ExampleNico Vertriest2017-11-301-0/+46
| | | | | | | | Task-number: QTBUG-60635 Change-Id: I1351df7c514c57ed04ff6e640d7338d62c8f91ac Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* Doc: Minor corrections custom sort filter exampleNico Vertriest2017-11-291-3/+3
| | | | | | Task-number: QTBUG-60635 Change-Id: I17a69f85663eaa92e92b4e97385c21a729405e1f Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Doc: drop Application Chooser ExampleNico Vertriest2017-11-201-38/+0
| | | | | | | | | There are plenty of other examples showing how to use QStateMachine Task-number: QTBUG-60635 Change-Id: I82300b2a0f4e7733f08579a2aa9b548cb7d87efa Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@qt.io>
* Doc: Add screenshot to Validators exampleNico Vertriest2017-11-201-0/+2
| | | | | | Task-number: QTBUG-60635 Change-Id: Ie68e611b57900847a00587fdf8558be4be38f23d Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Doc: drop Lighting Effect ExampleNico Vertriest2017-11-201-35/+0
| | | | | | | Task-number: QTBUG-60635 Change-Id: If455a778ff6ebd53d8110b3dc25d8b9e27255bac Reviewed-by: Frederik Gladhorn <frederik.gladhorn@qt.io> Reviewed-by: Nico Vertriest <nico.vertriest@qt.io>
* Doc: add doc to Style Sheet exampleNico Vertriest2017-11-201-0/+51
| | | | | | Task-number: QTBUG-60635 Change-Id: I6c80427bce1efc67bbf4ec67b0afeafc27088d79 Reviewed-by: Martin Smith <martin.smith@qt.io>
* Doc: review Star Delegate ExampleNico Vertriest2017-11-201-8/+8
| | | | | | | | | - update screenshot - minor corrections description example Task-number: QTBUG-60635 Change-Id: I2351160ee9ec0a926fddb122e720c887f851dba5 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Change almost all other uses of qrand() to QRandomGeneratorThiago Macieira2017-11-083-14/+7
| | | | | | | | | | | | | | | | | | | The vast majority is actually switched to QRandomGenerator::bounded(), which gives a mostly uniform distribution over the [0, bound) range. There are very few floating point cases left, as many of those that did use floating point did not need to, after all. (I did leave some that were too ugly for me to understand) This commit also found a couple of calls to rand() instead of qrand(). This commit does not include changes to SSL code that continues to use qrand() (job for someone else): src/network/ssl/qsslkey_qt.cpp src/network/ssl/qsslsocket_mac.cpp tests/auto/network/ssl/qsslsocket/tst_qsslsocket.cpp Change-Id: Icd0e0d4b27cb4e5eb892fffd14b5285d43f4afbf Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Address Book example: Correctly update "Edit entry" and "Remove entry" actionsAlexander Volkov2017-10-231-5/+6
| | | | | | | | | | | | They are not updated after switching tabs. Thus they can be enabled even when no entry is selected: select an entry on the current tab and then switch to an empty tab. Emit AddressWidget::selectionChanged() signal after changing the current tab to update these actions. Change-Id: I00da15ed6c3d3839210ae3ffbe1436e234695522 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Address Book example: Replace QPair by structAlexander Volkov2017-10-171-17/+15
| | | | | | | | | | | Introduce Contact struct to store contact data and use it instead of QPair<QString, QString>. Proper naming really clarifies the code. Task-number: QTBUG-60635 Change-Id: Ibfb421dfc854accc382212b0da46e7aafc0d528a Reviewed-by: Jesus Fernandez <Jesus.Fernandez@qt.io> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* Doc: minor language editsNico Vertriest2017-09-291-3/+3
| | | | | | Task-number: QTBUG-60635 Change-Id: Ic1aef003be9cd08dc38021e5b4a4add8cabbfa98 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
* Doc: minor corrections doc Calendar Widget ExampleNico Vertriest2017-09-291-5/+5
| | | | | | Task-number: QTBUG-60635 Change-Id: I41d9af6836dc80b5c5c5303d313d15daff72b37f Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Merge remote-tracking branch 'origin/5.9' into devGabriel de Dietrich2017-07-131-127/+0
|\ | | | | | | | | | | | | Conflicts: src/widgets/widgets/qmainwindowlayout.cpp Change-Id: I306b4f5ad11bceb336c9091241b468d455fe6bb6
| * Remove WinCE-specific sipdialog exampleFriedemann Kleint2017-07-051-127/+0
| | | | | | | | | | | | | | Task-number: QTBUG-52590 Task-number: QTBUG-60635 Change-Id: Ie6d59d1431645faf93d1538fe9f5bf1bea9f3014 Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-07-0610-0/+10
|\| | | | | | | | | | | | | Conflicts: .qmake.conf Change-Id: I43531e087bb810889d5c1fbfcdffb29b78804839
| * Doc: Add list with widgets examples using layoutsNico Vertriest2017-07-0310-0/+10
| | | | | | | | | | Change-Id: I585cd63f68220467de1beed3346cdaa12af2b34b Reviewed-by: Topi Reiniö <topi.reinio@qt.io>
* | Be (somewhat more) consistent about the value of piEdward Welbourne2017-06-201-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use M_PI (and friends), where possible, in favor of hand-coded approximations of various (in)accuracies. Where that's not available (e.g. fragment shaders), use the same value that qmath.h uses for M_PI, for consistency. Replaced math.h with qmath.h in places that defined a fall-back in case math.h omits it (it's not in the C++ standard, although M_PI is in POSIX); or removed this entirely where it wasn't used. Reworked some code to reduce the amount of arithmetic needed, in the process; e.g. pulling common factors out of loops. Revised an example's doc to not waste time talking about using a six-sig-fig value for pi (which we no longer do) - it really wasn't relevant, or anything to be proud of; nor did the doc mention its later use. Task-number: QTBUG-58083 Change-Id: I5a31e3a2b6a823b97a43209bed61a37b9aa6c05f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Merge remote-tracking branch 'origin/5.9' into devLiang Qi2017-05-291-2/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf mkspecs/common/msvc-desktop.conf mkspecs/win32-g++/qmake.conf mkspecs/win32-icc/qmake.conf src/platformsupport/fontdatabases/mac/coretext.pri src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm Change-Id: I74a6f7705c9547ed8bbac7260eb4645543e32655
| * Doc: Replace "Macintosh" with something suitable or omit itLeena Miettinen2017-05-231-2/+2
| | | | | | | | | | Change-Id: I3067bd7e6ae2d6d68d5232a56eaf368a0415876c Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | tablet example: enable high-DPI renderingShawn Rutledge2017-05-151-3/+10
|/ | | | | | Change-Id: Ie03867208902fdc9cf794de16d7249c8994351f4 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io> Reviewed-by: Morten Johan Sørvig <morten.sorvig@qt.io>
* Doc: updated QSyntaxHighlighter documentation and use QRegularExpressionSamuel Gaist2017-04-121-9/+10
| | | | | | | | | The documentation of QSyntaxHighlighter still uses the deprecated QRegExp class. This patch updates the code samples as well as cleanup some typos. Change-Id: I87b525fddb560b7c5bb38f96d9aaceadb594f76c Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* Doc: Fixed old text still mentioning QRegExpSamuel Gaist2017-01-241-2/+2
| | | | | | | | | The example has already been ported to QRegularExpression however part of the documentation still referred to the QRegExp class. This patch updates the documentation to match the new version of the code. Change-Id: Id433d0b28deae0c4f702c0c54d2704174f8c7689 Reviewed-by: Sze Howe Koh <szehowe.koh@gmail.com>
* Doc: update Qt Widgets examplesNico Vertriest2016-12-1218-19/+30
| | | | | | | | - \image --> \borderedimage - update screenshot if required Change-Id: I0318b1df67154b70c061da7cbd509b8d5337b311 Reviewed-by: Venugopal Shivashankar <Venugopal.Shivashankar@qt.io>
* Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-10-311-1/+1
|\ | | | | | | | | | | | | Conflicts: src/plugins/platforms/minimalegl/qminimaleglintegration.cpp Change-Id: Ia6ab42a6daadbf8abc085c971545904d49ea4b56
| * Doc: Fix typos: handing > handlingTopi Reinio2016-10-281-1/+1
| | | | | | | | | | Change-Id: Iecc64cba620ec639d06684e30264171052f21e10 Reviewed-by: Nico Vertriest <nico.vertriest@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-134-8/+8
|\| | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.cpp src/corelib/io/qsettings.cpp src/corelib/itemmodels/qstringlistmodel.cpp tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp Change-Id: I1c6c306ef42c3c0234b19907914b19da706b4a03
| * Doc: Change instances of '(Mac) OS X' to 'macOS'Topi Reinio2016-08-124-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As of version 10.12 (Sierra), the name of Apple's desktop operating system will be macOS. Change the occurrences where the Mac platform is discussed to use a macro \macos, which expands to 'macOS'. This helps with adapting to future renaming. Update the instructions on mac-specific Q_OS_* macro usage. Add a \target for the old 'Qt for OS X' topic to keep links working for other documentation modules that try to link with the old name. Change-Id: Id33fb0cd985df702a4ae4efb4c5fd428e77d9b85 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-08-051-9/+29
|\| | | | | | | | | | | | | Conflicts: tests/auto/widgets/itemviews/qtreeview/tst_qtreeview.cpp Change-Id: I6f3878b204464313aa2f9d988d3b35121d4d9867
| * Polish the findfiles example to be actually usefulFriedemann Kleint2016-08-031-9/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - Simplify the code, remove unused members - Fix the translations of plurals to use %n - Add tooltip displaying full paths in list - Add context menu allowing to copy the name and open - Display the correct slashes on Windows - Connect the returnPressed() signals of the line edits - Make the search recursive - Do not search binary files by checking the mime type Change-Id: I3663799c88931db1f58c03ea35211e7ab03737ec Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* | Merge remote-tracking branch 'origin/5.6' into 5.7Liang Qi2016-05-061-61/+59
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: examples/qtestlib/tutorial5/containers.cpp examples/widgets/tools/tools.pro src/corelib/io/qprocess.cpp src/corelib/io/qprocess_unix.cpp src/corelib/io/qprocess_win.cpp src/network/kernel/qdnslookup_unix.cpp src/plugins/platforms/xcb/qxcbconnection_xi2.cpp src/testlib/qtestcase.cpp tools/configure/configureapp.cpp Change-Id: I838ae7f082535a67a4a53aa13a21ba5580758be8
| * normalize structure of plugandpaint exampleOswald Buddenhagen2016-05-031-61/+59
| | | | | | | | | | | | | | | | as in other examples which come with plugins, use an additional hierarchy level which contains the app and plugin subdirs. Change-Id: I2487755967aa3474c337c8c8af10be49627b63d0 Reviewed-by: Topi Reiniö <topi.reinio@theqtcompany.com>
* | Unify license header usage.Jani Heikkinen2016-03-29123-615/+615
|/ | | | | | | | | Update files using old header.LGPL3 to header.LGPL Update files using old FDL template to use new one Update files using old BSD template to use new one Change-Id: I36a78272516f9953d02956522f285b40adfc8915 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Polish the Tablet exampleShawn Rutledge2016-01-281-174/+165
| | | | | | | | | | | | | | | | | | | | | - 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: removed double occurrence of systray.qdocNico Vertriest2016-01-261-179/+0
| | | | | | 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-261-0/+2
| | | | | | Task-number: QTBUG-50261 Change-Id: Ia0daf0c5c7fc0b2e54904f0b7fe6ebe1220e5c4d Reviewed-by: Martin Smith <martin.smith@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>
* Doc: Update obsolete URLs to external documentationTopi Reinio2015-10-022-2/+2
| | | | | | | Change-Id: I199de83971701c14e903e712fcdcd29aaff95c6d Task-number: QTBUG-48420 Reviewed-by: Venugopal Shivashankar <venugopal.shivashankar@digia.com> Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
* Polish the Icons example.Friedemann Kleint2015-09-141-32/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | - 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-111-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>
* Polish the screen shot example.Friedemann Kleint2015-09-011-57/+33
| | | | | | | | | | | | | | | | | - 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>
* 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>
* Polish the imageviewer example.Friedemann Kleint2015-08-211-8/+3
| | | | | | | | | | | | | | | | | - 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>
* Tablet example: smoother, rotation stylus, better airbrushShawn Rutledge2015-07-311-15/+9
| | | | | | | | | | | | The drawing is antialiased and with rounded caps and joins. Rotation stylus acts like a felt marker. Airbrush sprays a radial gradient of color, and its alpha can depend on the tangential pressure if so chosen. Task-number: QTBUG-46694 Change-Id: I4fb16eb621707e3c56a75aa302dd0d3bf418a745 Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Add recent file handling to SDI/MDI and remove the recentfiles example.Friedemann Kleint2015-07-312-42/+4
| | | | | | | | | | | | | | The existing recentfiles example was basically a clone of the SDI example with a "Recent" menu added. Assuming it is better to have it all in one place, the functionality is merged into the existing SDI/MDI examples. - Implement recently opened files handling using a submenu and a QSettings array in the SDI/MDI examples. - Remove recentfiles example. Change-Id: Id5a1ab9fa1c2e6b9ec81309cfe74cf86f450392a Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Port examples/widgets/dialogs to new connection syntax.Friedemann Kleint2015-07-221-7/+0
| | | | | | Change-Id: Ife8a24b43db400909099765b43f016b4be4bd6ef Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
* Merge remote-tracking branch 'origin/5.5' into HEADSimon Hausmann2015-07-171-4/+10
|\ | | | | | | | | | | | | Conflicts: src/plugins/platforms/windows/qwindowsopengltester.cpp Change-Id: Ia7abeba9395ccf84e2fa81b91a5725a86dedb9fe
| * Use QImageReader::setAutoTransform() in examples.Friedemann Kleint2015-07-131-4/+10
| | | | | | | | | | | | Change-Id: If80616d680f1aa6c9d5cd1a4080710e5ad67d603 Reviewed-by: Rainer Keller <rainer.keller@theqtcompany.com> Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
* | Polish the widgets/mainwindows/application example.Friedemann Kleint2015-07-131-33/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Introduce Qt 5 signals & slot syntax - Use QCommandLineParser to obtain file arguments - Merge MainWindow::createMenus()/createQToolBars() into MainWindow::createActions(), removing the need to store the actions as member variables. Use QMenu::addAction() for brevity. - Use QIcon::fromTheme() to obtain system icons and use resource icons as fallback. - Rewrite settings code to use QWidget::saveGeometry(), Widget::restoreGeometry() since saving size and position does not work well with multiple screens. Query the available size when determining the initial size instead of using hard-coded values for High-DPI screens. - Fix minor issues in code, use multi-argument version of QString::arg(), QDir::toNativeSeparators() to present file paths to the user. - Fix snippet references accordingly. Change-Id: I1bc49a8913aa6d669e0e666f04be3f1f42eaba10 Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com> Reviewed-by: Topi Reiniö <topi.reinio@digia.com>