X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fcolumnhandleitem.cpp;h=ae8c284d0e599c61cdf04401eb7c09af09c86eb2;hb=e7494078ad676d9fd14fab0396f51608a3ad46dc;hp=cf0e5d7ccb2c63c56012eb53eb27f5234a160199;hpb=70ededc490cb201e52b6d8ca4c2364d4a001b6c4;p=quassel.git diff --git a/src/qtui/columnhandleitem.cpp b/src/qtui/columnhandleitem.cpp index cf0e5d7c..ae8c284d 100644 --- a/src/qtui/columnhandleitem.cpp +++ b/src/qtui/columnhandleitem.cpp @@ -32,12 +32,16 @@ ColumnHandleItem::ColumnHandleItem(qreal w, QGraphicsItem *parent) : QGraphicsItem(parent), _width(w), + _boundingRect(-_width/2, 0, _width, 0), _hover(0), _moving(false), _minXPos(0), _maxXPos(0), - _timeLine(150) + _timeLine(350), + _rulerColor(QApplication::palette().windowText().color()) { + _timeLine.setUpdateInterval(20); + setAcceptsHoverEvents(true); setZValue(10); setCursor(QCursor(Qt::OpenHandCursor)); @@ -47,6 +51,9 @@ ColumnHandleItem::ColumnHandleItem(qreal w, QGraphicsItem *parent) void ColumnHandleItem::setXPos(qreal xpos) { setPos(xpos, 0); + QRectF sceneBRect = _boundingRect.translated(x(), 0); + _sceneLeft = sceneBRect.left(); + _sceneRight = sceneBRect.right(); } void ColumnHandleItem::setXLimits(qreal min, qreal max) { @@ -57,8 +64,8 @@ void ColumnHandleItem::setXLimits(qreal min, qreal max) { } void ColumnHandleItem::sceneRectChanged(const QRectF &rect) { - Q_UNUSED(rect) prepareGeometryChange(); + _boundingRect = QRectF(-_width/2, rect.y(), _width, rect.height()); } void ColumnHandleItem::mouseMoveEvent(QGraphicsSceneMouseEvent *event) { @@ -89,6 +96,9 @@ void ColumnHandleItem::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) { if(_moving) { _moving = false; setCursor(QCursor(Qt::OpenHandCursor)); + QRectF sceneBRect = _boundingRect.translated(x(), 0); + _sceneLeft = sceneBRect.left(); + _sceneRight = sceneBRect.right(); emit positionChanged(x()); event->accept(); } else { @@ -122,11 +132,11 @@ void ColumnHandleItem::paint(QPainter *painter, const QStyleOptionGraphicsItem * Q_UNUSED(widget); QLinearGradient gradient(boundingRect().topLeft(), boundingRect().topRight()); - QColor rulerColor = QApplication::palette().windowText().color(); - rulerColor.setAlphaF(_hover); + QColor _rulerColor = QApplication::palette().windowText().color(); + _rulerColor.setAlphaF(_hover); gradient.setColorAt(0, Qt::transparent); - gradient.setColorAt(0.4, rulerColor); - gradient.setColorAt(0.6, rulerColor); + gradient.setColorAt(0.4, _rulerColor); + gradient.setColorAt(0.6, _rulerColor); gradient.setColorAt(1, Qt::transparent); painter->fillRect(boundingRect(), gradient); }