Go to file
João Abecasis 9c04f721a6 QArrayDataOps::insert
Inserting elements anywhere in the array requires moving the elements
that follow out of the way and writing in the new ones. Trivial for PODs
and almost as much for movable types.

For "complex" types, we start by extending the array with placement new
and copy constructing elements. Then, copy assignment resets the
elements that were previously part of the array.

QPodArrayOps uses non-throwing operations. QMovableArrayOps provides
full rollback in the face of exceptions (strong guarantee).
QGenericArrayOps enforces that no data is leaked (all destructors
called) and invariants are maintained on exceptions -- the basic
guarantee.

With 3 different implementations, 2 of which are non-trivial, this
operation is a good showcase for QArrayOpsSelector and the different
implementations. As such, it warrants its own commit.

Change-Id: I21d9b4cb8e810db82623bcd1d78f583ebf3b6cb7
Reviewed-by: Bradley T. Hughes <bradley.hughes@nokia.com>
2011-12-14 15:55:47 +01:00
bin fixqt4headers: Support renaming from QtDeclarative to QtQuick 2011-12-07 09:33:47 +01:00
config.tests Added '-' parameter to fix strings command using gcc-llvm on Mac OS 10.6 w/ Xcode 4.2. 2011-11-08 01:13:40 +01:00
dist Extend touch events. 2011-12-09 14:15:37 +01:00
doc/src Move snippets from qtdoc. 2011-12-06 22:29:01 +01:00
examples Added multi-screen support to hellowindow example. 2011-12-06 20:14:10 +01:00
lib Initial import from the monolithic Qt. 2011-04-27 12:05:43 +02:00
mkspecs Set QMAKE_*_VERSION_OVERRIDE for all modules. 2011-12-07 12:55:28 +01:00
qmake qmake: Add object_parallel_to_source config option 2011-12-07 12:55:28 +01:00
src QArrayDataOps::insert 2011-12-14 15:55:47 +01:00
tests QArrayDataOps::insert 2011-12-14 15:55:47 +01:00
tools configure.exe: Build tests by default. 2011-11-29 12:27:16 +01:00
util Accessibility: Add Text::DebugDescription 2011-12-07 11:15:28 +01:00
.gitattributes Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
.gitignore Add V8 snapshot support 2011-11-22 13:10:56 +01:00
.gitmodules Add QtV8 library to QtBase 2011-08-29 10:16:01 +02:00
.tag Added .tag file with Git revision. 2011-05-03 16:23:49 +02:00
configure document the -force-asserts switch 2011-12-08 15:59:00 +01:00
configure.exe Rebuild configure.exe. 2011-12-01 19:18:34 +01: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 Ensure qmodule.pri is installed. 2011-11-23 00:12:03 +01:00
sync.profile Fix source incompatibility for QVariant{Map, Hash, List} 2011-11-14 18:41:17 +01:00