--- a/src/hbwidgets/itemviews/hbabstractviewitem.cpp Thu Sep 02 20:44:51 2010 +0300
+++ b/src/hbwidgets/itemviews/hbabstractviewitem.cpp Fri Sep 17 08:32:10 2010 +0300
@@ -57,7 +57,7 @@
const QString KDefaultLayoutOption = "default";
const int HbAbstractViewItemShared::ViewItemDeferredDeleteEvent = QEvent::registerEventType();
-const int HbViewItemPressDelay = 50;
+const int HbViewItemPressDelay = 100;
/*!
@alpha
@@ -466,7 +466,20 @@
paintChildItemsRecursively(subChild, painter,option);
}
option->exposedRect = child->boundingRect();
+
+ bool restorePainter = false;
+ if (child->flags() & QGraphicsItem::ItemClipsToShape) {
+ painter->save();
+ restorePainter = true;
+
+ painter->setClipRect(child->boundingRect());
+ }
child->paint(painter, option, 0);
+
+ if (restorePainter) {
+ painter->restore();
+ }
+
// Draw children in front
for (; i < count; ++i) {
QGraphicsItem *subChild = children.at(i);
@@ -1265,16 +1278,10 @@
{
Q_D(const HbAbstractViewItem);
if (d->mRepolishRequested) {
- if (d->repolishOutstanding) {
- // force the polish event in order to get the real size
- // updateGeometry() in ::updateChildItems() causes this function to be called
- // before QEvent::Polish of repolish() is handled from the event loop
- QCoreApplication::sendPostedEvents(const_cast<HbAbstractViewItem*>(this), QEvent::Polish);
- } else {
- // needed for pure widget or at startup phase, if first polish has not yet been done
- QEvent polishEvent(QEvent::Polish);
- QCoreApplication::sendEvent(const_cast<HbAbstractViewItem *>(this), &polishEvent);
- }
+ // force the polish event in order to get the real size
+ // updateGeometry() in ::updateChildItems() causes this function to be called
+ // before QEvent::Polish of repolish() is handled from the event loop.
+ QCoreApplication::sendPostedEvents(const_cast<HbAbstractViewItem*>(this), QEvent::Polish);
QCoreApplication::sendPostedEvents(const_cast<HbAbstractViewItem *>(this), QEvent::LayoutRequest);
}
return HbWidget::sizeHint(which, constraint);
@@ -1340,6 +1347,11 @@
Q_UNUSED(widget);
Q_D(HbAbstractViewItem);
+
+ if (!d->mFrontPixmapPainter) {
+ return;
+ }
+
if (!d->mInPaintItems) {
bool usePixmapCache = d->usePixmapCache();