Diffstat (limited to 'microkde/KDGanttMinimizeSplitter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/KDGanttMinimizeSplitter.cpp | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/microkde/KDGanttMinimizeSplitter.cpp b/microkde/KDGanttMinimizeSplitter.cpp index 029f14b..ea3a329 100644 --- a/microkde/KDGanttMinimizeSplitter.cpp +++ b/microkde/KDGanttMinimizeSplitter.cpp @@ -188,8 +188,10 @@ void KDGanttSplitterHandle::mouseReleaseEvent( QMouseEvent *e ) s->setRubberband( -1 ); s->moveSplitter( pos, id() ); } } + if ( s->rubberBand() ) + s->rubberBand()->hide(); repaint(); } int KDGanttSplitterHandle::onButton( const QPoint& p ) @@ -433,16 +435,16 @@ static QSize minSizeHint( const QWidget* w ) return s.expandedTo(QSize(0,0)); } - /*! Constructs a horizontal splitter with the \a parent and \a name arguments being passed on to the QFrame constructor. */ KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( QWidget *parent, const char *name ) :QFrame(parent,name,WPaintUnclipped) { + mRubberBand = 0; mFirstHandle = 0; #if QT_VERSION >= 232 orient = Horizontal; init(); @@ -455,8 +457,10 @@ KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( QWidget *parent, const char *n */ KDGanttMinimizeSplitter::KDGanttMinimizeSplitter( Orientation o, QWidget *parent, const char *name ) :QFrame(parent,name,WPaintUnclipped) { + + mRubberBand = 0; mFirstHandle = 0; #if QT_VERSION >= 232 orient = o; init(); @@ -471,8 +475,10 @@ KDGanttMinimizeSplitter::~KDGanttMinimizeSplitter() #if QT_VERSION >= 232 data->list.setAutoDelete( TRUE ); delete data; #endif + if ( mRubberBand ) + delete mRubberBand; } #if QT_VERSION >= 232 @@ -641,8 +647,9 @@ void KDGanttMinimizeSplitter::childEvent( QChildEvent *c ) rubber band is removed. */ void KDGanttMinimizeSplitter::setRubberband( int p ) { +#ifdef DESKTOP_VERSION QPainter paint( this ); paint.setPen( gray ); paint.setBrush( gray ); paint.setRasterOp( XorROP ); @@ -666,8 +673,31 @@ void KDGanttMinimizeSplitter::setRubberband( int p ) if ( p >= 0 ) paint.drawRect( r.x(), p + sw/2 - rBord, r.width(), 2*rBord ); } opaqueOldPos = p; +#else + if ( !mRubberBand ) { + mRubberBand = new QFrame( 0, "rubber", WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop); + mRubberBand->setFrameStyle( Box | Raised ); + mRubberBand->setPalette( QPalette ( Qt::green.light(),Qt::green.dark() ) ); + } + QRect r = contentsRect(); + const int rBord = 5; //Themable???? + int sw = style().splitterWidth(); + if ( orient == Horizontal ) { + if ( p >= 0 ) { + QPoint geo = mapToGlobal (QPoint ( p + sw/2 - rBord, r.y())); + mRubberBand->setGeometry( geo.x(), geo.y(), 2*rBord, r.height() ); + } + } else { + if ( p >= 0 ) { + QPoint geo = mapToGlobal (QPoint ( r.x(), p + sw/2 - rBord)); + mRubberBand->setGeometry( geo.x(), geo.y(), r.width(), 2*rBord); + } + } + opaqueOldPos = p; + mRubberBand->show(); +#endif } /*! \reimp */ |