Mitch Curtis [Fri, 27 Jul 2012 08:58:17 +0000 (10:58 +0200)]
Correct method name referred to in QFont's detailed description.
The detailed description of the QFont class reference contains
the wrong method name (and link) setPointSizeFloat().
This change replaces it with the correct name: setPointSizeF().
Task-number: QTBUG-15536
Change-Id: Ieb2e398b8e1d0b637a6bac16a3ec48522c5dddc1
Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com>
Martin Smith [Fri, 27 Jul 2012 10:22:05 +0000 (12:22 +0200)]
qdoc: Updated qdoc manual and qdoc guide
These documents now include the \qmltype and
\instantiates commands, and the \qmlclass command
is deprecated.
Task nr: QTBUG-26648
Change-Id: I62da273be51609e651e33b9088e1667e4c6c1e76
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Oswald Buddenhagen [Mon, 16 Jul 2012 12:29:48 +0000 (14:29 +0200)]
merge QMAKE_LIBDIR into QMAKE_LIBS early
dealing with the directories separately doesn't buy us anything. it's
easier to mix them into the libs, as that contains some paths, too, both
in projects and in prl files.
this brings the windows generators in line with the unix ones.
Change-Id: I1f58f7edd8e21d28bfabf04384bac2e315aaf446
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 16 Jul 2012 12:04:50 +0000 (14:04 +0200)]
unifiy initialization of QMAKE_LIBS{,_PRIVATE} among windows generators
Change-Id: Ib24ec6e290bfb277232c2483768c1b863f961462
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 16 Jul 2012 11:02:57 +0000 (13:02 +0200)]
clean up fixTargetExt()
there doesn't appear to be a point in having the function virtual; the
part in the mingw generator can be inlined somewhere else just fine.
Change-Id: I50d66d505095b43fce601928c6240a684389a4b7
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Mon, 16 Jul 2012 10:48:22 +0000 (12:48 +0200)]
de-virtualize some more functions
they are not re-implemented anywhere
Change-Id: I444a967bb39ec6b5994747c9fa3f605b4c53ce4f
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 13 Jul 2012 11:16:39 +0000 (13:16 +0200)]
dispose of QMAKE_LIBDIR_FLAGS, "demote" QMAKE_FRAMEWORKPATH_FLAGS
merge their content as early as possible into QMAKE_LIBS. that's where
they ultimately end up anyway, and this approach is way simpler.
QMAKE_FRAMEWORKPATH_FLAGS is also used for the compiler flags, so it
remains as such in this second function.
Change-Id: Idc3ba4a9b2569fce3252d5f5ddc3f6ebf93650cf
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 13 Jul 2012 11:09:30 +0000 (13:09 +0200)]
remove duplicate -L flags in findLibraries()
unlike duplicated -l options, duplicated -L options are really redundant.
Change-Id: I4fa42d8ee2f10c6e6263457d9bb97291e13685ef
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Fri, 13 Jul 2012 11:08:26 +0000 (13:08 +0200)]
unify handling of non-standard linker -L flags
findLibraries() now consistently expands to the linker-specific syntax,
and processPrlFiles() expects that syntax.
Change-Id: Ifd7b51d01378c91d6f2b132aca33629f21ca72f9
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Oswald Buddenhagen [Tue, 17 Jul 2012 13:39:54 +0000 (15:39 +0200)]
make sure that the stale header removal works the first time around
sort backwards by ascii, so that the lowercase headers come first -
otherwise the camelcase headers would survive the first round, as they
include the lowercase forwarding headers which were not deleted yet.
Change-Id: Iece2788206d31a11428f38da8d8f9f4d0b6dc992
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Volker Krause [Fri, 27 Jul 2012 08:59:47 +0000 (10:59 +0200)]
Fix crash in QVariant::canConvert().
When containing a QObject (or sub-class) pointer and trying to convert
to a QObject pointer canConvert() did dereference the pointer without
checking for it being null.
Change-Id: Ie274e54f2f817f2b6c5df64504f8af6359b8f38d
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Jeremy Katz [Thu, 26 Jul 2012 15:16:26 +0000 (17:16 +0200)]
fix QVariant qdoc error - mark const QVariant::data_ptr() internal
Change-Id: I1df93780f271ce06c3aa10c4bdcc1c2a43097b72
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Jeremy Katz [Thu, 26 Jul 2012 15:09:08 +0000 (17:09 +0200)]
Fix QUrlQuery qdoc errors
Add missing documentation for toString() and operator!=
Mark data_ptr() and associated typedef internal
and some qdoc tag usage issues
Change-Id: I0ad5a2c767fb742d9a86ae259c0c11a0f5db64b4
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Jędrzej Nowacki [Mon, 4 Jun 2012 14:52:32 +0000 (16:52 +0200)]
Introduce QTypeInfoMerger.
QTypeInfoMerger class was created to allow "inheriting" QTypeInfo
traits. The class implementation was based on the QTypeInfo<QPair<>>
specialization, therefore the specialization was refactored to
use the new class.
Change-Id: I4ff3e5eac1d55da086dad84274cce2b2c0a721be
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Rohan McGovern [Thu, 26 Jul 2012 06:29:13 +0000 (16:29 +1000)]
examples: fixed compile with -no-widgets
Disable a few examples depending on widgets which had previously been
missed.
Change-Id: Ic9c7cda94f690ee9d541c742997b7db9ace40fe0
Reviewed-by: Toby Tomkins <toby.tomkins@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 14:10:52 +0000 (16:10 +0200)]
Implement implicit constructors for built-in classes.
Change-Id: I6b0b104bc1da3252d014615c50b81830de42e722
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Mitch Curtis [Wed, 25 Jul 2012 12:57:20 +0000 (14:57 +0200)]
Describe an example usage of stretch in QSizePolicy documentation.
Martin Pejcoch suggested QSizePolicy's setVerticalStretch and
setHorizontalStretch functions be better documented. This change
gives sample usages.
Task-number: QTBUG-18373
Change-Id: I54da8605f5e9e5f405c145b78865402baf78eee7
Reviewed-by: Martin Pejcoch <martin.pejcoch@nokia.com>
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Morten Johan Sorvig [Fri, 25 May 2012 07:40:19 +0000 (09:40 +0200)]
Add QCocoaAutoReleasePool to QCocoaMenu::setText
Change-Id: Ia47d79d400c6c4dcd7a49595f05ddafb5a256fad
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
Jeremy Katz [Thu, 26 Jul 2012 17:31:10 +0000 (19:31 +0200)]
fix QMimeDatabase qdoc errors
Some of the \sa lines were missing () after function names.
Document MatchMode and the deprecated mimeTypeForNameAndData()
Change-Id: I468b9741908beb7be5723a8bb927e5418fc1c344
Reviewed-by: David Faure <faure@kde.org>
Marc Mutz [Wed, 25 Jul 2012 23:10:50 +0000 (01:10 +0200)]
QtNetwork: unbreak QT_NO_SSL build
The Q_DECLARE_METATYPE()s were outside of #ifndef QT_NO_SSL for classes
that are defined inside.
Expand the #ifndef block.
Change-Id: I45b73a24032fb2a79fd80d91282b782daa8a8f68
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Jeremy Katz [Thu, 26 Jul 2012 12:52:42 +0000 (14:52 +0200)]
Fix several QUrl qdoc errors
Change-Id: I2b89751ed2ec54f3b992c5fc4b39539d521c3404
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Andrew den Exter [Thu, 26 Jul 2012 04:25:30 +0000 (14:25 +1000)]
Fix position of mouse events generated from touch events.
In touch event terminology the global position is the screenPos,
scenePos is the windowPos.
Fixes a tst_qdeclarativepincharea test failure in qtquick1.
Change-Id: Ie98fe12be8cbedc9b019913b066e7c4bce75278d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Friedemann Kleint [Thu, 26 Jul 2012 07:14:26 +0000 (09:14 +0200)]
Fix MSVC 64bit warnings about truncation from size_t to int.
Change-Id: I9aea91aeb9f71817e9cc612d41351dbc98056500
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Friedemann Kleint [Wed, 25 Jul 2012 13:34:47 +0000 (15:34 +0200)]
Stabilize tst_QMenu::tearOff().
Introduce QTRY_VERIFY for frequently failing test.
Change-Id: I38a6420574c4dde20fd7fa484681514543bd70cb
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Friedemann Kleint [Wed, 25 Jul 2012 13:18:19 +0000 (15:18 +0200)]
Stabilize tst_QCompleter::QTBUG_14292_filesystem.
Make sure the test subdirectories are actually visible
in the file model before the tests start.
Change-Id: If640456bba4362b19d7ad9d9184736c2eb8d3bde
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Friedemann Kleint [Wed, 25 Jul 2012 09:47:26 +0000 (11:47 +0200)]
Base 'FileSystem' test helper class on QTemporaryDir.
This avoids test instabilities and prevents test directories
from being cluttered with temporary files. Change tests
accordingly. Remove unused createLink() method.
Change-Id: I843c28ab81c8a476c71c5211a7479b22d3d9fc93
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Marc Mutz [Fri, 20 Jul 2012 13:46:40 +0000 (15:46 +0200)]
QMetaTypeId2::IsBuiltIn: (new) template meta-function to check for built-in types
This allows to check whether QMetaTypeId2::MetaType exists, and can help
turn run-time into compile-time expressions, even without constexpr support,
or in situations where constexpr can't be used (because you can't overload
on it). This was designed for the QMetaType::registerConversion feature,
but it's much more widely applicable.
Change-Id: Iafa04add04bcb531b3f7fe3e751c7e91ee6a3bc0
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Marc Mutz [Tue, 24 Jul 2012 16:00:54 +0000 (18:00 +0200)]
QFileInfo: remove synchronisation macro
Staged after all other modules have removed their
Q_DECLARE_METATYPE(QFileInfo) copies.
Change-Id: I9ac42fcc5f333dd6e8b92c8755610f88cb7267a0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Lars Knoll [Thu, 26 Jul 2012 11:56:14 +0000 (13:56 +0200)]
Fixup the plugin documentation
Move the plugin howto from qtdoc to corelib where
it belongs. Fix the snippets and remove all
remaining references to Q_EXPORT_PLUGIN
Task-number: QTBUG-26237
Change-Id: I43dce2ffa42193b7a992fa1a0f2fcb2f633037b2
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Martin Smith [Thu, 26 Jul 2012 08:48:42 +0000 (10:48 +0200)]
qdoc: Changed \qmlclass to \qmltype, added \instantiates
The \qmlclass qdoc command is now deprecated. Use \qmltype instead.
\qmlclass had two arguments, the QML type name and, if the QML type
was elemental, the name of the C++ class that the QML element
instantiates. The \qmltype command has only one argument, the QML type
name.
If the QML type is elemental, then the \qmltype command should be
followed by a \instantiates context command in the same qdoc
comment. e.g.:
\qmltype Item
\instantiates QDeclarativeItem
When the developer does not include the \instantiates command for an
elemental QML type, qdoc will no longer be able to detect that the C++
class name is missing, and qdoc will no longer be able to detect when
the name specified for a \qmlproperty of the elemental QML type has
the wrong name.
Task nr: QTBUG-26648
Change-Id: Ia60872a35113a6f615bfc751ce1e9db6279dfb8e
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Casper van Donderen [Thu, 26 Jul 2012 08:05:52 +0000 (10:05 +0200)]
Revert "QDoc: Allow '0' to be used as 2nd arg for \qmlclass."
This reverts commit
50dfd15dcc49d12c5335a37999aef041d7fdfaae.
The change is not necessary anymore, since a new solution using
\instantiates in in the works, having two ways to do exactly the same
thing is not necessary.
Change-Id: I6e139d760372fc6177023c470850418b2385fccd
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Frederik Schwarzer [Wed, 25 Jul 2012 20:52:11 +0000 (22:52 +0200)]
Fix some typos.
Change-Id: I3c3c96fbbc19e2a69ac2f22618f15f5262718e50
Reviewed-by: Laszlo Papp <lpapp@kde.org>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Marc Mutz [Fri, 20 Jul 2012 08:56:54 +0000 (10:56 +0200)]
QtNetwork: use nullary version of qRegisterMetaType<T>("T")
Using the nullary version has the advantage that multiple calls
during a program run are much more efficient, since an inlined
atomic is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>("T")
will happily register anything. So I've added the macro where it
was missing, or moved it to a central place when it existed
hidden.
In tst_qnetworkreply, this became a bit tricky, because a private
header is conditionally included, so moved the Q_DECLARE_METATYPE()
into a conditional section, too.
Change-Id: I71484523e4277f4697b7d4b2ddc3505375162727
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Ali Akhtarzada [Mon, 23 Jul 2012 12:59:51 +0000 (14:59 +0200)]
Added note to QTransform::isRotating
Rotation of 180 or 360 is treated as a scaling transform
Task-number: QTCREATORBUG-7651
Change-Id: I44077de0a4a90a87d2d9e8499c1920da1ed066c9
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Stephen Kelly [Wed, 25 Jul 2012 13:46:26 +0000 (15:46 +0200)]
Make the operator| for QUrl with QIncompatibleFlag constexpr.
Change-Id: I7780af7ef0d5e191e2715c40bf0ffbb6d376f1a2
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Andreas Holzammer [Wed, 25 Jul 2012 14:19:05 +0000 (16:19 +0200)]
Fix debug and release build for Windows CE
Change-Id: Idc3faa2c65f3e87aadf75c0c79f1581a24aff8ca
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Friedemann Kleint [Tue, 24 Jul 2012 12:29:01 +0000 (14:29 +0200)]
Remove usage of deprecated qWaitForWindowShown(QWidget *) method.
Remove usages from autotests with the exception of
widgets/kernel, widgets/widgets and widgets/graphicsview.
Change-Id: I917b2857ed0cd07a6b3dbcd69244f558086c6586
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Marc Mutz [Wed, 25 Jul 2012 13:27:59 +0000 (15:27 +0200)]
tst_qmetatype: fix two more unused typedefs (GCC 4.8 warning)
Also check the return value of
DefaultValueFactory<QMetaType::Void>::create(), the same way it's
done in testCreateHelper<QMetaType::Void>().
Change-Id: I3e6d7fca4ea74dbe65009f2eb2c64a1b3a370d68
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Wed, 25 Jul 2012 13:23:46 +0000 (15:23 +0200)]
Fix copypasto: iconv -> cups.
Introduced in
eba0efe10ea90dec7a8b1e95017b0203b899af95
Change-Id: I6bfbf884f66057955d62db6266cf11b399edf965
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 14:22:03 +0000 (16:22 +0200)]
De-inline QItemEditorCreatorBase destructor.
Virtual destructors on public exported API should not be inline.
Change-Id: I05bff0412ac97d2d8bd3cf8944f4fff2cb619f54
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Gatis Paeglis [Wed, 20 Jun 2012 08:26:52 +0000 (10:26 +0200)]
Remove Qt5 to-do remark
Removing Qt5 to-do remark since GraphicsView is considered done and this
change is not performance critical.
Task-number: QTBUG-25089
Change-Id: Ib6e59290a628d27d7e623d221e7100f2e11d13f9
Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
Oswald Buddenhagen [Tue, 24 Jul 2012 12:39:53 +0000 (14:39 +0200)]
fix syntax error in static plugin assembly code
Change-Id: Ib7662c5529432663df06eea509dc3479cea01050
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Oswald Buddenhagen [Tue, 24 Jul 2012 12:38:06 +0000 (14:38 +0200)]
fix syntax error in breakpad support
Change-Id: I7964615814377ae4fd9c7da897978100c9294835
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Marc Mutz [Wed, 4 Jul 2012 15:18:22 +0000 (17:18 +0200)]
QObject: add a macro for conveniently setting the object name
This is a simplified port of KDTools' KDAB_SET_OBJECT_NAME.
It simply assigns the variable name as the objectName of
a QObject, uic-style. It uses a small helper function so
that it works on references as well as pointer variables.
QLabel label;
QLabel *pLabel = new QLabel();
Q_SET_OBJECT_NAME(label);
Q_SET_OBJECT_NAME(pLabel);
Change-Id: I25fec0c90f33249a3ea5d2dd622ab708019fd101
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: David Faure <faure@kde.org>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Laszlo Agocs [Wed, 25 Jul 2012 09:02:23 +0000 (12:02 +0300)]
Disable tty keyboard in kms
Set QT_KMS_TTYKBD=1 to prevent this and keep vt switching, ctrl-c,
input appearing on the tty, etc. working.
Change-Id: I0071685205ae9e02536dcb71f6fef6495c48f8fb
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Wed, 25 Jul 2012 09:14:44 +0000 (12:14 +0300)]
Fix keyboard input in kms
The window was not made active.
Change-Id: I20c323201be71fa4deb758e4a8fc32297d6faf0c
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Laszlo Agocs [Wed, 25 Jul 2012 08:52:07 +0000 (11:52 +0300)]
Update only dirty areas in kms backingstore
Do not upload the entire (typically fullscreen) image
all the time.
Taken from eglfs' backingstore implementation.
Change-Id: I53db5cf54577ebea715d6cbd7215b9d2154e8960
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Stephen Kelly [Sun, 22 Jul 2012 19:40:22 +0000 (21:40 +0200)]
Create IMPORTED CMake targets for executables.
Although IMPORTED executables are not extra special, this is more future-proof
in terms of both future CMake features and future our needs - it is possible
that we would want to add a property to an executable at TARGET scope, which
would not be possible if it is just a path.
Change-Id: I649c601e004b21603c5fa97de0b7c397813ed68d
Reviewed-by: Brad King <brad.king@kitware.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Casper van Donderen [Wed, 25 Jul 2012 11:44:40 +0000 (13:44 +0200)]
QDoc: Introduce a setting to include index nodes in QHP.
Change-Id: I5d35961241300f509b8a9d8e3cf980fabc10cfab
Reviewed-by: Martin Smith <martin.smith@nokia.com>
Mitch Curtis [Tue, 24 Jul 2012 10:56:12 +0000 (12:56 +0200)]
Correct status tips for Menus example.
Line spacing's status tip is incorrectly set to paragraph spacing's,
and paragraph spacing's status tip is not set at all.
Task-number: QTBUG-22736
Change-Id: I2c3ff2fa45221f1cf4af8e4323c383c998adb650
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Reviewed-by: Michalina Ziemba <michalina.ziemba@nokia.com>
Mitch Curtis [Wed, 25 Jul 2012 11:23:09 +0000 (13:23 +0200)]
Add ISO 8601 specification link to corelib's external-resources file.
Used by qtbase and qtpim, but only needs to be in qtbase.
Change-Id: I284a8b00ff8eced81057b636ead2b6107eb1fa0c
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Marc Mutz [Fri, 20 Jul 2012 09:02:31 +0000 (11:02 +0200)]
QtWidgets: use nullary version of qRegisterMetaType<T>("T")
Using qRegisterMetaType<T>() has the advantage that multiple calls
during a program run are much more efficient, since an inlined
atomic is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>("T")
will happily register anything.
Had to add Q_DECLARE_METATYPE to QFileInfo, for
QList<QPair<QString,QFileInfo>> of QFileSystemModel to work with
the partial specialisations of Q_DECLARE_METATYPE for QList, QPair.
In order to synchronize this change with other modules that did
their own Q_DECLARE_METATYPE(QFileInfo), a sync macro is defined
that can be tested in other modules, and will later be removed again.
Change-Id: I3004664e07e64cd885d5a03a57ff4e4379804aec
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
David Faure [Fri, 13 Jul 2012 23:37:53 +0000 (01:37 +0200)]
Add QSignalSpy::wait() method.
Change-Id: I1f3b49e3dee19bf0b1d2933c6e6ad7972186e0d0
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Rafael Roquetto [Tue, 24 Jul 2012 13:45:44 +0000 (15:45 +0200)]
Fix qmake hash function to use XOR
Use XOR instead of OR in order to avoid saturating all bits when computing the
hash value.
Change-Id: I50b1a044eb827239dae1c04732ca6a065f6233b4
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Friedemann Kleint [Fri, 20 Jul 2012 10:49:12 +0000 (12:49 +0200)]
Deprecate the qWaitForWindowShown(QWindow *) method.
While the qWaitForWindowShown(QWidget *) is inherited
from Qt 4.8, the qWaitForWindowShown(QWindow *) was introduced
in Qt 5. As it is identical to qWaitForWindowExposed()
and removed already, it can be deprecated in Qt 5.
Remove its usages in qtbase.
Change-Id: I28788d120ad687a49f02b2b44de6b38a2832fe5c
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Martin Smith [Tue, 24 Jul 2012 12:27:37 +0000 (14:27 +0200)]
qdoc: Fixed incorrect href attribute values in qdoc
There were two fileBase() functions, but only one
was correct. The wrong one was being called in some
cases. Now there is only one fileBase() function,
which is always called.
Task nr: QTBUG-26591
Change-Id: I2c40e2152a8c7ad1bb9db256ecf1367148f0e7f6
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Ali Akhtarzada [Tue, 24 Jul 2012 08:16:56 +0000 (10:16 +0200)]
Fix typo in QMdiArea docs
Task-number: QTBUG-26498
Change-Id: I2c7b7a67c732eb58f1ffc2a137a675ac63dc6597
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Mitch Curtis [Tue, 24 Jul 2012 09:00:02 +0000 (11:00 +0200)]
Document emission of commitDataRequest() signal in QApplication doc.
It is currently not clear that QApplication::commitData() emits
the commitDataRequest() signal. Users should know this if they plan
to override the default implementation.
Task-number: QTBUG-23117
Change-Id: I418af4b83795d53c9d86a2ac620c0f7c5bb9ada3
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Mitch Curtis [Tue, 24 Jul 2012 11:15:47 +0000 (13:15 +0200)]
Correct reference to nonexistent Qt::QA_Window flag in documenation.
Should be Qt::Window.
Task-number: QTBUG-22725
Change-Id: I150e77dec9c93035e01cf2e6be68a54bb4b122b2
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Uli Schlachter [Tue, 17 Jul 2012 21:44:01 +0000 (23:44 +0200)]
QXcbWindow::setMask(): Check for SHAPE extension
If the SHAPE extension is not available and we try to use it, the xcb connection
will shut down and go into an error state. This is bad because there would be no
error message that would give a hint on what went wrong.
Change-Id: I1a6734bd146ca179a990b6ce896813bf76007b66
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Uli Schlachter [Tue, 17 Jul 2012 21:40:45 +0000 (23:40 +0200)]
Reimplement QXcbWindow::setMask() with xcb
This functionality does not need libXext. The bindings for the shape extension
from libxcb-shape is enough and is available without Xlib.
Change-Id: I9f1927024c64df00ace1666998c6c6deda2ef782
Signed-off-by: Uli Schlachter <psychon@znc.in>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Mitch Curtis [Tue, 24 Jul 2012 13:59:17 +0000 (15:59 +0200)]
Fix error in sample code on the Layout Management page.
Incorrect return type in a sample class (CardLayout) function.
Although the function is never called, the return type should be int,
not QLayoutItem*.
Task-number: QTBUG-25602
Change-Id: I05ebd07a35b6db62b8c12255186f9d9487da79f6
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Mitch Curtis [Tue, 24 Jul 2012 08:32:55 +0000 (10:32 +0200)]
Remove references to nonexistent QLocale::setDefaultLocale() in docs.
Should be QLocale::setDefault().
Task-number: QTBUG-23210
Change-Id: I0f5e6cc431f568c9b8c4be1411b7b47835304d0b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Marc Mutz [Fri, 20 Jul 2012 09:02:31 +0000 (11:02 +0200)]
QtOpenGL: use nullary version of qRegisterMetaType<T>("T")
Using the nullary version has the advantage that multiple calls
during a program run are much more efficient, since an inlined
atomic is used to store the result. For this, it requires
Q_DECLARE_METATYPE(T), so add, too.
Change-Id: Ic9a9013aa13ff9d8f917f9df033dd2197944f84a
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Tue, 24 Jul 2012 08:52:53 +0000 (10:52 +0200)]
Split the QGuiVariant test from the Core one.
This makes development on the meta type system easier because only
QtCore must be re-built to run most of the tests. The existing
QGuiVariant test needs to be run before pushing anyway, but not
so frequently.
Change-Id: I1fa66edbd790c957e1a232226847dd550227a477
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 10:34:33 +0000 (12:34 +0200)]
Make sure that unknown types use the handler for unknown types.
This fixes an assert in the QVariant checkDataStream unit test when
it no longer links to QtGui.
Change-Id: Ib45139cf790f3ac6ee80e1c59f50d08d0b51ffa4
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 10:01:13 +0000 (12:01 +0200)]
Use a large core type for the QVariant::setValue test.
The type needs to be large enough that
QVariantIntegrator<T>::CanUseInternalSpace is true.
Change-Id: I311c44bedfebd946e41639975df206c27b6d55ca
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 08:53:26 +0000 (10:53 +0200)]
Make qRegisterMetaType constexpr for built-in types.
For consistency with qMetaTypeId, and because we can.
Change-Id: I6882a16ef3c0d84539048c9f2c201c4a2b2ca7ad
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Stephen Kelly [Tue, 24 Jul 2012 07:21:16 +0000 (09:21 +0200)]
Don't make the CMake file generation dependent on DESTDIR.
It is expected to be well defined for the CMake files to be generated
correctly, but if that stops being the case, it should fail loudly. All
of the generated CMake packages are CI tested.
Change-Id: I67c7fa6ef1fe0a019c40936cb12db282669e9ee8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Kevin Ottens [Tue, 17 Jul 2012 15:21:55 +0000 (17:21 +0200)]
QNX: Remove mouse events synthetized from touch events
This behavior is now implemented in a finer way in QtQuick and
QtWidgets, it's not needed anymore in the platform plugin.
Change-Id: Iacdcd313253627fbba094abe4e9a9c1d23a431e1
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Marc Mutz [Fri, 20 Jul 2012 08:34:27 +0000 (10:34 +0200)]
QtDBus: use qMetaTypeId<T>() instead of qRegisterMetaType<T>("T")
Using qMetaTypeId<T> has the advantage that multiple calls during
a program run are much more efficient, since an inlined atomic
is used to store the result. It also ensures that
Q_DECLARE_METATYPE(T) has been used, whereas qRegisterMetaType<T>
(the unary version) will happily register anything.
Had to add a proper default constructor to QDBusError, as the
one doubling as the default constructor wasn't available under
QT_BOOTSTRAP, but Q_DECLARE_METATYPE requires a default ctor.
Also changed a nullary qRegisterMetaType() to qMetaTypeId() in
qDBusRegisterMetaType(). They're equivalent, since the former
just calls the latter, but apart from the miniscule optimisation
that the compiler has to instantiate one function less, the result
is also used, so using qMetaTypeId() better expresses what 'id'
is.
Change-Id: Ib9dde17923ab9ee55f9464138a625ab8cd55c482
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
David Faure [Tue, 24 Jul 2012 07:55:09 +0000 (09:55 +0200)]
QAbstractNativeEventFilter: document return value
(paragraph taken "as is" from the QObject::eventFilter documentation)
Change-Id: I1b7e92736103042d7105f1b26ba4784cbcc43dc2
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Oswald Buddenhagen [Fri, 13 Jul 2012 10:32:45 +0000 (12:32 +0200)]
remove support for rvct_linker config from MinGW generator again
yet another symbian remnant (building windows arm executables for the
simulator).
This reverts commit
5c88141ed0b25d8ab9318bf4cb5dda54b90b2ce1.
Change-Id: I6eb147c0e2710eba09a4339fa4a08a5b08f8dab3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Oswald Buddenhagen [Thu, 12 Jul 2012 20:02:50 +0000 (22:02 +0200)]
$$QMAKE_LIBDIR contents belong into $(LIBS), not $(LFLAGS)
unlike for the unix linker, this does not matter for the windows linker,
but keeping it consistent has advantages.
Change-Id: Ib9b9efa18c31d87c026d3cac5a8737f4612ad1c0
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Oswald Buddenhagen [Thu, 12 Jul 2012 19:47:11 +0000 (21:47 +0200)]
do not run findLibraries() over QMAKE_LFLAGS
libraries and related flags have no business in that variable, by
definition.
Change-Id: Ic958a3e082a498945ab56bc12ec05d4083ee43a5
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Oswald Buddenhagen [Thu, 12 Jul 2012 19:46:53 +0000 (21:46 +0200)]
dispose of MSVCPROJ_LIBS
this way QMAKE_LIBS{,_PRIVATE} can be treated the same as in all other
generators, which allows us to:
- make the windows generators' findLibraries() be more like the unix
version
- dispose of QMAKE_INTERNAL_PRL_LIBS handling while reading prl files
(because the output always goes to QMAKE_LIBS)
- as a side effect, QMAKE_LIBS_PRIVATE are not subjected to prl file
resolution any more, which is again consistent with unix - the
correctness of that needs to be assessed separately.
Change-Id: Ie9bc04d117eff6a7cde846677f98acf3c64aa6ee
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Oswald Buddenhagen [Thu, 12 Jul 2012 14:58:09 +0000 (16:58 +0200)]
remove apparently pointless call to findLibraries()
the function was already called long before. if it really needs to be
called again, it's a) probably affecting the other windows generators as
well and b) the actual problem should be fixed instead.
This reverts commit
d50c3c6624b2343e42d0df4b72212d9ced8f3682.
Change-Id: Iaa2007640fbc9acdc50ba3b0681efeb0d184f224
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 07:23:20 +0000 (09:23 +0200)]
Remove obsolete or commented use of Q_DECLARE_METATYPE.
Change-Id: I15bc845801b9f84a9252a0092fbd69f0e1b3f4ea
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Stephen Kelly [Tue, 24 Jul 2012 07:26:15 +0000 (09:26 +0200)]
Remove obsolete TODO.
This will probably not be done in time for Qt 4.7.
Change-Id: Ie9112cee021e31849f5b43eefb8eb57537d01a2d
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Kevin Ottens [Tue, 17 Jul 2012 15:18:25 +0000 (17:18 +0200)]
Propagate synthesized mouse events in parallel (lock-step) with touch
This patch implement the equivalent of
468626e99a90d6ac21cb311cde05c658ccb3b781 in qtdeclarative but for
QtWidgets.
If a widget doesn't accept a touch event, then QApplication gives it
another try by synthesizing a corresponding mouse event. This way
QtQuick and QtWidget behave in a similar way, removing the need for
platform backends to try to emulate a mouse event from a touch event
unconditionally.
Also add relevant unit tests and adjust old QApplication ones.
Change-Id: Iddbf6d756c4b52931a9d1c314b50d7a31dbcdee9
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Stephen Kelly [Tue, 24 Jul 2012 07:25:45 +0000 (09:25 +0200)]
Replace old typedefs with their built-in equivalents.
Change-Id: I3ecb75ace431b92a13de67aa6426cf570398587f
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Stephen Kelly [Tue, 24 Jul 2012 07:26:40 +0000 (09:26 +0200)]
Fix typo pallete -> palette.
Change-Id: I17b71bfed22c3692b027556ef2e5d6ece4f3f77e
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Marc Mutz [Fri, 20 Jul 2012 09:06:00 +0000 (11:06 +0200)]
QAbstractItemView: don't qRegisterMetaType<QModelIndex>
QModelIndex is a build-in type nowadays and doesn't
need to be registered anymore.
Also remove them from the tests.
Change-Id: I47029972651c045c880cee86fb292116a29493d5
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Wed, 18 Jul 2012 20:25:56 +0000 (22:25 +0200)]
Add tests of the various testlib definition possibilities.
The behavior of QTEST_MAIN depends on whether QT_GUI_LIB or QT_WIDGETS_LIB
is defined. It could create a QGuiApplication or QApplication which
could cause linking issues if the corresponding library is not linked to.
The failure cases are also tested.
Change-Id: I61ed0bc760564ef42ce1dbd86c83c06348c860ff
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Laszlo Papp [Tue, 24 Jul 2012 03:01:45 +0000 (04:01 +0100)]
Remove the unnecessary qdebug.h includes in the QPoint(F) tests
Change-Id: I5c45af9d498e20b46d6faf8c96de87586eca7b4a
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Thomas McGuire [Wed, 18 Jul 2012 13:17:20 +0000 (15:17 +0200)]
Provide access to (dis)connectNotify() from other objects.
This is the first step to fix (dis)connectNotify() not getting called
for QML signal handlers and bindings.
Change-Id: I5cfc126a5562a20031d3af8415c60d101603dd8d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Marc Mutz [Mon, 23 Jul 2012 20:40:07 +0000 (22:40 +0200)]
QtConcurrentFilter: remove unused typedef (GCC 4.8 warning)
This one actually triggers a failure in tst_headersclean.
Change-Id: Id37184bacf910702879fa68014705ed5399cea1b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
David Faure [Fri, 20 Jul 2012 18:52:44 +0000 (20:52 +0200)]
Remove winEventFilter, replaced with installNativeEventFilter.
No reason to keep a virtual method for Windows when all other similar methods
(macEvent and x11Event) have been removed, and when installNativeEventFilter
provides a much nicer solution (no need to derive from QApplication).
Change-Id: Ia2a7960e320fcbd04cef91f467900861dbb377c1
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Friedemann Kleint [Fri, 20 Jul 2012 14:18:29 +0000 (16:18 +0200)]
Remove usage of deprecated qWaitForWindowShown in dialog tests.
Change-Id: Id3ebe202d65ee682e8e2e3ae107808e9abb6cc15
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Mitch Curtis [Mon, 23 Jul 2012 11:58:57 +0000 (13:58 +0200)]
Correct QDomDocument documentation re deletion of internal objects.
Task-number: QTBUG-25641
Change-Id: If1f46757d2d1e678e4b9e939da89a497da71dccf
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Mitch Curtis [Mon, 23 Jul 2012 14:31:30 +0000 (16:31 +0200)]
Fix q_check_ptr typo in QtGlobal documentation.
Task-number: QTBUG-24093
Change-Id: Ia6b4ef49e07910ceddd826b3b7cc81ca41f33d01
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Mitch Curtis [Mon, 23 Jul 2012 14:06:38 +0000 (16:06 +0200)]
Replace Q_REGISTER_METATYPE in QAbstractSocket::stateChanged doc.
Should be Q_DECLARE_METATYPE.
Task-number: QTBUG-24692
Change-Id: I9c8b8d503fba254661e8f0d72855758d5d03ada1
Reviewed-by: Geir Vattekar <geir.vattekar@nokia.com>
Mitch Curtis [Mon, 23 Jul 2012 13:33:03 +0000 (15:33 +0200)]
Correct QLineEdit::inputMask documentation.
The documentation says:
"Unset the mask and return to normal QLineEdit operation by passing an
empty string ("") or just calling setInputMask() with no arguments."
However, the parameter for setInputMask is a const QString&, so calling
it with no arguments will result in a compile error. The documentation
should not advise calling setInputMask() without arguments.
Change-Id: Icd8e063dcd3d745bd4bf0c6851a38f63481957ae
Task-number: QTBUG-24803
Reviewed-by: Jerome Pasion <jerome.pasion@nokia.com>
Giuseppe D'Angelo [Mon, 2 Jul 2012 08:01:56 +0000 (09:01 +0100)]
More qHash(T, uint) support
Add the seed to QPair, QUuid, QPersistentModelIndex's qHash(), and fix
qHash documentation for them and for many other datatypes.
Change-Id: I1386f3ed42ee1a832371a242ee5c82895ba92c2b
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Lars Knoll [Fri, 20 Jul 2012 07:05:47 +0000 (09:05 +0200)]
Move the windows locale codec into it's own file
Simple cleanup, that will make it easier to refactor
the code to use ICU.
Change-Id: I7486f36d27b8c521cf970327eb94b2236338d4ec
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Laszlo Agocs [Sat, 21 Jul 2012 11:20:33 +0000 (14:20 +0300)]
Add basic backingstore implementation to kms
This allows using the kms plugin in QWidget apps having a single
(preferably fullscreen) top-level widget.
Based on eglfs' implementation. Dirty rectangle tracking is missing,
should be added later.
There is no composition so multiple TLWs will not work nicely.
Change-Id: Ia78589d1a375925ebdcc46aa20fc1619ec14d6cc
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Reviewed-by: Elvis Lee <kwangwoong.lee@lge.com>
Mitch Curtis [Mon, 23 Jul 2012 10:13:32 +0000 (12:13 +0200)]
Clarify ambiguous sentence in QVariant::toBool() documentation.
Task-number: QTBUG-26482
Change-Id: Id9158ba1f7ffa5af169f808aed4559f7a0470e20
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Jan-Arve Saether [Fri, 20 Jul 2012 14:11:45 +0000 (16:11 +0200)]
If the GL driver is singlebuffered, reflect that in QSurfaceFormat
Change-Id: Iafed64d0a35f8d49357f147c8b7b4c0e9f4b9173
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Jan-Arve Saether [Fri, 20 Jul 2012 14:11:45 +0000 (16:11 +0200)]
If swapBehavior is TripleBuffer, set WGL_DOUBLE_BUFFER_ARB to TRUE
Previously, if the drivers' swap behaviour was single-buffered
it would fallthrough (just like DefaultSwapBehavior) and remain
single-buffered.
Change-Id: I4b93ad7a49094aa992d0b8fb3429c163bbbf655d
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Reviewed-by: Kim M. Kalland <kim.kalland@nokia.com>
Friedemann Kleint [Mon, 23 Jul 2012 14:56:11 +0000 (16:56 +0200)]
WindowSystemInterface::sendWindowSystemEvents(): Remove unused parameter.
No need to pass the dispatcher. Get rid of Windows logic to maintain
a stack of dispatcher associated with flags.
Change-Id: Ic2daad4b6762a46fac3274937effc188af436c9a
Reviewed-by: David Faure <faure@kde.org>