summaryrefslogtreecommitdiff
path: root/qt/qt-2.3.8.patch
authorzecke <zecke>2004-07-23 18:18:15 (UTC)
committer zecke <zecke>2004-07-23 18:18:15 (UTC)
commitf9499e14b777050f0bdb3821ca8421dd4c7231fd (patch) (unidiff)
tree7d96a449aa3b211bd7c5bc9f4d5a7908005cd287 /qt/qt-2.3.8.patch
parent984ab6b8bccf667a89062d959defed4a5d86bfb1 (diff)
downloadopie-f9499e14b777050f0bdb3821ca8421dd4c7231fd.zip
opie-f9499e14b777050f0bdb3821ca8421dd4c7231fd.tar.gz
opie-f9499e14b777050f0bdb3821ca8421dd4c7231fd.tar.bz2
Split up the patches for Qt2.3.7 and Qt2.3.8 and add comments
on what they do
Diffstat (limited to 'qt/qt-2.3.8.patch') (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.8.patch/qte238-adjustsizes.patch64
-rw-r--r--qt/qt-2.3.8.patch/qte238-all.patch801
-rw-r--r--qt/qt-2.3.8.patch/qte238-allowoverride.patch231
-rw-r--r--qt/qt-2.3.8.patch/qte238-gcc34.patch440
-rw-r--r--qt/qt-2.3.8.patch/qte238-hancomwordcrash.patch15
-rw-r--r--qt/qt-2.3.8.patch/qte238-iconviewspeed.patch145
-rw-r--r--qt/qt-2.3.8.patch/qte238-keyboard.patch47
7 files changed, 1711 insertions, 32 deletions
diff --git a/qt/qt-2.3.8.patch/qte238-adjustsizes.patch b/qt/qt-2.3.8.patch/qte238-adjustsizes.patch
new file mode 100644
index 0000000..b2a7f7e
--- a/dev/null
+++ b/qt/qt-2.3.8.patch/qte238-adjustsizes.patch
@@ -0,0 +1,64 @@
1Qt was not created for 240x320 and we adjust some default values to be more
2sane for the usage on handhelds
3
4
5diff -ur qt-2.3.8-old/src/widgets/qcommonstyle.cpp qt-2.3.8/src/widgets/qcommonstyle.cpp
6 --- qt-2.3.8-old/src/widgets/qcommonstyle.cpp2004-07-22 01:07:44.000000000 +0200
7 +++ qt-2.3.8/src/widgets/qcommonstyle.cpp2004-07-23 16:15:16.000000000 +0200
8@@ -566,7 +566,7 @@
9 bool enabled, bool active )
10 {
11 #ifndef QT_NO_MENUBAR
12-#ifndef QT_NO_STYLE_SGI
13+#if 1 // #ifndef QT_NO_STYLE_SGI
14 if (draw_menu_bar_impl != 0) {
15 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
16 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
17diff -ur qt-2.3.8-old/src/widgets/qlistview.cpp qt-2.3.8/src/widgets/qlistview.cpp
18 --- qt-2.3.8-old/src/widgets/qlistview.cpp2004-07-22 01:07:44.000000000 +0200
19 +++ qt-2.3.8/src/widgets/qlistview.cpp2004-07-23 16:15:16.000000000 +0200
20@@ -5054,9 +5054,9 @@
21 l = l->childItem ? l->childItem : l->siblingItem;
22
23 if ( l && l->height() )
24 -s.setHeight( s.height() + 10 * l->height() );
25- else
26 -s.setHeight( s.height() + 140 );
27 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
28+ else // ^v much too big for handhelds
29 +s.setHeight( s.height() + 30 /*140*/ );
30
31 if ( s.width() > s.height() * 3 )
32 s.setHeight( s.width() / 3 );
33Nur in qt-2.3.8/src/widgets/: qlistview.cpp.orig.
34diff -ur qt-2.3.8-old/src/widgets/qtoolbutton.cpp qt-2.3.8/src/widgets/qtoolbutton.cpp
35 --- qt-2.3.8-old/src/widgets/qtoolbutton.cpp2004-07-22 01:07:44.000000000 +0200
36 +++ qt-2.3.8/src/widgets/qtoolbutton.cpp2004-07-23 16:15:16.000000000 +0200
37@@ -232,7 +232,7 @@
38 else
39 QToolTip::add( this, textLabel );
40 }
41 -#endif
42+#endif
43 }
44
45
46@@ -326,12 +326,12 @@
47 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
48 w = pm.width();
49 h = pm.height();
50 -if ( w < 32 )
51 - w = 32;
52 -if ( h < 32 )
53 - h = 32;
54 +if ( w < 24 )
55 + w = 24;
56 +if ( h < 24 )
57 + h = 24;
58 } else {
59 -w = h = 16;
60 +w = h = 14;
61 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
62 w = pm.width();
63 h = pm.height();
64Nur in qt-2.3.8/src/widgets/: qtoolbutton.cpp.orig.
diff --git a/qt/qt-2.3.8.patch/qte238-all.patch b/qt/qt-2.3.8.patch/qte238-all.patch
index 931d3d8..3266f78 100644
--- a/qt/qt-2.3.8.patch/qte238-all.patch
+++ b/qt/qt-2.3.8.patch/qte238-all.patch
@@ -1,322 +1,1059 @@
1 1diff -ur qt-2.3.8-old/include/qapplication.h qt-2.3.8/include/qapplication.h
2# 2 --- qt-2.3.8-old/include/qapplication.h2004-07-22 01:07:45.000000000 +0200
3# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher 3 +++ qt-2.3.8/include/qapplication.h2004-07-23 19:08:46.000000000 +0200
4# 4@@ -61,6 +61,10 @@
5 5 class QSemaphore;
6 --- qt-2.3.8-snapshot-20040706/src/kernel/qapplication.cpp~opie2004-07-06 01:07:38.000000000 +0200 6 #endif
7 +++ qt-2.3.8-snapshot-20040706/src/kernel/qapplication.cpp2004-07-06 23:53:12.000000000 +0200 7
8+#if !defined( QT_WEAK_SYMBOL )
9+#define QT_WEAK_SYMBOL
10+#endif
11+
12 // REMOVE IN 3.0 (just here for moc source compatibility)
13 #define QNonBaseApplication QApplication
14
15@@ -85,7 +89,10 @@
16
17 #ifndef QT_NO_STYLE
18 static QStyle &style();
19 - static void setStyle( QStyle* );
20 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
21+private:
22 +static void setStyle_NonWeak( QStyle* );
23+public:
24 #endif
25 #if 1/* OBSOLETE */
26 enum ColorMode { NormalColors, CustomColors };
27@@ -106,11 +113,19 @@
28 #ifndef QT_NO_PALETTE
29 static QPalette palette( const QWidget* = 0 );
30 static void setPalette( const QPalette &, bool informWidgets=FALSE,
31 + const char* className = 0 ) QT_WEAK_SYMBOL;
32+private:
33 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
34 const char* className = 0 );
35+public:
36 #endif
37 static QFont font( const QWidget* = 0 );
38 static void setFont( const QFont &, bool informWidgets=FALSE,
39 + const char* className = 0 ) QT_WEAK_SYMBOL;
40+private:
41 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
42 const char* className = 0 );
43 +public:
44 static QFontMetrics fontMetrics();
45
46 QWidget *mainWidget() const;
47@@ -207,7 +222,10 @@
48 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
49 #ifndef QT_NO_QWS_MANAGER
50 static QWSDecoration &qwsDecoration();
51- static void qwsSetDecoration( QWSDecoration *);
52+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
53+private:
54+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
55+public:
56 #endif
57 #endif
58
59diff -ur qt-2.3.8-old/include/qcstring.h qt-2.3.8/include/qcstring.h
60 --- qt-2.3.8-old/include/qcstring.h2004-07-22 01:07:46.000000000 +0200
61 +++ qt-2.3.8/include/qcstring.h2004-07-23 19:09:55.000000000 +0200
62@@ -119,7 +119,7 @@
63 // We want to keep source compatibility for 2.x
64 // ### TODO for 4.0: completely remove these and the cstr* functions
65
66-#if !defined(QT_GENUINE_STR)
67+#if 0
68
69 #undefstrlen
70 #define strlen qstrlen
71diff -ur qt-2.3.8-old/include/qfontdatabase.h qt-2.3.8/include/qfontdatabase.h
72 --- qt-2.3.8-old/include/qfontdatabase.h2004-07-22 01:07:45.000000000 +0200
73 +++ qt-2.3.8/include/qfontdatabase.h2004-07-23 19:08:46.000000000 +0200
74@@ -59,6 +59,10 @@
75 class QDiskFont;
76 #endif
77
78+#if !defined( QT_WEAK_SYMBOL )
79+#define QT_WEAK_SYMBOL
80+#endif
81+
82 class QFontDatabasePrivate;
83
84 class Q_EXPORT QFontDatabase
85@@ -67,9 +71,16 @@
86 QFontDatabase();
87
88 QStringList families( bool onlyForLocale = TRUE ) const;
89+
90+
91 QValueList<int> pointSizes( const QString &family,
92 const QString &style = QString::null,
93 - const QString &charSet = QString::null );
94 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
95+private:
96+ QValueList<int> pointSizes_NonWeak( const QString &family,
97 + const QString &style,
98 + const QString &charSet );
99+public:
100 QStringList styles( const QString &family,
101 const QString &charSet = QString::null ) const;
102 QStringList charSets( const QString &familyName,
103diff -ur qt-2.3.8-old/include/qglobal.h qt-2.3.8/include/qglobal.h
104 --- qt-2.3.8-old/include/qglobal.h2004-07-22 01:07:46.000000000 +0200
105 +++ qt-2.3.8/include/qglobal.h2004-07-23 19:09:55.000000000 +0200
106@@ -207,8 +207,16 @@
107 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
108 #define Q_FP_CCAST_BROKEN
109 #endif
110+/* ARM gcc pads structs to 32 bits, even when they contain a single
111+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
112+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
113+ members of a packed struct. (Pointers are OK, because then you
114+ supposedly know what you are doing.) */
115 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
116 #define Q_PACKED __attribute__ ((packed))
117+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
118+# define Q_NO_PACKED_REFERENCE
119+# endif
120 #endif
121 #elif defined(__xlC__)
122 #define _CC_XLC_
123diff -ur qt-2.3.8-old/include/qiconview.h qt-2.3.8/include/qiconview.h
124 --- qt-2.3.8-old/include/qiconview.h2004-07-22 01:07:46.000000000 +0200
125 +++ qt-2.3.8/include/qiconview.h2004-07-23 19:13:09.000000000 +0200
126@@ -444,6 +444,7 @@
127 virtual void contentsDropEvent( QDropEvent *e );
128 #endif
129
130+ void bufferedPaintEvent( QPaintEvent* );
131 virtual void resizeEvent( QResizeEvent* e );
132 virtual void keyPressEvent( QKeyEvent *e );
133 virtual void focusInEvent( QFocusEvent *e );
134diff -ur qt-2.3.8-old/include/qsortedlist.h qt-2.3.8/include/qsortedlist.h
135 --- qt-2.3.8-old/include/qsortedlist.h2004-07-22 01:07:46.000000000 +0200
136 +++ qt-2.3.8/include/qsortedlist.h2004-07-23 19:09:55.000000000 +0200
137@@ -48,7 +48,7 @@
138 public:
139 QSortedList() {}
140 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
141- ~QSortedList() { clear(); }
142+ ~QSortedList() { this->clear(); }
143 QSortedList<type> &operator=(const QSortedList<type> &l)
144 { return (QSortedList<type>&)QList<type>::operator=(l); }
145
146diff -ur qt-2.3.8-old/include/qstring.h qt-2.3.8/include/qstring.h
147 --- qt-2.3.8-old/include/qstring.h2004-07-22 01:07:46.000000000 +0200
148 +++ qt-2.3.8/include/qstring.h2004-07-23 19:09:55.000000000 +0200
149@@ -163,8 +163,16 @@
150 bool isLetterOrNumber() const;
151 bool isDigit() const;
152
153+
154+#ifdef Q_NO_PACKED_REFERENCE
155+ uchar& cell() { return *(&cl); }
156+ uchar& row() { return *(&rw); }
157+#else
158 uchar& cell() { return cl; }
159- uchar& row() { return rw; }
160+ uchar& row() { return rw; }
161+#endif
162+
163+
164 uchar cell() const { return cl; }
165 uchar row() const { return rw; }
166
167diff -ur qt-2.3.8-old/src/iconview/qiconview.cpp qt-2.3.8/src/iconview/qiconview.cpp
168 --- qt-2.3.8-old/src/iconview/qiconview.cpp2004-07-22 01:07:46.000000000 +0200
169 +++ qt-2.3.8/src/iconview/qiconview.cpp2004-07-23 19:13:09.000000000 +0200
170@@ -224,6 +224,7 @@
171 QIconView::SelectionMode selectionMode;
172 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
173 QRect *rubber;
174+ QPixmap *backBuffer;
175 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
176 *fullRedrawTimer;
177 int rastX, rastY, spacing;
178@@ -2267,6 +2268,7 @@
179 d->currentItem = 0;
180 d->highlightedItem = 0;
181 d->rubber = 0;
182+ d->backBuffer = 0;
183 d->scrollTimer = 0;
184 d->startDragItem = 0;
185 d->tmpCurrentItem = 0;
186@@ -2415,6 +2417,8 @@
187 delete item;
188 item = tmp;
189 }
190+ delete d->backBuffer;
191+ d->backBuffer = 0;
192 delete d->fm;
193 d->fm = 0;
194 #ifndef QT_NO_TOOLTIP
195@@ -2881,6 +2885,48 @@
196 }
197
198 /*!
199+ This function grabs all paintevents that otherwise would have been
200+ processed by the QScrollView::viewportPaintEvent(). Here we use a
201+ doublebuffer to reduce 'on-paint' flickering on QIconView
202+ (and of course its childs).
203+
204+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
205+*/
206+
207+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
208+{
209+ QWidget* vp = viewport();
210+ QRect r = pe->rect() & vp->rect();
211+ int ex = r.x() + contentsX();
212+ int ey = r.y() + contentsY();
213+ int ew = r.width();
214+ int eh = r.height();
215+
216+ if ( !d->backBuffer )
217 +d->backBuffer = new QPixmap(vp->size());
218+ if ( d->backBuffer->size() != vp->size() ) {
219 +//Resize function (with hysteesis). Uses a good compromise between memory
220 +//consumption and speed (number) of resizes.
221+ float newWidth = (float)vp->width();
222 +float newHeight = (float)vp->height();
223 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
224 +{
225 + newWidth *= 1.1892;
226 + newHeight *= 1.1892;
227 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
228 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
229 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
230+ }
231+
232+ QPainter p;
233+ p.begin(d->backBuffer, vp);
234+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
235+ p.end();
236+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
237+}
238+
239+/*!
240+
241 \reimp
242 */
243
244@@ -4937,7 +4983,7 @@
245 if ( !d->rubber )
246 drawDragShapes( d->oldDragPos );
247 }
248 - viewportPaintEvent( (QPaintEvent*)e );
249+ bufferedPaintEvent ((QPaintEvent*)e );
250 if ( d->dragging ) {
251 if ( !d->rubber )
252 drawDragShapes( d->oldDragPos );
253@@ -5374,11 +5420,19 @@
254 return;
255
256 if ( item->d->container1 && d->firstContainer ) {
257 -item->d->container1->items.removeRef( item );
258+ //Special-case checking of the last item, since this may be
259+ //called a few times for the same item.
260+ if (item->d->container1->items.last() == item)
261+ item->d->container1->items.removeLast();
262+ else
263+ item->d->container1->items.removeRef( item );
264 }
265 item->d->container1 = 0;
266 if ( item->d->container2 && d->firstContainer ) {
267 -item->d->container2->items.removeRef( item );
268+ if (item->d->container2->items.last() == item)
269+ item->d->container2->items.removeLast();
270+ else
271+ item->d->container2->items.removeRef( item );
272 }
273 item->d->container2 = 0;
274
275Nur in qt-2.3.8/src/iconview: qiconview.cpp.orig.
276Nur in qt-2.3.8/src/iconview: qiconview.cpp.rej.
277diff -ur qt-2.3.8-old/src/iconview/qiconview.h qt-2.3.8/src/iconview/qiconview.h
278 --- qt-2.3.8-old/src/iconview/qiconview.h2004-07-22 01:07:46.000000000 +0200
279 +++ qt-2.3.8/src/iconview/qiconview.h2004-07-23 19:13:09.000000000 +0200
280@@ -444,6 +444,7 @@
281 virtual void contentsDropEvent( QDropEvent *e );
282 #endif
283
284+ void bufferedPaintEvent( QPaintEvent* );
285 virtual void resizeEvent( QResizeEvent* e );
286 virtual void keyPressEvent( QKeyEvent *e );
287 virtual void focusInEvent( QFocusEvent *e );
288diff -ur qt-2.3.8-old/src/kernel/qapplication.cpp qt-2.3.8/src/kernel/qapplication.cpp
289 --- qt-2.3.8-old/src/kernel/qapplication.cpp2004-07-22 01:07:46.000000000 +0200
290 +++ qt-2.3.8/src/kernel/qapplication.cpp2004-07-23 19:08:46.000000000 +0200
8@@ -35,6 +35,8 @@ 291@@ -35,6 +35,8 @@
9 ** 292 **
10 **********************************************************************/ 293 **********************************************************************/
11 294
12 +#define QT_WEAK_SYMBOL__attribute__(( weak )) 295 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
13+ 296+
14 #include "qobjectlist.h" 297 #include "qobjectlist.h"
15 #include "qobjectdict.h" 298 #include "qobjectdict.h"
16 #include "qapplication.h" 299 #include "qapplication.h"
17@@ -936,11 +938,16 @@ 300@@ -936,11 +938,16 @@
18 #ifndef QT_NO_STYLE 301 #ifndef QT_NO_STYLE
19 void QApplication::setStyle( QStyle *style ) 302 void QApplication::setStyle( QStyle *style )
20 { 303 {
21 +setStyle_NonWeak ( style ); 304 +setStyle_NonWeak ( style );
22+} 305+}
23+ 306+
24+void QApplication::setStyle_NonWeak( QStyle *style ) 307+void QApplication::setStyle_NonWeak( QStyle *style )
25+{ 308+{
26 QStyle* old = app_style; 309 QStyle* old = app_style;
27- app_style = style; 310- app_style = style;
28 311
29 if ( startingUp() ) { 312 if ( startingUp() ) {
30 delete old; 313 delete old;
31 +app_style = style; 314 +app_style = style;
32 return; 315 return;
33 } 316 }
34 317
35@@ -961,6 +968,8 @@ 318@@ -961,6 +968,8 @@
36 old->unPolish( qApp ); 319 old->unPolish( qApp );
37 } 320 }
38 321
39+ app_style = style; 322+ app_style = style;
40+ 323+
41 // take care of possible palette requirements of certain gui 324 // take care of possible palette requirements of certain gui
42 // styles. Do it before polishing the application since the style 325 // styles. Do it before polishing the application since the style
43 // might call QApplication::setStyle() itself 326 // might call QApplication::setStyle() itself
44@@ -1187,13 +1196,30 @@ 327@@ -1187,13 +1196,30 @@
45 \sa QWidget::setPalette(), palette(), QStyle::polish() 328 \sa QWidget::setPalette(), palette(), QStyle::polish()
46 */ 329 */
47 330
48-void QApplication::setPalette( const QPalette &palette, bool informWidgets, 331-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
49+void QApplication::setPalette ( const QPalette &palette, bool informWidgets, 332+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
50 + const char* className ) 333 + const char* className )
51+{ 334+{
52 +setPalette_NonWeak ( palette, informWidgets, className ); 335 +setPalette_NonWeak ( palette, informWidgets, className );
53+} 336+}
54+ 337+
55+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets, 338+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
56 const char* className ) 339 const char* className )
57 { 340 {
58 QPalette pal = palette; 341 QPalette pal = palette;
59 #ifndef QT_NO_STYLE 342 #ifndef QT_NO_STYLE
60- if ( !startingUp() ) 343- if ( !startingUp() )
61+ if ( !startingUp() ) { 344+ if ( !startingUp() ) {
62 qApp->style().polish( pal );// NB: non-const reference 345 qApp->style().polish( pal );// NB: non-const reference
63 +if ( className ) { 346 +if ( className ) {
64 + // if we just polished a class specific palette (this normally 347 + // if we just polished a class specific palette (this normally
65 + // only called by qt_fix_tooltips - see below), we better re- 348 + // only called by qt_fix_tooltips - see below), we better re-
66 + // polish the global palette. Some styles like liquid can get 349 + // polish the global palette. Some styles like liquid can get
67 + // confused, because they can not detect if the polished palette 350 + // confused, because they can not detect if the polished palette
68 + // is the global one or only a class specific one. 351 + // is the global one or only a class specific one.
69 + // (liquid uses this palette to calculate blending pixmaps) 352 + // (liquid uses this palette to calculate blending pixmaps)
70 + QPalette p = qApp-> palette ( ); 353 + QPalette p = qApp-> palette ( );
71 + qApp->style().polish ( p ); 354 + qApp->style().polish ( p );
72 +} 355 +}
73+ } 356+ }
74 #endif 357 #endif
75 bool all = FALSE; 358 bool all = FALSE;
76 if ( !className ) { 359 if ( !className ) {
77@@ -1278,6 +1304,12 @@ 360@@ -1278,6 +1304,12 @@
78 void QApplication::setFont( const QFont &font, bool informWidgets, 361 void QApplication::setFont( const QFont &font, bool informWidgets,
79 const char* className ) 362 const char* className )
80 { 363 {
81 +setFont_NonWeak ( font, informWidgets, className ); 364 +setFont_NonWeak ( font, informWidgets, className );
82+} 365+}
83+ 366+
84+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets, 367+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
85 + const char* className ) 368 + const char* className )
86+{ 369+{
87 bool all = FALSE; 370 bool all = FALSE;
88 if ( !className ) { 371 if ( !className ) {
89 if ( !app_font ) { 372 if ( !app_font ) {
90 --- qt-2.3.8-snapshot-20040706/src/kernel/qapplication.h~opie2004-07-06 01:07:38.000000000 +0200 373Nur in qt-2.3.8/src/kernel: qapplication.cpp.orig.
91 +++ qt-2.3.8-snapshot-20040706/src/kernel/qapplication.h2004-07-06 23:53:12.000000000 +0200 374diff -ur qt-2.3.8-old/src/kernel/qapplication.h qt-2.3.8/src/kernel/qapplication.h
375 --- qt-2.3.8-old/src/kernel/qapplication.h2004-07-22 01:07:45.000000000 +0200
376 +++ qt-2.3.8/src/kernel/qapplication.h2004-07-23 19:08:46.000000000 +0200
92@@ -61,6 +61,10 @@ 377@@ -61,6 +61,10 @@
93 class QSemaphore; 378 class QSemaphore;
94 #endif 379 #endif
95 380
96+#if !defined( QT_WEAK_SYMBOL ) 381+#if !defined( QT_WEAK_SYMBOL )
97+#define QT_WEAK_SYMBOL 382+#define QT_WEAK_SYMBOL
98+#endif 383+#endif
99+ 384+
100 // REMOVE IN 3.0 (just here for moc source compatibility) 385 // REMOVE IN 3.0 (just here for moc source compatibility)
101 #define QNonBaseApplication QApplication 386 #define QNonBaseApplication QApplication
102 387
103@@ -85,7 +89,10 @@ 388@@ -85,7 +89,10 @@
104 389
105 #ifndef QT_NO_STYLE 390 #ifndef QT_NO_STYLE
106 static QStyle &style(); 391 static QStyle &style();
107 - static void setStyle( QStyle* ); 392 - static void setStyle( QStyle* );
108 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL; 393 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
109+private: 394+private:
110 +static void setStyle_NonWeak( QStyle* ); 395 +static void setStyle_NonWeak( QStyle* );
111+public: 396+public:
112 #endif 397 #endif
113 #if 1/* OBSOLETE */ 398 #if 1/* OBSOLETE */
114 enum ColorMode { NormalColors, CustomColors }; 399 enum ColorMode { NormalColors, CustomColors };
115@@ -106,11 +113,19 @@ 400@@ -106,11 +113,19 @@
116 #ifndef QT_NO_PALETTE 401 #ifndef QT_NO_PALETTE
117 static QPalette palette( const QWidget* = 0 ); 402 static QPalette palette( const QWidget* = 0 );
118 static void setPalette( const QPalette &, bool informWidgets=FALSE, 403 static void setPalette( const QPalette &, bool informWidgets=FALSE,
119 + const char* className = 0 ) QT_WEAK_SYMBOL; 404 + const char* className = 0 ) QT_WEAK_SYMBOL;
120+private: 405+private:
121 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE, 406 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
122 const char* className = 0 ); 407 const char* className = 0 );
123+public: 408+public:
124 #endif 409 #endif
125 static QFont font( const QWidget* = 0 ); 410 static QFont font( const QWidget* = 0 );
126 static void setFont( const QFont &, bool informWidgets=FALSE, 411 static void setFont( const QFont &, bool informWidgets=FALSE,
127 + const char* className = 0 ) QT_WEAK_SYMBOL; 412 + const char* className = 0 ) QT_WEAK_SYMBOL;
128+private: 413+private:
129 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE, 414 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
130 const char* className = 0 ); 415 const char* className = 0 );
131 +public: 416 +public:
132 static QFontMetrics fontMetrics(); 417 static QFontMetrics fontMetrics();
133 418
134 QWidget *mainWidget() const; 419 QWidget *mainWidget() const;
135@@ -207,7 +222,10 @@ 420@@ -207,7 +222,10 @@
136 void qwsSetCustomColors( QRgb *colortable, int start, int numColors ); 421 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
137 #ifndef QT_NO_QWS_MANAGER 422 #ifndef QT_NO_QWS_MANAGER
138 static QWSDecoration &qwsDecoration(); 423 static QWSDecoration &qwsDecoration();
139- static void qwsSetDecoration( QWSDecoration *); 424- static void qwsSetDecoration( QWSDecoration *);
140+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL; 425+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
141+private: 426+private:
142+ static void qwsSetDecoration_NonWeak( QWSDecoration *); 427+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
143+public: 428+public:
144 #endif 429 #endif
145 #endif 430 #endif
146 431
147 --- qt-2.3.8-snapshot-20040706/src/kernel/qapplication_qws.cpp~opie2004-07-06 23:37:08.000000000 +0200 432diff -ur qt-2.3.8-old/src/kernel/qapplication_qws.cpp qt-2.3.8/src/kernel/qapplication_qws.cpp
148 +++ qt-2.3.8-snapshot-20040706/src/kernel/qapplication_qws.cpp2004-07-06 23:53:12.000000000 +0200 433 --- qt-2.3.8-old/src/kernel/qapplication_qws.cpp2004-07-22 01:07:45.000000000 +0200
149@@ -2989,6 +2989,11 @@ 434 +++ qt-2.3.8/src/kernel/qapplication_qws.cpp2004-07-23 19:08:46.000000000 +0200
435@@ -2896,6 +2896,11 @@
150 */ 436 */
151 void QApplication::qwsSetDecoration( QWSDecoration *d ) 437 void QApplication::qwsSetDecoration( QWSDecoration *d )
152 { 438 {
153 +qwsSetDecoration_NonWeak ( d ); 439 +qwsSetDecoration_NonWeak ( d );
154+} 440+}
155+ 441+
156+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d ) 442+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
157+{ 443+{
158 if ( d ) { 444 if ( d ) {
159 delete qws_decoration; 445 delete qws_decoration;
160 qws_decoration = d; 446 qws_decoration = d;
161 --- qt-2.3.8-snapshot-20040706/src/kernel/qfontdatabase.cpp~opie2004-07-06 01:07:38.000000000 +0200 447Nur in qt-2.3.8/src/kernel: qapplication_qws.cpp.orig.
162 +++ qt-2.3.8-snapshot-20040706/src/kernel/qfontdatabase.cpp2004-07-06 23:53:12.000000000 +0200 448diff -ur qt-2.3.8-old/src/kernel/qfontdatabase.cpp qt-2.3.8/src/kernel/qfontdatabase.cpp
449 --- qt-2.3.8-old/src/kernel/qfontdatabase.cpp2004-07-22 01:07:45.000000000 +0200
450 +++ qt-2.3.8/src/kernel/qfontdatabase.cpp2004-07-23 19:08:46.000000000 +0200
163@@ -35,6 +35,8 @@ 451@@ -35,6 +35,8 @@
164 ** 452 **
165 **********************************************************************/ 453 **********************************************************************/
166 454
167+#define QT_WEAK_SYMBOL __attribute__(( weak )) 455+#define QT_WEAK_SYMBOL __attribute__(( weak ))
168+ 456+
169 #include "qfontdatabase.h" 457 #include "qfontdatabase.h"
170 458
171 #ifndef QT_NO_FONTDATABASE 459 #ifndef QT_NO_FONTDATABASE
172@@ -2424,6 +2426,13 @@ 460@@ -2424,6 +2426,13 @@
173 const QString &style, 461 const QString &style,
174 const QString &charSet ) 462 const QString &charSet )
175 { 463 {
176 +return pointSizes_NonWeak ( family, style, charSet ); 464 +return pointSizes_NonWeak ( family, style, charSet );
177+} 465+}
178+ 466+
179+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family, 467+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
180+ const QString &style, 468+ const QString &style,
181+ const QString &charSet ) 469+ const QString &charSet )
182+{ 470+{
183 QString cs( charSet ); 471 QString cs( charSet );
184 if ( charSet.isEmpty() ) { 472 if ( charSet.isEmpty() ) {
185 QStringList lst = charSets( family ); 473 QStringList lst = charSets( family );
186 --- qt-2.3.8-snapshot-20040706/src/kernel/qfontdatabase.h~opie2004-07-06 01:07:38.000000000 +0200 474diff -ur qt-2.3.8-old/src/kernel/qfontdatabase.h qt-2.3.8/src/kernel/qfontdatabase.h
187 +++ qt-2.3.8-snapshot-20040706/src/kernel/qfontdatabase.h2004-07-06 23:53:12.000000000 +0200 475 --- qt-2.3.8-old/src/kernel/qfontdatabase.h2004-07-22 01:07:45.000000000 +0200
476 +++ qt-2.3.8/src/kernel/qfontdatabase.h2004-07-23 19:08:46.000000000 +0200
188@@ -59,6 +59,10 @@ 477@@ -59,6 +59,10 @@
189 class QDiskFont; 478 class QDiskFont;
190 #endif 479 #endif
191 480
192+#if !defined( QT_WEAK_SYMBOL ) 481+#if !defined( QT_WEAK_SYMBOL )
193+#define QT_WEAK_SYMBOL 482+#define QT_WEAK_SYMBOL
194+#endif 483+#endif
195+ 484+
196 class QFontDatabasePrivate; 485 class QFontDatabasePrivate;
197 486
198 class Q_EXPORT QFontDatabase 487 class Q_EXPORT QFontDatabase
199@@ -67,9 +71,16 @@ 488@@ -67,9 +71,16 @@
200 QFontDatabase(); 489 QFontDatabase();
201 490
202 QStringList families( bool onlyForLocale = TRUE ) const; 491 QStringList families( bool onlyForLocale = TRUE ) const;
203+ 492+
204+ 493+
205 QValueList<int> pointSizes( const QString &family, 494 QValueList<int> pointSizes( const QString &family,
206 const QString &style = QString::null, 495 const QString &style = QString::null,
207 - const QString &charSet = QString::null ); 496 - const QString &charSet = QString::null );
208 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL; 497 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
209+private: 498+private:
210+ QValueList<int> pointSizes_NonWeak( const QString &family, 499+ QValueList<int> pointSizes_NonWeak( const QString &family,
211 + const QString &style, 500 + const QString &style,
212 + const QString &charSet ); 501 + const QString &charSet );
213+public: 502+public:
214 QStringList styles( const QString &family, 503 QStringList styles( const QString &family,
215 const QString &charSet = QString::null ) const; 504 const QString &charSet = QString::null ) const;
216 QStringList charSets( const QString &familyName, 505 QStringList charSets( const QString &familyName,
217 --- qt-2.3.8-snapshot-20040706/src/kernel/qgfxraster_qws.cpp~opie2004-07-06 01:07:38.000000000 +0200 506diff -ur qt-2.3.8-old/src/kernel/qgfxraster_qws.cpp qt-2.3.8/src/kernel/qgfxraster_qws.cpp
218 +++ qt-2.3.8-snapshot-20040706/src/kernel/qgfxraster_qws.cpp2004-07-06 23:53:12.000000000 +0200 507 --- qt-2.3.8-old/src/kernel/qgfxraster_qws.cpp2004-07-22 01:07:45.000000000 +0200
219@@ -4398,7 +4398,7 @@ 508 +++ qt-2.3.8/src/kernel/qgfxraster_qws.cpp2004-07-23 19:10:03.000000000 +0200
509@@ -4400,7 +4400,7 @@
220 setAlphaType(IgnoreAlpha); 510 setAlphaType(IgnoreAlpha);
221 if ( w <= 0 || h <= 0 || !ncliprect ) return; 511 if ( w <= 0 || h <= 0 || !ncliprect ) return;
222 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1)) 512 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
223-#ifdef QWS_EXPERIMENTAL_FASTPATH 513-#ifdef QWS_EXPERIMENTAL_FASTPATH
224+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !! 514+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
225 // ### fix for 8bpp 515 // ### fix for 8bpp
226 // This seems to be reliable now, at least for 16bpp 516 // This seems to be reliable now, at least for 16bpp
227 517
228 --- qt-2.3.8-snapshot-20040706/src/kernel/qkeyboard_qws.cpp~opie2004-07-06 23:37:08.000000000 +0200 518Nur in qt-2.3.8/src/kernel: qgfxraster_qws.cpp.orig.
229 +++ qt-2.3.8-snapshot-20040706/src/kernel/qkeyboard_qws.cpp2004-07-06 23:53:12.000000000 +0200 519diff -ur qt-2.3.8-old/src/kernel/qgfxtransformed_qws.cpp qt-2.3.8/src/kernel/qgfxtransformed_qws.cpp
520 --- qt-2.3.8-old/src/kernel/qgfxtransformed_qws.cpp2004-07-22 01:07:45.000000000 +0200
521 +++ qt-2.3.8/src/kernel/qgfxtransformed_qws.cpp2004-07-23 19:09:55.000000000 +0200
522@@ -671,11 +671,11 @@
523 inline int tx( int x, int y ) {
524 switch ( qt_trans_screen->transformation() ) {
525 case QTransformedScreen::Rot90:
526 - return y - xoffs + yoffs;
527 + return y - this->xoffs + this->yoffs;
528 case QTransformedScreen::Rot180:
529 - return (width - x - 1) - xoffs - xoffs;
530 + return (this->width - x - 1) - this->xoffs - this->xoffs;
531 case QTransformedScreen::Rot270:
532 - return (height - y - 1) - xoffs - yoffs;
533 + return (this->height - y - 1) - this->xoffs - this->yoffs;
534 default:
535 return x;
536 }
537@@ -683,11 +683,11 @@
538 inline int ty( int x, int y ) {
539 switch ( qt_trans_screen->transformation() ) {
540 case QTransformedScreen::Rot90:
541 - return (width - x - 1) - yoffs - xoffs;
542 + return (this->width - x - 1) - this->yoffs - this->xoffs;
543 case QTransformedScreen::Rot180:
544 - return (height - y - 1) - yoffs - yoffs;
545 + return (this->height - y - 1) - this->yoffs - this->yoffs;
546 case QTransformedScreen::Rot270:
547 - return x - yoffs + xoffs;
548 + return x - this->yoffs + this->xoffs;
549 default:
550 return y;
551 }
552@@ -715,23 +715,23 @@
553 template <const int depth, const int type>
554 void QGfxTransformedRaster<depth,type>::setSourceWidgetOffset(int x, int y)
555 {
556- if ( srcbits == buffer ) {
557+ if ( this->srcbits == this->buffer ) {
558 switch ( qt_trans_screen->transformation() ) {
559 case QTransformedScreen::Rot90:
560 - srcwidgetoffs = QPoint( y, width - x - srcwidth );
561 + this->srcwidgetoffs = QPoint( y, this->width - x - this->srcwidth );
562 break;
563 case QTransformedScreen::Rot180:
564 - srcwidgetoffs = QPoint( width - x - srcwidth, height - y - srcheight );
565 + this->srcwidgetoffs = QPoint( this->width - x - this->srcwidth, this->height - y - this->srcheight );
566 break;
567 case QTransformedScreen::Rot270:
568 - srcwidgetoffs = QPoint( height - y - srcheight, x );
569 + this->srcwidgetoffs = QPoint( this->height - y - this->srcheight, x );
570 break;
571 default:
572 - srcwidgetoffs = QPoint( x, y );
573 + this->srcwidgetoffs = QPoint( x, y );
574 break;
575 }
576 } else
577 -srcwidgetoffs = QPoint( x, y );
578 +this->srcwidgetoffs = QPoint( x, y );
579 }
580
581 template <const int depth, const int type>
582@@ -739,8 +739,8 @@
583 {
584 QT_TRANS_GFX_BASE<depth,type>::setSource(i);
585 QSize s = qt_screen->mapToDevice( QSize(i->width(), i->height()) );
586- srcwidth = s.width();
587- srcheight = s.height();
588+ this->srcwidth = s.width();
589+ this->srcheight = s.height();
590 }
591
592 template <const int depth, const int type>
593@@ -782,7 +782,7 @@
594 if ( w == 0 || h == 0 )
595 return;
596 QRect r( x, y, w, h );
597- if ( cbrush.style() == SolidPattern ) {
598+ if ( this->cbrush.style() == Qt::SolidPattern ) {
599 r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
600 r = r.normalize();
601 }
602@@ -797,7 +797,7 @@
603 // solution. The brush offset logic is complicated enough, so we don't
604 // fastpath patternedbrush.
605
606- if ( inDraw || cpen.style()==NoPen || patternedbrush ) {
607+ if ( inDraw || this->cpen.style()==Qt::NoPen || this->patternedbrush ) {
608 //slowpath
609 QT_TRANS_GFX_BASE<depth,type>::drawPolygon( a, w, idx, num );
610 } else {
611@@ -819,29 +819,29 @@
612 template <const int depth, const int type>
613 void QGfxTransformedRaster<depth,type>::processSpans( int n, QPoint* point, int* width )
614 {
615- if ( inDraw || patternedbrush && srcwidth != 0 && srcheight != 0 ) {
616+ if ( inDraw || this->patternedbrush && this->srcwidth != 0 && this->srcheight != 0 ) {
617 //in the patternedbrush case, we let blt do the transformation
618 // so we leave inDraw false.
619 - QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
620 +QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
621 } else {
622 inDraw = TRUE;
623 while (n--) {
624 if ( *width > 0 ) {
625 - int x=tx(point->x(),point->y())+xoffs;
626 - int y=ty(point->x(),point->y())+yoffs;
627 + int x=tx(point->x(),point->y())+this->xoffs;
628 + int y=ty(point->x(),point->y())+this->yoffs;
629
630 switch( qt_trans_screen->transformation() ) {
631 case QTransformedScreen::Rot90:
632 - vline( x, y-(*width-1), y );
633 + this->vline( x, y-(*width-1), y );
634 break;
635 case QTransformedScreen::Rot180:
636 - hline( x - (*width-1), x, y );
637 + this->hline( x - (*width-1), x, y );
638 break;
639 case QTransformedScreen::Rot270:
640 - vline( x, y, y+*width-1 );
641 + this->vline( x, y, y+*width-1 );
642 break;
643 default:
644 - hline( x, x+*width-1, y );
645 + this->hline( x, x+*width-1, y );
646 break;
647 }
648 }
649@@ -896,14 +896,14 @@
650 switch ( qt_trans_screen->transformation() ) {
651 case QTransformedScreen::Rot90:
652 rsx = sy;
653 - rsy = srcwidth - sx - w;
654 + rsy = this->srcwidth - sx - w;
655 break;
656 case QTransformedScreen::Rot180:
657 - rsx = srcwidth - sx - w;
658 - rsy = srcheight - sy - h;
659 + rsx = this->srcwidth - sx - w;
660 + rsy = this->srcheight - sy - h;
661 break;
662 case QTransformedScreen::Rot270:
663 - rsx = srcheight - sy - h;
664 + rsx = this->srcheight - sy - h;
665 rsy = sx;
666 break;
667 default:
668@@ -941,39 +941,39 @@
669 r.setCoords( tx(rx,ry), ty(rx,ry), tx(rx+w-1,ry+h-1), ty(rx+w-1,ry+h-1) );
670 r = r.normalize();
671
672- QPoint oldBrushOffs = brushoffs;
673+ QPoint oldBrushOffs = this->brushoffs;
674 int brx, bry;
675 switch ( qt_trans_screen->transformation() ) {
676 case QTransformedScreen::Rot90:
677 - brx = brushoffs.y();
678 - bry = srcwidth - brushoffs.x() - w;
679 + brx = this->brushoffs.y();
680 + bry = this->srcwidth - this->brushoffs.x() - w;
681 break;
682 case QTransformedScreen::Rot180:
683 - brx = srcwidth - brushoffs.x() - w;
684 - bry = srcheight - brushoffs.y() - h;
685 + brx = this->srcwidth - this->brushoffs.x() - w;
686 + bry = this->srcheight - this->brushoffs.y() - h;
687 break;
688 case QTransformedScreen::Rot270:
689 - brx = srcheight - brushoffs.y() - h;
690 - bry = brushoffs.x();
691 + brx = this->srcheight - this->brushoffs.y() - h;
692 + bry = this->brushoffs.x();
693 break;
694 default:
695 - brx = brushoffs.x();
696 - bry = brushoffs.y();
697 + brx = this->brushoffs.x();
698 + bry = this->brushoffs.y();
699 break;
700 }
701- brushoffs = QPoint( brx, bry );
702+ this->brushoffs = QPoint( brx, bry );
703
704- int oldsw = srcwidth;
705- int oldsh = srcheight;
706- QSize s = qt_screen->mapToDevice( QSize(srcwidth,srcheight) );
707- srcwidth = s.width();
708- srcheight = s.height();
709+ int oldsw = this->srcwidth;
710+ int oldsh = this->srcheight;
711+ QSize s = qt_screen->mapToDevice( QSize(this->srcwidth,this->srcheight) );
712+ this->srcwidth = s.width();
713+ this->srcheight = s.height();
714
715 QT_TRANS_GFX_BASE<depth,type>::tiledBlt( r.x(), r.y(), r.width(), r.height() );
716
717- srcwidth = oldsw;
718- srcheight = oldsh;
719- brushoffs = oldBrushOffs;
720+ this->srcwidth = oldsw;
721+ this->srcheight = oldsh;
722+ this->brushoffs = oldBrushOffs;
723 inDraw = FALSE;
724 }
725
726diff -ur qt-2.3.8-old/src/kernel/qgfxvfb_qws.cpp qt-2.3.8/src/kernel/qgfxvfb_qws.cpp
727 --- qt-2.3.8-old/src/kernel/qgfxvfb_qws.cpp2004-07-22 01:07:45.000000000 +0200
728 +++ qt-2.3.8/src/kernel/qgfxvfb_qws.cpp2004-07-23 19:09:55.000000000 +0200
729@@ -31,7 +31,6 @@
730 **********************************************************************/
731
732 #include "qgfxraster_qws.h"
733-
734 #ifndef QT_NO_QWS_VFB
735
736 #include <sys/ipc.h>
737@@ -140,8 +139,8 @@
738 void QGfxVFb<depth,type>::drawPoint( int x, int y )
739 {
740 QWSDisplay::grab( TRUE );
741- if ( is_screen_gfx )
742 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) );
743+ if ( this->is_screen_gfx )
744 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) );
745 QGfxRaster<depth,type>::drawPoint( x, y );
746 QWSDisplay::ungrab();
747 }
748@@ -150,8 +149,8 @@
749 void QGfxVFb<depth,type>::drawPoints( const QPointArray &pa,int x,int y )
750 {
751 QWSDisplay::grab( TRUE );
752- if ( is_screen_gfx )
753 -qvfb_screen->setDirty( clipbounds );
754+ if ( this->is_screen_gfx )
755 +qvfb_screen->setDirty( this->clipbounds );
756 QGfxRaster<depth,type>::drawPoints( pa, x, y );
757 QWSDisplay::ungrab();
758 }
759@@ -160,9 +159,9 @@
760 void QGfxVFb<depth,type>::drawLine( int x1,int y1,int x2,int y2 )
761 {
762 QWSDisplay::grab( TRUE );
763- if ( is_screen_gfx ) {
764+ if ( this->is_screen_gfx ) {
765 QRect r;
766 -r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
767 +r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
768 qvfb_screen->setDirty( r.normalize() );
769 }
770 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
771@@ -173,8 +172,8 @@
772 void QGfxVFb<depth,type>::fillRect( int x,int y,int w,int h )
773 {
774 QWSDisplay::grab( TRUE );
775- if ( is_screen_gfx )
776 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
777+ if ( this->is_screen_gfx )
778 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
779 QGfxRaster<depth,type>::fillRect( x, y, w, h );
780 QWSDisplay::ungrab();
781 }
782@@ -183,8 +182,8 @@
783 void QGfxVFb<depth,type>::drawPolyline( const QPointArray &pa,int x,int y )
784 {
785 QWSDisplay::grab( TRUE );
786- if ( is_screen_gfx )
787 -qvfb_screen->setDirty( clipbounds );
788+ if ( this->is_screen_gfx )
789 +qvfb_screen->setDirty( this->clipbounds );
790 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
791 QWSDisplay::ungrab();
792 }
793@@ -193,8 +192,8 @@
794 void QGfxVFb<depth,type>::drawPolygon( const QPointArray &pa,bool w,int x,int y )
795 {
796 QWSDisplay::grab( TRUE );
797- if ( is_screen_gfx )
798 -qvfb_screen->setDirty( clipbounds );
799+ if ( this->is_screen_gfx )
800 +qvfb_screen->setDirty( this->clipbounds );
801 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
802 QWSDisplay::ungrab();
803 }
804@@ -203,8 +202,8 @@
805 void QGfxVFb<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
806 {
807 QWSDisplay::grab( TRUE );
808- if ( is_screen_gfx )
809 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
810+ if ( this->is_screen_gfx )
811 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
812 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
813 QWSDisplay::ungrab();
814 }
815@@ -215,8 +214,8 @@
816 QWSDisplay::grab( TRUE );
817 int dy = sy - y;
818 int dx = sx - x;
819- if ( is_screen_gfx )
820 -qvfb_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
821+ if ( this->is_screen_gfx )
822 +qvfb_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
823 w+abs(dx), h+abs(dy)) );
824 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
825 QWSDisplay::ungrab();
826@@ -227,8 +226,8 @@
827 void QGfxVFb<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
828 {
829 QWSDisplay::grab( TRUE );
830- if ( is_screen_gfx )
831 -qvfb_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) );
832+ if ( this->is_screen_gfx )
833 +qvfb_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) );
834 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
835 QWSDisplay::ungrab();
836 }
837@@ -238,8 +237,8 @@
838 void QGfxVFb<depth,type>::tiledBlt( int x,int y,int w,int h )
839 {
840 QWSDisplay::grab( TRUE );
841- if ( is_screen_gfx )
842 -qvfb_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) );
843+ if ( this->is_screen_gfx )
844 +qvfb_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) );
845 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
846 QWSDisplay::ungrab();
847 }
848diff -ur qt-2.3.8-old/src/kernel/qkeyboard_qws.cpp qt-2.3.8/src/kernel/qkeyboard_qws.cpp
849 --- qt-2.3.8-old/src/kernel/qkeyboard_qws.cpp2004-07-22 01:07:45.000000000 +0200
850 +++ qt-2.3.8/src/kernel/qkeyboard_qws.cpp2004-07-23 19:15:51.000000000 +0200
230@@ -314,7 +314,7 @@ 851@@ -314,7 +314,7 @@
231 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63 852 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
232 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64 853 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
233 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65 854 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
234 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66 855 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
235+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66 856+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
236 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67 857 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
237 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68 858 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
238 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69 859 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
239 --- qt-2.3.8-snapshot-20040706/src/kernel/qwindowsystem_qws.cpp~opie2004-07-06 23:37:08.000000000 +0200 860Nur in qt-2.3.8/src/kernel: qkeyboard_qws.cpp.orig.
240 +++ qt-2.3.8-snapshot-20040706/src/kernel/qwindowsystem_qws.cpp2004-07-06 23:53:12.000000000 +0200 861diff -ur qt-2.3.8-old/src/kernel/qwindowsystem_qws.cpp qt-2.3.8/src/kernel/qwindowsystem_qws.cpp
241@@ -1158,6 +1158,18 @@ 862 --- qt-2.3.8-old/src/kernel/qwindowsystem_qws.cpp2004-07-22 01:07:45.000000000 +0200
863 +++ qt-2.3.8/src/kernel/qwindowsystem_qws.cpp2004-07-23 19:15:51.000000000 +0200
864@@ -1273,6 +1273,18 @@
242 { 865 {
243 } 866 }
244 867
245+static void catchSegvSignal( int ) 868+static void catchSegvSignal( int )
246+{ 869+{
247+#ifndef QT_NO_QWS_KEYBOARD 870+#ifndef QT_NO_QWS_KEYBOARD
248+ if ( qwsServer ) 871+ if ( qwsServer )
249 +qwsServer->closeKeyboard(); 872 +qwsServer->closeKeyboard();
250+#endif 873+#endif
251+ QWSServer::closedown(); 874+ QWSServer::closedown();
252+ fprintf(stderr, "Segmentation fault.\n"); 875+ fprintf(stderr, "Segmentation fault.\n");
253+ exit(1); 876+ exit(1);
254+} 877+}
255+ 878+
256+ 879+
257 /*! 880 /*!
258 \class QWSServer qwindowsystem_qws.h 881 \class QWSServer qwindowsystem_qws.h
259 \brief Server-specific functionality in Qt/Embedded 882 \brief Server-specific functionality in Qt/Embedded
260@@ -1250,6 +1262,7 @@ 883@@ -1365,6 +1377,7 @@
261 } 884 }
262 885
263 signal(SIGPIPE, ignoreSignal); //we get it when we read 886 signal(SIGPIPE, ignoreSignal); //we get it when we read
264+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash 887+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
265 #endif 888 #endif
266 focusw = 0; 889 focusw = 0;
267 mouseGrabber = 0; 890 mouseGrabber = 0;
268 --- qt-2.3.8-snapshot-20040706/src/widgets/qcommonstyle.cpp~opie2004-07-06 01:07:37.000000000 +0200 891Nur in qt-2.3.8/src/kernel: qwindowsystem_qws.cpp.orig.
269 +++ qt-2.3.8-snapshot-20040706/src/widgets/qcommonstyle.cpp2004-07-06 23:53:12.000000000 +0200 892diff -ur qt-2.3.8-old/src/tools/qcstring.h qt-2.3.8/src/tools/qcstring.h
893 --- qt-2.3.8-old/src/tools/qcstring.h2004-07-22 01:07:46.000000000 +0200
894 +++ qt-2.3.8/src/tools/qcstring.h2004-07-23 19:09:55.000000000 +0200
895@@ -119,7 +119,7 @@
896 // We want to keep source compatibility for 2.x
897 // ### TODO for 4.0: completely remove these and the cstr* functions
898
899-#if !defined(QT_GENUINE_STR)
900+#if 0
901
902 #undefstrlen
903 #define strlen qstrlen
904diff -ur qt-2.3.8-old/src/tools/qglobal.h qt-2.3.8/src/tools/qglobal.h
905 --- qt-2.3.8-old/src/tools/qglobal.h2004-07-22 01:07:46.000000000 +0200
906 +++ qt-2.3.8/src/tools/qglobal.h2004-07-23 19:09:55.000000000 +0200
907@@ -207,8 +207,16 @@
908 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
909 #define Q_FP_CCAST_BROKEN
910 #endif
911+/* ARM gcc pads structs to 32 bits, even when they contain a single
912+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
913+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
914+ members of a packed struct. (Pointers are OK, because then you
915+ supposedly know what you are doing.) */
916 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
917 #define Q_PACKED __attribute__ ((packed))
918+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
919+# define Q_NO_PACKED_REFERENCE
920+# endif
921 #endif
922 #elif defined(__xlC__)
923 #define _CC_XLC_
924diff -ur qt-2.3.8-old/src/tools/qsortedlist.h qt-2.3.8/src/tools/qsortedlist.h
925 --- qt-2.3.8-old/src/tools/qsortedlist.h2004-07-22 01:07:46.000000000 +0200
926 +++ qt-2.3.8/src/tools/qsortedlist.h2004-07-23 19:09:55.000000000 +0200
927@@ -48,7 +48,7 @@
928 public:
929 QSortedList() {}
930 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
931- ~QSortedList() { clear(); }
932+ ~QSortedList() { this->clear(); }
933 QSortedList<type> &operator=(const QSortedList<type> &l)
934 { return (QSortedList<type>&)QList<type>::operator=(l); }
935
936diff -ur qt-2.3.8-old/src/tools/qstring.cpp qt-2.3.8/src/tools/qstring.cpp
937 --- qt-2.3.8-old/src/tools/qstring.cpp2004-07-23 14:34:57.000000000 +0200
938 +++ qt-2.3.8/src/tools/qstring.cpp2004-07-23 19:09:49.000000000 +0200
939@@ -14469,7 +14469,11 @@
940 return qt_winQString2MB( *this );
941 #endif
942 #ifdef _WS_QWS_
943- return utf8(); // ##### if there is ANY 8 bit format supported?
944+ QTextCodec* codec = QTextCodec::codecForLocale();
945+ return codec
946 + ? codec->fromUnicode(*this)
947 + : utf8();
948+ //return latin1(); // ##### if there is ANY 8 bit format supported?
949 #endif
950 #endif
951 }
952@@ -14515,7 +14519,12 @@
953 return qt_winMB2QString( local8Bit );
954 #endif
955 #ifdef _WS_QWS_
956- return fromUtf8(local8Bit,len);
957+ QTextCodec* codec = QTextCodec::codecForLocale();
958+ if( len < 0) len = qstrlen(local8Bit);
959+ return codec
960 + ? codec->toUnicode(local8Bit, len)
961 + : QString::fromUtf8(local8Bit,len);
962+// return fromLatin1(local8Bit,len);
963 #endif
964 #endif // QT_NO_TEXTCODEC
965 }
966diff -ur qt-2.3.8-old/src/tools/qstring.h qt-2.3.8/src/tools/qstring.h
967 --- qt-2.3.8-old/src/tools/qstring.h2004-07-22 01:07:46.000000000 +0200
968 +++ qt-2.3.8/src/tools/qstring.h2004-07-23 19:09:55.000000000 +0200
969@@ -163,8 +163,16 @@
970 bool isLetterOrNumber() const;
971 bool isDigit() const;
972
973+
974+#ifdef Q_NO_PACKED_REFERENCE
975+ uchar& cell() { return *(&cl); }
976+ uchar& row() { return *(&rw); }
977+#else
978 uchar& cell() { return cl; }
979- uchar& row() { return rw; }
980+ uchar& row() { return rw; }
981+#endif
982+
983+
984 uchar cell() const { return cl; }
985 uchar row() const { return rw; }
986
987diff -ur qt-2.3.8-old/src/widgets/qcommonstyle.cpp qt-2.3.8/src/widgets/qcommonstyle.cpp
988 --- qt-2.3.8-old/src/widgets/qcommonstyle.cpp2004-07-22 01:07:44.000000000 +0200
989 +++ qt-2.3.8/src/widgets/qcommonstyle.cpp2004-07-23 16:15:16.000000000 +0200
270@@ -566,7 +566,7 @@ 990@@ -566,7 +566,7 @@
271 bool enabled, bool active ) 991 bool enabled, bool active )
272 { 992 {
273 #ifndef QT_NO_MENUBAR 993 #ifndef QT_NO_MENUBAR
274-#ifndef QT_NO_STYLE_SGI 994-#ifndef QT_NO_STYLE_SGI
275+#if 1 // #ifndef QT_NO_STYLE_SGI 995+#if 1 // #ifndef QT_NO_STYLE_SGI
276 if (draw_menu_bar_impl != 0) { 996 if (draw_menu_bar_impl != 0) {
277 QDrawMenuBarItemImpl impl = draw_menu_bar_impl; 997 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
278 (this->*impl)(p, x, y, w, h, mi, g, enabled, active); 998 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
279 --- qt-2.3.8-snapshot-20040706/src/widgets/qlistview.cpp~opie2004-07-06 01:07:37.000000000 +0200 999diff -ur qt-2.3.8-old/src/widgets/qlistview.cpp qt-2.3.8/src/widgets/qlistview.cpp
280 +++ qt-2.3.8-snapshot-20040706/src/widgets/qlistview.cpp2004-07-06 23:53:12.000000000 +0200 1000 --- qt-2.3.8-old/src/widgets/qlistview.cpp2004-07-22 01:07:44.000000000 +0200
281@@ -5057,9 +5057,9 @@ 1001 +++ qt-2.3.8/src/widgets/qlistview.cpp2004-07-23 16:15:16.000000000 +0200
1002@@ -5054,9 +5054,9 @@
282 l = l->childItem ? l->childItem : l->siblingItem; 1003 l = l->childItem ? l->childItem : l->siblingItem;
283 1004
284 if ( l && l->height() ) 1005 if ( l && l->height() )
285 -s.setHeight( s.height() + 10 * l->height() ); 1006 -s.setHeight( s.height() + 10 * l->height() );
286- else 1007- else
287 -s.setHeight( s.height() + 140 ); 1008 -s.setHeight( s.height() + 140 );
288 +s.setHeight( s.height() + 4 /*10*/ * l->height() ); 1009 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
289+ else // ^v much too big for handhelds 1010+ else // ^v much too big for handhelds
290 +s.setHeight( s.height() + 30 /*140*/ ); 1011 +s.setHeight( s.height() + 30 /*140*/ );
291 1012
292 if ( s.width() > s.height() * 3 ) 1013 if ( s.width() > s.height() * 3 )
293 s.setHeight( s.width() / 3 ); 1014 s.setHeight( s.width() / 3 );
294 --- qt-2.3.8-snapshot-20040706/src/widgets/qtoolbutton.cpp~opie2004-07-06 01:07:37.000000000 +0200 1015Nur in qt-2.3.8/src/widgets: qlistview.cpp.orig.
295 +++ qt-2.3.8-snapshot-20040706/src/widgets/qtoolbutton.cpp2004-07-06 23:53:12.000000000 +0200 1016diff -ur qt-2.3.8-old/src/widgets/qscrollview.cpp qt-2.3.8/src/widgets/qscrollview.cpp
1017 --- qt-2.3.8-old/src/widgets/qscrollview.cpp2004-07-22 01:07:44.000000000 +0200
1018 +++ qt-2.3.8/src/widgets/qscrollview.cpp2004-07-23 19:21:06.000000000 +0200
1019@@ -1280,6 +1280,9 @@
1020 case QEvent::LayoutHint:
1021 d->autoResizeHint(this);
1022 break;
1023 +case QEvent::WindowActivate:
1024 +case QEvent::WindowDeactivate:
1025 + return TRUE;
1026 default:
1027 break;
1028 }
1029diff -ur qt-2.3.8-old/src/widgets/qtoolbutton.cpp qt-2.3.8/src/widgets/qtoolbutton.cpp
1030 --- qt-2.3.8-old/src/widgets/qtoolbutton.cpp2004-07-22 01:07:44.000000000 +0200
1031 +++ qt-2.3.8/src/widgets/qtoolbutton.cpp2004-07-23 16:15:16.000000000 +0200
296@@ -232,7 +232,7 @@ 1032@@ -232,7 +232,7 @@
297 else 1033 else
298 QToolTip::add( this, textLabel ); 1034 QToolTip::add( this, textLabel );
299 } 1035 }
300 -#endif 1036 -#endif
301+#endif 1037+#endif
302 } 1038 }
303 1039
304 1040
305@@ -326,12 +326,12 @@ 1041@@ -326,12 +326,12 @@
306 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal); 1042 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
307 w = pm.width(); 1043 w = pm.width();
308 h = pm.height(); 1044 h = pm.height();
309 -if ( w < 32 ) 1045 -if ( w < 32 )
310 - w = 32; 1046 - w = 32;
311 -if ( h < 32 ) 1047 -if ( h < 32 )
312 - h = 32; 1048 - h = 32;
313 +if ( w < 24 ) 1049 +if ( w < 24 )
314 + w = 24; 1050 + w = 24;
315 +if ( h < 24 ) 1051 +if ( h < 24 )
316 + h = 24; 1052 + h = 24;
317 } else { 1053 } else {
318 -w = h = 16; 1054 -w = h = 16;
319 +w = h = 14; 1055 +w = h = 14;
320 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal); 1056 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
321 w = pm.width(); 1057 w = pm.width();
322 h = pm.height(); 1058 h = pm.height();
1059Nur in qt-2.3.8/src/widgets: qtoolbutton.cpp.orig.
diff --git a/qt/qt-2.3.8.patch/qte238-allowoverride.patch b/qt/qt-2.3.8.patch/qte238-allowoverride.patch
new file mode 100644
index 0000000..8a63710
--- a/dev/null
+++ b/qt/qt-2.3.8.patch/qte238-allowoverride.patch
@@ -0,0 +1,231 @@
1Qt2.3.5 -> Qt2.3.6 changed the meaning of point sizes they used
2to be multiplied with 10, some apps get confused by that and
3in Opie we allow to work around for specefic application
4
5Courtsey to Robert 'sandman' Griebl
6
7
8
9
10
11
12
13
14diff -ur qt-2.3.8-old/src/kernel/qapplication.cpp qt-2.3.8/src/kernel/qapplication.cpp
15 --- qt-2.3.8-old/src/kernel/qapplication.cpp2004-07-22 01:07:46.000000000 +0200
16 +++ qt-2.3.8/src/kernel/qapplication.cpp2004-07-23 19:08:46.000000000 +0200
17@@ -35,6 +35,8 @@
18 **
19 **********************************************************************/
20
21 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
22+
23 #include "qobjectlist.h"
24 #include "qobjectdict.h"
25 #include "qapplication.h"
26@@ -936,11 +938,16 @@
27 #ifndef QT_NO_STYLE
28 void QApplication::setStyle( QStyle *style )
29 {
30 +setStyle_NonWeak ( style );
31+}
32+
33+void QApplication::setStyle_NonWeak( QStyle *style )
34+{
35 QStyle* old = app_style;
36- app_style = style;
37
38 if ( startingUp() ) {
39 delete old;
40 +app_style = style;
41 return;
42 }
43
44@@ -961,6 +968,8 @@
45 old->unPolish( qApp );
46 }
47
48+ app_style = style;
49+
50 // take care of possible palette requirements of certain gui
51 // styles. Do it before polishing the application since the style
52 // might call QApplication::setStyle() itself
53@@ -1187,13 +1196,30 @@
54 \sa QWidget::setPalette(), palette(), QStyle::polish()
55 */
56
57-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
58+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
59 + const char* className )
60+{
61 +setPalette_NonWeak ( palette, informWidgets, className );
62+}
63+
64+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
65 const char* className )
66 {
67 QPalette pal = palette;
68 #ifndef QT_NO_STYLE
69- if ( !startingUp() )
70+ if ( !startingUp() ) {
71 qApp->style().polish( pal );// NB: non-const reference
72 +if ( className ) {
73 + // if we just polished a class specific palette (this normally
74 + // only called by qt_fix_tooltips - see below), we better re-
75 + // polish the global palette. Some styles like liquid can get
76 + // confused, because they can not detect if the polished palette
77 + // is the global one or only a class specific one.
78 + // (liquid uses this palette to calculate blending pixmaps)
79 + QPalette p = qApp-> palette ( );
80 + qApp->style().polish ( p );
81 +}
82+ }
83 #endif
84 bool all = FALSE;
85 if ( !className ) {
86@@ -1278,6 +1304,12 @@
87 void QApplication::setFont( const QFont &font, bool informWidgets,
88 const char* className )
89 {
90 +setFont_NonWeak ( font, informWidgets, className );
91+}
92+
93+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
94 + const char* className )
95+{
96 bool all = FALSE;
97 if ( !className ) {
98 if ( !app_font ) {
99Nur in qt-2.3.8/src/kernel/: qapplication.cpp.orig.
100diff -ur qt-2.3.8-old/src/kernel/qapplication.h qt-2.3.8/src/kernel/qapplication.h
101 --- qt-2.3.8-old/src/kernel/qapplication.h2004-07-22 01:07:45.000000000 +0200
102 +++ qt-2.3.8/src/kernel/qapplication.h2004-07-23 19:08:46.000000000 +0200
103@@ -61,6 +61,10 @@
104 class QSemaphore;
105 #endif
106
107+#if !defined( QT_WEAK_SYMBOL )
108+#define QT_WEAK_SYMBOL
109+#endif
110+
111 // REMOVE IN 3.0 (just here for moc source compatibility)
112 #define QNonBaseApplication QApplication
113
114@@ -85,7 +89,10 @@
115
116 #ifndef QT_NO_STYLE
117 static QStyle &style();
118 - static void setStyle( QStyle* );
119 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
120+private:
121 +static void setStyle_NonWeak( QStyle* );
122+public:
123 #endif
124 #if 1/* OBSOLETE */
125 enum ColorMode { NormalColors, CustomColors };
126@@ -106,11 +113,19 @@
127 #ifndef QT_NO_PALETTE
128 static QPalette palette( const QWidget* = 0 );
129 static void setPalette( const QPalette &, bool informWidgets=FALSE,
130 + const char* className = 0 ) QT_WEAK_SYMBOL;
131+private:
132 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
133 const char* className = 0 );
134+public:
135 #endif
136 static QFont font( const QWidget* = 0 );
137 static void setFont( const QFont &, bool informWidgets=FALSE,
138 + const char* className = 0 ) QT_WEAK_SYMBOL;
139+private:
140 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
141 const char* className = 0 );
142 +public:
143 static QFontMetrics fontMetrics();
144
145 QWidget *mainWidget() const;
146@@ -207,7 +222,10 @@
147 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
148 #ifndef QT_NO_QWS_MANAGER
149 static QWSDecoration &qwsDecoration();
150- static void qwsSetDecoration( QWSDecoration *);
151+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
152+private:
153+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
154+public:
155 #endif
156 #endif
157
158diff -ur qt-2.3.8-old/src/kernel/qapplication_qws.cpp qt-2.3.8/src/kernel/qapplication_qws.cpp
159 --- qt-2.3.8-old/src/kernel/qapplication_qws.cpp2004-07-22 01:07:45.000000000 +0200
160 +++ qt-2.3.8/src/kernel/qapplication_qws.cpp2004-07-23 19:08:46.000000000 +0200
161@@ -2896,6 +2896,11 @@
162 */
163 void QApplication::qwsSetDecoration( QWSDecoration *d )
164 {
165 +qwsSetDecoration_NonWeak ( d );
166+}
167+
168+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
169+{
170 if ( d ) {
171 delete qws_decoration;
172 qws_decoration = d;
173Nur in qt-2.3.8/src/kernel/: qapplication_qws.cpp.orig.
174diff -ur qt-2.3.8-old/src/kernel/qfontdatabase.cpp qt-2.3.8/src/kernel/qfontdatabase.cpp
175 --- qt-2.3.8-old/src/kernel/qfontdatabase.cpp2004-07-22 01:07:45.000000000 +0200
176 +++ qt-2.3.8/src/kernel/qfontdatabase.cpp2004-07-23 19:08:46.000000000 +0200
177@@ -35,6 +35,8 @@
178 **
179 **********************************************************************/
180
181+#define QT_WEAK_SYMBOL __attribute__(( weak ))
182+
183 #include "qfontdatabase.h"
184
185 #ifndef QT_NO_FONTDATABASE
186@@ -2424,6 +2426,13 @@
187 const QString &style,
188 const QString &charSet )
189 {
190 +return pointSizes_NonWeak ( family, style, charSet );
191+}
192+
193+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
194+ const QString &style,
195+ const QString &charSet )
196+{
197 QString cs( charSet );
198 if ( charSet.isEmpty() ) {
199 QStringList lst = charSets( family );
200diff -ur qt-2.3.8-old/src/kernel/qfontdatabase.h qt-2.3.8/src/kernel/qfontdatabase.h
201 --- qt-2.3.8-old/src/kernel/qfontdatabase.h2004-07-22 01:07:45.000000000 +0200
202 +++ qt-2.3.8/src/kernel/qfontdatabase.h2004-07-23 19:08:46.000000000 +0200
203@@ -59,6 +59,10 @@
204 class QDiskFont;
205 #endif
206
207+#if !defined( QT_WEAK_SYMBOL )
208+#define QT_WEAK_SYMBOL
209+#endif
210+
211 class QFontDatabasePrivate;
212
213 class Q_EXPORT QFontDatabase
214@@ -67,9 +71,16 @@
215 QFontDatabase();
216
217 QStringList families( bool onlyForLocale = TRUE ) const;
218+
219+
220 QValueList<int> pointSizes( const QString &family,
221 const QString &style = QString::null,
222 - const QString &charSet = QString::null );
223 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
224+private:
225+ QValueList<int> pointSizes_NonWeak( const QString &family,
226 + const QString &style,
227 + const QString &charSet );
228+public:
229 QStringList styles( const QString &family,
230 const QString &charSet = QString::null ) const;
231 QStringList charSets( const QString &familyName,
diff --git a/qt/qt-2.3.8.patch/qte238-gcc34.patch b/qt/qt-2.3.8.patch/qte238-gcc34.patch
new file mode 100644
index 0000000..770740d
--- a/dev/null
+++ b/qt/qt-2.3.8.patch/qte238-gcc34.patch
@@ -0,0 +1,440 @@
1diff -ur qt-2.3.8_clean/include/qcstring.h qt-2.3.8/include/qcstring.h
2 --- qt-2.3.8_clean/include/qcstring.h2004-06-04 02:17:53.000000000 +0200
3 +++ qt-2.3.8/include/qcstring.h2004-06-04 02:24:25.000000000 +0200
4@@ -119,7 +119,7 @@
5 // We want to keep source compatibility for 2.x
6 // ### TODO for 4.0: completely remove these and the cstr* functions
7
8-#if !defined(QT_GENUINE_STR)
9+#if 0
10
11 #undefstrlen
12 #define strlen qstrlen
13diff -ur qt-2.3.8_clean/include/qglobal.h qt-2.3.8/include/qglobal.h
14 --- qt-2.3.8_clean/include/qglobal.h2004-06-04 02:17:53.000000000 +0200
15 +++ qt-2.3.8/include/qglobal.h2004-06-04 02:29:41.000000000 +0200
16@@ -207,8 +207,16 @@
17 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
18 #define Q_FP_CCAST_BROKEN
19 #endif
20+/* ARM gcc pads structs to 32 bits, even when they contain a single
21+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
22+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
23+ members of a packed struct. (Pointers are OK, because then you
24+ supposedly know what you are doing.) */
25 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
26 #define Q_PACKED __attribute__ ((packed))
27+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
28+# define Q_NO_PACKED_REFERENCE
29+# endif
30 #endif
31 #elif defined(__xlC__)
32 #define _CC_XLC_
33diff -ur qt-2.3.8_clean/include/qsortedlist.h qt-2.3.8/include/qsortedlist.h
34 --- qt-2.3.8_clean/include/qsortedlist.h2004-06-04 02:17:53.000000000 +0200
35 +++ qt-2.3.8/include/qsortedlist.h2004-06-04 02:24:25.000000000 +0200
36@@ -48,7 +48,7 @@
37 public:
38 QSortedList() {}
39 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
40- ~QSortedList() { clear(); }
41+ ~QSortedList() { this->clear(); }
42 QSortedList<type> &operator=(const QSortedList<type> &l)
43 { return (QSortedList<type>&)QList<type>::operator=(l); }
44
45diff -ur qt-2.3.8_clean/src/kernel/qgfxtransformed_qws.cpp qt-2.3.8/src/kernel/qgfxtransformed_qws.cpp
46 --- qt-2.3.8_clean/src/kernel/qgfxtransformed_qws.cpp2004-06-04 02:17:53.000000000 +0200
47 +++ qt-2.3.8/src/kernel/qgfxtransformed_qws.cpp2004-06-04 02:24:25.000000000 +0200
48@@ -671,11 +671,11 @@
49 inline int tx( int x, int y ) {
50 switch ( qt_trans_screen->transformation() ) {
51 case QTransformedScreen::Rot90:
52 - return y - xoffs + yoffs;
53 + return y - this->xoffs + this->yoffs;
54 case QTransformedScreen::Rot180:
55 - return (width - x - 1) - xoffs - xoffs;
56 + return (this->width - x - 1) - this->xoffs - this->xoffs;
57 case QTransformedScreen::Rot270:
58 - return (height - y - 1) - xoffs - yoffs;
59 + return (this->height - y - 1) - this->xoffs - this->yoffs;
60 default:
61 return x;
62 }
63@@ -683,11 +683,11 @@
64 inline int ty( int x, int y ) {
65 switch ( qt_trans_screen->transformation() ) {
66 case QTransformedScreen::Rot90:
67 - return (width - x - 1) - yoffs - xoffs;
68 + return (this->width - x - 1) - this->yoffs - this->xoffs;
69 case QTransformedScreen::Rot180:
70 - return (height - y - 1) - yoffs - yoffs;
71 + return (this->height - y - 1) - this->yoffs - this->yoffs;
72 case QTransformedScreen::Rot270:
73 - return x - yoffs + xoffs;
74 + return x - this->yoffs + this->xoffs;
75 default:
76 return y;
77 }
78@@ -715,23 +715,23 @@
79 template <const int depth, const int type>
80 void QGfxTransformedRaster<depth,type>::setSourceWidgetOffset(int x, int y)
81 {
82- if ( srcbits == buffer ) {
83+ if ( this->srcbits == this->buffer ) {
84 switch ( qt_trans_screen->transformation() ) {
85 case QTransformedScreen::Rot90:
86 - srcwidgetoffs = QPoint( y, width - x - srcwidth );
87 + this->srcwidgetoffs = QPoint( y, this->width - x - this->srcwidth );
88 break;
89 case QTransformedScreen::Rot180:
90 - srcwidgetoffs = QPoint( width - x - srcwidth, height - y - srcheight );
91 + this->srcwidgetoffs = QPoint( this->width - x - this->srcwidth, this->height - y - this->srcheight );
92 break;
93 case QTransformedScreen::Rot270:
94 - srcwidgetoffs = QPoint( height - y - srcheight, x );
95 + this->srcwidgetoffs = QPoint( this->height - y - this->srcheight, x );
96 break;
97 default:
98 - srcwidgetoffs = QPoint( x, y );
99 + this->srcwidgetoffs = QPoint( x, y );
100 break;
101 }
102 } else
103 -srcwidgetoffs = QPoint( x, y );
104 +this->srcwidgetoffs = QPoint( x, y );
105 }
106
107 template <const int depth, const int type>
108@@ -739,8 +739,8 @@
109 {
110 QT_TRANS_GFX_BASE<depth,type>::setSource(i);
111 QSize s = qt_screen->mapToDevice( QSize(i->width(), i->height()) );
112- srcwidth = s.width();
113- srcheight = s.height();
114+ this->srcwidth = s.width();
115+ this->srcheight = s.height();
116 }
117
118 template <const int depth, const int type>
119@@ -782,7 +782,7 @@
120 if ( w == 0 || h == 0 )
121 return;
122 QRect r( x, y, w, h );
123- if ( cbrush.style() == SolidPattern ) {
124+ if ( this->cbrush.style() == Qt::SolidPattern ) {
125 r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
126 r = r.normalize();
127 }
128@@ -797,7 +797,7 @@
129 // solution. The brush offset logic is complicated enough, so we don't
130 // fastpath patternedbrush.
131
132- if ( inDraw || cpen.style()==NoPen || patternedbrush ) {
133+ if ( inDraw || this->cpen.style()==Qt::NoPen || this->patternedbrush ) {
134 //slowpath
135 QT_TRANS_GFX_BASE<depth,type>::drawPolygon( a, w, idx, num );
136 } else {
137@@ -819,29 +819,29 @@
138 template <const int depth, const int type>
139 void QGfxTransformedRaster<depth,type>::processSpans( int n, QPoint* point, int* width )
140 {
141- if ( inDraw || patternedbrush && srcwidth != 0 && srcheight != 0 ) {
142+ if ( inDraw || this->patternedbrush && this->srcwidth != 0 && this->srcheight != 0 ) {
143 //in the patternedbrush case, we let blt do the transformation
144 // so we leave inDraw false.
145 - QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
146 +QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
147 } else {
148 inDraw = TRUE;
149 while (n--) {
150 if ( *width > 0 ) {
151 - int x=tx(point->x(),point->y())+xoffs;
152 - int y=ty(point->x(),point->y())+yoffs;
153 + int x=tx(point->x(),point->y())+this->xoffs;
154 + int y=ty(point->x(),point->y())+this->yoffs;
155
156 switch( qt_trans_screen->transformation() ) {
157 case QTransformedScreen::Rot90:
158 - vline( x, y-(*width-1), y );
159 + this->vline( x, y-(*width-1), y );
160 break;
161 case QTransformedScreen::Rot180:
162 - hline( x - (*width-1), x, y );
163 + this->hline( x - (*width-1), x, y );
164 break;
165 case QTransformedScreen::Rot270:
166 - vline( x, y, y+*width-1 );
167 + this->vline( x, y, y+*width-1 );
168 break;
169 default:
170 - hline( x, x+*width-1, y );
171 + this->hline( x, x+*width-1, y );
172 break;
173 }
174 }
175@@ -896,14 +896,14 @@
176 switch ( qt_trans_screen->transformation() ) {
177 case QTransformedScreen::Rot90:
178 rsx = sy;
179 - rsy = srcwidth - sx - w;
180 + rsy = this->srcwidth - sx - w;
181 break;
182 case QTransformedScreen::Rot180:
183 - rsx = srcwidth - sx - w;
184 - rsy = srcheight - sy - h;
185 + rsx = this->srcwidth - sx - w;
186 + rsy = this->srcheight - sy - h;
187 break;
188 case QTransformedScreen::Rot270:
189 - rsx = srcheight - sy - h;
190 + rsx = this->srcheight - sy - h;
191 rsy = sx;
192 break;
193 default:
194@@ -941,39 +941,39 @@
195 r.setCoords( tx(rx,ry), ty(rx,ry), tx(rx+w-1,ry+h-1), ty(rx+w-1,ry+h-1) );
196 r = r.normalize();
197
198- QPoint oldBrushOffs = brushoffs;
199+ QPoint oldBrushOffs = this->brushoffs;
200 int brx, bry;
201 switch ( qt_trans_screen->transformation() ) {
202 case QTransformedScreen::Rot90:
203 - brx = brushoffs.y();
204 - bry = srcwidth - brushoffs.x() - w;
205 + brx = this->brushoffs.y();
206 + bry = this->srcwidth - this->brushoffs.x() - w;
207 break;
208 case QTransformedScreen::Rot180:
209 - brx = srcwidth - brushoffs.x() - w;
210 - bry = srcheight - brushoffs.y() - h;
211 + brx = this->srcwidth - this->brushoffs.x() - w;
212 + bry = this->srcheight - this->brushoffs.y() - h;
213 break;
214 case QTransformedScreen::Rot270:
215 - brx = srcheight - brushoffs.y() - h;
216 - bry = brushoffs.x();
217 + brx = this->srcheight - this->brushoffs.y() - h;
218 + bry = this->brushoffs.x();
219 break;
220 default:
221 - brx = brushoffs.x();
222 - bry = brushoffs.y();
223 + brx = this->brushoffs.x();
224 + bry = this->brushoffs.y();
225 break;
226 }
227- brushoffs = QPoint( brx, bry );
228+ this->brushoffs = QPoint( brx, bry );
229
230- int oldsw = srcwidth;
231- int oldsh = srcheight;
232- QSize s = qt_screen->mapToDevice( QSize(srcwidth,srcheight) );
233- srcwidth = s.width();
234- srcheight = s.height();
235+ int oldsw = this->srcwidth;
236+ int oldsh = this->srcheight;
237+ QSize s = qt_screen->mapToDevice( QSize(this->srcwidth,this->srcheight) );
238+ this->srcwidth = s.width();
239+ this->srcheight = s.height();
240
241 QT_TRANS_GFX_BASE<depth,type>::tiledBlt( r.x(), r.y(), r.width(), r.height() );
242
243- srcwidth = oldsw;
244- srcheight = oldsh;
245- brushoffs = oldBrushOffs;
246+ this->srcwidth = oldsw;
247+ this->srcheight = oldsh;
248+ this->brushoffs = oldBrushOffs;
249 inDraw = FALSE;
250 }
251
252diff -ur qt-2.3.8_clean/src/kernel/qgfxvfb_qws.cpp qt-2.3.8/src/kernel/qgfxvfb_qws.cpp
253 --- qt-2.3.8_clean/src/kernel/qgfxvfb_qws.cpp2004-06-04 02:17:53.000000000 +0200
254 +++ qt-2.3.8/src/kernel/qgfxvfb_qws.cpp2004-06-04 02:24:25.000000000 +0200
255@@ -31,7 +31,6 @@
256 **********************************************************************/
257
258 #include "qgfxraster_qws.h"
259-
260 #ifndef QT_NO_QWS_VFB
261
262 #include <sys/ipc.h>
263@@ -140,8 +139,8 @@
264 void QGfxVFb<depth,type>::drawPoint( int x, int y )
265 {
266 QWSDisplay::grab( TRUE );
267- if ( is_screen_gfx )
268 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) );
269+ if ( this->is_screen_gfx )
270 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) );
271 QGfxRaster<depth,type>::drawPoint( x, y );
272 QWSDisplay::ungrab();
273 }
274@@ -150,8 +149,8 @@
275 void QGfxVFb<depth,type>::drawPoints( const QPointArray &pa,int x,int y )
276 {
277 QWSDisplay::grab( TRUE );
278- if ( is_screen_gfx )
279 -qvfb_screen->setDirty( clipbounds );
280+ if ( this->is_screen_gfx )
281 +qvfb_screen->setDirty( this->clipbounds );
282 QGfxRaster<depth,type>::drawPoints( pa, x, y );
283 QWSDisplay::ungrab();
284 }
285@@ -160,9 +159,9 @@
286 void QGfxVFb<depth,type>::drawLine( int x1,int y1,int x2,int y2 )
287 {
288 QWSDisplay::grab( TRUE );
289- if ( is_screen_gfx ) {
290+ if ( this->is_screen_gfx ) {
291 QRect r;
292 -r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
293 +r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
294 qvfb_screen->setDirty( r.normalize() );
295 }
296 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
297@@ -173,8 +172,8 @@
298 void QGfxVFb<depth,type>::fillRect( int x,int y,int w,int h )
299 {
300 QWSDisplay::grab( TRUE );
301- if ( is_screen_gfx )
302 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
303+ if ( this->is_screen_gfx )
304 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
305 QGfxRaster<depth,type>::fillRect( x, y, w, h );
306 QWSDisplay::ungrab();
307 }
308@@ -183,8 +182,8 @@
309 void QGfxVFb<depth,type>::drawPolyline( const QPointArray &pa,int x,int y )
310 {
311 QWSDisplay::grab( TRUE );
312- if ( is_screen_gfx )
313 -qvfb_screen->setDirty( clipbounds );
314+ if ( this->is_screen_gfx )
315 +qvfb_screen->setDirty( this->clipbounds );
316 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
317 QWSDisplay::ungrab();
318 }
319@@ -193,8 +192,8 @@
320 void QGfxVFb<depth,type>::drawPolygon( const QPointArray &pa,bool w,int x,int y )
321 {
322 QWSDisplay::grab( TRUE );
323- if ( is_screen_gfx )
324 -qvfb_screen->setDirty( clipbounds );
325+ if ( this->is_screen_gfx )
326 +qvfb_screen->setDirty( this->clipbounds );
327 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
328 QWSDisplay::ungrab();
329 }
330@@ -203,8 +202,8 @@
331 void QGfxVFb<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
332 {
333 QWSDisplay::grab( TRUE );
334- if ( is_screen_gfx )
335 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
336+ if ( this->is_screen_gfx )
337 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
338 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
339 QWSDisplay::ungrab();
340 }
341@@ -215,8 +214,8 @@
342 QWSDisplay::grab( TRUE );
343 int dy = sy - y;
344 int dx = sx - x;
345- if ( is_screen_gfx )
346 -qvfb_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
347+ if ( this->is_screen_gfx )
348 +qvfb_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
349 w+abs(dx), h+abs(dy)) );
350 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
351 QWSDisplay::ungrab();
352@@ -227,8 +226,8 @@
353 void QGfxVFb<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
354 {
355 QWSDisplay::grab( TRUE );
356- if ( is_screen_gfx )
357 -qvfb_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) );
358+ if ( this->is_screen_gfx )
359 +qvfb_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) );
360 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
361 QWSDisplay::ungrab();
362 }
363@@ -238,8 +237,8 @@
364 void QGfxVFb<depth,type>::tiledBlt( int x,int y,int w,int h )
365 {
366 QWSDisplay::grab( TRUE );
367- if ( is_screen_gfx )
368 -qvfb_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) );
369+ if ( this->is_screen_gfx )
370 +qvfb_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) );
371 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
372 QWSDisplay::ungrab();
373 }
374diff -ur qt-2.3.8_clean/src/tools/qcstring.h qt-2.3.8/src/tools/qcstring.h
375 --- qt-2.3.8_clean/src/tools/qcstring.h2004-06-04 02:17:53.000000000 +0200
376 +++ qt-2.3.8/src/tools/qcstring.h2004-06-04 02:24:25.000000000 +0200
377@@ -119,7 +119,7 @@
378 // We want to keep source compatibility for 2.x
379 // ### TODO for 4.0: completely remove these and the cstr* functions
380
381-#if !defined(QT_GENUINE_STR)
382+#if 0
383
384 #undefstrlen
385 #define strlen qstrlen
386diff -ur qt-2.3.8_clean/src/tools/qglobal.h qt-2.3.8/src/tools/qglobal.h
387 --- qt-2.3.8_clean/src/tools/qglobal.h2004-06-04 02:17:53.000000000 +0200
388 +++ qt-2.3.8/src/tools/qglobal.h2004-06-04 02:29:41.000000000 +0200
389@@ -207,8 +207,16 @@
390 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
391 #define Q_FP_CCAST_BROKEN
392 #endif
393+/* ARM gcc pads structs to 32 bits, even when they contain a single
394+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
395+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
396+ members of a packed struct. (Pointers are OK, because then you
397+ supposedly know what you are doing.) */
398 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
399 #define Q_PACKED __attribute__ ((packed))
400+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
401+# define Q_NO_PACKED_REFERENCE
402+# endif
403 #endif
404 #elif defined(__xlC__)
405 #define _CC_XLC_
406Nur in qt-2.3.8/src/tools: qglobal.h~.
407diff -ur qt-2.3.8_clean/src/tools/qsortedlist.h qt-2.3.8/src/tools/qsortedlist.h
408 --- qt-2.3.8_clean/src/tools/qsortedlist.h2004-06-04 02:17:53.000000000 +0200
409 +++ qt-2.3.8/src/tools/qsortedlist.h2004-06-04 02:24:25.000000000 +0200
410@@ -48,7 +48,7 @@
411 public:
412 QSortedList() {}
413 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
414- ~QSortedList() { clear(); }
415+ ~QSortedList() { this->clear(); }
416 QSortedList<type> &operator=(const QSortedList<type> &l)
417 { return (QSortedList<type>&)QList<type>::operator=(l); }
418
419diff -ur qt-2.3.8_clean/src/tools/qstring.h qt-2.3.8/src/tools/qstring.h
420 --- qt-2.3.8_clean/src/tools/qstring.h2004-06-04 02:17:53.000000000 +0200
421 +++ qt-2.3.8/src/tools/qstring.h2004-06-04 02:54:16.000000000 +0200
422@@ -163,8 +163,16 @@
423 bool isLetterOrNumber() const;
424 bool isDigit() const;
425
426+
427+#ifdef Q_NO_PACKED_REFERENCE
428+ uchar& cell() { return *(&cl); }
429+ uchar& row() { return *(&rw); }
430+#else
431 uchar& cell() { return cl; }
432- uchar& row() { return rw; }
433+ uchar& row() { return rw; }
434+#endif
435+
436+
437 uchar cell() const { return cl; }
438 uchar row() const { return rw; }
439
440Nur in qt-2.3.8/src/tools: qstring.h~.
diff --git a/qt/qt-2.3.8.patch/qte238-hancomwordcrash.patch b/qt/qt-2.3.8.patch/qte238-hancomwordcrash.patch
new file mode 100644
index 0000000..57c752e
--- a/dev/null
+++ b/qt/qt-2.3.8.patch/qte238-hancomwordcrash.patch
@@ -0,0 +1,15 @@
1Not included in the ALL patch
2
3
4
5 --- qt-2.3.8-old/src/kernel/qgfxraster_qws.cpp2004-07-22 01:07:45.000000000 +0200
6 +++ qt-2.3.8/src/kernel/qgfxraster_qws.cpp2004-07-23 19:10:03.000000000 +0200
7@@ -4400,7 +4400,7 @@
8 setAlphaType(IgnoreAlpha);
9 if ( w <= 0 || h <= 0 || !ncliprect ) return;
10 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
11-#ifdef QWS_EXPERIMENTAL_FASTPATH
12+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
13 // ### fix for 8bpp
14 // This seems to be reliable now, at least for 16bpp
15
diff --git a/qt/qt-2.3.8.patch/qte238-iconviewspeed.patch b/qt/qt-2.3.8.patch/qte238-iconviewspeed.patch
new file mode 100644
index 0000000..3351bbb
--- a/dev/null
+++ b/qt/qt-2.3.8.patch/qte238-iconviewspeed.patch
@@ -0,0 +1,145 @@
1Speed up patches backported from
2
3http://robotics.dei.unipd.it/~koral/KDE/kflicker.html
4
5and
6
7http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread)
8
9
10
11
12
13
14
15diff -ur qt-2.3.8-old/src/iconview/qiconview.cpp qt-2.3.8/src/iconview/qiconview.cpp
16 --- qt-2.3.8-old/src/iconview/qiconview.cpp2004-07-22 01:07:46.000000000 +0200
17 +++ qt-2.3.8/src/iconview/qiconview.cpp2004-07-23 19:13:09.000000000 +0200
18@@ -224,6 +224,7 @@
19 QIconView::SelectionMode selectionMode;
20 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
21 QRect *rubber;
22+ QPixmap *backBuffer;
23 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
24 *fullRedrawTimer;
25 int rastX, rastY, spacing;
26@@ -2267,6 +2268,7 @@
27 d->currentItem = 0;
28 d->highlightedItem = 0;
29 d->rubber = 0;
30+ d->backBuffer = 0;
31 d->scrollTimer = 0;
32 d->startDragItem = 0;
33 d->tmpCurrentItem = 0;
34@@ -2415,6 +2417,8 @@
35 delete item;
36 item = tmp;
37 }
38+ delete d->backBuffer;
39+ d->backBuffer = 0;
40 delete d->fm;
41 d->fm = 0;
42 #ifndef QT_NO_TOOLTIP
43@@ -2881,6 +2885,48 @@
44 }
45
46 /*!
47+ This function grabs all paintevents that otherwise would have been
48+ processed by the QScrollView::viewportPaintEvent(). Here we use a
49+ doublebuffer to reduce 'on-paint' flickering on QIconView
50+ (and of course its childs).
51+
52+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
53+*/
54+
55+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
56+{
57+ QWidget* vp = viewport();
58+ QRect r = pe->rect() & vp->rect();
59+ int ex = r.x() + contentsX();
60+ int ey = r.y() + contentsY();
61+ int ew = r.width();
62+ int eh = r.height();
63+
64+ if ( !d->backBuffer )
65 +d->backBuffer = new QPixmap(vp->size());
66+ if ( d->backBuffer->size() != vp->size() ) {
67 +//Resize function (with hysteesis). Uses a good compromise between memory
68 +//consumption and speed (number) of resizes.
69+ float newWidth = (float)vp->width();
70 +float newHeight = (float)vp->height();
71 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
72 +{
73 + newWidth *= 1.1892;
74 + newHeight *= 1.1892;
75 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
76 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
77 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
78+ }
79+
80+ QPainter p;
81+ p.begin(d->backBuffer, vp);
82+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
83+ p.end();
84+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
85+}
86+
87+/*!
88+
89 \reimp
90 */
91
92@@ -4937,7 +4983,7 @@
93 if ( !d->rubber )
94 drawDragShapes( d->oldDragPos );
95 }
96 - viewportPaintEvent( (QPaintEvent*)e );
97+ bufferedPaintEvent ((QPaintEvent*)e );
98 if ( d->dragging ) {
99 if ( !d->rubber )
100 drawDragShapes( d->oldDragPos );
101@@ -5374,11 +5420,19 @@
102 return;
103
104 if ( item->d->container1 && d->firstContainer ) {
105 -item->d->container1->items.removeRef( item );
106+ //Special-case checking of the last item, since this may be
107+ //called a few times for the same item.
108+ if (item->d->container1->items.last() == item)
109+ item->d->container1->items.removeLast();
110+ else
111+ item->d->container1->items.removeRef( item );
112 }
113 item->d->container1 = 0;
114 if ( item->d->container2 && d->firstContainer ) {
115 -item->d->container2->items.removeRef( item );
116+ if (item->d->container2->items.last() == item)
117+ item->d->container2->items.removeLast();
118+ else
119+ item->d->container2->items.removeRef( item );
120 }
121 item->d->container2 = 0;
122
123diff -ur qt-2.3.8-old/src/iconview/qiconview.h qt-2.3.8/src/iconview/qiconview.h
124 --- qt-2.3.8-old/src/iconview/qiconview.h2004-07-22 01:07:46.000000000 +0200
125 +++ qt-2.3.8/src/iconview/qiconview.h2004-07-23 19:13:09.000000000 +0200
126@@ -444,6 +444,7 @@
127 virtual void contentsDropEvent( QDropEvent *e );
128 #endif
129
130+ void bufferedPaintEvent( QPaintEvent* );
131 virtual void resizeEvent( QResizeEvent* e );
132 virtual void keyPressEvent( QKeyEvent *e );
133 virtual void focusInEvent( QFocusEvent *e );
134 --- qt-2.3.8-old/src/widgets/qscrollview.cpp2004-07-22 01:07:44.000000000 +0200
135 +++ qt-2.3.8/src/widgets/qscrollview.cpp2004-07-23 19:21:06.000000000 +0200
136@@ -1280,6 +1280,9 @@
137 case QEvent::LayoutHint:
138 d->autoResizeHint(this);
139 break;
140 +case QEvent::WindowActivate:
141 +case QEvent::WindowDeactivate:
142 + return TRUE;
143 default:
144 break;
145 }
diff --git a/qt/qt-2.3.8.patch/qte238-keyboard.patch b/qt/qt-2.3.8.patch/qte238-keyboard.patch
new file mode 100644
index 0000000..0ac321f
--- a/dev/null
+++ b/qt/qt-2.3.8.patch/qte238-keyboard.patch
@@ -0,0 +1,47 @@
1Free the Virtual Terminal and Keyboard on a segfault in all cases...
2
3
4diff -ur qt-2.3.8-old/src/kernel/qkeyboard_qws.cpp qt-2.3.8/src/kernel/qkeyboard_qws.cpp
5 --- qt-2.3.8-old/src/kernel/qkeyboard_qws.cpp2004-07-22 01:07:45.000000000 +0200
6 +++ qt-2.3.8/src/kernel/qkeyboard_qws.cpp2004-07-23 19:13:52.000000000 +0200
7@@ -314,7 +314,7 @@
8 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
9 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
10 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
11 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
12+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
13 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
14 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
15 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
16Nur in qt-2.3.8/src/kernel/: qkeyboard_qws.cpp.orig.
17diff -ur qt-2.3.8-old/src/kernel/qwindowsystem_qws.cpp qt-2.3.8/src/kernel/qwindowsystem_qws.cpp
18 --- qt-2.3.8-old/src/kernel/qwindowsystem_qws.cpp2004-07-22 01:07:45.000000000 +0200
19 +++ qt-2.3.8/src/kernel/qwindowsystem_qws.cpp2004-07-23 19:13:52.000000000 +0200
20@@ -1273,6 +1273,18 @@
21 {
22 }
23
24+static void catchSegvSignal( int )
25+{
26+#ifndef QT_NO_QWS_KEYBOARD
27+ if ( qwsServer )
28 +qwsServer->closeKeyboard();
29+#endif
30+ QWSServer::closedown();
31+ fprintf(stderr, "Segmentation fault.\n");
32+ exit(1);
33+}
34+
35+
36 /*!
37 \class QWSServer qwindowsystem_qws.h
38 \brief Server-specific functionality in Qt/Embedded
39@@ -1365,6 +1377,7 @@
40 }
41
42 signal(SIGPIPE, ignoreSignal); //we get it when we read
43+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
44 #endif
45 focusw = 0;
46 mouseGrabber = 0;
47Nur in qt-2.3.8/src/kernel/: qwindowsystem_qws.cpp.orig.