Go to file
João Abecasis 7bbe79fe5f Drop file-engine abstraction from public API
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>
2012-02-22 00:07:31 +01:00
bin Ensure the directory exists to receive a deprecated header. 2012-02-20 13:25:46 +01:00
config.tests Clean up default arch setting on Mac OS X 2012-02-17 11:44:29 +01:00
dist Drop file-engine abstraction from public API 2012-02-22 00:07:31 +01:00
doc/src Remove QAccessibleInterface::navigate() 2012-02-20 11:46:16 +01:00
examples Test for QT_NO_SSL instead of QT_NO_OPENSSL 2012-02-21 15:28:40 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Give the compile flags an EXECUTABLE_ prefix. 2012-02-21 22:31:00 +01:00
qmake Drop file-engine abstraction from public API 2012-02-22 00:07:31 +01:00
src Drop file-engine abstraction from public API 2012-02-22 00:07:31 +01:00
tests Drop file-engine abstraction from public API 2012-02-22 00:07:31 +01:00
tools don't attempt to build host tools which are gone from qtbase 2012-02-20 19:51:41 +01:00
util optimize QString::toLower()/toUpper() for special cases, step 2 2012-02-21 22:31:00 +01:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Import QMimeType / QMimeDatabase into QtCore. 2012-02-18 22:19:43 +01:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Correct pkg-config usage to respect sysroot 2012-02-22 00:07:31 +01:00
configure.bat bootstrap configure.exe on windows 2012-02-16 01:56:21 +01:00
header.BSD Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.FDL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
header.LGPL-ONLY Remove "All rights reserved" line from license headers. 2012-01-30 03:54:59 +01:00
INSTALL Remove Symbian specific code from qtbase. 2012-01-31 07:08:31 +01:00
LGPL_EXCEPTION.txt Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.FDL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.LGPL Update contact information in license headers. 2012-01-23 04:04:33 +01:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro Add configure, sync.profile, and header.* to OTHER_FILES in qtbase.pro 2012-02-08 07:40:03 +01:00
sync.profile Add qprocessordetection.h 2012-02-08 12:33:11 +01:00