summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/qsettings_winrt.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Apple OS: Handle QSetting strings with embedded zero-bytesTor Arne Vestbø2016-10-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Saving strings with embedded zero-bytes (\0) as CFStrings would sometimes fail, and only write the part of the string leading up to the first zero-byte, instead of all the way to the final zero-terminator. This bug was revealed by the code-path that falls back to storing e.g. QTime as strings, via the helper method QSettingsPrivate::variantToString(). We now use the same approach as on platforms such as Windows and WinRT, where the string produced by variantToString() is checked for null-bytes, and if so, stored using a binary representation instead of as a string. For our case that means we fall back to CFData when detecting the null-byte. To separate strings from regular byte arrays, new logic has been added to variantToString() that wraps the null-byte strings in @String(). That way we can implement a fast-path when converting back from CFData, that doesn't go via the slow and lossy conversion via UTF8, and the resulting QVariant will be of type QVariant::ByteArray. The reason for using UTF-8 as the binary representation of the string is that in the case of storing a QByteArray("@foo") we need to still be able to convert it back to the same byte array, which doesn't work if the on-disk format is UTF-16. Task-number: QTBUG-56124 Change-Id: Iab2f71cf96cf3225de48dc5e71870d74b6dde1e8 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Merge remote-tracking branch 'origin/5.6' into 5.7Edward Welbourne2016-07-041-1/+1
|\ | | | | | | Change-Id: Ibd81cd1df4a0650d93fcb556a57be90be2e1f569
| * winrt: fix conditionalMaurice Kalinowski2016-06-301-1/+1
| | | | | | | | | | | | | | | | Seems the previous check was a leftover from debugging. Tests still pass and loop checks properly now. Change-Id: Ic12cd49881f6d146687e257794b3028f6c8e874c Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
* | Updated license headersJani Heikkinen2016-01-151-14/+20
| | | | | | | | | | | | | | | | | | | | | | From Qt 5.7 -> LGPL v2.1 isn't an option anymore, see http://blog.qt.io/blog/2016/01/13/new-agreement-with-the-kde-free-qt-foundation/ Updated license headers to use new LGPL header instead of LGPL21 one (in those files which will be under LGPL v3) Change-Id: I046ec3e47b1876cd7b4b0353a576b352e3a946d9 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* | QtCore: eradicate all Q_FOREACH loops [io]Marc Mutz2016-01-041-3/+3
|/ | | | | | | | Saves more than 1KiB in text size on optimized GCC 4.9 Linux AMD64 builds. Change-Id: I1a974e903bc8352af800fa26edae0194c1e51705 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Fixed license headersJani Heikkinen2015-02-171-1/+1
| | | | | Change-Id: Ibebe1318d1c2de97601aa07269705c87737083ee Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Pass params of shareable type by const-ref rather than by valueKonstantin Ritt2015-02-131-2/+2
| | | | | | | | ...where passing them by value was not intentional. Change-Id: Ifd5036d57b41fddeeacfbd3f5890881605b80647 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Update copyright headersJani Heikkinen2015-02-111-22/+14
| | | | | | | | | | | | | | | | | | Qt copyrights are now in The Qt Company, so we could update the source code headers accordingly. In the same go we should also fix the links to point to qt.io. Outdated header.LGPL removed (use header.LGPL21 instead) Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing combination. New header.LGPL-COMM taken in the use file which were using old header.LGPL3 (src/plugins/platforms/android/extract.cpp) Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license combination Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
* WinRT: Do not forget the path specificationMaurice Kalinowski2014-08-191-1/+1
| | | | | | | | The path value can be used to access any container or subcontainer in the settings, even if it is not created by Qt. Change-Id: I431d8a8b129dafb4ec85227421dc37ec76c18ecf Reviewed-by: Andrew Knight <andrew.knight@digia.com>
* Implement native settings format for WinRTMaurice Kalinowski2014-08-131-0/+695
WinRT stores settings inside the app bundle, not in the registry. Some tests are not fully functional due to errors in the file implementation (See QTBUG-40588). QSettings::SystemScope translates to a roaming container on WinRT, meaning that settings stored inside there should be uploaded and shared among devices. However, this is untested so far. The tests have been updated for those platforms which do not store the order of keys. This has been done on some locations only so far, but needed to be done on more places for WinRT. Task-number: QTBUG-33498 Change-Id: Ifd0194387b09c220d31812b4b6fd0ce9a7d84d24 Reviewed-by: Andrew Knight <andrew.knight@digia.com>