From: Marcus Eggenberger Date: Mon, 3 Nov 2008 14:56:42 +0000 (+0100) Subject: Fixing BR #308 - make column handle fade smoother X-Git-Tag: 0.3.1~82 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=ef6faa994fca6bf7332c7a3761b2e68a133de6dc Fixing BR #308 - make column handle fade smoother --- diff --git a/src/qtui/chatscene.cpp b/src/qtui/chatscene.cpp index 1194e82f..0a53dfee 100644 --- a/src/qtui/chatscene.cpp +++ b/src/qtui/chatscene.cpp @@ -582,6 +582,14 @@ void ChatScene::updateSceneRect(const QRectF &rect) { update(); } +bool ChatScene::event(QEvent *e) { + if(e->type() == QEvent::ApplicationPaletteChange) { + _firstColHandle->setColor(QApplication::palette().windowText().color()); + _secondColHandle->setColor(QApplication::palette().windowText().color()); + } + return QGraphicsScene::event(e); +} + void ChatScene::loadWebPreview(ChatItem *parentItem, const QString &url, const QRectF &urlRect) { #ifndef HAVE_WEBKIT Q_UNUSED(parentItem) diff --git a/src/qtui/chatscene.h b/src/qtui/chatscene.h index af453bff..ade3eb10 100644 --- a/src/qtui/chatscene.h +++ b/src/qtui/chatscene.h @@ -62,7 +62,9 @@ public: inline CutoffMode senderCutoffMode() const { return _cutoffMode; } inline void setSenderCutoffMode(CutoffMode mode) { _cutoffMode = mode; } -public slots: + virtual bool event(QEvent *e); + + public slots: void updateForViewport(qreal width, qreal height); void setWidth(qreal width); diff --git a/src/qtui/columnhandleitem.cpp b/src/qtui/columnhandleitem.cpp index bfe6ee5f..ae8c284d 100644 --- a/src/qtui/columnhandleitem.cpp +++ b/src/qtui/columnhandleitem.cpp @@ -37,8 +37,11 @@ ColumnHandleItem::ColumnHandleItem(qreal w, QGraphicsItem *parent) _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)); @@ -129,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); } diff --git a/src/qtui/columnhandleitem.h b/src/qtui/columnhandleitem.h index 9cc131b2..881b899b 100644 --- a/src/qtui/columnhandleitem.h +++ b/src/qtui/columnhandleitem.h @@ -45,6 +45,7 @@ public: public slots: void sceneRectChanged(const QRectF &); + inline void setColor(const QColor &color) { _rulerColor = color; } protected: void hoverEnterEvent(QGraphicsSceneHoverEvent *event); @@ -67,6 +68,7 @@ private: bool _moving; qreal _minXPos, _maxXPos; QTimeLine _timeLine; + QColor _rulerColor; }; #endif