diff options
Diffstat (limited to 'packages/qte/qte-2.3.12/qiconview-speed.patch')
-rw-r--r-- | packages/qte/qte-2.3.12/qiconview-speed.patch | 122 |
1 files changed, 0 insertions, 122 deletions
diff --git a/packages/qte/qte-2.3.12/qiconview-speed.patch b/packages/qte/qte-2.3.12/qiconview-speed.patch deleted file mode 100644 index bac9b9705f..0000000000 --- a/packages/qte/qte-2.3.12/qiconview-speed.patch +++ /dev/null @@ -1,122 +0,0 @@ - -# -# Patch managed by http://www.holgerschurig.de/patcher.html -# - ---- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp~qiconview-speed -+++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp -@@ -225,6 +225,7 @@ - QIconView::SelectionMode selectionMode; - QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor; - QRect *rubber; -+ QPixmap *backBuffer; - QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer, - *fullRedrawTimer; - int rastX, rastY, spacing; -@@ -2268,6 +2269,7 @@ - d->currentItem = 0; - d->highlightedItem = 0; - d->rubber = 0; -+ d->backBuffer = 0; - d->scrollTimer = 0; - d->startDragItem = 0; - d->tmpCurrentItem = 0; -@@ -2416,6 +2418,8 @@ - delete item; - item = tmp; - } -+ delete d->backBuffer; -+ d->backBuffer = 0; - delete d->fm; - d->fm = 0; - #ifndef QT_NO_TOOLTIP -@@ -2882,6 +2886,48 @@ - } - - /*! -+ This function grabs all paintevents that otherwise would have been -+ processed by the QScrollView::viewportPaintEvent(). Here we use a -+ doublebuffer to reduce 'on-paint' flickering on QIconView -+ (and of course its childs). -+ -+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents() -+*/ -+ -+void QIconView::bufferedPaintEvent( QPaintEvent* pe ) -+{ -+ QWidget* vp = viewport(); -+ QRect r = pe->rect() & vp->rect(); -+ int ex = r.x() + contentsX(); -+ int ey = r.y() + contentsY(); -+ int ew = r.width(); -+ int eh = r.height(); -+ -+ if ( !d->backBuffer ) -+ d->backBuffer = new QPixmap(vp->size()); -+ if ( d->backBuffer->size() != vp->size() ) { -+ //Resize function (with hysteesis). Uses a good compromise between memory -+ //consumption and speed (number) of resizes. -+ float newWidth = (float)vp->width(); -+ float newHeight = (float)vp->height(); -+ if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() ) -+ { -+ newWidth *= 1.1892; -+ newHeight *= 1.1892; -+ d->backBuffer->resize( (int)newWidth, (int)newHeight ); -+ } else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() ) -+ d->backBuffer->resize( (int)newWidth, (int)newHeight ); -+ } -+ -+ QPainter p; -+ p.begin(d->backBuffer, vp); -+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh); -+ p.end(); -+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh); -+} -+ -+/*! -+ - \reimp - */ - -@@ -4939,7 +4985,7 @@ - if ( !d->rubber ) - drawDragShapes( d->oldDragPos ); - } -- viewportPaintEvent( (QPaintEvent*)e ); -+ bufferedPaintEvent ((QPaintEvent*)e ); - if ( d->dragging ) { - if ( !d->rubber ) - drawDragShapes( d->oldDragPos ); -@@ -5377,11 +5423,19 @@ - return; - - if ( item->d->container1 && d->firstContainer ) { -- item->d->container1->items.removeRef( item ); -+ //Special-case checking of the last item, since this may be -+ //called a few times for the same item. -+ if (item->d->container1->items.last() == item) -+ item->d->container1->items.removeLast(); -+ else -+ item->d->container1->items.removeRef( item ); - } - item->d->container1 = 0; - if ( item->d->container2 && d->firstContainer ) { -- item->d->container2->items.removeRef( item ); -+ if (item->d->container2->items.last() == item) -+ item->d->container2->items.removeLast(); -+ else -+ item->d->container2->items.removeRef( item ); - } - item->d->container2 = 0; - ---- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h~qiconview-speed -+++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h -@@ -444,6 +444,7 @@ - virtual void contentsDropEvent( QDropEvent *e ); - #endif - -+ void bufferedPaintEvent( QPaintEvent* ); - virtual void resizeEvent( QResizeEvent* e ); - virtual void keyPressEvent( QKeyEvent *e ); - virtual void focusInEvent( QFocusEvent *e ); |