summaryrefslogtreecommitdiff
path: root/qt/qt-2.3.7.patch/qte237-all.patch
Unidiff
Diffstat (limited to 'qt/qt-2.3.7.patch/qte237-all.patch') (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.7.patch/qte237-all.patch1463
1 files changed, 0 insertions, 1463 deletions
diff --git a/qt/qt-2.3.7.patch/qte237-all.patch b/qt/qt-2.3.7.patch/qte237-all.patch
deleted file mode 100644
index 307e558..0000000
--- a/qt/qt-2.3.7.patch/qte237-all.patch
+++ b/dev/null
@@ -1,1463 +0,0 @@
1
2
3Included patches:
4
5qte237-allowoverride.patch
6qte237-g++-aslinker.patch
7qte237-iconviewspeed.patch
8qte237-adjustsizes.patch
9qte237-encoding.patch
10qte237-keyboard.patch
11qte237-gcc34.patch
12qte237-lefthand.patch
13
14
15
16
17
18
19
20
21
22diff -ur qt-2.3.7-old/configs/linux-generic-g++-shared qt-2.3.7/configs/linux-generic-g++-shared
23 --- qt-2.3.7-old/configs/linux-generic-g++-shared2004-07-23 15:22:56.000000000 +0200
24 +++ qt-2.3.7/configs/linux-generic-g++-shared2004-07-23 15:23:12.000000000 +0200
25@@ -36,7 +36,7 @@
26 SYSCONF_LIBS_YACC=
27
28 # Linking applications
29 -SYSCONF_LINK = gcc
30 +SYSCONF_LINK = g++
31 SYSCONF_LFLAGS =
32 SYSCONF_LIBS =
33
34diff -ur qt-2.3.7-old/configs/linux-generic-g++-shared-debug qt-2.3.7/configs/linux-generic-g++-shared-debug
35 --- qt-2.3.7-old/configs/linux-generic-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
36 +++ qt-2.3.7/configs/linux-generic-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
37@@ -36,7 +36,7 @@
38 SYSCONF_LIBS_YACC=
39
40 # Linking applications
41 -SYSCONF_LINK = gcc
42 +SYSCONF_LINK = g++
43 SYSCONF_LFLAGS =
44 SYSCONF_LIBS =
45
46diff -ur qt-2.3.7-old/configs/linux-generic-g++-static qt-2.3.7/configs/linux-generic-g++-static
47 --- qt-2.3.7-old/configs/linux-generic-g++-static2004-07-23 15:22:56.000000000 +0200
48 +++ qt-2.3.7/configs/linux-generic-g++-static2004-07-23 15:23:12.000000000 +0200
49@@ -36,7 +36,7 @@
50 SYSCONF_LIBS_YACC=
51
52 # Linking applications
53 -SYSCONF_LINK = gcc
54 +SYSCONF_LINK = g++
55 SYSCONF_LFLAGS =
56 SYSCONF_LIBS =
57
58diff -ur qt-2.3.7-old/configs/linux-generic-g++-static-debug qt-2.3.7/configs/linux-generic-g++-static-debug
59 --- qt-2.3.7-old/configs/linux-generic-g++-static-debug2004-07-23 15:22:56.000000000 +0200
60 +++ qt-2.3.7/configs/linux-generic-g++-static-debug2004-07-23 15:23:12.000000000 +0200
61@@ -36,7 +36,7 @@
62 SYSCONF_LIBS_YACC=
63
64 # Linking applications
65 -SYSCONF_LINK = gcc
66 +SYSCONF_LINK = g++
67 SYSCONF_LFLAGS =
68 SYSCONF_LIBS =
69
70diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-shared qt-2.3.7/configs/linux-generic_rtti-g++-shared
71 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-shared2004-07-23 15:22:56.000000000 +0200
72 +++ qt-2.3.7/configs/linux-generic_rtti-g++-shared2004-07-23 15:23:12.000000000 +0200
73@@ -36,7 +36,7 @@
74 SYSCONF_LIBS_YACC=
75
76 # Linking applications
77 -SYSCONF_LINK = gcc
78 +SYSCONF_LINK = g++
79 SYSCONF_LFLAGS =
80 SYSCONF_LIBS =
81
82diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-shared-debug qt-2.3.7/configs/linux-generic_rtti-g++-shared-debug
83 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
84 +++ qt-2.3.7/configs/linux-generic_rtti-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
85@@ -36,7 +36,7 @@
86 SYSCONF_LIBS_YACC=
87
88 # Linking applications
89 -SYSCONF_LINK = gcc
90 +SYSCONF_LINK = g++
91 SYSCONF_LFLAGS =
92 SYSCONF_LIBS =
93
94diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-static qt-2.3.7/configs/linux-generic_rtti-g++-static
95 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-static2004-07-23 15:22:56.000000000 +0200
96 +++ qt-2.3.7/configs/linux-generic_rtti-g++-static2004-07-23 15:23:12.000000000 +0200
97@@ -36,7 +36,7 @@
98 SYSCONF_LIBS_YACC=
99
100 # Linking applications
101 -SYSCONF_LINK = gcc
102 +SYSCONF_LINK = g++
103 SYSCONF_LFLAGS =
104 SYSCONF_LIBS =
105
106diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-static-debug qt-2.3.7/configs/linux-generic_rtti-g++-static-debug
107 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200
108 +++ qt-2.3.7/configs/linux-generic_rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
109@@ -36,7 +36,7 @@
110 SYSCONF_LIBS_YACC=
111
112 # Linking applications
113 -SYSCONF_LINK = gcc
114 +SYSCONF_LINK = g++
115 SYSCONF_LFLAGS =
116 SYSCONF_LIBS =
117
118diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-shared qt-2.3.7/configs/linux-x86rtti-g++-shared
119 --- qt-2.3.7-old/configs/linux-x86rtti-g++-shared2004-07-23 15:22:56.000000000 +0200
120 +++ qt-2.3.7/configs/linux-x86rtti-g++-shared2004-07-23 15:23:12.000000000 +0200
121@@ -36,7 +36,7 @@
122 SYSCONF_LIBS_YACC=
123
124 # Linking applications
125 -SYSCONF_LINK = gcc
126 +SYSCONF_LINK = g++
127 SYSCONF_LFLAGS =
128 SYSCONF_LIBS = -lm
129
130diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-shared-debug qt-2.3.7/configs/linux-x86rtti-g++-shared-debug
131 --- qt-2.3.7-old/configs/linux-x86rtti-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
132 +++ qt-2.3.7/configs/linux-x86rtti-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
133@@ -36,7 +36,7 @@
134 SYSCONF_LIBS_YACC=
135
136 # Linking applications
137 -SYSCONF_LINK = gcc
138 +SYSCONF_LINK = g++
139 SYSCONF_LFLAGS =
140 SYSCONF_LIBS = -lm
141
142diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static qt-2.3.7/configs/linux-x86rtti-g++-static
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
145@@ -36,7 +36,7 @@
146 SYSCONF_LIBS_YACC=
147
148 # Linking applications
149 -SYSCONF_LINK = gcc
150 +SYSCONF_LINK = g++
151 SYSCONF_LFLAGS =
152 SYSCONF_LIBS = -lm
153
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
156 +++ qt-2.3.7/configs/linux-x86rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
157@@ -36,7 +36,7 @@
158 SYSCONF_LIBS_YACC=
159
160 # Linking applications
161 -SYSCONF_LINK = gcc
162 +SYSCONF_LINK = g++
163 SYSCONF_LFLAGS =
164 SYSCONF_LIBS = -lm
165
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
168 +++ qt-2.3.7/include/qapplication.h2004-07-23 15:25:42.000000000 +0200
169@@ -61,6 +61,10 @@
170 class QSemaphore;
171 #endif
172
173+#if !defined( QT_WEAK_SYMBOL )
174+#define QT_WEAK_SYMBOL
175+#endif
176+
177 // REMOVE IN 3.0 (just here for moc source compatibility)
178 #define QNonBaseApplication QApplication
179
180@@ -85,7 +89,10 @@
181
182 #ifndef QT_NO_STYLE
183 static QStyle &style();
184 - static void setStyle( QStyle* );
185 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
186+private:
187 +static void setStyle_NonWeak( QStyle* );
188+public:
189 #endif
190 #if 1/* OBSOLETE */
191 enum ColorMode { NormalColors, CustomColors };
192@@ -106,11 +113,19 @@
193 #ifndef QT_NO_PALETTE
194 static QPalette palette( const QWidget* = 0 );
195 static void setPalette( const QPalette &, bool informWidgets=FALSE,
196 + const char* className = 0 ) QT_WEAK_SYMBOL;
197+private:
198 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
199 const char* className = 0 );
200+public:
201 #endif
202 static QFont font( const QWidget* = 0 );
203 static void setFont( const QFont &, bool informWidgets=FALSE,
204 + const char* className = 0 ) QT_WEAK_SYMBOL;
205+private:
206 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
207 const char* className = 0 );
208 +public:
209 static QFontMetrics fontMetrics();
210
211 QWidget *mainWidget() const;
212@@ -207,7 +222,10 @@
213 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
214 #ifndef QT_NO_QWS_MANAGER
215 static QWSDecoration &qwsDecoration();
216- static void qwsSetDecoration( QWSDecoration *);
217+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
218+private:
219+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
220+public:
221 #endif
222 #endif
223
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
226 +++ qt-2.3.7/include/qcstring.h2004-07-23 15:42:01.000000000 +0200
227@@ -119,7 +119,7 @@
228 // We want to keep source compatibility for 2.x
229 // ### TODO for 4.0: completely remove these and the cstr* functions
230
231-#if !defined(QT_GENUINE_STR)
232+#if 0
233
234 #undefstrlen
235 #define strlen qstrlen
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
238 +++ qt-2.3.7/include/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200
239@@ -59,6 +59,10 @@
240 class QDiskFont;
241 #endif
242
243+#if !defined( QT_WEAK_SYMBOL )
244+#define QT_WEAK_SYMBOL
245+#endif
246+
247 class QFontDatabasePrivate;
248
249 class Q_EXPORT QFontDatabase
250@@ -67,9 +71,16 @@
251 QFontDatabase();
252
253 QStringList families( bool onlyForLocale = TRUE ) const;
254+
255+
256 QValueList<int> pointSizes( const QString &family,
257 const QString &style = QString::null,
258 - const QString &charSet = QString::null );
259 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
260+private:
261+ QValueList<int> pointSizes_NonWeak( const QString &family,
262 + const QString &style,
263 + const QString &charSet );
264+public:
265 QStringList styles( const QString &family,
266 const QString &charSet = QString::null ) const;
267 QStringList charSets( const QString &familyName,
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
270 +++ qt-2.3.7/include/qglobal.h2004-07-23 15:42:01.000000000 +0200
271@@ -207,8 +207,16 @@
272 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
273 #define Q_FP_CCAST_BROKEN
274 #endif
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
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
279+ supposedly know what you are doing.) */
280 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
281 #define Q_PACKED __attribute__ ((packed))
282+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
283+# define Q_NO_PACKED_REFERENCE
284+# endif
285 #endif
286 #elif defined(__xlC__)
287 #define _CC_XLC_
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
290 +++ qt-2.3.7/include/qiconview.h2004-07-23 15:45:34.000000000 +0200
291@@ -444,6 +444,7 @@
292 virtual void contentsDropEvent( QDropEvent *e );
293 #endif
294
295+ void bufferedPaintEvent( QPaintEvent* );
296 virtual void resizeEvent( QResizeEvent* e );
297 virtual void keyPressEvent( QKeyEvent *e );
298 virtual void focusInEvent( QFocusEvent *e );
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
301 +++ qt-2.3.7/include/qsortedlist.h2004-07-23 15:42:01.000000000 +0200
302@@ -48,7 +48,7 @@
303 public:
304 QSortedList() {}
305 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
306- ~QSortedList() { clear(); }
307+ ~QSortedList() { this->clear(); }
308 QSortedList<type> &operator=(const QSortedList<type> &l)
309 { return (QSortedList<type>&)QList<type>::operator=(l); }
310
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
313 +++ qt-2.3.7/include/qstring.h2004-07-23 15:42:01.000000000 +0200
314@@ -163,8 +163,16 @@
315 bool isLetterOrNumber() const;
316 bool isDigit() const;
317
318+
319+#ifdef Q_NO_PACKED_REFERENCE
320+ uchar& cell() { return *(&cl); }
321+ uchar& row() { return *(&rw); }
322+#else
323 uchar& cell() { return cl; }
324- uchar& row() { return rw; }
325+ uchar& row() { return rw; }
326+#endif
327+
328+
329 uchar cell() const { return cl; }
330 uchar row() const { return rw; }
331
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
334 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-07-23 15:45:34.000000000 +0200
335@@ -220,6 +220,7 @@
336 QIconView::SelectionMode selectionMode;
337 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
338 QRect *rubber;
339+ QPixmap *backBuffer;
340 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
341 *fullRedrawTimer;
342 int rastX, rastY, spacing;
343@@ -2263,6 +2264,7 @@
344 d->currentItem = 0;
345 d->highlightedItem = 0;
346 d->rubber = 0;
347+ d->backBuffer = 0;
348 d->scrollTimer = 0;
349 d->startDragItem = 0;
350 d->tmpCurrentItem = 0;
351@@ -2411,6 +2413,8 @@
352 delete item;
353 item = tmp;
354 }
355+ delete d->backBuffer;
356+ d->backBuffer = 0;
357 delete d->fm;
358 d->fm = 0;
359 #ifndef QT_NO_TOOLTIP
360@@ -2877,6 +2881,48 @@
361 }
362
363 /*!
364+ This function grabs all paintevents that otherwise would have been
365+ processed by the QScrollView::viewportPaintEvent(). Here we use a
366+ doublebuffer to reduce 'on-paint' flickering on QIconView
367+ (and of course its childs).
368+
369+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
370+*/
371+
372+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
373+{
374+ QWidget* vp = viewport();
375+ QRect r = pe->rect() & vp->rect();
376+ int ex = r.x() + contentsX();
377+ int ey = r.y() + contentsY();
378+ int ew = r.width();
379+ int eh = r.height();
380+
381+ if ( !d->backBuffer )
382 +d->backBuffer = new QPixmap(vp->size());
383+ if ( d->backBuffer->size() != vp->size() ) {
384 +//Resize function (with hysteesis). Uses a good compromise between memory
385 +//consumption and speed (number) of resizes.
386+ float newWidth = (float)vp->width();
387 +float newHeight = (float)vp->height();
388 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
389 +{
390 + newWidth *= 1.1892;
391 + newHeight *= 1.1892;
392 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
393 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
394 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
395+ }
396+
397+ QPainter p;
398+ p.begin(d->backBuffer, vp);
399+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
400+ p.end();
401+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
402+}
403+
404+/*!
405+
406 \reimp
407 */
408
409@@ -4855,7 +4901,7 @@
410 if ( !d->rubber )
411 drawDragShapes( d->oldDragPos );
412 }
413 - viewportPaintEvent( (QPaintEvent*)e );
414+ bufferedPaintEvent ((QPaintEvent*)e );
415 if ( d->dragging ) {
416 if ( !d->rubber )
417 drawDragShapes( d->oldDragPos );
418@@ -5286,11 +5332,19 @@
419 return;
420
421 if ( item->d->container1 && d->firstContainer ) {
422 -item->d->container1->items.removeRef( item );
423+ //Special-case checking of the last item, since this may be
424+ //called a few times for the same item.
425+ if (item->d->container1->items.last() == item)
426+ item->d->container1->items.removeLast();
427+ else
428+ item->d->container1->items.removeRef( item );
429 }
430 item->d->container1 = 0;
431 if ( item->d->container2 && d->firstContainer ) {
432 -item->d->container2->items.removeRef( item );
433+ if (item->d->container2->items.last() == item)
434+ item->d->container2->items.removeLast();
435+ else
436+ item->d->container2->items.removeRef( item );
437 }
438 item->d->container2 = 0;
439
440diff -ur qt-2.3.7-old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h
441 --- qt-2.3.7-old/src/iconview/qiconview.h2004-07-23 15:22:56.000000000 +0200
442 +++ qt-2.3.7/src/iconview/qiconview.h2004-07-23 15:45:34.000000000 +0200
443@@ -444,6 +444,7 @@
444 virtual void contentsDropEvent( QDropEvent *e );
445 #endif
446
447+ void bufferedPaintEvent( QPaintEvent* );
448 virtual void resizeEvent( QResizeEvent* e );
449 virtual void keyPressEvent( QKeyEvent *e );
450 virtual void focusInEvent( QFocusEvent *e );
451diff -ur qt-2.3.7-old/src/kernel/qapplication.cpp qt-2.3.7/src/kernel/qapplication.cpp
452 --- qt-2.3.7-old/src/kernel/qapplication.cpp2004-07-23 15:22:56.000000000 +0200
453 +++ qt-2.3.7/src/kernel/qapplication.cpp2004-07-23 15:25:42.000000000 +0200
454@@ -35,6 +35,8 @@
455 **
456 **********************************************************************/
457
458 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
459+
460 #include "qobjectlist.h"
461 #include "qobjectdict.h"
462 #include "qapplication.h"
463@@ -933,11 +935,16 @@
464 #ifndef QT_NO_STYLE
465 void QApplication::setStyle( QStyle *style )
466 {
467 +setStyle_NonWeak ( style );
468+}
469+
470+void QApplication::setStyle_NonWeak( QStyle *style )
471+{
472 QStyle* old = app_style;
473- app_style = style;
474
475 if ( startingUp() ) {
476 delete old;
477 +app_style = style;
478 return;
479 }
480
481@@ -958,6 +965,8 @@
482 old->unPolish( qApp );
483 }
484
485+ app_style = style;
486+
487 // take care of possible palette requirements of certain gui
488 // styles. Do it before polishing the application since the style
489 // might call QApplication::setStyle() itself
490@@ -1184,13 +1193,30 @@
491 \sa QWidget::setPalette(), palette(), QStyle::polish()
492 */
493
494-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
495+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
496 + const char* className )
497+{
498 +setPalette_NonWeak ( palette, informWidgets, className );
499+}
500+
501+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
502 const char* className )
503 {
504 QPalette pal = palette;
505 #ifndef QT_NO_STYLE
506- if ( !startingUp() )
507+ if ( !startingUp() ) {
508 qApp->style().polish( pal );// NB: non-const reference
509 +if ( className ) {
510 + // if we just polished a class specific palette (this normally
511 + // only called by qt_fix_tooltips - see below), we better re-
512 + // polish the global palette. Some styles like liquid can get
513 + // confused, because they can not detect if the polished palette
514 + // is the global one or only a class specific one.
515 + // (liquid uses this palette to calculate blending pixmaps)
516 + QPalette p = qApp-> palette ( );
517 + qApp->style().polish ( p );
518 +}
519+ }
520 #endif
521 bool all = FALSE;
522 if ( !className ) {
523@@ -1275,6 +1301,12 @@
524 void QApplication::setFont( const QFont &font, bool informWidgets,
525 const char* className )
526 {
527 +setFont_NonWeak ( font, informWidgets, className );
528+}
529+
530+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
531 + const char* className )
532+{
533 bool all = FALSE;
534 if ( !className ) {
535 if ( !app_font ) {
536diff -ur qt-2.3.7-old/src/kernel/qapplication.h qt-2.3.7/src/kernel/qapplication.h
537 --- qt-2.3.7-old/src/kernel/qapplication.h2004-07-23 15:22:56.000000000 +0200
538 +++ qt-2.3.7/src/kernel/qapplication.h2004-07-23 15:25:42.000000000 +0200
539@@ -61,6 +61,10 @@
540 class QSemaphore;
541 #endif
542
543+#if !defined( QT_WEAK_SYMBOL )
544+#define QT_WEAK_SYMBOL
545+#endif
546+
547 // REMOVE IN 3.0 (just here for moc source compatibility)
548 #define QNonBaseApplication QApplication
549
550@@ -85,7 +89,10 @@
551
552 #ifndef QT_NO_STYLE
553 static QStyle &style();
554 - static void setStyle( QStyle* );
555 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
556+private:
557 +static void setStyle_NonWeak( QStyle* );
558+public:
559 #endif
560 #if 1/* OBSOLETE */
561 enum ColorMode { NormalColors, CustomColors };
562@@ -106,11 +113,19 @@
563 #ifndef QT_NO_PALETTE
564 static QPalette palette( const QWidget* = 0 );
565 static void setPalette( const QPalette &, bool informWidgets=FALSE,
566 + const char* className = 0 ) QT_WEAK_SYMBOL;
567+private:
568 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
569 const char* className = 0 );
570+public:
571 #endif
572 static QFont font( const QWidget* = 0 );
573 static void setFont( const QFont &, bool informWidgets=FALSE,
574 + const char* className = 0 ) QT_WEAK_SYMBOL;
575+private:
576 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
577 const char* className = 0 );
578 +public:
579 static QFontMetrics fontMetrics();
580
581 QWidget *mainWidget() const;
582@@ -207,7 +222,10 @@
583 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
584 #ifndef QT_NO_QWS_MANAGER
585 static QWSDecoration &qwsDecoration();
586- static void qwsSetDecoration( QWSDecoration *);
587+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
588+private:
589+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
590+public:
591 #endif
592 #endif
593
594diff -ur qt-2.3.7-old/src/kernel/qapplication_qws.cpp qt-2.3.7/src/kernel/qapplication_qws.cpp
595 --- qt-2.3.7-old/src/kernel/qapplication_qws.cpp2004-07-23 15:22:56.000000000 +0200
596 +++ qt-2.3.7/src/kernel/qapplication_qws.cpp2004-07-23 15:25:42.000000000 +0200
597@@ -2804,6 +2804,11 @@
598 */
599 void QApplication::qwsSetDecoration( QWSDecoration *d )
600 {
601 +qwsSetDecoration_NonWeak ( d );
602+}
603+
604+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
605+{
606 if ( d ) {
607 delete qws_decoration;
608 qws_decoration = d;
609diff -ur qt-2.3.7-old/src/kernel/qfontdatabase.cpp qt-2.3.7/src/kernel/qfontdatabase.cpp
610 --- qt-2.3.7-old/src/kernel/qfontdatabase.cpp2004-07-23 15:22:56.000000000 +0200
611 +++ qt-2.3.7/src/kernel/qfontdatabase.cpp2004-07-23 15:25:42.000000000 +0200
612@@ -35,6 +35,8 @@
613 **
614 **********************************************************************/
615
616+#define QT_WEAK_SYMBOL __attribute__(( weak ))
617+
618 #include "qfontdatabase.h"
619
620 #ifndef QT_NO_FONTDATABASE
621@@ -2424,6 +2426,13 @@
622 const QString &style,
623 const QString &charSet )
624 {
625 +return pointSizes_NonWeak ( family, style, charSet );
626+}
627+
628+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
629+ const QString &style,
630+ const QString &charSet )
631+{
632 QString cs( charSet );
633 if ( charSet.isEmpty() ) {
634 QStringList lst = charSets( family );
635diff -ur qt-2.3.7-old/src/kernel/qfontdatabase.h qt-2.3.7/src/kernel/qfontdatabase.h
636 --- qt-2.3.7-old/src/kernel/qfontdatabase.h2004-07-23 15:22:56.000000000 +0200
637 +++ qt-2.3.7/src/kernel/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200
638@@ -59,6 +59,10 @@
639 class QDiskFont;
640 #endif
641
642+#if !defined( QT_WEAK_SYMBOL )
643+#define QT_WEAK_SYMBOL
644+#endif
645+
646 class QFontDatabasePrivate;
647
648 class Q_EXPORT QFontDatabase
649@@ -67,9 +71,16 @@
650 QFontDatabase();
651
652 QStringList families( bool onlyForLocale = TRUE ) const;
653+
654+
655 QValueList<int> pointSizes( const QString &family,
656 const QString &style = QString::null,
657 - const QString &charSet = QString::null );
658 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
659+private:
660+ QValueList<int> pointSizes_NonWeak( const QString &family,
661 + const QString &style,
662 + const QString &charSet );
663+public:
664 QStringList styles( const QString &family,
665 const QString &charSet = QString::null ) const;
666 QStringList charSets( const QString &familyName,
667diff -ur qt-2.3.7-old/src/kernel/qgfxtransformed_qws.cpp qt-2.3.7/src/kernel/qgfxtransformed_qws.cpp
668 --- qt-2.3.7-old/src/kernel/qgfxtransformed_qws.cpp2004-07-23 15:22:56.000000000 +0200
669 +++ qt-2.3.7/src/kernel/qgfxtransformed_qws.cpp2004-07-23 15:42:01.000000000 +0200
670@@ -671,11 +671,11 @@
671 inline int tx( int x, int y ) {
672 switch ( qt_trans_screen->transformation() ) {
673 case QTransformedScreen::Rot90:
674 - return y - xoffs + yoffs;
675 + return y - this->xoffs + this->yoffs;
676 case QTransformedScreen::Rot180:
677 - return (width - x - 1) - xoffs - xoffs;
678 + return (this->width - x - 1) - this->xoffs - this->xoffs;
679 case QTransformedScreen::Rot270:
680 - return (height - y - 1) - xoffs - yoffs;
681 + return (this->height - y - 1) - this->xoffs - this->yoffs;
682 default:
683 return x;
684 }
685@@ -683,11 +683,11 @@
686 inline int ty( int x, int y ) {
687 switch ( qt_trans_screen->transformation() ) {
688 case QTransformedScreen::Rot90:
689 - return (width - x - 1) - yoffs - xoffs;
690 + return (this->width - x - 1) - this->yoffs - this->xoffs;
691 case QTransformedScreen::Rot180:
692 - return (height - y - 1) - yoffs - yoffs;
693 + return (this->height - y - 1) - this->yoffs - this->yoffs;
694 case QTransformedScreen::Rot270:
695 - return x - yoffs + xoffs;
696 + return x - this->yoffs + this->xoffs;
697 default:
698 return y;
699 }
700@@ -715,23 +715,23 @@
701 template <const int depth, const int type>
702 void QGfxTransformedRaster<depth,type>::setSourceWidgetOffset(int x, int y)
703 {
704- if ( srcbits == buffer ) {
705+ if ( this->srcbits == this->buffer ) {
706 switch ( qt_trans_screen->transformation() ) {
707 case QTransformedScreen::Rot90:
708 - srcwidgetoffs = QPoint( y, width - x - srcwidth );
709 + this->srcwidgetoffs = QPoint( y, this->width - x - this->srcwidth );
710 break;
711 case QTransformedScreen::Rot180:
712 - srcwidgetoffs = QPoint( width - x - srcwidth, height - y - srcheight );
713 + this->srcwidgetoffs = QPoint( this->width - x - this->srcwidth, this->height - y - this->srcheight );
714 break;
715 case QTransformedScreen::Rot270:
716 - srcwidgetoffs = QPoint( height - y - srcheight, x );
717 + this->srcwidgetoffs = QPoint( this->height - y - this->srcheight, x );
718 break;
719 default:
720 - srcwidgetoffs = QPoint( x, y );
721 + this->srcwidgetoffs = QPoint( x, y );
722 break;
723 }
724 } else
725 -srcwidgetoffs = QPoint( x, y );
726 +this->srcwidgetoffs = QPoint( x, y );
727 }
728
729 template <const int depth, const int type>
730@@ -739,8 +739,8 @@
731 {
732 QT_TRANS_GFX_BASE<depth,type>::setSource(i);
733 QSize s = qt_screen->mapToDevice( QSize(i->width(), i->height()) );
734- srcwidth = s.width();
735- srcheight = s.height();
736+ this->srcwidth = s.width();
737+ this->srcheight = s.height();
738 }
739
740 template <const int depth, const int type>
741@@ -782,7 +782,7 @@
742 if ( w == 0 || h == 0 )
743 return;
744 QRect r( x, y, w, h );
745- if ( cbrush.style() == SolidPattern ) {
746+ if ( this->cbrush.style() == Qt::SolidPattern ) {
747 r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
748 r = r.normalize();
749 }
750@@ -797,7 +797,7 @@
751 // solution. The brush offset logic is complicated enough, so we don't
752 // fastpath patternedbrush.
753
754- if ( inDraw || cpen.style()==NoPen || patternedbrush ) {
755+ if ( inDraw || this->cpen.style()==Qt::NoPen || this->patternedbrush ) {
756 //slowpath
757 QT_TRANS_GFX_BASE<depth,type>::drawPolygon( a, w, idx, num );
758 } else {
759@@ -819,29 +819,29 @@
760 template <const int depth, const int type>
761 void QGfxTransformedRaster<depth,type>::processSpans( int n, QPoint* point, int* width )
762 {
763- if ( inDraw || patternedbrush && srcwidth != 0 && srcheight != 0 ) {
764+ if ( inDraw || this->patternedbrush && this->srcwidth != 0 && this->srcheight != 0 ) {
765 //in the patternedbrush case, we let blt do the transformation
766 // so we leave inDraw false.
767 - QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
768 +QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
769 } else {
770 inDraw = TRUE;
771 while (n--) {
772 if ( *width > 0 ) {
773 - int x=tx(point->x(),point->y())+xoffs;
774 - int y=ty(point->x(),point->y())+yoffs;
775 + int x=tx(point->x(),point->y())+this->xoffs;
776 + int y=ty(point->x(),point->y())+this->yoffs;
777
778 switch( qt_trans_screen->transformation() ) {
779 case QTransformedScreen::Rot90:
780 - vline( x, y-(*width-1), y );
781 + this->vline( x, y-(*width-1), y );
782 break;
783 case QTransformedScreen::Rot180:
784 - hline( x - (*width-1), x, y );
785 + this->hline( x - (*width-1), x, y );
786 break;
787 case QTransformedScreen::Rot270:
788 - vline( x, y, y+*width-1 );
789 + this->vline( x, y, y+*width-1 );
790 break;
791 default:
792 - hline( x, x+*width-1, y );
793 + this->hline( x, x+*width-1, y );
794 break;
795 }
796 }
797@@ -896,14 +896,14 @@
798 switch ( qt_trans_screen->transformation() ) {
799 case QTransformedScreen::Rot90:
800 rsx = sy;
801 - rsy = srcwidth - sx - w;
802 + rsy = this->srcwidth - sx - w;
803 break;
804 case QTransformedScreen::Rot180:
805 - rsx = srcwidth - sx - w;
806 - rsy = srcheight - sy - h;
807 + rsx = this->srcwidth - sx - w;
808 + rsy = this->srcheight - sy - h;
809 break;
810 case QTransformedScreen::Rot270:
811 - rsx = srcheight - sy - h;
812 + rsx = this->srcheight - sy - h;
813 rsy = sx;
814 break;
815 default:
816@@ -941,39 +941,39 @@
817 r.setCoords( tx(rx,ry), ty(rx,ry), tx(rx+w-1,ry+h-1), ty(rx+w-1,ry+h-1) );
818 r = r.normalize();
819
820- QPoint oldBrushOffs = brushoffs;
821+ QPoint oldBrushOffs = this->brushoffs;
822 int brx, bry;
823 switch ( qt_trans_screen->transformation() ) {
824 case QTransformedScreen::Rot90:
825 - brx = brushoffs.y();
826 - bry = srcwidth - brushoffs.x() - w;
827 + brx = this->brushoffs.y();
828 + bry = this->srcwidth - this->brushoffs.x() - w;
829 break;
830 case QTransformedScreen::Rot180:
831 - brx = srcwidth - brushoffs.x() - w;
832 - bry = srcheight - brushoffs.y() - h;
833 + brx = this->srcwidth - this->brushoffs.x() - w;
834 + bry = this->srcheight - this->brushoffs.y() - h;
835 break;
836 case QTransformedScreen::Rot270:
837 - brx = srcheight - brushoffs.y() - h;
838 - bry = brushoffs.x();
839 + brx = this->srcheight - this->brushoffs.y() - h;
840 + bry = this->brushoffs.x();
841 break;
842 default:
843 - brx = brushoffs.x();
844 - bry = brushoffs.y();
845 + brx = this->brushoffs.x();
846 + bry = this->brushoffs.y();
847 break;
848 }
849- brushoffs = QPoint( brx, bry );
850+ this->brushoffs = QPoint( brx, bry );
851
852- int oldsw = srcwidth;
853- int oldsh = srcheight;
854- QSize s = qt_screen->mapToDevice( QSize(srcwidth,srcheight) );
855- srcwidth = s.width();
856- srcheight = s.height();
857+ int oldsw = this->srcwidth;
858+ int oldsh = this->srcheight;
859+ QSize s = qt_screen->mapToDevice( QSize(this->srcwidth,this->srcheight) );
860+ this->srcwidth = s.width();
861+ this->srcheight = s.height();
862
863 QT_TRANS_GFX_BASE<depth,type>::tiledBlt( r.x(), r.y(), r.width(), r.height() );
864
865- srcwidth = oldsw;
866- srcheight = oldsh;
867- brushoffs = oldBrushOffs;
868+ this->srcwidth = oldsw;
869+ this->srcheight = oldsh;
870+ this->brushoffs = oldBrushOffs;
871 inDraw = FALSE;
872 }
873
874diff -ur qt-2.3.7-old/src/kernel/qgfxvfb_qws.cpp qt-2.3.7/src/kernel/qgfxvfb_qws.cpp
875 --- qt-2.3.7-old/src/kernel/qgfxvfb_qws.cpp2004-07-23 15:22:56.000000000 +0200
876 +++ qt-2.3.7/src/kernel/qgfxvfb_qws.cpp2004-07-23 15:42:01.000000000 +0200
877@@ -31,7 +31,6 @@
878 **********************************************************************/
879
880 #include "qgfxraster_qws.h"
881-
882 #ifndef QT_NO_QWS_VFB
883
884 #include <sys/ipc.h>
885@@ -140,8 +139,8 @@
886 void QGfxVFb<depth,type>::drawPoint( int x, int y )
887 {
888 QWSDisplay::grab( TRUE );
889- if ( is_screen_gfx )
890 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) );
891+ if ( this->is_screen_gfx )
892 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) );
893 QGfxRaster<depth,type>::drawPoint( x, y );
894 QWSDisplay::ungrab();
895 }
896@@ -150,8 +149,8 @@
897 void QGfxVFb<depth,type>::drawPoints( const QPointArray &pa,int x,int y )
898 {
899 QWSDisplay::grab( TRUE );
900- if ( is_screen_gfx )
901 -qvfb_screen->setDirty( clipbounds );
902+ if ( this->is_screen_gfx )
903 +qvfb_screen->setDirty( this->clipbounds );
904 QGfxRaster<depth,type>::drawPoints( pa, x, y );
905 QWSDisplay::ungrab();
906 }
907@@ -160,9 +159,9 @@
908 void QGfxVFb<depth,type>::drawLine( int x1,int y1,int x2,int y2 )
909 {
910 QWSDisplay::grab( TRUE );
911- if ( is_screen_gfx ) {
912+ if ( this->is_screen_gfx ) {
913 QRect r;
914 -r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
915 +r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
916 qvfb_screen->setDirty( r.normalize() );
917 }
918 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
919@@ -173,8 +172,8 @@
920 void QGfxVFb<depth,type>::fillRect( int x,int y,int w,int h )
921 {
922 QWSDisplay::grab( TRUE );
923- if ( is_screen_gfx )
924 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
925+ if ( this->is_screen_gfx )
926 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
927 QGfxRaster<depth,type>::fillRect( x, y, w, h );
928 QWSDisplay::ungrab();
929 }
930@@ -183,8 +182,8 @@
931 void QGfxVFb<depth,type>::drawPolyline( const QPointArray &pa,int x,int y )
932 {
933 QWSDisplay::grab( TRUE );
934- if ( is_screen_gfx )
935 -qvfb_screen->setDirty( clipbounds );
936+ if ( this->is_screen_gfx )
937 +qvfb_screen->setDirty( this->clipbounds );
938 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
939 QWSDisplay::ungrab();
940 }
941@@ -193,8 +192,8 @@
942 void QGfxVFb<depth,type>::drawPolygon( const QPointArray &pa,bool w,int x,int y )
943 {
944 QWSDisplay::grab( TRUE );
945- if ( is_screen_gfx )
946 -qvfb_screen->setDirty( clipbounds );
947+ if ( this->is_screen_gfx )
948 +qvfb_screen->setDirty( this->clipbounds );
949 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
950 QWSDisplay::ungrab();
951 }
952@@ -203,8 +202,8 @@
953 void QGfxVFb<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
954 {
955 QWSDisplay::grab( TRUE );
956- if ( is_screen_gfx )
957 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
958+ if ( this->is_screen_gfx )
959 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
960 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
961 QWSDisplay::ungrab();
962 }
963@@ -215,8 +214,8 @@
964 QWSDisplay::grab( TRUE );
965 int dy = sy - y;
966 int dx = sx - x;
967- if ( is_screen_gfx )
968 -qvfb_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
969+ if ( this->is_screen_gfx )
970 +qvfb_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
971 w+abs(dx), h+abs(dy)) );
972 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
973 QWSDisplay::ungrab();
974@@ -227,8 +226,8 @@
975 void QGfxVFb<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
976 {
977 QWSDisplay::grab( TRUE );
978- if ( is_screen_gfx )
979 -qvfb_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) );
980+ if ( this->is_screen_gfx )
981 +qvfb_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) );
982 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
983 QWSDisplay::ungrab();
984 }
985@@ -238,8 +237,8 @@
986 void QGfxVFb<depth,type>::tiledBlt( int x,int y,int w,int h )
987 {
988 QWSDisplay::grab( TRUE );
989- if ( is_screen_gfx )
990 -qvfb_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) );
991+ if ( this->is_screen_gfx )
992 +qvfb_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) );
993 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
994 QWSDisplay::ungrab();
995 }
996diff -ur qt-2.3.7-old/src/kernel/qkeyboard_qws.cpp qt-2.3.7/src/kernel/qkeyboard_qws.cpp
997 --- qt-2.3.7-old/src/kernel/qkeyboard_qws.cpp2004-07-23 15:22:56.000000000 +0200
998 +++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp2004-07-23 15:33:46.000000000 +0200
999@@ -238,7 +238,7 @@
1000 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
1001 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
1002 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
1003 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
1004+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
1005 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
1006 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
1007 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
1008diff -ur qt-2.3.7-old/src/kernel/qwindowsystem_qws.cpp qt-2.3.7/src/kernel/qwindowsystem_qws.cpp
1009 --- qt-2.3.7-old/src/kernel/qwindowsystem_qws.cpp2004-07-23 15:22:56.000000000 +0200
1010 +++ qt-2.3.7/src/kernel/qwindowsystem_qws.cpp2004-07-23 15:33:47.000000000 +0200
1011@@ -844,6 +844,18 @@
1012 {
1013 }
1014
1015+static void catchSegvSignal( int )
1016+{
1017+#ifndef QT_NO_QWS_KEYBOARD
1018+ if ( qwsServer )
1019 +qwsServer->closeKeyboard();
1020+#endif
1021+ QWSServer::closedown();
1022+ fprintf(stderr, "Segmentation fault.\n");
1023+ exit(1);
1024+}
1025+
1026+
1027 /*!
1028 \class QWSServer qwindowsystem_qws.h
1029 \brief Server-specific functionality in Qt/Embedded
1030@@ -936,6 +948,7 @@
1031 }
1032
1033 signal(SIGPIPE, ignoreSignal); //we get it when we read
1034+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
1035 #endif
1036 focusw = 0;
1037 mouseGrabber = 0;
1038diff -ur qt-2.3.7-old/src/tools/qcstring.h qt-2.3.7/src/tools/qcstring.h
1039 --- qt-2.3.7-old/src/tools/qcstring.h2004-07-23 15:22:56.000000000 +0200
1040 +++ qt-2.3.7/src/tools/qcstring.h2004-07-23 15:42:01.000000000 +0200
1041@@ -119,7 +119,7 @@
1042 // We want to keep source compatibility for 2.x
1043 // ### TODO for 4.0: completely remove these and the cstr* functions
1044
1045-#if !defined(QT_GENUINE_STR)
1046+#if 0
1047
1048 #undefstrlen
1049 #define strlen qstrlen
1050diff -ur qt-2.3.7-old/src/tools/qglobal.h qt-2.3.7/src/tools/qglobal.h
1051 --- qt-2.3.7-old/src/tools/qglobal.h2004-07-23 15:22:56.000000000 +0200
1052 +++ qt-2.3.7/src/tools/qglobal.h2004-07-23 15:42:01.000000000 +0200
1053@@ -207,8 +207,16 @@
1054 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
1055 #define Q_FP_CCAST_BROKEN
1056 #endif
1057+/* ARM gcc pads structs to 32 bits, even when they contain a single
1058+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
1059+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
1060+ members of a packed struct. (Pointers are OK, because then you
1061+ supposedly know what you are doing.) */
1062 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
1063 #define Q_PACKED __attribute__ ((packed))
1064+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
1065+# define Q_NO_PACKED_REFERENCE
1066+# endif
1067 #endif
1068 #elif defined(__xlC__)
1069 #define _CC_XLC_
1070diff -ur qt-2.3.7-old/src/tools/qmodules.h qt-2.3.7/src/tools/qmodules.h
1071 --- qt-2.3.7-old/src/tools/qmodules.h2004-07-23 15:22:56.000000000 +0200
1072 +++ qt-2.3.7/src/tools/qmodules.h2004-07-23 16:03:09.000000000 +0200
1073@@ -1,14 +1,11 @@
1074-#ifndef QT_H
1075-#endif // QT_H
1076-
1077+// These modules are licensed to you
1078 #define QT_MODULE_TOOLS
1079 #define QT_MODULE_KERNEL
1080 #define QT_MODULE_WIDGETS
1081 #define QT_MODULE_DIALOGS
1082-
1083 #define QT_MODULE_ICONVIEW
1084 #define QT_MODULE_WORKSPACE
1085-#define QT_MODULE_TABLE
1086+#define QT_MODULE_NETWORK
1087 #define QT_MODULE_CANVAS
1088+#define QT_MODULE_TABLE
1089 #define QT_MODULE_XML
1090-#define QT_MODULE_NETWORK
1091diff -ur qt-2.3.7-old/src/tools/qsortedlist.h qt-2.3.7/src/tools/qsortedlist.h
1092 --- qt-2.3.7-old/src/tools/qsortedlist.h2004-07-23 15:22:56.000000000 +0200
1093 +++ qt-2.3.7/src/tools/qsortedlist.h2004-07-23 15:42:01.000000000 +0200
1094@@ -48,7 +48,7 @@
1095 public:
1096 QSortedList() {}
1097 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
1098- ~QSortedList() { clear(); }
1099+ ~QSortedList() { this->clear(); }
1100 QSortedList<type> &operator=(const QSortedList<type> &l)
1101 { return (QSortedList<type>&)QList<type>::operator=(l); }
1102
1103diff -ur qt-2.3.7-old/src/tools/qstring.cpp qt-2.3.7/src/tools/qstring.cpp
1104 --- qt-2.3.7-old/src/tools/qstring.cpp2004-07-23 15:22:56.000000000 +0200
1105 +++ qt-2.3.7/src/tools/qstring.cpp2004-07-23 15:44:25.000000000 +0200
1106@@ -14469,7 +14469,11 @@
1107 return qt_winQString2MB( *this );
1108 #endif
1109 #ifdef _WS_QWS_
1110- return utf8(); // ##### if there is ANY 8 bit format supported?
1111+ QTextCodec* codec = QTextCodec::codecForLocale();
1112+ return codec
1113 + ? codec->fromUnicode(*this)
1114 + : utf8();
1115+ //return latin1(); // ##### if there is ANY 8 bit format supported?
1116 #endif
1117 #endif
1118 }
1119@@ -14515,7 +14519,12 @@
1120 return qt_winMB2QString( local8Bit );
1121 #endif
1122 #ifdef _WS_QWS_
1123- return fromUtf8(local8Bit,len);
1124+ QTextCodec* codec = QTextCodec::codecForLocale();
1125+ if( len < 0) len = qstrlen(local8Bit);
1126+ return codec
1127 + ? codec->toUnicode(local8Bit, len)
1128 + : QString::fromUtf8(local8Bit,len);
1129+// return fromLatin1(local8Bit,len);
1130 #endif
1131 #endif // QT_NO_TEXTCODEC
1132 }
1133diff -ur qt-2.3.7-old/src/tools/qstring.h qt-2.3.7/src/tools/qstring.h
1134 --- qt-2.3.7-old/src/tools/qstring.h2004-07-23 15:22:56.000000000 +0200
1135 +++ qt-2.3.7/src/tools/qstring.h2004-07-23 15:42:01.000000000 +0200
1136@@ -163,8 +163,16 @@
1137 bool isLetterOrNumber() const;
1138 bool isDigit() const;
1139
1140+
1141+#ifdef Q_NO_PACKED_REFERENCE
1142+ uchar& cell() { return *(&cl); }
1143+ uchar& row() { return *(&rw); }
1144+#else
1145 uchar& cell() { return cl; }
1146- uchar& row() { return rw; }
1147+ uchar& row() { return rw; }
1148+#endif
1149+
1150+
1151 uchar cell() const { return cl; }
1152 uchar row() const { return rw; }
1153
1154diff -ur qt-2.3.7-old/src/widgets/qcommonstyle.cpp qt-2.3.7/src/widgets/qcommonstyle.cpp
1155 --- qt-2.3.7-old/src/widgets/qcommonstyle.cpp2004-07-23 15:22:56.000000000 +0200
1156 +++ qt-2.3.7/src/widgets/qcommonstyle.cpp2004-07-23 15:38:13.000000000 +0200
1157@@ -566,7 +566,7 @@
1158 bool enabled, bool active )
1159 {
1160 #ifndef QT_NO_MENUBAR
1161-#ifndef QT_NO_STYLE_SGI
1162+#if 1 // #ifndef QT_NO_STYLE_SGI
1163 if (draw_menu_bar_impl != 0) {
1164 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
1165 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
1166diff -ur qt-2.3.7-old/src/widgets/qlistview.cpp qt-2.3.7/src/widgets/qlistview.cpp
1167 --- qt-2.3.7-old/src/widgets/qlistview.cpp2004-07-23 15:22:56.000000000 +0200
1168 +++ qt-2.3.7/src/widgets/qlistview.cpp2004-07-23 15:38:13.000000000 +0200
1169@@ -4968,9 +4968,9 @@
1170 l = l->childItem ? l->childItem : l->siblingItem;
1171
1172 if ( l && l->height() )
1173 -s.setHeight( s.height() + 10 * l->height() );
1174- else
1175 -s.setHeight( s.height() + 140 );
1176 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
1177+ else // ^v much too big for handhelds
1178 +s.setHeight( s.height() + 30 /*140*/ );
1179
1180 if ( s.width() > s.height() * 3 )
1181 s.setHeight( s.width() / 3 );
1182diff -ur qt-2.3.7-old/src/widgets/qscrollview.cpp qt-2.3.7/src/widgets/qscrollview.cpp
1183 --- qt-2.3.7-old/src/widgets/qscrollview.cpp2004-07-23 19:25:18.000000000 +0200
1184 +++ qt-2.3.7/src/widgets/qscrollview.cpp2004-07-23 19:23:10.000000000 +0200
1185@@ -526,15 +526,16 @@
1186 this, SLOT( doDragAutoScroll() ) );
1187 #endif
1188
1189- connect( &d->hbar, SIGNAL( valueChanged( int ) ),
1190 -this, SLOT( hslide( int ) ) );
1191- connect( &d->vbar, SIGNAL( valueChanged( int ) ),
1192 -this, SLOT( vslide( int ) ) );
1193+ connect( &d->hbar, SIGNAL( valueChanged(int) ),
1194 +this, SLOT( hslide(int) ) );
1195+ connect( &d->vbar, SIGNAL( valueChanged(int) ),
1196 +this, SLOT( vslide(int) ) );
1197 d->viewport.installEventFilter( this );
1198
1199 setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
1200 setLineWidth( style().defaultFrameWidth() );
1201 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
1202+
1203 }
1204
1205
1206@@ -683,6 +684,11 @@
1207 h-tmarg-bmarg - (showh ? hsbExt : 0) );
1208 }
1209
1210+/*
1211+ The surrounding environment (or application, if there is no
1212+ environment, may set this. Requires Qt >= 2.3.8.
1213+*/
1214+bool qt_left_hand_scrollbars = FALSE;
1215
1216 /*!
1217 Updates scrollbars - all possibilities considered. You should never
1218@@ -786,45 +792,50 @@
1219
1220 // Position the scrollbars, viewport, and corner widget.
1221 int bottom;
1222+ int xoffset = ( qt_left_hand_scrollbars && ( showv || cornerWidget() ) ) ? vsbExt : 0;
1223+ int xpos = qt_left_hand_scrollbars ? 0 : w-vsbExt;
1224+ xpos = (style() == WindowsStyle) && qt_left_hand_scrollbars ? xpos + fw : xpos - fw;
1225+ int ypos = tmarg;
1226+ ypos = (style() == WindowsStyle) ? ypos +fw : 0;
1227 if ( showh ) {
1228 int right = ( showv || cornerWidget() ) ? w-vsbExt : w;
1229 if ( style() == WindowsStyle )
1230- setHBarGeometry(d->hbar, fw, h-hsbExt-fw,
1231+ setHBarGeometry(d->hbar, fw + xoffset , h-hsbExt-fw,
1232 right-fw-fw, hsbExt );
1233 else
1234- setHBarGeometry(d->hbar, 0, h-hsbExt, right,
1235+ setHBarGeometry(d->hbar, 0+ xoffset, h-hsbExt, right,
1236 hsbExt );
1237 bottom=h-hsbExt;
1238 } else {
1239 bottom=h;
1240 }
1241 if ( showv ) {
1242 -clipper()->setGeometry( lmarg, tmarg,
1243 +clipper()->setGeometry( lmarg + xoffset, tmarg,
1244 w-vsbExt-lmarg-rmarg,
1245 bottom-tmarg-bmarg );
1246 d->viewportResized( w-vsbExt-lmarg-rmarg, bottom-tmarg-bmarg );
1247 if ( style() == WindowsStyle )
1248 - changeFrameRect(QRect(0, 0, w, h) );
1249 + changeFrameRect(QRect(xoffset, 0, w, h) );
1250 else
1251 - changeFrameRect(QRect(0, 0, w-vsbExt, bottom));
1252 + changeFrameRect(QRect(xoffset, 0, w-vsbExt, bottom));
1253 if (cornerWidget()) {
1254 if ( style() == WindowsStyle )
1255- setVBarGeometry( d->vbar, w-vsbExt-fw,
1256- fw, vsbExt,
1257- h-hsbExt-fw-fw );
1258+ setVBarGeometry( d->vbar, xpos,
1259+ ypos, vsbExt,
1260+ bottom-fw-ypos );
1261 else
1262- setVBarGeometry( d->vbar, w-vsbExt, 0,
1263+ setVBarGeometry( d->vbar, xpos, ypos,
1264 vsbExt,
1265- h-hsbExt );
1266+ bottom-ypos );
1267 }
1268 else {
1269 if ( style() == WindowsStyle )
1270- setVBarGeometry( d->vbar, w-vsbExt-fw,
1271- fw, vsbExt,
1272- bottom-fw-fw );
1273+ setVBarGeometry( d->vbar, xpos,
1274+ ypos, vsbExt,
1275+ bottom-fw-ypos );
1276 else
1277- setVBarGeometry( d->vbar, w-vsbExt, 0,
1278- vsbExt, bottom );
1279+ setVBarGeometry( d->vbar, xpos, ypos,
1280+ vsbExt, bottom-ypos );
1281 }
1282 } else {
1283 if ( style() == WindowsStyle )
1284@@ -837,12 +848,12 @@
1285 }
1286 if ( d->corner ) {
1287 if ( style() == WindowsStyle )
1288- d->corner->setGeometry( w-vsbExt-fw,
1289+ d->corner->setGeometry( xpos,
1290 h-hsbExt-fw,
1291 vsbExt,
1292 hsbExt );
1293 else
1294- d->corner->setGeometry( w-vsbExt,
1295+ d->corner->setGeometry( xpos,
1296 h-hsbExt,
1297 vsbExt,
1298 hsbExt );
1299@@ -1266,6 +1277,9 @@
1300 case QEvent::LayoutHint:
1301 d->autoResizeHint(this);
1302 break;
1303 +case QEvent::WindowActivate:
1304 +case QEvent::WindowDeactivate:
1305 + return TRUE;
1306 default:
1307 break;
1308 }
1309@@ -1675,7 +1689,7 @@
1310 }
1311
1312 /*!
1313- Scrolls the content by \a x to the left and \a y upwards.
1314+ Scrolls the content by \a dx to the left and \a dy upwards.
1315 */
1316 void QScrollView::scrollBy( int dx, int dy )
1317 {
1318diff -ur qt-2.3.7-old/src/widgets/qtoolbutton.cpp qt-2.3.7/src/widgets/qtoolbutton.cpp
1319 --- qt-2.3.7-old/src/widgets/qtoolbutton.cpp2004-07-23 15:22:56.000000000 +0200
1320 +++ qt-2.3.7/src/widgets/qtoolbutton.cpp2004-07-23 15:38:13.000000000 +0200
1321@@ -230,7 +230,7 @@
1322 else
1323 QToolTip::add( this, textLabel );
1324 }
1325 -#endif
1326+#endif
1327 }
1328
1329
1330@@ -324,12 +324,12 @@
1331 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
1332 w = pm.width();
1333 h = pm.height();
1334 -if ( w < 32 )
1335 - w = 32;
1336 -if ( h < 32 )
1337 - h = 32;
1338 +if ( w < 24 )
1339 + w = 24;
1340 +if ( h < 24 )
1341 + h = 24;
1342 } else {
1343 -w = h = 16;
1344 +w = h = 14;
1345 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
1346 w = pm.width();
1347 h = pm.height();
1348diff -ur qt-2.3.7_old/src/kernel/qgfxvnc_qws.cpp qt-2.3.7/src/kernel/qgfxvnc_qws.cpp
1349 --- qt-2.3.7_old/src/kernel/qgfxvnc_qws.cpp2004-09-10 21:08:04.000000000 +0200
1350 +++ qt-2.3.7/src/kernel/qgfxvnc_qws.cpp2004-09-10 21:10:54.000000000 +0200
1351@@ -971,7 +971,7 @@
1352 void QGfxVNC<depth,type>::drawPoint( int x, int y )
1353 {
1354 QWSDisplay::grab( TRUE );
1355- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) & clipbounds );
1356+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) & this->clipbounds );
1357 QGfxRaster<depth,type>::drawPoint( x, y );
1358 QWSDisplay::ungrab();
1359 }
1360@@ -981,8 +981,8 @@
1361 {
1362 QWSDisplay::grab( TRUE );
1363 QRect r = pa.boundingRect();
1364- r.moveBy( xoffs, yoffs );
1365- qvnc_screen->setDirty( r & clipbounds );
1366+ r.moveBy( this->xoffs, this->yoffs );
1367+ qvnc_screen->setDirty( r & this->clipbounds );
1368 QGfxRaster<depth,type>::drawPoints( pa, x, y );
1369 QWSDisplay::ungrab();
1370 }
1371@@ -992,9 +992,9 @@
1372 {
1373 QWSDisplay::grab( TRUE );
1374 QRect r;
1375- r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
1376+ r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
1377 r = r.normalize();
1378- qvnc_screen->setDirty( r & clipbounds );
1379+ qvnc_screen->setDirty( r & this->clipbounds );
1380 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
1381 QWSDisplay::ungrab();
1382 }
1383@@ -1003,7 +1003,7 @@
1384 void QGfxVNC<depth,type>::fillRect( int x,int y,int w,int h )
1385 {
1386 QWSDisplay::grab( TRUE );
1387- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) & clipbounds );
1388+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) & this->clipbounds );
1389 QGfxRaster<depth,type>::fillRect( x, y, w, h );
1390 QWSDisplay::ungrab();
1391 }
1392@@ -1013,8 +1013,8 @@
1393 {
1394 QWSDisplay::grab( TRUE );
1395 QRect r = pa.boundingRect();
1396- r.moveBy( xoffs, yoffs );
1397- qvnc_screen->setDirty( r & clipbounds );
1398+ r.moveBy( this->xoffs, this->yoffs );
1399+ qvnc_screen->setDirty( r & this->clipbounds );
1400 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
1401 QWSDisplay::ungrab();
1402 }
1403@@ -1024,8 +1024,8 @@
1404 {
1405 QWSDisplay::grab( TRUE );
1406 QRect r = pa.boundingRect();
1407- r.moveBy( xoffs, yoffs );
1408- qvnc_screen->setDirty( r & clipbounds );
1409+ r.moveBy( this->xoffs, this->yoffs );
1410+ qvnc_screen->setDirty( r & this->clipbounds );
1411 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
1412 QWSDisplay::ungrab();
1413 }
1414@@ -1034,7 +1034,7 @@
1415 void QGfxVNC<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
1416 {
1417 QWSDisplay::grab( TRUE );
1418- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) & clipbounds );
1419+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) & this->clipbounds );
1420 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
1421 QWSDisplay::ungrab();
1422 }
1423@@ -1045,8 +1045,8 @@
1424 QWSDisplay::grab( TRUE );
1425 int dy = sy - y;
1426 int dx = sx - x;
1427- qvnc_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
1428 - w+abs(dx), h+abs(dy)) & clipbounds );
1429+ qvnc_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
1430 + w+abs(dx), h+abs(dy)) & this->clipbounds );
1431 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
1432 QWSDisplay::ungrab();
1433 }
1434@@ -1056,7 +1056,7 @@
1435 void QGfxVNC<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
1436 {
1437 QWSDisplay::grab( TRUE );
1438- qvnc_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) & clipbounds );
1439+ qvnc_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) & this->clipbounds );
1440 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
1441 QWSDisplay::ungrab();
1442 }
1443@@ -1066,7 +1066,7 @@
1444 void QGfxVNC<depth,type>::tiledBlt( int x,int y,int w,int h )
1445 {
1446 QWSDisplay::grab( TRUE );
1447- qvnc_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) & clipbounds );
1448+ qvnc_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) & this->clipbounds );
1449 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
1450 QWSDisplay::ungrab();
1451 }
1452diff -ur qt-2.3.7_old/src/kernel/qwsdecoration_qws.h qt-2.3.7/src/kernel/qwsdecoration_qws.h
1453 --- qt-2.3.7_old/src/kernel/qwsdecoration_qws.h2003-07-17 03:20:26.000000000 +0200
1454 +++ qt-2.3.7/src/kernel/qwsdecoration_qws.h2004-09-13 15:44:13.000000000 +0200
1455@@ -50,7 +50,7 @@
1456 enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
1457 TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
1458 Close=11, Minimize=12, Maximize=13, Normalize=14,
1459 - Menu=15, LastRegion=Menu };
1460 + Menu=15, LastRegion=Menu, UserDefined = 100 };
1461
1462 virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
1463 virtual void close( QWidget * );