[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdelibs/plasma/extenders
From:       Marco Martin <notmart () gmail ! com>
Date:       2010-12-10 20:00:18
Message-ID: 20101210200018.5B5FAAC8A6 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1205304 by mart:

be sure the layouts are notified all up the stack from extenderitem to group, to \
extender and its scrolling widget


 M  +2 -0      extender.cpp  
 M  +16 -5     extendergroup.cpp  


--- trunk/KDE/kdelibs/plasma/extenders/extender.cpp #1205303:1205304
@@ -535,6 +535,8 @@
     d->updateEmptyExtenderLabel();
     d->updateBorders();
 
+    d->layout->updateGeometry();
+    static_cast<QGraphicsLayoutItem *>(d->scrollWidget)->updateGeometry();
     updateGeometry();
 
     resize(d->mainWidget->effectiveSizeHint(Qt::PreferredSize));
--- trunk/KDE/kdelibs/plasma/extenders/extendergroup.cpp #1205303:1205304
@@ -216,6 +216,8 @@
 bool ExtenderGroup::eventFilter(QObject *watched, QEvent *event)
 {
     if (watched == d->childsWidget && event->type() == QEvent::GraphicsSceneResize) \
{ +        static_cast<QGraphicsLayoutItem \
*>(extender()->d->scrollWidget)->updateGeometry(); +        \
                static_cast<QGraphicsLayoutItem *>(extender())->updateGeometry();
         //resize to the max between the extender size hint and ours (that's because \
                the group can still not be in the extender layout)
         extender()->resize(extender()->effectiveSizeHint(Qt::PreferredSize).expandedTo(effectiveSizeHint(Qt::PreferredSize)).width(), \
extender()->size().height());  }
@@ -321,14 +323,19 @@
         layout->insertItem(insertIndexFromPos(pos), item);
         layout->activate();
 
-        childsWidget->resize(childsWidget->size().width(),
-                             \
                childsWidget->effectiveSizeHint(Qt::PreferredSize).height());
-
         if (!q->isVisible() && !q->items().isEmpty()) {
             q->extender()->itemAddedEvent(q);
             q->show();
         }
         childsWidget->setVisible(!q->isGroupCollapsed());
+
+        if (!q->isGroupCollapsed()) {
+            layout->updateGeometry();
+            static_cast<QGraphicsLayoutItem *>(q)->updateGeometry();
+            static_cast<QGraphicsLayoutItem *>(childsWidget)->updateGeometry();
+            static_cast<QGraphicsLayoutItem \
*>(q->extender()->d->scrollWidget)->updateGeometry(); +        }
+
         q->extender()->resize(q->extender()->effectiveSizeHint(Qt::PreferredSize));
     }
 }
@@ -340,10 +347,14 @@
             q->extender()->itemRemovedEvent(q);
             q->hide();
         }
-        childsWidget->resize(childsWidget->size().width(),
-                             \
childsWidget->effectiveSizeHint(Qt::PreferredSize).height());  \
                layout->removeItem(item);
         item->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+
+        layout->updateGeometry();
+        static_cast<QGraphicsLayoutItem *>(q)->updateGeometry();
+        static_cast<QGraphicsLayoutItem *>(childsWidget)->updateGeometry();
+        static_cast<QGraphicsLayoutItem \
*>(q->extender()->d->scrollWidget)->updateGeometry(); +
         q->extender()->resize(q->extender()->effectiveSizeHint(Qt::PreferredSize));
     }
 }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic