diff -r 7c3ee77f4449 -r 53efc2562a7d branchobj.cpp --- a/branchobj.cpp Mon Nov 20 12:12:00 2006 +0000 +++ b/branchobj.cpp Mon Nov 20 12:12:02 2006 +0000 @@ -86,7 +86,6 @@ void BranchObj::init () { branch.setAutoDelete (false); - floatimage.setAutoDelete (true); xlink.setAutoDelete (false); if (parObj) @@ -118,10 +117,8 @@ // Those will get a deep copy, too addBranch(b); - FloatImageObj *fi; - for (fi=other->floatimage.first(); fi;fi=other->floatimage.next() ) - addFloatImage (fi); - + for (int i=0; ifloatimage.size(); ++i) + addFloatImage (other->floatimage.at(i)); scrolled=other->scrolled; tmpUnscrolled=other->tmpUnscrolled; setVisibility (other->visible); @@ -133,7 +130,9 @@ void BranchObj::clear() { - floatimage.clear(); + while (!floatimage.isEmpty()) + delete floatimage.takeFirst(); + while (!xlink.isEmpty()) deleteXLink (xlink.first() ); @@ -166,7 +165,7 @@ int BranchObj::getFloatImageNum(FloatImageObj *fio) { - return floatimage.findRef (fio); + return floatimage.indexOf(fio); } int BranchObj::countBranches() @@ -366,9 +365,8 @@ BranchObj* b; for (b=branch.first(); b;b=branch.next() ) b->setVisibility (v,toDepth); - FloatImageObj *fio; - for (fio=floatimage.first(); fio; fio=floatimage.next()) - fio->setVisibility (v); + for (int i=0; isetVisibility (v); XLinkObj* xlo; for (xlo=xlink.first(); xlo;xlo=xlink.next() ) xlo->setVisibility (); @@ -535,18 +533,16 @@ void BranchObj::positionContents() { - FloatImageObj *fio; - for (fio=floatimage.first(); fio; fio=floatimage.next() ) - fio->reposition(); + for (int i=0; ireposition(); OrnamentedObj::positionContents(); } void BranchObj::move (double x, double y) { OrnamentedObj::move (x,y); - FloatImageObj *fio; - for (fio=floatimage.first(); fio; fio=floatimage.next() ) - fio->reposition(); + for (int i=0; ireposition(); positionBBox(); } @@ -614,22 +610,21 @@ // Floatimages QPoint rp; - FloatImageObj *foi; topPad=botPad=leftPad=rightPad=0; if (includeImagesVer || includeImagesHor) { if (countFloatImages()>0) { - for (foi=floatimage.first(); foi; foi=floatimage.next() ) + for (int i=0; igetRelPos(); + rp=floatimage.at(i)->getRelPos(); if (includeImagesVer) { if (rp.y() < 0) topPad=max (topPad,-rp.y()-h); - if (rp.y()+foi->height() > 0) - botPad=max (botPad,rp.y()+foi->height()); + if (rp.y()+floatimage.at(i)->height() > 0) + botPad=max (botPad,rp.y()+floatimage.at(i)->height()); } if (includeImagesHor) { @@ -637,14 +632,14 @@ { if (-rp.x()-w > 0) leftPad=max (leftPad,-rp.x()-w); - if (rp.x()+foi->width() > 0) - rightPad=max (rightPad,rp.x()+foi->width()); + if (rp.x()+floatimage.at(i)->width() > 0) + rightPad=max (rightPad,rp.x()+floatimage.at(i)->width()); } else { if (rp.x()< 0) leftPad=max (leftPad,-rp.x()); - if (rp.x()+foi->width() > w) - rightPad=max (rightPad,rp.x()+foi->width()-w); + if (rp.x()+floatimage.at(i)->width() > w) + rightPad=max (rightPad,rp.x()+floatimage.at(i)->width()-w); } } } @@ -691,13 +686,12 @@ return this; // Search float images - FloatImageObj *foi; - for (foi=floatimage.first(); foi; foi=floatimage.next() ) - if (foi->inBox(p) && - (foi != excludeLMO) && - foi->getParObj()!= excludeLMO && - foi->isVisibleObj() - ) return foi; + for (int i=0; iinBox(p) && + (floatimage.at(i) != excludeLMO) && + floatimage.at(i)->getParObj()!= excludeLMO && + floatimage.at(i)->isVisibleObj() + ) return floatimage.at(i); return NULL; } @@ -803,9 +797,8 @@ s+=standardFlags->saveToDir(tmpdir,prefix,0); // Save FloatImages - FloatImageObj *fio; - for (fio=floatimage.first(); fio; fio=floatimage.next() ) - s+=fio->saveToDir (tmpdir,prefix); + for (int i=0; isaveToDir (tmpdir,prefix); // save note if (!note.isEmpty() ) @@ -971,7 +964,8 @@ void BranchObj::removeFloatImage (FloatImageObj *fio) { - floatimage.remove (fio); + int i=floatimage.indexOf (fio); + if (i!=-1) floatimage.takeAt (i); calcBBoxSize(); positionBBox(); requestReposition(); @@ -1379,10 +1373,9 @@ if (!b->isHidden()) r=addBBox(b->getTotalBBox(),r); - FloatImageObj* fio; - for (fio=floatimage.first();fio ;fio=floatimage.next() ) - if (!fio->isHidden()) - r=addBBox(fio->getTotalBBox(),r); + for (int i=0; iisHidden()) + r=addBBox(floatimage.at(i)->getTotalBBox(),r); return r; }