https://github.com/ialhashim/topo-blend
Revision 39b13612ebd645a65eda854771b517371f2f858a authored by ennetws on 13 March 2015, 18:17:18 UTC, committed by ennetws on 13 March 2015, 18:17:18 UTC
1 parent c702819
Tip revision: 39b13612ebd645a65eda854771b517371f2f858a authored by ennetws on 13 March 2015, 18:17:18 UTC
Create README.md
Create README.md
Tip revision: 39b1361
TimelineSlider.cpp
#include "TimelineSlider.h"
#include <QGraphicsScene>
#include <QGraphicsView>
#include <QPainter>
TimelineSlider::TimelineSlider()
{
icon = QImage(":/images/tick.png");
setFlags(ItemIsMovable | ItemSendsGeometryChanges);
isEnabled = false;
}
QRectF TimelineSlider::boundingRect() const
{
return QRectF(icon.rect());
}
void TimelineSlider::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
Q_UNUSED(widget);
Q_UNUSED(option);
painter->drawImage(0,0,icon);
}
QVariant TimelineSlider::itemChange( GraphicsItemChange change, const QVariant & value )
{
if (scene() && change == ItemPositionChange)
{
QPointF newPos = value.toPointF();
if(!isEnabled)
{
newPos.setX(this->x());
newPos.setY(myY);
}
newPos.setX(qMax( -0.5 * icon.width(), newPos.x()));
newPos.setY(myY);
return newPos;
}
if(isEnabled) emit ( timeChanged(currentTime()) );
return QGraphicsItem::itemChange(change, value);
}
void TimelineSlider::forceY( int newY )
{
myY = newY;
setPos(pos().x(), pos().y());
}
void TimelineSlider::reset()
{
setX(-0.5 * icon.width());
setY(0);
}
int TimelineSlider::currentTime()
{
return this->pos().x() + (0.5 * icon.width());
}
void TimelineSlider::enable()
{
isEnabled = true;
}
Computing file changes ...