Go to file
Lars Knoll ee85e9cc10 Support for compile time generated QStrings
use with QString string(QStringLiteral("foo")) or
QString string(qs("foo")).

qs(...) can in almost all places replace QLatin1String.
the Macro qs requires c++0x support or a compiler
where sizeof(wchar_t) == 2. In case these conditions
are not met, qs simply falls back to QLatin1String.

The commit also cleans up the QStringData structure
significantly, now using only 16 bytes for the header
on 32 bit systems.

The bitflags to store unicode directionality of the string and whether the string would require complex text processing to render are removed. They don't really belong here and the result can be calculated very fast in any case.

Added an internal QRefCount class the encapsulates the
reference counting semantics required where a negative refcount
is never changed. This is required to be able to put the string
data into a constant POD object.

Change-Id: I5b1395213deca48b2d582a036a0e8a8358d26d14
Reviewed-on: http://codereview.qt.nokia.com/1218
Reviewed-by: Olivier Goffart <olivier.goffart@nokia.com>
Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
2011-07-07 12:30:00 +02:00
bin Implemented module-local caching of module profiles. 2011-06-03 22:20:40 +02:00
config.profiles Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
config.tests Fixed opengldesktop configure test for mac. 2011-07-05 05:17:35 +02:00
dist Remove references to demos from docs. 2011-07-05 19:57:54 +02:00
doc/src Update the documentation after moving examples. 2011-07-05 21:19:08 +02:00
examples Remove references to QT_INSTALL_DEMOS & DemosPath. 2011-07-06 13:29:44 +02:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Build Qt with option -Zc:wchar_t under MSVC 2011-06-27 19:09:33 +02:00
qmake Remove references to QT_INSTALL_DEMOS & DemosPath. 2011-07-06 13:29:44 +02:00
src Support for compile time generated QStrings 2011-07-07 12:30:00 +02:00
tests Doc: Fixing typo 2011-07-07 10:44:07 +02:00
tools Always assume IPv6 support 2011-07-04 14:32:41 +02:00
util Make lexgen tests compile 2011-05-27 08:41:02 +02:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Add QT_xxx_VERSION macros for each library in qtbase 2011-05-10 15:15:15 +02:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure Always assume IPv6 support 2011-07-04 14:32:41 +02:00
configure.exe New configure.exe binary 2011-05-23 09:24:19 -05:00
header.BSD Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
header.FDL Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
header.LGPL Update licenseheader text in source files for qtbase Qt module 2011-05-24 12:34:08 +03:00
header.LGPL-ONLY Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
INSTALL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02: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 Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
LICENSE.PREVIEW.COMMERCIAL Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
qtbase.pro Remove all references to demos. 2011-06-23 14:03:31 +02:00
sync.profile Update sync.profile dependencies to new syntax 2011-07-07 12:30:00 +02:00