Fixing BR #308 - make column handle fade smoother
authorMarcus Eggenberger <egs@quassel-irc.org>
Mon, 3 Nov 2008 14:56:42 +0000 (15:56 +0100)
committerMarcus Eggenberger <egs@quassel-irc.org>
Mon, 3 Nov 2008 14:56:42 +0000 (15:56 +0100)
src/qtui/chatscene.cpp
src/qtui/chatscene.h
src/qtui/columnhandleitem.cpp
src/qtui/columnhandleitem.h

index 1194e82..0a53dfe 100644 (file)
@@ -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)
index af453bf..ade3eb1 100644 (file)
@@ -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);
 
index bfe6ee5..ae8c284 100644 (file)
@@ -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);
 }
index 9cc131b..881b899 100644 (file)
@@ -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