summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* QHash: more robust use of qDebug()Marc Mutz2012-02-211-1/+1
| | | | | | | | I'm sure 'line' can't contain anything resembling a format string, but better safe than sorry. Change-Id: I0aa0f4a5a03d97b18d6a866c27fa721fcbe0f77b Reviewed-by: Kai Koehne <kai.koehne@nokia.com>
* QEasingCurve: implement move constructorMarc Mutz2012-02-211-0/+1
| | | | | | | | | | | | | | | | | | | | | The move constructor sets other.d_ptr to zero. This is safe, because after being moved from, the object is left in a state in which it can be safely destroyed (delete nullptr is a no-op). It cannot meaningfully be used anymore (most members will crash with a nullptr dereference), but in most cases, the moved-from object cannot be accessed anyway (not a named object), and if a named object is moved from, it must have been through explicit std::move(), as in the test case. The STL makes better guarantees (moved-from containers are .empty()), but I don't think it's worth introducing a null state into QEasingCurve just for supporting a use-case that should be considered a bug anyway. Change-Id: I4115b7386cdea6960507da6843a0d0196d8e4139 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QEasingCurve: implement move-assignment operatorMarc Mutz2012-02-211-0/+4
| | | | | | | | Implemented as in QPen etc. Change-Id: I65b43c6ec7308ca4b44f614594c15c41ab2f89f9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QEasingCurve: add member-swapMarc Mutz2012-02-212-0/+10
| | | | | | | | Implementated as in QPen etc. Change-Id: Ia08551bf7902b60e115d1b1d2353030597e34841 Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QEasingCurve: mark as Q_MOVABLE_TYPEMarc Mutz2012-02-211-0/+1
| | | | | | | | | The private data doesn't contain any back-links to the public class, afaics. So QEasingCurve qualifies for movable. Change-Id: Id8ab186fc0a25740458341256b53425dc40bce37 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Rename Q_MUTEX_LINUX to QT_LINUX_FUTEXHarald Fernengel2012-02-212-6/+6
| | | | | | | As requested by Thiago Change-Id: Ie5b00cf4e530e19d360d0bc588f0f051e04b338f Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Remove qMacVersion()Bradley T. Hughes2012-02-212-15/+10
| | | | | | | | Add QSysInfo::macVersion() instead, to match the windowsVersion() function. Change-Id: I783e59583ca21653d25586156cbb0cb1f301868b Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Include qt_windows.h for Windows CE.Andreas Holzammer2012-02-201-0/+3
| | | | | | | | | The include is needed for OutputDebugString, as it is defined in winbase.h. To include use the centralized header. Change-Id: I486da20d7b054cee352be085e65a0ede1394653d Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Merges several overloaded functions in QCoreApplication.Xizhi Zhu2012-02-202-63/+6
| | | | | | | | The source compatibility is kept. Change-Id: If66053b271d65062b3c0ce6ec66c8394a37b4e3e Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QPoint/QPointF: inline manhattanLength(); QLineF: inline isNull()Marc Mutz2012-02-204-14/+18
| | | | | | | | | There's no reason for them not to be, and it's a prerequisite for making these functions constexpr. Change-Id: I03c9965147b51014c7af60a4c2d7f25a3f6e21a7 Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com>
* Move QTypeInfo out of qglobal.h and into a separate headerBradley T. Hughes2012-02-203-165/+220
| | | | | | | | | qtypeinfo.h is still included from qglobal.h, and defines QTypeInfo as well as all the specializations for built-in and default Qt types. Change-Id: I24116174de288a730cbb7aa2f80d346d2b2f9408 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* fix QProcess for Windows XPJoerg Bornemann2012-02-201-1/+4
| | | | | | | | | | | | CreateNamedPipe supports the flag PIPE_REJECT_REMOTE_CLIENTS since Windows Vista. On earlier Windows versions the system call would fail with ERROR_INVALID_PARAMETER. This does not open a security hole on Windows XP as there can be only one pipe instance. Change-Id: I5a1c7fdf756678009857317c7b563c884afeef2c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com>
* Use standard unix mutexes on LSBHarald Fernengel2012-02-203-9/+19
| | | | | | | | LSB doesn't allow syscalls, so fall back to the normal _unix implementation Change-Id: I8aba6147da8b46e3f85b0454cf9aca219811c9fe Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Move QMetaMethod::parameterTypes() implementation to helper functionKent Hansen2012-02-202-18/+30
| | | | | | | | | | Because of an upcoming change to the meta-object data format, the ability to extract parameter types from a signature will be needed by meta-object builders (such as QMetaObjectBuilder) soon. Change-Id: I1f21b2be41761a5db2f1a05976fad29eb3aebb03 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Port QSignalEventGenerator meta-object to revision 6Kent Hansen2012-02-202-23/+44
| | | | | | | | | | We want to drop support for old revisions in Qt 5. This commit brings the QSignalEventGenerator meta-object in sync with current moc output. Change-Id: Id5f4954b08cf49169850bd77543b2a7ab8274c18 Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Add QMetaMethod::isValid() functionKent Hansen2012-02-202-0/+10
| | | | | | | | | | | | This function provides a proper way of determining whether a function returned by QMetaObject::method() is valid. (Checking whether signature() returns a 0 pointer, which e.g. testlib does, is not an ideal API -- especially given that signature() will soon be removed and replaced by a function that returns a QByteArray.) Change-Id: I644f476b09904925f2042945f5d0ad744482b682 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Fix typo in QByteArray(QConstByteArrayData) constructorKent Hansen2012-02-201-1/+1
| | | | | | | There is no "str" member in QConstByteArrayData, it should be "ba". Change-Id: Ife76460e9332733480c1ceded21e78388656092d Reviewed-by: João Abecasis <joao.abecasis@nokia.com>
* Don't call metaObject() several timesKent Hansen2012-02-201-5/+6
| | | | | | | | It's sufficient to call it once per invokeMethod. Change-Id: I1db826027eca87c799f216d65e27c801a23e64e2 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
* Rename Q_PROCESSOR_POWERPC to Q_PROCESSOR_POWERBradley T. Hughes2012-02-206-25/+36
| | | | | | | | | IBM's POWER and the PowerPC architecture have been merged into a single ISA, the Power ISA (see http://www.power.org). Use this unified name in Qt. Change-Id: Ia41492b0031d890843e43c5f7ecd1e60c65bb75b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Import QMimeType / QMimeDatabase into QtCore.David Faure2012-02-1820-0/+36054
| | | | | | | | | | | | | | | | History of the development before the import: ssh://codereview.qt-project.org/playground/mimetypes.git Mimetype definitions come from shared-mime-info where available (UNIX systems), loaded using a mmap'ed binary cache generated by update-mime-database. As a fallback if no cache is found, we parse the raw XML files otherwise. This makes the MIME type support fast and with very low memory usage on UNIX, and it makes it easy to use on Windows (no dependency on shared-mime-info, Qt even includes a freedesktop.xml file to use if none are found on the system). Change-Id: I27b05008216ff936dc463bd80d3893422bfb940e Reviewed-by: Richard J. Moore <rich@kde.org>
* Added error reporting to QJsonParserAndrew Christian2012-02-184-23/+87
| | | | | Change-Id: Ib2390c0faf1ed7ada3fc185abce83740ad112929 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QEasingCurve: return QVector for cubic spline representationMarc Mutz2012-02-182-5/+18
| | | | | | | | | | | | | | QEasingCurve internally holds the spline data in a QVector<QPointF>. For the return from cubicBezierSpline(), the vector is transformed into a QList<QPointF>. This involves copying, and into an inefficient (for QPointF payloads) container at that, so deprecate cubicBezierSpline() in favour of a new toCubicSpline() returning the QVector directly. Change-Id: Ie4827fe7c6e289ad97a0b09772e47298779c76ca Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Document Q_PROCESSOR_* macrosBradley T. Hughes2012-02-182-0/+218
| | | | | | | | | | All known processors and their variants/revisions are documented. I added Q_PROCESSOR_MIPS_V based on the MIPS64 online documentation, which documents MIPS64 as a superset of MIPS IV and MIPS V. Change-Id: Ie2796d4f03499283aa2c96d60f5e37bd74a36ab0 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com>
* qnamespace.qdoc: Add doco for new values of Qt::MouseButtonRick Stockton2012-02-171-3/+49
| | | | | | | | | | | | | | QtTBUG-22642 added about 25 new values for the Qt::MouseButton Enum. This change adds documentation for the new values. Note that the special value 'Qt::AllButtons' is documented at the top (next to the other special value, 'Qt::NoButton'.) The new internal value 'Qt::MaxMouseButton' is listed as a \omitvalue. Task Number: QTBUG-22642 Change-Id: Iaec623754156fff8a2c73e357fef82e1fe36354b Reviewed-by: Alan Alpert <alan.alpert@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>
* Only define QT_NAMESPACE if it is used.Stephen Kelly2012-02-171-2/+4
| | | | | | | | Fixes non-namespaced builds. Change-Id: I0ec3c29f58042313dfa864f15c2b2d47914cdedb Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Ensure that Qt public headers compile with strict flagsDavid Faure2012-02-171-3/+3
| | | | | | | | | | Those from http://wiki.qt-project.org/Coding_Conventions#Conventions_for_public_header_files (unfortunatey -Wold-style-cast cannot be used due to the glibc macro bswap_16) and many Qt defines that disable casts. Change-Id: I97ac707a101df9819e8c031fa75a31b30e20247f Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QProcess documentation typo fix and improvement.Rafael Roquetto2012-02-171-4/+4
| | | | | | | | | The word 'momentaneously' does not exist. Change-Id: I3d2201d5b7b3a01af5989bb1c3fcd55110d5482c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Till Adam <till@kdab.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Mention QT_NO_STL in the QString documentationSimon A. Eugster2012-02-171-3/+3
| | | | | | | Defining QT_NO_STL disables STL functions (toStdString() etc.) too. Change-Id: Id5c8e12d933af6af63ee7f80fa2d5d7577cd689a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* No need to stat with QFile::exists before QFile::open, for reading.David Faure2012-02-171-1/+1
| | | | | | Change-Id: I14ca7f8a377bca39004defc96d69d62c151181f5 Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Jeremy Katz <jeremy.katz@nokia.com>
* QSize/QSizeF: add const versions of scale()/transpose()Marc Mutz2012-02-172-18/+85
| | | | | | | | | Non-mutating functions can (potentially) be constexpr. On top of that, they often make for more readable code. Change-Id: I3547327cf5a7162737353a864a1025d0d02ccc2f Reviewed-by: Gunnar Sletta <gunnar.sletta@nokia.com> Reviewed-by: David Faure <faure@kde.org>
* QStandardPaths implementation configured using JSONJeremy Katz2012-02-172-0/+186
| | | | | | | | | | | | | | | | | | The default JSON file is /etc/user-dirs.json, but may be overridden by setting PATH_CONFIG_HOME to the file to be used. This provides functionality similar to the XDG based QStandardPaths, but uses a JSON file to define paths, rather than the XDG A=B format. Values other than HomeLocation and TempLocation may be specified by removing the "Location" postfix, converting to upper case, and separating words with _. Values are independent. For example, CacheLocation does not depend on GenericCacheLocation. Variables specified as ${[^{]*} will be replaced with environment variables. Change-Id: I374f5e6bae498dbfa9cb4ecadf915b05fb91fc34 Reviewed-by: David Faure <faure@kde.org>
* Plugin loader: Output offending plugin name in warning.Friedemann Kleint2012-02-171-1/+2
| | | | | Change-Id: I0aba0cf04f703b893459af55263685c5548a92f9 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Enables QProcess back on QNX.Rafael Roquetto2012-02-174-18/+160
| | | | | | | | | | Because fork()/vfork() on QNX are not supported on multithreaded applications, QProcess had been disabled on this platform. The corresponding code has now been replaced with functions that wrap around spawn(). Change-Id: I46091b7d41f322a5cad07d17893aa929c84941ef Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Static plugins don't break QFactoryLoader::keys()Lincoln Ramsay2012-02-171-1/+1
| | | | | | | | | | | The = means that a single, static, compat plugin replaces the list of keys (eg. from previously checked static plugins or from dynamic plugins). Using += prevents this undesirable behaviour. Change-Id: I3a40752c08dddbfe81444ca9c782b633e9742ab9 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Remove usages of QT_ARCH and QT_ARCH_* from qtbaseBradley T. Hughes2012-02-175-12/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The architecture is detected at compile time based on the predefined macros from the compiler. Don't use QT_ARCH in .pro, .pri, or .prf files. The PNG_NO_ASSEMBLER_CODE define from libpng.pri is not present in the current copy of src/3rdparty/libpng, so no change in functionality is expected. The conditional for the SUPPORT_JIT define in pcre.pri is moved to src/3rdparty/pcre/config.h, again so that we can use the compiler's predefined macros to detect the architecture at compile time. Replace QT_ARCH_ARM, QT_ARCH_MIPS, and QT_ARCH_SPARC with their Q_PROCESSOR_* equivalents. Replace QT_ARCH_INTEGRITY, QT_ARCH_VXWORKS, and QT_ARCH_WINDOWSCE with their Q_OS_* equivalents. Note that this commit also effectively disables the SPARC atomic implementation. An inline implementation for SPARC needs to be added, or we remove the current code and instead rely on the GCC intrinsic or C++11 std::atomic support on SPARC. Note also that this commit does not remove QT_ARCH from configure or qconfig.h. This will continue to be set until all Qt 5 projects can be moved away from using QT_ARCH. Change-Id: I5de747cc4436d21941329974cff3016970f497b8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Some small doc fixes, typos and removal of one incorrect paragraphAndy Shaw2012-02-171-5/+0
| | | | | | | | | The QTextStream paragraph that is removed referred to something that is incorrect. This was confirmed for Windows, Linux and Mac. Change-Id: Ibac8f82482f2060308b5b8485d6da228bdf52fe6 Reviewed-by: Casper van Donderen <casper.vandonderen@nokia.com> (cherry picked from commit 80cebfde10cf34dcc0777c24f1b3ff37cad20181)
* Use ctest to run all tests and print output.Stephen Kelly2012-02-171-4/+2
| | | | | | Change-Id: Ib5a8513cc2d08adce49602b2590059b918b1ffda Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Only define QT_NAMESPACE if it is used.Stephen Kelly2012-02-171-2/+4
| | | | | | | | | Fixes non-namespaced builds. Change-Id: Ie743fc57e7f208fdd50c61b08dc8a4b150de3930 Reviewed-by: Clinton Stimpson <clinton@elemtech.com> Reviewed-by: Alexander Neundorf <neundorf@kde.org> Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* [QTBUG-22847] Compile with C++11 compilerMarc Mutz2012-02-171-3/+3
| | | | | | | | | | | | | | C++11 supports user-defined string literals, which makes the C++98-accepted literal string concatenation sequence "foo"MACRO illegal under C++11. The solution is to add whitespace between the string literal and the macro. For symmetry, this patch adds it on both sides. Change-Id: Ie0c698f610986c4d1b12dc2083489043b696936d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QMimeData: export URLs as text tooDavid Faure2012-02-171-1/+27
| | | | | | | | | | | | This allows to drop or paste them into lineedits and text widgets (including such widgets in non-Qt applications) Implementation note: this is done on-demand rather than in setUrls so that it's still possible to setText explicitely; the new code is only a fallback for when no text/plain data is available. Change-Id: Ie90c43a30bfa64a6047b627e7351d20bf5ec8e03 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QDebug: Add support for %{pid}, %{appname} and %{threadid}David Faure2012-02-171-1/+22
| | | | | | Change-Id: I4add0a374e6524b615c6dc0ecfb010a90075b04f Reviewed-by: Kai Koehne <kai.koehne@nokia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use static-less QMetaType API in QVariant.Jędrzej Nowacki2012-02-161-4/+5
| | | | | | | | | This patch improves performance when constructing a custom type in a QVariant by ~ 7-20% (instructions count) depending on the type size and metatype attributes. Change-Id: Ic2707ff5abd689b66e23c1794f111504bf9b3b01 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Implement new static less API for QMetaType.Jędrzej Nowacki2012-02-163-10/+348
| | | | | | | | | | | | | | Currently QMetaType API contains almost only static methods. This works nice until someone needs more information or needs to do more operations on a type. In this case every function call has to do type dispatch. This API allows to avoid redundant type dispatching, by caching a type information in a QMetaType instance. It gives significant performance boost especially for custom types (up to 9x). Change-Id: I223d066268402e072e41ca1d0a3e7bc160655d7f Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* Drop QFile::fileEngineJoão Abecasis2012-02-165-51/+48
| | | | | | | | | | | | | | | The function was already marked as internal. By moving access to the underlying file engine to private API this supports the effort to completely drop file engines from public API. In the future, the goal is to completely drop the file-engine abstraction as it exists today. Change-Id: I332fa56e70c87e83c1e08bb9f75e04df7c93fec7 Reviewed-by: Jonas Gastal <jgastal@profusion.mobi> Reviewed-by: Anselmo L. S. Melo <anselmo.melo@openbossa.org> Reviewed-by: Lars Knoll <lars.knoll@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* qmetaobjectbuilder: Store only unique strings in the string tableKent Hansen2012-02-161-37/+53
| | | | | | | | | | | | | Do like moc: If the string has already been entered into the table, just return its position, don't make a new copy. This can save space, for example, if there are several properties of the same type; the typename only occurs once in the string table but will be referenced by several property descriptors. Change-Id: Ic0087697716cab1c6449ea51c0c758a6fd1a1c82 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Don't hardcode the number 14 in meta-object generatorsKent Hansen2012-02-162-2/+6
| | | | | | | | | | | | | 14 is the number of fields (ints) in the QMetaObjectPrivate struct as of revision 6. Use the calculated number of fields instead, so that the code will still be correct when more fields are added in future revisions. Change-Id: I4f2c2bfc125f3fabc8e8caedf5c6ba6c17a34d06 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com>
* qmetaobjectbuilder: Add asserts to confirm validityKent Hansen2012-02-161-5/+12
| | | | | | | | | | | | | | | | | buildMetaObject() can operate in two "modes", based on whether a buffer to write the meta-object into is passed or not. Add asserts to make sure that the intermediate meta-data indexes are correct in both "modes", and that the final size in "write mode" matches the size that was computed in the preceding non-writing pass. The asserts make it easier to catch obvious problems when changing buildMetaObject() to generate a new meta-object revision. Change-Id: Ief7c74e6f6fca836587e831b06072d6aa98c7193 Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@nokia.com> Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Fix ref counted window close handling.Stephen Kelly2012-02-162-2/+12
| | | | | | | | | | Instead of refcounting QWindow visibility, we ask the Application subclass whether quitting is appropriate. Task-Id: QTBUG-24120 Change-Id: Idd19cc1a3e5742fddded89c7638aaaa5e47c568d Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* Add QMetaType::FirstCoreType enum value.Jędrzej Nowacki2012-02-161-0/+1
| | | | | | | We should not assume that the first type id is 0. Change-Id: I17ba6ba57e97ebd495904bfd11235fe458f214e5 Reviewed-by: Kent Hansen <kent.hansen@nokia.com>
* Add a ThemeChange event.Friedemann Kleint2012-02-161-0/+2
| | | | | | | | | - Pass it from QWindowSystemInterface via QWindow to the widgets. - Add handler code from 4.8 / qapplication_win.cpp to qwidget.cpp. Change-Id: Ic759563aa00cb93fe014c1bf41020446c1927dec Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com> Reviewed-by: Samuel Rødal <samuel.rodal@nokia.com>