From 7f35d2e3e67b73fcdadd7d2bd8a067c3538bb8af Mon Sep 17 00:00:00 2001 From: "Aaron J. Seigo" Date: Tue, 5 Aug 2008 17:28:58 +0000 Subject: [PATCH] emit geometry on size/pos changes correctly; we now hae calendars with multiple clocks again svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=842639 --- extender.cpp | 18 ++++++++++++++++-- extender.h | 10 ++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/extender.cpp b/extender.cpp index dd8ad6db7..78f569671 100644 --- a/extender.cpp +++ b/extender.cpp @@ -130,6 +130,22 @@ void Extender::saveState() } } +QVariant Extender::itemChange(GraphicsItemChange change, const QVariant &value) +{ + if (change == QGraphicsItem::ItemPositionHasChanged) { + emit geometryChanged(); + } + + return QGraphicsWidget::itemChange(change, value); +} + + +void Extender::resizeEvent(QGraphicsSceneResizeEvent *event) +{ + QGraphicsWidget::resizeEvent(event); + emit geometryChanged(); +} + void Extender::itemAddedEvent(ExtenderItem *item, const QPointF &pos) { kDebug() << "Adding item to layout."; @@ -271,8 +287,6 @@ void ExtenderPrivate::adjustSizeHints() q->setMaximumSize(q->layout()->maximumSize()); q->updateGeometry(); - - emit q->geometryChanged(); } int ExtenderPrivate::insertIndexFromPos(const QPointF &pos) const diff --git a/extender.h b/extender.h index ad98ffdb4..27c0ad4eb 100644 --- a/extender.h +++ b/extender.h @@ -148,6 +148,16 @@ class PLASMA_EXPORT Extender : public QGraphicsWidget */ virtual void saveState(); + /** + * @reimplemented from QGraphicsWidget + */ + QVariant itemChange(GraphicsItemChange change, const QVariant &value); + + /** + * @reimplemented from QGraphicsWidget + */ + void resizeEvent(QGraphicsSceneResizeEvent *event); + Q_SIGNALS: /** * Fires when an extender item is added to this extender.