diff --git a/widgets/icon.cpp b/widgets/icon.cpp index 539f322c2..e915715de 100644 --- a/widgets/icon.cpp +++ b/widgets/icon.cpp @@ -55,7 +55,6 @@ namespace Plasma Icon::Private::Private() : svg("widgets/iconbutton"), svgElements(0), - size(48*1.1, 48*1.1), iconSize(48, 48), state(Private::NoState), orientation(Qt::Vertical), @@ -63,7 +62,6 @@ Icon::Private::Private() calculateSizeRequested(true) // First time always true { svg.setContentType(Plasma::Svg::ImageSet); - svg.resize(size); //TODO: recheck when svg changes checkSvgElements(); @@ -339,13 +337,13 @@ void Icon::addAction(QAction *action) iconAction->setRect(QRectF(6, 6, 32, 32)); break; case Private::TopRight: - iconAction->setRect(QRectF(d->size.width() - 38, 6, 32, 32)); + iconAction->setRect(QRectF(size().width() - 38, 6, 32, 32)); break; case Private::BottomLeft: - iconAction->setRect(QRectF(6, d->size.height() - 38, 32, 32)); + iconAction->setRect(QRectF(6, size().height() - 38, 32, 32)); break; case Private::BottomRight: - iconAction->setRect(QRectF(d->size.width() - 38, d->size.height() - 38, 32, 32)); + iconAction->setRect(QRectF(size().width() - 38, size().height() - 38, 32, 32)); break; } } @@ -390,7 +388,7 @@ QSizeF Icon::Private::displaySizeHint(const QStyleOptionGraphicsItem *option) co void Icon::calculateSize() { - if (d->calculateSizeRequested = true) { + if (d->calculateSizeRequested) { // We do this to get size hint information before the icon has been drawn, as // we have no access to the style option before that time. So we create a dummy. QStyleOptionGraphicsItem option; @@ -415,19 +413,16 @@ void Icon::calculateSize(const QStyleOptionGraphicsItem *option) const QSizeF decorationSize = d->addMargin(d->iconSize, Private::IconMargin); QSizeF newSize; - if (d->orientation == Qt::Vertical) - { + if (d->orientation == Qt::Vertical) { newSize.rwidth() = qMax(decorationSize.width(), displaySize.width()); newSize.rheight() = decorationSize.height() + displaySize.height() + 1; - } - else - { + } else { newSize.rwidth() = decorationSize.width() + displaySize.width() + 1; newSize.rheight() = qMax(decorationSize.height(), displaySize.height()); } - d->size = d->addMargin(newSize, Private::ItemMargin); - d->svg.resize(d->size); + newSize = d->addMargin(newSize, Private::ItemMargin); + d->svg.resize(newSize); d->calculateSizeRequested = false; int count = 0; @@ -440,27 +435,23 @@ void Icon::calculateSize(const QStyleOptionGraphicsItem *option) //iconAction->setRect(QRectF(6, 6, 32, 32)); break; case Private::TopRight: - iconAction->setRect(QRectF(d->size.width() - 38, 6, 32, 32)); + iconAction->setRect(QRectF(newSize.width() - 38, 6, 32, 32)); break; case Private::BottomLeft: - iconAction->setRect(QRectF(6, d->size.height() - 38, 32, 32)); + iconAction->setRect(QRectF(6, newSize.height() - 38, 32, 32)); break; case Private::BottomRight: - iconAction->setRect(QRectF(d->size.width() - 38, d->size.height() - 38, 32, 32)); + iconAction->setRect(QRectF(newSize.width() - 38, newSize.height() - 38, 32, 32)); break; } ++count; } + resize(newSize); update(); } -QRectF Icon::boundingRect() const -{ - return QRectF(QPointF(0, 0), d->size); -} - void Icon::Private::drawBackground(QPainter *painter) { QString element; @@ -570,8 +561,9 @@ QRectF Icon::Private::labelRectangle(const QStyleOptionGraphicsItem *option, con { Q_UNUSED(string) - if (icon.isNull()) + if (icon.isNull()) { return option->rect; + } const QSizeF decoSize = addMargin(iconSize, Private::IconMargin); @@ -806,7 +798,7 @@ void Icon::paintWidget(QPainter *painter, const QStyleOptionGraphicsItem *option QRectF textBoundingRect; d->layoutTextItems(option, icon, &labelLayout, &infoLayout, &textBoundingRect); - d->svg.resize(d->size); + d->svg.resize(size()); d->drawBackground(painter); // draw icon @@ -1001,75 +993,16 @@ void Icon::mouseMoveEvent(QGraphicsSceneMouseEvent *event) Widget::mouseMoveEvent(event); } -QSizeF Icon::sizeHint() const -{ - return d->size; -} - -Qt::Orientations Icon::expandingDirections() const -{ - return 0; -} - void Icon::setAlignment(Qt::Alignment alignment) { d->alignment=alignment; } -/* -QSizeF Icon::sizeHint() const -{ - return d->size; -} - -QSizeF Icon::minimumSize() const -{ - return d->size; // probably should be more flexible on this =) -} - -QSizeF Icon::maximumSize() const -{ - return d->size; -} - Qt::Orientations Icon::expandingDirections() const { return Qt::Horizontal; } -bool Icon::hasHeightForWidth() const -{ - return true; -} - -qreal Icon::heightForWidth(qreal w) const -{ - return w; //FIXME: we shouldn't assume squareness but actually calculate based on text and what not -} - -bool Icon::hasWidthForHeight() const -{ - return true; -} - -qreal Icon::widthForHeight(qreal h) const -{ - return h; //FIXME: we shouldn't assume squareness but actually calculate based on text and what not -} - -QRectF Icon::geometry() const -{ - return boundingRect(); -} - -void Icon::setGeometry(const QRectF &r) -{ - // TODO: this is wrong, but we should probably never call setGeometry anyway! - setIconSize(r.size()); - setPos(r.x(),r.y()); -} -*/ - } // namespace Plasma #include "icon.moc" diff --git a/widgets/icon.h b/widgets/icon.h index 9009697eb..8f461abdb 100644 --- a/widgets/icon.h +++ b/widgets/icon.h @@ -153,28 +153,8 @@ public: */ void setAlignment(Qt::Alignment alignment); - // Layout stuff - no need to document -/* Qt::Orientations expandingDirections() const; - QSizeF minimumSize() const; - QSizeF maximumSize() const; - - bool hasHeightForWidth() const; - qreal heightForWidth(qreal w) const; - - bool hasWidthForHeight() const; - qreal widthForHeight(qreal h) const; - - QRectF geometry() const; - void setGeometry(const QRectF& r); - - QSizeF sizeHint() const; -*/ - Qt::Orientations expandingDirections() const; - QSizeF sizeHint() const; - QRectF boundingRect() const; - protected: void paintWidget(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0);