[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