summaryrefslogtreecommitdiffstats
path: root/src/corelib/io/io.pri
Commit message (Collapse)AuthorAgeFilesLines
* Remove remaining support for BlackberryLouai Al-Khanji2015-11-211-4/+0
| | | | | | | | | The platform is no longer supported or actively maintained, and is in the way for improvements to the Unix event dispatcher and QProcess implementations. Change-Id: I3935488ca12e2139ea5f46068d7665a453e20526 Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
* Merge remote-tracking branch 'origin/5.6' into devLiang Qi2015-09-251-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/io/io.pri src/corelib/io/qdatastream.cpp src/corelib/io/qdatastream.h src/network/socket/qabstractsocket.cpp src/plugins/platforminputcontexts/ibus/qibusplatforminputcontext.cpp src/plugins/platforms/cocoa/qcocoaaccessibilityelement.h src/widgets/styles/qgtkstyle.cpp tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-cache/qmimedatabase-cache.pro tests/auto/corelib/mimetypes/qmimedatabase/qmimedatabase-xml/qmimedatabase-xml.pro tests/auto/dbus/qdbusconnection/qdbusconnection.pro tests/auto/dbus/qdbuspendingcall/tst_qdbuspendingcall.cpp tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp Change-Id: I347549a024eb5bfa986699e0a11f96cc55c797a7
| * Modernize and unify filesystem code on Apple platforms.Jake Petroules2015-09-221-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace deprecated File Manager APIs with modern equivalents. Change some Q_OS_MACX to Q_OS_DARWIN in file system related code. All of these apply to iOS as well as OS X, and were ifdef'ed for OS X only primarily due to legacy reasons - carryovers from Qt 4 or Carbon APIs which have since been refactored into using CoreFoundation. This also makes the code consistent with the documentation. Change-Id: I414e9bdfffff731413ddf16171b1317027d87caf Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* | Refactor standard paths for OS X and iOS.Jake Petroules2015-09-091-9/+2
|/ | | | | | | | | | | | | | | | | This consolidates the _mac and _ios implementations into one, since most details of OS X and iOS are shared. The code base no longer uses deprecated Carbon File Manager APIs, instead using Foundation APIs and semi-hardcoding the two cases where a modern API is not available (Preferences and Fonts). A few paths have changed in order to be more similar between OS X and iOS where appropriate. Lastly, OS X now supports QT_NO_STANDARDPATHS. Change-Id: I63fa96e3ab80f8c6cf8a24243f859977e8c46421 Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@theqtcompany.com>
* Fix build on FreeBSD: kinfo_getproc is in libutilThiago Macieira2015-07-151-0/+1
| | | | | | | | | | I can't find the function for NetBSD and OpenBSD. There's a good chance QtCore simply fails to compile. Change-Id: Ib056b47dde3341ef9a52ffff13efaff642bd7bb9 Link: http://www.freebsd.org/cgi/man.cgi?query=kinfo_getproc Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Use kqueue on NetBSD in qfilesystemwatcher.Niclas Rosenvik2015-05-081-1/+1
| | | | | | | | | | Enable kqueue on NetBSD in qfilesystemwatcher. NetBSD has kqueue. http://netbsd.gw.com/cgi-bin/man-cgi?kqueue Change-Id: I6305a37df079c35b9a9b1f70c75ec00e05d25b47 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
* Split out some inline qdebug formatting helpers to qdebug_p.h.Friedemann Kleint2015-04-011-0/+1
| | | | | | | | | | | | | | | | | | Extract helpers to be able to format classes without type names and use those for formatting QEvents to reduce clutter. For example: QWidgetWindow/"MainWindowClassWindow" QMouseEvent(QEvent::Type(MouseMove), buttons=QFlags<Qt::MouseButtons>(LeftButton), localPos=QPointF(50,116), screenPos=QPointF(948,652)) QWidget/"qt_scrollarea_viewport" QMouseEvent(QEvent::Type(MouseMove), buttons=QFlags<Qt::MouseButtons>(LeftButton), localPos=QPointF(45,32), screenPos=QPointF(948,652)) becomes QWidgetWindow/"MainWindowClassWindow" QMouseEvent(MouseMove, LeftButton, localPos=50,116, screenPos=948,652) QWidget/"qt_scrollarea_viewport" QMouseEvent(MouseMove, LeftButton, localPos=45,32, screenPos=948,652) Change-Id: Ie5441d922962a05caed6b7079a74ea8a2b8a64fb Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
* Use forkfd in QProcessThiago Macieira2015-01-231-0/+1
| | | | | | | | | | | | | | | | | | | | Replace the existing code in QProcess that dealt with signaling of child processes exiting with forkfd and spawnfd. The previous code was convoluted and hard to maintain, having shown its age in the last year. I've been running it for a year and a half and the new implementation is definitely an improvement. This change replaces support for the QNX Neutrino spawn() call with the POSIX version. We lose the ability to do setsid(), but we gain quite a few ioctls() that were done to fill in the file descriptor mapping structure. That's also the only OS for which we have the ability to thread-safely chdir() before the call to spawnfd(). Another advantage is that forkfd does not require a dedicated thread running to handle child processes exiting. Change-Id: I5eb76821dfdb6a8ed2989d7f53b3c31e515c3174 Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
* Add the compilation of forkfd to QtCoreThiago Macieira2015-01-231-0/+3
| | | | | | | | This also brings in the harness to forkfd that uses QBasicAtomic instead of the generic GCC atomics. Change-Id: Id5488bf192db0027bc684956ade0bf6c640c9512 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Haiku: Add implementation for QStandardPathsTobias Koenig2015-01-211-0/+5
| | | | | Change-Id: Ic64a5ab3a1ef711180b855ee99154177b7e25696 Reviewed-by: David Faure <david.faure@kdab.com>
* Implement Download folder path retrieval on OS XSamuel Gaist2014-11-241-3/+2
| | | | | | | | | | | | The current implementation returns the DocumentLocation folder. Since now only cocoa is supported, we can use NSFileManager to get the correct path. [ChangeLog][QtCore][OS X] Now QStandardPaths returns the correct path for the DownloadLocation. Change-Id: Ic0ea3ebf8585a1e34a7b43c734df78fd3949d4d4 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add the QStorageInfo classIvan Komissarov2014-08-131-7/+24
| | | | | | | | | | | | | | | | | | Allows to retrieve information about mounted volumes such as label, total/available size, filesystem type and so on. Possible use cases are: - allows to do checks about filesystem before performing actual operation (such as available/maximum volume size) - allows to retrive information about volume that can be shown in file dialogs - allows to retrieve volume for specific path and check if two or more paths belong to the same volume or not [ChangeLog][QtCore] Added QStorageInfo class to retrive information about mounted volumes and drives Change-Id: Ibf9c2e6b53ef39c5605894a4422acdbbca4030c4 Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* Implement native settings format for WinRTMaurice Kalinowski2014-08-131-1/+3
| | | | | | | | | | | | | | | | | | 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>
* Remove normalization of "default" categoryKai Koehne2014-07-301-1/+0
| | | | | | | | | | | | Commit d61e774307819 got rid of the special handling of the 'default' category in the qloggingregistry, so we don't need the private header file anymore, nor does it gain us anything to 'normalize' all default categories to one string. Change-Id: I027b4b82ff915428287432f39f76b4e719cf7874 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
* Fix compile for embedded Androidaavit2014-03-201-1/+1
| | | | | | | Cannot use JNI to query for standard paths Change-Id: I1596106fd4d5e532d3ac1cd6dbfce3fb9fe1db5a Reviewed-by: Christian Stromme <christian.stromme@digia.com>
* Mac: FSEvents-based QFileSystemWatcherEngine.Erik Verbruggen2014-02-141-0/+4
| | | | | | | | | | | 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>
* Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2014-01-201-0/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/corelib/global/qglobal.h src/corelib/tools/qstring.cpp src/gui/image/image.pri src/gui/image/qimage.cpp src/plugins/platforms/cocoa/qcocoawindow.h src/plugins/platforms/cocoa/qcocoawindow.mm src/plugins/platforms/eglfs/qeglfshooks_stub.cpp tests/auto/corelib/io/qstandardpaths/tst_qstandardpaths.cpp Change-Id: I3b9ba029c8f2263b011f204fdf68c3231c6d4ce5
| * Android: QStandardPaths implementationChristian Strømme2014-01-161-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Adds standard paths implementation for Android. [ChangeLog][QtCore][QStandardPaths] Added QStandardPaths implementation for Android. Task-number: QTBUG-34631 Change-Id: I38673204a521a990438470c4e165105a2b02b7ad Reviewed-by: BogDan Vatra <bogdan@kde.org> Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
* | Merge remote-tracking branch 'origin/stable' into devFrederik Gladhorn2013-11-261-0/+2
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For the conflicts in msvc_nmake.cpp the ifdefs are extended since we need to support windows phone in the target branch while it is not there in the current stable branch (as of Qt 5.2). Conflicts: configure qmake/generators/win32/msvc_nmake.cpp src/3rdparty/angle/src/libEGL/Surface.cpp src/angle/src/common/common.pri src/corelib/global/qglobal.h src/corelib/io/qstandardpaths.cpp src/plugins/platforms/qnx/qqnxintegration.cpp src/plugins/platforms/qnx/qqnxscreeneventhandler.h src/plugins/platforms/xcb/qglxintegration.h src/widgets/kernel/win.pri tests/auto/corelib/thread/qreadwritelock/tst_qreadwritelock.cpp tests/auto/corelib/tools/qdatetime/tst_qdatetime.cpp tests/auto/gui/text/qtextdocument/tst_qtextdocument.cpp tools/configure/configureapp.cpp Change-Id: I00b579eefebaf61d26ab9b00046d2b5bd5958812
| * iOS: Add standard paths implementation for iOSIan Dean2013-10-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | A standard paths implementation for iOS. The APIs used on iOS require that the source file be "Objective-C++" (with a .MM extension), as there are no APIs available in C++ for this. The implementation complies with the latest documentation on standard paths. Change-Id: I349d3c5d4ddb6fb1297a45dc9ae26b56ac528abb Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: David Faure <david.faure@kdab.com>
* | WinRT: Stub out QStandardPathsOliver Wolff2013-09-261-1/+3
| | | | | | | | | | | | | | | | It might be possible to obtain special directories like documents and music if the according rights are granted. Change-Id: I086c341236b831326acc74754d067867d0eda04b Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
* | WinRT: QSettings stubAndrew Knight2013-09-261-1/+1
|/ | | | | | | | | | | | | Enable the non-native QSettings path on WinRT. Native settings can probably be implemented using http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.applicationdata.localsettings.aspx at least for Desktop WinRT applications. Task-number: QTBUG-33498 Change-Id: I1a3aa506e1393b04b5759ee90732ab35de32b1fc Done-with: Oliver Wolff <oliver.wolff@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Add Mac type conversion functions to QtCoreMorten Johan Sørvig2013-09-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New API: static QString QString::fromCFString(CFStringRef string); CFStringRef QString::toCFString() const; static QString QString::fromNSString(const NSString *string); NSString *QString::toNSString() const; static QUrl QUrl::fromCFURL(CFURLRef url); CFURLRef QUrl::toCFURL() const; static QUrl QUrl::fromNSURL(const NSURL *url); NSURL * QUrl::toNSURL() const; Add Q_OS_MAC-protected function declarations to header files, add implementation to _mm files. CF and NS types are forward-declared in the header files to avoid including the CoreFoundation and Foundation headers. This prevents accidental use of native types in application code. Add helper macros for forward- declaration to qglobal.h Add cf_returns_retained/ns_returns_autoreleased attributes to toCFString() and toNSURL(). These attributes assists the clang static analyzer. Add Q_DECL_ helper macros to qcompilerdetection.h. Add test functions (in _mac.mm files) to the QString and QUrl tests. Split out the test class declarations into a separate headers files. Change-Id: I60fd5e93f042316196284c3db0595835fe8c4ad4 Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
* Import qlogger frameworkKai Koehne2013-09-201-2/+7
| | | | | | | | | | | | | | | | Merge most parts of the qlogger framework from git://gitorious.org/qtplayground/qlogger.git The categorized logging feature is a replacement for qDebug, qWarning and friends. With logging statements in an app/library, a developer can turn on the statements they care about and turn off the ones they don't. Most work for this was done by Wolfgang Beck and Lincoln Ramsay. Task-number: QTBUG-25694 Change-Id: Ib0cdfbbf3694f86ad9ec553b2ea36f09a477cded Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QT_NO_PROCESS for WinRTOliver Wolff2013-09-201-12/+15
| | | | | | | | | | | As Windows Runtime does not really support the use of spawning processes QT_NO_PROCESS is defined for winrt builds and the corresponding sources are excluded from build. Change-Id: I79263417c985b23678c55ac44a5591a9a69d3c13 Reviewed-by: Andrew Knight <andrew.knight@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Add QFileSelector APIAlan Alpert2013-09-161-2/+5
| | | | | | | | | | | | | For easy cross-platform and cross-device UIs, automatic asset swapping based on filename is being developed. This API provides the logic for the swapping, so that applications can use it themselves with the same logic as any automatic swapping done in application templates. Selector set is initially minimal, aiming for just platform selection and enabling a common selection mechanism for Qt platforms to use. Change-Id: I219517d740fa7385e923a9e09cb7e241378f857a Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* qfilesystemengine_mac.cpp is empty => purgeOswald Buddenhagen2013-03-141-1/+0
| | | | | Change-Id: I61c615343f45fe52adee36b6822322bda2b2ca4f Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
* Distinguish between 'mac' and 'macx' qmake scopesTor Arne Vestbø2013-03-051-4/+4
| | | | | | | | | | | | | | The former applies both on Mac OS X and iOS, but 'macx' is specific to Mac OS X. ios.conf and macx.conf now share most of their settings in the common mac.conf. We set the default QMAKE_MAC_SDK before loading mac.conf, so that any overrides in the device config will apply afterwards. This means configure's mkspec parsing will be able to read the QMAKE_MAC_SDK. Change-Id: I0c7e26a6a0103e19b23ef152aa9e4ab461cee632 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
* Introducing the Qt Android portPaul Olav Tvete2013-03-051-1/+1
| | | | | | | | | | | | | | | | | | | | | Based on the Necessitas project by Bogdan Vatra. Contributors to the Qt5 project: BogDan Vatra <bogdan@kde.org> Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> hjk <hjk121@nokiamail.com> Oswald Buddenhagen <oswald.buddenhagen@digia.com> Paul Olav Tvete <paul.tvete@digia.com> Robin Burchell <robin+qt@viroteck.net> Samuel Rødal <samuel.rodal@digia.com> Yoann Lopes <yoann.lopes@digia.com> The full history of the Qt5 port can be found in refs/old-heads/android, SHA-1 249ca9ca2c7d876b91b31df9434dde47f9065d0d Change-Id: Iff1a7b2dbb707c986f2639e65e39ed8f22430120 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Long live QLockFileDavid Faure2013-03-051-0/+5
| | | | | | | | | | | Locking between processes, implemented with open(O_EXCL) on Unix and CreateFile(CREATE_NEW) on Windows. Supports detecting stale lock files and deleting them. Advisory locking is used to prevent deletion of files that are still in use. Change-Id: Id00ee2a4e77a29483d869037c7047c59cb909339 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add class QSaveFile.David Faure2013-01-171-0/+2
| | | | | | | | | | This QIODevice uses a temporary file for writing, so that in case of write errors, the writing operation is canceled, without losing any existing file. It also avoids having a partially-written file visible by other processes, at the final destination. Change-Id: I9482df45751cb890b1b6f1382ec2eea3eb980627 Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Add class QDebugStateSaver for writing QDebug operators correctlyDavid Faure2013-01-141-0/+1
| | | | | | | | | Had to move QTextStreamPrivate to a private header, to be able to use its new internal Params struct from qdebug.cpp Change-Id: If28e25f27bbd04b1825a5eb3e2ef83ecad72e7b2 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* Move QTemporaryFileEngine to private headerDavid Faure2013-01-141-0/+1
| | | | | | | | | This is needed by QSaveFile. Move QTemporaryFilePrivate to that header too, to avoid any confusion. Change-Id: I8dce8a4fb853a9823c49ec565867432331e748cd Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
* QNX: Use inotify on QNX systems that support itThomas McGuire2012-10-301-1/+1
| | | | | | | Change-Id: Ia9bf8d3c202b17746036e203268ef6229aaa900d Reviewed-by: Kevin Krammer <kevin.krammer@kdab.com> Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com> Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove qstandardpaths_json.cppThiago Macieira2012-10-291-2/+0
| | | | | | | | | | This implementation is unused. It was part of a platform that will unfortunately not see the light of day. Remove it since no one is maintaining it. Change-Id: I9e675225a32f227739c688608f937df66a14e9a4 Reviewed-by: David Faure (KDE) <faure@kde.org> Reviewed-by: Lars Knoll <lars.knoll@digia.com>
* Change coreservices -> iosIan Dean2012-04-191-1/+1
| | | | | | | | Replace "contains(QT_CONFIG, coreservices)" with "!ios" in config files. Replace "QT_NO_CORESERVICES" with "Q_OS_IOS" in source files. Change-Id: Id3b02316b245a24ce550e0b47596d18a4a409e4f Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
* Merge remote-tracking branch 'origin/master' into api_changesLars Knoll2012-04-161-1/+7
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure src/corelib/io/qurl.cpp src/gui/kernel/qwindow.cpp src/tools/moc/generator.cpp src/widgets/kernel/qwidget_qpa.cpp src/widgets/styles/qstyle.h src/widgets/widgets/qtabbar.cpp tests/auto/corelib/codecs/utf8/tst_utf8.cpp Change-Id: Ia457228d6f684ec8184e13e8fcc9d25857b1751e
| * Modified project files to be iOS compatible.Qt4iOS2012-04-111-1/+5
| | | | | | | | | | | | | | | | Removed some MacOS source code files from iOS build. Use unix standard paths for now (iOS-specific implementation will come later). Change-Id: I8b2731b431b3a379a1ec4ec07d227e886209e3e9 Reviewed-by: Morten Johan Sørvig <morten.sorvig@nokia.com>
| * Blackberry OS implementation of QStandardPathsRafael Roquetto2012-04-101-0/+2
| | | | | | | | | | | | Change-Id: I31427b896ca691de7071da17af4863d16348df7b Reviewed-by: David Faure <faure@kde.org> Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
* | Long live the new QUrl implementation.Thiago Macieira2012-03-301-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also say hello to QUrl's constructor and QUrl::toString being allowed again. QUrl operates now on UTF-16 encoded data, where a Unicode character matches its UTF-8 percent-encoded form (as per RFC 3987). The data may exist in different levels of encoding, but it is always in encoded form (a percent is always "%25"). For that reason, the previously dangerous methods are no longer dangerous. The QUrl parser is much more lenient now. Instead of blindly following the grammar from RFC 3986, we try to use common-sense. Hopefully, this will also mean the code is faster. It also operates on QStrings and, for the common case, will not perform any memory allocations it doesn't keep (i.e., it allocates only for the data that is stored in QUrlPrivate). The Null/Empty behaviour that fragments and queries had in Qt4 are now extended to the scheme, username, password and host parts. This means QUrl can remember the difference between "http://@example.com" and "http://example.com". Missing from this commit: - more unit tests, for the new functionality - the implementation of the StrictMode parser - errorString() support - normalisation Change-Id: I6d340b19c1a11b98a48145152513ffec58fb3fe3 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Move some of qurl.cpp into other files for ease of maintenanceThiago Macieira2012-03-301-0/+3
| | | | | | | | | | | | | | | | The parsing code is now in qurlparser.cpp, whereas the IDNA related code is in qurlidna.cpp. Change-Id: I0b32c0bf0ee6c2f08dc3200c44af3c9d1504a3df Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Long live QUrlQueryThiago Macieira2012-03-301-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is meant to replace the QUrl functionality that handled key-value pairs in the query part of an URL. We therefore split the URL parsing code from the code dealing with the pairs: QUrl now only needs to deal with one encoded string, without knowing what it is. Since it doesn't know how to decode the query, QUrl also becomes limited in what it can decode. Following the letter of the RFC, queries will not encode "gen-delims" nor "sub-delims" nor the plus sign (+), thus allowing the most common delimiters options to remain unchanged. QUrlQuery has some undefined behaviour when it comes to empty query keys. It may drop them or keep them; it may merge them, etc. Change-Id: Ia61096fe5060b486196ffb8532e7494eff58fec1 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Add the code that recodes URLs.Thiago Macieira2012-03-301-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This one function is an all-in-one: - UTF-8 encoder - UTF-8 decoder - percent encoder - percent decoder The next step is add the ability to modify the behaviour, by telling the function what else it must encode or decode and what it should leave untouched. Change-Id: I997eccfd2f9ad8487305670b18d6c806f4cf6717 Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* | Add a function to parse IPv4 addresses in QtCoreThiago Macieira2012-03-281-0/+2
| | | | | | | | | | | | | | | | | | | | In the unit test, check against inet_aton on Linux with GLIBC only. Other platforms have this function too, but they sometimes have different behaviour, so don't try to test them equally. Change-Id: I1a77e405ac7e713d4cf1cee03ea5ce17fb47feef Reviewed-by: João Abecasis <joao.abecasis@nokia.com> Reviewed-by: Shane Kearns <shane.kearns@accenture.com>
* | Split up base class QFileDevice for open-file operations (read/write)David Faure2012-03-061-0/+3
|/ | | | | | | | | This will be used later on as a base class for QTemporaryFile and QSaveFile. Change-Id: Ic2e1d232f95dc29b8e2f75e24a881ab459d3f037 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* Drop file-engine abstraction from public APIJoão Abecasis2012-02-221-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This abstraction imposed serious performance penalties and is being dropped from the public API. In particular, by allowing file names to be arbitrarily hijacked by different file engines, and requiring engines to be instantiated in order to decide, it imposed unnecessary overhead on all file operations. Another flaw in the design with direct impact on performance is how engines have no way to provide (or retain) additional information obtained when querying the filesystem. In many places this has meant repeated operations on the file system, where useful information is immediately discarded to be queried again subsequently. For Qt 4.8 a major refactoring of the code base took place to allow bypassing the file-engine abstraction in select places, with considerable performance gains observed. In Qt 5 it is expected we'll be able to take this further, reaping even more benefits, but the abstraction has to go. [Dropping this now does not preclude that virtual file systems make an appearance in Qt at a later point in Qt 5's lifecycle. Hopefully with a new and improved abstraction.] Forward declarations for QFileExtension(Result) were dropped, as the classes were never used or defined. Tests using "internalized" classes will only fully run on developer builds. QFSFileEngine was removed altogether from exception safety test, as it isn't its intent to test internal API. Change-Id: Ie910e6c2628be202ea9e05366b091d6d529b246b Reviewed-by: Thiago Macieira <thiago.macieira@intel.com> Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
* QStandardPaths implementation configured using JSONJeremy Katz2012-02-171-0/+2
| | | | | | | | | | | | | | | | | | 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>
* Fix QProcess compile for Windows CE.Andreas Holzammer2012-02-081-4/+4
| | | | | | | | There are no Pipes under Windows CE, so take out the pipereader. Change-Id: I3e6afd403ed36e86a8694674f6c4798f1226ff74 Reviewed-by: Joerg Bornemann <joerg.bornemann@nokia.com>
* QWinOverlappedIoNotifier introducedJoerg Bornemann2012-01-241-1/+5
| | | | | | | | | | | For asynchronous (overlapped) I/O notification on Windows one can now use the convenience class QWinOverlappedIoNotifier. It's using one global I/O completion port and a watching thread to get notified when a read or write operation completes. Change-Id: If6f904b364be0405580c7e50355529ab136ae3cb Reviewed-by: Friedemann Kleint <Friedemann.Kleint@nokia.com> Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
* split qprocess_win.cpp into Windows and WinCE partsJoerg Bornemann2012-01-061-1/+6
| | | | | Change-Id: I7f2cf2c42dd24ca162238e6dc6408ac39dfcd790 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>