[Pkg-kde-commits] rev 1776 - in people/chrsmrtn/qt-x11-free/debian: . patches

Christopher Martin chrsmrtn at costa.debian.org
Mon Sep 12 14:15:29 UTC 2005


Author: chrsmrtn
Date: 2005-09-12 14:15:28 +0000 (Mon, 12 Sep 2005)
New Revision: 1776

Added:
   people/chrsmrtn/qt-x11-free/debian/patches/11_qt_rubberband.dpatch
Modified:
   people/chrsmrtn/qt-x11-free/debian/changelog
   people/chrsmrtn/qt-x11-free/debian/patches/00list
Log:
Sync people/chrsmrtn with trunk.


Modified: people/chrsmrtn/qt-x11-free/debian/changelog
===================================================================
--- people/chrsmrtn/qt-x11-free/debian/changelog	2005-09-12 14:14:53 UTC (rev 1775)
+++ people/chrsmrtn/qt-x11-free/debian/changelog	2005-09-12 14:15:28 UTC (rev 1776)
@@ -15,6 +15,9 @@
   * Revert the versioning of our build-depends on libpq-dev, since the fixed
     package has now built on all architectures.
 
+  * Add a patch from the "Improving KDE" set that tweaks KDE's default GUI,
+    changing some of the selection and highlight effects.
+  
   * Re-enable InterBase support. [!!! Not yet ready !!!]
 
  -- Debian Qt/KDE Maintainers <debian-qt-kde at lists.debian.org>  Fri,  9 Sep 2005 08:35:43 -0400

Modified: people/chrsmrtn/qt-x11-free/debian/patches/00list
===================================================================
--- people/chrsmrtn/qt-x11-free/debian/patches/00list	2005-09-12 14:14:53 UTC (rev 1775)
+++ people/chrsmrtn/qt-x11-free/debian/patches/00list	2005-09-12 14:15:28 UTC (rev 1776)
@@ -6,6 +6,7 @@
 08_thread_default
 09_amd64_lib64
 10_arm_gcc4
+11_qt_rubberband
 14_fix_kmenu
 15_unify_declarations_glibc
 16_fix_opengl_check

Added: people/chrsmrtn/qt-x11-free/debian/patches/11_qt_rubberband.dpatch
===================================================================
--- people/chrsmrtn/qt-x11-free/debian/patches/11_qt_rubberband.dpatch	2005-09-12 14:14:53 UTC (rev 1775)
+++ people/chrsmrtn/qt-x11-free/debian/patches/11_qt_rubberband.dpatch	2005-09-12 14:15:28 UTC (rev 1776)
@@ -0,0 +1,416 @@
+#! /bin/sh -e
+
+if [ $# -lt 1 ]; then
+    echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+    exit 1
+fi
+
+[ -f debian/patches/00patch-opts ] && . debian/patches/00patch-opts
+patch_opts="${patch_opts:--f --no-backup-if-mismatch} ${2:+-d $2}"
+
+case "$1" in
+    -patch) patch -p1 ${patch_opts} < $0;;
+    -unpatch) patch -R -p1 ${patch_opts} < $0;;
+    *)
+        echo "`basename $0`: script expects -patch|-unpatch as argument" >&2
+        exit 1;;
+esac
+
+exit 0
+
+ at DPATCH@
+--- qt.orig/src/iconview/qiconview.cpp
++++ qt.patched/src/iconview/qiconview.cpp
+@@ -261,6 +261,7 @@
+ 
+     QIconViewToolTip *toolTip;
+     QPixmapCache maskCache;
++    QPixmap *backrubber;    
+     QPtrDict<QIconViewItem> selectedItems;
+ 
+     struct ItemContainer {
+@@ -1974,14 +1975,27 @@
+     if ( picture() ) {
+ 	QPicture *pic = picture();
+ 	if ( isSelected() ) {
+-	    p->fillRect( pixmapRect( FALSE ), QBrush( cg.highlight(), QBrush::Dense4Pattern) );
++            p->setBrush( QBrush( cg.highlight(), QBrush::Dense4Pattern ) );
++            p->setPen( QPen( cg.highlight(), QBrush::Dense4Pattern ) );
++            p->drawRoundRect( pixmapRect( FALSE ), 
++			    1000 / pixmapRect( FALSE ).width(),
++			    1000 / pixmapRect( FALSE ).height() );		
+ 	}
+ 	p->drawPicture( x()-pic->boundingRect().x(), y()-pic->boundingRect().y(), *pic );
+ 	if ( isSelected() ) {
+-	    p->fillRect( textRect( FALSE ), cg.highlight() );
++            p->setBrush( QBrush( cg.highlight() ) );
++            p->setPen( QPen( cg.highlight() ) );
++            p->drawRoundRect( textRect( FALSE ), 
++			    1000 / textRect( FALSE ).width(),
++			    1000 / textRect( FALSE ).height() );		
+ 	    p->setPen( QPen( cg.highlightedText() ) );
+-	} else if ( view->d->itemTextBrush != NoBrush )
+-	    p->fillRect( textRect( FALSE ), view->d->itemTextBrush );
++	} else if ( view->d->itemTextBrush != NoBrush ) {
++            p->setBrush( view->d->itemTextBrush );
++            p->setPen( QPen( view->d->itemTextBrush.color() ) );
++            p->drawRoundRect( textRect( FALSE ), 
++			    1000 / textRect( FALSE ).width(),
++			    1000 / textRect( FALSE ).height() );		
++	}
+ 
+ 	int align = view->itemTextPos() == QIconView::Bottom ? AlignHCenter : AlignAuto;
+ 	if ( view->d->wordWrapIconText )
+@@ -2039,10 +2053,19 @@
+ 
+     p->save();
+     if ( isSelected() ) {
+-	p->fillRect( textRect( FALSE ), cg.highlight() );
++        p->setBrush( QBrush( cg.highlight() ) );
++        p->setPen( QPen( cg.highlight() ) );
++        p->drawRoundRect( textRect( FALSE ), 
++                          1000 / textRect( FALSE ).width(),
++			  1000 / textRect( FALSE ).height() );		
+ 	p->setPen( QPen( cg.highlightedText() ) );
+-    } else if ( view->d->itemTextBrush != NoBrush )
+-	p->fillRect( textRect( FALSE ), view->d->itemTextBrush );
++    } else if ( view->d->itemTextBrush != NoBrush ) {
++        p->setBrush( view->d->itemTextBrush );
++        p->setPen( QPen( view->d->itemTextBrush.color() ) );
++        p->drawRoundRect( textRect( FALSE ), 
++			  1000 / textRect( FALSE ).width(),
++			  1000 / textRect( FALSE ).height() );		
++    }
+ 
+     int align = AlignHCenter;
+     if ( view->d->wordWrapIconText )
+@@ -2058,31 +2081,13 @@
+ /*!
+     Paints the focus rectangle of the item using the painter \a p and
+     the color group \a cg.
++    
++    The default implementation does nothing; subclasses may
++    reimplement this function.
+ */
+ 
+-void QIconViewItem::paintFocus( QPainter *p, const QColorGroup &cg )
++void QIconViewItem::paintFocus( QPainter *, const QColorGroup & )
+ {
+-    if ( !view )
+-	return;
+-
+-    view->style().drawPrimitive(QStyle::PE_FocusRect, p,
+-				QRect( textRect( FALSE ).x(), textRect( FALSE ).y(),
+-				       textRect( FALSE ).width(),
+-				       textRect( FALSE ).height() ), cg,
+-				(isSelected() ?
+-				 QStyle::Style_FocusAtBorder :
+-				 QStyle::Style_Default),
+-				QStyleOption(isSelected() ? cg.highlight() : cg.base()));
+-
+-    if ( this != view->d->currentItem ) {
+-	view->style().drawPrimitive(QStyle::PE_FocusRect, p,
+-				    QRect( pixmapRect( FALSE ).x(),
+-					   pixmapRect( FALSE ).y(),
+-					   pixmapRect( FALSE ).width(),
+-					   pixmapRect( FALSE ).height() ),
+-				    cg, QStyle::Style_Default,
+-				    QStyleOption(cg.base()));
+-    }
+ }
+ 
+ /*!
+@@ -2780,6 +2785,7 @@
+     d->renamingItem = 0;
+     d->drawActiveSelection = TRUE;
+     d->drawDragShapes = FALSE;
++    d->backrubber = 0;    
+ 
+     connect( d->adjustTimer, SIGNAL( timeout() ),
+ 	     this, SLOT( adjustItems() ) );
+@@ -3264,7 +3270,7 @@
+ 
+ void QIconView::doAutoScroll()
+ {
+-    QRect oldRubber = QRect( *d->rubber );
++    QRect oldRubber = *d->rubber;
+ 
+     QPoint vp = viewport()->mapFromGlobal( QCursor::pos() );
+     QPoint pos = viewportToContents( vp );
+@@ -3281,7 +3287,6 @@
+     bool block = signalsBlocked();
+ 
+     QRect rr;
+-    QRegion region( 0, 0, visibleWidth(), visibleHeight() );
+ 
+     blockSignals( TRUE );
+     viewport()->setUpdatesEnabled( FALSE );
+@@ -3307,9 +3312,6 @@
+ 			item->setSelected( TRUE, TRUE );
+ 			changed = TRUE;
+ 			rr = rr.unite( item->rect() );
+-		    } else {
+-			region = region.subtract( QRect( contentsToViewport( item->pos() ),
+-							 item->size() ) );
+ 		    }
+ 
+ 		    minx = QMIN( minx, item->x() - 1 );
+@@ -3326,42 +3328,76 @@
+     viewport()->setUpdatesEnabled( TRUE );
+     blockSignals( block );
+ 
+-    QRect r = *d->rubber;
+-    *d->rubber = oldRubber;
++    // static bool drawAll;
++    if ( d->backrubber == 0 ) {
++        d->backrubber = new QPixmap( viewport()->rect().size() );
++        d->backrubber->fill( viewport(), viewport()->rect().topLeft() );
++        // drawAll = true;
++    }
++
++    // int oldX = 0, oldY = 0;
++    // if ( !drawAll && d->scrollTimer ) {
++    //     oldX = contentsX();
++    //     oldY = contentsY();
++    // }
++    ensureVisible( pos.x(), pos.y() );
++    // if ( !drawAll && d->scrollTimer && ( oldX != contentsX() || oldY != contentsY() ) )
++    //     drawAll = true;
++
++    QRect allRect = oldRubber.normalize();
++    if ( changed ) 
++        allRect |= rr.normalize();
++    allRect |= d->rubber->normalize();
++    QPoint point = contentsToViewport( allRect.topLeft() );
++    allRect = QRect( point.x(), point.y(), allRect.width(), allRect.height() );
++    allRect &= viewport()->rect();
+ 
+-    QPainter p;
+-    p.begin( viewport() );
+-    p.setRasterOp( NotROP );
+-    p.setPen( QPen( color0, 1 ) );
+-    p.setBrush( NoBrush );
+-    drawRubber( &p );
+     d->dragging = FALSE;
+-    p.end();
+ 
+-    *d->rubber = r;
++    QPainter p( d->backrubber );
++    p.translate( -contentsX(), -contentsY() );
++#if 0
++    if ( !drawAll ) {
++        oldRubber = oldRubber.normalize();
++        point = contentsToViewport( oldRubber.topLeft() );
++        oldRubber = QRect( point.x(), point.y(), oldRubber.width(), oldRubber.height() );
++        oldRubber &= viewport()->rect();
+ 
+-    if ( changed ) {
+-	d->drawAllBack = FALSE;
+-	d->clipRegion = region;
+-	repaintContents( rr, FALSE );
+-	d->drawAllBack = TRUE;
+-    }
++        point = contentsToViewport( nr.topLeft() );
++        nr = QRect( point.x(), point.y(), nr.width(), nr.height() );
++        nr &= viewport()->rect();
+ 
+-    ensureVisible( pos.x(), pos.y() );
++	QRegion region;
++	if ( allRect != nr )
++            region = QRegion(allRect).subtract( QRegion( nr ) );
++	if ( allRect != oldRubber )
++            region += QRegion(allRect).subtract( QRegion( oldRubber ) );
+ 
+-    p.begin( viewport() );
+-    p.setRasterOp( NotROP );
+-    p.setPen( QPen( color0, 1 ) );
+-    p.setBrush( NoBrush );
+-    drawRubber( &p );
+-    d->dragging = TRUE;
++	QMemArray< QRect > ar = region.rects();
++	for ( uint i = 0; i < ar.size(); ++i ) {
++             ar[i].addCoords( -2, -2, 4, 4 );
++             ar[i] = ar[i].normalize();
++	
++             p.setClipRect( ar[i] );
++             drawContents( &p, contentsX() + ar[i].left(), contentsY() + ar[i].top(), ar[i].width(), ar[i].height() );
++	}
++    }
++    else
++#endif
++    {	    
++        drawContents( &p, 
++                      contentsX() + allRect.left(), contentsY() + allRect.top(), 
++                      allRect.width(), allRect.height() ); 
++    }
+ 
+     p.end();
++    // drawAll = false;
++    d->dragging = TRUE;
++    bitBlt( viewport(), allRect.topLeft(), d->backrubber, allRect );
+ 
+     if ( changed ) {
+-	emit selectionChanged();
+-	if ( d->selectionMode == Single )
+-	    emit selectionChanged( d->currentItem );
++        if ( d->selectionMode == Single )
++            emit selectionChanged( d->currentItem );
+     }
+ 
+     if ( !QRect( 50, 50, viewport()->width()-100, viewport()->height()-100 ).contains( vp ) &&
+@@ -3388,9 +3424,7 @@
+ 
+ void QIconView::drawContents( QPainter *p, int cx, int cy, int cw, int ch )
+ {
+-    if ( d->dragging && d->rubber )
+-	drawRubber( p );
+-
++    p->save();
+     QRect r = QRect( cx, cy, cw, ch );
+ 
+     QIconViewPrivate::ItemContainer *c = d->firstContainer;
+@@ -3464,8 +3498,16 @@
+ 	d->currentItem->paintFocus( p, colorGroup() );
+     }
+ 
+-    if ( d->dragging && d->rubber )
+-	drawRubber( p );
++   p->restore();
++   if ( d->rubber ) {
++       p->save();              
++       p->translate( contentsX(), contentsY() );
++       p->setRasterOp( NotROP );
++       p->setPen( QPen( color0, 1 ) );
++       p->setBrush( NoBrush );        
++       drawRubber( p );
++       p->restore();
++    }
+ }
+ 
+ /*!
+@@ -4364,17 +4406,15 @@
+ void QIconView::contentsMousePressEventEx( QMouseEvent *e )
+ {
+     if ( d->rubber ) {
+-	QPainter p;
+-	p.begin( viewport() );
+-	p.setRasterOp( NotROP );
+-	p.setPen( QPen( color0, 1 ) );
+-	p.setBrush( NoBrush );
++        QRect r( d->rubber->normalize() );
++        delete d->rubber;
++        d->rubber = 0;  
++   
++        repaintContents( r, FALSE );
++        d->dragging = FALSE;
+ 
+-	drawRubber( &p );
+-	d->dragging = FALSE;
+-	p.end();
+-	delete d->rubber;
+-	d->rubber = 0;
++	delete d->backrubber;
++	d->backrubber = 0;
+ 
+ 	if ( d->scrollTimer ) {
+ 	    disconnect( d->scrollTimer, SIGNAL( timeout() ), this, SLOT( doAutoScroll() ) );
+@@ -4559,21 +4599,17 @@
+     d->startDragItem = 0;
+ 
+     if ( d->rubber ) {
+-	QPainter p;
+-	p.begin( viewport() );
+-	p.setRasterOp( NotROP );
+-	p.setPen( QPen( color0, 1 ) );
+-	p.setBrush( NoBrush );
+-
+-	drawRubber( &p );
+-	d->dragging = FALSE;
+-	p.end();
+-
++        QRect r(d->rubber->normalize());
++        
+ 	if ( ( d->rubber->topLeft() - d->rubber->bottomRight() ).manhattanLength() >
+ 	     QApplication::startDragDistance() )
+ 	    emitClicked = FALSE;
+ 	delete d->rubber;
+-	d->rubber = 0;
++    	d->rubber = 0;
++	repaintContents(r, FALSE);
++	d->dragging = FALSE;
++	delete d->backrubber;
++	d->backrubber = 0;      
+ 	d->currentItem = d->tmpCurrentItem;
+ 	d->tmpCurrentItem = 0;
+ 	if ( d->currentItem )
+@@ -5333,9 +5369,9 @@
+     QPoint pnt( d->rubber->x(), d->rubber->y() );
+     pnt = contentsToViewport( pnt );
+ 
+-    style().drawPrimitive(QStyle::PE_RubberBand, p,
+-			  QRect(pnt.x(), pnt.y(), d->rubber->width(), d->rubber->height()),
+-			  colorGroup(), QStyle::Style_Default, QStyleOption(colorGroup().base()));
++    style().drawPrimitive( QStyle::PE_RubberBand, p,
++			   QRect( pnt.x(), pnt.y(), d->rubber->width(), d->rubber->height() ).normalize(),
++			   colorGroup(), QStyle::Style_Default, QStyleOption(colorGroup().base()) );
+ }
+ 
+ /*!
+--- qt.orig/src/widgets/qlistbox.cpp
++++ qt.patched/src/widgets/qlistbox.cpp
+@@ -2162,7 +2162,7 @@
+     }
+ 
+     if ( d->rubber ) {
+-	drawRubber();
++	repaintContents( d->rubber->normalize(), FALSE );
+ 	delete d->rubber;
+ 	d->rubber = 0;
+ 	d->current = d->tmpCurrent;
+@@ -2240,11 +2240,9 @@
+     }
+ 
+     if ( d->rubber ) {
+-	QRect r = d->rubber->normalize();
+-	drawRubber();
++    	QRect r = d->rubber->normalize();
+ 	d->rubber->setCoords( d->rubber->x(), d->rubber->y(), e->x(), e->y() );
+ 	doRubberSelection( r, d->rubber->normalize() );
+-	drawRubber();
+ 	return;
+     }
+ 
+@@ -4381,6 +4379,7 @@
+ 	return;
+     if ( !d->rubber->width() && !d->rubber->height() )
+ 	return;
++ 
+     QPainter p( viewport() );
+     p.setRasterOp( NotROP );
+     style().drawPrimitive( QStyle::PE_RubberBand, &p, d->rubber->normalize(),
+@@ -4413,13 +4412,24 @@
+ 	    }
+ 	}
+     }
++
++    QRect allRect = old;
++    if ( changed ) {
++        allRect |= pr;
++    }    
++    allRect |= rubber;
++    allRect &= viewport()->rect();
++    allRect.addCoords( -2, -2, 2, 2 );
++
++    repaintContents( QRect( contentsX() + allRect.left(), contentsY() + allRect.top(), allRect.width(), allRect.height() ), FALSE ); 
++    drawRubber();
++    
+     if ( changed ) {
+ 	emit selectionChanged();
+ #if defined(QT_ACCESSIBILITY_SUPPORT)
+ 	QAccessible::updateAccessibility( viewport(), 0, QAccessible::Selection );
+ #endif
+     }
+-    viewport()->repaint( pr, TRUE );
+ }
+ 
+ 




More information about the pkg-kde-commits mailing list