author | mickeyl <mickeyl> | 2005-02-19 16:07:58 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2005-02-19 16:07:58 (UTC) |
commit | b7bf9c7acdc010eb30bc246372efb0d1b394166a (patch) (unidiff) | |
tree | 8dde116603cd8ddf439a881fc4a1d8f413af617b /qt/qt-2.3.10.patch/qiconview-speed.patch | |
parent | 298d0d244ca724405ca0651775ed61a22ce7a5ae (diff) | |
download | opie-b7bf9c7acdc010eb30bc246372efb0d1b394166a.zip opie-b7bf9c7acdc010eb30bc246372efb0d1b394166a.tar.gz opie-b7bf9c7acdc010eb30bc246372efb0d1b394166a.tar.bz2 |
hello qte2.3.10 patches
bye bye old patches
Diffstat (limited to 'qt/qt-2.3.10.patch/qiconview-speed.patch') (more/less context) (ignore whitespace changes)
-rw-r--r-- | qt/qt-2.3.10.patch/qiconview-speed.patch | 122 |
1 files changed, 122 insertions, 0 deletions
diff --git a/qt/qt-2.3.10.patch/qiconview-speed.patch b/qt/qt-2.3.10.patch/qiconview-speed.patch new file mode 100644 index 0000000..bac9b97 --- a/dev/null +++ b/qt/qt-2.3.10.patch/qiconview-speed.patch | |||
@@ -0,0 +1,122 @@ | |||
1 | |||
2 | # | ||
3 | # Patch managed by http://www.holgerschurig.de/patcher.html | ||
4 | # | ||
5 | |||
6 | --- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp~qiconview-speed | ||
7 | +++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp | ||
8 | @@ -225,6 +225,7 @@ | ||
9 | QIconView::SelectionMode selectionMode; | ||
10 | QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor; | ||
11 | QRect *rubber; | ||
12 | + QPixmap *backBuffer; | ||
13 | QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer, | ||
14 | *fullRedrawTimer; | ||
15 | int rastX, rastY, spacing; | ||
16 | @@ -2268,6 +2269,7 @@ | ||
17 | d->currentItem = 0; | ||
18 | d->highlightedItem = 0; | ||
19 | d->rubber = 0; | ||
20 | + d->backBuffer = 0; | ||
21 | d->scrollTimer = 0; | ||
22 | d->startDragItem = 0; | ||
23 | d->tmpCurrentItem = 0; | ||
24 | @@ -2416,6 +2418,8 @@ | ||
25 | delete item; | ||
26 | item = tmp; | ||
27 | } | ||
28 | + delete d->backBuffer; | ||
29 | + d->backBuffer = 0; | ||
30 | delete d->fm; | ||
31 | d->fm = 0; | ||
32 | #ifndef QT_NO_TOOLTIP | ||
33 | @@ -2882,6 +2886,48 @@ | ||
34 | } | ||
35 | |||
36 | /*! | ||
37 | + This function grabs all paintevents that otherwise would have been | ||
38 | + processed by the QScrollView::viewportPaintEvent(). Here we use a | ||
39 | + doublebuffer to reduce 'on-paint' flickering on QIconView | ||
40 | + (and of course its childs). | ||
41 | + | ||
42 | + \sa QScrollView::viewportPaintEvent(), QIconView::drawContents() | ||
43 | +*/ | ||
44 | + | ||
45 | +void QIconView::bufferedPaintEvent( QPaintEvent* pe ) | ||
46 | +{ | ||
47 | + QWidget* vp = viewport(); | ||
48 | + QRect r = pe->rect() & vp->rect(); | ||
49 | + int ex = r.x() + contentsX(); | ||
50 | + int ey = r.y() + contentsY(); | ||
51 | + int ew = r.width(); | ||
52 | + int eh = r.height(); | ||
53 | + | ||
54 | + if ( !d->backBuffer ) | ||
55 | +d->backBuffer = new QPixmap(vp->size()); | ||
56 | + if ( d->backBuffer->size() != vp->size() ) { | ||
57 | +//Resize function (with hysteesis). Uses a good compromise between memory | ||
58 | +//consumption and speed (number) of resizes. | ||
59 | + float newWidth = (float)vp->width(); | ||
60 | +float newHeight = (float)vp->height(); | ||
61 | +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() ) | ||
62 | +{ | ||
63 | + newWidth *= 1.1892; | ||
64 | + newHeight *= 1.1892; | ||
65 | + d->backBuffer->resize( (int)newWidth, (int)newHeight ); | ||
66 | +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() ) | ||
67 | + d->backBuffer->resize( (int)newWidth, (int)newHeight ); | ||
68 | + } | ||
69 | + | ||
70 | + QPainter p; | ||
71 | + p.begin(d->backBuffer, vp); | ||
72 | + drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh); | ||
73 | + p.end(); | ||
74 | + bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh); | ||
75 | +} | ||
76 | + | ||
77 | +/*! | ||
78 | + | ||
79 | \reimp | ||
80 | */ | ||
81 | |||
82 | @@ -4939,7 +4985,7 @@ | ||
83 | if ( !d->rubber ) | ||
84 | drawDragShapes( d->oldDragPos ); | ||
85 | } | ||
86 | - viewportPaintEvent( (QPaintEvent*)e ); | ||
87 | + bufferedPaintEvent ((QPaintEvent*)e ); | ||
88 | if ( d->dragging ) { | ||
89 | if ( !d->rubber ) | ||
90 | drawDragShapes( d->oldDragPos ); | ||
91 | @@ -5377,11 +5423,19 @@ | ||
92 | return; | ||
93 | |||
94 | if ( item->d->container1 && d->firstContainer ) { | ||
95 | -item->d->container1->items.removeRef( item ); | ||
96 | + //Special-case checking of the last item, since this may be | ||
97 | + //called a few times for the same item. | ||
98 | + if (item->d->container1->items.last() == item) | ||
99 | + item->d->container1->items.removeLast(); | ||
100 | + else | ||
101 | + item->d->container1->items.removeRef( item ); | ||
102 | } | ||
103 | item->d->container1 = 0; | ||
104 | if ( item->d->container2 && d->firstContainer ) { | ||
105 | -item->d->container2->items.removeRef( item ); | ||
106 | + if (item->d->container2->items.last() == item) | ||
107 | + item->d->container2->items.removeLast(); | ||
108 | + else | ||
109 | + item->d->container2->items.removeRef( item ); | ||
110 | } | ||
111 | item->d->container2 = 0; | ||
112 | |||
113 | --- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h~qiconview-speed | ||
114 | +++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h | ||
115 | @@ -444,6 +444,7 @@ | ||
116 | virtual void contentsDropEvent( QDropEvent *e ); | ||
117 | #endif | ||
118 | |||
119 | + void bufferedPaintEvent( QPaintEvent* ); | ||
120 | virtual void resizeEvent( QResizeEvent* e ); | ||
121 | virtual void keyPressEvent( QKeyEvent *e ); | ||
122 | virtual void focusInEvent( QFocusEvent *e ); | ||