diff options
Diffstat (limited to 'opensuse/core/qt3/rubberband.diff')
-rw-r--r-- | opensuse/core/qt3/rubberband.diff | 339 |
1 files changed, 0 insertions, 339 deletions
diff --git a/opensuse/core/qt3/rubberband.diff b/opensuse/core/qt3/rubberband.diff deleted file mode 100644 index e02b17a98..000000000 --- a/opensuse/core/qt3/rubberband.diff +++ /dev/null @@ -1,339 +0,0 @@ ---- src/iconview/qiconview.cpp -+++ src/iconview/qiconview.cpp -@@ -261,6 +261,7 @@ - - QIconViewToolTip *toolTip; - QPixmapCache maskCache; -+ QPixmap *backrubber; - QPtrDict<QIconViewItem> selectedItems; - - struct ItemContainer { -@@ -1975,14 +1976,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 ) -@@ -2040,10 +2054,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 ) -@@ -2059,31 +2082,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())); -- } - } - - /*! -@@ -2781,6 +2786,7 @@ - d->renamingItem = 0; - d->drawActiveSelection = TRUE; - d->drawDragShapes = FALSE; -+ d->backrubber = 0; - - connect( d->adjustTimer, SIGNAL( timeout() ), - this, SLOT( adjustItems() ) ); -@@ -3265,7 +3271,7 @@ - - void QIconView::doAutoScroll() - { -- QRect oldRubber = QRect( *d->rubber ); -+ QRect oldRubber = *d->rubber; - - QPoint vp = viewport()->mapFromGlobal( QCursor::pos() ); - QPoint pos = viewportToContents( vp ); -@@ -3282,7 +3288,6 @@ - bool block = signalsBlocked(); - - QRect rr; -- QRegion region( 0, 0, visibleWidth(), visibleHeight() ); - - blockSignals( TRUE ); - viewport()->setUpdatesEnabled( FALSE ); -@@ -3308,9 +3313,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 ); -@@ -3327,42 +3329,77 @@ - viewport()->setUpdatesEnabled( TRUE ); - blockSignals( block ); - -- QRect r = *d->rubber; -- *d->rubber = oldRubber; -- -- 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; -- -- if ( changed ) { -- d->drawAllBack = FALSE; -- d->clipRegion = region; -- repaintContents( rr, FALSE ); -- d->drawAllBack = TRUE; -+ // 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; - -- p.begin( viewport() ); -- p.setRasterOp( NotROP ); -- p.setPen( QPen( color0, 1 ) ); -- p.setBrush( NoBrush ); -- drawRubber( &p ); -- d->dragging = 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(); -+ -+ d->dragging = FALSE; -+ -+ 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(); -+ -+ point = contentsToViewport( nr.topLeft() ); -+ nr = QRect( point.x(), point.y(), nr.width(), nr.height() ); -+ nr &= viewport()->rect(); -+ -+ QRegion region; -+ if ( allRect != nr ) -+ region = QRegion(allRect).subtract( QRegion( nr ) ); -+ if ( allRect != oldRubber ) -+ region += QRegion(allRect).subtract( QRegion( oldRubber ) ); -+ -+ 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 ) && -@@ -3389,9 +3426,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; -@@ -3465,8 +3500,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(); -+ } - } - - /*! -@@ -4365,17 +4408,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() ) ); -@@ -4560,21 +4601,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 ) -@@ -5334,9 +5371,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()) ); - } - - /*! |