LayoutAnimator indirectly calls relayout() so calling startAnimation() in
relayout() is almost an infinite loop. Instead, only call startAnimation() when an item has actually been added or removed. svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=748736
This commit is contained in:
parent
ec76079031
commit
933932ddb4
@ -309,6 +309,7 @@ void BoxLayout::insertItem(int index, LayoutItem *item)
|
||||
}
|
||||
|
||||
updateGeometry();
|
||||
startAnimation();
|
||||
}
|
||||
|
||||
void BoxLayout::addItem(LayoutItem *item)
|
||||
@ -334,6 +335,7 @@ void BoxLayout::removeItem(LayoutItem *item)
|
||||
}
|
||||
|
||||
updateGeometry();
|
||||
startAnimation();
|
||||
}
|
||||
|
||||
int BoxLayout::indexOf(LayoutItem *l) const
|
||||
@ -357,6 +359,8 @@ LayoutItem *BoxLayout::takeAt(int i)
|
||||
}
|
||||
|
||||
return d->children.takeAt(i);
|
||||
// FIXME: This is never reached. Should it be called? Should
|
||||
// startAnimation() also be called?
|
||||
updateGeometry();
|
||||
}
|
||||
|
||||
@ -442,8 +446,6 @@ void BoxLayout::relayout()
|
||||
|
||||
pos = d->layoutItem(margined, d->children[i], pos , sizes[i]);
|
||||
}
|
||||
|
||||
startAnimation();
|
||||
}
|
||||
|
||||
|
||||
|
@ -61,13 +61,15 @@ void FlowLayout::addItem(LayoutItem* item)
|
||||
return;
|
||||
}
|
||||
|
||||
item->setManagingLayout(this);
|
||||
d->items << item;
|
||||
|
||||
if (animator()) {
|
||||
animator()->setCurrentState(item,LayoutAnimator::InsertedState);
|
||||
}
|
||||
|
||||
item->setManagingLayout(this);
|
||||
updateGeometry();
|
||||
startAnimation();
|
||||
}
|
||||
void FlowLayout::removeItem(LayoutItem* item)
|
||||
{
|
||||
@ -81,6 +83,9 @@ void FlowLayout::removeItem(LayoutItem* item)
|
||||
if (animator()) {
|
||||
animator()->setCurrentState(item,LayoutAnimator::RemovedState);
|
||||
}
|
||||
|
||||
updateGeometry();
|
||||
startAnimation();
|
||||
}
|
||||
int FlowLayout::indexOf(LayoutItem* item) const
|
||||
{
|
||||
@ -119,6 +124,7 @@ LayoutItem* FlowLayout::takeAt(int i)
|
||||
}
|
||||
|
||||
return d->items.takeAt(i);
|
||||
// FIXME: Should updateGeometry() and startAnimation() be called?
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -215,8 +221,6 @@ void FlowLayout::relayout()
|
||||
else
|
||||
item->setGeometry( newGeometry );
|
||||
}
|
||||
|
||||
startAnimation();
|
||||
}
|
||||
|
||||
Qt::Orientations FlowLayout::expandingDirections() const
|
||||
|
Loading…
Reference in New Issue
Block a user