Commit Graph

786 Commits (7ac6ce213393fe5c2ef116a4d68d9dd4dd241eb2)

Author SHA1 Message Date
Thiago Macieira 7ac6ce2133 Fix ICC warnings about functions declared but not used
Added Q_DECL_UNUSED for the function used in Q_ASSERT; removed the
functions that really weren't used and added the #ifdef for the
function that was only used under #ifdef.

qmetaobjectbuilder.cpp(93): warning #177: function "priv" was declared but never referenced
qobject.cpp(2349): warning #177: function "check_and_warn_compat" was declared but never referenced
qpathsimplifier.cpp(141): error #177: function "<unnamed>::Rational::isValid" was declared but never referenced
qtextengine.cpp(2584): error #177: function "<unnamed>::QScriptItemComparator::operator()(const QScriptItem &, const QScriptItem &)" was declared but never referenced

Change-Id: I89a140d59211f10ecd88d751f0bcc0ea2fedff7f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-09-04 00:05:12 +02:00
David Faure 404598b613 Long live QCommandLineParser!
The QCommandLineParser class provides a means for handling the command line options.

QCoreApplication provides the command-line arguments as a simple list of strings.
QCommandLineParser provides the ability to define a set of options, parse the
command-line arguments, and store which options have actually been used, as
well as option values.

Done-with: Laszlo Papp <lpapp@kde.org>

Change-Id: Ic7bebc10b3f8d8dd06ad0f4bb897c51d566e3b7c
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-08-24 21:33:39 +02:00
Frederik Gladhorn c8ca300e49 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	qmake/doc/src/qmake-manual.qdoc
	src/plugins/platforms/xcb/qxcbconnection_xi2.cpp
	src/src.pro

Change-Id: I0a560826c420e46988da3776bd8f9160c365459a
2013-08-21 11:03:18 +02:00
Friedemann Kleint 54f1d7e2e4 Use correct mask constant in the Windows event dispatcher.
Mask out QS_TOUCH, QS_POINTER when running a VS2012-compiled binary
on pre-Windows 8 systems.

Task-number: QTBUG-32257
Task-number: QTBUG-28513
Task-number: QTBUG-29097
Task-number: QTBUG-29435
Change-Id: I33ce3a659a234cb04d3b5ae9d668d193d681be7f
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-20 10:22:45 +02:00
Friedemann Kleint 882e01a94f Revert "Disable precision timers when running MSVC2012 code on pre-Windows 8."
This reverts commit aa1b4c0943.

It turns out that the bug is caused by a different mask constant
in Windows 8 which should not take effect in pre-Windows 8.

Change-Id: I1ad502262dae42856c07d48ee3bc9dc032ab379b
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
2013-08-20 10:22:39 +02:00
Sze Howe Koh b314b2b844 Rename template parameter: "I" -> "II"
C99 defines the "I" macro in complex.h. qobjectdefs_impl.h can be
indirectly included in user code, which raises the possibility of a name
clash if the user's compiler supports C99 and the user includes
complex.h

Change-Id: Ie79ec7baf2d49a34b66a01556c7e57324303dc04
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-08-18 14:55:33 +02:00
Frederik Gladhorn 5c23199d4e Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/macx-xcode/Info.plist.app
	mkspecs/macx-xcode/Info.plist.lib
	qmake/doc/qmake.qdocconf
	src/corelib/global/qglobal.h
	tests/auto/other/exceptionsafety/exceptionsafety.pro
	tests/auto/widgets/widgets/qcombobox/tst_qcombobox.cpp

Change-Id: I3c769a4a82dc2e99a12c69123fbf17613fd2ac2a
2013-08-14 09:06:31 +02:00
Eskil Abrahamsen Blomfeldt 1142dde83e Android: Fix QCoreApplication::applicationDirPath()
Disable the code path which queries /proc/<pid>/exe for the
current executable path, as from a Q_OS_ANDROID perspective,
this executable will be the Dalvik binary. Instead we
get the application directory via the fallback, by
looking in argv[0], since this is set to the location of the
application binary.

Task-number: QTBUG-32852
Change-Id: Ib93050f41cbd47aaf71284e8bfa6a3247131d978
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
2013-08-08 12:49:45 +02:00
Dario Freddi 5885b8f775 qobject: Do not destroy slot objects inside a lock
This prevents deadlocks in case the destructor re-enters.
(Example: a functor containing a QSharedPointer of a QObject)
This also fixes a leaked slot object in disconnectHelper.

Change-Id: Ia939790e3b54e64067b99540974306b4808a77f2
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-08-07 12:42:45 +02:00
Illya Kovalevskyy f52e9b1172 Symbol for max number of arguments in QMetaMethod::invoke()
QMetaMethod::invoke(..) takes fixed number of arguments for execution.
Adding preprocessor macros which literaly equals this number would be
useful for writing some generic code.

Task-number: QTBUG-31821
Change-Id: Ia2faf291f3f7df44a47c3cf18f5cd587d37d7d2e
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-30 03:18:47 +02:00
Frederik Gladhorn 1190863fc0 Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I0218a1f08b89f2d56757ab35eec06799d2a1492f
2013-07-15 10:36:59 +02:00
Tomasz Olszak 4f71a272b5 QCoreApplication: Removed out-of-date docs (argv() method).
QCoreApplication::argv() method was obsolete in Qt4.8
and removed in Qt5.0.

Change-Id: I217402f774f5509c8ca317a35c831ffa5ac2af06
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-12 14:54:09 +02:00
Sergio Ahumada 3ef6cf060e Merge branch 'stable' into dev
Conflicts:
	qmake/generators/mac/pbuilder_pbx.cpp
	src/corelib/json/qjsonwriter.cpp
	src/corelib/kernel/qeventdispatcher_blackberry.cpp
	src/plugins/platforms/cocoa/qcocoacolordialoghelper.mm

Change-Id: I24df576c4cbd18fa51b03122f71e32bb83b9028f
2013-07-11 16:42:01 +02:00
Thiago Macieira c64d602df3 Accept defeat when select(2)ing without a monotonic clock
We prefer to use the monotonic clock because it's never affected by time
jumps (such as the user changing the date, or the system adjusting for
any other reasons, including automatic leap seconds). But if a system
doesn't have a monotonic clock, we simply accept the regular, real time
clock and hope it doesn't jump.

This is better than the current code that never restarts a call. The
side-effect is that a 30-second select may become a 3630-second select
if someone sets the clock back one hour.

Task-number: QTBUG-22301
Change-Id: Ia5a3bb453cd475f45b03637e2549165589fd2524
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-07-10 20:06:26 +02:00
Olivier Goffart d6d9edd7c4 Fix dead lock in the Qt event handling
The deadlock is caused because the QEvent is destroyed while holding the
event list mutex. And the QEvent may have a custom destructor that will
re-enter the event handlng code.

The QScopedPointer that should destroy the event must be created after
the MutexUnlocker.

Regression introduced by commit f9035587b9

Task-number: QTBUG-31606
Change-Id: I6b2cbc2656eacdec61b641886953f00bf5b3ff36
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-07-10 17:57:10 +02:00
Olivier Goffart e07bdb8f74 Doc: Uniformize the syntax description of Q_PROPERTY
In the qobject.html page, the description of the syntax of Q_PROPERTY
does not include the MEMBER keyword added in Qt 5.1.
But it was well documented in the documentation of the property system.

Merge the two code snipppets.

Task-number: QTBUG-32211
Change-Id: I7b57329c201b6f3bc812155f21dbfb2c6423494e
Reviewed-by: Martin Smith <martin.smith@digia.com>
2013-07-10 17:56:51 +02:00
Tor Arne Vestbø 563c9445d4 Clean up evaluation license logic
Instead of storing the application type as a uint, we use the enum provided
by QCoreApplicationPrivate. The former resulted in a few cases of wrong
logic where the values got mixed up, such as always printing the QtCore
console warning, even for GUI applications.

The qt_eval_is_supported function has been refactored to return enums instead
of magic values, to make the logic easier to read.

The same goes for qt_eval_days_left, which now only concerns itself with
the number of days left. qt_eval_is_expired() has been added to use for
easy checking of expiration date.

Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Change-Id: Ia0e85b2103f790a7e02e0d6e567a477b3145fcb9
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-07-05 09:24:39 +02:00
Friedemann Kleint bef01c87a8 QtCore: Fix remaining MSVC-64 warnings about integer truncation.
warning C4267: 'argument' : conversion from 'size_t' to ' int', possible
loss of data.

Change-Id: I8d1ca27d4d66a9ce0deb70766446e780308bba33
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
2013-07-02 08:18:20 +02:00
Bernd Weimer f62c92ba84 BlackBerry: Increased loop level around bps_get_event
This is needed, because bps_get_event can also invoke callbacks.
Deferred deletions in such a callback are not executed for instance,
because the loop level might already be at its minimum.

Change-Id: I8a1b3a3f92de139575654de011352f8abc6c3c1a
Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Jeff Kehres <jkehres@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-06-29 11:36:31 +02:00
Frederik Gladhorn cb6fec8515 Merge remote-tracking branch 'origin/release' into stable
Change-Id: I53112e20a65b7d706755b4a22622979f3b91a2c2
2013-06-28 19:18:10 +02:00
Frederik Gladhorn 572200989b Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	configure
	mkspecs/features/create_cmake.prf

Change-Id: I94aea83b83833395d5db399209e0e51b92ef23b5
2013-06-27 13:06:38 +02:00
Thiago Macieira 9e893492dd Fix compilation with ICC 13.1: the MSVC 2005 & 2008 code is bad
qvariant_p.h(226): error: name followed by "::" must be a class or namespace name
          template<class C> static Yes test(char (*)[(&C::isNull == 0) + 1]);
                                                       ^

Change-Id: I42eef44d46ca0fb7aac8f82150e917c4fb912b15
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-26 12:38:21 +02:00
Richard J. Moore 9c46cdc2db Make the qfatal for redeclaring a type with the same name a warning.
Change-Id: I5a25b2043a6b5a598a004d30c9a8056564c136e3
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-06-25 13:44:54 +02:00
Jake Petroules f125fa5541 Further followup to Q_OS_MACX changes.
Flip !Q_OS_IOS conditions to Q_OS_MACX where it seems appropriate,
remove a redundant condition in qtextcodec_p.h.

Change-Id: I21c8c0c490f1eb4a9337a7f2f3e907c125489438
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
2013-06-24 15:49:31 +02:00
Frederik Gladhorn 6213b81457 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoafiledialoghelper.mm
	src/plugins/platforms/qnx/qqnxrasterbackingstore.cpp
	tools/configure/configureapp.cpp

Change-Id: I3092bd3276af14304b7ab3ae1e1cc05d11cdede0
2013-06-20 16:45:12 +02:00
David Faure a4d41f6803 Doc: QTranslator::translate() isn't an overload anymore
Change-Id: Ib50044da48be3fb4f43300aa285e15403bd8d65e
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
2013-06-19 20:05:43 +02:00
Stephen Kelly d9fb6e6dbb Remove use of 'register' from Qt.
It is deprecated and clang is starting to warn about it.

Patch mostly generated by clang itself, with some careful grep
and sed for the platform-specific parts.

Change-Id: I8058e6db0f1b41b33a9e8f17a712739159982450
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-17 09:44:22 +02:00
Jędrzej Nowacki d57d184b6d Add basic conversion functions from QVariant(QJsonValue).
There is a mismatch how QML and C++ converts QJsonValue. This patch
unifies conversions by adding QJsonValue support in QVariant::convert().

Change-Id: I8a1db3d77c517945ef48064b4b66ba03aa4f2fd0
Reviewed-by: Frederik Gladhorn <frederik.gladhorn@digia.com>
2013-06-14 15:50:49 +02:00
Frederik Gladhorn e2776b44a0 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/plugins/platforms/cocoa/qcocoamenubar.mm

Change-Id: I4a699fc8a7f30b2af9de8e496c3d5f027b7495bb
2013-06-12 19:17:07 +02:00
Laszlo Papp 0715dc9ee3 Mark the Q_DECLARE_OPAQUE_POINTER macro as introduced in 5.0
Change-Id: Ida52c9f1f72b628d9a7faaf7998798e781b53df2
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-06-12 07:40:58 +02:00
Friedemann Kleint 274e571be1 QtCore: Fix MSVC-64 warnings about integer truncation.
warning C4267: 'argument' : conversion from 'size_t' to ' int', possible
loss of data.

Change-Id: I79af7497420d468b5bc7c48c9ae21b86117519a9
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
2013-06-08 10:29:34 +02:00
Simon Hausmann d8a6a67579 Add internal functions to QObjectPrivate for signal & slot connections in QML
In QML it is common to connect signals to slots that are implemented as
JavaScript functions. QML used to maintain separate data structures that
mirrored the QObject connection list and kept references to the JavaScript
objects necessary to perform the call on signal activation.

The recent addition of functor based QObject::connect makes it possible
to store this information in QSlotObjectBase sub-class instead, which
eliminates any extra bookkeeping.

This patch adds internal connect and disconnect overloads to QObjectPrivate
that allow for connecting QObject *sender, int signalIndex to a given
QSlotObjectBase and similar for disconnect.

Change-Id: I90f43d13eb95bd884d752484cf4faacc446f4d6a
Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
2013-06-07 16:19:05 +02:00
Stephen Kelly aff03cbc27 Don't convert built-in types to strings for qDebug.
This was introduced by 7ed15da3 (Core: QDebug and comparison operator
support metatypes,, 2013-03-20).

Change-Id: Id89aaffeee8d519ca73f0b52b1ac8b9d233cb5f1
Reviewed-by: Christoph Schleifenbaum <christoph.schleifenbaum@kdab.com>
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-06-07 13:31:14 +02:00
Bernd Weimer fd956af257 Fixed evaluation of application file path
Empty arguments list could lead to crash, due to access of first element.
Besides, empty application file path will be cached now universally.

Change-Id: Ibe1a668da364d87d8431567dfc999cb394686081
Reviewed-by: Sérgio Martins <sergio.martins.qnx@kdab.com>
Reviewed-by: Fabian Bumberger <fbumberger@rim.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-06-05 16:11:02 +02:00
Frederik Gladhorn 80604a0786 Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/global/qglobal.h
	src/plugins/platforms/cocoa/qnsview.mm

Change-Id: I6fe345df5c417cb7a55a3f91285d9b47a22c04fa
2013-06-04 19:34:36 +02:00
Friedemann Kleint aa1b4c0943 Disable precision timers when running MSVC2012 code on pre-Windows 8.
Precision timers can cause the event loop to lock up
when running MSVC2012 code on pre-Windows 8.

Task-number: QTBUG-27266

Change-Id: Idd73731e82843d0d140859bab825bc1a54eccf1a
Reviewed-by: Gunnar Sletta <gunnar.sletta@digia.com>
2013-05-30 12:49:45 +02:00
Christoph Schleifenbaum 7ed15da3c1 Core: QDebug and comparison operator support metatypes.
This patch adds a way to enable operator<, operator== and operator<<
into QDebug for QVariants with custom types.

Change-Id: I3d12d891bd7252ad2b8f1de69bced354800a1f29
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-27 19:58:19 +02:00
Frederik Gladhorn d3a8bc803c Merge remote-tracking branch 'origin/stable' into dev
Conflicts:
	src/corelib/io/qdatastream.cpp
	src/corelib/io/qdatastream.h
	src/corelib/json/qjsonwriter.cpp
	src/plugins/platforms/cocoa/qcocoawindow.mm
	src/plugins/platforms/xcb/qxcbkeyboard.cpp

Change-Id: I46fef1455f5a9f2ce1ec394a3c65881093c51b62
2013-05-23 21:27:07 +02:00
Rafael Roquetto 2b02d9b064 Fix QEventDispatcherBlackberry build when debug is on
Change-Id: Ia00d0f32e7d552421cc230ffca25085ab0a3a31e
Reviewed-by: Andreas Holzammer <andreas.holzammer@kdab.com>
Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-20 15:20:26 +02:00
Stephen Kelly b88b09fb16 Make it possible to access QPair and std::pair elements from a QVariant.
Change-Id: I9dc73748073d0d1e43bdadbce73339dfcc1bc647
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-20 13:19:16 +02:00
Stephen Kelly 87e27eb870 Add container access functionality for associative containers in QVariant.
Change-Id: I4763a4c157e52918a0a68cba63624c0649aca235
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-20 09:09:06 +02:00
Stephen Kelly 65f953407a Change the ownership semantics of metatype converter functions.
Destroying the instances is a problem because the instances might
have been created in a plugin. In that case, the destructor of
the instance will be implemented in the plugin. As the instance
destruction code is run very late, the plugin might have already
been unloaded by the time an attempt is made to destroy the
instance.

The workaround is to create static instances on the stack.

Task-number: QTBUG-31142

Change-Id: Ic2632c3548a734b742da46d90249916c35705d46
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-20 09:08:59 +02:00
Romain Perier 94c7002df3 Improve Qt-in-namespace implementation in the Cocoa platform plugin
Objective-C++ does not support namespaces. In order to make this work,
we decorate each symbol with suffix using the macro QT_MANGLE_NAMESPACE.
However, with such a technic each public symbol needs to be explicitly exported through
this macro. The use of @compatibility_alias allows to define alias to use it
automatically and transparently.

Task-number: QTBUG-23946

Change-Id: Id521b8160bab126fda40a9d960277b1c04cc8b66
Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
2013-05-16 10:45:04 +02:00
Jørgen Lind c1e24f8838 Implement apostrophe in windows cmd args
Task-number: QTBUG-15379

Change-Id: I4a2ca942d2dbfa490302858b589e00bd91e25636
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
2013-05-10 12:09:41 +02:00
Bernd Weimer ebd5de126c BlackBerry: Revised error handling in event dispatcher
Added an upper bound check for socket notifier file descriptors. Too
high FDs have been a real source of failure.
Added compiler hints to allow error-free code path run faster (errors
are highly unlikely) and adjusted warning messages (some were misleading
and too long).

Change-Id: I1c9c41f5d006ca9d3a28214c3a464555b8a1c71f
Reviewed-by: Thomas McGuire <thomas.mcguire@kdab.com>
2013-05-10 11:41:27 +02:00
Olivier Goffart 9cc106d9d7 Fix a case of connect()ing to signals declared in a base class
Fix connection to pointer to member signal that belongs to the base
class, but whose type is a pointer to a member of the derived class.

The current code only use the QMetaObject of the type coming from the
function type to look up the signal id. But if the signal was casted
to a pointer to member function of a derived type, then we also need to
look in the base classes

Change-Id: Ib98fc38f63942946acb34d9f83c100991d58e4e5
Reviewed-by: Giuseppe D'Angelo <giuseppe.dangelo@kdab.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
2013-05-09 08:23:48 +02:00
Stephen Kelly 929e08a3d6 Fix since version of new metatype conversion functions.
Change-Id: Icedd0942eaef9bdcf034d747f0a03a00ca461a95
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-08 12:46:09 +02:00
Stephen Kelly 508ee5616b Add automatic container access registration for built-in containers.
Change-Id: I4d590c23e072994930922ff73367600f848fbcf0
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-08 12:45:59 +02:00
Stephen Kelly 620f788f86 Add QVariantList extraction from a QVariant with a sequential container.
Change-Id: Id9fac7bf47ed3fbb385222b25941215ac24b8b88
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
2013-05-08 06:02:53 +02:00
Stephen Kelly 01fb843af8 Add QVariant container iteration API.
A new set of classes is introduced for iterating over the contents
of a container within a QVariant without knowing the exact type of
the container, but with the guarantee that the element type within
the container is a metatype.

The implementation of the iterable interface uses
the stl-compatible container API so that we can also iterate over stl
containers, or any other container which also conforms to stl norms.

This enables the functionality in the bug report.

Task-number: QTBUG-23566

Change-Id: I92a2f3458516de201b8f0e470982c4d030e8ac8b
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
2013-05-08 06:02:45 +02:00