author | zecke <zecke> | 2004-07-23 18:18:15 (UTC) |
---|---|---|
committer | zecke <zecke> | 2004-07-23 18:18:15 (UTC) |
commit | f9499e14b777050f0bdb3821ca8421dd4c7231fd (patch) (unidiff) | |
tree | 7d96a449aa3b211bd7c5bc9f4d5a7908005cd287 /qt/qt-2.3.8.patch | |
parent | 984ab6b8bccf667a89062d959defed4a5d86bfb1 (diff) | |
download | opie-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
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-adjustsizes.patch | 64 | ||||
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-all.patch | 801 | ||||
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-allowoverride.patch | 231 | ||||
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-gcc34.patch | 440 | ||||
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-hancomwordcrash.patch | 15 | ||||
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-iconviewspeed.patch | 145 | ||||
-rw-r--r-- | qt/qt-2.3.8.patch/qte238-keyboard.patch | 47 |
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 @@ | |||
1 | Qt was not created for 240x320 and we adjust some default values to be more | ||
2 | sane for the usage on handhelds | ||
3 | |||
4 | |||
5 | diff -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); | ||
17 | diff -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 ); | ||
33 | Nur in qt-2.3.8/src/widgets/: qlistview.cpp.orig. | ||
34 | diff -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(); | ||
64 | Nur 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,15 +1,298 @@ | |||
1 | 1 | diff -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 | |||
59 | diff -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 | ||
71 | diff -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, | ||
103 | diff -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_ | ||
123 | diff -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 ); | ||
134 | diff -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 | |||
146 | diff -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 | |||
167 | diff -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 | |||
275 | Nur in qt-2.3.8/src/iconview: qiconview.cpp.orig. | ||
276 | Nur in qt-2.3.8/src/iconview: qiconview.cpp.rej. | ||
277 | diff -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 ); | ||
288 | diff -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" |
@@ -82,18 +365,20 @@ | |||
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 | 373 | Nur 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 | 374 | diff -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 | + |
@@ -139,32 +424,35 @@ | |||
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 | 432 | diff -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 | 447 | Nur 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 | 448 | diff -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 | ||
@@ -178,18 +466,19 @@ | |||
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 | 474 | diff -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 | + |
@@ -209,41 +498,375 @@ | |||
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 | 506 | diff -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 | 518 | Nur 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 | 519 | diff -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 | |||
726 | diff -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 | } | ||
848 | diff -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 | 860 | Nur 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 | 861 | diff -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(); |
@@ -252,52 +875,165 @@ | |||
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 | 891 | Nur 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 | 892 | diff -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 | ||
904 | diff -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_ | ||
924 | diff -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 | |||
936 | diff -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 | } | ||
966 | diff -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 | |||
987 | diff -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 | 999 | diff -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 | 1015 | Nur 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 | 1016 | diff -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 | } | ||
1029 | diff -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 | ||
@@ -315,8 +1051,9 @@ | |||
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(); |
1059 | Nur 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 @@ | |||
1 | Qt2.3.5 -> Qt2.3.6 changed the meaning of point sizes they used | ||
2 | to be multiplied with 10, some apps get confused by that and | ||
3 | in Opie we allow to work around for specefic application | ||
4 | |||
5 | Courtsey to Robert 'sandman' Griebl | ||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | diff -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 ) { | ||
99 | Nur in qt-2.3.8/src/kernel/: qapplication.cpp.orig. | ||
100 | diff -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 | |||
158 | diff -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; | ||
173 | Nur in qt-2.3.8/src/kernel/: qapplication_qws.cpp.orig. | ||
174 | diff -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 ); | ||
200 | diff -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 @@ | |||
1 | diff -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 | ||
13 | diff -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_ | ||
33 | diff -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 | |||
45 | diff -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 | |||
252 | diff -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 | } | ||
374 | diff -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 | ||
386 | diff -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_ | ||
406 | Nur in qt-2.3.8/src/tools: qglobal.h~. | ||
407 | diff -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 | |||
419 | diff -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 | |||
440 | Nur 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 @@ | |||
1 | Not 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 @@ | |||
1 | Speed up patches backported from | ||
2 | |||
3 | http://robotics.dei.unipd.it/~koral/KDE/kflicker.html | ||
4 | |||
5 | and | ||
6 | |||
7 | http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread) | ||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | |||
15 | diff -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 | |||
123 | diff -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 @@ | |||
1 | Free the Virtual Terminal and Keyboard on a segfault in all cases... | ||
2 | |||
3 | |||
4 | diff -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 | ||
16 | Nur in qt-2.3.8/src/kernel/: qkeyboard_qws.cpp.orig. | ||
17 | diff -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; | ||
47 | Nur in qt-2.3.8/src/kernel/: qwindowsystem_qws.cpp.orig. | ||