-rw-r--r-- | microkde/KDGanttMinimizeSplitter.cpp | 14 | ||||
-rw-r--r-- | microkde/KDGanttMinimizeSplitter.h | 1 |
2 files changed, 11 insertions, 4 deletions
diff --git a/microkde/KDGanttMinimizeSplitter.cpp b/microkde/KDGanttMinimizeSplitter.cpp index 84edc0d..c60b566 100644 --- a/microkde/KDGanttMinimizeSplitter.cpp +++ b/microkde/KDGanttMinimizeSplitter.cpp @@ -71,24 +71,25 @@ KDGanttSplitterHandle::KDGanttSplitterHandle( Qt::Orientation o, { if ( QApplication::desktop()->width() > 320 && QApplication::desktop()->width() < 650 ) { mSizeHint = QSize(7,7); mUseOffset = true; } else { mSizeHint = QSize(6,6); mUseOffset = false; } s = parent; setOrientation(o); setMouseTracking( true ); + mMouseDown = false; //setMaximumHeight( 5 ); // test only } QSize KDGanttSplitterHandle::sizeHint() const { return mSizeHint; } void KDGanttSplitterHandle::setOrientation( Qt::Orientation o ) { orient = o; #ifndef QT_NO_CURSOR @@ -117,26 +118,26 @@ void KDGanttSplitterHandle::mouseMoveEvent( QMouseEvent *e ) int min = pos; int max = pos; s->getRange( id(), &min, &max ); s->setRubberband( QMAX( min, QMIN(max, pos ))); } _collapsed = false; } void KDGanttSplitterHandle::mousePressEvent( QMouseEvent *e ) { if ( e->button() == LeftButton ) { _activeButton = onButton( e->pos() ); mouseOffset = s->pick(e->pos()); - if ( _activeButton != 0) - repaint(); + mMouseDown = true; + repaint(); updateCursor( e->pos() ); } } void KDGanttSplitterHandle::updateCursor( const QPoint& p) { if ( onButton( p ) != 0 ) { setCursor( arrowCursor ); } else { if ( orient == KDGanttMinimizeSplitter::Horizontal ) setCursor( splitHCursor ); @@ -162,24 +163,25 @@ void KDGanttSplitterHandle::toggle() s->moveSplitter( pos, id() ); _collapsed = true; } else { s->moveSplitter( _origPos, id() ); _collapsed = false; } repaint(); } void KDGanttSplitterHandle::mouseReleaseEvent( QMouseEvent *e ) { + mMouseDown = false; if ( _activeButton != 0 ) { if ( onButton( e->pos() ) == _activeButton ) { toggle(); } _activeButton = 0; updateCursor( e->pos() ); } else { if ( !opaque() && e->button() == LeftButton ) { QCOORD pos = s->pick(parentWidget()->mapFromGlobal(e->globalPos())) - mouseOffset; @@ -268,26 +270,30 @@ void KDGanttSplitterHandle::paintEvent( QPaintEvent * ) p.setPen( colorGroup().foreground() ); //p.drawRect( rect() ); buffer.fill( colorGroup().background() ); //buffer.fill( backgroundColor() ); // parentWidget()->style().drawPrimitive( QStyle::PE_Panel, &p, rect(), parentWidget()->colorGroup()); int sw = 8; // Hardcoded, given I didn't use styles anymore, I didn't like to use their size // arrow color QColor col; if ( _activeButton ) col = colorGroup().background().dark( 250 ); - else - col = colorGroup().background().dark( 150 ); + else { + if ( mMouseDown ) + col = Qt::white; + else + col = colorGroup().background().dark( 150 ); + } //QColor col = backgroundColor().dark( 130 ); p.setBrush( col ); p.setPen( col ); QValueList<QPointArray> list = buttonRegions(); int index = 1; if ( mUseOffset ) p.translate( 0, 1 ); for ( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) { if ( index == _activeButton ) { /* diff --git a/microkde/KDGanttMinimizeSplitter.h b/microkde/KDGanttMinimizeSplitter.h index 8120d14..84d3d8e 100644 --- a/microkde/KDGanttMinimizeSplitter.h +++ b/microkde/KDGanttMinimizeSplitter.h @@ -160,24 +160,25 @@ public: void setId( int i ) { myId = i; } protected: QValueList<QPointArray> buttonRegions(); void paintEvent( QPaintEvent * ); void mouseMoveEvent( QMouseEvent * ); void mousePressEvent( QMouseEvent * ); void mouseReleaseEvent( QMouseEvent * ); int onButton( const QPoint& p ); void updateCursor( const QPoint& p ); private: + bool mMouseDown; QSize mSizeHint; bool mUseOffset; Qt::Orientation orient; bool opaq; int myId; KDGanttMinimizeSplitter *s; int _activeButton; bool _collapsed; int _origPos; #endif }; |