subsurface/qt-ui/profile/divetextitem.cpp
Tomaz Canabrava ca07f45561 Added a new Namespace to deal with Animations and related functions.
Since the animation methods are fairly the same for any QGraphicsItem,
I created a new namespace named 'Animations' that should handle all
of the specific Animation Functions there, and the programmer has to
call those functions from the objects. Good thing is that this reduces
boilerplate code.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16 10:12:29 +07:00

48 lines
No EOL
1.4 KiB
C++

#include "divetextitem.h"
#include "animationfunctions.h"
#include <QPropertyAnimation>
DiveTextItem::DiveTextItem(QGraphicsItem* parent): QGraphicsSimpleTextItem(parent)
{
setFlag(ItemIgnoresTransformations);
}
void DiveTextItem::setAlignment(int alignFlags)
{
internalAlignFlags = alignFlags;
update();
}
void DiveTextItem::paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget)
{
/* This block of code corrects paints the Text on the
* alignment choosed, but it created artifacts on the screen,
* so I'm leaving this disabled for the time being.
*/
// QRectF rect = boundingRect();
// if (internalAlignFlags & Qt::AlignTop)
// painter->translate(0, -rect.height());
// // else if (internalAlignFlags & Qt::AlignBottom)
// // painter->translate(0, rect.height()); this is the default, uneeded.
// else if (internalAlignFlags & Qt::AlignVCenter)
// painter->translate(0, -rect.height() / 2);
//
// // if (internalAlignFlags & Qt::AlignLeft )
// // painter->translate(); // This is the default, uneeded.
// if(internalAlignFlags & Qt::AlignHCenter)
// painter->translate(-rect.width()/2, 0);
// else if(internalAlignFlags & Qt::AlignRight)
// painter->translate(-rect.width(), 0);
QGraphicsSimpleTextItem::paint(painter, option, widget);
}
void DiveTextItem::animatedHide()
{
Animations::hide(this);
}
void DiveTextItem::animateMoveTo(qreal x, qreal y)
{
Animations::moveTo(this, x, y);
}