summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Use std::enable_if instead of QEnableIfAlexander Volkov2017-01-2711-50/+50
| | | | | | Change-Id: Ideca8283141484cb6da47c50333f5c96e416f082 Reviewed-by: Edward Welbourne <edward.welbourne@qt.io> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
* Fix QString comparison on Aarch64Erik Verbruggen2017-01-261-1/+1
| | | | | | | | | | | | | | There was an off-by-one error in the while loop for aarch64: we start counting at 0 for the first position, so the last valid input position is "a+7", not 8. This wasn't covered by the tests, nor was the SSE2 version, so now there are also tests for both versions. Change-Id: I7eb8c5708e6179f45ea56885b0e66e1a37969c1d Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
* Merge "Merge remote-tracking branch 'origin/5.8' into dev" into refs/staging/devLiang Qi2017-01-2637-309/+344
|\
| * Merge remote-tracking branch 'origin/5.8' into devLiang Qi2017-01-2537-309/+344
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: .qmake.conf mkspecs/common/msvc-desktop.conf mkspecs/common/msvc-version.conf mkspecs/common/winrt_winphone/qmake.conf mkspecs/features/mac/default_post.prf mkspecs/features/mac/sdk.prf mkspecs/features/qt.prf mkspecs/features/uikit/default_post.prf mkspecs/features/winrt/default_pre.prf mkspecs/winphone-arm-msvc2013/qmake.conf mkspecs/winphone-x86-msvc2013/qmake.conf mkspecs/winrt-arm-msvc2013/qmake.conf mkspecs/winrt-x64-msvc2013/qmake.conf mkspecs/winrt-x86-msvc2013/qmake.conf qmake/generators/win32/msvc_vcproj.cpp src/gui/kernel/qwindowsysteminterface.cpp src/network/kernel/qhostaddress.cpp src/plugins/platforms/mirclient/qmirclientplugin.cpp src/plugins/platforms/mirclient/qmirclientplugin.h src/widgets/util/qsystemtrayicon.cpp tests/auto/widgets/itemviews/qlistview/tst_qlistview.cpp tools/configure/Makefile.mingw tools/configure/Makefile.win32 Done-with: Jake Petroules <jake.petroules@qt.io> Done-with: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Change-Id: I4be3262d3994e11929d3b1ded2c3379783797dbe
| | * Doc: do not break the values list by blank lines in qnamespace.qdocDmitry Shachnev2017-01-231-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | There should be no blank lines in \value content, otherwise qdoc ends the list and starts a new one. Change-Id: Idddc7992317894487445aea36397136df40b9691 Reviewed-by: Martin Smith <martin.smith@qt.io>
| | * Fix build without features.textcodecTasuku Suzuki2017-01-231-0/+1
| | | | | | | | | | | | | | | Change-Id: Ia9636db509270db93c2f9e46adaf1def0f157344 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Fix build without feature.animationTasuku Suzuki2017-01-161-4/+6
| | | | | | | | | | | | | | | Change-Id: Ia1b9ae3a35cbc73d0bbf27db234d0cd120d0b601 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * Merge "Merge remote-tracking branch 'origin/5.8.0' into 5.8" into ↵Liang Qi2017-01-152-0/+20
| | |\ | | | | | | | | | | | | refs/staging/5.8
| | | * Merge remote-tracking branch 'origin/5.8.0' into 5.8Liang Qi2017-01-142-0/+20
| | | |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/painting/qcoregraphics.mm Change-Id: I4d49535cd75f2cdf0151c1dbff312cce5e159760
| | | | * Work around MSVC ABI stupidity in exporting inline members of base classThiago Macieira2017-01-032-0/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In this case, the issue was ICC, when compiling QtQml: qv4sequenceobject.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: void __cdecl QList<class QItemSelectionRange>::replace(int,class QItemSelectionRange const &)" (__imp_?replace@?$QList@VQItemSelectionRange@@@@QEAAXHAEBVQItemSelectionRange@@@Z) referenced in function "public: static bool __cdecl QV4::QQmlSequence<class QItemSelection>::deleteIndexedProperty(struct QV4::Managed *,unsigned int)" (?deleteIndexedProperty@?$QQmlSequence@VQItemSelection@@@QV4@@SA_NPEAUManaged@2@I@Z) This applies the same fix as qvector.h has had for ages due to QPolygon. Change-Id: I15b62e0f9cec482fbb40fffd1490d791db5056bc Reviewed-by: Marc Mutz <marc.mutz@kdab.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * | | Add Q_CC_CLANG to the documentation pageKavindra Palaraja2017-01-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-42247 Change-Id: I3f707df4d25cac12fabac863b4f6bb50bfac5e26 Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * | | QtCore: fix GCC 7 warningsMarc Mutz2017-01-152-1/+4
| | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GCC 7 warns about implicit fall-throughs now. Fix by adding Q_FALLTHROUGH. Change-Id: I482ab4c6adc469b11e1fd163516ff486b3b55ef7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Adapt to the C++ SIC introduced by P0021: noexcept overloadingThiago Macieira2017-01-141-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | C++17 adopts P0021R1[1], which makes noexcept be part of the function pointer's type and thus be overloadable. It contains some provisions for allowing a noexcept function pointer to cast implicitly to a non- noexcept function pointer, but that fails in the presence of templates and additional overloads that could match the type in question. Fortunately, the paper proposed a test macro, so we can change our sources now and be compatible with both C++14 and C++17 rules. This first failed with Clang 4.0 trunk. This source incompatibility is not our fault, it's the language's doing. [1] http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p0012r1.html Task-number: QTBUG-58054 Change-Id: I2bc52f3c7a574209b213fffd14988cf0b875be63 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
| | * | Fix typo in QT_REQUIRE_CONFIG error messagePaul Olav Tvete2017-01-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: Iecfd398935f9c10aa456bd3452d34b31bc7eb4c9 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
| | * | Doc: fix the datatype returned by Qt::TextAlignmentRoleGiuseppe D'Angelo2017-01-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It's supposed to be a full alignment (like Top | Right), not just one flag. Change-Id: I656adda83742d7e4f31955322e937e979b32747c Reviewed-by: David Faure <david.faure@kdab.com>
| | * | Fixed Chinese language selection on iOSJason Erb2017-01-101-21/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For language "Traditional Chinese" on iOS with region "US", the logic was formerly to attempt a match on country/language/script (fail), followed by country/language (which would result in script defaulting to "Simplified"). Now, the logic is to try language/script first if script is specified. Failing that, language/country will be attempted. Task-number: QTBUG-39639 Change-Id: I75a774b1e66686e95167ff221458a97a7ea2660d Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Jason Erb <jason.erb@sparist.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | QNX: Fix comments on qcompilerdetection.hRafael Roquetto2017-01-101-4/+13
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I75495b4ba3d8742419f824aa0e0b52694dbd42ed Reviewed-by: James McDonnell <jmcdonnell@blackberry.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Fix compilation with QT_NO_SHAREDMEMORYUlf Hermann2017-01-101-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | If we use QLatin1String we should include qstring.h. Change-Id: Iebd761b98e515e9cd9cd34b96a0f8a602d00f086 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Clarify that QString::toDouble does not have a fallbackKavindra Palaraja2017-01-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | QString::toDouble always uses the 'C' locale. Task-number: QTBUG-44045 Change-Id: Ifb0c2f11c83c209907dd35bb39d1450022c8e85c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Adjust QNX choicesJames McDonnell2017-01-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't use Dinkum choices when the C++ library is libC++ (QNX 7.0). Change-Id: I18c3f716ccfb0c02dbfdc01eac4b707d3ae9aab6 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Clarify StripTrailingSlash behaviorKavindra Palaraja2017-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | StripTrailingSlash removes trailing slashes from the path, but not the entire URL. Task-number: QTBUG-47607 Change-Id: Id62b971e563e290b7ca000576bcc328616a3f1a2 Reviewed-by: David Faure <david.faure@kdab.com>
| | * | revert to building qmake with qconfig.cppOswald Buddenhagen2017-01-062-85/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | turns out that just appending builtin-qt.conf isn't a good idea: executable-editing tools (objcopy, prelink, etc.) will happily drop the "attachment". a safe method would be adding a proper section to the executable, but there doesn't appear to be an objcopy equivalent in msvc, and using entirely different methods of embedding the file with different toolchains seems like a rather bad idea. so instead go back to the old method of building qmake with a generated qconfig.cpp. of course, as said file is now created by qmake itself, we have to compile qlibraryinfo.cpp a second time, and link a second qmake executable. Task-number: QTBUG-57803 Change-Id: I9e232693550aa870cec154e49cc06add13017cc2 Reviewed-by: Lars Knoll <lars.knoll@qt.io>
| | * | Fix compilation without sharedmemoryUlf Hermann2017-01-052-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We have to enable qt_safe_ftok with either sharedmemory or systemsemaphore. In order to make the resulting QT_CONFIG work with the bootstrap library we switch the features off for bootstrapping. Some tests and examples have to be excluded when sharedmemory is not available. Change-Id: I3fc3926d160202b378be2293fba40201a4bf50c5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Remove pointless QT_NO_THREAD ifdefs from qpropertyanimation.cppUlf Hermann2017-01-041-2/+0
| | | | | | | | | | | | | | | | | | | | Change-Id: I7b7e80abbddf4d43c6135775136d993196d708b3 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Avoid zero-as-nullpointer warnings in QThreadUlf Hermann2017-01-041-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3fd557a54d63c2dcabe58fab65326538896d02a2 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * | Doc: add note about unsupported platforms for QProcessAleksey Lysenko2017-01-041-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-57840 Change-Id: I46a26a9c4c6ad0aa6994945091a2904c3b51080f Reviewed-by: Martin Smith <martin.smith@qt.io> Reviewed-by: Jake Petroules <jake.petroules@qt.io>
| | * | Avoid compile warnings in qabstractanimation.cppUlf Hermann2017-01-031-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I57f90fc335b50231fb2093f096ad38168d476145 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
| | * | Fix broken link in documentationFrederik Schwarzer2017-01-031-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-57530 Change-Id: Iecb1a26f6b8a7e8a506d768668cde1c277d15dde Reviewed-by: Topi Reiniö <topi.reinio@qt.io> Reviewed-by: Martin Smith <martin.smith@qt.io>
| | * | QDateTime::fromString(): improve performance by 33%David Faure2017-01-031-5/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | getMaximum() and getMinimum(), called during parsing, create new QDateTime instances, which on Linux end up calling mktime(). Making these static (for the common case of LocalTime spec) improves performance dramatically, when parsing several date/times. tests/benchmarks/corelib/tools/qdatetime/ (after fixing it to actually parse a valid date/time) says: RESULT : tst_QDateTime::fromString(): - 36,742,060 instruction reads per iteration (total: 36,742,060, iterations: 1) + 24,230,060 instruction reads per iteration (total: 24,230,060, iterations: 1) Change-Id: I0c3931285475bf19a5be8cba1486ed07cbf5e134 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Doc: add a quick note about unfixed Windows encoding bugThiago Macieira2016-12-281-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | Task-number: QTBUG-49640 Change-Id: Icb0289e3118a41dd9438fffd1492925b03de62d6 Reviewed-by: David Faure <david.faure@kdab.com>
| | * | Link QVariant class documentation to the Creating Custom Qt Types articleKavindra Palaraja2016-12-281-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The article does answer the questions asked in the bug. Task-number: QTBUG-56629 Change-Id: Ib8bac0acf45bc10598fc47feb6dd73005b5ad040 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | Removed random notes in the documentation that should not be thereKavindra Palaraja2016-12-281-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Two sentences that read like author notes likely added by accident. Task-number: QTBUG-56630 Change-Id: I7a0b114e128f95e54e9e8f26b43493f67747d650 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
| | * | QMimeDatabase: fix handling of conflicting globsDavid Faure2016-12-276-51/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code always intended to follow the recommended checking order from the spec, which says "if multiple globs match, use file contents". But if the globs had different weights, it would discard globs with lower weights, and then wrongly conclude, if there is only one glob left, that there was no ambiguity. The correct way is rather: remember that multiple globs matched, do determination from contents, and if that didn't work, *then* use (one of) the highest-weight glob(s). This fixes PGP-encrypted *.asc files being detected as text/plain rather than application/pgp-encrypted. (https://bugs.kde.org/show_bug.cgi?id=346754) Change-Id: I734459daf9f502baa95ebb89432819964e0ce304 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | QMimeMagicRule: endianness fixesDavid Faure2016-12-271-2/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * apply endianness to the mask as well * do not apply endianness to "host" entries, they were wrongly behaving exactly like "big endian" entries. The issue with the mask was detected by the audio/aac magic <match type="big16" value="0xFFF0" mask="0xFFF6" offset="0"/> which failed to identify the test file ct_faac-adts.aac since it was applying the mask 0xFFF6 instead of 0xF6FF (on a little-endian machine). Not yet detected by tst_qmimedatabase which is based on shared-mime-info 1.0, will be covered by the upgrade to 1.8 in dev. Change-Id: I4fb7af2d367099817e712b14f2a031066d0ac432 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | QMimeMagicRule: fix off by one in the number of bytes checkedDavid Faure2016-12-271-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the loop says p <= e, no +1 should be added to e. Testcase: The magic for application/x-gameboy-rom says <match type="byte" value="0x0" mask="0x80" offset="323"/> and this code was checking both byte 323 and byte 324, finding a match at pos 324, returning application/x-gameboy-rom erroneously. Given the magic for application/x-gameboy-color-rom: <match type="byte" value="0x80" mask="0x80" offset="323"/> the expected result for game-boy-color-test.gbc is application/x-gameboy-color-rom Not yet detected by tst_qmimedatabase which is based on shared-mime-info 1.0, will be covered by the upgrade to 1.8. Change-Id: I2396cb1ccfb26db5a24d5551fef493cc0b98a247 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | ... and so configureapp.exe disappearethOswald Buddenhagen2016-12-231-5/+2
| | | | | | | | | | | | | | | | | | | | Change-Id: I3fd9f2b0d4cf05a625484fce21532da8563cd62c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | fix sysrootification of install pathsOswald Buddenhagen2016-12-222-16/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | initially, the idea was that QLibraryInfo would receive a pre-sysrootified ExtPrefix from the builtin qt.conf. matching this against the sysroot would then tell us whether to sysrootify the Prefix from a "regular" qt.conf as well. however, this would have lead to some major ugliness and inconsistency between the code paths, so i changed my mind. unfortunately, i failed to adjust the remaining code, leading to 169a40d51 entirely breaking sysrootification ... the proper (and nicely consistent) solution is to introduce a SysrootifyPrefix key to qt.conf. this is user-accessible as well, so as a bonus it is now possible to adjust the setting at qmake installation time. incidentally, this omission was the last thing that prevented using the same qmake host build for any imaginable configuration of the same qt version ... i think. Change-Id: Ic0eebf21f93651f6374628c0ad8b206d696a4a7e Reviewed-by: Andy Nichols <andy.nichols@qt.io>
| | * | QLockFile: make sure we encode the hostname as UTF-8 in the lock fileDavid Faure2016-12-211-11/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We chose to use UTF-8 as it allows us to ensure there's no mistaking the hostname in case the locale is changed, if the host name contains characters outside of US-ASCII. But this didn't work because the code that wrote the hostname always used the local 8-bit codec instead of UTF-8. On Unix, we used the result of gethostname(3) directly, which is supposedly on the locale codec. This commit doesn't fix Windows, which requires _wgetenv, the plan being to encapsulate that with a qEnvironmentVariable() method. [ChangeLog][QtCore][QLockFile] Fixed a bug that caused QLockFile not to recognize a stale lock file if the machine's hostname contained non-US- ASCII characters, on Unix. A Windows fix is still pending. Task-number: QTBUG-49640 Change-Id: Ib9d045544ff370ec901626658a84ec4e6575fe21 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * | QIPM: Persist model indexes after emitting layoutChange, not beforeStephen Kelly2016-12-211-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Callers can persist a QModelIndex which was not persisted before in a slot connected to the signal, and such a persisted index must be updated in the course of the layoutChange. Store the indexes to persist after emitting the signal. Task-number: QTBUG-32981 Change-Id: Ibee4c0d84817d72603a03fe5b22fdeefeac0695e Reviewed-by: David Faure <david.faure@kdab.com>
| | * | QSFPM: Remove data manipulation from move handlersStephen Kelly2016-12-211-55/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Similar to the fix in the parent commit, incorrect updating of the internal data structures during layout changes can lead to dangling pointers being dereferenced later. Moves are treated as layoutChanges by this proxy by forwarding to the appropriate method. However, data is incorrectly cleared prior to that forwarding. Remove that, and let the layoutChange handling take appropriate action. Change-Id: Iee951e37152328a4e6a5fb8e5385c32a2fe4c0bd Reviewed-by: David Faure <david.faure@kdab.com>
| | * | QSFPM: Fix handling of source model layout changeStephen Kelly2016-12-211-20/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In sourceLayoutAboutToBeChanged the source model update is ignored if the affected parents are filtered out anyway. The same logic is attempted in the sourceLayoutChanged slot, but there the early-return logic is applied too late - the mapping is cleared before performing the early-return. Because pointers into the mapping are used in the internalPointer of QModelIndexes in this class, persistent indexes used later will segfault when attempting to dereference it. Additionally, if a parent becomes invalid as a result of the layoutChange, it would be filtered out by the condition in the loop, resulting in a different result in the comparison of emptiness of the parents container. Fix that by persisting the parent's container, and performing the test for early-return before clearing the mapping. Task-number: QTBUG-47711 Task-number: QTBUG-32981 Change-Id: If45e8a1c97d39454160f52041bc9ae7e337dce97 Reviewed-by: David Faure <david.faure@kdab.com>
| | * | Fix race condition in QFactoryLoader: lock the mutex we already haveThiago Macieira2016-12-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The process of loading a plugin is examplified by the qLoadPlugin function (though not all users of QFactoryLoader use this function, they all do something similar): const int index = loader->indexOf(key); if (index != -1) { QObject *factoryObject = loader->instance(index); if (FactoryInterface *factory = qobject_cast<FactoryInterface *>(factoryObject)) if (PluginInterface *result = factory->create(key, std::forward<Args>(args)...)) return result; } QFactoryLoader::indexOf already locked the mutex, but not QFactoryLoader::instance. This commit fixes that. Note that calling the virtual create() in the plugin's factory is not protected by the mutex. Each plugin's factory must be thread-safe and also create an object that works on any thread too. It's also the responsibility of the caller of qLoadPlugin to ensure that it's called thread-safely. Task-number: QTBUG-42855 Change-Id: I63e21df51c7448bc8b5ffffd148ebee33d4c47de Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* | | | Avoid detaching temporary objectsAlexander Volkov2017-01-251-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found with clazy [detaching-temporary]: - don't call QList::first() on temporary - don't call QString::operator[]() on temporary - don't call QByteArray::data() on temporary Change-Id: I390962ef6020e4fcb0b0e447a63eed1e314d18a4 Reviewed-by: Anton Kudryavtsev <antkudr@mail.ru> Reviewed-by: Sérgio Martins <sergio.martins@kdab.com>
* | | | Add missing documentation for QOperatingSystemVersion::segmentCountJake Petroules2017-01-251-0/+6
| | | | | | | | | | | | | | | | | | | | Change-Id: I6d24fbbaf60e07377a463ea1f72588812caaf4a7 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | Fix some qdoc-warnings for 5.9Friedemann Kleint2017-01-255-9/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | qtbase/src/corelib/global/qoperatingsystemversion.cpp:119: warning: Cannot find 'QOperatingSystemVersion(...)' in '\fn' QOperatingSystemVersion::QOperatingSystemVersion(int maj, int min, int mic) qtbase/src/corelib/io/qdir.cpp:1852: warning: Unknown command '\p' qtbase/src/corelib/kernel/qabstracteventdispatcher.cpp:482: warning: Cannot find 'registerEventNotifier(...)' in '\fn' bool QAbstractEventDispatcher::registerEventNotifier(QWinEventNotifier *notifier); qtbase/src/corelib/kernel/qabstracteventdispatcher.cpp:495: warning: Cannot find 'unregisterEventNotifier(...)' in '\fn' bool QAbstractEventDispatcher::unregisterEventNotifier(QWinEventNotifier *notifier); qtbase/src/corelib/global/qoperatingsystemversion.cpp:268: warning: Can't link to 'macro()' qtbase/src/corelib/global/qoperatingsystemversion.cpp:296: warning: Can't link to 'typeName()' qtbase/src/corelib/io/qdir.cpp:1845: warning: Undocumented parameter 'filters' in QDir::isEmpty() qtbase/src/corelib/kernel/qobject.cpp:1636: warning: No such parameter 'interval' in QObject::startTimer() qtbase/src/network/bearer/qnetworkconfiguration.cpp:343: warning: Undocumented parameter 'timeout' in QNetworkConfiguration::setConnectTimeout() qtbase/src/gui/kernel/qoffscreensurface.cpp:337: warning: Undocumented parameter 'handle' in QOffscreenSurface::setNativeHandle() qtbase/src/platformheaders/xcbfunctions/qxcbwindowfunctions.qdoc:109: warning: Unknown command '\role' qtbase/src/widgets/util/qundostack.cpp:727: warning: Command '\li' outside of '\list' and '\table' ... Change-Id: I57bff895a8e1afd94b582a6a72a06771514ee27e Reviewed-by: Jake Petroules <jake.petroules@qt.io>
* | | | Apple: always use the system time zone instead of the default time zoneJake Petroules2017-01-241-4/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This corrects an issue converting dates and times to strings which would use the "default" time zone (CFTimeZoneCopyDefault) in contrast to the rest of Qt which uses the system time zone in such contexts. [ChangeLog][QtCore][QLocale] Qt functions now always use the system time zone on Apple platforms, the same that low-level C APIs like localtime() does. Previously, converting dates and times to strings would use the "default" time zone (which is almost always the same as the "system" time zone but could be changed with the Apple API). Change-Id: I2942c3c1c8aa01a0130f1b7280371a72bdb01b1c Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | | Fix deprecated API usageJake Petroules2017-01-242-32/+12
|/ / / | | | | | | | | | | | | | | | Change-Id: I62448507f80daf6be72994ee99f0fb1aa107eb78 Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io> Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
* | | Add conversion functions for QTimeZone and CFTimeZone/NSTimeZoneJake Petroules2017-01-234-7/+90
| | | | | | | | | | | | | | | Change-Id: I3a2e18d69577296bf612e13e40414bce1daa6a71 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Increase the default stack size on INTEGRITYKimmo Ollila2017-01-231-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | INTEGRITY doesn't support self-extending stack. The default stack size for a pthread on INTEGRITY is too small so we have to increase the default size. Change-Id: I0787d14938cf5e7e96c35df204212c8e83aa8893 Reviewed-by: Lars Knoll <lars.knoll@qt.io> Reviewed-by: Nikola Velinov <nvelinov@ghs.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | Make variant selection possible if base is missingSebastian Lösch2017-01-201-6/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][QFileSelector] Removed the requirement for an unused default base file in case you want to load only a variant. When the base file (e.g. /image.jpg) was missing, no selectors were considered and it was not possible to load variants of this file (e.g. /+android/image.jpg, /+android/+tablet/image.jpg) without specifying the directory as well. As a work around, one previously had to place a default file in the base location, which is undesirable in some cases because: 1. The extra file consumes unnecessary space. 2. It is impossible to encapsulate platform-specific implementation details by hiding files in a subdirectory. Task-number: QTBUG-51230 Change-Id: I4c7f9ec952bff6e5b7738d8cabe3c762c208a38e Reviewed-by: Robin Burchell <robin.burchell@crimson.no>