summaryrefslogtreecommitdiffabout
path: root/microkde/KDGanttMinimizeSplitter.cpp
Unidiff
Diffstat (limited to 'microkde/KDGanttMinimizeSplitter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--microkde/KDGanttMinimizeSplitter.cpp10
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
217QValueList<QPointArray> KDGanttSplitterHandle::buttonRegions() 217QValueList<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
264void KDGanttSplitterHandle::paintEvent( QPaintEvent * ) 264void 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
355class QSplitterLayoutStruct 351class QSplitterLayoutStruct
356{ 352{
357public: 353public:
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*/
658void KDGanttMinimizeSplitter::setRubberband( int p ) 654void 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 */
722bool KDGanttMinimizeSplitter::event( QEvent *e ) 718bool 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*/
740void KDGanttMinimizeSplitter::drawSplitter( QPainter *p, 736void 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).