Marc Mutz [Tue, 6 Mar 2012 07:52:11 +0000 (08:52 +0100)]
tst_qnetworkreply: don't inherit from QSharedPointer
QSharedPointer isn't meant to be used as a
base class.
Instead of inheriting from it to add implicit
conversions to and from QNetworkReply*, make
QNetworkReplyPtr a typedef, overload two
oft-used functions to take a QNetworkReplyPtr
in addition to QNetworkReply*, and otherwise
make the conversions explicit.
Change-Id: I1eff1793a19f2d5bad1cce8de74c0786675a50f3
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Lars Knoll [Mon, 19 Mar 2012 19:53:20 +0000 (20:53 +0100)]
Rewrite QMap to use a RB tree
QMap used to use a skiplist in Qt 4.x, which has variable
sized nodes and we can thus not optimise using custom
allocators.
The rewrite now uses a red-black tree, and all allocations
and tree operations happen in the cpp file. This will allow
us to introduce custom allocation schemes in later versions
of Qt.
Added some more tests and a benchmark. Memory consumption
of the new QMap implementation is pretty much the same as before.
Performance of insertion and lookup has increased by 10-30%. iteration
is slower, but still extremely fast and should not matter compared
to the work usually done when iterating.
Change-Id: I8796c0e4b207d01111e2ead7ae55afb464dd88f5
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marc Mutz [Tue, 6 Mar 2012 11:11:25 +0000 (12:11 +0100)]
QPointer: some optimisations
Implement QPointer in terms of QPointerBase,
a non-template roughly the same as
QPointer<QObject>, to reduce the amount of
template code being generated.
Also mark QPointer as movable, fake an
isNull() for qdoc, and remove qpointer.h's
content from QT_NO_QOBJECT builds (some
indirect include hits the missing
QWeakPointer(QObject*) constructor when
bootstrapping; worked before b/c QPointer
is a template; QPointerBase isn't, though).
Change-Id: I657826601f570f954d80b84bb0334dd3a7452859
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Wed, 21 Mar 2012 19:47:23 +0000 (20:47 +0100)]
Remove obsolete methods which forward to the base class.
Change-Id: I7903d9664d52c6afeff800a95062c983a49703c6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Sean Harmer <sh@theharmers.co.uk>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Wed, 21 Mar 2012 19:44:49 +0000 (20:44 +0100)]
Remove non-const version of QTreeWidget method.
The const version should be enough.
Change-Id: Ia9cfa484f070e318c76f03df8d8220217a7100c2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Wed, 21 Mar 2012 19:46:30 +0000 (20:46 +0100)]
Remove obsolete internal functions.
Change-Id: Ib0deecfe4bfc13504b98e6e1f3349f8c57b25314
Reviewed-by: Sean Harmer <sh@theharmers.co.uk>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Jędrzej Nowacki [Wed, 14 Mar 2012 14:15:17 +0000 (15:15 +0100)]
Reserve more space for built-in types in id space.
We are running out of type ids for built-in types, 255 is not enough.
QMetaType already contains about ~70 types, situation is maybe not
tragic now, but there is a great chance that we will want to add more
built-in types from different modules like jsondb or declarative. Then
it might be tight, because we are not allowed to reorganize type ids
(it would be a binary incompatible change).
This change was not possible up to now. Old moc generated code assumes
that type id can be safely stored in 8 bits.
This is source compatible change.
Change-Id: Iec600adf6b6196a9f3f06ca6d865911084390cc2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Samuel Rødal [Wed, 14 Mar 2012 16:55:43 +0000 (17:55 +0100)]
Got rid of Map / Unmap events in favor of Expose event.
Since change
2e4d8f67a871f2033 the need for Map and Unmap events has
gone away, as now the Expose event is used to notify the application
about when it can start rendering.
The Map and Unmap events weren't really used except by QWidget to set
the WA_Mapped flag, which we now set based on the expose / unexpose.
Also guarantee that a Resize event is always sent before the first
Expose, by re-introducing an asynchronous expose event handler. Since
an expose is required before rendering to a QWindow, show a warning if
QOpenGLContext::swapBuffers() or QBackingStore::flush() if called on a
window that has not received its first expose.
Change-Id: Ia6b609aa275d5b463b5011a96f2fd9bbe52e9bc4
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Stephen Kelly [Tue, 20 Mar 2012 17:54:08 +0000 (18:54 +0100)]
List QtPrintSupport as a dependency of QtPlatformSupport.
As it is a static library, it is also necessary to link to
QtPrintSupport when using QtPlatformSupport.
Change-Id: Id7ed458e5a7a0f6199d76b12f979faabb51d0f87
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Kent Hansen [Wed, 14 Mar 2012 06:52:30 +0000 (07:52 +0100)]
Remove support for meta-object revisions < 7
For Qt5 we no longer want to support the older revisions due to the
dual codepaths that must be maintained, and because the format of the
meta-object data is quite different in revision 7.
The dual codepaths have been replaced by asserts that indicate the
revision in which the feature was introduced, and the older-revision
fallbacks have been removed.
It's not possible to build code generated by moc that has
revision <= 6 with Qt5 because the type of the
QMetaObject::stringdata member changed from const char * to const
QByteArrayData *. For the same reason it's not possible to build a
dynamic meta-object generator targeting revision <= 6 with Qt5.
Hence, too old meta-objects will be caught at compile time, and the
code will have to be ported to generate revision 7 (e.g., by running
Qt5's moc on the original class declaration).
Change-Id: I33f05878a2d3ee3de53fc7009f7a367f55c25e36
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Stephen Kelly [Wed, 21 Mar 2012 18:43:55 +0000 (19:43 +0100)]
Change the parameter name of signals to be consistent.
Change-Id: Ib602fde3f9cb240f328457abf57a341c98aaace9
Reviewed-by: hjk <qthjk@ovi.com>
Kent Hansen [Tue, 20 Mar 2012 18:27:02 +0000 (19:27 +0100)]
QMetaMethod::typeName() should return "void" if the return type is void
QMetaMethod::typeName() is documented to return an empty string if
the return type is void. But after the introduction of
QMetaType::UnknownType (where void was made a distinct type),
returning an empty string causes the idiom
QMetaType::type(method.typeName())
to break; the result will be QMetaType::UnknownType rather than
the expected QMetaType::Void for methods that return void.
New code should use the new function QMetaMethod::returnType()
instead, but it would be good if existing code still did the right
thing.
The consequence of returning "void" instead of an empty string is
that it breaks existing logic that uses the typeName() length to
determine whether a method returns void. But we judge this as the
lesser of the two evils; it's better to have a typeName() function
that is consistent and keeps the QMetaType::type(method.typeName())
idiom working, than to force the typeName() inconsistency for void
only to keep code that does "strlen(method.typeName()) == 0"
working.
The places in Qt that were relying on a zero-length typeName()
(testlib, dbus, declarative) have already been changed to use
returnType().
Also adapt QMetaObjectBuilder, which is internal API.
Change-Id: I70249174029811c5b5d2a08c24b6db33b3723d19
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Kent Hansen [Wed, 21 Mar 2012 13:06:43 +0000 (14:06 +0100)]
Fix QMetaObject::normalizedType() for "void" argument
Since the introduction of QMetaType::UnknownType, void is a proper
meta-type, and the normalized form of "void" should be "void", not
an empty string.
Add more tests to ensure that we do remove "void" in the one case
where it actually should be removed (e.g. "foo(void)").
Change-Id: I72dc2d24da67cf52da00c678f50213cff1b92e25
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Kent Hansen [Tue, 20 Mar 2012 18:08:39 +0000 (19:08 +0100)]
Use the new QMetaMethod API in testlib
Use QMetaMethod::name() instead of parsing the signature.
Use QMetaMethod::returnType() instead of checking the length of
typeName().
Use QMetaMethod::parameterCount() instead of checking the
size of parameterTypes().
Change-Id: I424370b19b5b150865377666dca0fba5f29ad30f
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Debao Zhang [Tue, 20 Mar 2012 23:43:53 +0000 (16:43 -0700)]
QLatin1String: Suppress MSVC warnning.
Change-Id: I61ab71549799a5af8cce85e334245642a266c3c8
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Giuseppe D'Angelo [Tue, 13 Mar 2012 05:30:17 +0000 (05:30 +0000)]
QRegularExpression: add QObject::findChildren overload
This actually involved tiding up QObject sources a little bit
to clearly separate QString / QRegExp overloads of findChildren.
The corresponding qFindChildren overload for MSVC 6 compatibiltiy
was *not* added.
Change-Id: I84826b3df9275a9bda03608a5b66756890eda6f8
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Giuseppe D'Angelo [Tue, 13 Mar 2012 07:24:27 +0000 (07:24 +0000)]
QRegularExpression: support for QStringList overloads
Change-Id: Ia9017348742e41187684185d04b56d27edd383b5
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Jason McDonald [Wed, 7 Mar 2012 04:44:03 +0000 (14:44 +1000)]
testlib: Remove obsolete internal compare_helper overload.
Change-Id: Ic98faf360a713ac698f9bf1ff8aaad5a4c5c176b
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Jędrzej Nowacki [Fri, 16 Mar 2012 16:28:47 +0000 (17:28 +0100)]
Crash fix in ~QVariant
QVariant handlers can not be unregistered. We are not able to guarantee
that such operation is safe and we do not want to.
Change-Id: Id9a12e6a8c750110e4a08eab1de3e07e5c408675
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Thorbjørn Lund Martsum [Tue, 20 Mar 2012 07:47:57 +0000 (08:47 +0100)]
QCoreApplication - add return type bool on install/remove translator
This add a bool as return value on QCoreApplication::installTranslator
and QCoreApplication::removeTranslator. It returns true on success.
Before it was very clumsy to detected this. It was needed to react
on the signal and mark a success - just to provide an error message
on failure.
This is 99.99% source compatible - only if someone grabs a function
pointer to this - it will break the code - but it seems to be very
theoretic.
Change-Id: I947fcee1352f530e559bb177a90c10d84eed1aec
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Jędrzej Nowacki [Fri, 16 Mar 2012 15:32:38 +0000 (16:32 +0100)]
Fix qDebug stream for an invalid QVariant.
This patch changes invalid QVariant qDebug stream value from
"QVariant(, QVariant::Invalid)" to "QVariant(Invalid)"
New tests were added.
Change-Id: Ia57d4fc2d775cc9fce28e03eba402c2173845b35
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
João Abecasis [Thu, 15 Mar 2012 10:37:02 +0000 (11:37 +0100)]
Use clang's builtin is_enum, if available
Change-Id: Ie0c32b8fd6d3bb02cf6c6b626bb31d57cdcdf497
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Reviewed-by: Glenn Watson <glenn.watson@nokia.com>
Kent Hansen [Tue, 20 Mar 2012 18:45:00 +0000 (19:45 +0100)]
Use the new QMetaMethod API in QtDBus
Use QMetaMethod::name() instead of parsing the signature.
Use QMetaMethod::returnType() instead of resolving the type id
via the type name.
Change-Id: If5d0198c5f1329fd9d9340acd58bd4a36933d960
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Kent Hansen [Thu, 15 Mar 2012 20:30:55 +0000 (21:30 +0100)]
Add QtJson types to meta-type system
Make QJsonValue, QJsonObject, QJsonArray and QJsonDocument
first-class meta-types.
This is an enabler for a lightweight integration with QML.
Change-Id: I4725efdd2746cf97fd26d3632a99e8eee849f834
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Stephen Kelly [Tue, 20 Mar 2012 18:20:33 +0000 (19:20 +0100)]
Fix cross-compilation of qdbus bootstrapped tools.
Change-Id: Ib40fc1c1743ff23a259cabbf26d91956398c3239
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Stephen Kelly [Mon, 19 Mar 2012 11:16:12 +0000 (12:16 +0100)]
Reserve a virtual method for use with a feature in Qt 5.1.
The view will query the delegate for roles which are relevant to
the particular delegate. For unrelated roles, the delegate
will not have to repaint when the data changes.
Change-Id: If8f1ba4c2bce7dbcf70de344b984aea1deca0edd
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: David Faure <faure@kde.org>
Stephen Kelly [Tue, 20 Mar 2012 18:16:22 +0000 (19:16 +0100)]
Forward declare QMetaObject as a struct.
Fixes compiler warnings with clang and others.
Change-Id: I726d4c10644287bb642c8b5dd28172afe8c4d1ea
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Mon, 19 Mar 2012 11:21:11 +0000 (12:21 +0100)]
Reserve the virtual viewportSizeHint method in QAbstractScrollArea.
The virtual method will be used to implement
the patch at http://codereview.qt-project.org/#change,11763
Change-Id: I6d6ffbb8aaaba73e5c769f3435cc60323c77b75a
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Stephen Kelly [Mon, 19 Mar 2012 12:03:41 +0000 (13:03 +0100)]
Add API and reserve space for storing the QMetaObject with the QMetaType.
In Qt 5.1, http://codereview.qt-project.org/#change,19113 can be rebased
on top of this change in a compatible way.
Change-Id: If7ac0481a3b2a874528de4ef6ea7535501a4ac71
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Tue, 20 Mar 2012 10:30:53 +0000 (11:30 +0100)]
Generate a forwarding header for QStringBuilder.
This should fix the declarative build.
Change-Id: I32dd5b7783995759f27d016c801ae6dfb3d44733
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Debao Zhang [Sat, 17 Mar 2012 10:18:12 +0000 (03:18 -0700)]
QtWidgets: Cleanup Q3* items
Clear all the Q3* items away,
expect QStyle::SH_Q3ListViewExpand_SelectMouseType which is still used
by QTreeView. So simply removed Q3 from its name.
Change-Id: Ia79f0283137b6751ba68791ae55df1d8bd7ea74a
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Stephen Kelly [Wed, 29 Feb 2012 11:25:01 +0000 (12:25 +0100)]
Add a base class with specialization to QStringBuilder.
This will allow separation of API that should work with QString
results, and API that should work with QByteArray results.
Change-Id: I5be398188abd421bb5056cea2658ea85fc03aa4f
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Stephen Kelly [Thu, 15 Mar 2012 14:32:36 +0000 (15:32 +0100)]
Fix up the QEventLoopLocker documentation.
Change-Id: If5bf8c2703f094023a614b3efcbd8489560694d9
Reviewed-by: Richard J. Moore <rich@kde.org>
Jędrzej Nowacki [Fri, 16 Mar 2012 14:15:08 +0000 (15:15 +0100)]
Remove a dead code from QVariant.
Remove some "safety" code, but essentially it was a dead code.
Change-Id: Ie19c29d4cce8b72be5dbaca53c03adc63e8c3dc5
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Kent Hansen [Mon, 19 Mar 2012 09:03:48 +0000 (10:03 +0100)]
Merge master into api_changes
Conflicts:
src/corelib/tools/qvector.h
tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp
Change-Id: I877256e95f3788e617437f4e9661a88047f38cd6
Lincoln Ramsay [Mon, 19 Mar 2012 03:32:31 +0000 (13:32 +1000)]
Set RPATH_FLAGS on Mac too
Without this, QMAKE_RPATHDIR is empty and qt_module.prf's logic to turn
on absolute_library_soname fails, causing some modules to build without
absolute paths (eg. qtjsbackend's QtV8 framework).
Change-Id: If03136ca60a5d8a96a589e2d1034e5884fd6a1ac
Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Kurt Korbatits [Mon, 12 Mar 2012 04:24:02 +0000 (14:24 +1000)]
Fixed benchmarks to work from install directory
- Changed benchmarks to use TESTDATA and QFINDTESTDATA
- Fixed up targets all use tst_bench_ syntax
Change-Id: I5c2936702e248478f5df225ce38893158ee22d7f
Reviewed-by: Jason McDonald <jason.mcdonald@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Frederik Gladhorn [Mon, 12 Mar 2012 14:36:31 +0000 (15:36 +0100)]
Make copy and assign private for QAccessibleEvent.
Also make the handling of events in the test pointer
based since mac-g++ doesn't seem to like const
references the way they were before.
Change-Id: I7fe39978d4729b8e586be30978b74aa51ca7cfe6
Reviewed-by: Jan-Arve Sæther <jan-arve.saether@nokia.com>
Kent Hansen [Thu, 15 Mar 2012 20:05:01 +0000 (21:05 +0100)]
Add autotests for QMetaType::load() and save()
These were not covered at all by tst_qmetatype.
Change-Id: Ic957470ac78b2c15fe449efe17e1f178a41c3690
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Kent Hansen [Fri, 16 Mar 2012 14:05:48 +0000 (15:05 +0100)]
Ensure that moc doesn't resolve the qreal meta-type id
When cross-compiling, the qreal type can be different on the target
than on the host (e.g. double on host, and float on target). moc is
a host binary, so it shouldn't try to resolve the type id of qreal,
but instead always output "QMetaType::QReal" (which is just an alias
for QMetaType::Double or QMetaType::Float, depending on the target).
This was a regression introduced in commit
f95181c7bb340744a0ce172e8c5a8fcdc2543297 (new meta-object format);
the special-casing for qreal should have been kept.
Moved the code that generates the type info into its own function so
the logic is shared by generateFunctions() and generateProperties().
Change-Id: I2b76cf063a08ba95a7e6033549452355f67283ac
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
Girish Ramakrishnan [Sat, 17 Mar 2012 17:49:36 +0000 (10:49 -0700)]
configure: Fix iconv detection
Makes no sense to disable iconv based on QPA. This change will
make iconv as the "system" codec i.e the codec used for 8-bit
locale dependent conversions.
Change-Id: I4469e9c226b2411ac1338f61dabb84ec9c2ec603
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Bradley T. Hughes [Fri, 16 Mar 2012 11:32:37 +0000 (12:32 +0100)]
Cocoa: Fix function key handling
Cocoa sends function keys (e.g. arrow keys, backspace, F1-F35, etc.) as
Unicode characters in the U+F700-U+F8FF range. Do not deliver text for
events that contain a single control character (to match Qt 4 behavior).
With this fix, keyboard navigation works again in Qt Creator when
running against Qt 5.
Change-Id: I5854bf713c2855dbc5ee491bace2f9dc1acd9426
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Bradley T. Hughes [Wed, 14 Mar 2012 14:06:39 +0000 (15:06 +0100)]
Fix shortcut handling in the Cocoa plugin
KeyPress events could be shortcuts or deadkeys, but we don't know which
until we try. Shortcuts take precedence over deadkeys, so send them
through QWindowSystemInterface::tryHandleSynchronousShortcutEvent()
before passing it onto the input method.
Change-Id: I479a3a7ff1c35e7c5692e8a17fb2173576dd0a29
Reviewed-by: Tasuku Suzuki <tasuku.suzuki@nokia.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Stephen Kelly [Wed, 14 Mar 2012 13:09:27 +0000 (14:09 +0100)]
Move CMake macros and tests for dbus tools from qttools.
Change-Id: I9d589a2d33eb8fcac63443565bb3e2319be3e04f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 22:43:28 +0000 (23:43 +0100)]
Bootstrap qdbuscpp2xml.
This involves invoking the Moc classes directly and using the data
structures it provides instead of invoking the moc exectutable and
parsing the generated code.
Change-Id: Ia5c654e8ef58d52d0d3376252c13e13885f80da3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 22:34:20 +0000 (23:34 +0100)]
Add qdbuscpp2xml.
This is the pristine version from qttools at
a0e2b3e96be934438974b175d0e640ed30f4efcb.
Change-Id: I38eafde3f4b909bb63988f855672a908cae41d2c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 18:14:07 +0000 (19:14 +0100)]
Bootstrap qdbusxml2cpp
Change-Id: I06856b169d5ee4f99fcf9c87ce88cb5ac34568e8
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Stephen Kelly [Thu, 8 Mar 2012 22:20:37 +0000 (23:20 +0100)]
Add qdbusxml2cpp.
This is the pristine version from qttools at
a0e2b3e96be934438974b175d0e640ed30f4efcb.
Change-Id: I4dc7c7fd98637cecfc57a9be61063d351b660e72
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marius Storm-Olsen [Fri, 16 Mar 2012 17:59:09 +0000 (12:59 -0500)]
Win32: Compile qmake when shadow-building
Change-Id: I803c733f744372701c51e4d629ff797c6648f833
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Jędrzej Nowacki [Thu, 8 Mar 2012 14:49:55 +0000 (15:49 +0100)]
Add new test cases to tst_QMetaType.
Change-Id: I405ab5df9d9de3a0a0a71276b172a27ee01392e3
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Debao Zhang [Fri, 16 Mar 2012 23:05:09 +0000 (16:05 -0700)]
QPointer: update its document and changes-5.0.0
QPointer has been un-deprecated and one behavior which slightly different
from Qt4 has been fixed.
see SHA:
b8773165d76e0d5d46287d92f9d6bdbbd2110180
and SHA:
497622cafe235eadb5dd5056b196d8451ee89071
Change-Id: I4bae2cce3ebfebd8f59b18b5a6a7a7226b8353b9
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Bradley T. Hughes [Thu, 15 Mar 2012 11:01:07 +0000 (12:01 +0100)]
Add QWindowSystemInterface::tryHandleSynchronousShortcutEvent()
This function sends a shortcut override through the shortcut system and
returns the result of the event. This will be used in platform plugins
(such as the Cocoa plugin) to make sure that shortcuts work when the
user presses a dead-key combination that normally would go through an
input method to produce text.
An extended overload taking native scan code, virtual key, and modifiers
has also been added.
Change-Id: Ia3836229ab0c66d2fb6f310e72b6f4d6dfa9ead9
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Stephen Kelly [Fri, 16 Mar 2012 11:25:24 +0000 (12:25 +0100)]
Include geometric variants when bootstrapping.
They are needed by the qdbus tools.
Change-Id: Ia1994f6a9bfa2ce1d526fd3e49370fd188ce5972
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marius Storm-Olsen [Thu, 8 Mar 2012 02:51:27 +0000 (20:51 -0600)]
Add support for ICU on Windows
Needed by QtWebKit now.
Change-Id: I177d8dcf6063a14501f7ba3081b43a29a48661c7
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Simon Hausmann <simon.hausmann@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Lincoln Ramsay [Fri, 16 Mar 2012 02:08:51 +0000 (12:08 +1000)]
Don't reject plugins that have empty meta-data
Having an empty Json object ({}) should be valid meta-data but this
check means that there needs to be at least one key-value pair or
the plugin will be rejected.
Change-Id: I578ccc35016af16fd30b3807e796fa63c0282f30
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Olivier Goffart [Fri, 16 Mar 2012 16:59:43 +0000 (17:59 +0100)]
Compile QLatin1String with C++11
qstring.h: In constructor ‘QLatin1String::QLatin1String(const QByteArray&)’:
qstring.h:667:129: error: ‘const char* QByteArray::constData() const’ is not ‘constexpr’
QByteArray has a destructor and therefore cannot be used in constexpr,
so do not mark it as constexpr
Change-Id: I037e9ae73a244660923eac791cc3e0082d1d7a63
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marc Mutz [Mon, 29 Aug 2011 15:49:48 +0000 (17:49 +0200)]
containers: add C++11-style c{begin,end}() as alias for const{Begin,End}()
C++11 adds cbegin()/cend() functions for the same reason Qt has
constBegin()/constEnd(). This patch adds these functions to the
Qt containers with the same implementation as constBegin()/constEnd().
It also fixes the return types in the documentation of existing
constFind() functions (documentation only).
C++11 only adds cbegin()/cend() (and crbegin()/crend(), which Qt doesn't have).
In particular, it doesn't add cfind(), so I didn't supply these, even though
Qt comes with constFind().
This is a forward-port of https://qt.gitorious.org/qt/qt/merge_requests/1365.
Change-Id: Ida086b64246b24e25254eafbcb06c8e33388502b
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Bradley T. Hughes [Wed, 14 Mar 2012 13:55:08 +0000 (14:55 +0100)]
Replace Q_WS_MAC with Q_OS_MAC in qshortcut.cpp
This re-enables shortcut context matching for menubar actions.
Change-Id: I0d9f2b3d4316a4611afe96eb1a2cf29cb9e91851
Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
Morten Johan Sorvig [Fri, 16 Mar 2012 12:05:37 +0000 (13:05 +0100)]
QCocoaClipboard: Make QClipboard::clear() clear.
Change-Id: Ifb235d015f7831b335a9c3db92515a8d1cd49311
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Arnt Witteveen [Wed, 14 Mar 2012 13:53:32 +0000 (14:53 +0100)]
Fix bug showing folder icons for files
Fix an issue where the cache was updated with the folder icon,
even though this is never used from the cache. This caused
files to sometimes be shown with a folder icon: If a folder
has an extension (e.g. a folder named 'folder.ext'), this
means the folder icon will be written to the cache for the
'ext' extension, and from that point on all .ext files will
be shown with the folder icon.
The fix is to not save an icon in the cache for those cases
where it will not be used from the cache anyway, by using the
same condition for updating the cache as for reading it (which
is in line 8 of the same function).
Change-Id: I9ce8fca0718b2b62b9390fa64989acd54952a88e
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Martin Smith [Fri, 16 Mar 2012 08:50:39 +0000 (09:50 +0100)]
qdoc: Structure the DITA map with a root node.
Use the title from the index.html page for the
navtitle, if there is a title on the index.html
page. Otherwise use the project as the navtitle.
Task-number: Mzilla bug - 7229
Change-Id: I25fc1f09b0bdff58c6340cec7d9d8a43d95845a2
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Samuel Rødal [Fri, 16 Mar 2012 08:01:50 +0000 (09:01 +0100)]
Updated changes-5.0.0 with some information on the new QtGui classes.
Change-Id: Idcdfdb506e75d74b3a89e6c2e914802ddfc11031
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Gareth Stockwell [Fri, 16 Mar 2012 14:14:53 +0000 (14:14 +0000)]
Ensure QMAKE_RFLAGSDIR is set correctly
This patch ensures that additional runpaths passed to configure via
the -R switch are added to the QMAKE_RFLAGSDIR variable.
Previously, although runpaths provided in this way were appended to the
linker options when building Qt itself, they were not appended to
the QMAKE_RFLAGSDIR value written to mkspecs/qconfig.pri. This meant
that the DT_RPATH attribute was set incorrectly in binaries built from
projects other than Qt itself.
-----------------------------------------------------------------------
Configure flags Expected value Value before this fix
-----------------------------------------------------------------------
<none> DEFAULT_RPATH DEFAULT_RPATH
-no-rpath <empty> <empty>
-R X DEFAULT_RPATH:X DEFAULT_RPATH
-no-rpath -R X X <empty>
-prefix Y Y/lib Y/lib
-prefix Y -no-rpath <empty> <empty>
-prefix Y -R X Y/lib:X Y/lib
-prefix Y -no-rpath -R X X <empty>
-----------------------------------------------------------------------
DEFAULT_RPATH = /usr/local/Qt-${QT_VERSION}/lib
Change-Id: Iaf1809b528ebd249694cf41e004173e881ca48ad
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Olivier Goffart [Sun, 26 Feb 2012 14:20:24 +0000 (15:20 +0100)]
Build qmake with QStringBuilder.
QStringBuilder will be enabled by default so qmake should build with it.
qstringbuiler.cpp has to be compiled in just for the convertFromAscii
(The alternative was to build with QT_NO_CAST_FROM_ASCII, but that would
be too much work)
Change-Id: I1fbeed7ed8a9d3bc38ef591a687c50644980e2fd
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Girish Ramakrishnan [Fri, 16 Mar 2012 06:20:53 +0000 (23:20 -0700)]
Install fonts when not using fontconfig
When built without fontconfig support, the basic unix font database
relies on fonts installed in libs/fonts to populate the database.
Change-Id: Id1e54c5b032095470049210bb831cfe4c79b3569
Reviewed-by: Johannes Zellner <johannes.zellner@nokia.com>
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
João Abecasis [Wed, 1 Feb 2012 10:06:52 +0000 (11:06 +0100)]
Don't treat QByteArray(0, char) as null
This also changes behavior for negative sizes, but those cases could be
viewed as errors on the client side, anyway.
Change-Id: I9e56f2ba53b1edcd9f2faa5384c7d77f6823e24a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Marc Mutz [Tue, 6 Mar 2012 07:37:33 +0000 (08:37 +0100)]
QSharedPointer: add reset() member functions
These have been added for std::shared_ptr compatibility,
but in particular to allow tst_qnetworkreply && friends
to drop the implicit conversions added to QSP by
inheritance, so QSP can become final.
Change-Id: I0f0401b02125d65622e52393b40a3b10bd9a850c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Oswald Buddenhagen [Fri, 16 Mar 2012 11:17:26 +0000 (12:17 +0100)]
allow the unix generator to run in windows host mode
this is a complete bastardization of the concept and breaks the (unused)
debugging feature to create proper unix makefiles under windows, but
apparently it permits cross-compiling unix targets under windows.
Change-Id: I4ee95a20e7d6a6b2063ec7aa22f52c1a97d78a77
Reviewed-by: Oliver Wolff <oliver.wolff@nokia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
Olivier Goffart [Fri, 2 Mar 2012 11:41:43 +0000 (12:41 +0100)]
moc: test signature with (void)
Change-Id: Id63ed21e9f5e7447ced877ec19a2786d20f439f0
Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Stephen Kelly [Thu, 15 Mar 2012 20:47:59 +0000 (21:47 +0100)]
Fix comparison type warning.
Change-Id: I4051c5bc204215f368e4381e508dd870be240f8f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
Miikka Heikkinen [Fri, 16 Mar 2012 09:13:55 +0000 (11:13 +0200)]
Fix font cache check in QFontEngineFT::recalcAdvances()
Cached font was used regardless of the format, resulting in incorrect
advance in some cases when default format differed from the cached
format.
Task-number: QTBUG-24188
Change-Id: I39e4156bd9ba743afa7e106e934c90227fbf2b8b
Reviewed-by: Jiang Jiang <jiang.jiang@nokia.com>
Wolf-Michael Bolle [Thu, 15 Mar 2012 14:56:14 +0000 (15:56 +0100)]
Removed move constructor.
All C++-2011-specific constructors, operators and methods may be inline
only in Qt. Since an implementation in the header file does not seem to
be possible for QMimeType without breaking backward compatiblity the
move constructor has to disappear altogether.
See also the discussion at
http://codereview.qt-project.org/#change,19150
Change-Id: If07347a51a1ae5bd4c2d292dac835592ede4b370
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Wolf-Michael Bolle [Thu, 15 Mar 2012 15:03:12 +0000 (16:03 +0100)]
Removed move constructor.
The provided implementation breaks backward compatiblity, and therefore
has to disappear altogether.
See also the discussion at
http://codereview.qt-project.org/#change,19150
Change-Id: Idf6e4a2c4b623458217541485e4aab0837909d66
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Morten Johan Sorvig [Fri, 16 Mar 2012 09:15:10 +0000 (10:15 +0100)]
Cocoa: Fix menu item activation.
Handle the action message on the application delegate.
Change-Id: I23686fd6e936a4dbbb141da3dd04a64cbf6a051a
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Charles Yin [Fri, 16 Mar 2012 05:09:18 +0000 (15:09 +1000)]
Fix broken qWaitForWindowShown() behavior
qWaitForWindowShown() should check window->isActive() instead of
window->isExposed() and return false if timeout.
Add two new qWaitForWindowActive() and qWaitForWindowExposed()
functions.
Change-Id: Idd9601805c2e84b0d36ddd5471031b627d289953
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Kent Hansen [Fri, 16 Mar 2012 09:01:29 +0000 (10:01 +0100)]
Merge master into api_changes
Conflicts:
src/corelib/kernel/qmetatype.cpp
src/gui/kernel/qplatformsurface_qpa.cpp
tests/auto/corelib/tools/qtimeline/qtimeline.pro
Change-Id: Iff3fff34eeeb06f02369767ddfce44cfde505178
Giuseppe D'Angelo [Thu, 15 Mar 2012 12:52:49 +0000 (12:52 +0000)]
QRegularExpression: various documentation improvements/fixes
Change-Id: I683afb24f888ab6cf3c543fba8cd193a730709af
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Holger Hans Peter Freyther [Thu, 15 Mar 2012 16:42:07 +0000 (17:42 +0100)]
arch: Undefine possible architecture defines
Some compilers define the architecture to one leading to detecting
'1' as target architecture. Always undef the architecture name.
Compilers:
gcc version 4.6.3 (Debian 4.6.3-1) has '#define i386 1'
gcc version 4.5.3 (Broadcom stbgcc-4.5.3-1.3) has '#define mips 1'
Change-Id: I7af1bb743579be472467c74e6c08638648823ef3
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
Donald Carr [Fri, 9 Mar 2012 00:22:27 +0000 (00:22 +0000)]
Add deliberately non-documented qpa platform guard opt out
Change-Id: Ia494976d3cd3c3983d455f130fdf5ab36591aba2
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Stephen Kelly [Thu, 15 Mar 2012 16:47:31 +0000 (17:47 +0100)]
Undeprecate operator casts on QByteArray.
This reverts part of commit
8397a44bedf542b53284674c87268819f4911d31.
Change-Id: I1d2ec018167faeb23a9343b209bb0ff2d8db311d
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Robin Burchell [Thu, 15 Mar 2012 19:11:04 +0000 (20:11 +0100)]
Un-deprecate QPointer per mailing list discussion.
Now that QPointer is implemented in an efficient manner, there is really no need
to avoid it, deprecating it just adds a large amount of churn.
Change-Id: I32116faf14c3b07631d59ba9585f9ce422531646
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
João Abecasis [Wed, 7 Mar 2012 13:09:45 +0000 (14:09 +0100)]
Fix invalid read, detected by valgrind
Commit
3fe1eed0 changed the QVERIFY in line 1354 to QCOMPARE. This was
done to work around a (not yet understood) compiler issue. That however
was wrong, as char pointers in QCOMPARE are assumed to point to
'\0'-terminated strings and will get dereferenced.
In this case the intent was to compare the actual pointer values, as the
pointers point past the end of the array and should not be dereferenced.
Explicitly casting to (void *) and using QCOMPARE will not only keep the
intent, it will hopefully also provide meaningful output on failures. As
such the fix was applied throughout the test.
Change-Id: Ib0968df492ccc11d7c391bb69037cd7241e55493
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Debao Zhang [Wed, 14 Mar 2012 21:39:02 +0000 (14:39 -0700)]
QSharedPointer: remove two emtpy functions.
As the comments says:they are broken by design, and replaced with other
functions. The purpose of their existence is for BIC with Qt4.5.
Change-Id: I9453f816a7b7c6812499b89b7c60f0fd99dea27c
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Laszlo Agocs [Thu, 15 Mar 2012 11:31:00 +0000 (13:31 +0200)]
Add a note to QTouchEvent docs about empty touchpoint lists
Change-Id: I65e9e3ed2069d9194f5e70fb9731d605e0979e6d
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Stephen Kelly [Thu, 15 Mar 2012 11:57:25 +0000 (12:57 +0100)]
Make more of QDBus bootstrapping-ready.
The DBus metatype system and marshaller is required for determining
the dbus-signature of built-in Qt types, for example QPoint.
Change-Id: I8860ab3b88827aeb8063dfb79c4a9b28c0a20c0f
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Shane Kearns [Fri, 2 Mar 2012 11:18:43 +0000 (11:18 +0000)]
Revert "Disable 'check' target generation for network autotests for Windows."
Too broad disabling, will disable more selectively
This reverts commit
3efb0d50e590f6a1e8d67d0136a648cd3b97c37d.
Change-Id: I29e25816646194b6a4b7d8ff69e0c0d074ac2a19
Reviewed-by: Sergio Ahumada <sergio.ahumada@nokia.com>
Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Shane Kearns [Mon, 12 Mar 2012 18:46:21 +0000 (18:46 +0000)]
Fix QDnsLookup autotest failure in CI environment
The DNS server can legitimately include NS and A records for
the authoritative name server in addition to the DNS records
that were requested.
These are now ignored when checking the reply (we only check
results that match the query, rather than failing if a result
is for a different host name than the query).
Task-number: QTBUG-24698
Change-Id: I327f31d58cdca50c7df6b32b275d7f28b56405f0
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Shane [Wed, 14 Mar 2012 13:18:20 +0000 (13:18 +0000)]
Fix QUdpSocket bindMode autotest regression
When binding with the DefaultForPlatform bindmode, then don't set
options on the socket related to sharability, leave them at the
platform default.
This restores compatiblity with Qt 4
Change-Id: I612a3acb976f08446b4eef03ccdcdf84b3477c3c
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Reviewed-by: Martin Petersson <Martin.Petersson@nokia.com>
Xizhi Zhu [Thu, 15 Mar 2012 15:24:25 +0000 (16:24 +0100)]
Add missing private headers to .pri.
Change-Id: I7ba23f23c1e7cb19152f2c0cedec3549ddfb11c9
Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
Samuel Rødal [Thu, 15 Mar 2012 14:55:46 +0000 (15:55 +0100)]
Added missing \since 5.0 and tweaked some docs in QtGui.
Change-Id: I91564f7a61962f97b9fb78c96d94d5695a3924db
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Martin Smith [Thu, 15 Mar 2012 12:55:37 +0000 (13:55 +0100)]
qdoc: Structure the DITA map with a root node.
The root topicref is now always index.dita, unless
there is no index.dita. But there is always a root
topicref that has the project name as its navtitle,
even if there is no index.dita file to map it to.
Task-number: Mzilla bug - 7229
Change-Id: I0c9fdf1a2e3ba847fe8975a0745667189a77a755
Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
Mark Brand [Thu, 15 Mar 2012 10:23:27 +0000 (11:23 +0100)]
QSqlTableModel::removeRows() enforce edit strategy
For OnFieldChange and OnRowChange, we don't want more than one row in
the cache with uncommitted changes. This could happen if deletion in
the database fails while other changes are pending.
Chosen solution is to return false if other rows have pending changes.
Also, we only allow 1 row removed at a time.
Updated test, changes and documentation.
Change-Id: I68baf6d221789b4754e891535070011c759a2155
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Mark Brand [Tue, 13 Mar 2012 00:28:35 +0000 (01:28 +0100)]
QSqlTableModel::setData(): no longer autosubmit for OnRowChange
The model can never do a good job of knowing when user moves to a
new row in the view. Faking it by detecting when another row
is changed was not a good solution because it cannot detect
when the last edited row is left.
Either the view should automatically submit when the user leaves
a row or the application should provide a way to submit.
This change made it possible to reuse the logic of flags() in
setData().
Change-Id: I2550e5b113bceba1a852fc21203babeca07c5748
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Mark Brand [Wed, 29 Feb 2012 00:51:23 +0000 (01:51 +0100)]
QSqlTableModel: disallow insert if changes are pending
For OnFieldChange and OnRowChange, inserting rows should not be
allowed if there are pending changes in cache.
Change-Id: Ia794332959a35a1de87e798ba1a74ace3dfae68f
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Mark Brand [Tue, 28 Feb 2012 22:41:31 +0000 (23:41 +0100)]
QSqlTableModel::setData()/setRecord(): fix incorrect row
For OnFieldChange and OnRowChange, before submitting new changes,
setData() and setRecord() attempt to submit pending changes and
revert them upon failure. However, they fail to consider that
reverting pending insertions removes rows from the model. As a
result, the new change can be applied to a row higher than intended.
One possible solution would be to adjust the targetted index for the
removed rows, so that the intended row is affected by the new change.
But this still causes the strange editing experience as rows jump
up just as they are being edited.
It does not seem right in the first place for the model to initiate
reverting changes. It should be up to the application to decide what
to do when data cannot be committed. In particular, setData() and
setRecord() should not have the side effect of reverting already
pending changes.
The chosen solution is simply to refuse new changes that don't make
sense for the edit strategy. For OnFieldChange, flag() will
indicate read-only when editing is blocked by a pending change.
Since setData() and setRecord() submit data immediately for
OnFieldChange, it no longer makes sense to resubmit changes
automatically before a new change.
For OnRowChange, setData() keeps the behavior of automatically
submitting a pending row before starting on a new row. This is
historical behavior and is probably motivated by the fact that
QTableView does not automatically call submit() when editing leaves a
row. The obvious shortcoming of this is that the last row to be edited
will not be submitted automatically. It also prevents us from flagging
rows other than the pending row as read-only.
For OnRowChange, setRecord(), being row-oriented by nature, should
submit the change immediately rather than waiting for the next call
to setRecord(). This makes setRecord() consistent with insertRecord().
Change-Id: Icb4019d8b7c53a7ee48f8121a7a525e8bc35d523
Reviewed-by: Honglei Zhang <honglei.zhang@nokia.com>
Frederik Gladhorn [Thu, 15 Mar 2012 14:15:07 +0000 (15:15 +0100)]
Remove Q_WS_X11
The define is removed and only added an include.
Change-Id: I85090023cb9eb33f83ccc7fe2ab69556b4ff89fb
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Jonathan Liu [Thu, 15 Mar 2012 14:10:02 +0000 (01:10 +1100)]
QSystemTrayIcon/Win: Fix compilation on MinGW
Define NOTIFYICON_VERSION_4 if it is not already defined.
Change-Id: Ic432cbebf18f8b1e8b4727659dcedd7063e126ee
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
Donald Carr [Fri, 9 Mar 2012 01:07:26 +0000 (01:07 +0000)]
Remove all QWS centric examples
Change-Id: I1bd9c40c7cc70e088a23283d1c3e89d12c1c5f7d
Reviewed-by: Donald Carr <donald.carr@nokia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
Reviewed-by: Jørgen Lind <jorgen.lind@nokia.com>
Reviewed-by: Girish Ramakrishnan <girish.1.ramakrishnan@nokia.com>
Anselmo L. S. Melo [Thu, 8 Mar 2012 23:01:24 +0000 (20:01 -0300)]
Make QWindow::isActive return false when the application loses the focus
In QTBUG-24807 there is a test case that shows a case when a segmentation
fault happens inside isAncestorOf. When the whole application loses the
focus, e.g. when it is minimized or other application receives the focus,
QGuiApplication::focusWindow() returns a null pointer, so we need to
do a check before proceed inside of isActive.
Task-number: QTBUG-24807
Change-Id: I732c92bb9f236804ede5e89592f6e6609a4711b9
Reviewed-by: Jesus Sanchez-Palencia <jesus.palencia@openbossa.org>
Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
Friedemann Kleint [Thu, 15 Mar 2012 13:08:54 +0000 (14:08 +0100)]
UTF8-Codec test: Fix compilation with g++/C++0X.
Change-Id: I704f8d1b07ca371c36e4eecc52c80ac783e3da3c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>