summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.7.patch/qte237-all.patch7
-rw-r--r--qt/qt-2.3.7.patch/qte237-iconviewspeed.patch7
2 files changed, 0 insertions, 14 deletions
diff --git a/qt/qt-2.3.7.patch/qte237-all.patch b/qt/qt-2.3.7.patch/qte237-all.patch
index e3351a3..6f94211 100644
--- a/qt/qt-2.3.7.patch/qte237-all.patch
+++ b/qt/qt-2.3.7.patch/qte237-all.patch
@@ -143,391 +143,384 @@ diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static qt-2.3.7/configs/linux-x8
143 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static2004-07-23 15:22:56.000000000 +0200 143 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static2004-07-23 15:22:56.000000000 +0200
144 +++ qt-2.3.7/configs/linux-x86rtti-g++-static2004-07-23 15:23:12.000000000 +0200 144 +++ qt-2.3.7/configs/linux-x86rtti-g++-static2004-07-23 15:23:12.000000000 +0200
145@@ -36,7 +36,7 @@ 145@@ -36,7 +36,7 @@
146 SYSCONF_LIBS_YACC= 146 SYSCONF_LIBS_YACC=
147 147
148 # Linking applications 148 # Linking applications
149 -SYSCONF_LINK = gcc 149 -SYSCONF_LINK = gcc
150 +SYSCONF_LINK = g++ 150 +SYSCONF_LINK = g++
151 SYSCONF_LFLAGS = 151 SYSCONF_LFLAGS =
152 SYSCONF_LIBS = -lm 152 SYSCONF_LIBS = -lm
153 153
154diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug qt-2.3.7/configs/linux-x86rtti-g++-static-debug 154diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug qt-2.3.7/configs/linux-x86rtti-g++-static-debug
155 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200 155 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200
156 +++ qt-2.3.7/configs/linux-x86rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200 156 +++ qt-2.3.7/configs/linux-x86rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
157@@ -36,7 +36,7 @@ 157@@ -36,7 +36,7 @@
158 SYSCONF_LIBS_YACC= 158 SYSCONF_LIBS_YACC=
159 159
160 # Linking applications 160 # Linking applications
161 -SYSCONF_LINK = gcc 161 -SYSCONF_LINK = gcc
162 +SYSCONF_LINK = g++ 162 +SYSCONF_LINK = g++
163 SYSCONF_LFLAGS = 163 SYSCONF_LFLAGS =
164 SYSCONF_LIBS = -lm 164 SYSCONF_LIBS = -lm
165 165
166diff -ur qt-2.3.7-old/include/qapplication.h qt-2.3.7/include/qapplication.h 166diff -ur qt-2.3.7-old/include/qapplication.h qt-2.3.7/include/qapplication.h
167 --- qt-2.3.7-old/include/qapplication.h2004-07-23 15:22:56.000000000 +0200 167 --- qt-2.3.7-old/include/qapplication.h2004-07-23 15:22:56.000000000 +0200
168 +++ qt-2.3.7/include/qapplication.h2004-07-23 15:25:42.000000000 +0200 168 +++ qt-2.3.7/include/qapplication.h2004-07-23 15:25:42.000000000 +0200
169@@ -61,6 +61,10 @@ 169@@ -61,6 +61,10 @@
170 class QSemaphore; 170 class QSemaphore;
171 #endif 171 #endif
172 172
173+#if !defined( QT_WEAK_SYMBOL ) 173+#if !defined( QT_WEAK_SYMBOL )
174+#define QT_WEAK_SYMBOL 174+#define QT_WEAK_SYMBOL
175+#endif 175+#endif
176+ 176+
177 // REMOVE IN 3.0 (just here for moc source compatibility) 177 // REMOVE IN 3.0 (just here for moc source compatibility)
178 #define QNonBaseApplication QApplication 178 #define QNonBaseApplication QApplication
179 179
180@@ -85,7 +89,10 @@ 180@@ -85,7 +89,10 @@
181 181
182 #ifndef QT_NO_STYLE 182 #ifndef QT_NO_STYLE
183 static QStyle &style(); 183 static QStyle &style();
184 - static void setStyle( QStyle* ); 184 - static void setStyle( QStyle* );
185 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL; 185 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
186+private: 186+private:
187 +static void setStyle_NonWeak( QStyle* ); 187 +static void setStyle_NonWeak( QStyle* );
188+public: 188+public:
189 #endif 189 #endif
190 #if 1/* OBSOLETE */ 190 #if 1/* OBSOLETE */
191 enum ColorMode { NormalColors, CustomColors }; 191 enum ColorMode { NormalColors, CustomColors };
192@@ -106,11 +113,19 @@ 192@@ -106,11 +113,19 @@
193 #ifndef QT_NO_PALETTE 193 #ifndef QT_NO_PALETTE
194 static QPalette palette( const QWidget* = 0 ); 194 static QPalette palette( const QWidget* = 0 );
195 static void setPalette( const QPalette &, bool informWidgets=FALSE, 195 static void setPalette( const QPalette &, bool informWidgets=FALSE,
196 + const char* className = 0 ) QT_WEAK_SYMBOL; 196 + const char* className = 0 ) QT_WEAK_SYMBOL;
197+private: 197+private:
198 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE, 198 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
199 const char* className = 0 ); 199 const char* className = 0 );
200+public: 200+public:
201 #endif 201 #endif
202 static QFont font( const QWidget* = 0 ); 202 static QFont font( const QWidget* = 0 );
203 static void setFont( const QFont &, bool informWidgets=FALSE, 203 static void setFont( const QFont &, bool informWidgets=FALSE,
204 + const char* className = 0 ) QT_WEAK_SYMBOL; 204 + const char* className = 0 ) QT_WEAK_SYMBOL;
205+private: 205+private:
206 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE, 206 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
207 const char* className = 0 ); 207 const char* className = 0 );
208 +public: 208 +public:
209 static QFontMetrics fontMetrics(); 209 static QFontMetrics fontMetrics();
210 210
211 QWidget *mainWidget() const; 211 QWidget *mainWidget() const;
212@@ -207,7 +222,10 @@ 212@@ -207,7 +222,10 @@
213 void qwsSetCustomColors( QRgb *colortable, int start, int numColors ); 213 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
214 #ifndef QT_NO_QWS_MANAGER 214 #ifndef QT_NO_QWS_MANAGER
215 static QWSDecoration &qwsDecoration(); 215 static QWSDecoration &qwsDecoration();
216- static void qwsSetDecoration( QWSDecoration *); 216- static void qwsSetDecoration( QWSDecoration *);
217+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL; 217+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
218+private: 218+private:
219+ static void qwsSetDecoration_NonWeak( QWSDecoration *); 219+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
220+public: 220+public:
221 #endif 221 #endif
222 #endif 222 #endif
223 223
224diff -ur qt-2.3.7-old/include/qcstring.h qt-2.3.7/include/qcstring.h 224diff -ur qt-2.3.7-old/include/qcstring.h qt-2.3.7/include/qcstring.h
225 --- qt-2.3.7-old/include/qcstring.h2004-07-23 15:22:56.000000000 +0200 225 --- qt-2.3.7-old/include/qcstring.h2004-07-23 15:22:56.000000000 +0200
226 +++ qt-2.3.7/include/qcstring.h2004-07-23 15:42:01.000000000 +0200 226 +++ qt-2.3.7/include/qcstring.h2004-07-23 15:42:01.000000000 +0200
227@@ -119,7 +119,7 @@ 227@@ -119,7 +119,7 @@
228 // We want to keep source compatibility for 2.x 228 // We want to keep source compatibility for 2.x
229 // ### TODO for 4.0: completely remove these and the cstr* functions 229 // ### TODO for 4.0: completely remove these and the cstr* functions
230 230
231-#if !defined(QT_GENUINE_STR) 231-#if !defined(QT_GENUINE_STR)
232+#if 0 232+#if 0
233 233
234 #undefstrlen 234 #undefstrlen
235 #define strlen qstrlen 235 #define strlen qstrlen
236diff -ur qt-2.3.7-old/include/qfontdatabase.h qt-2.3.7/include/qfontdatabase.h 236diff -ur qt-2.3.7-old/include/qfontdatabase.h qt-2.3.7/include/qfontdatabase.h
237 --- qt-2.3.7-old/include/qfontdatabase.h2004-07-23 15:22:56.000000000 +0200 237 --- qt-2.3.7-old/include/qfontdatabase.h2004-07-23 15:22:56.000000000 +0200
238 +++ qt-2.3.7/include/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200 238 +++ qt-2.3.7/include/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200
239@@ -59,6 +59,10 @@ 239@@ -59,6 +59,10 @@
240 class QDiskFont; 240 class QDiskFont;
241 #endif 241 #endif
242 242
243+#if !defined( QT_WEAK_SYMBOL ) 243+#if !defined( QT_WEAK_SYMBOL )
244+#define QT_WEAK_SYMBOL 244+#define QT_WEAK_SYMBOL
245+#endif 245+#endif
246+ 246+
247 class QFontDatabasePrivate; 247 class QFontDatabasePrivate;
248 248
249 class Q_EXPORT QFontDatabase 249 class Q_EXPORT QFontDatabase
250@@ -67,9 +71,16 @@ 250@@ -67,9 +71,16 @@
251 QFontDatabase(); 251 QFontDatabase();
252 252
253 QStringList families( bool onlyForLocale = TRUE ) const; 253 QStringList families( bool onlyForLocale = TRUE ) const;
254+ 254+
255+ 255+
256 QValueList<int> pointSizes( const QString &family, 256 QValueList<int> pointSizes( const QString &family,
257 const QString &style = QString::null, 257 const QString &style = QString::null,
258 - const QString &charSet = QString::null ); 258 - const QString &charSet = QString::null );
259 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL; 259 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
260+private: 260+private:
261+ QValueList<int> pointSizes_NonWeak( const QString &family, 261+ QValueList<int> pointSizes_NonWeak( const QString &family,
262 + const QString &style, 262 + const QString &style,
263 + const QString &charSet ); 263 + const QString &charSet );
264+public: 264+public:
265 QStringList styles( const QString &family, 265 QStringList styles( const QString &family,
266 const QString &charSet = QString::null ) const; 266 const QString &charSet = QString::null ) const;
267 QStringList charSets( const QString &familyName, 267 QStringList charSets( const QString &familyName,
268diff -ur qt-2.3.7-old/include/qglobal.h qt-2.3.7/include/qglobal.h 268diff -ur qt-2.3.7-old/include/qglobal.h qt-2.3.7/include/qglobal.h
269 --- qt-2.3.7-old/include/qglobal.h2004-07-23 15:22:56.000000000 +0200 269 --- qt-2.3.7-old/include/qglobal.h2004-07-23 15:22:56.000000000 +0200
270 +++ qt-2.3.7/include/qglobal.h2004-07-23 15:42:01.000000000 +0200 270 +++ qt-2.3.7/include/qglobal.h2004-07-23 15:42:01.000000000 +0200
271@@ -207,8 +207,16 @@ 271@@ -207,8 +207,16 @@
272 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96 272 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
273 #define Q_FP_CCAST_BROKEN 273 #define Q_FP_CCAST_BROKEN
274 #endif 274 #endif
275+/* ARM gcc pads structs to 32 bits, even when they contain a single 275+/* ARM gcc pads structs to 32 bits, even when they contain a single
276+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid 276+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
277+ QString bloat. However, gcc 3.4 doesn't allow us to create references to 277+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
278+ members of a packed struct. (Pointers are OK, because then you 278+ members of a packed struct. (Pointers are OK, because then you
279+ supposedly know what you are doing.) */ 279+ supposedly know what you are doing.) */
280 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP) 280 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
281 #define Q_PACKED __attribute__ ((packed)) 281 #define Q_PACKED __attribute__ ((packed))
282+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4 282+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
283+# define Q_NO_PACKED_REFERENCE 283+# define Q_NO_PACKED_REFERENCE
284+# endif 284+# endif
285 #endif 285 #endif
286 #elif defined(__xlC__) 286 #elif defined(__xlC__)
287 #define _CC_XLC_ 287 #define _CC_XLC_
288diff -ur qt-2.3.7-old/include/qiconview.h qt-2.3.7/include/qiconview.h 288diff -ur qt-2.3.7-old/include/qiconview.h qt-2.3.7/include/qiconview.h
289 --- qt-2.3.7-old/include/qiconview.h2004-07-23 15:22:56.000000000 +0200 289 --- qt-2.3.7-old/include/qiconview.h2004-07-23 15:22:56.000000000 +0200
290 +++ qt-2.3.7/include/qiconview.h2004-07-23 15:45:34.000000000 +0200 290 +++ qt-2.3.7/include/qiconview.h2004-07-23 15:45:34.000000000 +0200
291@@ -444,6 +444,7 @@ 291@@ -444,6 +444,7 @@
292 virtual void contentsDropEvent( QDropEvent *e ); 292 virtual void contentsDropEvent( QDropEvent *e );
293 #endif 293 #endif
294 294
295+ void bufferedPaintEvent( QPaintEvent* ); 295+ void bufferedPaintEvent( QPaintEvent* );
296 virtual void resizeEvent( QResizeEvent* e ); 296 virtual void resizeEvent( QResizeEvent* e );
297 virtual void keyPressEvent( QKeyEvent *e ); 297 virtual void keyPressEvent( QKeyEvent *e );
298 virtual void focusInEvent( QFocusEvent *e ); 298 virtual void focusInEvent( QFocusEvent *e );
299diff -ur qt-2.3.7-old/include/qsortedlist.h qt-2.3.7/include/qsortedlist.h 299diff -ur qt-2.3.7-old/include/qsortedlist.h qt-2.3.7/include/qsortedlist.h
300 --- qt-2.3.7-old/include/qsortedlist.h2004-07-23 15:22:56.000000000 +0200 300 --- qt-2.3.7-old/include/qsortedlist.h2004-07-23 15:22:56.000000000 +0200
301 +++ qt-2.3.7/include/qsortedlist.h2004-07-23 15:42:01.000000000 +0200 301 +++ qt-2.3.7/include/qsortedlist.h2004-07-23 15:42:01.000000000 +0200
302@@ -48,7 +48,7 @@ 302@@ -48,7 +48,7 @@
303 public: 303 public:
304 QSortedList() {} 304 QSortedList() {}
305 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {} 305 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
306- ~QSortedList() { clear(); } 306- ~QSortedList() { clear(); }
307+ ~QSortedList() { this->clear(); } 307+ ~QSortedList() { this->clear(); }
308 QSortedList<type> &operator=(const QSortedList<type> &l) 308 QSortedList<type> &operator=(const QSortedList<type> &l)
309 { return (QSortedList<type>&)QList<type>::operator=(l); } 309 { return (QSortedList<type>&)QList<type>::operator=(l); }
310 310
311diff -ur qt-2.3.7-old/include/qstring.h qt-2.3.7/include/qstring.h 311diff -ur qt-2.3.7-old/include/qstring.h qt-2.3.7/include/qstring.h
312 --- qt-2.3.7-old/include/qstring.h2004-07-23 15:22:56.000000000 +0200 312 --- qt-2.3.7-old/include/qstring.h2004-07-23 15:22:56.000000000 +0200
313 +++ qt-2.3.7/include/qstring.h2004-07-23 15:42:01.000000000 +0200 313 +++ qt-2.3.7/include/qstring.h2004-07-23 15:42:01.000000000 +0200
314@@ -163,8 +163,16 @@ 314@@ -163,8 +163,16 @@
315 bool isLetterOrNumber() const; 315 bool isLetterOrNumber() const;
316 bool isDigit() const; 316 bool isDigit() const;
317 317
318+ 318+
319+#ifdef Q_NO_PACKED_REFERENCE 319+#ifdef Q_NO_PACKED_REFERENCE
320+ uchar& cell() { return *(&cl); } 320+ uchar& cell() { return *(&cl); }
321+ uchar& row() { return *(&rw); } 321+ uchar& row() { return *(&rw); }
322+#else 322+#else
323 uchar& cell() { return cl; } 323 uchar& cell() { return cl; }
324- uchar& row() { return rw; } 324- uchar& row() { return rw; }
325+ uchar& row() { return rw; } 325+ uchar& row() { return rw; }
326+#endif 326+#endif
327+ 327+
328+ 328+
329 uchar cell() const { return cl; } 329 uchar cell() const { return cl; }
330 uchar row() const { return rw; } 330 uchar row() const { return rw; }
331 331
332diff -ur qt-2.3.7-old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp 332diff -ur qt-2.3.7-old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp
333 --- qt-2.3.7-old/src/iconview/qiconview.cpp2004-07-23 15:22:56.000000000 +0200 333 --- qt-2.3.7-old/src/iconview/qiconview.cpp2004-07-23 15:22:56.000000000 +0200
334 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-07-23 15:45:34.000000000 +0200 334 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-07-23 15:45:34.000000000 +0200
335@@ -1,5 +1,5 @@
336 /****************************************************************************
337-** $Id$
338+** $Id$
339 **
340 ** Implementation of QIconView widget class
341 **
342@@ -220,6 +220,7 @@ 335@@ -220,6 +220,7 @@
343 QIconView::SelectionMode selectionMode; 336 QIconView::SelectionMode selectionMode;
344 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor; 337 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
345 QRect *rubber; 338 QRect *rubber;
346+ QPixmap *backBuffer; 339+ QPixmap *backBuffer;
347 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer, 340 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
348 *fullRedrawTimer; 341 *fullRedrawTimer;
349 int rastX, rastY, spacing; 342 int rastX, rastY, spacing;
350@@ -2263,6 +2264,7 @@ 343@@ -2263,6 +2264,7 @@
351 d->currentItem = 0; 344 d->currentItem = 0;
352 d->highlightedItem = 0; 345 d->highlightedItem = 0;
353 d->rubber = 0; 346 d->rubber = 0;
354+ d->backBuffer = 0; 347+ d->backBuffer = 0;
355 d->scrollTimer = 0; 348 d->scrollTimer = 0;
356 d->startDragItem = 0; 349 d->startDragItem = 0;
357 d->tmpCurrentItem = 0; 350 d->tmpCurrentItem = 0;
358@@ -2411,6 +2413,8 @@ 351@@ -2411,6 +2413,8 @@
359 delete item; 352 delete item;
360 item = tmp; 353 item = tmp;
361 } 354 }
362+ delete d->backBuffer; 355+ delete d->backBuffer;
363+ d->backBuffer = 0; 356+ d->backBuffer = 0;
364 delete d->fm; 357 delete d->fm;
365 d->fm = 0; 358 d->fm = 0;
366 #ifndef QT_NO_TOOLTIP 359 #ifndef QT_NO_TOOLTIP
367@@ -2877,6 +2881,48 @@ 360@@ -2877,6 +2881,48 @@
368 } 361 }
369 362
370 /*! 363 /*!
371+ This function grabs all paintevents that otherwise would have been 364+ This function grabs all paintevents that otherwise would have been
372+ processed by the QScrollView::viewportPaintEvent(). Here we use a 365+ processed by the QScrollView::viewportPaintEvent(). Here we use a
373+ doublebuffer to reduce 'on-paint' flickering on QIconView 366+ doublebuffer to reduce 'on-paint' flickering on QIconView
374+ (and of course its childs). 367+ (and of course its childs).
375+ 368+
376+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents() 369+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
377+*/ 370+*/
378+ 371+
379+void QIconView::bufferedPaintEvent( QPaintEvent* pe ) 372+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
380+{ 373+{
381+ QWidget* vp = viewport(); 374+ QWidget* vp = viewport();
382+ QRect r = pe->rect() & vp->rect(); 375+ QRect r = pe->rect() & vp->rect();
383+ int ex = r.x() + contentsX(); 376+ int ex = r.x() + contentsX();
384+ int ey = r.y() + contentsY(); 377+ int ey = r.y() + contentsY();
385+ int ew = r.width(); 378+ int ew = r.width();
386+ int eh = r.height(); 379+ int eh = r.height();
387+ 380+
388+ if ( !d->backBuffer ) 381+ if ( !d->backBuffer )
389 +d->backBuffer = new QPixmap(vp->size()); 382 +d->backBuffer = new QPixmap(vp->size());
390+ if ( d->backBuffer->size() != vp->size() ) { 383+ if ( d->backBuffer->size() != vp->size() ) {
391 +//Resize function (with hysteesis). Uses a good compromise between memory 384 +//Resize function (with hysteesis). Uses a good compromise between memory
392 +//consumption and speed (number) of resizes. 385 +//consumption and speed (number) of resizes.
393+ float newWidth = (float)vp->width(); 386+ float newWidth = (float)vp->width();
394 +float newHeight = (float)vp->height(); 387 +float newHeight = (float)vp->height();
395 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() ) 388 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
396 +{ 389 +{
397 + newWidth *= 1.1892; 390 + newWidth *= 1.1892;
398 + newHeight *= 1.1892; 391 + newHeight *= 1.1892;
399 + d->backBuffer->resize( (int)newWidth, (int)newHeight ); 392 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
400 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() ) 393 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
401 + d->backBuffer->resize( (int)newWidth, (int)newHeight ); 394 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
402+ } 395+ }
403+ 396+
404+ QPainter p; 397+ QPainter p;
405+ p.begin(d->backBuffer, vp); 398+ p.begin(d->backBuffer, vp);
406+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh); 399+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
407+ p.end(); 400+ p.end();
408+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh); 401+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
409+} 402+}
410+ 403+
411+/*! 404+/*!
412+ 405+
413 \reimp 406 \reimp
414 */ 407 */
415 408
416@@ -4855,7 +4901,7 @@ 409@@ -4855,7 +4901,7 @@
417 if ( !d->rubber ) 410 if ( !d->rubber )
418 drawDragShapes( d->oldDragPos ); 411 drawDragShapes( d->oldDragPos );
419 } 412 }
420 - viewportPaintEvent( (QPaintEvent*)e ); 413 - viewportPaintEvent( (QPaintEvent*)e );
421+ bufferedPaintEvent ((QPaintEvent*)e ); 414+ bufferedPaintEvent ((QPaintEvent*)e );
422 if ( d->dragging ) { 415 if ( d->dragging ) {
423 if ( !d->rubber ) 416 if ( !d->rubber )
424 drawDragShapes( d->oldDragPos ); 417 drawDragShapes( d->oldDragPos );
425@@ -5286,11 +5332,19 @@ 418@@ -5286,11 +5332,19 @@
426 return; 419 return;
427 420
428 if ( item->d->container1 && d->firstContainer ) { 421 if ( item->d->container1 && d->firstContainer ) {
429 -item->d->container1->items.removeRef( item ); 422 -item->d->container1->items.removeRef( item );
430+ //Special-case checking of the last item, since this may be 423+ //Special-case checking of the last item, since this may be
431+ //called a few times for the same item. 424+ //called a few times for the same item.
432+ if (item->d->container1->items.last() == item) 425+ if (item->d->container1->items.last() == item)
433+ item->d->container1->items.removeLast(); 426+ item->d->container1->items.removeLast();
434+ else 427+ else
435+ item->d->container1->items.removeRef( item ); 428+ item->d->container1->items.removeRef( item );
436 } 429 }
437 item->d->container1 = 0; 430 item->d->container1 = 0;
438 if ( item->d->container2 && d->firstContainer ) { 431 if ( item->d->container2 && d->firstContainer ) {
439 -item->d->container2->items.removeRef( item ); 432 -item->d->container2->items.removeRef( item );
440+ if (item->d->container2->items.last() == item) 433+ if (item->d->container2->items.last() == item)
441+ item->d->container2->items.removeLast(); 434+ item->d->container2->items.removeLast();
442+ else 435+ else
443+ item->d->container2->items.removeRef( item ); 436+ item->d->container2->items.removeRef( item );
444 } 437 }
445 item->d->container2 = 0; 438 item->d->container2 = 0;
446 439
447diff -ur qt-2.3.7-old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h 440diff -ur qt-2.3.7-old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h
448 --- qt-2.3.7-old/src/iconview/qiconview.h2004-07-23 15:22:56.000000000 +0200 441 --- qt-2.3.7-old/src/iconview/qiconview.h2004-07-23 15:22:56.000000000 +0200
449 +++ qt-2.3.7/src/iconview/qiconview.h2004-07-23 15:45:34.000000000 +0200 442 +++ qt-2.3.7/src/iconview/qiconview.h2004-07-23 15:45:34.000000000 +0200
450@@ -444,6 +444,7 @@ 443@@ -444,6 +444,7 @@
451 virtual void contentsDropEvent( QDropEvent *e ); 444 virtual void contentsDropEvent( QDropEvent *e );
452 #endif 445 #endif
453 446
454+ void bufferedPaintEvent( QPaintEvent* ); 447+ void bufferedPaintEvent( QPaintEvent* );
455 virtual void resizeEvent( QResizeEvent* e ); 448 virtual void resizeEvent( QResizeEvent* e );
456 virtual void keyPressEvent( QKeyEvent *e ); 449 virtual void keyPressEvent( QKeyEvent *e );
457 virtual void focusInEvent( QFocusEvent *e ); 450 virtual void focusInEvent( QFocusEvent *e );
458diff -ur qt-2.3.7-old/src/kernel/qapplication.cpp qt-2.3.7/src/kernel/qapplication.cpp 451diff -ur qt-2.3.7-old/src/kernel/qapplication.cpp qt-2.3.7/src/kernel/qapplication.cpp
459 --- qt-2.3.7-old/src/kernel/qapplication.cpp2004-07-23 15:22:56.000000000 +0200 452 --- qt-2.3.7-old/src/kernel/qapplication.cpp2004-07-23 15:22:56.000000000 +0200
460 +++ qt-2.3.7/src/kernel/qapplication.cpp2004-07-23 15:25:42.000000000 +0200 453 +++ qt-2.3.7/src/kernel/qapplication.cpp2004-07-23 15:25:42.000000000 +0200
461@@ -35,6 +35,8 @@ 454@@ -35,6 +35,8 @@
462 ** 455 **
463 **********************************************************************/ 456 **********************************************************************/
464 457
465 +#define QT_WEAK_SYMBOL__attribute__(( weak )) 458 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
466+ 459+
467 #include "qobjectlist.h" 460 #include "qobjectlist.h"
468 #include "qobjectdict.h" 461 #include "qobjectdict.h"
469 #include "qapplication.h" 462 #include "qapplication.h"
470@@ -933,11 +935,16 @@ 463@@ -933,11 +935,16 @@
471 #ifndef QT_NO_STYLE 464 #ifndef QT_NO_STYLE
472 void QApplication::setStyle( QStyle *style ) 465 void QApplication::setStyle( QStyle *style )
473 { 466 {
474 +setStyle_NonWeak ( style ); 467 +setStyle_NonWeak ( style );
475+} 468+}
476+ 469+
477+void QApplication::setStyle_NonWeak( QStyle *style ) 470+void QApplication::setStyle_NonWeak( QStyle *style )
478+{ 471+{
479 QStyle* old = app_style; 472 QStyle* old = app_style;
480- app_style = style; 473- app_style = style;
481 474
482 if ( startingUp() ) { 475 if ( startingUp() ) {
483 delete old; 476 delete old;
484 +app_style = style; 477 +app_style = style;
485 return; 478 return;
486 } 479 }
487 480
488@@ -958,6 +965,8 @@ 481@@ -958,6 +965,8 @@
489 old->unPolish( qApp ); 482 old->unPolish( qApp );
490 } 483 }
491 484
492+ app_style = style; 485+ app_style = style;
493+ 486+
494 // take care of possible palette requirements of certain gui 487 // take care of possible palette requirements of certain gui
495 // styles. Do it before polishing the application since the style 488 // styles. Do it before polishing the application since the style
496 // might call QApplication::setStyle() itself 489 // might call QApplication::setStyle() itself
497@@ -1184,13 +1193,30 @@ 490@@ -1184,13 +1193,30 @@
498 \sa QWidget::setPalette(), palette(), QStyle::polish() 491 \sa QWidget::setPalette(), palette(), QStyle::polish()
499 */ 492 */
500 493
501-void QApplication::setPalette( const QPalette &palette, bool informWidgets, 494-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
502+void QApplication::setPalette ( const QPalette &palette, bool informWidgets, 495+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
503 + const char* className ) 496 + const char* className )
504+{ 497+{
505 +setPalette_NonWeak ( palette, informWidgets, className ); 498 +setPalette_NonWeak ( palette, informWidgets, className );
506+} 499+}
507+ 500+
508+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets, 501+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
509 const char* className ) 502 const char* className )
510 { 503 {
511 QPalette pal = palette; 504 QPalette pal = palette;
512 #ifndef QT_NO_STYLE 505 #ifndef QT_NO_STYLE
513- if ( !startingUp() ) 506- if ( !startingUp() )
514+ if ( !startingUp() ) { 507+ if ( !startingUp() ) {
515 qApp->style().polish( pal );// NB: non-const reference 508 qApp->style().polish( pal );// NB: non-const reference
516 +if ( className ) { 509 +if ( className ) {
517 + // if we just polished a class specific palette (this normally 510 + // if we just polished a class specific palette (this normally
518 + // only called by qt_fix_tooltips - see below), we better re- 511 + // only called by qt_fix_tooltips - see below), we better re-
519 + // polish the global palette. Some styles like liquid can get 512 + // polish the global palette. Some styles like liquid can get
520 + // confused, because they can not detect if the polished palette 513 + // confused, because they can not detect if the polished palette
521 + // is the global one or only a class specific one. 514 + // is the global one or only a class specific one.
522 + // (liquid uses this palette to calculate blending pixmaps) 515 + // (liquid uses this palette to calculate blending pixmaps)
523 + QPalette p = qApp-> palette ( ); 516 + QPalette p = qApp-> palette ( );
524 + qApp->style().polish ( p ); 517 + qApp->style().polish ( p );
525 +} 518 +}
526+ } 519+ }
527 #endif 520 #endif
528 bool all = FALSE; 521 bool all = FALSE;
529 if ( !className ) { 522 if ( !className ) {
530@@ -1275,6 +1301,12 @@ 523@@ -1275,6 +1301,12 @@
531 void QApplication::setFont( const QFont &font, bool informWidgets, 524 void QApplication::setFont( const QFont &font, bool informWidgets,
532 const char* className ) 525 const char* className )
533 { 526 {
diff --git a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch b/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
index 63e45ec..81064e1 100644
--- a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
+++ b/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
@@ -1,149 +1,142 @@
1Speed up patches backported from 1Speed up patches backported from
2 2
3http://robotics.dei.unipd.it/~koral/KDE/kflicker.html 3http://robotics.dei.unipd.it/~koral/KDE/kflicker.html
4 4
5and 5and
6 6
7http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread) 7http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread)
8 8
9 9
10 10
11 11
12diff -u qt-2.3.7_old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp 12diff -u qt-2.3.7_old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp
13 --- qt-2.3.7_old/src/iconview/qiconview.cpp2004-06-13 22:29:56.000000000 +0200 13 --- qt-2.3.7_old/src/iconview/qiconview.cpp2004-06-13 22:29:56.000000000 +0200
14 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-06-13 22:33:32.000000000 +0200 14 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-06-13 22:33:32.000000000 +0200
15@@ -1,5 +1,5 @@
16 /****************************************************************************
17-** $Id$
18+** $Id$
19 **
20 ** Implementation of QIconView widget class
21 **
22@@ -220,6 +220,7 @@ 15@@ -220,6 +220,7 @@
23 QIconView::SelectionMode selectionMode; 16 QIconView::SelectionMode selectionMode;
24 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor; 17 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
25 QRect *rubber; 18 QRect *rubber;
26+ QPixmap *backBuffer; 19+ QPixmap *backBuffer;
27 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer, 20 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
28 *fullRedrawTimer; 21 *fullRedrawTimer;
29 int rastX, rastY, spacing; 22 int rastX, rastY, spacing;
30@@ -2263,6 +2264,7 @@ 23@@ -2263,6 +2264,7 @@
31 d->currentItem = 0; 24 d->currentItem = 0;
32 d->highlightedItem = 0; 25 d->highlightedItem = 0;
33 d->rubber = 0; 26 d->rubber = 0;
34+ d->backBuffer = 0; 27+ d->backBuffer = 0;
35 d->scrollTimer = 0; 28 d->scrollTimer = 0;
36 d->startDragItem = 0; 29 d->startDragItem = 0;
37 d->tmpCurrentItem = 0; 30 d->tmpCurrentItem = 0;
38@@ -2411,6 +2413,8 @@ 31@@ -2411,6 +2413,8 @@
39 delete item; 32 delete item;
40 item = tmp; 33 item = tmp;
41 } 34 }
42+ delete d->backBuffer; 35+ delete d->backBuffer;
43+ d->backBuffer = 0; 36+ d->backBuffer = 0;
44 delete d->fm; 37 delete d->fm;
45 d->fm = 0; 38 d->fm = 0;
46 #ifndef QT_NO_TOOLTIP 39 #ifndef QT_NO_TOOLTIP
47@@ -2877,6 +2881,48 @@ 40@@ -2877,6 +2881,48 @@
48 } 41 }
49 42
50 /*! 43 /*!
51+ This function grabs all paintevents that otherwise would have been 44+ This function grabs all paintevents that otherwise would have been
52+ processed by the QScrollView::viewportPaintEvent(). Here we use a 45+ processed by the QScrollView::viewportPaintEvent(). Here we use a
53+ doublebuffer to reduce 'on-paint' flickering on QIconView 46+ doublebuffer to reduce 'on-paint' flickering on QIconView
54+ (and of course its childs). 47+ (and of course its childs).
55+ 48+
56+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents() 49+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
57+*/ 50+*/
58+ 51+
59+void QIconView::bufferedPaintEvent( QPaintEvent* pe ) 52+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
60+{ 53+{
61+ QWidget* vp = viewport(); 54+ QWidget* vp = viewport();
62+ QRect r = pe->rect() & vp->rect(); 55+ QRect r = pe->rect() & vp->rect();
63+ int ex = r.x() + contentsX(); 56+ int ex = r.x() + contentsX();
64+ int ey = r.y() + contentsY(); 57+ int ey = r.y() + contentsY();
65+ int ew = r.width(); 58+ int ew = r.width();
66+ int eh = r.height(); 59+ int eh = r.height();
67+ 60+
68+ if ( !d->backBuffer ) 61+ if ( !d->backBuffer )
69 +d->backBuffer = new QPixmap(vp->size()); 62 +d->backBuffer = new QPixmap(vp->size());
70+ if ( d->backBuffer->size() != vp->size() ) { 63+ if ( d->backBuffer->size() != vp->size() ) {
71 +//Resize function (with hysteesis). Uses a good compromise between memory 64 +//Resize function (with hysteesis). Uses a good compromise between memory
72 +//consumption and speed (number) of resizes. 65 +//consumption and speed (number) of resizes.
73+ float newWidth = (float)vp->width(); 66+ float newWidth = (float)vp->width();
74 +float newHeight = (float)vp->height(); 67 +float newHeight = (float)vp->height();
75 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() ) 68 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
76 +{ 69 +{
77 + newWidth *= 1.1892; 70 + newWidth *= 1.1892;
78 + newHeight *= 1.1892; 71 + newHeight *= 1.1892;
79 + d->backBuffer->resize( (int)newWidth, (int)newHeight ); 72 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
80 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() ) 73 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
81 + d->backBuffer->resize( (int)newWidth, (int)newHeight ); 74 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
82+ } 75+ }
83+ 76+
84+ QPainter p; 77+ QPainter p;
85+ p.begin(d->backBuffer, vp); 78+ p.begin(d->backBuffer, vp);
86+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh); 79+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
87+ p.end(); 80+ p.end();
88+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh); 81+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
89+} 82+}
90+ 83+
91+/*! 84+/*!
92+ 85+
93 \reimp 86 \reimp
94 */ 87 */
95 88
96@@ -4855,7 +4901,7 @@ 89@@ -4855,7 +4901,7 @@
97 if ( !d->rubber ) 90 if ( !d->rubber )
98 drawDragShapes( d->oldDragPos ); 91 drawDragShapes( d->oldDragPos );
99 } 92 }
100 - viewportPaintEvent( (QPaintEvent*)e ); 93 - viewportPaintEvent( (QPaintEvent*)e );
101+ bufferedPaintEvent ((QPaintEvent*)e ); 94+ bufferedPaintEvent ((QPaintEvent*)e );
102 if ( d->dragging ) { 95 if ( d->dragging ) {
103 if ( !d->rubber ) 96 if ( !d->rubber )
104 drawDragShapes( d->oldDragPos ); 97 drawDragShapes( d->oldDragPos );
105@@ -5286,11 +5332,19 @@ 98@@ -5286,11 +5332,19 @@
106 return; 99 return;
107 100
108 if ( item->d->container1 && d->firstContainer ) { 101 if ( item->d->container1 && d->firstContainer ) {
109 -item->d->container1->items.removeRef( item ); 102 -item->d->container1->items.removeRef( item );
110+ //Special-case checking of the last item, since this may be 103+ //Special-case checking of the last item, since this may be
111+ //called a few times for the same item. 104+ //called a few times for the same item.
112+ if (item->d->container1->items.last() == item) 105+ if (item->d->container1->items.last() == item)
113+ item->d->container1->items.removeLast(); 106+ item->d->container1->items.removeLast();
114+ else 107+ else
115+ item->d->container1->items.removeRef( item ); 108+ item->d->container1->items.removeRef( item );
116 } 109 }
117 item->d->container1 = 0; 110 item->d->container1 = 0;
118 if ( item->d->container2 && d->firstContainer ) { 111 if ( item->d->container2 && d->firstContainer ) {
119 -item->d->container2->items.removeRef( item ); 112 -item->d->container2->items.removeRef( item );
120+ if (item->d->container2->items.last() == item) 113+ if (item->d->container2->items.last() == item)
121+ item->d->container2->items.removeLast(); 114+ item->d->container2->items.removeLast();
122+ else 115+ else
123+ item->d->container2->items.removeRef( item ); 116+ item->d->container2->items.removeRef( item );
124 } 117 }
125 item->d->container2 = 0; 118 item->d->container2 = 0;
126 119
127diff -u qt-2.3.7_old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h 120diff -u qt-2.3.7_old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h
128 --- qt-2.3.7_old/src/iconview/qiconview.h2004-06-13 22:29:56.000000000 +0200 121 --- qt-2.3.7_old/src/iconview/qiconview.h2004-06-13 22:29:56.000000000 +0200
129 +++ qt-2.3.7/src/iconview/qiconview.h2004-06-13 22:33:32.000000000 +0200 122 +++ qt-2.3.7/src/iconview/qiconview.h2004-06-13 22:33:32.000000000 +0200
130@@ -444,6 +444,7 @@ 123@@ -444,6 +444,7 @@
131 virtual void contentsDropEvent( QDropEvent *e ); 124 virtual void contentsDropEvent( QDropEvent *e );
132 #endif 125 #endif
133 126
134+ void bufferedPaintEvent( QPaintEvent* ); 127+ void bufferedPaintEvent( QPaintEvent* );
135 virtual void resizeEvent( QResizeEvent* e ); 128 virtual void resizeEvent( QResizeEvent* e );
136 virtual void keyPressEvent( QKeyEvent *e ); 129 virtual void keyPressEvent( QKeyEvent *e );
137 virtual void focusInEvent( QFocusEvent *e ); 130 virtual void focusInEvent( QFocusEvent *e );
138 --- qt-2.3.7-old/src/widgets/qscrollview.cpp2004-07-23 15:22:56.000000000 +0200 131 --- qt-2.3.7-old/src/widgets/qscrollview.cpp2004-07-23 15:22:56.000000000 +0200
139 +++ qt-2.3.7/src/widgets/qscrollview.cpp2004-07-23 19:23:10.000000000 +0200 132 +++ qt-2.3.7/src/widgets/qscrollview.cpp2004-07-23 19:23:10.000000000 +0200
140@@ -1266,6 +1277,9 @@ 133@@ -1266,6 +1277,9 @@
141 case QEvent::LayoutHint: 134 case QEvent::LayoutHint:
142 d->autoResizeHint(this); 135 d->autoResizeHint(this);
143 break; 136 break;
144 +case QEvent::WindowActivate: 137 +case QEvent::WindowActivate:
145 +case QEvent::WindowDeactivate: 138 +case QEvent::WindowDeactivate:
146 + return TRUE; 139 + return TRUE;
147 default: 140 default:
148 break; 141 break;
149 } 142 }