Diffstat (limited to 'qt/qt-2.3.7.patch/qte237-iconviewspeed.patch') (more/less context) (ignore whitespace changes)
-rw-r--r-- | qt/qt-2.3.7.patch/qte237-iconviewspeed.patch | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch b/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch deleted file mode 100644 index 81064e1..0000000 --- a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch +++ b/dev/null @@ -1,142 +0,0 @@ -Speed up patches backported from - -http://robotics.dei.unipd.it/~koral/KDE/kflicker.html - -and - -http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread) - - - - -diff -u qt-2.3.7_old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp ---- qt-2.3.7_old/src/iconview/qiconview.cpp 2004-06-13 22:29:56.000000000 +0200 -+++ qt-2.3.7/src/iconview/qiconview.cpp 2004-06-13 22:33:32.000000000 +0200 -@@ -220,6 +220,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; -@@ -2263,6 +2264,7 @@ - d->currentItem = 0; - d->highlightedItem = 0; - d->rubber = 0; -+ d->backBuffer = 0; - d->scrollTimer = 0; - d->startDragItem = 0; - d->tmpCurrentItem = 0; -@@ -2411,6 +2413,8 @@ - delete item; - item = tmp; - } -+ delete d->backBuffer; -+ d->backBuffer = 0; - delete d->fm; - d->fm = 0; - #ifndef QT_NO_TOOLTIP -@@ -2877,6 +2881,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 - */ - -@@ -4855,7 +4901,7 @@ - if ( !d->rubber ) - drawDragShapes( d->oldDragPos ); - } -- viewportPaintEvent( (QPaintEvent*)e ); -+ bufferedPaintEvent ((QPaintEvent*)e ); - if ( d->dragging ) { - if ( !d->rubber ) - drawDragShapes( d->oldDragPos ); -@@ -5286,11 +5332,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; - -diff -u qt-2.3.7_old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h ---- qt-2.3.7_old/src/iconview/qiconview.h 2004-06-13 22:29:56.000000000 +0200 -+++ qt-2.3.7/src/iconview/qiconview.h 2004-06-13 22:33:32.000000000 +0200 -@@ -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 ); ---- qt-2.3.7-old/src/widgets/qscrollview.cpp 2004-07-23 15:22:56.000000000 +0200 -+++ qt-2.3.7/src/widgets/qscrollview.cpp 2004-07-23 19:23:10.000000000 +0200 -@@ -1266,6 +1277,9 @@ - case QEvent::LayoutHint: - d->autoResizeHint(this); - break; -+ case QEvent::WindowActivate: -+ case QEvent::WindowDeactivate: -+ return TRUE; - default: - break; - } |