From daee98b062ad623e136bab2ca869879d008e577a Mon Sep 17 00:00:00 2001 From: Rob Scheepmaker Date: Fri, 9 Jan 2009 20:41:24 +0000 Subject: [PATCH] Move the QGL resize hacks from extender to extenderapplet. The only applet atm for which this hack is necesarry is actually extenderapplet, in the future we will have better layouts, and it won't be necesarry at all, and for now it avoids breaking panel layouts when removing the last extenderitem from an extenderapplet. svn path=/branches/KDE/4.2/kdelibs/; revision=908498 --- extender.cpp | 11 ----------- private/extenderapplet.cpp | 19 +++++++++++++++++++ private/extenderapplet_p.h | 1 + 3 files changed, 20 insertions(+), 11 deletions(-) diff --git a/extender.cpp b/extender.cpp index d2dd64662..6dda436e7 100644 --- a/extender.cpp +++ b/extender.cpp @@ -475,17 +475,6 @@ void ExtenderPrivate::adjustSizeHints() q->setMinimumSize(layout->preferredSize()); } - if (applet->layout()) { - applet->layout()->updateGeometry(); - - qreal left, top, right, bottom; - applet->getContentsMargins(&left, &top, &right, &bottom); - QSizeF margins(left + right, top + bottom); - - applet->setMinimumSize(applet->layout()->minimumSize() + margins); - applet->adjustSize(); - } - q->adjustSize(); emit q->geometryChanged(); diff --git a/private/extenderapplet.cpp b/private/extenderapplet.cpp index d95589e74..be5a451aa 100644 --- a/private/extenderapplet.cpp +++ b/private/extenderapplet.cpp @@ -52,6 +52,8 @@ void ExtenderApplet::init() connect(extender(), SIGNAL(itemDetached(Plasma::ExtenderItem*)), this, SLOT(itemDetached(Plasma::ExtenderItem*))); + connect(extender(), SIGNAL(geometryChanged()), + this, SLOT(extenderGeometryChanged())); } void ExtenderApplet::itemDetached(Plasma::ExtenderItem *) @@ -61,6 +63,23 @@ void ExtenderApplet::itemDetached(Plasma::ExtenderItem *) } } +void ExtenderApplet::extenderGeometryChanged() +{ + if (formFactor() != Plasma::Horizontal && + formFactor() != Plasma::Vertical) { + + qreal left, top, right, bottom; + getContentsMargins(&left, &top, &right, &bottom); + QSizeF margins(left + right, top + bottom); + + setMinimumSize(extender()->minimumSize() + margins); + setMaximumSize(extender()->maximumSize() + margins); + setPreferredSize(extender()->preferredSize() + margins); + + adjustSize(); + } +} + } // namespace Plasma #include "extenderapplet_p.moc" diff --git a/private/extenderapplet_p.h b/private/extenderapplet_p.h index 18d43aaab..fb3274b06 100644 --- a/private/extenderapplet_p.h +++ b/private/extenderapplet_p.h @@ -41,6 +41,7 @@ class ExtenderApplet : public Plasma::PopupApplet public Q_SLOTS: void itemDetached(Plasma::ExtenderItem *); + void extenderGeometryChanged(); }; } // namespace Plasma