Diffstat (limited to 'microkde/KDGanttMinimizeSplitter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | microkde/KDGanttMinimizeSplitter.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/microkde/KDGanttMinimizeSplitter.cpp b/microkde/KDGanttMinimizeSplitter.cpp index 253175e..2a30346 100644 --- a/microkde/KDGanttMinimizeSplitter.cpp +++ b/microkde/KDGanttMinimizeSplitter.cpp | |||
@@ -212,148 +212,144 @@ int KDGanttSplitterHandle::onButton( const QPoint& p ) | |||
212 | } | 212 | } |
213 | return 0; | 213 | return 0; |
214 | } | 214 | } |
215 | 215 | ||
216 | 216 | ||
217 | QValueList<QPointArray> KDGanttSplitterHandle::buttonRegions() | 217 | QValueList<QPointArray> KDGanttSplitterHandle::buttonRegions() |
218 | { | 218 | { |
219 | QValueList<QPointArray> list; | 219 | QValueList<QPointArray> list; |
220 | 220 | ||
221 | int sw = 8; | 221 | int sw = 8; |
222 | int yyy = 1; | 222 | int yyy = 1; |
223 | int xxx = 1; | 223 | int xxx = 1; |
224 | int voffset[] = { (int) -sw*3, (int) sw*3 }; | 224 | int voffset[] = { (int) -sw*3, (int) sw*3 }; |
225 | for ( int i = 0; i < 2; i++ ) { | 225 | for ( int i = 0; i < 2; i++ ) { |
226 | QPointArray arr; | 226 | QPointArray arr; |
227 | if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right || | 227 | if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right || |
228 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left) { | 228 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left) { |
229 | int mid = height()/2 + voffset[i]; | 229 | int mid = height()/2 + voffset[i]; |
230 | arr.setPoints( 3, | 230 | arr.setPoints( 3, |
231 | 1-xxx, mid - sw + 4, | 231 | 1-xxx, mid - sw + 4, |
232 | sw-3-xxx, mid, | 232 | sw-3-xxx, mid, |
233 | 1-xxx, mid + sw -4); | 233 | 1-xxx, mid + sw -4); |
234 | } | 234 | } |
235 | else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left || | 235 | else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Left || |
236 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) { | 236 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) { |
237 | int mid = height()/2 + voffset[i]; | 237 | int mid = height()/2 + voffset[i]; |
238 | arr.setPoints( 3, | 238 | arr.setPoints( 3, |
239 | sw-4, mid - sw + 4, | 239 | sw-4, mid - sw + 4, |
240 | 0, mid, | 240 | 0, mid, |
241 | sw-4, mid + sw - 4); | 241 | sw-4, mid + sw - 4); |
242 | } | 242 | } |
243 | else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up || | 243 | else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up || |
244 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down) { | 244 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down) { |
245 | int mid = width()/2 + voffset[i]; | 245 | int mid = width()/2 + voffset[i]; |
246 | arr.setPoints( 3, | 246 | arr.setPoints( 3, |
247 | mid - sw + 4, sw-4, | 247 | mid - sw + 4, sw-4, |
248 | mid, 0, | 248 | mid, 0, |
249 | mid + sw - 4, sw-4 ); | 249 | mid + sw - 4, sw-4 ); |
250 | } | 250 | } |
251 | else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down || | 251 | else if ( !_collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Down || |
252 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up ) { | 252 | _collapsed && s->minimizeDirection() == KDGanttMinimizeSplitter::Up ) { |
253 | int mid = width()/2 + voffset[i]; | 253 | int mid = width()/2 + voffset[i]; |
254 | arr.setPoints( 3, | 254 | arr.setPoints( 3, |
255 | mid - sw + 4, 1-yyy, | 255 | mid - sw + 4, 1-yyy, |
256 | mid, sw-3-yyy, | 256 | mid, sw-3-yyy, |
257 | mid + sw -4, 1-yyy); | 257 | mid + sw -4, 1-yyy); |
258 | } | 258 | } |
259 | list.append( arr ); | 259 | list.append( arr ); |
260 | } | 260 | } |
261 | return list; | 261 | return list; |
262 | } | 262 | } |
263 | 263 | ||
264 | void KDGanttSplitterHandle::paintEvent( QPaintEvent * ) | 264 | void KDGanttSplitterHandle::paintEvent( QPaintEvent * ) |
265 | { | 265 | { |
266 | QPixmap buffer( size() ); | 266 | QPixmap buffer( size() ); |
267 | QPainter p( &buffer ); | 267 | QPainter p( &buffer ); |
268 | 268 | ||
269 | //LR | 269 | //LR |
270 | // Draw the splitter rectangle | 270 | // Draw the splitter rectangle |
271 | p.setBrush( colorGroup().background() ); | 271 | p.setBrush( colorGroup().background() ); |
272 | p.setPen( colorGroup().foreground() ); | 272 | p.setPen( colorGroup().foreground() ); |
273 | //p.drawRect( rect() ); | 273 | //p.drawRect( rect() ); |
274 | #ifndef DESKTOP_VERSION | 274 | #ifndef DESKTOP_VERSION |
275 | if ( mMouseDown ) | 275 | if ( mMouseDown ) |
276 | buffer.fill( QColor( 242,27,255 ) ); | 276 | buffer.fill( colorGroup().background().dark() ); |
277 | else | 277 | else |
278 | #endif | 278 | #endif |
279 | buffer.fill( colorGroup().background() ); | 279 | buffer.fill( colorGroup().background() ); |
280 | //buffer.fill( backgroundColor() ); | 280 | //buffer.fill( backgroundColor() ); |
281 | // parentWidget()->style().drawPrimitive( QStyle::PE_Panel, &p, rect(), parentWidget()->colorGroup()); | 281 | // parentWidget()->style().drawPrimitive( QStyle::PE_Panel, &p, rect(), parentWidget()->colorGroup()); |
282 | 282 | ||
283 | int sw = 8; // Hardcoded, given I didn't use styles anymore, I didn't like to use their size | 283 | int sw = 8; // Hardcoded, given I didn't use styles anymore, I didn't like to use their size |
284 | 284 | ||
285 | // arrow color | 285 | // arrow color |
286 | QColor col; | 286 | QColor col; |
287 | if ( _activeButton ) | 287 | if ( _activeButton ) |
288 | col = colorGroup().background().dark( 250 ); | 288 | col = colorGroup().background().dark( 250 ); |
289 | else { | 289 | else { |
290 | if ( mMouseDown ) | 290 | if ( mMouseDown ) |
291 | #ifndef DESKTOP_VERSION | 291 | col = Qt::white; |
292 | col = QColor( 178,18,188);//QColor( 242,27,255 );//Qt::white; | ||
293 | #else | ||
294 | col = Qt::white; | ||
295 | #endif | ||
296 | else | 292 | else |
297 | col = colorGroup().background().dark( 150 ); | 293 | col = colorGroup().background().dark( 150 ); |
298 | } | 294 | } |
299 | //QColor col = backgroundColor().dark( 130 ); | 295 | //QColor col = backgroundColor().dark( 130 ); |
300 | p.setBrush( col ); | 296 | p.setBrush( col ); |
301 | p.setPen( col ); | 297 | p.setPen( col ); |
302 | 298 | ||
303 | QValueList<QPointArray> list = buttonRegions(); | 299 | QValueList<QPointArray> list = buttonRegions(); |
304 | int index = 1; | 300 | int index = 1; |
305 | if ( mUseOffset ) | 301 | if ( mUseOffset ) |
306 | p.translate( 0, 1 ); | 302 | p.translate( 0, 1 ); |
307 | for ( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) { | 303 | for ( QValueList<QPointArray>::Iterator it = list.begin(); it != list.end(); ++it ) { |
308 | if ( index == _activeButton ) { | 304 | if ( index == _activeButton ) { |
309 | 305 | ||
310 | /* | 306 | /* |
311 | if ( ! _collapsed ) { | 307 | if ( ! _collapsed ) { |
312 | p.save(); | 308 | p.save(); |
313 | // p.translate( parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftHorizontal ), | 309 | // p.translate( parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftHorizontal ), |
314 | // parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftVertical ) ); | 310 | // parentWidget()->style().pixelMetric( QStyle::PM_ButtonShiftVertical ) ); |
315 | p.translate( -1, 0 ); | 311 | p.translate( -1, 0 ); |
316 | p.drawPolygon( *it, true ); | 312 | p.drawPolygon( *it, true ); |
317 | p.restore(); } else | 313 | p.restore(); } else |
318 | */ | 314 | */ |
319 | p.drawPolygon( *it, true ); | 315 | p.drawPolygon( *it, true ); |
320 | 316 | ||
321 | } | 317 | } |
322 | else { | 318 | else { |
323 | /* | 319 | /* |
324 | if ( ! _collapsed ) { | 320 | if ( ! _collapsed ) { |
325 | p.save(); | 321 | p.save(); |
326 | p.translate( -1, 0 ); | 322 | p.translate( -1, 0 ); |
327 | p.drawPolygon( *it, true ); | 323 | p.drawPolygon( *it, true ); |
328 | p.restore(); | 324 | p.restore(); |
329 | } else | 325 | } else |
330 | */ | 326 | */ |
331 | p.drawPolygon( *it, true ); | 327 | p.drawPolygon( *it, true ); |
332 | 328 | ||
333 | } | 329 | } |
334 | index++; | 330 | index++; |
335 | } | 331 | } |
336 | 332 | ||
337 | // Draw the lines between the arrows | 333 | // Draw the lines between the arrows |
338 | if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Left || | 334 | if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Left || |
339 | s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) { | 335 | s->minimizeDirection() == KDGanttMinimizeSplitter::Right ) { |
340 | int mid = height()/2; | 336 | int mid = height()/2; |
341 | p.drawLine ( 1, mid - sw, 1, mid + sw ); | 337 | p.drawLine ( 1, mid - sw, 1, mid + sw ); |
342 | p.drawLine ( 3, mid - sw, 3, mid + sw ); | 338 | p.drawLine ( 3, mid - sw, 3, mid + sw ); |
343 | } | 339 | } |
344 | else if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Up || | 340 | else if ( s->minimizeDirection() == KDGanttMinimizeSplitter::Up || |
345 | s->minimizeDirection() == KDGanttMinimizeSplitter::Down ) { | 341 | s->minimizeDirection() == KDGanttMinimizeSplitter::Down ) { |
346 | int mid = width()/2; | 342 | int mid = width()/2; |
347 | p.drawLine( mid -sw, 1, mid +sw, 1 ); | 343 | p.drawLine( mid -sw, 1, mid +sw, 1 ); |
348 | p.drawLine( mid -sw, 3, mid +sw, 3 ); | 344 | p.drawLine( mid -sw, 3, mid +sw, 3 ); |
349 | } | 345 | } |
350 | bitBlt( this, 0, 0, &buffer ); | 346 | bitBlt( this, 0, 0, &buffer ); |
351 | 347 | ||
352 | } | 348 | } |
353 | #endif | 349 | #endif |
354 | 350 | ||
355 | class QSplitterLayoutStruct | 351 | class QSplitterLayoutStruct |
356 | { | 352 | { |
357 | public: | 353 | public: |
358 | KDGanttMinimizeSplitter::ResizeMode mode; | 354 | KDGanttMinimizeSplitter::ResizeMode mode; |
359 | QCOORD sizer; | 355 | QCOORD sizer; |
@@ -627,129 +623,129 @@ void KDGanttMinimizeSplitter::childEvent( QChildEvent *c ) | |||
627 | recalc( isVisible() ); | 623 | recalc( isVisible() ); |
628 | 624 | ||
629 | } else if ( c->type() == QEvent::ChildRemoved ) { | 625 | } else if ( c->type() == QEvent::ChildRemoved ) { |
630 | QSplitterLayoutStruct *p = 0; | 626 | QSplitterLayoutStruct *p = 0; |
631 | if ( data->list.count() > 1 ) | 627 | if ( data->list.count() > 1 ) |
632 | p = data->list.at(1); //remove handle _after_ first widget. | 628 | p = data->list.at(1); //remove handle _after_ first widget. |
633 | QSplitterLayoutStruct *s = data->list.first(); | 629 | QSplitterLayoutStruct *s = data->list.first(); |
634 | while ( s ) { | 630 | while ( s ) { |
635 | if ( s->wid == c->child() ) { | 631 | if ( s->wid == c->child() ) { |
636 | data->list.removeRef( s ); | 632 | data->list.removeRef( s ); |
637 | delete s; | 633 | delete s; |
638 | if ( p && p->isSplitter ) { | 634 | if ( p && p->isSplitter ) { |
639 | data->list.removeRef( p ); | 635 | data->list.removeRef( p ); |
640 | delete p->wid; //will call childEvent | 636 | delete p->wid; //will call childEvent |
641 | delete p; | 637 | delete p; |
642 | } | 638 | } |
643 | recalcId(); | 639 | recalcId(); |
644 | doResize(); | 640 | doResize(); |
645 | return; | 641 | return; |
646 | } | 642 | } |
647 | p = s; | 643 | p = s; |
648 | s = data->list.next(); | 644 | s = data->list.next(); |
649 | } | 645 | } |
650 | } | 646 | } |
651 | } | 647 | } |
652 | 648 | ||
653 | 649 | ||
654 | /*! | 650 | /*! |
655 | Shows a rubber band at position \a p. If \a p is negative, the | 651 | Shows a rubber band at position \a p. If \a p is negative, the |
656 | rubber band is removed. | 652 | rubber band is removed. |
657 | */ | 653 | */ |
658 | void KDGanttMinimizeSplitter::setRubberband( int p ) | 654 | void KDGanttMinimizeSplitter::setRubberband( int p ) |
659 | { | 655 | { |
660 | #ifdef DESKTOP_VERSION | 656 | #ifdef DESKTOP_VERSION |
661 | QPainter paint( this ); | 657 | QPainter paint( this ); |
662 | paint.setPen( gray ); | 658 | paint.setPen( gray ); |
663 | paint.setBrush( gray ); | 659 | paint.setBrush( gray ); |
664 | paint.setRasterOp( XorROP ); | 660 | paint.setRasterOp( XorROP ); |
665 | QRect r = contentsRect(); | 661 | QRect r = contentsRect(); |
666 | const int rBord = 3; //Themable???? | 662 | const int rBord = 3; //Themable???? |
667 | #if QT_VERSION >= 0x030000 | 663 | #if QT_VERSION >= 0x030000 |
668 | int sw = style().pixelMetric(QStyle::PM_SplitterWidth, this); | 664 | int sw = style().pixelMetric(QStyle::PM_SplitterWidth, this); |
669 | #else | 665 | #else |
670 | int sw = style().splitterWidth(); | 666 | int sw = style().splitterWidth(); |
671 | #endif | 667 | #endif |
672 | if ( orient == Horizontal ) { | 668 | if ( orient == Horizontal ) { |
673 | if ( opaqueOldPos >= 0 ) | 669 | if ( opaqueOldPos >= 0 ) |
674 | paint.drawRect( opaqueOldPos + sw/2 - rBord , r.y(), | 670 | paint.drawRect( opaqueOldPos + sw/2 - rBord , r.y(), |
675 | 2*rBord, r.height() ); | 671 | 2*rBord, r.height() ); |
676 | if ( p >= 0 ) | 672 | if ( p >= 0 ) |
677 | paint.drawRect( p + sw/2 - rBord, r.y(), 2*rBord, r.height() ); | 673 | paint.drawRect( p + sw/2 - rBord, r.y(), 2*rBord, r.height() ); |
678 | } else { | 674 | } else { |
679 | if ( opaqueOldPos >= 0 ) | 675 | if ( opaqueOldPos >= 0 ) |
680 | paint.drawRect( r.x(), opaqueOldPos + sw/2 - rBord, | 676 | paint.drawRect( r.x(), opaqueOldPos + sw/2 - rBord, |
681 | r.width(), 2*rBord ); | 677 | r.width(), 2*rBord ); |
682 | if ( p >= 0 ) | 678 | if ( p >= 0 ) |
683 | paint.drawRect( r.x(), p + sw/2 - rBord, r.width(), 2*rBord ); | 679 | paint.drawRect( r.x(), p + sw/2 - rBord, r.width(), 2*rBord ); |
684 | } | 680 | } |
685 | opaqueOldPos = p; | 681 | opaqueOldPos = p; |
686 | #else | 682 | #else |
687 | if ( !mRubberBand ) { | 683 | if ( !mRubberBand ) { |
688 | mRubberBand = new QFrame( 0, "rubber", WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop); | 684 | mRubberBand = new QFrame( 0, "rubber", WStyle_NoBorder | WStyle_Customize | WStyle_StaysOnTop); |
689 | mRubberBand->setFrameStyle( Box | Raised ); | 685 | mRubberBand->setFrameStyle( Box | Raised ); |
690 | //mRubberBand->setPalette( QPalette ( Qt::red.light(),Qt::red.dark() ) ); | 686 | //mRubberBand->setPalette( QPalette ( Qt::red.light(),Qt::red.dark() ) ); |
691 | mRubberBand->setPalette( QPalette ( QColor( 178,18,188), QColor( 242,27,255 ) )); | 687 | mRubberBand->setPalette( QPalette ( colorGroup().background().light(), colorGroup().background().dark() )); |
692 | } | 688 | } |
693 | QRect r = contentsRect(); | 689 | QRect r = contentsRect(); |
694 | static int rBord = 0; //Themable???? | 690 | static int rBord = 0; //Themable???? |
695 | if ( !rBord ) { | 691 | if ( !rBord ) { |
696 | if (QApplication::desktop()->width() <= 320 ) | 692 | if (QApplication::desktop()->width() <= 320 ) |
697 | rBord = 3; | 693 | rBord = 3; |
698 | else | 694 | else |
699 | rBord = 4; | 695 | rBord = 4; |
700 | } | 696 | } |
701 | int sw = style().splitterWidth(); | 697 | int sw = style().splitterWidth(); |
702 | if ( orient == Horizontal ) { | 698 | if ( orient == Horizontal ) { |
703 | if ( p >= 0 ) { | 699 | if ( p >= 0 ) { |
704 | QPoint geo = mapToGlobal (QPoint ( p + sw/2 - rBord, r.y())); | 700 | QPoint geo = mapToGlobal (QPoint ( p + sw/2 - rBord, r.y())); |
705 | mRubberBand->setGeometry( geo.x(), geo.y(), 2*rBord, r.height() ); | 701 | mRubberBand->setGeometry( geo.x(), geo.y(), 2*rBord, r.height() ); |
706 | } | 702 | } |
707 | } else { | 703 | } else { |
708 | if ( p >= 0 ) { | 704 | if ( p >= 0 ) { |
709 | QPoint geo = mapToGlobal (QPoint ( r.x(), p + sw/2 - rBord)); | 705 | QPoint geo = mapToGlobal (QPoint ( r.x(), p + sw/2 - rBord)); |
710 | mRubberBand->setGeometry( geo.x(), geo.y(), r.width(), 2*rBord); | 706 | mRubberBand->setGeometry( geo.x(), geo.y(), r.width(), 2*rBord); |
711 | } | 707 | } |
712 | } | 708 | } |
713 | opaqueOldPos = p; | 709 | opaqueOldPos = p; |
714 | if ( ! mRubberBand->isVisible() ) { | 710 | if ( ! mRubberBand->isVisible() ) { |
715 | mRubberBand->show(); | 711 | mRubberBand->show(); |
716 | } | 712 | } |
717 | #endif | 713 | #endif |
718 | } | 714 | } |
719 | 715 | ||
720 | 716 | ||
721 | /*! \reimp */ | 717 | /*! \reimp */ |
722 | bool KDGanttMinimizeSplitter::event( QEvent *e ) | 718 | bool KDGanttMinimizeSplitter::event( QEvent *e ) |
723 | { | 719 | { |
724 | if ( e->type() == QEvent::LayoutHint || ( e->type() == QEvent::Show && data->firstShow ) ) { | 720 | if ( e->type() == QEvent::LayoutHint || ( e->type() == QEvent::Show && data->firstShow ) ) { |
725 | recalc( isVisible() ); | 721 | recalc( isVisible() ); |
726 | if ( e->type() == QEvent::Show ) | 722 | if ( e->type() == QEvent::Show ) |
727 | data->firstShow = FALSE; | 723 | data->firstShow = FALSE; |
728 | } | 724 | } |
729 | return QWidget::event( e ); | 725 | return QWidget::event( e ); |
730 | } | 726 | } |
731 | 727 | ||
732 | 728 | ||
733 | /*! | 729 | /*! |
734 | \obsolete | 730 | \obsolete |
735 | 731 | ||
736 | Draws the splitter handle in the rectangle described by \a x, \a y, | 732 | Draws the splitter handle in the rectangle described by \a x, \a y, |
737 | \a w, \a h using painter \a p. | 733 | \a w, \a h using painter \a p. |
738 | \sa QStyle::drawPrimitive() | 734 | \sa QStyle::drawPrimitive() |
739 | */ | 735 | */ |
740 | void KDGanttMinimizeSplitter::drawSplitter( QPainter *p, | 736 | void KDGanttMinimizeSplitter::drawSplitter( QPainter *p, |
741 | QCOORD x, QCOORD y, QCOORD w, QCOORD h ) | 737 | QCOORD x, QCOORD y, QCOORD w, QCOORD h ) |
742 | { | 738 | { |
743 | #if 0 | 739 | #if 0 |
744 | // LR | 740 | // LR |
745 | style().drawPrimitive(QStyle::PE_Splitter, p, QRect(x, y, w, h), colorGroup(), | 741 | style().drawPrimitive(QStyle::PE_Splitter, p, QRect(x, y, w, h), colorGroup(), |
746 | (orientation() == Qt::Horizontal ? | 742 | (orientation() == Qt::Horizontal ? |
747 | QStyle::Style_Horizontal : 0)); | 743 | QStyle::Style_Horizontal : 0)); |
748 | #endif | 744 | #endif |
749 | } | 745 | } |
750 | 746 | ||
751 | 747 | ||
752 | /*! | 748 | /*! |
753 | Returns the id of the splitter to the right of or below the widget \a w, | 749 | Returns the id of the splitter to the right of or below the widget \a w, |
754 | or 0 if there is no such splitter | 750 | or 0 if there is no such splitter |
755 | (i.e. it is either not in this KDGanttMinimizeSplitter or it is at the end). | 751 | (i.e. it is either not in this KDGanttMinimizeSplitter or it is at the end). |