Make the SvgPanel position-aware

svn path=/trunk/KDE/kdebase/workspace/libs/plasma/; revision=775234
This commit is contained in:
Andre Duffeck 2008-02-15 09:04:12 +00:00
parent 7516d7ea30
commit 322faacbe7
2 changed files with 26 additions and 2 deletions

View File

@ -33,7 +33,7 @@ class SvgPanel::Private
public:
Private()
: bFlags(DrawAllBorders|ContentAtOrigin),
cachedBackground(0)
cachedBackground(0), pos(0,0)
{
}
@ -46,6 +46,7 @@ public:
QPixmap *cachedBackground;
Svg *background;
QSizeF panelSize;
QPointF pos;
//measures
int topHeight;
@ -105,6 +106,17 @@ SvgPanel::BorderFlags SvgPanel::borderFlags() const
return d->bFlags;
}
void SvgPanel::setPos(const QPointF& pos)
{
d->pos = pos;
}
QPointF SvgPanel::pos() const
{
return d->pos;
}
void SvgPanel::resize(const QSizeF& size)
{
if (!size.isValid() || size.width() < 1 || size.height() < 1 || size == d->panelSize) {
@ -303,7 +315,7 @@ void SvgPanel::paint(QPainter* painter, const QRectF& rect)
}
//p2->drawPixmap(paintRect, *cachedBackground, paintRect.translated(-leftOffset,-topOffset));
painter->drawPixmap(rect, *d->cachedBackground, rect.translated(-leftOffset, -topOffset));
painter->drawPixmap(rect, *d->cachedBackground, rect.translated(-d->pos.x()-leftOffset,-d->pos.y()-topOffset));
}
void SvgPanel::updateSizes()

View File

@ -110,6 +110,18 @@ class PLASMA_EXPORT SvgPanel : public QObject
*/
qreal marginSize(const Plasma::MarginEdge edge) const;
/**
* Sets the position of the SvgPanel
* @arg pos where it should be positioned at
*/
void setPos( const QPointF& pos );
/**
* Returns the position of the SvgPanel
* @return the position
*/
QPointF pos() const;
/**
* Paints the loaded SVG with the elements that represents the border
* @arg painter the QPainter to use