From: Peter Penz Date: Fri, 16 Dec 2011 22:55:48 +0000 (+0100) Subject: Animation finetuning X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/fd60b81573f97fb2fd15ef359723c29912bedc94 Animation finetuning If dynamic item sizes are used don't animate the size of the widget in along the dynamic direction. This prevents unnecessary animations when increasing the window width in combination with e.g. the details view. --- diff --git a/src/kitemviews/kitemlistview.cpp b/src/kitemviews/kitemlistview.cpp index bda559d2c..20a5f4847 100644 --- a/src/kitemviews/kitemlistview.cpp +++ b/src/kitemviews/kitemlistview.cpp @@ -1385,7 +1385,17 @@ void KItemListView::doLayout(LayoutAnimationHint hint, int changedIndex, int cha widget->setVisible(true); if (widget->size() != itemBounds.size()) { + // Resize the widget for the item to the changed size. if (animate) { + // If a dynamic item size is used then no animation is done in the direction + // of the dynamic size. + if (m_itemSize.width() <= 0) { + // The width is dynamic, apply the new width without animation. + widget->resize(itemBounds.width(), widget->size().height()); + } else if (m_itemSize.height() <= 0) { + // The height is dynamic, apply the new height without animation. + widget->resize(widget->size().width(), itemBounds.height()); + } m_animation->start(widget, KItemListViewAnimation::ResizeAnimation, itemBounds.size()); } else { widget->resize(itemBounds.size());