summaryrefslogtreecommitdiffstats
path: root/src/corelib
Commit message (Collapse)AuthorAgeFilesLines
* Doc: Correct typos in QModelIndex::internalId() documentationAdam Majer2014-02-251-2/+2
| | | | | Change-Id: Iea2fd83764711889b828997d56b9f7dcdbdd75fb Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
* Bump Qt version to 5.4.0Thiago Macieira2014-02-203-5/+7
| | | | | | Change-Id: I9eea1d2e383aff7eec4817b17c098a6fcc03e041 Reviewed-by: Sergio Ahumada <sahumada@blackberry.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add the option of using decltype() in Q_FOREACHThiago Macieira2014-02-191-3/+8
| | | | | | | | | This should allow more compilers to use the shorter & simpler version of the macro. Change-Id: Ibd2bf20f479b707a7806d0265a5580ebfc2e7733 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Redo the Q_FOREACH loop control without GCC statement expressionsThiago Macieira2014-02-191-7/+17
| | | | | | | | | | | | | | | | | | It's possible to do without them, which probably makes the number of supported compilers a lot bigger: they just need to support decltype() or __typeof__. That includes the Intel compiler. The old code was also apparently working, but no one had realized the old workaround for some old version was still in place. The loop overhead is more or less the same. I have not done benchmarks, but inspection of the generated assembly shows more or less the same number of instructions. Change-Id: I32d499c84a6ddd19d994b49f17a469acb5c3a3f1 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Mark the QArrayData alloc/dealloc functions as nothrowThiago Macieira2014-02-194-6/+6
| | | | | | | Throwing is handled at a higher level. Change-Id: I573e4ded135b61e35fbe6e188be09acf449911fc Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-183-34/+42
|\ | | | | | | | | | | | | Conflicts: src/plugins/platforms/android/qandroidplatformtheme.h Change-Id: I541bd3069df3ab54c7942d5f4a9e155e3b6566a0
| * Make a URL with absent authority be different from one with an empty oneThiago Macieira2014-02-171-6/+14
| | | | | | | | | | | | | | | | | | | | | | | | This partially reverts 5764f5e6eaf149116a818658883cf4fae9830f30 and fixes the problem differently. After this commit, "file:///foo" is still equal to "file:/foo", but "foo:///foo" becomes different from "foo:/foo", as it should be. Task-number: QTBUG-36151 Change-Id: Ia38638b0f30a7dcf110aa89aa427254c007fc107 Reviewed-by: David Faure <david.faure@kdab.com>
| * Docs: properly tag QtAlgorithms functions as deprecatedGiuseppe D'Angelo2014-02-171-27/+27
| | | | | | | | | | | | | | | | Turns out that \obsolete means "Qt3Support", while the correct tag is \deprecated. Change-Id: Id9896893f3078a0d516bd8751bce0b2df441509d Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| * doc: fix grammarFrederik Gladhorn2014-02-171-1/+1
| | | | | | | | | | Change-Id: Ic2e5fd40e3d3bd7b42d5fd6492286770ffe244f3 Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-174-16/+21
|\| | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h Change-Id: I03d8b6e07135056baaa1d97c3c63fbe8b25583d9
| * Remove incomplete paragraph from QSet::iterator documentationKai Koehne2014-02-141-3/+0
| | | | | | | | | | | | | | | | | | | | | | I could trace the dangling 'However, ' back to Qt 4.2. We probably will never knew what the rest of the sentence was, exactly ... since the previous paragraph is anyhow covering the same grounds we can just remove the paragraph. Change-Id: I1dda56e1ad17932205b8f40a527ca90a7592ad40 Reviewed-by: Ulf Hermann <ulf.hermann@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| * Make parsing of template arguments more robust.Olivier Goffart2014-02-142-13/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | At first, my goal was just to fix Moc::until() to parse properly template arguments containing expressions containing > or >> such as Foo<(8>>2)> But with the test, I realized that normalizeType also requires change not to split the > > too much. And QMetaObjectPrivate::decodeMethodSignature should not interpret the ) within the template parameter as the end of the function. Change-Id: Ia9d3a2a786368aeda1edcf66280d70f64cf05070 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
| * Added #include "qnumeric.h" to qglobal.hGlen Mabey2014-02-141-0/+1
| | | | | | | | | | | | | | | | | | | | Including qnumeric.h causes QtGlobal to have all of the functions that the documentation indicates that it brings. Task-number: QTBUG-36715 Change-Id: Ib08ccc18a85dfe4ecd18ef1dfbfec3e90ab8ec2c Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Remove a not required whitespace when writing JSON in compact formatLars Knoll2014-02-161-1/+1
| | | | | | | | | | | | | | Task-number: QTBUG-36682 Change-Id: I0c1c0de850504c8dff20a5ae724cc868d9f983f8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add the rest of the non-volatile members of std::atomic to QBasicAtomicThiago Macieira2014-02-164-3/+656
| | | | | | | | | | | | | | | | | | | | [ChangeLog][QtCore][Atomic support]Added more operations to the atomic classes, including operator T(), operator=(T), operator++, operator--. For the QAtomicInteger, bit-manipulation operations are also provided, both in operator and in fetchAndXxxYyyyyy modes. Change-Id: I39c07be74e15e0a48f9e931f4342b182004dee1a Reviewed-by: David Faure <david.faure@kdab.com>
* | Add a testAndSet overload to the atomics that returns the current valueThiago Macieira2014-02-1610-30/+278
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is extremely useful, since the most common action after a failed compare-and-swap is to loop around, trying again with the current value as found in memory. Code currently written as: do { Type value = atomic.load(); ... } while (!atomic.testAndSetRelaxed(value, desired)); Becomes: Type value = atomic.load(); do { ... } while (!atomic.testAndSetRelaxed(value, desired, value)); In most CPU architectures, the value that was found in memory is known to the compare-and-swap code, so this is more efficient than the previous code. In architectures where the value is not known, the new code is no worse than before. The implementation sometimes modified an existing function, sometimes it added a new one, depending on whether more registers were needed in the assembly (like ARMv6-7), the code became more complex (ARMv5), the optimizer failed (C++11), or it was just plain equivalent (MIPS). Change-Id: I7d6d200ea9746ec8978a0c1e1969dbc3580b9285 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Initial support for the Intel Compiler 14.0 on OS XThiago Macieira2014-02-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | ICC 8 and 9 are positively ancient. I doubt anyone is using them for Qt, let alone Qt 5. ICC 11 through 13 haven't supported OS X. ICC now masquerades as Clang, so we need to let qmake and qcompilerdetection.h know about it. Change-Id: If0d2bd8b6a4a45250c15c9472c062effc76f17de Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Work around ICC 14 bug: __attribute__((deprecated)) with textThiago Macieira2014-02-161-1/+1
| | | | | | | | | | | | | | | | Apparently it doesn't like the text. Change-Id: If8e14df84f0d9915018eac94df16bf1b679155e0 Reviewed-by: Keith Gardner <kreios4004@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Centralize the merging toFloat conversionsThiago Macieira2014-02-164-59/+22
| | | | | | | | | | | | | | | | The QByteArray version was missing the overflow check that the other versions had. Change-Id: I03cd92e5e5a84c038bee1f1ee217e93e9d9a675a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Add qHash() overloads for floating-point typesMarc Mutz2014-02-162-0/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implementation is based on GCC's implementation of std::hash<FP>, but only to the extent of checking for zero before hashing the bits. The bit hasher is the Qt one; I didn't even look what GCC uses. The check against 0.0 is mandated by the requirement to have \forall x,y: x == y => qHash(x) == qHash(y) which would be violated for x = 0.0 and y = -0.0 if we only hashed the bits. Implemented out-of-line to avoid potential FP-comparison warnings, as well as to be able to use the file-static hash() functions, which gets inlined unlike qHashBits(), which cannot be. [ChangeLog][QtCore][QHash/QSet] Allowed to use float, double and long double as QHash/QSet keys. Change-Id: I38cec4afb860f17e9f8be7b67544e58b330f8fff Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
* | Android: Add enablers for listening to activity resultsEskil Abrahamsen Blomfeldt2014-02-152-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When you launch an activity through an intent, data can be provided back from the activity when it has finished using onActivityResult() in the activity which launched it. This is okay for applications, since they can easily create their own activities, but does not work for libraries that need to use intents. There is no listener API for activity results which allow external classes to eavesdrop. In order to support launching intents from third-party or add-on libraries, we provide a low-level way to hook into the activity result event. The corresponding public API will be added to QtAndroidExtras. Change-Id: I89417f485e2c0e69028dcccc7c155788346a7417 Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* | Add const overload for QLoggingCategory::operator()()Kai Koehne2014-02-152-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change 85e57653 caused a compile error for code that does Q_DECLARE_LOGGING_CATEGORY(cat); //.. qCDebug(cat()) << // ... error: C3848: expression having type 'const QLoggingCategory' would lose some const-volatile qualifiers in order to call 'QLoggingCategory &QLoggingCategory::operator ()(void)' This is a regression from Qt 5.2. Fix the error by adding a const version of operator()(). Change-Id: I2fb04f2e155962adee0f98089fc5a159000bef56 Reviewed-by: Alex Blasche <alexander.blasche@digia.com> Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Revert "Logging: Don't use for loop in qCDebug macros"Kai Koehne2014-02-151-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The use of if {} else {} in the macro causes compiler warnings about "ambiguous 'else'" if qCDebug is used in an if / else without brackets. Revert to the for loop, but make the variable name less likely to clash. This reverts commit bab5f5873680aa3c5a22d94da112aafd2b0b53d3. Task-number: QTBUG-36605 Change-Id: Ie4b075b63b83b7f8a2ad61437b7bf3e6a6c0177a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | WinRT: Exit process event loop if WaitForMoreEvents is not setOliver Wolff2014-02-151-0/+2
| | | | | | | | | | Change-Id: Ic74a75a56ba3f014b108e96d7a79a8623e6fa1d1 Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* | Extending the inputMethodQuery APIPaul Olav Tvete2014-02-152-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, inputMethodQuery() only provides information about the current paragraph. On some platforms, such as Android, the input method needs information about the global cursor position, and more of the surrounding text. Some queries need to pass parameters. The current inputmethodQuery() implementation does not allow parameters to be passed. Changing this would require new or modified virtual functions, which is not possible until Qt 6. Therefore, a completely new mechanism is needed. Change-Id: Ic64fd90198ade70aa0fa6fa5ad3867dfa7ed763c Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Mac: FSEvents-based QFileSystemWatcherEngine.Erik Verbruggen2014-02-144-2/+659
| | | | | | | | | | | | | | | | | | | | | | Use FSEvents to monitor changes in the filesystem instead of the kqueue implementation. This removes the limit of wathed files: kqueue uses a file descriptor for each file monitored, for which the ulimit was set by default to 256. Now the OSX implementation on par with the other major desktop platforms. Change-Id: I2d46cca811978621989fd35201138df88a37c0fb Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
* | Dynamic GL switch on WindowsLaszlo Agocs2014-02-142-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch introduces a new build configuration on Windows which can be requested by passing -opengl dynamic to configure. Platforms other than Windows (including WinRT) are not affected. The existing Angle and desktop configurations are not affected. These continue to function as before and Angle remains the default. In the future, when all modules have added support for the dynamic path, as described below, the default configuration could be changed to be the dynamic one. This would allow providing a single set of binaries in the official builds instead of the current two. When requesting dynamic GL, Angle is built but QT_OPENGL_ES[_2] are never defined. Instead, the code path that has traditionally been desktop GL only becomes the dynamic path that has to do runtime checks. Qt modules and applications are not linked to opengl32.dll or libegl/glesv2.dll in this case. Instead, QtGui exports all necessary egl/egl/gl functions which will, under the hood, forward all requests to a dynamically loaded EGL/WGL/GL implementation. Porting guide (better said, changes needed to prepare your code to work with dynamic GL builds when the fallback to Angle is utilized): 1. In !QT_OPENGL_ES[_2] code branches use QOpenGLFunctions::isES() to differentiate between desktop and ES where needed. Keep in mind that it is the desktop GL header (plus qopenglext.h) that is included, not the GLES one. QtGui's proxy will handle some differences, for example calling glClearDepth will route to glClearDepthf when needed. The built-in eglGetProcAddress is able to retrieve pointers for standard GLES2 functions too so code resolving OpenGL 2 functions will function in any case. 2. QT_CONFIG will contain "opengl" and "dynamicgl" in dynamic builds, but never "angle" or "opengles2". 3. The preprocessor define QT_OPENGL_DYNAMIC is also available in dynamic builds. The usage of this is strongly discouraged and should not be needed anywhere except for QtGui and the platform plugin. 4. Code in need of the library handle can use QOpenGLFunctions::platformGLHandle(). The decision on which library to load is currently based on a simple test that creates a dummy window/context and tries to resolve an OpenGL 2 function. If this fails, it goes for Angle. This seems to work well on Win7 PCs for example that do not have proper graphics drivers providing OpenGL installed but are D3D9 capable using the default drivers. Setting QT_OPENGL to desktop or angle skips the test and forces usage of the given GL. There are also two new application attributes that could be used for the same purpose. If Angle is requested but the libraries are not present, desktop is tried. If desktop is requested, or if angle is requested but nothing works, the EGL/WGL functions will still be callable but will return 0. This conveniently means that eglInitialize() and such will report a failure. Debug messages can be enabled by setting QT_OPENGLPROXY_DEBUG. This will tell which implementation is chosen. The textures example application is ported to OpenGL 2, the GL 1 code path is removed. [ChangeLog][QtGui] Qt builds on Windows can now be configured for dynamic loading of the OpenGL implementation. This can be requested by passing -opengl dynamic to configure. In this mode no modules will link to opengl32.dll or Angle's libegl/libglesv2. Instead, QtGui will dynamically choose between desktop and Angle during the first GL/EGL/WGL call. This allows deploying applications with a single set of Qt libraries with the ability of transparently falling back to Angle in case the opengl32.dll is not suitable, due to missing graphics drivers for example. Task-number: QTBUG-36483 Change-Id: I716fdebbf60b355b7d9ef57d1e069eef366b4ab9 Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com> Reviewed-by: Jørgen Lind <jorgen.lind@digia.com>
* | Let Q_DECLARE_LOGGING_CATEGORY and Q_LOGGING_CATEGORY return a const referenceKai Koehne2014-02-143-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | In general QLoggingCategory should be treated as a const object that's configured by the backend. The only legitimate place where user code should call setEnabled is in a CategoryFilter ... [ChangeLog][QtCore][Logging] Make Q_LOGGING_CATEGORY and Q_DECLARE_LOGGING_CATEGORY return a const object. Change-Id: I6140442ab48286e05cd3b55064a502bbe6dfb16a Reviewed-by: Konstantin Ritt <ritt.ks@gmail.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Add function to get the actual PID from QProcessChristian Strømme2014-02-142-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It was not possible to get the actual process ID (in a cross-platform manner) from QProcess, as the user would need to handle the returned typedef (Q_PID) differently on Unix and Windows. On Unix Q_PID is the actual process ID, but on Windows it's a pointer to a PROCESS_INFORMATION structure, which among other fields contains the process ID. Instead of returning a pointer on Windows, QProcess::processId() will return the actual process ID on both Windows and Unix. [ChangeLog][QtCore][QProcess] Added processId() to QProcess. This function will, unlike pid(), return the actual process identifier on both Window and Unix. Task-number: QTBUG-26136 Change-Id: I853ab721297e2dd9cda006666144179a9e25b73d Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | Remove "thread_local" support from the Intel CompilerThiago Macieira2014-02-141-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The docs said it supports the feature, but now that we've tried to use it, we can't. It might have been referring to the non-C++11 extension from GCC (__thread). qlogging.cpp(1253): error #303: explicit type is missing ("int" assumed) static thread_local bool msgHandlerGrabbed = false; ^ Change-Id: I9343cf61bd3b2eacac686e602cc0ffea2d4a7a22 Reviewed-by: Kai Koehne <kai.koehne@digia.com> Reviewed-by: Mehdi Fekari <mfekari@blackberry.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* | Centralize the handling of all the toXxx (integral) functionsThiago Macieira2014-02-145-242/+140
| | | | | | | | | | | | | | By way of templates. This makes the code a lot cleaner. Change-Id: Ie369561c7631b0d34d76a6852883716cc0aa89d4 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QLocalePrivate: merge removeGroupSeparators into numberToCLocaleThiago Macieira2014-02-143-84/+52
| | | | | | | | | | | | | | | | This version will parse the string only once and will not do any memmove. This is more efficient. Change-Id: I59026ad0fa61cc3f16146bdcd622fc54cbd8a321 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QLocalePrivate: move the stringToXxx to QLocaleDataThiago Macieira2014-02-146-86/+82
| | | | | | | | | | | | | | | | | | Along with some more helper functions. There are two more functions used in QIntValidator Change-Id: I469ef40426cbb73ab515454bd5ecb12d944f5c0a Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | QLocalePrivate: move the xxxToString functions to QLocaleDataThiago Macieira2014-02-147-189/+176
| | | | | | | | | | | | | | | | | | | | | | Those functions do not need any of extra QLocale settings in QLocalePrivate, so we can move them easily, along with their flags. It's also very convenient that we can now bypass completely QLocale when formatting numbers to strings. Change-Id: I8cae64e8e2056a6b2d716758e4be79f746644732 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge the pairs of stringTo{Double,LongLong,UnsLongLong}Thiago Macieira2014-02-143-70/+21
| | | | | | | | | | | | | | | | | | | | The difference between them was simply whether they operated on QString or QStringRef. So drop down to what's common between them: a pointer and a length (or two pointers, but numberToCLocale already operates on a pointer and a length). Change-Id: Ie7c8955ac13d6023761e6d3bafe7ab04bd6984e1 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Remove duplicated trimming of a stringThiago Macieira2014-02-141-49/+13
| | | | | | | | | | | | | | | | | | No need to do it in QLocalePrivate::xxxToDouble() because numberToCLocale() already does it for us. Centralized code = better code. Change-Id: Ifecf9119556d4465582212b5be773c18edd13563 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* | Merge "Merge remote-tracking branch 'origin/stable' into dev" into ↵Konstantin Ritt2014-02-138-21/+61
|\ \ | | | | | | | | | refs/staging/dev
| * | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-02-128-21/+61
| |\| | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
| | * support c'tor as second parameter in foreach macroJoerg Bornemann2014-02-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Passing a constructor as second argument to foreach didn't work when building with gcc. For MSVC this already worked as a different foreach implementation is used. Change-Id: Id98444c699b4cebc14ea62076c5f7cba33ffb824 Reviewed-by: hjk <hjk121@nokiamail.com> Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
| | * Doc: Adjust QDir::tempPath docu as recommended by Ossi.David Faure2014-02-111-1/+2
| | | | | | | | | | | | | | | Change-Id: I709d8ce8151f2bb480865067a3e80ed838b26e4a Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
| | * Make QUrl::isLocalFile fast by storing a flagThiago Macieira2014-02-101-9/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The XDG specification for file URIs requires us to use triple slashes in file:/// for URLs with absolute paths. I don't like special-casing any particular scheme, but we've done it for file for many years now. Since we need to test this situation in a couple of places, it's easier to just cache the result once, in setScheme (both functions). Change-Id: I078b45b5b6c861f4caee082b4730fd6f67684ae4 Reviewed-by: David Faure <david.faure@kdab.com>
| | * Doc: fix typo in QDebugStateSaver docuDavid Faure2014-02-101-1/+1
| | | | | | | | | | | | | | | Change-Id: I12e0a725141a570903004c63369c991d383ac82c Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
| | * QStandardPaths: fix empty path in XDG_DATA_DIRS being treated as '/'.David Faure2014-02-101-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The basedir xdg spec says: "All paths set in these environment variables must be absolute. If an implementation encounters a relative path in any of these variables it should consider the path invalid and ignore it." Therefore we ignore relative paths including the empty string. Change-Id: I8f779b78981018051b16de23b2514f2e62b7ab39 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * QDir::tempPath: clarify trailing-slash situation.David Faure2014-02-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | tst_QDir::tempPath already checks that there is no trailing slash. Except of course when the path is "/" or "C:/", but we can't do much about that unlikely corner case. Change-Id: If71d5de1aeebc6720348cecbf659b7fceb83fb0e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * QDir::tempPath: make fallback code more readable.David Faure2014-02-101-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | This is a no-op because QDir::cleanPath() already takes care of removing the trailing slash. Change-Id: Ic19d9a9dd7e377e04447c3ebc776b025f5f0c43a Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
| | * Don't deadlock when deleting slot objects in QMetaObject::activate()Thomas McGuire2014-02-081-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | The slot object was deleted after the mutex was relocked, which caused a deadlock in case the functor destructor locked the same mutex again. Change-Id: I5b4fb22fdb4483f91c89915872bfd548c31b0eea Reviewed-by: Olivier Goffart <ogoffart@woboq.com>
| | * QStandardPaths: remove trailing slash when reading from user-dirs.dirsDavid Faure2014-02-081-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | For consistency with all other sources of paths, which do not return a trailing slash, as tested by the unittest. This avoids double slashes in paths, after apps append something to the path. Change-Id: Iabcde11eee27df0b185780e2b655fbbb02ed63b5 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
| | * Small doc fix.Niels Weber2014-02-071-1/+1
| | | | | | | | | | | | | | | Change-Id: If700cce1b39342ca2b1027e2c10711ea45c3dd9c Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>
* | | new QByteArrayList classGlen Mabey2014-02-125-0/+438
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Initial submission of a new class QByteArrayList with the purpose of aggregating and then joining QByteArray instances. [ChangeLog][QtCore] Added new QByteArrayList class. Change-Id: I2a9dc71ff7aadb19ebc129a0d47ac8cd33895924 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* | | WinRT: move most of GUI event dispatcher logic into coreAndrew Knight2014-02-122-8/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The native event dispatcher is responsible for delivering callbacks to non-GUI handlers, such as network socket listeners. So, the non-GUI logic is moved into the core dispatcher so that the event loop works better for apps (and test cases) which use QCoreApplication. Change-Id: Ic5f7d939cf164198fd39aa5880e265ae560b39b4 Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>