Commit Graph

25104 Commits

Author SHA1 Message Date
Friedemann Kleint
76cf88157f Tests: Remove CONFIG += parallel_test.
The keyword no longer has a meaning for the new CI.

Change-Id: Ibcea4c7a82fb7f982cf4569fdff19f82066543d1
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-05 07:16:50 +00:00
Andy Shaw
c5068866cf Add a window title for the QPrintDialog Properties dialog
Change-Id: Ia74edf45e78fb81256da86d572459b3ed38663d4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-09-03 22:06:17 +00:00
Alex Henrie
4ac94480c3 QGroupBox: Send unhandled mouse events to parent widget
Every other subclass of QWidget calls event->ignore() on unhandled
events, and QGroupBox's failure to follow this convention prevented it
from being used in some specialized applications. Instances of QGroupBox
now only absorb mouse press events to their checkboxes (if they have
checkboxes) and ignore all other mouse events.

Task-number: QTBUG-15519
Change-Id: I6b0c89c92868feddbe3888088703b32cb95d9903
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
2015-09-03 21:06:34 +00:00
Giuseppe D'Angelo
9129d2714a Implement QDebug support for QSharedPointer
... otherwise the type goes through operator bool() and prints
"true" or "false" (!).

[ChangeLog][QtCore][QSharedPointer] Added support for debug
printing via QDebug.

Change-Id: Ic3ef9b9feee8d6ca08f1dd69f20f421fea20ca00
Reviewed-by: David Faure <david.faure@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-03 19:25:09 +00:00
Alex Trotsenko
4116fe873e QRingBuffer: improve indexOf() performance
Use memchr() instead of scan cycle.

Change-Id: Ic77a3e5ad4c5f6c7d2a1df12d150eac45d620744
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-03 18:31:49 +00:00
Romain Pokrzywka
352c357e6f Improve evdevtablet plugin with support for multiple tablet devices
Migrated the evdevtablet code to use the same Manager/Handler model
used by the other evdev plugins. The input event parsing code remains
the same, it has just been merged into the new handler class, and
hardcoded device ids have been replaced by proper per-device ids
to support multiple tablet devices as detected by udev.

Also added tablet count reporting to QInputDeviceManager.

Change-Id: Ibd72db568646da4f32e7680dd51698a0a86dca99
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-09-03 17:01:39 +00:00
Friedemann Kleint
916909f8a9 Remove TARGET.EPOCHEAPSIZE settings (Symbian).
Change-Id: I4bd82f7381fc6a417b2e36f0c7b879711dc921e3
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-03 15:25:19 +00:00
hjk
7b0e771ad7 Add a qtHookData field for Qt Creator's data display
Qt Creator needs to be able to determine structure sizes and data
member offsets for certain private types even in the absence of debug
information.

It is sufficient to keep and test the actual data sets on the Qt Creator
side, as long library provides a hint which data set is needed.
So far, HookDataVersion was meant to be used for that purpose. To
make it more explicit, this patch introduce a TypeInformationVersion
field in qtHookData.

Change-Id: Ia1c3c6f62f314d63c4df289ef456f047c5e84cf4
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-03 15:18:36 +00:00
Friedemann Kleint
c486cacba8 Testlib/Windows: Output crash information on stdout instead of stderr.
Make it easier to capture information about crashing tests in log files,
since it is not possible to do something like
foo > log.txt 2> errlog.txt
on Windows.
Adapt selftest.

[ChangeLog][QtTest][Important Behavior Changes] Crash/exception
information is now logged to standard output on Windows.

Task-number: QTBUG-47370
Change-Id: I3e6a2d25855ed0f20516418a031990b562f5f757
Reviewed-by: Simon Hausmann <simon.hausmann@theqtcompany.com>
2015-09-03 14:16:30 +00:00
Yoann Lopes
e6a2ba7089 Prefer GStreamer 1.0 on Linux.
As planned for 5.6, QtMultimedia now uses GStreamer 1.0 over
0.10 when available.
This means the binary packages will be based on GStreamer 1.0.

Task-number: QTBUG-47920
Change-Id: I9a18569ff96902116f0f6a759c185a5896f520d5
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
2015-09-02 12:06:54 +00:00
Friedemann Kleint
c726bc85da Port examples/opengl to new connection syntax.
Change-Id: I486a4a2326bf57ec5ea08bccdcef79c3e5553db5
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-09-02 10:21:56 +00:00
Oliver Wolff
4b340402b9 WinRT: Fixed possible integer overflow in timer registration code
Task-number: QTBUG-48012
Change-Id: If1b80e59c13230bc0a62c6fa3d45b6e2272b9e28
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-09-02 10:21:37 +00:00
Oliver Wolff
8981703817 QUuid: Also use CoCreateGuid on WinRt/Winphone and WinCE
Change-Id: Ie44bd50fa1f2d4224f65d08fb4d721c3651b49ac
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-02 10:21:33 +00:00
Tor Arne Vestbø
54dbdc26ba Move min left/right bearing calculations to QFontEngine baseclass
The logic used in the FreeType font engine can be generalized
and move to the QFontEngine baseclass. This allows the CoreText
font engine to correctly report the minimum left/right bearings,
which decreases the chance that an optimization in QTextLayout's
line breaking algorithm will produce wrong results.

The calculation of left and right bearing has been moved to the
glyph_metrics_t type to reduce code duplication. This allows us
to use the with and height of the bounding box to determine if
the glyph has any contours.

Change-Id: I864697d3f31ed56f22f04666199b6c5023c5e585
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
2015-09-02 09:11:31 +00:00
Morten Johan Sørvig
ba94e26b8b Cocoa: Clean up context creation.
Make the fallback to creating an unshared context
actually work by using correct [initWithFormat: ]
code.

Warn and return early on context creation failure
instead of continuing and crashing.

Change-Id: Ic88f419eaa717436aefc9c1da36c47e0ccb3e956
Task-number: QTBUG-47825
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-09-02 07:20:04 +00:00
Kai Koehne
1b459a8124 QAbstractSocket: Always set errorString right after socketError
Otherwise errorString() might not match error() in a
statusChanged handler.

Change-Id: If1250b4552412eabe88457dee031e4ef3f533838
Reviewed-by: Alex Trotsenko <alex1973tr@gmail.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-09-02 07:05:55 +00:00
Friedemann Kleint
51e501fa8d Remove QT_DISABLE_DEPRECATED_BEFORE=0 from tests not using deprecated API.
Change-Id: I1955320e7639760b4383a53f37a506c8055933ef
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-09-01 16:57:46 +00:00
Friedemann Kleint
a869e4772b Introduce Qt::AA_PluginApplication replacing Qt::AA_MacPluginApplication.
Reuse the enumeration value for a generic Qt::AA_PluginApplication
attribute since there are also initializations in platform ports other
than OS X that need to be suppressed in the plugin case.

Task-number: QTBUG-47556
Task-number: QTBUG-45762
Change-Id: I885f75030a251ccf66597aae3580499d012934e7
Reviewed-by: Jan Arve Sæther <jan-arve.saether@theqtcompany.com>
2015-09-01 15:32:46 +00:00
Friedemann Kleint
29af8741b6 Windows: Improve debug output of mime conversion handling.
Introduce convenience function for obtaining the format
name and use that.
Add debug operator for struct FORMATETC including format name.
Replace all code enclosed in #ifdef QMIME_DEBUG by qCDebug().

Task-number: QTBUG-47656
Change-Id: Ibb3c860c57edee4a31e8f5f37e3245feebed52a1
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-09-01 12:06:52 +00:00
Friedemann Kleint
01c6f7200a Polish the screen shot example.
- 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>
2015-09-01 06:06:33 +00:00
Friedemann Kleint
3363398802 Polish the systray example.
- Port it to new connection syntax.
- Replace module include by class includes.

Change-Id: I1b8d682bb7bb2e05b6b2b77a9c0d01730ea09cf2
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-09-01 06:06:30 +00:00
Martin Smith
d3f0bee885 qdoc: Fixed linking for overloaded functions
qdoc was failing to create links when a \l command referred
to a function that has an undocumented overload with no
parameters. qdoc would choose that internal function to be
the target, but the link construction would fail.

qdoc now checks the status of the overload that is matched.
If the matching function is marked internal, qdoc keeps
looking for one that is not marked internal.

Change-Id: Iebf296e79dc2554e54f00ef72b6f6c1ba7074f06
Task-number: QTBUG-47991
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-09-01 05:24:20 +00:00
Friedemann Kleint
e979ca5eda QWidgets tests: Remove QT_DISABLE_DEPRECATED_BEFORE=0.
Fix usage of API that is marked deprecated.

Change-Id: I04970ca7f8e09d3f0fd6adb87da046ae70c3eb38
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-08-31 19:57:48 +00:00
Friedemann Kleint
50b9e30970 qtbase tests: Remove QT_DISABLE_DEPRECATED_BEFORE=0 for simple cases.
Fix usage of API that is marked deprecated.

Change-Id: Ie31b6ee029c5b5f015fe52fb9bcd8e94b22d6cd0
Reviewed-by: Liang Qi <liang.qi@theqtcompany.com>
2015-08-31 19:56:59 +00:00
Friedemann Kleint
fe1ea010b9 Polish rich text example.
- 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>
2015-08-31 19:55:33 +00:00
Samuel Nevala
fb60f225e6 winrt: Enable window visibility for the root window.
- Minimized and Hidden: hide the status bar and collapse winrt native ui element.
- Windowed and Maximized: show the status bar and re-size the window.
- FullScreen and AutomaticVisibility: hide the status bar and re-size the window.

Showing & hiding the status bar and re-sizing the window affect only the
windows phone build.

Change-Id: Iaa412382bffc14e470720f2213bb3f6851f57a6b
Task-Id: QTBUG-47811
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-08-31 11:57:56 +00:00
Samuel Nevala
8c1fcbcd83 Declare StandardButton & ButtonRole types for cross-thread use.
On windows phone native dialog interaction is handled from
XMAL thread. Declare and register dialog helpers StandardButton
and ButtonRole for cross-thread usage.

Change-Id: Ic1842a5af8a1122fdffb766b4f723d272bdbcac2
Task-Id: QTBUG-47941
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-08-31 11:57:48 +00:00
Samuel Nevala
9ff74f1487 winrt: Work around broken screen rotation on Windows Phone 8.1.
Expose on orientation change clears bad frames caused by race between
Qt and ANGLE.

Change-Id: I8970c6be36133d861c718a946d9e9b7a5e88cc2c
Task-Id: QTBUG-44333
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-08-31 11:56:58 +00:00
Sean Harmer
c48cc28c36 Compile in namespaced builds
Change-Id: I2894fbadec50286c0831bf381d149b54ade9182d
Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
2015-08-31 10:33:57 +00:00
Sebastian Schuberth
1ca789bfe3 The new Registry{32,64}Format enum values did not make it into Qt 5.6
Change-Id: I85f17c1d149071b03357781bb4e973fc79ad658f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
2015-08-31 07:59:41 +00:00
Morten Johan Sørvig
c4015f13f3 Document handleWindowSystemEvent()
Document asynchronous and synchronous mode behavior.

Change-Id: I2dc1256af5b3a8014025c89c65d41480f18f0701
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-08-27 21:58:49 +00:00
Morten Johan Sørvig
ee767c838a Implement threaded synchronous WS events
Make handleWindowSystemEvent() support being called
from secondary threads in synchronousWindowSystemEvent
mode.

This is implemented by posting the event to the Gui
event queue (which will wake the Qt Gui thread), and
then calling flushWindowSystemEvents which will block
the calling thread until the event has been processed.

Change-Id: I7e8e68c1e0290c17105563268e316b0f8205b3ce
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-08-27 21:58:39 +00:00
Morten Johan Sørvig
ac9643c85f Make flushWindowSystemEvents return ev. accepted
flushWindowSystemEvents() now returns whether the
most recent event added to the queue was accepted
by Qt or not.

Use QAtomicInt to store the accepted state in order
to avoid a data race on it between the Gui thread
and the event poster thread.

Change-Id: I6c111fdaecda5c514307ca0749a54075fe8e872f
Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
2015-08-27 21:58:24 +00:00
Simon Hausmann
6d51697f1d Merge "Merge remote-tracking branch 'origin/5.5' into 5.6" into refs/staging/5.6 2015-08-27 22:29:28 +00:00
Allan Sandfeld Jensen
3fe645ecc9 Optimize set color component in RGBA64
After the removal of direct access through type punning,
the direct color setters can be better optimized.

Change-Id: Icaa5b1f8c8fe90863dd42fa4dfb5a2998c273465
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
2015-08-27 20:02:34 +00:00
Friedemann Kleint
79a4cb1e4f Fix some qdoc-warnings.
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>
2015-08-27 19:27:38 +00:00
Friedemann Kleint
2117a76136 QPlatformFileDialogHelper::cleanFilterList(): Allow for ',' in glob.
RCS files (text/plain) have the glob pattern "*,v", which caused
the regular expression match to fail.

Task-number: QTBUG-47923
Change-Id: I7d8682ef51306cb4da58a2b3880842bd99892ea3
Reviewed-by: David Faure <david.faure@kdab.com>
2015-08-27 19:27:26 +00:00
Alex Trotsenko
c3d8ab78b8 QRingBuffer: avoid allocation in c'tor
Reduces creation time and memory consumption when the buffer is unused.
Robin's benchmark:

  QBENCHMARK {
      QFile file(filename);
  }

reports the following results (run with -median 10 -iterations 524288):

before: 0.00028 msecs per iteration (total: 149, iterations: 524288)
after:  0.00017 msecs per iteration (total: 93, iterations: 524288).

Change-Id: Ied4e7caeca794b94260b8fc59b3ba656f4719c30
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
2015-08-27 14:42:37 +00:00
Pier Luigi Fiorini
61ad604ad4 Add QGuiApplication::setDesktopFileName()
This property might be set by applications whose desktop entry file name
cannot be determined by heuristics already in place.

It is particularly useful for QtWayland as it can be used to determine
the app_id simply by stripping the ".desktop" suffix from this property.
Without a correct app_id, Wayland compositors won't be able to e.g.
show the application icon on task managers.

This property is also very interesting for X11 as there are various
desktop environments trying to map windows to launchers.
It will be possible to export desktopFileName as a xproperty, making
such mapping less error prone.

Change-Id: I0fef23f28f383639e625379ab46e36aecb338ac4
Reviewed-by: Martin Gräßlin <mgraesslin@kde.org>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2015-08-27 11:00:39 +00:00
Samuel Nevala
9cdbf48c33 winrt: Fix MessageDialog show on windows phone.
Run native dialog show on XAML thread.

Change-Id: I6273340e87d70aae21c838d9d7646a233c1f48be
Task-Id: QTBUG-47938
Reviewed-by: Andrew Knight <andrew.knight@intopalo.com>
2015-08-27 09:47:38 +00:00
Samuel Nevala
df49755d74 winrt: Add missing Q_DECL_OVERRIDE and fix white space.
Change-Id: Ibbcb637dac4d531934786fff25f7b8c36ef5ebed
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
2015-08-27 09:47:23 +00:00
Jake Petroules
3b1cbc4753 Add some missing libraries for shared library builds on iOS.
Static linking hides the fact that these dependencies are necessary.

Change-Id: I0af58b840bc52dfd81b79c8ced5ee79def35895a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
2015-08-27 08:26:04 +00:00
Nico Vertriest
4db4fba05d Doc: removed reference to index.html in qmake manual
Task-number: QTBUG-35004
Change-Id: I7a2a76b25551cfe9e17072ce1767384d276b1f4d
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
2015-08-27 08:10:54 +00:00
Kevin Funk
f72cbe39e0 QByteArray: Add append/prepend/insert overload
Use-case is fast insertion of copies of a character,
avoiding any temporary heap allocations

Change-Id: Ie5517d88429fbd4c58dbe5729de7c468d5d9a279
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-08-27 07:31:06 +00:00
Alex Trotsenko
526d9b52ce QRingBuffer: allow to search from any position
Change-Id: I348cd9da88fc81c3dd0789ce8cce9d80c4524e24
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@theqtcompany.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-08-27 07:16:49 +00:00
Sebastian Schuberth
64261c0871 Support accessing 32-bit Registry from 64-bit programs and vice versa
For details see "Accessing an Alternate Registry View":

    http://msdn.microsoft.com/en-us/library/aa384129%28VS.85%29.aspx

Task-number: QTBUG-3845
Change-Id: Iecf24b15dc01830686ddd708871bc3392d95282f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-08-27 07:08:30 +00:00
Liang Qi
afab1546a7 Merge remote-tracking branch 'origin/5.5' into 5.6
Conflicts:
	qmake/doc/snippets/code/doc_src_qmake-manual.pro
	qmake/doc/src/qmake-manual.qdoc
	src/corelib/io/qstorageinfo_unix.cpp
	src/corelib/tools/qbytearray.cpp
	src/widgets/kernel/qwidgetwindow.cpp
	tests/auto/corelib/io/qprocess/tst_qprocess.cpp
	tests/auto/corelib/mimetypes/qmimedatabase/tst_qmimedatabase.cpp
	tests/auto/network/access/qnetworkreply/BLACKLIST

Change-Id: I9efcd7e1cce1c394eed425c43aa6fce7d2edf31c
2015-08-26 20:06:57 +02:00
Stanislav Baiduzhyi
06b457c693 Adding plasma5 support for QKdeTheme
Plasma 5 uses the same config files structure, but follows XDG spec
instead of storing them in custom locations.
Added '5' to supported KDE session version, and passing it to other
methods because 'kdeglobals' is located directly under XDG config
dirs and not deeper inside.

[ChangeLog][QtPlatformSupport][QKdeTheme] adding plasma5 support

Change-Id: I5f1d8d8f8d02449328db3ffc391ad23506cd67c7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: David Faure <david.faure@kdab.com>
2015-08-26 10:19:01 +00:00
Alex Trotsenko
bfecc2dbc6 QAbstractSocket::atEnd(): remove redundant checks
These checks are implemented in QIODevice::atEnd().

Change-Id: I056f05a59e2422ecbe7470557cb4ba03d98e5e45
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2015-08-26 10:18:38 +00:00
Topi Reinio
c3a0f22b60 qdoc: allow 'void' function parameter without a parameter name
There are a few functions using a C-style function declaration:

    void foo(void);

meaning that foo() takes no parameters. This change allows this
for QDoc, making it successfully match documented \fn blocks
with the correct declaration, and not print out warnings.

Change-Id: I8191c55094371431b0e9c2ad22d19cadcb7facfb
Reviewed-by: Martin Smith <martin.smith@digia.com>
2015-08-26 09:46:19 +00:00