// Small problem with this approach: if the copied object goes out of scope,
// all of the objects we copied in here will be deleted. D'oh!
- for(uint i=0; i<from.objects.size(); i++)
+ // For this COPY constructor to be meaningful, we have to actually COPY the
+ // objects in this Container, not just MOVE a copy of the POINTER! D-:
+ std::vector<Object *>::const_iterator i;
+
+// for(uint i=0; i<from.objects.size(); i++)
+ for(i=from.objects.begin(); i!=from.objects.end(); i++)
{
- Object * object = from.objects[i];
+// Object * object = from.objects[i];
+ Object * object = (*i)->Copy();
- // Need to copy the object here...
+ // Need to actually COPY the object here, not copy the pointer only!!
+ // (which we do now, above :-P)
objects.push_back(object);
}
{
QRectF boundary;
+//int a=1;
for(std::vector<Object *>::iterator i=objects.begin(); i!=objects.end(); i++)
{
+//printf("Containter::Draw item #%i [%X]...\n", a++, *i);
(*i)->Draw(painter);
boundary = boundary.united((*i)->Extents());
}