summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--README3
-rw-r--r--qt/README.qt-patches2
-rw-r--r--qt/README.qt-version2
-rw-r--r--qt/qt-2.3.10.patch/daemonize.patch (renamed from qt/qt-2.3.7.patch/qte237-1-daemon.patch)14
-rw-r--r--qt/qt-2.3.10.patch/devfs.patch163
-rw-r--r--qt/qt-2.3.10.patch/encoding.patch34
-rw-r--r--qt/qt-2.3.10.patch/fix-qgfxraster.patch28
-rw-r--r--qt/qt-2.3.10.patch/gcc3.patch27
-rw-r--r--qt/qt-2.3.10.patch/handhelds.patch80
-rw-r--r--qt/qt-2.3.10.patch/qiconview-speed.patch (renamed from qt/qt-2.3.7.patch/qte237-iconviewspeed.patch)46
-rw-r--r--qt/qt-2.3.10.patch/simpad.patch413
-rw-r--r--qt/qt-2.3.10.patch/tslib.patch53
-rw-r--r--qt/qt-2.3.10.patch/vt-switch.patch (renamed from qt/qt-2.3.7.patch/qte237-0-vtswitch.patch)51
-rw-r--r--qt/qt-2.3.5.patch/qte235-all.patch450
-rw-r--r--qt/qt-2.3.7.patch/qte237-adjustsizes.patch64
-rw-r--r--qt/qt-2.3.7.patch/qte237-all-macosx.patch1262
-rw-r--r--qt/qt-2.3.7.patch/qte237-all.patch1463
-rw-r--r--qt/qt-2.3.7.patch/qte237-allowoverride.patch229
-rw-r--r--qt/qt-2.3.7.patch/qte237-encoding.patch49
-rw-r--r--qt/qt-2.3.7.patch/qte237-g++-aslinker.patch161
-rw-r--r--qt/qt-2.3.7.patch/qte237-gcc34.patch510
-rw-r--r--qt/qt-2.3.7.patch/qte237-hancomwordcrash.patch14
-rw-r--r--qt/qt-2.3.7.patch/qte237-keyboard.patch43
-rw-r--r--qt/qt-2.3.7.patch/qte237-lefthand.patch133
-rw-r--r--qt/qt-2.3.8.patch/qte238-adjustsizes.patch64
-rw-r--r--qt/qt-2.3.8.patch/qte238-all.patch1059
-rw-r--r--qt/qt-2.3.8.patch/qte238-allowoverride.patch231
-rw-r--r--qt/qt-2.3.8.patch/qte238-encoding.patch49
-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
-rw-r--r--qt/qt-2.3.9.patch/qte239-all.patch510
-rw-r--r--qt/qt-2.3.9.patch/qte239-qwsmouse.patch301
34 files changed, 835 insertions, 7320 deletions
diff --git a/README b/README
index 3ef5b3c..c1f61a6 100644
--- a/README
+++ b/README
@@ -1,98 +1,99 @@
11. How to use the Opie build system 11. How to use the Opie build system
2==================================== 2====================================
3There's a tutorial document at: 3There's a tutorial document at:
4http://www.uv-ac.de/opiedev/opiedev.html 4http://www.uv-ac.de/opiedev/opiedev.html
5 5
6The API reference currently is at: 6The API reference currently is at:
7http://handhelds.org/~zecke/apidocs/index.html 7http://handhelds.org/~zecke/apidocs/index.html
8 8
9You will need qvfb, uic and 9You will need qvfb, uic and
10(if you want to develop applications) designer 10(if you want to develop applications) designer
11compiled and linked against Qt/X11. 11compiled and linked against Qt/X11.
12That means you must download and configure/make it: 12That means you must download and configure/make it:
13wget ftp://ftp.trolltech.com/qt/source/qt-x11-2.3.2.tar.gz 13wget ftp://ftp.trolltech.com/qt/source/qt-x11-2.3.2.tar.gz
14(Alternatively, you can get static binaries from http://www.vanille.de/tools) 14(Alternatively, you can get static binaries from http://www.vanille.de/tools)
15 15
16The recommended version of Qt/Embedded is 2.3.10 16You will need Qt/Embedded 2.3.10. Note that we don't support any
17other Qt/Embedded version anymore.
17 18
18You can get it from: 19You can get it from:
19ftp://ftp.trolltech.com/qt/source/qt-embedded-2.3.10-free.tar.bz2 20ftp://ftp.trolltech.com/qt/source/qt-embedded-2.3.10-free.tar.bz2
20 21
21Set QTDIR to point to your qt/embedded source tree, such as: 22Set QTDIR to point to your qt/embedded source tree, such as:
22export QTDIR=/opt/qt-2.3.10 23export QTDIR=/opt/qt-2.3.10
23 24
24You need to do set the OPIEDIR environment variable: 25You need to do set the OPIEDIR environment variable:
25export OPIEDIR=`pwd` 26export OPIEDIR=`pwd`
26or 27or
27export OPIEDIR=~/projects/sources/opie 28export OPIEDIR=~/projects/sources/opie
28or whereever you placed the Opie sources. 29or whereever you placed the Opie sources.
29 30
30You need to adjust your runtime library search path, 31You need to adjust your runtime library search path,
31so that the Qt/Embedded and Opie libraries can be found: 32so that the Qt/Embedded and Opie libraries can be found:
32export LD_LIBRARY_PATH=$OPIEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH 33export LD_LIBRARY_PATH=$OPIEDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
33 34
34You have to apply the patches corresponding to your Qt/Embedded version 35You have to apply the patches corresponding to your Qt/Embedded version
35and copy the qconfig-qpe.h file to $QTDIR/src/tools: 36and copy the qconfig-qpe.h file to $QTDIR/src/tools:
36cd $QTDIR; cat $OPIEDIR/qt/qt-<version>.patch/qte<version>-all.patch | patch -p1 37cd $QTDIR; cat $OPIEDIR/qt/qt-<version>.patch/qte<version>-all.patch | patch -p1
37cp $OPIEDIR/qt/qconfig-qpe.h $QTDIR/src/tools 38cp $OPIEDIR/qt/qconfig-qpe.h $QTDIR/src/tools
38 39
39You are now ready to configure and build Qt/Embedded 40You are now ready to configure and build Qt/Embedded
40 41
41cd $QTDIR 42cd $QTDIR
42echo 'yes' | ./configure -qconfig qpe -depths 4,16,24,32 -system-jpeg -system-libpng -system-zlib -no-xkb -no-sm -no-xft -qvfb 43echo 'yes' | ./configure -qconfig qpe -depths 4,16,24,32 -system-jpeg -system-libpng -system-zlib -no-xkb -no-sm -no-xft -qvfb
43make 44make
44 45
45Note that the above command ( -qvfb ) compiles in the Virtual 46Note that the above command ( -qvfb ) compiles in the Virtual
46Framebuffer and is mostly meant for development on your host system. 47Framebuffer and is mostly meant for development on your host system.
47For cross compiling, you will need to use the -xplatform switch. 48For cross compiling, you will need to use the -xplatform switch.
48See ./configure --help for details about the possible options. 49See ./configure --help for details about the possible options.
49 50
50Once you have these compiled, be sure to set the PATH to ensure your (cross)compiler 51Once you have these compiled, be sure to set the PATH to ensure your (cross)compiler
51is available. 52is available.
52 53
53Then do the following in the opie source tree: 54Then do the following in the opie source tree:
54 55
55make clean 56make clean
56make menuconfig 57make menuconfig
57 58
58Now you can move through the menu and select or deselect anything.. 59Now you can move through the menu and select or deselect anything..
59Exit and save the configuration and enter "make" to build everything selected. 60Exit and save the configuration and enter "make" to build everything selected.
60 61
61Have fun! 62Have fun!
62 63
632. Required Libraries 642. Required Libraries
64================ 65================
65 66
66The following Libraries are used by Opie parts. 67The following Libraries are used by Opie parts.
67For a successful build you must install these librarys and headers. 68For a successful build you must install these librarys and headers.
68 69
69* libsdl >= 1.2.0 70* libsdl >= 1.2.0
70 http://www.libsdl.org/download-1.2.php 71 http://www.libsdl.org/download-1.2.php
71 72
72* libxine >= 1.0 RC6 73* libxine >= 1.0 RC6
73 http://prdownloads.sourceforge.net/xine/ 74 http://prdownloads.sourceforge.net/xine/
74 75
75* libpcap >= 0.7.2 76* libpcap >= 0.7.2
76 http://www.tcpdump.org/release/ 77 http://www.tcpdump.org/release/
77 78
78* libetpan >= 0.34 79* libetpan >= 0.34
79 http://prdownloads.sourceforge.net/libetpan/ 80 http://prdownloads.sourceforge.net/libetpan/
80 81
81* libsqlite >= 3.0.0 82* libsqlite >= 3.0.0
82 http://www.sqlite.org/download.html 83 http://www.sqlite.org/download.html
83 84
84* libipk v109 (or greater) 85* libipk v109 (or greater)
85 ftp://handhelds.org/linux/packages/ipkg 86 ftp://handhelds.org/linux/packages/ipkg
86 87
873. Supported Devices 883. Supported Devices
88==================== 89====================
89 90
90Sharp Zaurus SL-5x00, SL-B500, SL-C7x0, SL-C8x0, SL-6000 91Sharp Zaurus SL-5x00, SL-B500, SL-C7x0, SL-C8x0, SL-6000
91 92
92HP iPAQ 36xx, 37xx, 38xx, 39xx, 54xx, 55xx 93HP iPAQ 36xx, 37xx, 38xx, 39xx, 54xx, 55xx
93 94
94SIEMENS SIMpad CL4, SL4, SLC, T-SinusPAD 95SIEMENS SIMpad CL4, SL4, SLC, T-SinusPAD
95 96
96MasterIA Beagle, Tradesquare.NL Tuxpad 1 97MasterIA Beagle, Tradesquare.NL Tuxpad 1
97 98
98GMate Yopy 3x00 99GMate Yopy 3x00
diff --git a/qt/README.qt-patches b/qt/README.qt-patches
index e079ba7..fe31bbb 100644
--- a/qt/README.qt-patches
+++ b/qt/README.qt-patches
@@ -1,6 +1,6 @@
1The Qt patches are patches generally useful for all platforms. 1The Qt patches are patches generally useful for all platforms.
2For specefic Device patches like Keyboard and Mousedrivers see 2For specefic Device patches like Keyboard and Mousedrivers see
3 3
4http://openembedded.bkbits.net:8080/packages/src/qte/qte-2.3.7?nav=index.html|src/.|src/qte 4http://openembedded.bkbits.net:8080/packages/src/qte/qte-2.3.10?nav=index.html|src/.|src/qte
5 5
6 6
diff --git a/qt/README.qt-version b/qt/README.qt-version
new file mode 100644
index 0000000..5cc99a9
--- a/dev/null
+++ b/qt/README.qt-version
@@ -0,0 +1,2 @@
1Note: We no longer support anything else than Qt/E 2.3.10
2
diff --git a/qt/qt-2.3.7.patch/qte237-1-daemon.patch b/qt/qt-2.3.10.patch/daemonize.patch
index 1f83398..487a18c 100644
--- a/qt/qt-2.3.7.patch/qte237-1-daemon.patch
+++ b/qt/qt-2.3.10.patch/daemonize.patch
@@ -1,113 +1,113 @@
1 1
2# 2#
3# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher 3# Patch managed by http://www.holgerschurig.de/patcher.html
4# 4#
5 5
6 --- qt-2.3.7/src/kernel/qapplication_qws.cpp~daemonize2004-07-17 22:47:54.840820000 +0200 6--- qt-2.3.9-snapshot-20041211/src/kernel/qapplication_qws.cpp~daemonize
7 +++ qt-2.3.7/src/kernel/qapplication_qws.cpp2004-07-17 23:34:32.407525912 +0200 7+++ qt-2.3.9-snapshot-20041211/src/kernel/qapplication_qws.cpp
8@@ -103,6 +103,7 @@ 8@@ -104,6 +104,7 @@
9 #endif 9 #endif
10 10
11 #include <sys/time.h> 11 #include <sys/time.h>
12+#include <syslog.h> 12+#include <syslog.h>
13 13
14 #if defined(_OS_AIX_) && defined(_CC_GNU_) 14 #if defined(_OS_AIX_) && defined(_CC_GNU_)
15 #include <sys/select.h> 15 #include <sys/select.h>
16@@ -162,6 +163,7 @@ 16@@ -163,6 +164,7 @@
17 //these used to be environment variables, they are initialized from 17 //these used to be environment variables, they are initialized from
18 //environment variables in 18 //environment variables in
19 19
20+bool qws_daemon = TRUE; 20+bool qws_daemon = TRUE;
21 bool qws_savefonts = FALSE; 21 bool qws_savefonts = FALSE;
22 bool qws_screen_is_interlaced=FALSE; //### should be detected 22 bool qws_screen_is_interlaced=FALSE; //### should be detected
23 bool qws_shared_memory = FALSE; 23 bool qws_shared_memory = FALSE;
24@@ -1614,6 +1616,10 @@ 24@@ -1686,6 +1688,10 @@
25 mwGeometry = argv[i]; 25 mwGeometry = argv[i];
26 } else if ( arg == "-shared" ) { 26 } else if ( arg == "-shared" ) {
27 qws_shared_memory = TRUE; 27 qws_shared_memory = TRUE;
28 +} else if ( arg == "-daemon" ) { 28 +} else if ( arg == "-daemon" ) {
29 + qws_daemon = TRUE; 29 + qws_daemon = TRUE;
30 +} else if ( arg == "-nodaemon" ) { 30 +} else if ( arg == "-nodaemon" ) {
31 + qws_daemon = FALSE; 31 + qws_daemon = FALSE;
32 } else if ( arg == "-noshared" ) { 32 } else if ( arg == "-noshared" ) {
33 qws_shared_memory = FALSE; 33 qws_shared_memory = FALSE;
34 } else if ( arg == "-savefonts" ) { 34 } else if ( arg == "-savefonts" ) {
35@@ -1670,6 +1676,78 @@ 35@@ -1742,6 +1748,78 @@
36 qt_appType = type; 36 qt_appType = type;
37 qws_single_process = TRUE; 37 qws_single_process = TRUE;
38 38
39+ /* Daemonize the server process -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 39+ /* Daemonize the server process -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
40+ * Added a new command line option which only is relevant if the application is created as a GuiServer. 40+ * Added a new command line option which only is relevant if the application is created as a GuiServer.
41+ * The option is -daemon respectively -nodaemon. If in daemon mode (which is the default now), the 41+ * The option is -daemon respectively -nodaemon. If in daemon mode (which is the default now), the
42+ * server will detach from the controlling terminal and continue as a daemon. This is done via the standard 42+ * server will detach from the controlling terminal and continue as a daemon. This is done via the standard
43+ * UNIX double fork magic. 43+ * UNIX double fork magic.
44+ */ 44+ */
45+ if ( qws_daemon ) 45+ if ( qws_daemon )
46+ { 46+ {
47+ qWarning( "qt_init() - starting in daemon mode..." ); 47+ qWarning( "qt_init() - starting in daemon mode..." );
48+ 48+
49+ int pid1 = fork(); 49+ int pid1 = fork();
50+ if ( pid1 == -1 ) 50+ if ( pid1 == -1 )
51+ { 51+ {
52+ qWarning( "qt_init() - can't perform initial fork: %s", strerror( errno ) ); 52+ qWarning( "qt_init() - can't perform initial fork: %s", strerror( errno ) );
53+ exit( -1 ); 53+ exit( -1 );
54+ } 54+ }
55+ if ( pid1 ) _exit( 0 ); // ok, first fork performed 55+ if ( pid1 ) _exit( 0 ); // ok, first fork performed
56+ 56+
57+ chdir( "/" ); 57+ chdir( "/" );
58+ setsid(); 58+ setsid();
59+ umask(0); 59+ umask(0);
60+ close(0); 60+ close(0);
61+ close(1); 61+ close(1);
62+ close(2); 62+ close(2);
63+ 63+
64+ int fdnull = ::open( "/dev/null", O_RDWR ); 64+ int fdnull = ::open( "/dev/null", O_RDWR );
65+ if ( fdnull == -1 ) 65+ if ( fdnull == -1 )
66+ { 66+ {
67+ syslog( 3, "qt_init() - can't open /dev/null to redirect std{in|out|err}: %s", strerror( errno ) ); 67+ syslog( 3, "qt_init() - can't open /dev/null to redirect std{in|out|err}: %s", strerror( errno ) );
68+ exit( -1 ); 68+ exit( -1 );
69+ } 69+ }
70+ dup2( fdnull, 0 ); // stdin 70+ dup2( fdnull, 0 ); // stdin
71+ dup2( fdnull, 1 ); // stdout 71+ dup2( fdnull, 1 ); // stdout
72+ dup2( fdnull, 2 ); // stderr 72+ dup2( fdnull, 2 ); // stderr
73+ 73+
74+ int pid2 = fork(); 74+ int pid2 = fork();
75+ if ( pid2 == -1 ) 75+ if ( pid2 == -1 )
76+ { 76+ {
77+ syslog( 3, "qt_init() - can't perform initial fork: %s", strerror( errno ) ); 77+ syslog( 3, "qt_init() - can't perform initial fork: %s", strerror( errno ) );
78+ exit( -1 ); 78+ exit( -1 );
79+ } 79+ }
80+ if ( pid2 ) 80+ if ( pid2 )
81+ { 81+ {
82+ syslog( 4, "qt_init() [%d] - successfully entered daemon mode", pid2 ); 82+ syslog( 4, "qt_init() [%d] - successfully entered daemon mode", pid2 );
83+ _exit( 0 ); // ok, second fork performed 83+ _exit( 0 ); // ok, second fork performed
84+ } 84+ }
85+ } 85+ }
86+ 86+
87+ /* 87+ /*
88+ * , , 88+ * , ,
89+ * /( )` 89+ * /( )`
90+ * \ \___ / | B E W A R E ! 90+ * \ \___ / | B E W A R E !
91+ * /- _ `-/ ' We are a DAEMON now! 91+ * /- _ `-/ ' We are a DAEMON now!
92+ * (/\/ \ \ /\ 92+ * (/\/ \ \ /\
93+ * / / | ` \ 93+ * / / | ` \
94+ * O O ) / | 94+ * O O ) / |
95+ * `-^--'`< ' 95+ * `-^--'`< '
96+ * (_.) _ ) / 96+ * (_.) _ ) /
97+ * `.___/` / 97+ * `.___/` /
98+ * `-----' / 98+ * `-----' /
99+ * <----. __ / __ \ 99+ * <----. __ / __ \
100+ * <----|====O)))==) \) /==== 100+ * <----|====O)))==) \) /====
101+ * <----' `--' `.__,' \ 101+ * <----' `--' `.__,' \
102+ * | | 102+ * | |
103+ * \ / 103+ * \ /
104+ * ______( (_ / \______ 104+ * ______( (_ / \______
105+ * (FL) ,' ,-----' | \ 105+ * (FL) ,' ,-----' | \
106+ * `--{__________) \/ 106+ * `--{__________) \/
107+ * 107+ *
108+ */ 108+ */
109+ 109+
110+ 110+
111 /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 111 /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
112 * Added a new command line option which only is relevant if the application is created as a GuiServer. 112 * Added a new command line option which only is relevant if the application is created as a GuiServer.
113 * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server. 113 * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server.
diff --git a/qt/qt-2.3.10.patch/devfs.patch b/qt/qt-2.3.10.patch/devfs.patch
new file mode 100644
index 0000000..27ea423
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/devfs.patch
@@ -0,0 +1,163 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.9-snapshot-20050114/configure~devfs
7+++ qt-2.3.9-snapshot-20050114/configure
8@@ -412,6 +412,9 @@
9 -visibility-hidden)
10 VISIBILITY=YES
11 ;;
12+ -devfs)
13+ DEVFS=yes
14 +;;
15 -no-g++-exceptions)
16 GPLUSPLUS_EXCEPTIONS=no
17 ;;
18@@ -1302,6 +1305,8 @@
19 -visibility-hidden . Use -fvisibility=hidden as default. This requires GCC 4.0
20 or a special patched GCC to support the visibility attribute
21
22+ -devfs ............. Use devfs /dev paths.
23+
24 -no-g++-exceptions . Disable exceptions on platforms using the GNU C++
25 compiler by using the -fno-exceptions flag.
26
27@@ -1374,6 +1379,10 @@
28 then
29 QT_CXX="${QT_CXX} -DGCC_SUPPORTS_VISIBILITY -fvisibility=hidden"
30 fi
31+if [ "x$DEVFS" = "xyes" ]
32+then
33+ QT_CXX="${QT_CXX} -DQT_QWS_DEVFS"
34+fi
35 if [ "x$THREAD" = "xyes" ]
36 then
37 cat >src-mt.mk <<EOF
38--- qt-2.3.9-snapshot-20050114/src/kernel/qgfxlinuxfb_qws.cpp~devfs
39+++ qt-2.3.9-snapshot-20050114/src/kernel/qgfxlinuxfb_qws.cpp
40@@ -101,11 +101,19 @@
41 bool QLinuxFbScreen::connect( const QString &displaySpec )
42 {
43 // Check for explicitly specified device
44+#ifdef QT_QWS_DEVFS
45+ QRegExp r( "/dev/fb/[0-9]+" );
46+#else
47 QRegExp r( "/dev/fb[0-9]+" );
48+#endif
49 int len;
50 int m = r.match( displaySpec, 0, &len );
51
52+#ifdef QT_QWS_DEVFS
53+ QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb/0");
54+#else
55 QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb0");
56+#endif
57
58 fd=open( dev.latin1(), O_RDWR );
59 if (fd<0) {
60@@ -121,14 +129,22 @@
61
62 /* Get fixed screen information */
63 if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
64+#ifdef QT_QWS_DEVFS
65 +perror("reading /dev/fb/0");
66+#else
67 perror("reading /dev/fb0");
68+#endif
69 qWarning("Error reading fixed information");
70 return FALSE;
71 }
72
73 /* Get variable screen information */
74 if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {
75+#ifdef QT_QWS_DEVFS
76 +perror("reading /dev/fb/0");
77+#else
78 perror("reading /dev/fb0");
79+#endif
80 qWarning("Error reading variable information");
81 return FALSE;
82 }
83@@ -165,7 +181,11 @@
84 data += dataoffset;
85
86 if ((int)data == -1) {
87 -perror("mapping /dev/fb0");
88+#ifdef QT_QWS_DEVFS
89 +perror("reading /dev/fb/0");
90+#else
91 +perror("reading /dev/fb0");
92+#endif
93 qWarning("Error: failed to map framebuffer device to memory.");
94 return FALSE;
95 }
96@@ -229,7 +249,11 @@
97
98 static void writeTerm(const char* termctl, int sizeof_termctl)
99 {
100+#ifdef QT_QWS_DEVFS
101+ const char* tt[]={"/dev/vc/1","/dev/console","/dev/tty",0};
102+#else
103 const char* tt[]={"/dev/console","/dev/tty","/dev/tty0",0};
104+#endif
105 const char** dev=tt;
106 while (*dev) {
107 int tty=::open(*dev,O_WRONLY);
108@@ -792,7 +816,11 @@
109 fb_var_screeninfo vinfo;
110
111 if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
112+#ifdef QT_QWS_DEVFS
113 +perror("reading /dev/fb/0");
114+#else
115 perror("reading /dev/fb0");
116+#endif
117 qFatal("Error reading fixed information");
118 }
119
120--- qt-2.3.9-snapshot-20050114/src/kernel/qkeyboard_qws.cpp~devfs
121+++ qt-2.3.9-snapshot-20050114/src/kernel/qkeyboard_qws.cpp
122@@ -1192,7 +1192,11 @@
123
124 QWSTtyKeyboardHandler::QWSTtyKeyboardHandler(const QString& device)
125 {
126+#ifdef QT_QWS_DEVFS
127+ kbdFD=open(device.isEmpty() ? "/dev/vc/1" : device.latin1(), O_RDWR | O_NDELAY, 0);
128+#else
129 kbdFD=open(device.isEmpty() ? "/dev/tty0" : device.latin1(), O_RDWR | O_NDELAY, 0);
130+#endif
131
132 if ( kbdFD >= 0 ) {
133 QSocketNotifier *notifier;
134--- qt-2.3.9-snapshot-20050114/src/kernel/qwindowsystem_qws.cpp~devfs
135+++ qt-2.3.9-snapshot-20050114/src/kernel/qwindowsystem_qws.cpp
136@@ -836,7 +836,11 @@
137 void openDevice()
138 {
139 if ( !sn ) {
140+#ifdef QT_QWS_DEVFS
141 + int fd = ::open("/dev/sound/dsp",O_RDWR);
142+#else
143 int fd = ::open("/dev/dsp",O_RDWR);
144+#endif
145 if ( fd < 0 ) {
146 // For debugging purposes - defined QT_NO_SOUND if you
147 // don't have sound hardware!
148--- qt-2.3.9-snapshot-20050114/src/kernel/qsoundqss_qws.cpp~devfs
149+++ qt-2.3.9-snapshot-20050114/src/kernel/qsoundqss_qws.cpp
150@@ -1088,7 +1088,12 @@
151 // Don't block open right away.
152 //
153 bool openOkay = false;
154 - if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1) {
155+#ifdef QT_QWS_DEVFS
156+ if ((fd = ::open("/dev/sound/dsp", O_WRONLY|O_NONBLOCK)) != -1)
157+#else
158+ if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1)
159+#endif
160+ {
161 int flags = fcntl(fd, F_GETFL);
162 flags &= ~O_NONBLOCK;
163 openOkay = (fcntl(fd, F_SETFL, flags) == 0);
diff --git a/qt/qt-2.3.10.patch/encoding.patch b/qt/qt-2.3.10.patch/encoding.patch
new file mode 100644
index 0000000..13a4828
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/encoding.patch
@@ -0,0 +1,34 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.9-snapshot-20041211/src/tools/qstring.cpp~encoding
7+++ qt-2.3.9-snapshot-20041211/src/tools/qstring.cpp
8@@ -14469,7 +14469,11 @@
9 return qt_winQString2MB( *this );
10 #endif
11 #ifdef _WS_QWS_
12- return utf8(); // ##### if there is ANY 8 bit format supported?
13+ QTextCodec* codec = QTextCodec::codecForLocale();
14+ return codec
15 + ? codec->fromUnicode(*this)
16 + : utf8();
17+ //return latin1(); // ##### if there is ANY 8 bit format supported?
18 #endif
19 #endif
20 }
21@@ -14515,7 +14519,12 @@
22 return qt_winMB2QString( local8Bit );
23 #endif
24 #ifdef _WS_QWS_
25- return fromUtf8(local8Bit,len);
26+ QTextCodec* codec = QTextCodec::codecForLocale();
27+ if( len < 0) len = qstrlen(local8Bit);
28+ return codec
29 + ? codec->toUnicode(local8Bit, len)
30 + : QString::fromUtf8(local8Bit,len);
31+// return fromLatin1(local8Bit,len);
32 #endif
33 #endif // QT_NO_TEXTCODEC
34 }
diff --git a/qt/qt-2.3.10.patch/fix-qgfxraster.patch b/qt/qt-2.3.10.patch/fix-qgfxraster.patch
new file mode 100644
index 0000000..7bc1e2a
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/fix-qgfxraster.patch
@@ -0,0 +1,28 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.9-snapshot-20041211/src/kernel/qgfxraster_qws.cpp~fix-qgfxraster
7+++ qt-2.3.9-snapshot-20041211/src/kernel/qgfxraster_qws.cpp
8@@ -4037,13 +4037,14 @@
9 for( loopc2=0;loopc2<frontadd;loopc2++ )
10 *(alphaptr++)=get_value_32(16,(unsigned char **)&temppos);
11
12 -PackType temp2;
13 -unsigned char * cp;
14 +volatile PackType temp2;
15 +volatile unsigned short int * cp;
16 for( loopc2=0;loopc2<count;loopc2++ ) {
17 - temp2=*((PackType *)temppos);
18 - cp=(unsigned char *)&temp2;
19 - *(alphaptr++)=get_value_32(16,&cp);
20 - *(alphaptr++)=get_value_32(16,&cp);
21+ temp2=*reinterpret_cast<PackType *>(temppos);
22+ cp=reinterpret_cast<volatile unsigned short int *>(&temp2);
23+ *(alphaptr++)=qt_conv16ToRgb(*cp);
24+ cp++;
25+ *(alphaptr++)=qt_conv16ToRgb(*cp);
26 temppos += 2;
27 }
28
diff --git a/qt/qt-2.3.10.patch/gcc3.patch b/qt/qt-2.3.10.patch/gcc3.patch
new file mode 100644
index 0000000..fc1656a
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/gcc3.patch
@@ -0,0 +1,27 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.9-snapshot-20041211/src/tools/qcstring.h~gcc3
7+++ qt-2.3.9-snapshot-20041211/src/tools/qcstring.h
8@@ -119,7 +119,7 @@
9 // We want to keep source compatibility for 2.x
10 // ### TODO for 4.0: completely remove these and the cstr* functions
11
12-#if !defined(QT_GENUINE_STR)
13+#if 0
14
15 #undefstrlen
16 #define strlen qstrlen
17--- qt-2.3.9-snapshot-20041211/src/kernel/qwsdecoration_qws.h~gcc3
18+++ qt-2.3.9-snapshot-20041211/src/kernel/qwsdecoration_qws.h
19@@ -50,7 +50,7 @@
20 enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
21 TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
22 Close=11, Minimize=12, Maximize=13, Normalize=14,
23 - Menu=15, LastRegion=Menu };
24 + Menu=15, LastRegion=Menu, UserDefined = 100 };
25
26 virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
27 virtual void close( QWidget * );
diff --git a/qt/qt-2.3.10.patch/handhelds.patch b/qt/qt-2.3.10.patch/handhelds.patch
new file mode 100644
index 0000000..3335796
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/handhelds.patch
@@ -0,0 +1,80 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.10-snapshot-20050131/src/widgets/qcommonstyle.cpp~opie
7+++ qt-2.3.10-snapshot-20050131/src/widgets/qcommonstyle.cpp
8@@ -572,7 +572,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--- qt-2.3.10-snapshot-20050131/src/widgets/qlistview.cpp~opie
18+++ qt-2.3.10-snapshot-20050131/src/widgets/qlistview.cpp
19@@ -5051,9 +5051,9 @@
20 l = l->childItem ? l->childItem : l->siblingItem;
21
22 if ( l && l->height() )
23 -s.setHeight( s.height() + 10 * l->height() );
24- else
25 -s.setHeight( s.height() + 140 );
26 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
27+ else // ^v much too big for handhelds
28 +s.setHeight( s.height() + 30 /*140*/ );
29
30 if ( s.width() > s.height() * 3 )
31 s.setHeight( s.width() / 3 );
32--- qt-2.3.10-snapshot-20050131/src/kernel/qwindowsystem_qws.cpp~opie
33+++ qt-2.3.10-snapshot-20050131/src/kernel/qwindowsystem_qws.cpp
34@@ -918,6 +918,18 @@
35 {
36 }
37
38+static void catchSegvSignal( int )
39+{
40+#ifndef QT_NO_QWS_KEYBOARD
41+ if ( qwsServer )
42 +qwsServer->closeKeyboard();
43+#endif
44+ QWSServer::closedown();
45+ fprintf(stderr, "Segmentation fault.\n");
46+ exit(1);
47+}
48+
49+
50 /*!
51 \class QWSServer qwindowsystem_qws.h
52 \brief Server-specific functionality in Qt/Embedded
53@@ -1043,6 +1055,7 @@
54 }
55
56 signal(SIGPIPE, ignoreSignal); //we get it when we read
57+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
58 #endif
59 focusw = 0;
60 mouseGrabber = 0;
61--- qt-2.3.10-snapshot-20050131/src/widgets/qtoolbutton.cpp~opie
62+++ qt-2.3.10-snapshot-20050131/src/widgets/qtoolbutton.cpp
63@@ -332,12 +332,12 @@
64 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
65 w = pm.width();
66 h = pm.height();
67 -if ( w < 32 )
68 - w = 32;
69 -if ( h < 32 )
70 - h = 32;
71 +if ( w < 24 )
72 + w = 24;
73 +if ( h < 24 )
74 + h = 24;
75 } else {
76 -w = h = 16;
77 +w = h = 14;
78 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
79 w = pm.width();
80 h = pm.height();
diff --git a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch b/qt/qt-2.3.10.patch/qiconview-speed.patch
index 81064e1..bac9b97 100644
--- a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
+++ b/qt/qt-2.3.10.patch/qiconview-speed.patch
@@ -1,142 +1,122 @@
1Speed up patches backported from
2 1
3http://robotics.dei.unipd.it/~koral/KDE/kflicker.html 2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
4 5
5and 6--- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp~qiconview-speed
6 7+++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.cpp
7http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread) 8@@ -225,6 +225,7 @@
8
9
10
11
12diff -u qt-2.3.7_old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp
13 --- qt-2.3.7_old/src/iconview/qiconview.cpp2004-06-13 22:29:56.000000000 +0200
14 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-06-13 22:33:32.000000000 +0200
15@@ -220,6 +220,7 @@
16 QIconView::SelectionMode selectionMode; 9 QIconView::SelectionMode selectionMode;
17 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor; 10 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
18 QRect *rubber; 11 QRect *rubber;
19+ QPixmap *backBuffer; 12+ QPixmap *backBuffer;
20 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer, 13 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
21 *fullRedrawTimer; 14 *fullRedrawTimer;
22 int rastX, rastY, spacing; 15 int rastX, rastY, spacing;
23@@ -2263,6 +2264,7 @@ 16@@ -2268,6 +2269,7 @@
24 d->currentItem = 0; 17 d->currentItem = 0;
25 d->highlightedItem = 0; 18 d->highlightedItem = 0;
26 d->rubber = 0; 19 d->rubber = 0;
27+ d->backBuffer = 0; 20+ d->backBuffer = 0;
28 d->scrollTimer = 0; 21 d->scrollTimer = 0;
29 d->startDragItem = 0; 22 d->startDragItem = 0;
30 d->tmpCurrentItem = 0; 23 d->tmpCurrentItem = 0;
31@@ -2411,6 +2413,8 @@ 24@@ -2416,6 +2418,8 @@
32 delete item; 25 delete item;
33 item = tmp; 26 item = tmp;
34 } 27 }
35+ delete d->backBuffer; 28+ delete d->backBuffer;
36+ d->backBuffer = 0; 29+ d->backBuffer = 0;
37 delete d->fm; 30 delete d->fm;
38 d->fm = 0; 31 d->fm = 0;
39 #ifndef QT_NO_TOOLTIP 32 #ifndef QT_NO_TOOLTIP
40@@ -2877,6 +2881,48 @@ 33@@ -2882,6 +2886,48 @@
41 } 34 }
42 35
43 /*! 36 /*!
44+ This function grabs all paintevents that otherwise would have been 37+ This function grabs all paintevents that otherwise would have been
45+ processed by the QScrollView::viewportPaintEvent(). Here we use a 38+ processed by the QScrollView::viewportPaintEvent(). Here we use a
46+ doublebuffer to reduce 'on-paint' flickering on QIconView 39+ doublebuffer to reduce 'on-paint' flickering on QIconView
47+ (and of course its childs). 40+ (and of course its childs).
48+ 41+
49+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents() 42+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
50+*/ 43+*/
51+ 44+
52+void QIconView::bufferedPaintEvent( QPaintEvent* pe ) 45+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
53+{ 46+{
54+ QWidget* vp = viewport(); 47+ QWidget* vp = viewport();
55+ QRect r = pe->rect() & vp->rect(); 48+ QRect r = pe->rect() & vp->rect();
56+ int ex = r.x() + contentsX(); 49+ int ex = r.x() + contentsX();
57+ int ey = r.y() + contentsY(); 50+ int ey = r.y() + contentsY();
58+ int ew = r.width(); 51+ int ew = r.width();
59+ int eh = r.height(); 52+ int eh = r.height();
60+ 53+
61+ if ( !d->backBuffer ) 54+ if ( !d->backBuffer )
62 +d->backBuffer = new QPixmap(vp->size()); 55 +d->backBuffer = new QPixmap(vp->size());
63+ if ( d->backBuffer->size() != vp->size() ) { 56+ if ( d->backBuffer->size() != vp->size() ) {
64 +//Resize function (with hysteesis). Uses a good compromise between memory 57 +//Resize function (with hysteesis). Uses a good compromise between memory
65 +//consumption and speed (number) of resizes. 58 +//consumption and speed (number) of resizes.
66+ float newWidth = (float)vp->width(); 59+ float newWidth = (float)vp->width();
67 +float newHeight = (float)vp->height(); 60 +float newHeight = (float)vp->height();
68 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() ) 61 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
69 +{ 62 +{
70 + newWidth *= 1.1892; 63 + newWidth *= 1.1892;
71 + newHeight *= 1.1892; 64 + newHeight *= 1.1892;
72 + d->backBuffer->resize( (int)newWidth, (int)newHeight ); 65 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
73 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() ) 66 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
74 + d->backBuffer->resize( (int)newWidth, (int)newHeight ); 67 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
75+ } 68+ }
76+ 69+
77+ QPainter p; 70+ QPainter p;
78+ p.begin(d->backBuffer, vp); 71+ p.begin(d->backBuffer, vp);
79+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh); 72+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
80+ p.end(); 73+ p.end();
81+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh); 74+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
82+} 75+}
83+ 76+
84+/*! 77+/*!
85+ 78+
86 \reimp 79 \reimp
87 */ 80 */
88 81
89@@ -4855,7 +4901,7 @@ 82@@ -4939,7 +4985,7 @@
90 if ( !d->rubber ) 83 if ( !d->rubber )
91 drawDragShapes( d->oldDragPos ); 84 drawDragShapes( d->oldDragPos );
92 } 85 }
93 - viewportPaintEvent( (QPaintEvent*)e ); 86 - viewportPaintEvent( (QPaintEvent*)e );
94+ bufferedPaintEvent ((QPaintEvent*)e ); 87+ bufferedPaintEvent ((QPaintEvent*)e );
95 if ( d->dragging ) { 88 if ( d->dragging ) {
96 if ( !d->rubber ) 89 if ( !d->rubber )
97 drawDragShapes( d->oldDragPos ); 90 drawDragShapes( d->oldDragPos );
98@@ -5286,11 +5332,19 @@ 91@@ -5377,11 +5423,19 @@
99 return; 92 return;
100 93
101 if ( item->d->container1 && d->firstContainer ) { 94 if ( item->d->container1 && d->firstContainer ) {
102 -item->d->container1->items.removeRef( item ); 95 -item->d->container1->items.removeRef( item );
103+ //Special-case checking of the last item, since this may be 96+ //Special-case checking of the last item, since this may be
104+ //called a few times for the same item. 97+ //called a few times for the same item.
105+ if (item->d->container1->items.last() == item) 98+ if (item->d->container1->items.last() == item)
106+ item->d->container1->items.removeLast(); 99+ item->d->container1->items.removeLast();
107+ else 100+ else
108+ item->d->container1->items.removeRef( item ); 101+ item->d->container1->items.removeRef( item );
109 } 102 }
110 item->d->container1 = 0; 103 item->d->container1 = 0;
111 if ( item->d->container2 && d->firstContainer ) { 104 if ( item->d->container2 && d->firstContainer ) {
112 -item->d->container2->items.removeRef( item ); 105 -item->d->container2->items.removeRef( item );
113+ if (item->d->container2->items.last() == item) 106+ if (item->d->container2->items.last() == item)
114+ item->d->container2->items.removeLast(); 107+ item->d->container2->items.removeLast();
115+ else 108+ else
116+ item->d->container2->items.removeRef( item ); 109+ item->d->container2->items.removeRef( item );
117 } 110 }
118 item->d->container2 = 0; 111 item->d->container2 = 0;
119 112
120diff -u qt-2.3.7_old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h 113--- qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h~qiconview-speed
121 --- qt-2.3.7_old/src/iconview/qiconview.h2004-06-13 22:29:56.000000000 +0200 114+++ qt-2.3.10-snapshot-20050131/src/iconview/qiconview.h
122 +++ qt-2.3.7/src/iconview/qiconview.h2004-06-13 22:33:32.000000000 +0200
123@@ -444,6 +444,7 @@ 115@@ -444,6 +444,7 @@
124 virtual void contentsDropEvent( QDropEvent *e ); 116 virtual void contentsDropEvent( QDropEvent *e );
125 #endif 117 #endif
126 118
127+ void bufferedPaintEvent( QPaintEvent* ); 119+ void bufferedPaintEvent( QPaintEvent* );
128 virtual void resizeEvent( QResizeEvent* e ); 120 virtual void resizeEvent( QResizeEvent* e );
129 virtual void keyPressEvent( QKeyEvent *e ); 121 virtual void keyPressEvent( QKeyEvent *e );
130 virtual void focusInEvent( QFocusEvent *e ); 122 virtual void focusInEvent( QFocusEvent *e );
131 --- qt-2.3.7-old/src/widgets/qscrollview.cpp2004-07-23 15:22:56.000000000 +0200
132 +++ qt-2.3.7/src/widgets/qscrollview.cpp2004-07-23 19:23:10.000000000 +0200
133@@ -1266,6 +1277,9 @@
134 case QEvent::LayoutHint:
135 d->autoResizeHint(this);
136 break;
137 +case QEvent::WindowActivate:
138 +case QEvent::WindowDeactivate:
139 + return TRUE;
140 default:
141 break;
142 }
diff --git a/qt/qt-2.3.10.patch/simpad.patch b/qt/qt-2.3.10.patch/simpad.patch
new file mode 100644
index 0000000..1777a94
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/simpad.patch
@@ -0,0 +1,413 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.10-snapshot-20050131/src/kernel/qkeyboard_qws.cpp~simpad
7+++ qt-2.3.10-snapshot-20050131/src/kernel/qkeyboard_qws.cpp
8@@ -37,6 +37,7 @@
9 #include <qapplication.h>
10 #include <qsocketnotifier.h>
11 #include <qnamespace.h>
12+#include <qdatetime.h>
13 #include <qtimer.h>
14
15 #include <stdlib.h>
16@@ -80,6 +81,60 @@
17 #include <sys/vt.h>
18 #endif
19
20+/*
21+ * SIMpad switches handler
22+ * (C) 2003-2005 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
23+ */
24+
25+
26+
27+#include <linux/switches.h>
28+#define SIMPAD_SWITCHES_DEVICE "/dev/misc/switches"
29+
30+// switches from left top to right down over the SIMpad surface
31+
32+#define SIMPAD_SWITCH_POWER 0x02
33+#define SIMPAD_SWITCH_UPPER 0x10
34+#define SIMPAD_SWITCH_UP 0x20
35+#define SIMPAD_SWITCH_DOWN 0x40
36+#define SIMPAD_SWITCH_LEFT 0x80
37+#define SIMPAD_SWITCH_RIGHT 0x100
38+#define SIMPAD_SWITCH_LOWER 0x8
39+
40+class QWSsimpadButtonsHandler : public QWSKeyboardHandler
41+{
42+ Q_OBJECT
43+
44+ public:
45+ QWSsimpadButtonsHandler();
46+ virtual ~QWSsimpadButtonsHandler();
47+
48+ bool isOpen() { return fd > 0; }
49+
50+ private slots:
51+ void readSwitchesData();
52+ void autoRepeat();
53+
54+ private:
55+ switches_mask_t switches;
56+
57+ int fd;
58+ int repeatdelay;
59+ int repeatperiod;
60+
61+ int lastCode; // last native code
62+ int lastPress; // last press/release state
63+
64+ int k; // last emitted Qt key code
65+ int shiftKeyPressed; // true if one of the SHIFT keys has been pressed and not yet released
66+ bool shiftUsed; // true if SHIFT has been used
67+
68+ QTime eventTimer; // tracks time between raw events
69+ QTimer* repeater;
70+ QSocketNotifier *notifier;
71+};
72+
73+
74 #ifdef QT_QWS_SL5XXX
75 #include <asm/sharp_char.h>
76 #endif
77@@ -165,9 +220,9 @@
78 current = 0;
79 }
80
81- void setAutoRepeat(int d, int p) { if ( d > 0 ) repeatdelay=d;
82+ void setAutoRepeat(int d, int p) { if ( d > 0 ) repeatdelay=d;
83 if ( p > 0 ) repeatperiod=p;}
84- void getAutoRepeat(int *d ,int *p ) { if (d) *d=repeatdelay;
85+ void getAutoRepeat(int *d ,int *p ) { if (d) *d=repeatdelay;
86 if (p) *p=repeatperiod; }
87
88 void stop()
89@@ -551,9 +606,9 @@
90
91 void doKey(uchar scancode);
92
93-
94+
95 void restoreLeds();
96-
97+
98 private:
99 bool shift;
100 bool alt;
101@@ -809,7 +864,7 @@
102
103 #if !defined(QT_QWS_SL5XXX)
104 if (code == 224
105-#if defined(QT_QWS_IPAQ)
106+#if defined(QT_QWS_IPAQ)
107 && !ipaq_return_pressed
108 #endif
109 ) {
110@@ -1775,9 +1830,11 @@
111 } else {
112 type = spec;
113 }
114-
115 if ( type == "Buttons" ) {
116-#if defined(QT_QWS_YOPY)
117+#if defined(QT_QWS_SIMPAD)
118 +qDebug( "QWSKeyboardHandler: using SIMpad switches handler..." );
119 +handler = new QWSsimpadButtonsHandler();
120+#elif defined(QT_QWS_YOPY)
121 handler = new QWSyopyButtonsHandler();
122 #elif defined(QT_QWS_CASSIOPEIA)
123 handler = new QWSVr41xxButtonsHandler();
124@@ -1812,6 +1869,218 @@
125 return keyM;
126 }
127
128-#endif // QT_NO_QWS_KEYBOARD
129
130+/*
131+ * SIMpad switches handler
132+ * (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
133+ */
134+
135+
136+QWSsimpadButtonsHandler::QWSsimpadButtonsHandler()
137+ :QWSKeyboardHandler(), fd( -1 ),
138+ repeatdelay( 700 ), repeatperiod( 80 ),
139+ lastCode( 0 ), lastPress( 0 ),
140+ k( -1 ), shiftKeyPressed( 0 ), shiftUsed( false )
141+{
142+ qDebug( "SimpadButtonsHandler() - V4.1" );
143+ fd = ::open( SIMPAD_SWITCHES_DEVICE, O_RDWR | O_NDELAY, 0 );
144+ if ( fd < 0 )
145+ {
146+ qWarning( "SimpadButtonsHandler(): can't open %s", SIMPAD_SWITCHES_DEVICE );
147+ return;
148+ }
149+
150+ notifier = new QSocketNotifier( fd, QSocketNotifier::Read, this );
151+ connect( notifier, SIGNAL( activated(int) ),this, SLOT( readSwitchesData() ) );
152+
153+ repeater = new QTimer(this);
154+ connect(repeater, SIGNAL(timeout()), this, SLOT(autoRepeat()));
155+
156+}
157
158+
159+QWSsimpadButtonsHandler::~QWSsimpadButtonsHandler()
160+{
161+ qDebug( "~SimpadButtonsHandler()" );
162+ if ( fd > 0 )
163+ {
164+ ::close( fd );
165+ fd = -1;
166+ }
167+}
168+
169+
170+void QWSsimpadButtonsHandler::readSwitchesData()
171+{
172+ qDebug( "SimpadButtonsHandler() - detected switches action" );
173+
174+ if ( ::read( fd, &switches, sizeof switches ) < 0 )
175+ {
176+ qWarning( "SimpadButtonsHandler() - switches read error!" );
177+ return;
178+ }
179+
180+ qDebug( "SimpadButtonsHandler() - Shift: %0x [used: %0x] + Event = %0x | %0x",
181+ shiftKeyPressed, shiftUsed, switches.events[0], switches.states[0] );
182+
183+ bool press = switches.states[0]; // == switches.event[0];
184+ int code = switches.events[0];
185+
186+ //=========================================================================
187+
188+ /**
189+ * Work around a bug in the kernel keyboard driver emitting
190+ * bogus events when pressing multiple switches at once
191+ **/
192+
193+ if ( lastCode == 0 )
194+ {
195+ // first press ever
196+ eventTimer.start();
197+ lastPress = press;
198+ lastCode = code;
199+ }
200+ else
201+ {
202+ int interval = eventTimer.restart();
203+ qDebug( "event interval = %d", interval );
204+ if ( code == lastCode && interval < 10 )
205+ {
206+ qDebug( "event interval too small - ignoring bogus event" );
207+ qDebug( "did I say i hate buggy kernel drivers? :-D" );
208+ return;
209+ }
210+
211+ lastPress = press;
212+ lastCode = code;
213+ }
214+
215+ /**
216+ * Actually it may also be a hardware problem, but I really don't like
217+ * to review kernel code for further inquiry. So just being lazy and
218+ * do the workaround in user space :-D
219+ **/
220+
221+ //=====================================================================
222+
223+ if ( shiftKeyPressed )
224+ {
225+ // a shift key obviously is being held
226+ qDebug( "while shift key is being held..." );
227+
228+ if ( code != shiftKeyPressed )
229+ {
230+ // another key is being touched - that means shift mode for us!
231+ qDebug( " another key is being touched -> shift use now = true" );
232+
233+ shiftUsed = true;
234+
235+ if ( shiftKeyPressed == SIMPAD_SWITCH_LOWER ) // SHIFT 1
236+ {
237+ qDebug( " shift mode 1" );
238+ switch(code)
239+ {
240+ case SIMPAD_SWITCH_UP: k = Qt::Key_F9; break; // Shift1-Up = Calendar
241+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F10; break; // Shift1-Down = Contacts
242+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F13; break; // Shift1-Left = Mail
243+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F11; break; // Shift1-Up = Menu
244+ case SIMPAD_SWITCH_UPPER: k = Qt::Key_F12; break; // Shift1-Upper = Home
245+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 1 !" ); break;
246+ }
247+ }
248+ else if ( shiftKeyPressed == SIMPAD_SWITCH_UPPER ) // SHIFT 2
249+ {
250+ qDebug( " shift mode 2" );
251+ switch(code)
252+ {
253+ case SIMPAD_SWITCH_UP: k = Qt::Key_F5; break; // Shift2-Up = F5
254+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_F6; break; // Shift2-Down = F6
255+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_F7; break; // Shift2-Left = F7
256+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_F8; break; // Shift2-Up = F8
257+ case SIMPAD_SWITCH_LOWER: k = Qt::Key_F9; break; // Shift2-Lower = F9
258+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event for Shift 2!" ); break;
259+ }
260+ }
261+ }
262+ else
263+ {
264+ qDebug( " shift key has been released. checking if being used..." );
265+ shiftKeyPressed = 0;
266+
267+ if ( !shiftUsed )
268+ {
269+ qDebug( " ... has _not_ being used -> really emit the key" );
270+ k = ( code == SIMPAD_SWITCH_UPPER ? Qt::Key_Escape : Qt::Key_Return );
271+ qDebug( "Emitting key = %d (pressed)", k );
272+ processKeyEvent( 0, k, 0, true, true );
273+ qDebug( "Emitting key = %d (released)", k );
274+ processKeyEvent( 0, k, 0, false, true );
275+ return;
276+ }
277+ else
278+ {
279+ qDebug( " ... has being used -> doing nothing" );
280+ return;
281+ }
282+ }
283+ }
284+ else
285+ {
286+ qDebug( "standard mode - no shift yet..." );
287+
288+ switch(code)
289+ {
290+ case SIMPAD_SWITCH_UP: k = Qt::Key_Up; break;
291+ case SIMPAD_SWITCH_DOWN: k = Qt::Key_Down; break;
292+ case SIMPAD_SWITCH_LEFT: k = Qt::Key_Left; break;
293+ case SIMPAD_SWITCH_RIGHT: k = Qt::Key_Right; break;
294+ case SIMPAD_SWITCH_POWER: k = Qt::Key_F34; break; // Power Button
295+
296+ case SIMPAD_SWITCH_UPPER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return;
297+ case SIMPAD_SWITCH_LOWER: k=-1; shiftKeyPressed = press? code:0; shiftUsed = false; qDebug( "shiftkey pressed now = %d", shiftKeyPressed ); return;
298+
299+ default: k=-1; qWarning( "SimpadButtonsHandler() - unhandled event!" ); break;
300+ }
301+ }
302+
303+ if ( k == -1 )
304+ {
305+ qDebug( "no key to emit - returning." );
306+ return;
307+ }
308+
309+ bool repeatable = ( k == Qt::Key_Up || k == Qt::Key_Down ||
310+ k == Qt::Key_Right || k == Qt::Key_Left );
311+
312+ qDebug( "key to emit = %d [%s] [repeat=%s]", k,
313+ press ? "press" : "release",
314+ repeatable ? "true":"false" );
315+
316+ if ( qt_screen->isTransformed() && k >= Qt::Key_Left && k <= Qt::Key_Down )
317+ {
318+ qDebug( "SimpadButtonsHandler() - We are transformed! Correcting..." );
319+ int oldK = k;
320+ k = xform_dirkey( k );
321+ qDebug( "SimpadButtonsHandler() - Old Key: %d - New Key %d", oldK, k );
322+ }
323+
324+ if ( repeatable && press )
325+ repeater->start( repeatdelay, true );
326+ else
327+ repeater->stop();
328+
329+ qwsServer->processKeyEvent( 0, k, 0, press, false );
330+}
331+
332+
333+void QWSsimpadButtonsHandler::autoRepeat()
334+{
335+ qDebug( "Emitting key = %d (released)", k );
336+ processKeyEvent( 0, k, 0, false, true );
337+ qDebug( "Emitting key = %d (pressed)", k );
338+ processKeyEvent( 0, k, 0, true, true );
339+ repeater->start(repeatperiod);
340+}
341+
342+
343+#endif // QT_NO_QWS_KEYBOARD
344--- qt-2.3.10-snapshot-20050131/src/kernel/qsoundqss_qws.cpp~simpad
345+++ qt-2.3.10-snapshot-20050131/src/kernel/qsoundqss_qws.cpp
346@@ -53,8 +53,8 @@
347
348 extern int errno;
349
350-#define QT_QWS_SOUND_16BIT 1 // or 0, or undefined for always 0
351-#define QT_QWS_SOUND_STEREO 1 // or 0, or undefined for always 0
352+#define QT_QWS_SOUND_16BIT 0 // or 0, or undefined for always 0
353+#define QT_QWS_SOUND_STEREO 0 // or 0, or undefined for always 0
354
355 // Zaurus SL5000D doesn't seem to return any error if setting to 44000 and it fails,
356 // however 44100 works, 44100 is more common that 44000.
357--- qt-2.3.10-snapshot-20050131/src/kernel/qwsmouse_qws.cpp~simpad
358+++ qt-2.3.10-snapshot-20050131/src/kernel/qwsmouse_qws.cpp
359@@ -47,6 +47,7 @@
360 #include <stdlib.h>
361 #include <stdio.h>
362 #include <sys/ioctl.h>
363+#include <sys/time.h>
364 #include <sys/types.h>
365 #include <sys/stat.h>
366 #include <fcntl.h>
367@@ -73,6 +74,7 @@
368 unsigned short x;
369 unsigned short y;
370 unsigned short pad;
371+ struct timeval stamp;
372 } TS_EVENT;
373 #elif defined(QT_QWS_SL5XXX)
374 #define QT_QWS_SL5XXX_RAW
375@@ -1310,6 +1312,11 @@
376 return;
377 }
378 # endif
379+#elif defined(QT_QWS_SIMPAD )
380+ if ((mouseFD = open( "/dev/touchscreen/ucb1x00", O_RDONLY | O_NONBLOCK )) < 0) {
381+ qWarning( "Cannot open /dev/touchscreen/ucb1x00 (%s)", strerror(errno));
382+ return;
383+ }
384 #endif
385
386 QSocketNotifier *mouseNotifier;
387@@ -1323,7 +1330,7 @@
388
389 QTPanelHandlerPrivate::~QTPanelHandlerPrivate()
390 {
391-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
392+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) || defined(QT_QWS_SIMPAD)
393 if (mouseFD >= 0)
394 close(mouseFD);
395 #endif
396@@ -1331,7 +1338,7 @@
397
398 void QTPanelHandlerPrivate::readMouseData()
399 {
400-#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
401+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) || defined(QT_QWS_SIMPAD)
402 if(!qt_screen)
403 return;
404
405@@ -2014,7 +2021,7 @@
406 handler = new QTSLibHandlerPrivate();
407 #elif defined(QT_QWS_YOPY)
408 handler = new QYopyTPanelHandlerPrivate(mouseProtocol,mouseDev);
409-#elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700)
410+#elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2) || defined(QT_QWS_SLC700) || defined(QT_QWS_SIMPAD)
411 handler = new QTPanelHandlerPrivate(mouseProtocol,mouseDev);
412 #elif defined(QT_QWS_CASSIOPEIA)
413 handler = new QVrTPanelHandlerPrivate( mouseProtocol, mouseDev );
diff --git a/qt/qt-2.3.10.patch/tslib.patch b/qt/qt-2.3.10.patch/tslib.patch
new file mode 100644
index 0000000..47837d7
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/tslib.patch
@@ -0,0 +1,53 @@
1Index: qt-2.3.10/src/kernel/qwsmouse_qws.cpp
2===================================================================
3 --- qt-2.3.10.orig/src/kernel/qwsmouse_qws.cpp2005-02-16 00:53:53.090339898 +0100
4 +++ qt-2.3.10/src/kernel/qwsmouse_qws.cpp2005-02-16 00:54:43.059069292 +0100
5@@ -1878,30 +1878,33 @@
6 */
7 void QTSLibHandlerPrivate::interpolateSample() {
8 #ifdef QT_QWS_TSLIB
9- static struct ts_sample samples[25];
10- int index = -1;
11+#define TSLIB_MAX_SAMPLES 25
12+ static struct ts_sample samples[TSLIB_MAX_SAMPLES];
13+ int index = 0;
14+ int read_samples = 0;
15 int ret;
16
17 do {
18- /* fill only the last sample again */
19- if ( index >= 25 )
20- index = 24;
21-
22+ /* do not access negative arrays */
23+ if ( index < 0 )
24+ index = 0;
25 +
26 /* we're opened non-blocking */
27- if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 ) {
28+ if((ret= ts_read_raw(m_ts, &samples[index], 1 ) ) != 1 )
29 /* no event yet, so try again */
30- if (ret==-1 ) {
31- index--;
32+ if (ret==-1 )
33 continue;
34- }
35- }
36- }while (samples[index++].pressure != 0);
37 +
38 +read_samples++;
39 +index = (index+1)%TSLIB_MAX_SAMPLES;
40+ }while (samples[index == 0 ? (TSLIB_MAX_SAMPLES-1) : index-1].pressure != 0);
41
42 /*
43- * index is maximal 25 and we at least one sample
44+ * If we've wrapped around each sample is used otherwise
45+ * we will use the index
46 */
47- if( index >= 25 )
48- index = 24;
49+ index = read_samples >= TSLIB_MAX_SAMPLES ?
50+ (TSLIB_MAX_SAMPLES-1 ) : index;
51 int x, y;
52
53 /*
diff --git a/qt/qt-2.3.7.patch/qte237-0-vtswitch.patch b/qt/qt-2.3.10.patch/vt-switch.patch
index be2745c..4007a5d 100644
--- a/qt/qt-2.3.7.patch/qte237-0-vtswitch.patch
+++ b/qt/qt-2.3.10.patch/vt-switch.patch
@@ -1,205 +1,178 @@
1 1
2# 2#
3# Patch managed by http://www.holgerschurig.de/patcher.html 3# Patch managed by http://www.holgerschurig.de/patcher.html
4# 4#
5 5
6--- qt-2.3.7/src/kernel/qapplication_qws.cpp~vt-switch.patch 6--- qt-2.3.9-snapshot-20041221/src/kernel/qapplication_qws.cpp~vt-switch.patch
7+++ qt-2.3.7/src/kernel/qapplication_qws.cpp 7+++ qt-2.3.9-snapshot-20041221/src/kernel/qapplication_qws.cpp
8@@ -123,6 +123,12 @@ 8@@ -124,6 +124,12 @@
9 static int qt_thread_pipe[2]; 9 static int qt_thread_pipe[2];
10 #endif 10 #endif
11 11
12+#if defined(_OS_LINUX_) 12+#if defined(_OS_LINUX_)
13+#include <sys/ioctl.h> 13+#include <sys/ioctl.h>
14+#include <linux/vt.h> 14+#include <linux/vt.h>
15+#include <linux/kd.h> 15+#include <linux/kd.h>
16+#endif 16+#endif
17+ 17+
18 const int qwsSharedRamSize = 32 * 1024;//Small amount to fit on small devices. 18 const int qwsSharedRamSize = 32 * 1024;//Small amount to fit on small devices.
19 19
20 // These are in qapplication.cpp in qt/main 20 // These are in qapplication.cpp in qt/main
21@@ -163,6 +169,8 @@ 21@@ -164,6 +170,8 @@
22 bool qws_accel = TRUE; // ### never set 22 bool qws_accel = TRUE; // ### never set
23 const char *qws_display_spec = ":0"; 23 const char *qws_display_spec = ":0";
24 int qws_display_id = 0; 24 int qws_display_id = 0;
25+int qws_terminal_id = 0; 25+int qws_terminal_id = 0;
26+int qws_terminal_old = 0; 26+int qws_terminal_old = 0;
27 int qws_client_id = 0; 27 int qws_client_id = 0;
28 QWidget *qt_pressGrab = 0; 28 QWidget *qt_pressGrab = 0;
29 QWidget *qt_mouseGrb = 0; 29 QWidget *qt_mouseGrb = 0;
30@@ -1628,6 +1636,15 @@ 30@@ -1700,6 +1708,15 @@
31 type = QApplication::GuiServer; 31 type = QApplication::GuiServer;
32 } else if ( arg == "-interlaced" ) { 32 } else if ( arg == "-interlaced" ) {
33 qws_screen_is_interlaced = TRUE; 33 qws_screen_is_interlaced = TRUE;
34+ } else if ( arg == "-terminal" ) { 34+ } else if ( arg == "-terminal" ) {
35+ if ( ++i < argc ) 35+ if ( ++i < argc )
36+ { 36+ {
37+ if ( ( qws_terminal_id = atoi( argv[i] ) ) < 1 ) 37+ if ( ( qws_terminal_id = atoi( argv[i] ) ) < 1 )
38+ { 38+ {
39+ qWarning( "Ignoring Invalid Terminal Specification." ); 39+ qWarning( "Ignoring Invalid Terminal Specification." );
40+ qws_terminal_id = 0; 40+ qws_terminal_id = 0;
41+ } 41+ }
42+ } 42+ }
43 } else if ( arg == "-display" ) { 43 } else if ( arg == "-display" ) {
44 if ( ++i < argc ) 44 if ( ++i < argc )
45 qws_display_spec = argv[i]; 45 qws_display_spec = argv[i];
46@@ -1652,6 +1669,53 @@ 46@@ -1724,6 +1741,53 @@
47 if ( type == QApplication::GuiServer ) { 47 if ( type == QApplication::GuiServer ) {
48 qt_appType = type; 48 qt_appType = type;
49 qws_single_process = TRUE; 49 qws_single_process = TRUE;
50+ 50+
51+ /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 51+ /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
52+ * Added a new command line option which only is relevant if the application is created as a GuiServer. 52+ * Added a new command line option which only is relevant if the application is created as a GuiServer.
53+ * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server. 53+ * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server.
54+ * As default in Linux, 0 means the current virtual terminal. 54+ * As default in Linux, 0 means the current virtual terminal.
55+ */ 55+ */
56+ #if defined(_OS_LINUX_) 56+ #if defined(_OS_LINUX_)
57+ if ( qws_terminal_id ) 57+ if ( qws_terminal_id )
58+ { 58+ {
59+ qDebug( "qt_init() - terminal specification is '%d'.", qws_terminal_id ); 59+ qDebug( "qt_init() - terminal specification is '%d'.", qws_terminal_id );
60+ struct vt_stat console_stat; 60+ struct vt_stat console_stat;
61+ int console_fd = ::open( QString().sprintf( "/dev/tty%d", qws_terminal_id ).latin1(), O_RDWR ); 61+ int console_fd = ::open( QString().sprintf( "/dev/tty%d", qws_terminal_id ).latin1(), O_RDWR );
62+ if ( console_fd == -1) 62+ if ( console_fd == -1)
63+ { 63+ {
64+ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) ); 64+ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) );
65+ exit( -1 ); 65+ exit( -1 );
66+ } 66+ }
67+ if ( ioctl( console_fd, VT_GETSTATE, &console_stat ) == -1 ) 67+ if ( ioctl( console_fd, VT_GETSTATE, &console_stat ) == -1 )
68+ { 68+ {
69+ qWarning( "qt_init() - can't ioctl(VT_GETSTATE): %s", strerror( errno ) ); 69+ qWarning( "qt_init() - can't ioctl(VT_GETSTATE): %s", strerror( errno ) );
70+ exit( -1 ); 70+ exit( -1 );
71+ } 71+ }
72+ qws_terminal_old = console_stat.v_active; 72+ qws_terminal_old = console_stat.v_active;
73+ qDebug( "qt_init() - active vt is #%d, switching to #%d as requested...", qws_terminal_old, qws_terminal_id ); 73+ qDebug( "qt_init() - active vt is #%d, switching to #%d as requested...", qws_terminal_old, qws_terminal_id );
74+ 74+
75+ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_id ) == -1 ) 75+ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_id ) == -1 )
76+ { 76+ {
77+ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) ); 77+ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) );
78+ exit( -1 ); 78+ exit( -1 );
79+ } 79+ }
80+ if ( ioctl( console_fd, VT_WAITACTIVE, qws_terminal_id ) == -1 ) 80+ if ( ioctl( console_fd, VT_WAITACTIVE, qws_terminal_id ) == -1 )
81+ { 81+ {
82+ qWarning( "qt_init() - can't ioctl(VT_WAITACTIVE): %s", strerror( errno ) ); 82+ qWarning( "qt_init() - can't ioctl(VT_WAITACTIVE): %s", strerror( errno ) );
83+ exit( -1 ); 83+ exit( -1 );
84+ } 84+ }
85+ if ( ioctl( console_fd, KDSETMODE, KD_GRAPHICS ) == -1 ) 85+ if ( ioctl( console_fd, KDSETMODE, KD_GRAPHICS ) == -1 )
86+ { 86+ {
87+ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_GRAPHICS): %s", strerror( errno ) ); 87+ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_GRAPHICS): %s", strerror( errno ) );
88+ exit( -1 ); 88+ exit( -1 );
89+ } 89+ }
90+ ::close( console_fd ); 90+ ::close( console_fd );
91+ } 91+ }
92+ else 92+ else
93+ { 93+ {
94+ qDebug( "QWSApplication::qt_init() - current terminal specified." ); 94+ qDebug( "QWSApplication::qt_init() - current terminal specified." );
95+ } 95+ }
96+ #endif 96+ #endif
97 QWSServer::startup(flags); 97 QWSServer::startup(flags);
98 setenv("QWS_DISPLAY", qws_display_spec, 0); 98 setenv("QWS_DISPLAY", qws_display_spec, 0);
99 } 99 }
100@@ -1702,7 +1766,36 @@ 100@@ -1774,7 +1838,36 @@
101 QFontManager::cleanup(); 101 QFontManager::cleanup();
102 102
103 if ( qws_single_process ) { 103 if ( qws_single_process ) {
104 -QWSServer::closedown(); 104 -QWSServer::closedown();
105+ qDebug( "qt_cleanup() - shutting down QWSServer..." ); 105+ qDebug( "qt_cleanup() - shutting down QWSServer..." );
106+#ifndef QT_NO_QWS_KEYBOARD 106+#ifndef QT_NO_QWS_KEYBOARD
107+ if ( qwsServer ) 107+ if ( qwsServer )
108+ qwsServer->closeKeyboard(); 108+ qwsServer->closeKeyboard();
109+#endif 109+#endif
110+ QWSServer::closedown(); 110+ QWSServer::closedown();
111+#if defined(_OS_LINUX_) 111+#if defined(_OS_LINUX_)
112+ if ( qws_terminal_old > 0 ) 112+ if ( qws_terminal_old > 0 )
113+ { 113+ {
114+ qDebug( "qt_cleanup() - switching back to virtual terminal #%d", qws_terminal_old ); 114+ qDebug( "qt_cleanup() - switching back to virtual terminal #%d", qws_terminal_old );
115+ 115+
116+ int console_fd = ::open( "/dev/tty0", O_RDWR ); 116+ int console_fd = ::open( "/dev/tty0", O_RDWR );
117+ if ( console_fd == -1) 117+ if ( console_fd == -1)
118+ { 118+ {
119+ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) ); 119+ qWarning( "qt_init() - can't open tty: %s", strerror( errno ) );
120+ } 120+ }
121+ else 121+ else
122+ { 122+ {
123+ if ( ioctl( console_fd, KDSETMODE, KD_TEXT ) == -1 ) 123+ if ( ioctl( console_fd, KDSETMODE, KD_TEXT ) == -1 )
124+ { 124+ {
125+ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_TEXT): %s", strerror( errno ) ); 125+ qWarning( "qt_init() - can't ioctl(KDSETMODE:KD_TEXT): %s", strerror( errno ) );
126+ } 126+ }
127+ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_old ) == -1 ) 127+ if ( ioctl( console_fd, VT_ACTIVATE, qws_terminal_old ) == -1 )
128+ { 128+ {
129+ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) ); 129+ qWarning( "qt_init() - can't ioctl(VT_ACTIVATE): %s", strerror( errno ) );
130+ } 130+ }
131+ ::close( console_fd ); 131+ ::close( console_fd );
132+ } 132+ }
133+ } 133+ }
134+#endif 134+#endif
135 } 135 }
136 if ( qt_is_gui_used ) { 136 if ( qt_is_gui_used ) {
137 delete qt_fbdpy; 137 delete qt_fbdpy;
138@@ -2584,7 +2677,7 @@ 138--- qt-2.3.9-snapshot-20041221/src/kernel/qkeyboard_qws.cpp~vt-switch.patch
139 if ( !widget ) { // don't know this window 139+++ qt-2.3.9-snapshot-20041221/src/kernel/qkeyboard_qws.cpp
140 if ( !QWidget::mouseGrabber() 140@@ -1247,6 +1247,24 @@
141 #ifndef QT_NO_QWS_MANAGER
142 - && !QWSManager::grabbedMouse()
143 + && !QWSManager::grabbedMouse()
144 #endif
145 ) {
146 qt_last_cursor = 0xffffffff; // cursor can be changed by another application
147@@ -3394,7 +3487,7 @@
148 #ifndef QT_NO_QWS_IM
149 if ( mouse.state&button && w != QInputContext::microFocusWidget() ) //button press
150 QInputContext::reset( oldFocus );
151 -#endif
152+#endif
153 QFocusEvent::setReason( QFocusEvent::Mouse);
154 w->setFocus();
155 QFocusEvent::resetReason();
156@@ -3540,7 +3633,7 @@
157 QApplication::sendEvent( widget, &enter );
158 (*mouseInWidget) = widget;
159 #ifndef QT_NO_QWS_IM
160 - if ( e.type() == QEvent::MouseButtonPress &&
161 + if ( e.type() == QEvent::MouseButtonPress &&
162 !widget->testWFlags( Qt::WStyle_Tool ) &&
163 !widget->topLevelWidget()->testWFlags( Qt::WStyle_Tool ) )
164 QInputContext::reset( oldFocus );
165--- qt-2.3.7/src/kernel/qkeyboard_qws.cpp~vt-switch.patch
166+++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp
167@@ -1068,6 +1068,24 @@
168 { 141 {
169 if (kbdFD >= 0) 142 if (kbdFD >= 0)
170 { 143 {
171+ 144+
172+#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_) 145+#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
173+ struct vt_mode vtMode; 146+ struct vt_mode vtMode;
174+ ioctl(kbdFD, VT_GETMODE, &vtMode); 147+ ioctl(kbdFD, VT_GETMODE, &vtMode);
175+ 148+
176+ /* Mickey says: "Better give up control of VT switching. 149+ /* Mickey says: "Better give up control of VT switching.
177+ * Hey, I really hate that OS-will-reacquire-resources on process-death 150+ * Hey, I really hate that OS-will-reacquire-resources on process-death
178+ * kind of thinking! 151+ * kind of thinking!
179+ */ 152+ */
180+ vtMode.mode = VT_AUTO; 153+ vtMode.mode = VT_AUTO;
181+ vtMode.relsig = 0; 154+ vtMode.relsig = 0;
182+ vtMode.acqsig = 0; 155+ vtMode.acqsig = 0;
183+ ioctl(kbdFD, VT_SETMODE, &vtMode); 156+ ioctl(kbdFD, VT_SETMODE, &vtMode);
184+ 157+
185+ signal(VTSWITCHSIG, 0); 158+ signal(VTSWITCHSIG, 0);
186+ qDebug( "~QWSTtyKeyboardHandler() - released VT." ); 159+ qDebug( "~QWSTtyKeyboardHandler() - released VT." );
187+#endif 160+#endif
188+ 161+
189 #if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_) 162 #if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
190 ioctl(kbdFD, KDSKBMODE, K_XLATE); 163 ioctl(kbdFD, KDSKBMODE, K_XLATE);
191 #endif 164 #endif
192--- qt-2.3.7/src/kernel/qgfxlinuxfb_qws.cpp~vt-switch.patch 165--- qt-2.3.9-snapshot-20041221/src/kernel/qgfxlinuxfb_qws.cpp~vt-switch.patch
193+++ qt-2.3.7/src/kernel/qgfxlinuxfb_qws.cpp 166+++ qt-2.3.9-snapshot-20041221/src/kernel/qgfxlinuxfb_qws.cpp
194@@ -251,9 +251,9 @@ 167@@ -251,9 +251,9 @@
195 168
196 bool QLinuxFbScreen::initDevice() 169 bool QLinuxFbScreen::initDevice()
197 { 170 {
198- // No blankin' screen, no blinkin' cursor!, no cursor! 171- // No blankin' screen, no blinkin' cursor!, no cursor!
199+ /* Setting up the VT parameters is done in qapplication_qws.cpp 172+ /* Setting up the VT parameters is done in qapplication_qws.cpp
200 const char termctl[]="\033[9;0]\033[?33l\033[?25l"; 173 const char termctl[]="\033[9;0]\033[?33l\033[?25l";
201- writeTerm(termctl,sizeof(termctl)); 174- writeTerm(termctl,sizeof(termctl));
202+ writeTerm(termctl,sizeof(termctl)); */ 175+ writeTerm(termctl,sizeof(termctl)); */
203 176
204 // Grab current mode so we can reset it 177 // Grab current mode so we can reset it
205 fb_var_screeninfo vinfo; 178 fb_var_screeninfo vinfo;
diff --git a/qt/qt-2.3.5.patch/qte235-all.patch b/qt/qt-2.3.5.patch/qte235-all.patch
deleted file mode 100644
index 9b58dbe..0000000
--- a/qt/qt-2.3.5.patch/qte235-all.patch
+++ b/dev/null
@@ -1,450 +0,0 @@
1diff -ru qt-2.3.5_fresh/include/qapplication.h qt-2.3.5/include/qapplication.h
2 --- qt-2.3.5_fresh/include/qapplication.h2003-05-13 15:56:10.000000000 +0200
3 +++ qt-2.3.5/include/qapplication.h2003-05-13 15:58:18.000000000 +0200
4@@ -61,6 +61,10 @@
5 class QSemaphore;
6 #endif
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 -ru qt-2.3.5_fresh/include/qfontdatabase.h qt-2.3.5/include/qfontdatabase.h
60 --- qt-2.3.5_fresh/include/qfontdatabase.h2003-05-13 15:56:11.000000000 +0200
61 +++ qt-2.3.5/include/qfontdatabase.h2003-05-13 15:58:18.000000000 +0200
62@@ -59,6 +59,10 @@
63 class QDiskFont;
64 #endif
65
66+#if !defined( QT_WEAK_SYMBOL )
67+#define QT_WEAK_SYMBOL
68+#endif
69+
70 class QFontDatabasePrivate;
71
72 class Q_EXPORT QFontDatabase
73@@ -67,9 +71,16 @@
74 QFontDatabase();
75
76 QStringList families( bool onlyForLocale = TRUE ) const;
77+
78+
79 QValueList<int> pointSizes( const QString &family,
80 const QString &style = QString::null,
81 - const QString &charSet = QString::null );
82 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
83+private:
84+ QValueList<int> pointSizes_NonWeak( const QString &family,
85 + const QString &style,
86 + const QString &charSet );
87+public:
88 QStringList styles( const QString &family,
89 const QString &charSet = QString::null ) const;
90 QStringList charSets( const QString &familyName,
91diff -ru qt-2.3.5_fresh/src/kernel/qapplication.cpp qt-2.3.5/src/kernel/qapplication.cpp
92 --- qt-2.3.5_fresh/src/kernel/qapplication.cpp2003-05-13 15:56:10.000000000 +0200
93 +++ qt-2.3.5/src/kernel/qapplication.cpp2003-05-13 15:58:19.000000000 +0200
94@@ -35,6 +35,8 @@
95 **
96 **********************************************************************/
97
98 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
99+
100 #include "qobjectlist.h"
101 #include "qobjectdict.h"
102 #include "qapplication.h"
103@@ -933,11 +935,16 @@
104 #ifndef QT_NO_STYLE
105 void QApplication::setStyle( QStyle *style )
106 {
107 +setStyle_NonWeak ( style );
108+}
109+
110+void QApplication::setStyle_NonWeak( QStyle *style )
111+{
112 QStyle* old = app_style;
113- app_style = style;
114
115 if ( startingUp() ) {
116 delete old;
117 +app_style = style;
118 return;
119 }
120
121@@ -958,6 +965,8 @@
122 old->unPolish( qApp );
123 }
124
125+ app_style = style;
126+
127 // take care of possible palette requirements of certain gui
128 // styles. Do it before polishing the application since the style
129 // might call QApplication::setStyle() itself
130@@ -1184,13 +1193,30 @@
131 \sa QWidget::setPalette(), palette(), QStyle::polish()
132 */
133
134-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
135+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
136 + const char* className )
137+{
138 +setPalette_NonWeak ( palette, informWidgets, className );
139+}
140+
141+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
142 const char* className )
143 {
144 QPalette pal = palette;
145 #ifndef QT_NO_STYLE
146- if ( !startingUp() )
147+ if ( !startingUp() ) {
148 qApp->style().polish( pal );// NB: non-const reference
149 +if ( className ) {
150 + // if we just polished a class specific palette (this normally
151 + // only called by qt_fix_tooltips - see below), we better re-
152 + // polish the global palette. Some styles like liquid can get
153 + // confused, because they can not detect if the polished palette
154 + // is the global one or only a class specific one.
155 + // (liquid uses this palette to calculate blending pixmaps)
156 + QPalette p = qApp-> palette ( );
157 + qApp->style().polish ( p );
158 +}
159+ }
160 #endif
161 bool all = FALSE;
162 if ( !className ) {
163@@ -1275,6 +1301,12 @@
164 void QApplication::setFont( const QFont &font, bool informWidgets,
165 const char* className )
166 {
167 +setFont_NonWeak ( font, informWidgets, className );
168+}
169+
170+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
171 + const char* className )
172+{
173 bool all = FALSE;
174 if ( !className ) {
175 if ( !app_font ) {
176Nur in qt-2.3.5/src/kernel: qapplication.cpp.orig.
177diff -ru qt-2.3.5_fresh/src/kernel/qapplication.h qt-2.3.5/src/kernel/qapplication.h
178 --- qt-2.3.5_fresh/src/kernel/qapplication.h2003-05-13 15:56:10.000000000 +0200
179 +++ qt-2.3.5/src/kernel/qapplication.h2003-05-13 15:58:18.000000000 +0200
180@@ -61,6 +61,10 @@
181 class QSemaphore;
182 #endif
183
184+#if !defined( QT_WEAK_SYMBOL )
185+#define QT_WEAK_SYMBOL
186+#endif
187+
188 // REMOVE IN 3.0 (just here for moc source compatibility)
189 #define QNonBaseApplication QApplication
190
191@@ -85,7 +89,10 @@
192
193 #ifndef QT_NO_STYLE
194 static QStyle &style();
195 - static void setStyle( QStyle* );
196 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
197+private:
198 +static void setStyle_NonWeak( QStyle* );
199+public:
200 #endif
201 #if 1/* OBSOLETE */
202 enum ColorMode { NormalColors, CustomColors };
203@@ -106,11 +113,19 @@
204 #ifndef QT_NO_PALETTE
205 static QPalette palette( const QWidget* = 0 );
206 static void setPalette( const QPalette &, bool informWidgets=FALSE,
207 + const char* className = 0 ) QT_WEAK_SYMBOL;
208+private:
209 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
210 const char* className = 0 );
211+public:
212 #endif
213 static QFont font( const QWidget* = 0 );
214 static void setFont( const QFont &, bool informWidgets=FALSE,
215 + const char* className = 0 ) QT_WEAK_SYMBOL;
216+private:
217 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
218 const char* className = 0 );
219 +public:
220 static QFontMetrics fontMetrics();
221
222 QWidget *mainWidget() const;
223@@ -207,7 +222,10 @@
224 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
225 #ifndef QT_NO_QWS_MANAGER
226 static QWSDecoration &qwsDecoration();
227- static void qwsSetDecoration( QWSDecoration *);
228+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
229+private:
230+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
231+public:
232 #endif
233 #endif
234
235diff -ru qt-2.3.5_fresh/src/kernel/qapplication_qws.cpp qt-2.3.5/src/kernel/qapplication_qws.cpp
236 --- qt-2.3.5_fresh/src/kernel/qapplication_qws.cpp2003-05-13 15:56:10.000000000 +0200
237 +++ qt-2.3.5/src/kernel/qapplication_qws.cpp2003-05-13 15:58:18.000000000 +0200
238@@ -2737,6 +2737,11 @@
239 */
240 void QApplication::qwsSetDecoration( QWSDecoration *d )
241 {
242 +qwsSetDecoration_NonWeak ( d );
243+}
244+
245+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
246+{
247 if ( d ) {
248 delete qws_decoration;
249 qws_decoration = d;
250Nur in qt-2.3.5/src/kernel: qapplication_qws.cpp.orig.
251diff -ru qt-2.3.5_fresh/src/kernel/qfontdatabase.cpp qt-2.3.5/src/kernel/qfontdatabase.cpp
252 --- qt-2.3.5_fresh/src/kernel/qfontdatabase.cpp2003-05-13 15:56:11.000000000 +0200
253 +++ qt-2.3.5/src/kernel/qfontdatabase.cpp2003-05-13 15:58:18.000000000 +0200
254@@ -35,6 +35,8 @@
255 **
256 **********************************************************************/
257
258+#define QT_WEAK_SYMBOL __attribute__(( weak ))
259+
260 #include "qfontdatabase.h"
261
262 #ifndef QT_NO_FONTDATABASE
263@@ -2424,6 +2426,13 @@
264 const QString &style,
265 const QString &charSet )
266 {
267 +return pointSizes_NonWeak ( family, style, charSet );
268+}
269+
270+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
271+ const QString &style,
272+ const QString &charSet )
273+{
274 QString cs( charSet );
275 if ( charSet.isEmpty() ) {
276 QStringList lst = charSets( family );
277diff -ru qt-2.3.5_fresh/src/kernel/qfontdatabase.h qt-2.3.5/src/kernel/qfontdatabase.h
278 --- qt-2.3.5_fresh/src/kernel/qfontdatabase.h2003-05-13 15:56:11.000000000 +0200
279 +++ qt-2.3.5/src/kernel/qfontdatabase.h2003-05-13 15:58:18.000000000 +0200
280@@ -59,6 +59,10 @@
281 class QDiskFont;
282 #endif
283
284+#if !defined( QT_WEAK_SYMBOL )
285+#define QT_WEAK_SYMBOL
286+#endif
287+
288 class QFontDatabasePrivate;
289
290 class Q_EXPORT QFontDatabase
291@@ -67,9 +71,16 @@
292 QFontDatabase();
293
294 QStringList families( bool onlyForLocale = TRUE ) const;
295+
296+
297 QValueList<int> pointSizes( const QString &family,
298 const QString &style = QString::null,
299 - const QString &charSet = QString::null );
300 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
301+private:
302+ QValueList<int> pointSizes_NonWeak( const QString &family,
303 + const QString &style,
304 + const QString &charSet );
305+public:
306 QStringList styles( const QString &family,
307 const QString &charSet = QString::null ) const;
308 QStringList charSets( const QString &familyName,
309diff -ru qt-2.3.5_fresh/src/kernel/qgfxraster_qws.cpp qt-2.3.5/src/kernel/qgfxraster_qws.cpp
310 --- qt-2.3.5_fresh/src/kernel/qgfxraster_qws.cpp2003-05-13 15:56:11.000000000 +0200
311 +++ qt-2.3.5/src/kernel/qgfxraster_qws.cpp2003-05-13 15:58:18.000000000 +0200
312@@ -4205,7 +4205,7 @@
313 setAlphaType(IgnoreAlpha);
314 if ( w <= 0 || h <= 0 || !ncliprect ) return;
315 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
316-#ifdef QWS_EXPERIMENTAL_FASTPATH
317+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
318 // ### fix for 8bpp
319 // This seems to be reliable now, at least for 16bpp
320
321Nur in qt-2.3.5/src/kernel: qgfxraster_qws.cpp.orig.
322diff -ru qt-2.3.5_fresh/src/kernel/qwindowsystem_qws.cpp qt-2.3.5/src/kernel/qwindowsystem_qws.cpp
323 --- qt-2.3.5_fresh/src/kernel/qwindowsystem_qws.cpp2003-05-13 15:56:11.000000000 +0200
324 +++ qt-2.3.5/src/kernel/qwindowsystem_qws.cpp2003-05-13 15:58:19.000000000 +0200
325@@ -843,6 +843,18 @@
326 {
327 }
328
329+static void catchSegvSignal( int )
330+{
331+#ifndef QT_NO_QWS_KEYBOARD
332+ if ( qwsServer )
333 +qwsServer->closeKeyboard();
334+#endif
335+ QWSServer::closedown();
336+ fprintf(stderr, "Segmentation fault.\n");
337+ exit(1);
338+}
339+
340+
341 /*!
342 \class QWSServer qwindowsystem_qws.h
343 \brief Server-specific functionality in Qt/Embedded
344@@ -912,6 +924,7 @@
345 }
346
347 signal(SIGPIPE, ignoreSignal); //we get it when we read
348+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
349 #endif
350 focusw = 0;
351 mouseGrabber = 0;
352diff -ru qt-2.3.5_fresh/src/Makefile.in qt-2.3.5/src/Makefile.in
353 --- qt-2.3.5_fresh/src/Makefile.in2003-05-13 15:56:13.000000000 +0200
354 +++ qt-2.3.5/src/Makefile.in2003-05-13 15:58:18.000000000 +0200
355@@ -6,7 +6,7 @@
356 CXXFLAGS=$(SYSCONF_CXXFLAGS_QT) $(SYSCONF_CXXFLAGS_X11) $(SYSCONF_CXXFLAGS) $(SYSCONF_CXXFLAGS_LIB) -DQT_NO_IMAGEIO_MNG $(QT_CXXFLAGS_OPT)
357 CC =$(SYSCONF_CC) $(QT_C_MT)
358 CFLAGS =$(SYSCONF_CFLAGS) $(SYSCONF_CFLAGS_LIB) -DQT_NO_IMAGEIO_MNG $(QT_CFLAGS_OPT)
359 -INCPATH =-I3rdparty/freetype/src -I3rdparty/freetype/include -I3rdparty/freetype/builds/unix -I3rdparty/kernel -I3rdparty/tools
360 +INCPATH =-I3rdparty/kernel -I3rdparty/tools
361 LFLAGS =$(SYSCONF_LFLAGS) $(QT_LFLAGS_MT)
362 LIBS =$(SUBLIBS) $(SYSCONF_LIBS_QTLIB)
363 MOC =$(SYSCONF_MOC)
364@@ -44,26 +44,7 @@
365 3rdparty/freetype/src/type1/type1.c \
366 3rdparty/freetype/src/winfonts/winfnt.c \
367 allmoc.cpp
368 -OBJECTS =3rdparty/freetype/builds/unix/ftsystem.o \
369 - 3rdparty/freetype/src/base/ftdebug.o \
370 - 3rdparty/freetype/src/base/ftinit.o \
371 - 3rdparty/freetype/src/base/ftbase.o \
372 - 3rdparty/freetype/src/base/ftglyph.o \
373 - 3rdparty/freetype/src/base/ftmm.o \
374 - 3rdparty/freetype/src/base/ftbbox.o \
375 - 3rdparty/freetype/src/autohint/autohint.o \
376 - 3rdparty/freetype/src/cache/ftcache.o \
377 - 3rdparty/freetype/src/cff/cff.o \
378 - 3rdparty/freetype/src/cid/type1cid.o \
379 - 3rdparty/freetype/src/psaux/psaux.o \
380 - 3rdparty/freetype/src/psnames/psmodule.o \
381 - 3rdparty/freetype/src/raster/raster.o \
382 - 3rdparty/freetype/src/sfnt/sfnt.o \
383 - 3rdparty/freetype/src/smooth/smooth.o \
384 - 3rdparty/freetype/src/truetype/truetype.o \
385 - 3rdparty/freetype/src/type1/type1.o \
386 - 3rdparty/freetype/src/winfonts/winfnt.o \
387 - allmoc.o $(QT_MODULE_OBJ)
388 +OBJECTS =allmoc.o $(QT_MODULE_OBJ)
389 INTERFACES =
390 UICDECLS =
391 UICIMPLS =
392diff -ru qt-2.3.5_fresh/src/widgets/qcommonstyle.cpp qt-2.3.5/src/widgets/qcommonstyle.cpp
393 --- qt-2.3.5_fresh/src/widgets/qcommonstyle.cpp2003-05-13 15:56:12.000000000 +0200
394 +++ qt-2.3.5/src/widgets/qcommonstyle.cpp2003-05-13 15:58:19.000000000 +0200
395@@ -566,7 +566,7 @@
396 bool enabled, bool active )
397 {
398 #ifndef QT_NO_MENUBAR
399-#ifndef QT_NO_STYLE_SGI
400+#if 1 // #ifndef QT_NO_STYLE_SGI
401 if (draw_menu_bar_impl != 0) {
402 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
403 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
404Nur in qt-2.3.5/src/widgets: qcommonstyle.cpp.orig.
405diff -ru qt-2.3.5_fresh/src/widgets/qlistview.cpp qt-2.3.5/src/widgets/qlistview.cpp
406 --- qt-2.3.5_fresh/src/widgets/qlistview.cpp2003-05-13 15:56:12.000000000 +0200
407 +++ qt-2.3.5/src/widgets/qlistview.cpp2003-05-13 15:58:18.000000000 +0200
408@@ -4968,9 +4968,9 @@
409 l = l->childItem ? l->childItem : l->siblingItem;
410
411 if ( l && l->height() )
412 -s.setHeight( s.height() + 10 * l->height() );
413- else
414 -s.setHeight( s.height() + 140 );
415 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
416+ else // ^v much too big for handhelds
417 +s.setHeight( s.height() + 30 /*140*/ );
418
419 if ( s.width() > s.height() * 3 )
420 s.setHeight( s.width() / 3 );
421diff -ru qt-2.3.5_fresh/src/widgets/qtoolbutton.cpp qt-2.3.5/src/widgets/qtoolbutton.cpp
422 --- qt-2.3.5_fresh/src/widgets/qtoolbutton.cpp2003-05-13 15:56:12.000000000 +0200
423 +++ qt-2.3.5/src/widgets/qtoolbutton.cpp2003-05-13 15:58:18.000000000 +0200
424@@ -230,7 +230,7 @@
425 else
426 QToolTip::add( this, textLabel );
427 }
428 -#endif
429+#endif
430 }
431
432
433@@ -324,12 +324,12 @@
434 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
435 w = pm.width();
436 h = pm.height();
437 -if ( w < 32 )
438 - w = 32;
439 -if ( h < 32 )
440 - h = 32;
441 +if ( w < 24 )
442 + w = 24;
443 +if ( h < 24 )
444 + h = 24;
445 } else {
446 -w = h = 16;
447 +w = h = 14;
448 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
449 w = pm.width();
450 h = pm.height();
diff --git a/qt/qt-2.3.7.patch/qte237-adjustsizes.patch b/qt/qt-2.3.7.patch/qte237-adjustsizes.patch
deleted file mode 100644
index ac1e31a..0000000
--- a/qt/qt-2.3.7.patch/qte237-adjustsizes.patch
+++ b/dev/null
@@ -1,64 +0,0 @@
1Qt was not created for 240x320 and we adjust some default values to be more
2sane for the usage on handhelds
3
4
5
6
7diff -ur qt-2.3.7-old/src/widgets/qcommonstyle.cpp qt-2.3.7/src/widgets/qcommonstyle.cpp
8 --- qt-2.3.7-old/src/widgets/qcommonstyle.cpp2004-07-23 15:22:56.000000000 +0200
9 +++ qt-2.3.7/src/widgets/qcommonstyle.cpp2004-07-23 15:38:13.000000000 +0200
10@@ -566,7 +566,7 @@
11 bool enabled, bool active )
12 {
13 #ifndef QT_NO_MENUBAR
14-#ifndef QT_NO_STYLE_SGI
15+#if 1 // #ifndef QT_NO_STYLE_SGI
16 if (draw_menu_bar_impl != 0) {
17 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
18 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
19diff -ur qt-2.3.7-old/src/widgets/qlistview.cpp qt-2.3.7/src/widgets/qlistview.cpp
20 --- qt-2.3.7-old/src/widgets/qlistview.cpp2004-07-23 15:22:56.000000000 +0200
21 +++ qt-2.3.7/src/widgets/qlistview.cpp2004-07-23 15:38:13.000000000 +0200
22@@ -4968,9 +4968,9 @@
23 l = l->childItem ? l->childItem : l->siblingItem;
24
25 if ( l && l->height() )
26 -s.setHeight( s.height() + 10 * l->height() );
27- else
28 -s.setHeight( s.height() + 140 );
29 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
30+ else // ^v much too big for handhelds
31 +s.setHeight( s.height() + 30 /*140*/ );
32
33 if ( s.width() > s.height() * 3 )
34 s.setHeight( s.width() / 3 );
35diff -ur qt-2.3.7-old/src/widgets/qtoolbutton.cpp qt-2.3.7/src/widgets/qtoolbutton.cpp
36 --- qt-2.3.7-old/src/widgets/qtoolbutton.cpp2004-07-23 15:22:56.000000000 +0200
37 +++ qt-2.3.7/src/widgets/qtoolbutton.cpp2004-07-23 15:38:13.000000000 +0200
38@@ -230,7 +230,7 @@
39 else
40 QToolTip::add( this, textLabel );
41 }
42 -#endif
43+#endif
44 }
45
46
47@@ -324,12 +324,12 @@
48 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
49 w = pm.width();
50 h = pm.height();
51 -if ( w < 32 )
52 - w = 32;
53 -if ( h < 32 )
54 - h = 32;
55 +if ( w < 24 )
56 + w = 24;
57 +if ( h < 24 )
58 + h = 24;
59 } else {
60 -w = h = 16;
61 +w = h = 14;
62 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
63 w = pm.width();
64 h = pm.height();
diff --git a/qt/qt-2.3.7.patch/qte237-all-macosx.patch b/qt/qt-2.3.7.patch/qte237-all-macosx.patch
deleted file mode 100644
index 8e42396..0000000
--- a/qt/qt-2.3.7.patch/qte237-all-macosx.patch
+++ b/dev/null
@@ -1,1262 +0,0 @@
1Binary files qt-2.3.7/bin/moc and qte-2.3.7/bin/moc differ
2Binary files qt-2.3.7/bin/uic and qte-2.3.7/bin/uic differ
3diff -uNr --exclude-from=./diff_ignore qt-2.3.7/configs/darwin-generic-g++-shared qte-2.3.7/configs/darwin-generic-g++-shared
4 --- qt-2.3.7/configs/darwin-generic-g++-sharedThu Jan 1 01:00:00 1970
5 +++ qte-2.3.7/configs/darwin-generic-g++-sharedMon Oct 27 14:27:25 2003
6@@ -0,0 +1,98 @@
7+# Compiling
8 +INTERFACE_DECL_PATH = .
9 +SYSCONF_CXX = g++
10 +SYSCONF_CC = gcc
11 +DASHCROSS =
12+
13+# Compiling with support libraries
14 +SYSCONF_CXXFLAGS_X11= -I/usr/X11R6/include
15 +SYSCONF_CXXFLAGS_QT= -I$(QTDIR)/include
16 +SYSCONF_CXXFLAGS_QTOPIA= -I$(QPEDIR)/include
17 +SYSCONF_CXXFLAGS_OPENGL= -I/usr/X11R6/include
18+
19+# Compiling YACC output
20+SYSCONF_CXXFLAGS_YACC = -Wno-unused -Wno-parentheses
21+
22+# Linking with support libraries
23 +SYSCONF_RPATH_X11= -L/usr/X11R6/lib
24 +SYSCONF_RPATH_QT= -L$(QTDIR)/lib
25 +SYSCONF_RPATH_QTOPIA= -L$(QPEDIR)/lib
26 +SYSCONF_RPATH_OPENGL= -L/usr/X11R6/lib
27+
28+# Linking with support libraries
29+# X11
30 +SYSCONF_LFLAGS_X11= -L/usr/X11R6/lib
31 +SYSCONF_LIBS_X11=
32+# Qt, Qt+OpenGL
33 +SYSCONF_LFLAGS_QT= -L$(QTDIR)/lib
34 +SYSCONF_LFLAGS_QTOPIA= -L$(QPEDIR)/lib
35 +SYSCONF_LIBS_QT = -lqte$(QT_THREAD_SUFFIX)
36 +SYSCONF_LIBS_QT_OPENGL=
37 +SYSCONF_LIBS_QTOPIA= -lqtopia
38+# OpenGL
39 +SYSCONF_LFLAGS_OPENGL= -L/usr/X11R6/lib
40 +SYSCONF_LIBS_OPENGL= -lGLU -lGL -lXmu
41+# Yacc
42 +SYSCONF_LIBS_YACC=
43+
44+# Linking applications
45 +SYSCONF_LINK = g++
46 +SYSCONF_LFLAGS =
47 +SYSCONF_LIBS =
48+
49+# Link flags for shared objects
50 +SYSCONF_LFLAGS_SHOBJ= -dynamiclib
51+
52+# Flags for threading
53 +SYSCONF_CFLAGS_THREAD= -pthread -D_THREAD_SAFE
54 +SYSCONF_CXXFLAGS_THREAD= -pthread -D_THREAD_SAFE
55 +SYSCONF_LFLAGS_THREAD= -pthread
56 +SYSCONF_LIBS_THREAD=
57+
58+# Meta-object compiler
59 +SYSCONF_MOC = $(QTDIR)/bin/moc
60+
61+# UI compiler
62 +SYSCONF_UIC = $(QTDIR)/bin/uic
63+
64+# Linking shared libraries
65+# - Build the $(TARGET) library, eg. lib$(TARGET).so.2.2.2
66+# - Place target in $(DESTDIR) - which has a trailing /
67+# - Usually needs to incorporate $(VER_MAJ), $(VER_MIN) and $(VER_PATCH)
68+#
69 +SYSCONF_LINK_SHLIB= g++
70 +SYSCONF_LINK_TARGET_SHARED= lib$(TARGET).dylib.$(VER_MAJ).$(VER_MIN).$(VER_PATCH)
71 +SYSCONF_LINK_LIB_SHARED= $(SYSCONF_LINK_SHLIB) -dynamiclib \
72 + $(LFLAGS) -o $(SYSCONF_LINK_TARGET_SHARED) \
73 + $(OBJECTS) $(OBJMOC) $(LIBS) && \
74 + mv $(SYSCONF_LINK_TARGET_SHARED) $(DESTDIR); \
75 + cd $(DESTDIR) && \
76 + rm -f lib$(TARGET).dylib lib$(TARGET).dylib.$(VER_MAJ) lib$(TARGET).dylib.$(VER_MAJ).$(VER_MIN); \
77 + ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).dylib; \
78 + ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).dylib.$(VER_MAJ); \
79 + ln -s $(SYSCONF_LINK_TARGET_SHARED) lib$(TARGET).dylib.$(VER_MAJ).$(VER_MIN)
80+
81+# Linking static libraries
82+# - Build the $(TARGET) library, eg. lib$(TARGET).a
83+# - Place target in $(DESTDIR) - which has a trailing /
84+#
85 +SYSCONF_AR = ar cqs
86+SYSCONF_LINK_TARGET_STATIC = lib$(TARGET).a
87 +SYSCONF_LINK_LIB_STATIC= rm -f $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) ; \
88 + $(SYSCONF_AR) $(DESTDIR)$(SYSCONF_LINK_TARGET_STATIC) $(OBJECTS) $(OBJMOC)
89+# Compiling application source
90 +SYSCONF_CXXFLAGS= -pipe -fno-exceptions -DQWS -fno-rtti -fno-exceptions -DQT_NO_QWS_LINUXFB -DQT_NO_QWS_TRANSFORMED -O0 -Wall -W -DNO_DEBUG
91 +SYSCONF_CFLAGS = -pipe -fno-exceptions -O2 -Wall -W
92+# Default link type (static linking is still be used where required)
93 +SYSCONF_LINK_LIB= $(SYSCONF_LINK_LIB_SHARED)
94 +SYSCONF_LINK_TARGET= $(SYSCONF_LINK_TARGET_SHARED)
95+# Compiling library source
96 +SYSCONF_CXXFLAGS_LIB= -fPIC
97 +SYSCONF_CFLAGS_LIB= -fPIC
98+# Compiling shared-object source
99 +SYSCONF_CXXFLAGS_SHOBJ= -fPIC
100 +SYSCONF_CFLAGS_SHOBJ= -fPIC
101+# Linking Qt
102 +SYSCONF_LIBS_QTLIB= $(SYSCONF_LFLAGS_X11) $(QT_LIBS_MT) $(QT_LIBS_OPT)
103+# Linking Qt applications
104 +SYSCONF_LIBS_QTAPP=
105diff -uNr --exclude-from=./diff_ignore qt-2.3.7/include/qapplication.h qte-2.3.7/include/qapplication.h
106 --- qt-2.3.7/include/qapplication.hThu Jul 17 03:20:25 2003
107 +++ qte-2.3.7/include/qapplication.hMon Oct 27 14:21:28 2003
108@@ -61,6 +61,10 @@
109 class QSemaphore;
110 #endif
111
112+#if !defined( QT_WEAK_SYMBOL )
113+#define QT_WEAK_SYMBOL
114+#endif
115+
116 // REMOVE IN 3.0 (just here for moc source compatibility)
117 #define QNonBaseApplication QApplication
118
119@@ -85,7 +89,10 @@
120
121 #ifndef QT_NO_STYLE
122 static QStyle &style();
123 - static void setStyle( QStyle* );
124 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
125+private:
126 +static void setStyle_NonWeak( QStyle* );
127+public:
128 #endif
129 #if 1/* OBSOLETE */
130 enum ColorMode { NormalColors, CustomColors };
131@@ -106,11 +113,19 @@
132 #ifndef QT_NO_PALETTE
133 static QPalette palette( const QWidget* = 0 );
134 static void setPalette( const QPalette &, bool informWidgets=FALSE,
135 + const char* className = 0 ) QT_WEAK_SYMBOL;
136+private:
137 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
138 const char* className = 0 );
139+public:
140 #endif
141 static QFont font( const QWidget* = 0 );
142 static void setFont( const QFont &, bool informWidgets=FALSE,
143 + const char* className = 0 ) QT_WEAK_SYMBOL;
144+private:
145 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
146 const char* className = 0 );
147 +public:
148 static QFontMetrics fontMetrics();
149
150 QWidget *mainWidget() const;
151@@ -207,7 +222,10 @@
152 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
153 #ifndef QT_NO_QWS_MANAGER
154 static QWSDecoration &qwsDecoration();
155- static void qwsSetDecoration( QWSDecoration *);
156+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
157+private:
158+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
159+public:
160 #endif
161 #endif
162
163diff -uNr --exclude-from=./diff_ignore qt-2.3.7/include/qconfig-qpe.h qte-2.3.7/include/qconfig-qpe.h
164 --- qt-2.3.7/include/qconfig-qpe.hThu Jan 1 01:00:00 1970
165 +++ qte-2.3.7/include/qconfig-qpe.hSun Dec 14 12:48:43 2003
166@@ -0,0 +1,100 @@
167+/**********************************************************************
168+** Copyright (C) 2000 Trolltech AS. All rights reserved.
169+**
170+** This file is part of Qtopia Environment.
171+**
172+** This file may be distributed and/or modified under the terms of the
173+** GNU General Public License version 2 as published by the Free Software
174+** Foundation and appearing in the file LICENSE.GPL included in the
175+** packaging of this file.
176+**
177+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
178+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
179+**
180+** See http://www.trolltech.com/gpl/ for GPL licensing information.
181+**
182+** Contact info@trolltech.com if any conditions of this licensing are
183+** not clear to you.
184+**
185+**********************************************************************/
186+#ifndef QT_H
187+#endif // QT_H
188+
189+// Empty leaves all features enabled. See doc/html/features.html for choices.
190+
191+// Note that disabling some features will produce a libqt that is not
192+// compatible with other libqt builds. Such modifications are only
193+// supported on Qt/Embedded where reducing the library size is important
194+// and where the application-suite is often a fixed set.
195+
196+#ifndef QT_DLL
197+#define QT_DLL // Internal
198+#endif
199+
200+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_SL5XXX)
201+# define QT_NO_QWS_CURSOR
202+# define QT_NO_QWS_MOUSE_AUTO
203+#endif
204+#ifndef QT_NO_CODECS
205+#define QT_NO_CODECS
206+#endif
207+#define QT_NO_UNICODETABLES
208+//#define QT_NO_IMAGEIO_BMP
209+#define QT_NO_IMAGEIO_PPM
210+//#define QT_NO_ASYNC_IO
211+//#define QT_NO_ASYNC_IMAGE_IO
212+#define QT_NO_FREETYPE
213+#define QT_NO_BDF
214+//#define QT_NO_FONTDATABASE
215+#define QT_NO_DRAGANDDROP
216+//#define QT_NO_CLIPBOARD
217+#define QT_NO_PROPERTIES
218+#define QT_NO_NETWORKPROTOCOL
219+
220+#define QT_NO_IMAGE_TEXT
221+
222+//#define QT_NO_TOOLTIP
223+#define QT_NO_COLORNAMES
224+#define QT_NO_TRANSFORMATIONS
225+#define QT_NO_TRANSLATION_BUILDER
226+#define QT_NO_COMPLEXTEXT
227+#define QT_NO_PRINTER
228+#define QT_NO_PICTURE
229+//#define QT_NO_ICONVIEW
230+#define QT_NO_DIAL
231+#define QT_NO_SIZEGRIP
232+#define QT_NO_WORKSPACE
233+//#define QT_NO_TABLE
234+//#define QT_NO_ACTION
235+//#define QT_NO_SETTINGS
236+#define QT_NO_STYLE_POCKETPC
237+#ifndef QT_NO_STYLE_AQUA
238+# define QT_NO_STYLE_AQUA
239+#endif
240+#define QT_NO_STYLE_MOTIF
241+#define QT_NO_STYLE_PLATINUM
242+#define QT_NO_FILEDIALOG
243+#define QT_NO_FONTDIALOG
244+#define QT_NO_PRINTDIALOG
245+#define QT_NO_COLORDIALOG
246+#define QT_NO_INPUTDIALOG
247+//#define QT_NO_MESSAGEBOX
248+#define QT_NO_PROGRESSDIALOG
249+//#define QT_NO_TABDIALOG
250+#define QT_NO_WIZARD
251+#define QT_NO_EFFECTS
252+//#define QT_NO_COMPONENT
253+#define QT_NO_DOM
254+#define QT_NO_SEMIMODAL
255+//#define QT_NO_PROGRESSBAR
256+#define QT_NO_SPLITTER
257+
258+//#define QT_NO_QWS_SAVEFONTS
259+//#define QT_NO_QWS_PROPERTIES
260+
261+#define QT_NO_QWS_BEOS_WM_STYLE
262+#define QT_NO_QWS_KDE2_WM_STYLE
263+#define QT_NO_QWS_KDE_WM_STYLE
264+#define QT_NO_QWS_WINDOWS_WM_STYLE
265+
266+#define QT_NO_SOUND
267diff -uNr --exclude-from=./diff_ignore qt-2.3.7/include/qconfig.h qte-2.3.7/include/qconfig.h
268 --- qt-2.3.7/include/qconfig.hFri Jan 26 14:43:06 2001
269 +++ qte-2.3.7/include/qconfig.hThu Dec 11 12:54:20 2003
270@@ -1,3 +1,26 @@
271+// Copied from qconfig-qpe.h
272+/**********************************************************************
273+** Copyright (C) 2000 Trolltech AS. All rights reserved.
274+**
275+** This file is part of Qtopia Environment.
276+**
277+** This file may be distributed and/or modified under the terms of the
278+** GNU General Public License version 2 as published by the Free Software
279+** Foundation and appearing in the file LICENSE.GPL included in the
280+** packaging of this file.
281+**
282+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
283+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
284+**
285+** See http://www.trolltech.com/gpl/ for GPL licensing information.
286+**
287+** Contact info@trolltech.com if any conditions of this licensing are
288+** not clear to you.
289+**
290+**********************************************************************/
291+#ifndef QT_H
292+#endif // QT_H
293+
294 // Empty leaves all features enabled. See doc/html/features.html for choices.
295
296 // Note that disabling some features will produce a libqt that is not
297@@ -8,3 +31,71 @@
298 #ifndef QT_DLL
299 #define QT_DLL // Internal
300 #endif
301+
302+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_SL5XXX)
303+# define QT_NO_QWS_CURSOR
304+# define QT_NO_QWS_MOUSE_AUTO
305+#endif
306+#ifndef QT_NO_CODECS
307+#define QT_NO_CODECS
308+#endif
309+#define QT_NO_UNICODETABLES
310+//#define QT_NO_IMAGEIO_BMP
311+#define QT_NO_IMAGEIO_PPM
312+//#define QT_NO_ASYNC_IO
313+//#define QT_NO_ASYNC_IMAGE_IO
314+#define QT_NO_FREETYPE
315+#define QT_NO_BDF
316+//#define QT_NO_FONTDATABASE
317+#define QT_NO_DRAGANDDROP
318+//#define QT_NO_CLIPBOARD
319+#define QT_NO_PROPERTIES
320+#define QT_NO_NETWORKPROTOCOL
321+
322+#define QT_NO_IMAGE_TEXT
323+
324+//#define QT_NO_TOOLTIP
325+#define QT_NO_COLORNAMES
326+#define QT_NO_TRANSFORMATIONS
327+#define QT_NO_TRANSLATION_BUILDER
328+#define QT_NO_COMPLEXTEXT
329+#define QT_NO_PRINTER
330+#define QT_NO_PICTURE
331+//#define QT_NO_ICONVIEW
332+#define QT_NO_DIAL
333+#define QT_NO_SIZEGRIP
334+#define QT_NO_WORKSPACE
335+//#define QT_NO_TABLE
336+//#define QT_NO_ACTION
337+//#define QT_NO_SETTINGS
338+#define QT_NO_STYLE_POCKETPC
339+#ifndef QT_NO_STYLE_AQUA
340+# define QT_NO_STYLE_AQUA
341+#endif
342+#define QT_NO_STYLE_MOTIF
343+#define QT_NO_STYLE_PLATINUM
344+#define QT_NO_FILEDIALOG
345+#define QT_NO_FONTDIALOG
346+#define QT_NO_PRINTDIALOG
347+#define QT_NO_COLORDIALOG
348+#define QT_NO_INPUTDIALOG
349+//#define QT_NO_MESSAGEBOX
350+#define QT_NO_PROGRESSDIALOG
351+//#define QT_NO_TABDIALOG
352+#define QT_NO_WIZARD
353+#define QT_NO_EFFECTS
354+//#define QT_NO_COMPONENT
355+#define QT_NO_DOM
356+#define QT_NO_SEMIMODAL
357+//#define QT_NO_PROGRESSBAR
358+#define QT_NO_SPLITTER
359+
360+//#define QT_NO_QWS_SAVEFONTS
361+//#define QT_NO_QWS_PROPERTIES
362+
363+#define QT_NO_QWS_BEOS_WM_STYLE
364+#define QT_NO_QWS_KDE2_WM_STYLE
365+#define QT_NO_QWS_KDE_WM_STYLE
366+#define QT_NO_QWS_WINDOWS_WM_STYLE
367+
368+#define QT_NO_SOUND
369\ No newline at end of file
370diff -uNr --exclude-from=./diff_ignore qt-2.3.7/include/qfontdatabase.h qte-2.3.7/include/qfontdatabase.h
371 --- qt-2.3.7/include/qfontdatabase.hThu Jul 17 03:20:25 2003
372 +++ qte-2.3.7/include/qfontdatabase.hMon Oct 27 14:21:28 2003
373@@ -59,6 +59,10 @@
374 class QDiskFont;
375 #endif
376
377+#if !defined( QT_WEAK_SYMBOL )
378+#define QT_WEAK_SYMBOL
379+#endif
380+
381 class QFontDatabasePrivate;
382
383 class Q_EXPORT QFontDatabase
384@@ -67,9 +71,16 @@
385 QFontDatabase();
386
387 QStringList families( bool onlyForLocale = TRUE ) const;
388+
389+
390 QValueList<int> pointSizes( const QString &family,
391 const QString &style = QString::null,
392 - const QString &charSet = QString::null );
393 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
394+private:
395+ QValueList<int> pointSizes_NonWeak( const QString &family,
396 + const QString &style,
397 + const QString &charSet );
398+public:
399 QStringList styles( const QString &family,
400 const QString &charSet = QString::null ) const;
401 QStringList charSets( const QString &familyName,
402diff -uNr --exclude-from=./diff_ignore qt-2.3.7/include/qgifimageformat_p.h qte-2.3.7/include/qgifimageformat_p.h
403 --- qt-2.3.7/include/qgifimageformat_p.hThu Jul 17 03:20:24 2003
404 +++ qte-2.3.7/include/qgifimageformat_p.hThu Jan 1 01:00:00 1970
405@@ -1,56 +0,0 @@
406-/****************************************************************************
407-** $Id$
408-**
409-** Implementation of gif image/movie loading classes
410-**
411-** Created : 970617
412-**
413-** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
414-**
415-** This file is part of the kernel module of the Qt GUI Toolkit.
416-**
417-** This file may be distributed under the terms of the Q Public License
418-** as defined by Trolltech AS of Norway and appearing in the file
419-** LICENSE.QPL included in the packaging of this file.
420-**
421-** This file may be distributed and/or modified under the terms of the
422-** GNU General Public License version 2 as published by the Free Software
423-** Foundation and appearing in the file LICENSE.GPL included in the
424-** packaging of this file.
425-**
426-** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
427-** licenses may use this file in accordance with the Qt Commercial License
428-** Agreement provided with the Software.
429-**
430-** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
431-** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
432-**
433-** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
434-** information about Qt Commercial License Agreements.
435-** See http://www.trolltech.com/qpl/ for QPL licensing information.
436-** See http://www.trolltech.com/gpl/ for GPL licensing information.
437-**
438-** Contact info@trolltech.com if any conditions of this licensing are
439-** not clear to you.
440-**
441-**********************************************************************/
442-
443-#ifndef QT_H
444-#include "qasyncimageio.h"
445-#include "qgif.h"
446-#endif // QT_H
447-
448-#ifndef QT_NO_ASYNC_IMAGE_IO
449-
450-// See qgif.h for important information regarding this option
451-#if defined(QT_BUILTIN_GIF_READER) && QT_BUILTIN_GIF_READER == 1
452-
453-class Q_EXPORT QGIFFormatType : public QImageFormatType
454-{
455- QImageFormat* decoderFor(const uchar* buffer, int length);
456- const char* formatName() const;
457-};
458-
459-#endif // QT_BUILTIN_GIF_READER
460-
461-#endif // QT_NO_ASYNC_IMAGE_IO
462diff -uNr --exclude-from=./diff_ignore qt-2.3.7/include/qmodules.h qte-2.3.7/include/qmodules.h
463 --- qt-2.3.7/include/qmodules.hFri Aug 31 17:00:56 2001
464 +++ qte-2.3.7/include/qmodules.hThu Dec 11 12:53:57 2003
465@@ -1,14 +1,12 @@
466-#ifndef QT_H
467-#endif // QT_H
468-
469+// These modules are licensed to you
470 #define QT_MODULE_TOOLS
471 #define QT_MODULE_KERNEL
472 #define QT_MODULE_WIDGETS
473 #define QT_MODULE_DIALOGS
474-
475 #define QT_MODULE_ICONVIEW
476 #define QT_MODULE_WORKSPACE
477-#define QT_MODULE_TABLE
478+#define QT_MODULE_NETWORK
479 #define QT_MODULE_CANVAS
480+#define QT_MODULE_TABLE
481 #define QT_MODULE_XML
482-#define QT_MODULE_NETWORK
483+#define QT_MODULE_OPENGL
484Binary files qt-2.3.7/lib/libqte.dylib and qte-2.3.7/lib/libqte.dylib differ
485Binary files qt-2.3.7/lib/libqte.dylib.2 and qte-2.3.7/lib/libqte.dylib.2 differ
486Binary files qt-2.3.7/lib/libqte.dylib.2.3 and qte-2.3.7/lib/libqte.dylib.2.3 differ
487Binary files qt-2.3.7/lib/libqte.dylib.2.3.7 and qte-2.3.7/lib/libqte.dylib.2.3.7 differ
488diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qapplication.cpp qte-2.3.7/src/kernel/qapplication.cpp
489 --- qt-2.3.7/src/kernel/qapplication.cppThu Jul 17 03:20:25 2003
490 +++ qte-2.3.7/src/kernel/qapplication.cppMon Oct 27 14:21:28 2003
491@@ -35,6 +35,8 @@
492 **
493 **********************************************************************/
494
495 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
496+
497 #include "qobjectlist.h"
498 #include "qobjectdict.h"
499 #include "qapplication.h"
500@@ -933,11 +935,16 @@
501 #ifndef QT_NO_STYLE
502 void QApplication::setStyle( QStyle *style )
503 {
504 +setStyle_NonWeak ( style );
505+}
506+
507+void QApplication::setStyle_NonWeak( QStyle *style )
508+{
509 QStyle* old = app_style;
510- app_style = style;
511
512 if ( startingUp() ) {
513 delete old;
514 +app_style = style;
515 return;
516 }
517
518@@ -958,6 +965,8 @@
519 old->unPolish( qApp );
520 }
521
522+ app_style = style;
523+
524 // take care of possible palette requirements of certain gui
525 // styles. Do it before polishing the application since the style
526 // might call QApplication::setStyle() itself
527@@ -1184,13 +1193,30 @@
528 \sa QWidget::setPalette(), palette(), QStyle::polish()
529 */
530
531-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
532+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
533 + const char* className )
534+{
535 +setPalette_NonWeak ( palette, informWidgets, className );
536+}
537+
538+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
539 const char* className )
540 {
541 QPalette pal = palette;
542 #ifndef QT_NO_STYLE
543- if ( !startingUp() )
544+ if ( !startingUp() ) {
545 qApp->style().polish( pal );// NB: non-const reference
546 +if ( className ) {
547 + // if we just polished a class specific palette (this normally
548 + // only called by qt_fix_tooltips - see below), we better re-
549 + // polish the global palette. Some styles like liquid can get
550 + // confused, because they can not detect if the polished palette
551 + // is the global one or only a class specific one.
552 + // (liquid uses this palette to calculate blending pixmaps)
553 + QPalette p = qApp-> palette ( );
554 + qApp->style().polish ( p );
555 +}
556+ }
557 #endif
558 bool all = FALSE;
559 if ( !className ) {
560@@ -1273,6 +1299,12 @@
561 */
562
563 void QApplication::setFont( const QFont &font, bool informWidgets,
564 + const char* className )
565+{
566 +setFont_NonWeak ( font, informWidgets, className );
567+}
568+
569+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
570 const char* className )
571 {
572 bool all = FALSE;
573diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qapplication.h qte-2.3.7/src/kernel/qapplication.h
574 --- qt-2.3.7/src/kernel/qapplication.hThu Jul 17 03:20:25 2003
575 +++ qte-2.3.7/src/kernel/qapplication.hMon Oct 27 14:21:28 2003
576@@ -61,6 +61,10 @@
577 class QSemaphore;
578 #endif
579
580+#if !defined( QT_WEAK_SYMBOL )
581+#define QT_WEAK_SYMBOL
582+#endif
583+
584 // REMOVE IN 3.0 (just here for moc source compatibility)
585 #define QNonBaseApplication QApplication
586
587@@ -85,7 +89,10 @@
588
589 #ifndef QT_NO_STYLE
590 static QStyle &style();
591 - static void setStyle( QStyle* );
592 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
593+private:
594 +static void setStyle_NonWeak( QStyle* );
595+public:
596 #endif
597 #if 1/* OBSOLETE */
598 enum ColorMode { NormalColors, CustomColors };
599@@ -106,11 +113,19 @@
600 #ifndef QT_NO_PALETTE
601 static QPalette palette( const QWidget* = 0 );
602 static void setPalette( const QPalette &, bool informWidgets=FALSE,
603 + const char* className = 0 ) QT_WEAK_SYMBOL;
604+private:
605 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
606 const char* className = 0 );
607+public:
608 #endif
609 static QFont font( const QWidget* = 0 );
610 static void setFont( const QFont &, bool informWidgets=FALSE,
611 + const char* className = 0 ) QT_WEAK_SYMBOL;
612+private:
613 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
614 const char* className = 0 );
615 +public:
616 static QFontMetrics fontMetrics();
617
618 QWidget *mainWidget() const;
619@@ -207,7 +222,10 @@
620 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
621 #ifndef QT_NO_QWS_MANAGER
622 static QWSDecoration &qwsDecoration();
623- static void qwsSetDecoration( QWSDecoration *);
624+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
625+private:
626+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
627+public:
628 #endif
629 #endif
630
631diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qapplication_qws.cpp qte-2.3.7/src/kernel/qapplication_qws.cpp
632 --- qt-2.3.7/src/kernel/qapplication_qws.cppThu Jul 17 03:20:25 2003
633 +++ qte-2.3.7/src/kernel/qapplication_qws.cppMon Oct 27 14:21:28 2003
634@@ -2804,6 +2804,11 @@
635 */
636 void QApplication::qwsSetDecoration( QWSDecoration *d )
637 {
638 +qwsSetDecoration_NonWeak ( d );
639+}
640+
641+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
642+{
643 if ( d ) {
644 delete qws_decoration;
645 qws_decoration = d;
646diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qfontdatabase.cpp qte-2.3.7/src/kernel/qfontdatabase.cpp
647 --- qt-2.3.7/src/kernel/qfontdatabase.cppThu Jul 17 03:20:25 2003
648 +++ qte-2.3.7/src/kernel/qfontdatabase.cppMon Oct 27 14:21:28 2003
649@@ -35,6 +35,8 @@
650 **
651 **********************************************************************/
652
653+#define QT_WEAK_SYMBOL __attribute__(( weak ))
654+
655 #include "qfontdatabase.h"
656
657 #ifndef QT_NO_FONTDATABASE
658@@ -2421,6 +2423,13 @@
659 */
660
661 QValueList<int> QFontDatabase::pointSizes( const QString &family,
662+ const QString &style,
663+ const QString &charSet )
664+{
665 +return pointSizes_NonWeak ( family, style, charSet );
666+}
667+
668+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
669 const QString &style,
670 const QString &charSet )
671 {
672diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qfontdatabase.h qte-2.3.7/src/kernel/qfontdatabase.h
673 --- qt-2.3.7/src/kernel/qfontdatabase.hThu Jul 17 03:20:25 2003
674 +++ qte-2.3.7/src/kernel/qfontdatabase.hMon Oct 27 14:21:28 2003
675@@ -59,6 +59,10 @@
676 class QDiskFont;
677 #endif
678
679+#if !defined( QT_WEAK_SYMBOL )
680+#define QT_WEAK_SYMBOL
681+#endif
682+
683 class QFontDatabasePrivate;
684
685 class Q_EXPORT QFontDatabase
686@@ -67,9 +71,16 @@
687 QFontDatabase();
688
689 QStringList families( bool onlyForLocale = TRUE ) const;
690+
691+
692 QValueList<int> pointSizes( const QString &family,
693 const QString &style = QString::null,
694 - const QString &charSet = QString::null );
695 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
696+private:
697+ QValueList<int> pointSizes_NonWeak( const QString &family,
698 + const QString &style,
699 + const QString &charSet );
700+public:
701 QStringList styles( const QString &family,
702 const QString &charSet = QString::null ) const;
703 QStringList charSets( const QString &familyName,
704diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qgfx_qws.cpp qte-2.3.7/src/kernel/qgfx_qws.cpp
705 --- qt-2.3.7/src/kernel/qgfx_qws.cppThu Jul 17 03:20:25 2003
706 +++ qte-2.3.7/src/kernel/qgfx_qws.cppMon Oct 27 14:27:25 2003
707@@ -32,7 +32,7 @@
708 #include "qgfx_qws.h"
709
710 #include <stdio.h>
711-#include <dlfcn.h>
712+//#include <dlfcn.h>
713 #include <sys/types.h>
714 #include <dirent.h>
715 #include <stdlib.h>
716diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qgfxraster_qws.cpp qte-2.3.7/src/kernel/qgfxraster_qws.cpp
717 --- qt-2.3.7/src/kernel/qgfxraster_qws.cppThu Jul 17 03:20:25 2003
718 +++ qte-2.3.7/src/kernel/qgfxraster_qws.cppMon Oct 27 14:27:25 2003
719@@ -75,7 +75,11 @@
720 # if __BYTE_ORDER == __BIG_ENDIAN
721 # define QWS_BIG_ENDIAN
722 # endif
723+#elif defined(__APPLE__)
724+# define QWS_BIG_ENDIAN
725 #endif
726+// AJ: the above (test for __APPLE__) is very hacky, but I can't
727+// think of something better at the moment.
728
729 // Pull this private function in from qglobal.cpp
730 extern unsigned int qt_int_sqrt( unsigned int n );
731@@ -3770,6 +3774,19 @@
732 b = srcval & 0xff;
733
734 unsigned char * tmp=(unsigned char *)&alphabuf[loopc];
735+# ifdef QWS_BIG_ENDIAN
736 + if(av==255) {
737 + // Do nothing - we already have source values in r,g,b
738 + } else if(av==0) {
739 + r = *(tmp+1);
740 + g = *(tmp+2);
741 + b = *(tmp+3);
742 + } else {
743 + r = ((r-*(tmp+1)) * av) / 256 + *(tmp+1);
744 + g = ((g-*(tmp+2)) * av) / 256 + *(tmp+2);
745 + b = ((b-*(tmp+3)) * av) / 256 + *(tmp+3);
746 + }
747+# else
748 if(av==255) {
749 // Do nothing - we already have source values in r,g,b
750 } else if(av==0) {
751@@ -3781,6 +3798,7 @@
752 g = ((g-*(tmp+1)) * av) / 256 + *(tmp+1);
753 b = ((b-*(tmp+0)) * av) / 256 + *(tmp+0);
754 }
755+# endif
756 *(alphaptr++) = (r << 16) | (g << 8) | b;
757 }
758
759@@ -4204,7 +4222,7 @@
760
761 } else if ( depth == 1 ) {
762 if (srctype==SourceImage) {
763 - static int warn;
764 + static int warn = 0;
765 if ( warn++ < 5 )
766 qDebug( "bitmap alpha-image not implemented" );
767 hImageLineUnclipped( x1, x2, l, srcdata, FALSE );
768@@ -4237,7 +4255,7 @@
769 setAlphaType(IgnoreAlpha);
770 if ( w <= 0 || h <= 0 || !ncliprect ) return;
771 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
772-#ifdef QWS_EXPERIMENTAL_FASTPATH
773+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
774 // ### fix for 8bpp
775 // This seems to be reliable now, at least for 16bpp
776
777diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qkeyboard_qws.cpp qte-2.3.7/src/kernel/qkeyboard_qws.cpp
778 --- qt-2.3.7/src/kernel/qkeyboard_qws.cppThu Jul 17 03:20:25 2003
779 +++ qte-2.3.7/src/kernel/qkeyboard_qws.cppMon Oct 27 14:42:11 2003
780@@ -69,7 +69,7 @@
781 #if !defined(_OS_QNX6_)
782
783 #include <termios.h>
784-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
785+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
786 #include <sys/kd.h>
787 #include <sys/vt.h>
788 #endif
789@@ -468,10 +468,12 @@
790 void QWSPC101KeyboardHandler::restoreLeds()
791 {
792 char leds;
793+#if !defined(_OS_MACX_)
794 ioctl(0, KDGETLED, &leds);
795 leds = leds & ~LED_CAP;
796 if ( caps ) leds |= LED_CAP;
797 ioctl(0, KDSETLED, leds);
798+#endif
799 }
800
801 class QWSTtyKeyboardHandler : public QWSPC101KeyboardHandler
802@@ -547,7 +549,7 @@
803
804 static void vtSwitchHandler(int /*sig*/)
805 {
806-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
807+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
808 if (vtActive) {
809 qwsServer->enablePainting(false);
810 qt_screen->save();
811@@ -880,7 +882,7 @@
812 if (term && !release) {
813 ctrl = false;
814 alt = false;
815-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
816+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
817 ioctl(kbdFD, VT_ACTIVATE, term);
818 #endif
819 return;
820@@ -1031,7 +1033,7 @@
821 struct termios termdata;
822 tcgetattr( kbdFD, &termdata );
823
824-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
825+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
826 ioctl(kbdFD, KDSKBMODE, K_RAW);
827 #endif
828
829@@ -1047,7 +1049,7 @@
830
831 signal(VTSWITCHSIG, vtSwitchHandler);
832
833-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
834+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
835 struct vt_mode vtMode;
836 ioctl(kbdFD, VT_GETMODE, &vtMode);
837
838@@ -1068,7 +1070,7 @@
839 {
840 if (kbdFD >= 0)
841 {
842-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
843+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
844 ioctl(kbdFD, KDSKBMODE, K_XLATE);
845 #endif
846 tcsetattr(kbdFD, TCSANOW, &origTermData);
847diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qkeyboard_qws.cpp.rej qte-2.3.7/src/kernel/qkeyboard_qws.cpp.rej
848 --- qt-2.3.7/src/kernel/qkeyboard_qws.cpp.rejThu Jan 1 01:00:00 1970
849 +++ qte-2.3.7/src/kernel/qkeyboard_qws.cpp.rejMon Oct 27 14:27:25 2003
850@@ -0,0 +1,34 @@
851+***************
852+*** 1023,1029 ****
853+ struct termios termdata;
854+ tcgetattr( kbdFD, &termdata );
855+
856+- #if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
857+ ioctl(kbdFD, KDSKBMODE, K_RAW);
858+ #endif
859+
860+--- 1023,1029 ----
861+ struct termios termdata;
862+ tcgetattr( kbdFD, &termdata );
863+
864++ #if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
865+ ioctl(kbdFD, KDSKBMODE, K_RAW);
866+ #endif
867+
868+***************
869+*** 1039,1045 ****
870+
871+ signal(VTSWITCHSIG, vtSwitchHandler);
872+
873+- #if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
874+ struct vt_mode vtMode;
875+ ioctl(kbdFD, VT_GETMODE, &vtMode);
876+
877+--- 1039,1045 ----
878+
879+ signal(VTSWITCHSIG, vtSwitchHandler);
880+
881++ #if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
882+ struct vt_mode vtMode;
883+ ioctl(kbdFD, VT_GETMODE, &vtMode);
884+
885diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qlock_qws.cpp qte-2.3.7/src/kernel/qlock_qws.cpp
886 --- qt-2.3.7/src/kernel/qlock_qws.cppThu Jul 17 03:20:25 2003
887 +++ qte-2.3.7/src/kernel/qlock_qws.cppMon Oct 27 14:27:25 2003
888@@ -38,7 +38,7 @@
889 #include <errno.h>
890
891 #if defined(__GNU_LIBRARY__) && !defined(_SEM_SEMUN_UNDEFINED) \
892- || defined _OS_FREEBSD_
893+ || defined(_OS_FREEBSD_) || defined(_OS_MACX_)
894 /* union semun is defined by including <sys/sem.h> */
895 #else
896 /* according to X/OPEN we have to define it ourselves */
897diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qwindowsystem_qws.cpp qte-2.3.7/src/kernel/qwindowsystem_qws.cpp
898 --- qt-2.3.7/src/kernel/qwindowsystem_qws.cppThu Jul 17 03:20:26 2003
899 +++ qte-2.3.7/src/kernel/qwindowsystem_qws.cppMon Oct 27 14:27:25 2003
900@@ -844,6 +844,18 @@
901 {
902 }
903
904+static void catchSegvSignal( int )
905+{
906+#ifndef QT_NO_QWS_KEYBOARD
907+ if ( qwsServer )
908 +qwsServer->closeKeyboard();
909+#endif
910+ QWSServer::closedown();
911+ fprintf(stderr, "Segmentation fault.\n");
912+ exit(1);
913+}
914+
915+
916 /*!
917 \class QWSServer qwindowsystem_qws.h
918 \brief Server-specific functionality in Qt/Embedded
919@@ -936,6 +948,7 @@
920 }
921
922 signal(SIGPIPE, ignoreSignal); //we get it when we read
923+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
924 #endif
925 focusw = 0;
926 mouseGrabber = 0;
927@@ -950,7 +963,7 @@
928
929 #ifndef QT_NO_QWS_MULTIPROCESS
930 if ( !geteuid() ) {
931-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
932+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
933 if( mount(0, "/var/shm", "shm", 0, 0) ) {
934 /* This just confuses people with 2.2 kernels
935 if ( errno != EBUSY )
936diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/kernel/qwsmouse_qws.cpp qte-2.3.7/src/kernel/qwsmouse_qws.cpp
937 --- qt-2.3.7/src/kernel/qwsmouse_qws.cppThu Jul 17 03:20:26 2003
938 +++ qte-2.3.7/src/kernel/qwsmouse_qws.cppMon Oct 27 14:27:25 2003
939@@ -336,7 +336,7 @@
940 tty.c_oflag = 0;
941 tty.c_lflag = 0;
942 tty.c_cflag = f | CREAD | CLOCAL | HUPCL;
943-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
944+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
945 tty.c_line = 0;
946 #endif
947 tty.c_cc[VTIME] = 0;
948@@ -889,7 +889,7 @@
949 tty.c_iflag = IGNBRK | IGNPAR;
950 tty.c_oflag = 0;
951 tty.c_lflag = 0;
952-#if !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
953+#if !defined(_OS_MACX_) && !defined(_OS_FREEBSD_) && !defined(_OS_SOLARIS_)
954 tty.c_line = 0;
955 #endif // _OS_FREEBSD_
956 tty.c_cc[VTIME] = 0;
957Binary files qt-2.3.7/src/moc/moc and qte-2.3.7/src/moc/moc differ
958diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/network/qdns.cpp qte-2.3.7/src/network/qdns.cpp
959 --- qt-2.3.7/src/network/qdns.cppThu Jul 17 03:20:26 2003
960 +++ qte-2.3.7/src/network/qdns.cppSun Nov 16 13:44:27 2003
961@@ -1991,7 +1991,7 @@
962 domains = new QStrList( TRUE );
963 domains->setAutoDelete( TRUE );
964
965- res_init();
966+ // res_init(); (eilers: Caused link problems)
967 int i;
968 // find the name servers to use
969 for( i=0; i < MAXNS && i < _res.nscount; i++ ) {
970diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/tools/qconfig-qpe.h qte-2.3.7/src/tools/qconfig-qpe.h
971 --- qt-2.3.7/src/tools/qconfig-qpe.hThu Jan 1 01:00:00 1970
972 +++ qte-2.3.7/src/tools/qconfig-qpe.hSun Dec 14 12:48:43 2003
973@@ -0,0 +1,100 @@
974+/**********************************************************************
975+** Copyright (C) 2000 Trolltech AS. All rights reserved.
976+**
977+** This file is part of Qtopia Environment.
978+**
979+** This file may be distributed and/or modified under the terms of the
980+** GNU General Public License version 2 as published by the Free Software
981+** Foundation and appearing in the file LICENSE.GPL included in the
982+** packaging of this file.
983+**
984+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
985+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
986+**
987+** See http://www.trolltech.com/gpl/ for GPL licensing information.
988+**
989+** Contact info@trolltech.com if any conditions of this licensing are
990+** not clear to you.
991+**
992+**********************************************************************/
993+#ifndef QT_H
994+#endif // QT_H
995+
996+// Empty leaves all features enabled. See doc/html/features.html for choices.
997+
998+// Note that disabling some features will produce a libqt that is not
999+// compatible with other libqt builds. Such modifications are only
1000+// supported on Qt/Embedded where reducing the library size is important
1001+// and where the application-suite is often a fixed set.
1002+
1003+#ifndef QT_DLL
1004+#define QT_DLL // Internal
1005+#endif
1006+
1007+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_SL5XXX)
1008+# define QT_NO_QWS_CURSOR
1009+# define QT_NO_QWS_MOUSE_AUTO
1010+#endif
1011+#ifndef QT_NO_CODECS
1012+#define QT_NO_CODECS
1013+#endif
1014+#define QT_NO_UNICODETABLES
1015+//#define QT_NO_IMAGEIO_BMP
1016+#define QT_NO_IMAGEIO_PPM
1017+//#define QT_NO_ASYNC_IO
1018+//#define QT_NO_ASYNC_IMAGE_IO
1019+#define QT_NO_FREETYPE
1020+#define QT_NO_BDF
1021+//#define QT_NO_FONTDATABASE
1022+#define QT_NO_DRAGANDDROP
1023+//#define QT_NO_CLIPBOARD
1024+#define QT_NO_PROPERTIES
1025+#define QT_NO_NETWORKPROTOCOL
1026+
1027+#define QT_NO_IMAGE_TEXT
1028+
1029+//#define QT_NO_TOOLTIP
1030+#define QT_NO_COLORNAMES
1031+#define QT_NO_TRANSFORMATIONS
1032+#define QT_NO_TRANSLATION_BUILDER
1033+#define QT_NO_COMPLEXTEXT
1034+#define QT_NO_PRINTER
1035+#define QT_NO_PICTURE
1036+//#define QT_NO_ICONVIEW
1037+#define QT_NO_DIAL
1038+#define QT_NO_SIZEGRIP
1039+#define QT_NO_WORKSPACE
1040+//#define QT_NO_TABLE
1041+//#define QT_NO_ACTION
1042+//#define QT_NO_SETTINGS
1043+#define QT_NO_STYLE_POCKETPC
1044+#ifndef QT_NO_STYLE_AQUA
1045+# define QT_NO_STYLE_AQUA
1046+#endif
1047+#define QT_NO_STYLE_MOTIF
1048+#define QT_NO_STYLE_PLATINUM
1049+#define QT_NO_FILEDIALOG
1050+#define QT_NO_FONTDIALOG
1051+#define QT_NO_PRINTDIALOG
1052+#define QT_NO_COLORDIALOG
1053+#define QT_NO_INPUTDIALOG
1054+//#define QT_NO_MESSAGEBOX
1055+#define QT_NO_PROGRESSDIALOG
1056+//#define QT_NO_TABDIALOG
1057+#define QT_NO_WIZARD
1058+#define QT_NO_EFFECTS
1059+//#define QT_NO_COMPONENT
1060+#define QT_NO_DOM
1061+#define QT_NO_SEMIMODAL
1062+//#define QT_NO_PROGRESSBAR
1063+#define QT_NO_SPLITTER
1064+
1065+//#define QT_NO_QWS_SAVEFONTS
1066+//#define QT_NO_QWS_PROPERTIES
1067+
1068+#define QT_NO_QWS_BEOS_WM_STYLE
1069+#define QT_NO_QWS_KDE2_WM_STYLE
1070+#define QT_NO_QWS_KDE_WM_STYLE
1071+#define QT_NO_QWS_WINDOWS_WM_STYLE
1072+
1073+#define QT_NO_SOUND
1074diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/tools/qconfig.h qte-2.3.7/src/tools/qconfig.h
1075 --- qt-2.3.7/src/tools/qconfig.hFri Jan 26 14:43:06 2001
1076 +++ qte-2.3.7/src/tools/qconfig.hThu Dec 11 12:54:20 2003
1077@@ -1,3 +1,26 @@
1078+// Copied from qconfig-qpe.h
1079+/**********************************************************************
1080+** Copyright (C) 2000 Trolltech AS. All rights reserved.
1081+**
1082+** This file is part of Qtopia Environment.
1083+**
1084+** This file may be distributed and/or modified under the terms of the
1085+** GNU General Public License version 2 as published by the Free Software
1086+** Foundation and appearing in the file LICENSE.GPL included in the
1087+** packaging of this file.
1088+**
1089+** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
1090+** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
1091+**
1092+** See http://www.trolltech.com/gpl/ for GPL licensing information.
1093+**
1094+** Contact info@trolltech.com if any conditions of this licensing are
1095+** not clear to you.
1096+**
1097+**********************************************************************/
1098+#ifndef QT_H
1099+#endif // QT_H
1100+
1101 // Empty leaves all features enabled. See doc/html/features.html for choices.
1102
1103 // Note that disabling some features will produce a libqt that is not
1104@@ -8,3 +31,71 @@
1105 #ifndef QT_DLL
1106 #define QT_DLL // Internal
1107 #endif
1108+
1109+#if defined(QT_QWS_IPAQ) || defined(QT_QWS_CASSIOPEIA) || defined(QT_QWS_SL5XXX)
1110+# define QT_NO_QWS_CURSOR
1111+# define QT_NO_QWS_MOUSE_AUTO
1112+#endif
1113+#ifndef QT_NO_CODECS
1114+#define QT_NO_CODECS
1115+#endif
1116+#define QT_NO_UNICODETABLES
1117+//#define QT_NO_IMAGEIO_BMP
1118+#define QT_NO_IMAGEIO_PPM
1119+//#define QT_NO_ASYNC_IO
1120+//#define QT_NO_ASYNC_IMAGE_IO
1121+#define QT_NO_FREETYPE
1122+#define QT_NO_BDF
1123+//#define QT_NO_FONTDATABASE
1124+#define QT_NO_DRAGANDDROP
1125+//#define QT_NO_CLIPBOARD
1126+#define QT_NO_PROPERTIES
1127+#define QT_NO_NETWORKPROTOCOL
1128+
1129+#define QT_NO_IMAGE_TEXT
1130+
1131+//#define QT_NO_TOOLTIP
1132+#define QT_NO_COLORNAMES
1133+#define QT_NO_TRANSFORMATIONS
1134+#define QT_NO_TRANSLATION_BUILDER
1135+#define QT_NO_COMPLEXTEXT
1136+#define QT_NO_PRINTER
1137+#define QT_NO_PICTURE
1138+//#define QT_NO_ICONVIEW
1139+#define QT_NO_DIAL
1140+#define QT_NO_SIZEGRIP
1141+#define QT_NO_WORKSPACE
1142+//#define QT_NO_TABLE
1143+//#define QT_NO_ACTION
1144+//#define QT_NO_SETTINGS
1145+#define QT_NO_STYLE_POCKETPC
1146+#ifndef QT_NO_STYLE_AQUA
1147+# define QT_NO_STYLE_AQUA
1148+#endif
1149+#define QT_NO_STYLE_MOTIF
1150+#define QT_NO_STYLE_PLATINUM
1151+#define QT_NO_FILEDIALOG
1152+#define QT_NO_FONTDIALOG
1153+#define QT_NO_PRINTDIALOG
1154+#define QT_NO_COLORDIALOG
1155+#define QT_NO_INPUTDIALOG
1156+//#define QT_NO_MESSAGEBOX
1157+#define QT_NO_PROGRESSDIALOG
1158+//#define QT_NO_TABDIALOG
1159+#define QT_NO_WIZARD
1160+#define QT_NO_EFFECTS
1161+//#define QT_NO_COMPONENT
1162+#define QT_NO_DOM
1163+#define QT_NO_SEMIMODAL
1164+//#define QT_NO_PROGRESSBAR
1165+#define QT_NO_SPLITTER
1166+
1167+//#define QT_NO_QWS_SAVEFONTS
1168+//#define QT_NO_QWS_PROPERTIES
1169+
1170+#define QT_NO_QWS_BEOS_WM_STYLE
1171+#define QT_NO_QWS_KDE2_WM_STYLE
1172+#define QT_NO_QWS_KDE_WM_STYLE
1173+#define QT_NO_QWS_WINDOWS_WM_STYLE
1174+
1175+#define QT_NO_SOUND
1176\ No newline at end of file
1177diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/tools/qmodules.h qte-2.3.7/src/tools/qmodules.h
1178 --- qt-2.3.7/src/tools/qmodules.hFri Aug 31 17:00:56 2001
1179 +++ qte-2.3.7/src/tools/qmodules.hThu Dec 11 12:53:57 2003
1180@@ -1,14 +1,12 @@
1181-#ifndef QT_H
1182-#endif // QT_H
1183-
1184+// These modules are licensed to you
1185 #define QT_MODULE_TOOLS
1186 #define QT_MODULE_KERNEL
1187 #define QT_MODULE_WIDGETS
1188 #define QT_MODULE_DIALOGS
1189-
1190 #define QT_MODULE_ICONVIEW
1191 #define QT_MODULE_WORKSPACE
1192-#define QT_MODULE_TABLE
1193+#define QT_MODULE_NETWORK
1194 #define QT_MODULE_CANVAS
1195+#define QT_MODULE_TABLE
1196 #define QT_MODULE_XML
1197-#define QT_MODULE_NETWORK
1198+#define QT_MODULE_OPENGL
1199diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/widgets/qcommonstyle.cpp qte-2.3.7/src/widgets/qcommonstyle.cpp
1200 --- qt-2.3.7/src/widgets/qcommonstyle.cppThu Jul 17 03:20:26 2003
1201 +++ qte-2.3.7/src/widgets/qcommonstyle.cppMon Oct 27 14:21:28 2003
1202@@ -566,7 +566,7 @@
1203 bool enabled, bool active )
1204 {
1205 #ifndef QT_NO_MENUBAR
1206-#ifndef QT_NO_STYLE_SGI
1207+#if 1 // #ifndef QT_NO_STYLE_SGI
1208 if (draw_menu_bar_impl != 0) {
1209 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
1210 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
1211diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/widgets/qlistview.cpp qte-2.3.7/src/widgets/qlistview.cpp
1212 --- qt-2.3.7/src/widgets/qlistview.cppThu Jul 17 03:20:26 2003
1213 +++ qte-2.3.7/src/widgets/qlistview.cppMon Oct 27 14:21:28 2003
1214@@ -4968,9 +4968,9 @@
1215 l = l->childItem ? l->childItem : l->siblingItem;
1216
1217 if ( l && l->height() )
1218 -s.setHeight( s.height() + 10 * l->height() );
1219- else
1220 -s.setHeight( s.height() + 140 );
1221 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
1222+ else // ^v much too big for handhelds
1223 +s.setHeight( s.height() + 30 /*140*/ );
1224
1225 if ( s.width() > s.height() * 3 )
1226 s.setHeight( s.width() / 3 );
1227diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src/widgets/qtoolbutton.cpp qte-2.3.7/src/widgets/qtoolbutton.cpp
1228 --- qt-2.3.7/src/widgets/qtoolbutton.cppThu Jul 17 03:20:27 2003
1229 +++ qte-2.3.7/src/widgets/qtoolbutton.cppMon Oct 27 14:21:28 2003
1230@@ -230,7 +230,7 @@
1231 else
1232 QToolTip::add( this, textLabel );
1233 }
1234 -#endif
1235+#endif
1236 }
1237
1238
1239@@ -324,12 +324,12 @@
1240 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
1241 w = pm.width();
1242 h = pm.height();
1243 -if ( w < 32 )
1244 - w = 32;
1245 -if ( h < 32 )
1246 - h = 32;
1247 +if ( w < 24 )
1248 + w = 24;
1249 +if ( h < 24 )
1250 + h = 24;
1251 } else {
1252 -w = h = 16;
1253 +w = h = 14;
1254 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
1255 w = pm.width();
1256 h = pm.height();
1257diff -uNr --exclude-from=./diff_ignore qt-2.3.7/src-mt.mk qte-2.3.7/src-mt.mk
1258 --- qt-2.3.7/src-mt.mkThu Jan 1 01:00:00 1970
1259 +++ qte-2.3.7/src-mt.mkThu Dec 11 12:53:57 2003
1260@@ -0,0 +1,2 @@
1261+all:
1262 +@echo "(not building threaded Qt)"
diff --git a/qt/qt-2.3.7.patch/qte237-all.patch b/qt/qt-2.3.7.patch/qte237-all.patch
deleted file mode 100644
index 307e558..0000000
--- a/qt/qt-2.3.7.patch/qte237-all.patch
+++ b/dev/null
@@ -1,1463 +0,0 @@
1
2
3Included patches:
4
5qte237-allowoverride.patch
6qte237-g++-aslinker.patch
7qte237-iconviewspeed.patch
8qte237-adjustsizes.patch
9qte237-encoding.patch
10qte237-keyboard.patch
11qte237-gcc34.patch
12qte237-lefthand.patch
13
14
15
16
17
18
19
20
21
22diff -ur qt-2.3.7-old/configs/linux-generic-g++-shared qt-2.3.7/configs/linux-generic-g++-shared
23 --- qt-2.3.7-old/configs/linux-generic-g++-shared2004-07-23 15:22:56.000000000 +0200
24 +++ qt-2.3.7/configs/linux-generic-g++-shared2004-07-23 15:23:12.000000000 +0200
25@@ -36,7 +36,7 @@
26 SYSCONF_LIBS_YACC=
27
28 # Linking applications
29 -SYSCONF_LINK = gcc
30 +SYSCONF_LINK = g++
31 SYSCONF_LFLAGS =
32 SYSCONF_LIBS =
33
34diff -ur qt-2.3.7-old/configs/linux-generic-g++-shared-debug qt-2.3.7/configs/linux-generic-g++-shared-debug
35 --- qt-2.3.7-old/configs/linux-generic-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
36 +++ qt-2.3.7/configs/linux-generic-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
37@@ -36,7 +36,7 @@
38 SYSCONF_LIBS_YACC=
39
40 # Linking applications
41 -SYSCONF_LINK = gcc
42 +SYSCONF_LINK = g++
43 SYSCONF_LFLAGS =
44 SYSCONF_LIBS =
45
46diff -ur qt-2.3.7-old/configs/linux-generic-g++-static qt-2.3.7/configs/linux-generic-g++-static
47 --- qt-2.3.7-old/configs/linux-generic-g++-static2004-07-23 15:22:56.000000000 +0200
48 +++ qt-2.3.7/configs/linux-generic-g++-static2004-07-23 15:23:12.000000000 +0200
49@@ -36,7 +36,7 @@
50 SYSCONF_LIBS_YACC=
51
52 # Linking applications
53 -SYSCONF_LINK = gcc
54 +SYSCONF_LINK = g++
55 SYSCONF_LFLAGS =
56 SYSCONF_LIBS =
57
58diff -ur qt-2.3.7-old/configs/linux-generic-g++-static-debug qt-2.3.7/configs/linux-generic-g++-static-debug
59 --- qt-2.3.7-old/configs/linux-generic-g++-static-debug2004-07-23 15:22:56.000000000 +0200
60 +++ qt-2.3.7/configs/linux-generic-g++-static-debug2004-07-23 15:23:12.000000000 +0200
61@@ -36,7 +36,7 @@
62 SYSCONF_LIBS_YACC=
63
64 # Linking applications
65 -SYSCONF_LINK = gcc
66 +SYSCONF_LINK = g++
67 SYSCONF_LFLAGS =
68 SYSCONF_LIBS =
69
70diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-shared qt-2.3.7/configs/linux-generic_rtti-g++-shared
71 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-shared2004-07-23 15:22:56.000000000 +0200
72 +++ qt-2.3.7/configs/linux-generic_rtti-g++-shared2004-07-23 15:23:12.000000000 +0200
73@@ -36,7 +36,7 @@
74 SYSCONF_LIBS_YACC=
75
76 # Linking applications
77 -SYSCONF_LINK = gcc
78 +SYSCONF_LINK = g++
79 SYSCONF_LFLAGS =
80 SYSCONF_LIBS =
81
82diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-shared-debug qt-2.3.7/configs/linux-generic_rtti-g++-shared-debug
83 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
84 +++ qt-2.3.7/configs/linux-generic_rtti-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
85@@ -36,7 +36,7 @@
86 SYSCONF_LIBS_YACC=
87
88 # Linking applications
89 -SYSCONF_LINK = gcc
90 +SYSCONF_LINK = g++
91 SYSCONF_LFLAGS =
92 SYSCONF_LIBS =
93
94diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-static qt-2.3.7/configs/linux-generic_rtti-g++-static
95 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-static2004-07-23 15:22:56.000000000 +0200
96 +++ qt-2.3.7/configs/linux-generic_rtti-g++-static2004-07-23 15:23:12.000000000 +0200
97@@ -36,7 +36,7 @@
98 SYSCONF_LIBS_YACC=
99
100 # Linking applications
101 -SYSCONF_LINK = gcc
102 +SYSCONF_LINK = g++
103 SYSCONF_LFLAGS =
104 SYSCONF_LIBS =
105
106diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-static-debug qt-2.3.7/configs/linux-generic_rtti-g++-static-debug
107 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200
108 +++ qt-2.3.7/configs/linux-generic_rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
109@@ -36,7 +36,7 @@
110 SYSCONF_LIBS_YACC=
111
112 # Linking applications
113 -SYSCONF_LINK = gcc
114 +SYSCONF_LINK = g++
115 SYSCONF_LFLAGS =
116 SYSCONF_LIBS =
117
118diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-shared qt-2.3.7/configs/linux-x86rtti-g++-shared
119 --- qt-2.3.7-old/configs/linux-x86rtti-g++-shared2004-07-23 15:22:56.000000000 +0200
120 +++ qt-2.3.7/configs/linux-x86rtti-g++-shared2004-07-23 15:23:12.000000000 +0200
121@@ -36,7 +36,7 @@
122 SYSCONF_LIBS_YACC=
123
124 # Linking applications
125 -SYSCONF_LINK = gcc
126 +SYSCONF_LINK = g++
127 SYSCONF_LFLAGS =
128 SYSCONF_LIBS = -lm
129
130diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-shared-debug qt-2.3.7/configs/linux-x86rtti-g++-shared-debug
131 --- qt-2.3.7-old/configs/linux-x86rtti-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
132 +++ qt-2.3.7/configs/linux-x86rtti-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
133@@ -36,7 +36,7 @@
134 SYSCONF_LIBS_YACC=
135
136 # Linking applications
137 -SYSCONF_LINK = gcc
138 +SYSCONF_LINK = g++
139 SYSCONF_LFLAGS =
140 SYSCONF_LIBS = -lm
141
142diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static qt-2.3.7/configs/linux-x86rtti-g++-static
143 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static2004-07-23 15:22:56.000000000 +0200
144 +++ qt-2.3.7/configs/linux-x86rtti-g++-static2004-07-23 15:23:12.000000000 +0200
145@@ -36,7 +36,7 @@
146 SYSCONF_LIBS_YACC=
147
148 # Linking applications
149 -SYSCONF_LINK = gcc
150 +SYSCONF_LINK = g++
151 SYSCONF_LFLAGS =
152 SYSCONF_LIBS = -lm
153
154diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug qt-2.3.7/configs/linux-x86rtti-g++-static-debug
155 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200
156 +++ qt-2.3.7/configs/linux-x86rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
157@@ -36,7 +36,7 @@
158 SYSCONF_LIBS_YACC=
159
160 # Linking applications
161 -SYSCONF_LINK = gcc
162 +SYSCONF_LINK = g++
163 SYSCONF_LFLAGS =
164 SYSCONF_LIBS = -lm
165
166diff -ur qt-2.3.7-old/include/qapplication.h qt-2.3.7/include/qapplication.h
167 --- qt-2.3.7-old/include/qapplication.h2004-07-23 15:22:56.000000000 +0200
168 +++ qt-2.3.7/include/qapplication.h2004-07-23 15:25:42.000000000 +0200
169@@ -61,6 +61,10 @@
170 class QSemaphore;
171 #endif
172
173+#if !defined( QT_WEAK_SYMBOL )
174+#define QT_WEAK_SYMBOL
175+#endif
176+
177 // REMOVE IN 3.0 (just here for moc source compatibility)
178 #define QNonBaseApplication QApplication
179
180@@ -85,7 +89,10 @@
181
182 #ifndef QT_NO_STYLE
183 static QStyle &style();
184 - static void setStyle( QStyle* );
185 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
186+private:
187 +static void setStyle_NonWeak( QStyle* );
188+public:
189 #endif
190 #if 1/* OBSOLETE */
191 enum ColorMode { NormalColors, CustomColors };
192@@ -106,11 +113,19 @@
193 #ifndef QT_NO_PALETTE
194 static QPalette palette( const QWidget* = 0 );
195 static void setPalette( const QPalette &, bool informWidgets=FALSE,
196 + const char* className = 0 ) QT_WEAK_SYMBOL;
197+private:
198 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
199 const char* className = 0 );
200+public:
201 #endif
202 static QFont font( const QWidget* = 0 );
203 static void setFont( const QFont &, bool informWidgets=FALSE,
204 + const char* className = 0 ) QT_WEAK_SYMBOL;
205+private:
206 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
207 const char* className = 0 );
208 +public:
209 static QFontMetrics fontMetrics();
210
211 QWidget *mainWidget() const;
212@@ -207,7 +222,10 @@
213 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
214 #ifndef QT_NO_QWS_MANAGER
215 static QWSDecoration &qwsDecoration();
216- static void qwsSetDecoration( QWSDecoration *);
217+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
218+private:
219+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
220+public:
221 #endif
222 #endif
223
224diff -ur qt-2.3.7-old/include/qcstring.h qt-2.3.7/include/qcstring.h
225 --- qt-2.3.7-old/include/qcstring.h2004-07-23 15:22:56.000000000 +0200
226 +++ qt-2.3.7/include/qcstring.h2004-07-23 15:42:01.000000000 +0200
227@@ -119,7 +119,7 @@
228 // We want to keep source compatibility for 2.x
229 // ### TODO for 4.0: completely remove these and the cstr* functions
230
231-#if !defined(QT_GENUINE_STR)
232+#if 0
233
234 #undefstrlen
235 #define strlen qstrlen
236diff -ur qt-2.3.7-old/include/qfontdatabase.h qt-2.3.7/include/qfontdatabase.h
237 --- qt-2.3.7-old/include/qfontdatabase.h2004-07-23 15:22:56.000000000 +0200
238 +++ qt-2.3.7/include/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200
239@@ -59,6 +59,10 @@
240 class QDiskFont;
241 #endif
242
243+#if !defined( QT_WEAK_SYMBOL )
244+#define QT_WEAK_SYMBOL
245+#endif
246+
247 class QFontDatabasePrivate;
248
249 class Q_EXPORT QFontDatabase
250@@ -67,9 +71,16 @@
251 QFontDatabase();
252
253 QStringList families( bool onlyForLocale = TRUE ) const;
254+
255+
256 QValueList<int> pointSizes( const QString &family,
257 const QString &style = QString::null,
258 - const QString &charSet = QString::null );
259 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
260+private:
261+ QValueList<int> pointSizes_NonWeak( const QString &family,
262 + const QString &style,
263 + const QString &charSet );
264+public:
265 QStringList styles( const QString &family,
266 const QString &charSet = QString::null ) const;
267 QStringList charSets( const QString &familyName,
268diff -ur qt-2.3.7-old/include/qglobal.h qt-2.3.7/include/qglobal.h
269 --- qt-2.3.7-old/include/qglobal.h2004-07-23 15:22:56.000000000 +0200
270 +++ qt-2.3.7/include/qglobal.h2004-07-23 15:42:01.000000000 +0200
271@@ -207,8 +207,16 @@
272 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
273 #define Q_FP_CCAST_BROKEN
274 #endif
275+/* ARM gcc pads structs to 32 bits, even when they contain a single
276+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
277+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
278+ members of a packed struct. (Pointers are OK, because then you
279+ supposedly know what you are doing.) */
280 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
281 #define Q_PACKED __attribute__ ((packed))
282+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
283+# define Q_NO_PACKED_REFERENCE
284+# endif
285 #endif
286 #elif defined(__xlC__)
287 #define _CC_XLC_
288diff -ur qt-2.3.7-old/include/qiconview.h qt-2.3.7/include/qiconview.h
289 --- qt-2.3.7-old/include/qiconview.h2004-07-23 15:22:56.000000000 +0200
290 +++ qt-2.3.7/include/qiconview.h2004-07-23 15:45:34.000000000 +0200
291@@ -444,6 +444,7 @@
292 virtual void contentsDropEvent( QDropEvent *e );
293 #endif
294
295+ void bufferedPaintEvent( QPaintEvent* );
296 virtual void resizeEvent( QResizeEvent* e );
297 virtual void keyPressEvent( QKeyEvent *e );
298 virtual void focusInEvent( QFocusEvent *e );
299diff -ur qt-2.3.7-old/include/qsortedlist.h qt-2.3.7/include/qsortedlist.h
300 --- qt-2.3.7-old/include/qsortedlist.h2004-07-23 15:22:56.000000000 +0200
301 +++ qt-2.3.7/include/qsortedlist.h2004-07-23 15:42:01.000000000 +0200
302@@ -48,7 +48,7 @@
303 public:
304 QSortedList() {}
305 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
306- ~QSortedList() { clear(); }
307+ ~QSortedList() { this->clear(); }
308 QSortedList<type> &operator=(const QSortedList<type> &l)
309 { return (QSortedList<type>&)QList<type>::operator=(l); }
310
311diff -ur qt-2.3.7-old/include/qstring.h qt-2.3.7/include/qstring.h
312 --- qt-2.3.7-old/include/qstring.h2004-07-23 15:22:56.000000000 +0200
313 +++ qt-2.3.7/include/qstring.h2004-07-23 15:42:01.000000000 +0200
314@@ -163,8 +163,16 @@
315 bool isLetterOrNumber() const;
316 bool isDigit() const;
317
318+
319+#ifdef Q_NO_PACKED_REFERENCE
320+ uchar& cell() { return *(&cl); }
321+ uchar& row() { return *(&rw); }
322+#else
323 uchar& cell() { return cl; }
324- uchar& row() { return rw; }
325+ uchar& row() { return rw; }
326+#endif
327+
328+
329 uchar cell() const { return cl; }
330 uchar row() const { return rw; }
331
332diff -ur qt-2.3.7-old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp
333 --- qt-2.3.7-old/src/iconview/qiconview.cpp2004-07-23 15:22:56.000000000 +0200
334 +++ qt-2.3.7/src/iconview/qiconview.cpp2004-07-23 15:45:34.000000000 +0200
335@@ -220,6 +220,7 @@
336 QIconView::SelectionMode selectionMode;
337 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
338 QRect *rubber;
339+ QPixmap *backBuffer;
340 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
341 *fullRedrawTimer;
342 int rastX, rastY, spacing;
343@@ -2263,6 +2264,7 @@
344 d->currentItem = 0;
345 d->highlightedItem = 0;
346 d->rubber = 0;
347+ d->backBuffer = 0;
348 d->scrollTimer = 0;
349 d->startDragItem = 0;
350 d->tmpCurrentItem = 0;
351@@ -2411,6 +2413,8 @@
352 delete item;
353 item = tmp;
354 }
355+ delete d->backBuffer;
356+ d->backBuffer = 0;
357 delete d->fm;
358 d->fm = 0;
359 #ifndef QT_NO_TOOLTIP
360@@ -2877,6 +2881,48 @@
361 }
362
363 /*!
364+ This function grabs all paintevents that otherwise would have been
365+ processed by the QScrollView::viewportPaintEvent(). Here we use a
366+ doublebuffer to reduce 'on-paint' flickering on QIconView
367+ (and of course its childs).
368+
369+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
370+*/
371+
372+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
373+{
374+ QWidget* vp = viewport();
375+ QRect r = pe->rect() & vp->rect();
376+ int ex = r.x() + contentsX();
377+ int ey = r.y() + contentsY();
378+ int ew = r.width();
379+ int eh = r.height();
380+
381+ if ( !d->backBuffer )
382 +d->backBuffer = new QPixmap(vp->size());
383+ if ( d->backBuffer->size() != vp->size() ) {
384 +//Resize function (with hysteesis). Uses a good compromise between memory
385 +//consumption and speed (number) of resizes.
386+ float newWidth = (float)vp->width();
387 +float newHeight = (float)vp->height();
388 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
389 +{
390 + newWidth *= 1.1892;
391 + newHeight *= 1.1892;
392 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
393 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
394 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
395+ }
396+
397+ QPainter p;
398+ p.begin(d->backBuffer, vp);
399+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
400+ p.end();
401+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
402+}
403+
404+/*!
405+
406 \reimp
407 */
408
409@@ -4855,7 +4901,7 @@
410 if ( !d->rubber )
411 drawDragShapes( d->oldDragPos );
412 }
413 - viewportPaintEvent( (QPaintEvent*)e );
414+ bufferedPaintEvent ((QPaintEvent*)e );
415 if ( d->dragging ) {
416 if ( !d->rubber )
417 drawDragShapes( d->oldDragPos );
418@@ -5286,11 +5332,19 @@
419 return;
420
421 if ( item->d->container1 && d->firstContainer ) {
422 -item->d->container1->items.removeRef( item );
423+ //Special-case checking of the last item, since this may be
424+ //called a few times for the same item.
425+ if (item->d->container1->items.last() == item)
426+ item->d->container1->items.removeLast();
427+ else
428+ item->d->container1->items.removeRef( item );
429 }
430 item->d->container1 = 0;
431 if ( item->d->container2 && d->firstContainer ) {
432 -item->d->container2->items.removeRef( item );
433+ if (item->d->container2->items.last() == item)
434+ item->d->container2->items.removeLast();
435+ else
436+ item->d->container2->items.removeRef( item );
437 }
438 item->d->container2 = 0;
439
440diff -ur qt-2.3.7-old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h
441 --- qt-2.3.7-old/src/iconview/qiconview.h2004-07-23 15:22:56.000000000 +0200
442 +++ qt-2.3.7/src/iconview/qiconview.h2004-07-23 15:45:34.000000000 +0200
443@@ -444,6 +444,7 @@
444 virtual void contentsDropEvent( QDropEvent *e );
445 #endif
446
447+ void bufferedPaintEvent( QPaintEvent* );
448 virtual void resizeEvent( QResizeEvent* e );
449 virtual void keyPressEvent( QKeyEvent *e );
450 virtual void focusInEvent( QFocusEvent *e );
451diff -ur qt-2.3.7-old/src/kernel/qapplication.cpp qt-2.3.7/src/kernel/qapplication.cpp
452 --- qt-2.3.7-old/src/kernel/qapplication.cpp2004-07-23 15:22:56.000000000 +0200
453 +++ qt-2.3.7/src/kernel/qapplication.cpp2004-07-23 15:25:42.000000000 +0200
454@@ -35,6 +35,8 @@
455 **
456 **********************************************************************/
457
458 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
459+
460 #include "qobjectlist.h"
461 #include "qobjectdict.h"
462 #include "qapplication.h"
463@@ -933,11 +935,16 @@
464 #ifndef QT_NO_STYLE
465 void QApplication::setStyle( QStyle *style )
466 {
467 +setStyle_NonWeak ( style );
468+}
469+
470+void QApplication::setStyle_NonWeak( QStyle *style )
471+{
472 QStyle* old = app_style;
473- app_style = style;
474
475 if ( startingUp() ) {
476 delete old;
477 +app_style = style;
478 return;
479 }
480
481@@ -958,6 +965,8 @@
482 old->unPolish( qApp );
483 }
484
485+ app_style = style;
486+
487 // take care of possible palette requirements of certain gui
488 // styles. Do it before polishing the application since the style
489 // might call QApplication::setStyle() itself
490@@ -1184,13 +1193,30 @@
491 \sa QWidget::setPalette(), palette(), QStyle::polish()
492 */
493
494-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
495+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
496 + const char* className )
497+{
498 +setPalette_NonWeak ( palette, informWidgets, className );
499+}
500+
501+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
502 const char* className )
503 {
504 QPalette pal = palette;
505 #ifndef QT_NO_STYLE
506- if ( !startingUp() )
507+ if ( !startingUp() ) {
508 qApp->style().polish( pal );// NB: non-const reference
509 +if ( className ) {
510 + // if we just polished a class specific palette (this normally
511 + // only called by qt_fix_tooltips - see below), we better re-
512 + // polish the global palette. Some styles like liquid can get
513 + // confused, because they can not detect if the polished palette
514 + // is the global one or only a class specific one.
515 + // (liquid uses this palette to calculate blending pixmaps)
516 + QPalette p = qApp-> palette ( );
517 + qApp->style().polish ( p );
518 +}
519+ }
520 #endif
521 bool all = FALSE;
522 if ( !className ) {
523@@ -1275,6 +1301,12 @@
524 void QApplication::setFont( const QFont &font, bool informWidgets,
525 const char* className )
526 {
527 +setFont_NonWeak ( font, informWidgets, className );
528+}
529+
530+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
531 + const char* className )
532+{
533 bool all = FALSE;
534 if ( !className ) {
535 if ( !app_font ) {
536diff -ur qt-2.3.7-old/src/kernel/qapplication.h qt-2.3.7/src/kernel/qapplication.h
537 --- qt-2.3.7-old/src/kernel/qapplication.h2004-07-23 15:22:56.000000000 +0200
538 +++ qt-2.3.7/src/kernel/qapplication.h2004-07-23 15:25:42.000000000 +0200
539@@ -61,6 +61,10 @@
540 class QSemaphore;
541 #endif
542
543+#if !defined( QT_WEAK_SYMBOL )
544+#define QT_WEAK_SYMBOL
545+#endif
546+
547 // REMOVE IN 3.0 (just here for moc source compatibility)
548 #define QNonBaseApplication QApplication
549
550@@ -85,7 +89,10 @@
551
552 #ifndef QT_NO_STYLE
553 static QStyle &style();
554 - static void setStyle( QStyle* );
555 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
556+private:
557 +static void setStyle_NonWeak( QStyle* );
558+public:
559 #endif
560 #if 1/* OBSOLETE */
561 enum ColorMode { NormalColors, CustomColors };
562@@ -106,11 +113,19 @@
563 #ifndef QT_NO_PALETTE
564 static QPalette palette( const QWidget* = 0 );
565 static void setPalette( const QPalette &, bool informWidgets=FALSE,
566 + const char* className = 0 ) QT_WEAK_SYMBOL;
567+private:
568 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
569 const char* className = 0 );
570+public:
571 #endif
572 static QFont font( const QWidget* = 0 );
573 static void setFont( const QFont &, bool informWidgets=FALSE,
574 + const char* className = 0 ) QT_WEAK_SYMBOL;
575+private:
576 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
577 const char* className = 0 );
578 +public:
579 static QFontMetrics fontMetrics();
580
581 QWidget *mainWidget() const;
582@@ -207,7 +222,10 @@
583 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
584 #ifndef QT_NO_QWS_MANAGER
585 static QWSDecoration &qwsDecoration();
586- static void qwsSetDecoration( QWSDecoration *);
587+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
588+private:
589+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
590+public:
591 #endif
592 #endif
593
594diff -ur qt-2.3.7-old/src/kernel/qapplication_qws.cpp qt-2.3.7/src/kernel/qapplication_qws.cpp
595 --- qt-2.3.7-old/src/kernel/qapplication_qws.cpp2004-07-23 15:22:56.000000000 +0200
596 +++ qt-2.3.7/src/kernel/qapplication_qws.cpp2004-07-23 15:25:42.000000000 +0200
597@@ -2804,6 +2804,11 @@
598 */
599 void QApplication::qwsSetDecoration( QWSDecoration *d )
600 {
601 +qwsSetDecoration_NonWeak ( d );
602+}
603+
604+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
605+{
606 if ( d ) {
607 delete qws_decoration;
608 qws_decoration = d;
609diff -ur qt-2.3.7-old/src/kernel/qfontdatabase.cpp qt-2.3.7/src/kernel/qfontdatabase.cpp
610 --- qt-2.3.7-old/src/kernel/qfontdatabase.cpp2004-07-23 15:22:56.000000000 +0200
611 +++ qt-2.3.7/src/kernel/qfontdatabase.cpp2004-07-23 15:25:42.000000000 +0200
612@@ -35,6 +35,8 @@
613 **
614 **********************************************************************/
615
616+#define QT_WEAK_SYMBOL __attribute__(( weak ))
617+
618 #include "qfontdatabase.h"
619
620 #ifndef QT_NO_FONTDATABASE
621@@ -2424,6 +2426,13 @@
622 const QString &style,
623 const QString &charSet )
624 {
625 +return pointSizes_NonWeak ( family, style, charSet );
626+}
627+
628+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
629+ const QString &style,
630+ const QString &charSet )
631+{
632 QString cs( charSet );
633 if ( charSet.isEmpty() ) {
634 QStringList lst = charSets( family );
635diff -ur qt-2.3.7-old/src/kernel/qfontdatabase.h qt-2.3.7/src/kernel/qfontdatabase.h
636 --- qt-2.3.7-old/src/kernel/qfontdatabase.h2004-07-23 15:22:56.000000000 +0200
637 +++ qt-2.3.7/src/kernel/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200
638@@ -59,6 +59,10 @@
639 class QDiskFont;
640 #endif
641
642+#if !defined( QT_WEAK_SYMBOL )
643+#define QT_WEAK_SYMBOL
644+#endif
645+
646 class QFontDatabasePrivate;
647
648 class Q_EXPORT QFontDatabase
649@@ -67,9 +71,16 @@
650 QFontDatabase();
651
652 QStringList families( bool onlyForLocale = TRUE ) const;
653+
654+
655 QValueList<int> pointSizes( const QString &family,
656 const QString &style = QString::null,
657 - const QString &charSet = QString::null );
658 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
659+private:
660+ QValueList<int> pointSizes_NonWeak( const QString &family,
661 + const QString &style,
662 + const QString &charSet );
663+public:
664 QStringList styles( const QString &family,
665 const QString &charSet = QString::null ) const;
666 QStringList charSets( const QString &familyName,
667diff -ur qt-2.3.7-old/src/kernel/qgfxtransformed_qws.cpp qt-2.3.7/src/kernel/qgfxtransformed_qws.cpp
668 --- qt-2.3.7-old/src/kernel/qgfxtransformed_qws.cpp2004-07-23 15:22:56.000000000 +0200
669 +++ qt-2.3.7/src/kernel/qgfxtransformed_qws.cpp2004-07-23 15:42:01.000000000 +0200
670@@ -671,11 +671,11 @@
671 inline int tx( int x, int y ) {
672 switch ( qt_trans_screen->transformation() ) {
673 case QTransformedScreen::Rot90:
674 - return y - xoffs + yoffs;
675 + return y - this->xoffs + this->yoffs;
676 case QTransformedScreen::Rot180:
677 - return (width - x - 1) - xoffs - xoffs;
678 + return (this->width - x - 1) - this->xoffs - this->xoffs;
679 case QTransformedScreen::Rot270:
680 - return (height - y - 1) - xoffs - yoffs;
681 + return (this->height - y - 1) - this->xoffs - this->yoffs;
682 default:
683 return x;
684 }
685@@ -683,11 +683,11 @@
686 inline int ty( int x, int y ) {
687 switch ( qt_trans_screen->transformation() ) {
688 case QTransformedScreen::Rot90:
689 - return (width - x - 1) - yoffs - xoffs;
690 + return (this->width - x - 1) - this->yoffs - this->xoffs;
691 case QTransformedScreen::Rot180:
692 - return (height - y - 1) - yoffs - yoffs;
693 + return (this->height - y - 1) - this->yoffs - this->yoffs;
694 case QTransformedScreen::Rot270:
695 - return x - yoffs + xoffs;
696 + return x - this->yoffs + this->xoffs;
697 default:
698 return y;
699 }
700@@ -715,23 +715,23 @@
701 template <const int depth, const int type>
702 void QGfxTransformedRaster<depth,type>::setSourceWidgetOffset(int x, int y)
703 {
704- if ( srcbits == buffer ) {
705+ if ( this->srcbits == this->buffer ) {
706 switch ( qt_trans_screen->transformation() ) {
707 case QTransformedScreen::Rot90:
708 - srcwidgetoffs = QPoint( y, width - x - srcwidth );
709 + this->srcwidgetoffs = QPoint( y, this->width - x - this->srcwidth );
710 break;
711 case QTransformedScreen::Rot180:
712 - srcwidgetoffs = QPoint( width - x - srcwidth, height - y - srcheight );
713 + this->srcwidgetoffs = QPoint( this->width - x - this->srcwidth, this->height - y - this->srcheight );
714 break;
715 case QTransformedScreen::Rot270:
716 - srcwidgetoffs = QPoint( height - y - srcheight, x );
717 + this->srcwidgetoffs = QPoint( this->height - y - this->srcheight, x );
718 break;
719 default:
720 - srcwidgetoffs = QPoint( x, y );
721 + this->srcwidgetoffs = QPoint( x, y );
722 break;
723 }
724 } else
725 -srcwidgetoffs = QPoint( x, y );
726 +this->srcwidgetoffs = QPoint( x, y );
727 }
728
729 template <const int depth, const int type>
730@@ -739,8 +739,8 @@
731 {
732 QT_TRANS_GFX_BASE<depth,type>::setSource(i);
733 QSize s = qt_screen->mapToDevice( QSize(i->width(), i->height()) );
734- srcwidth = s.width();
735- srcheight = s.height();
736+ this->srcwidth = s.width();
737+ this->srcheight = s.height();
738 }
739
740 template <const int depth, const int type>
741@@ -782,7 +782,7 @@
742 if ( w == 0 || h == 0 )
743 return;
744 QRect r( x, y, w, h );
745- if ( cbrush.style() == SolidPattern ) {
746+ if ( this->cbrush.style() == Qt::SolidPattern ) {
747 r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
748 r = r.normalize();
749 }
750@@ -797,7 +797,7 @@
751 // solution. The brush offset logic is complicated enough, so we don't
752 // fastpath patternedbrush.
753
754- if ( inDraw || cpen.style()==NoPen || patternedbrush ) {
755+ if ( inDraw || this->cpen.style()==Qt::NoPen || this->patternedbrush ) {
756 //slowpath
757 QT_TRANS_GFX_BASE<depth,type>::drawPolygon( a, w, idx, num );
758 } else {
759@@ -819,29 +819,29 @@
760 template <const int depth, const int type>
761 void QGfxTransformedRaster<depth,type>::processSpans( int n, QPoint* point, int* width )
762 {
763- if ( inDraw || patternedbrush && srcwidth != 0 && srcheight != 0 ) {
764+ if ( inDraw || this->patternedbrush && this->srcwidth != 0 && this->srcheight != 0 ) {
765 //in the patternedbrush case, we let blt do the transformation
766 // so we leave inDraw false.
767 - QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
768 +QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
769 } else {
770 inDraw = TRUE;
771 while (n--) {
772 if ( *width > 0 ) {
773 - int x=tx(point->x(),point->y())+xoffs;
774 - int y=ty(point->x(),point->y())+yoffs;
775 + int x=tx(point->x(),point->y())+this->xoffs;
776 + int y=ty(point->x(),point->y())+this->yoffs;
777
778 switch( qt_trans_screen->transformation() ) {
779 case QTransformedScreen::Rot90:
780 - vline( x, y-(*width-1), y );
781 + this->vline( x, y-(*width-1), y );
782 break;
783 case QTransformedScreen::Rot180:
784 - hline( x - (*width-1), x, y );
785 + this->hline( x - (*width-1), x, y );
786 break;
787 case QTransformedScreen::Rot270:
788 - vline( x, y, y+*width-1 );
789 + this->vline( x, y, y+*width-1 );
790 break;
791 default:
792 - hline( x, x+*width-1, y );
793 + this->hline( x, x+*width-1, y );
794 break;
795 }
796 }
797@@ -896,14 +896,14 @@
798 switch ( qt_trans_screen->transformation() ) {
799 case QTransformedScreen::Rot90:
800 rsx = sy;
801 - rsy = srcwidth - sx - w;
802 + rsy = this->srcwidth - sx - w;
803 break;
804 case QTransformedScreen::Rot180:
805 - rsx = srcwidth - sx - w;
806 - rsy = srcheight - sy - h;
807 + rsx = this->srcwidth - sx - w;
808 + rsy = this->srcheight - sy - h;
809 break;
810 case QTransformedScreen::Rot270:
811 - rsx = srcheight - sy - h;
812 + rsx = this->srcheight - sy - h;
813 rsy = sx;
814 break;
815 default:
816@@ -941,39 +941,39 @@
817 r.setCoords( tx(rx,ry), ty(rx,ry), tx(rx+w-1,ry+h-1), ty(rx+w-1,ry+h-1) );
818 r = r.normalize();
819
820- QPoint oldBrushOffs = brushoffs;
821+ QPoint oldBrushOffs = this->brushoffs;
822 int brx, bry;
823 switch ( qt_trans_screen->transformation() ) {
824 case QTransformedScreen::Rot90:
825 - brx = brushoffs.y();
826 - bry = srcwidth - brushoffs.x() - w;
827 + brx = this->brushoffs.y();
828 + bry = this->srcwidth - this->brushoffs.x() - w;
829 break;
830 case QTransformedScreen::Rot180:
831 - brx = srcwidth - brushoffs.x() - w;
832 - bry = srcheight - brushoffs.y() - h;
833 + brx = this->srcwidth - this->brushoffs.x() - w;
834 + bry = this->srcheight - this->brushoffs.y() - h;
835 break;
836 case QTransformedScreen::Rot270:
837 - brx = srcheight - brushoffs.y() - h;
838 - bry = brushoffs.x();
839 + brx = this->srcheight - this->brushoffs.y() - h;
840 + bry = this->brushoffs.x();
841 break;
842 default:
843 - brx = brushoffs.x();
844 - bry = brushoffs.y();
845 + brx = this->brushoffs.x();
846 + bry = this->brushoffs.y();
847 break;
848 }
849- brushoffs = QPoint( brx, bry );
850+ this->brushoffs = QPoint( brx, bry );
851
852- int oldsw = srcwidth;
853- int oldsh = srcheight;
854- QSize s = qt_screen->mapToDevice( QSize(srcwidth,srcheight) );
855- srcwidth = s.width();
856- srcheight = s.height();
857+ int oldsw = this->srcwidth;
858+ int oldsh = this->srcheight;
859+ QSize s = qt_screen->mapToDevice( QSize(this->srcwidth,this->srcheight) );
860+ this->srcwidth = s.width();
861+ this->srcheight = s.height();
862
863 QT_TRANS_GFX_BASE<depth,type>::tiledBlt( r.x(), r.y(), r.width(), r.height() );
864
865- srcwidth = oldsw;
866- srcheight = oldsh;
867- brushoffs = oldBrushOffs;
868+ this->srcwidth = oldsw;
869+ this->srcheight = oldsh;
870+ this->brushoffs = oldBrushOffs;
871 inDraw = FALSE;
872 }
873
874diff -ur qt-2.3.7-old/src/kernel/qgfxvfb_qws.cpp qt-2.3.7/src/kernel/qgfxvfb_qws.cpp
875 --- qt-2.3.7-old/src/kernel/qgfxvfb_qws.cpp2004-07-23 15:22:56.000000000 +0200
876 +++ qt-2.3.7/src/kernel/qgfxvfb_qws.cpp2004-07-23 15:42:01.000000000 +0200
877@@ -31,7 +31,6 @@
878 **********************************************************************/
879
880 #include "qgfxraster_qws.h"
881-
882 #ifndef QT_NO_QWS_VFB
883
884 #include <sys/ipc.h>
885@@ -140,8 +139,8 @@
886 void QGfxVFb<depth,type>::drawPoint( int x, int y )
887 {
888 QWSDisplay::grab( TRUE );
889- if ( is_screen_gfx )
890 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) );
891+ if ( this->is_screen_gfx )
892 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) );
893 QGfxRaster<depth,type>::drawPoint( x, y );
894 QWSDisplay::ungrab();
895 }
896@@ -150,8 +149,8 @@
897 void QGfxVFb<depth,type>::drawPoints( const QPointArray &pa,int x,int y )
898 {
899 QWSDisplay::grab( TRUE );
900- if ( is_screen_gfx )
901 -qvfb_screen->setDirty( clipbounds );
902+ if ( this->is_screen_gfx )
903 +qvfb_screen->setDirty( this->clipbounds );
904 QGfxRaster<depth,type>::drawPoints( pa, x, y );
905 QWSDisplay::ungrab();
906 }
907@@ -160,9 +159,9 @@
908 void QGfxVFb<depth,type>::drawLine( int x1,int y1,int x2,int y2 )
909 {
910 QWSDisplay::grab( TRUE );
911- if ( is_screen_gfx ) {
912+ if ( this->is_screen_gfx ) {
913 QRect r;
914 -r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
915 +r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
916 qvfb_screen->setDirty( r.normalize() );
917 }
918 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
919@@ -173,8 +172,8 @@
920 void QGfxVFb<depth,type>::fillRect( int x,int y,int w,int h )
921 {
922 QWSDisplay::grab( TRUE );
923- if ( is_screen_gfx )
924 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
925+ if ( this->is_screen_gfx )
926 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
927 QGfxRaster<depth,type>::fillRect( x, y, w, h );
928 QWSDisplay::ungrab();
929 }
930@@ -183,8 +182,8 @@
931 void QGfxVFb<depth,type>::drawPolyline( const QPointArray &pa,int x,int y )
932 {
933 QWSDisplay::grab( TRUE );
934- if ( is_screen_gfx )
935 -qvfb_screen->setDirty( clipbounds );
936+ if ( this->is_screen_gfx )
937 +qvfb_screen->setDirty( this->clipbounds );
938 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
939 QWSDisplay::ungrab();
940 }
941@@ -193,8 +192,8 @@
942 void QGfxVFb<depth,type>::drawPolygon( const QPointArray &pa,bool w,int x,int y )
943 {
944 QWSDisplay::grab( TRUE );
945- if ( is_screen_gfx )
946 -qvfb_screen->setDirty( clipbounds );
947+ if ( this->is_screen_gfx )
948 +qvfb_screen->setDirty( this->clipbounds );
949 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
950 QWSDisplay::ungrab();
951 }
952@@ -203,8 +202,8 @@
953 void QGfxVFb<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
954 {
955 QWSDisplay::grab( TRUE );
956- if ( is_screen_gfx )
957 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
958+ if ( this->is_screen_gfx )
959 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
960 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
961 QWSDisplay::ungrab();
962 }
963@@ -215,8 +214,8 @@
964 QWSDisplay::grab( TRUE );
965 int dy = sy - y;
966 int dx = sx - x;
967- if ( is_screen_gfx )
968 -qvfb_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
969+ if ( this->is_screen_gfx )
970 +qvfb_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
971 w+abs(dx), h+abs(dy)) );
972 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
973 QWSDisplay::ungrab();
974@@ -227,8 +226,8 @@
975 void QGfxVFb<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
976 {
977 QWSDisplay::grab( TRUE );
978- if ( is_screen_gfx )
979 -qvfb_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) );
980+ if ( this->is_screen_gfx )
981 +qvfb_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) );
982 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
983 QWSDisplay::ungrab();
984 }
985@@ -238,8 +237,8 @@
986 void QGfxVFb<depth,type>::tiledBlt( int x,int y,int w,int h )
987 {
988 QWSDisplay::grab( TRUE );
989- if ( is_screen_gfx )
990 -qvfb_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) );
991+ if ( this->is_screen_gfx )
992 +qvfb_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) );
993 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
994 QWSDisplay::ungrab();
995 }
996diff -ur qt-2.3.7-old/src/kernel/qkeyboard_qws.cpp qt-2.3.7/src/kernel/qkeyboard_qws.cpp
997 --- qt-2.3.7-old/src/kernel/qkeyboard_qws.cpp2004-07-23 15:22:56.000000000 +0200
998 +++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp2004-07-23 15:33:46.000000000 +0200
999@@ -238,7 +238,7 @@
1000 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
1001 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
1002 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
1003 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
1004+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
1005 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
1006 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
1007 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
1008diff -ur qt-2.3.7-old/src/kernel/qwindowsystem_qws.cpp qt-2.3.7/src/kernel/qwindowsystem_qws.cpp
1009 --- qt-2.3.7-old/src/kernel/qwindowsystem_qws.cpp2004-07-23 15:22:56.000000000 +0200
1010 +++ qt-2.3.7/src/kernel/qwindowsystem_qws.cpp2004-07-23 15:33:47.000000000 +0200
1011@@ -844,6 +844,18 @@
1012 {
1013 }
1014
1015+static void catchSegvSignal( int )
1016+{
1017+#ifndef QT_NO_QWS_KEYBOARD
1018+ if ( qwsServer )
1019 +qwsServer->closeKeyboard();
1020+#endif
1021+ QWSServer::closedown();
1022+ fprintf(stderr, "Segmentation fault.\n");
1023+ exit(1);
1024+}
1025+
1026+
1027 /*!
1028 \class QWSServer qwindowsystem_qws.h
1029 \brief Server-specific functionality in Qt/Embedded
1030@@ -936,6 +948,7 @@
1031 }
1032
1033 signal(SIGPIPE, ignoreSignal); //we get it when we read
1034+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
1035 #endif
1036 focusw = 0;
1037 mouseGrabber = 0;
1038diff -ur qt-2.3.7-old/src/tools/qcstring.h qt-2.3.7/src/tools/qcstring.h
1039 --- qt-2.3.7-old/src/tools/qcstring.h2004-07-23 15:22:56.000000000 +0200
1040 +++ qt-2.3.7/src/tools/qcstring.h2004-07-23 15:42:01.000000000 +0200
1041@@ -119,7 +119,7 @@
1042 // We want to keep source compatibility for 2.x
1043 // ### TODO for 4.0: completely remove these and the cstr* functions
1044
1045-#if !defined(QT_GENUINE_STR)
1046+#if 0
1047
1048 #undefstrlen
1049 #define strlen qstrlen
1050diff -ur qt-2.3.7-old/src/tools/qglobal.h qt-2.3.7/src/tools/qglobal.h
1051 --- qt-2.3.7-old/src/tools/qglobal.h2004-07-23 15:22:56.000000000 +0200
1052 +++ qt-2.3.7/src/tools/qglobal.h2004-07-23 15:42:01.000000000 +0200
1053@@ -207,8 +207,16 @@
1054 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
1055 #define Q_FP_CCAST_BROKEN
1056 #endif
1057+/* ARM gcc pads structs to 32 bits, even when they contain a single
1058+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
1059+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
1060+ members of a packed struct. (Pointers are OK, because then you
1061+ supposedly know what you are doing.) */
1062 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
1063 #define Q_PACKED __attribute__ ((packed))
1064+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
1065+# define Q_NO_PACKED_REFERENCE
1066+# endif
1067 #endif
1068 #elif defined(__xlC__)
1069 #define _CC_XLC_
1070diff -ur qt-2.3.7-old/src/tools/qmodules.h qt-2.3.7/src/tools/qmodules.h
1071 --- qt-2.3.7-old/src/tools/qmodules.h2004-07-23 15:22:56.000000000 +0200
1072 +++ qt-2.3.7/src/tools/qmodules.h2004-07-23 16:03:09.000000000 +0200
1073@@ -1,14 +1,11 @@
1074-#ifndef QT_H
1075-#endif // QT_H
1076-
1077+// These modules are licensed to you
1078 #define QT_MODULE_TOOLS
1079 #define QT_MODULE_KERNEL
1080 #define QT_MODULE_WIDGETS
1081 #define QT_MODULE_DIALOGS
1082-
1083 #define QT_MODULE_ICONVIEW
1084 #define QT_MODULE_WORKSPACE
1085-#define QT_MODULE_TABLE
1086+#define QT_MODULE_NETWORK
1087 #define QT_MODULE_CANVAS
1088+#define QT_MODULE_TABLE
1089 #define QT_MODULE_XML
1090-#define QT_MODULE_NETWORK
1091diff -ur qt-2.3.7-old/src/tools/qsortedlist.h qt-2.3.7/src/tools/qsortedlist.h
1092 --- qt-2.3.7-old/src/tools/qsortedlist.h2004-07-23 15:22:56.000000000 +0200
1093 +++ qt-2.3.7/src/tools/qsortedlist.h2004-07-23 15:42:01.000000000 +0200
1094@@ -48,7 +48,7 @@
1095 public:
1096 QSortedList() {}
1097 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
1098- ~QSortedList() { clear(); }
1099+ ~QSortedList() { this->clear(); }
1100 QSortedList<type> &operator=(const QSortedList<type> &l)
1101 { return (QSortedList<type>&)QList<type>::operator=(l); }
1102
1103diff -ur qt-2.3.7-old/src/tools/qstring.cpp qt-2.3.7/src/tools/qstring.cpp
1104 --- qt-2.3.7-old/src/tools/qstring.cpp2004-07-23 15:22:56.000000000 +0200
1105 +++ qt-2.3.7/src/tools/qstring.cpp2004-07-23 15:44:25.000000000 +0200
1106@@ -14469,7 +14469,11 @@
1107 return qt_winQString2MB( *this );
1108 #endif
1109 #ifdef _WS_QWS_
1110- return utf8(); // ##### if there is ANY 8 bit format supported?
1111+ QTextCodec* codec = QTextCodec::codecForLocale();
1112+ return codec
1113 + ? codec->fromUnicode(*this)
1114 + : utf8();
1115+ //return latin1(); // ##### if there is ANY 8 bit format supported?
1116 #endif
1117 #endif
1118 }
1119@@ -14515,7 +14519,12 @@
1120 return qt_winMB2QString( local8Bit );
1121 #endif
1122 #ifdef _WS_QWS_
1123- return fromUtf8(local8Bit,len);
1124+ QTextCodec* codec = QTextCodec::codecForLocale();
1125+ if( len < 0) len = qstrlen(local8Bit);
1126+ return codec
1127 + ? codec->toUnicode(local8Bit, len)
1128 + : QString::fromUtf8(local8Bit,len);
1129+// return fromLatin1(local8Bit,len);
1130 #endif
1131 #endif // QT_NO_TEXTCODEC
1132 }
1133diff -ur qt-2.3.7-old/src/tools/qstring.h qt-2.3.7/src/tools/qstring.h
1134 --- qt-2.3.7-old/src/tools/qstring.h2004-07-23 15:22:56.000000000 +0200
1135 +++ qt-2.3.7/src/tools/qstring.h2004-07-23 15:42:01.000000000 +0200
1136@@ -163,8 +163,16 @@
1137 bool isLetterOrNumber() const;
1138 bool isDigit() const;
1139
1140+
1141+#ifdef Q_NO_PACKED_REFERENCE
1142+ uchar& cell() { return *(&cl); }
1143+ uchar& row() { return *(&rw); }
1144+#else
1145 uchar& cell() { return cl; }
1146- uchar& row() { return rw; }
1147+ uchar& row() { return rw; }
1148+#endif
1149+
1150+
1151 uchar cell() const { return cl; }
1152 uchar row() const { return rw; }
1153
1154diff -ur qt-2.3.7-old/src/widgets/qcommonstyle.cpp qt-2.3.7/src/widgets/qcommonstyle.cpp
1155 --- qt-2.3.7-old/src/widgets/qcommonstyle.cpp2004-07-23 15:22:56.000000000 +0200
1156 +++ qt-2.3.7/src/widgets/qcommonstyle.cpp2004-07-23 15:38:13.000000000 +0200
1157@@ -566,7 +566,7 @@
1158 bool enabled, bool active )
1159 {
1160 #ifndef QT_NO_MENUBAR
1161-#ifndef QT_NO_STYLE_SGI
1162+#if 1 // #ifndef QT_NO_STYLE_SGI
1163 if (draw_menu_bar_impl != 0) {
1164 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
1165 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
1166diff -ur qt-2.3.7-old/src/widgets/qlistview.cpp qt-2.3.7/src/widgets/qlistview.cpp
1167 --- qt-2.3.7-old/src/widgets/qlistview.cpp2004-07-23 15:22:56.000000000 +0200
1168 +++ qt-2.3.7/src/widgets/qlistview.cpp2004-07-23 15:38:13.000000000 +0200
1169@@ -4968,9 +4968,9 @@
1170 l = l->childItem ? l->childItem : l->siblingItem;
1171
1172 if ( l && l->height() )
1173 -s.setHeight( s.height() + 10 * l->height() );
1174- else
1175 -s.setHeight( s.height() + 140 );
1176 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
1177+ else // ^v much too big for handhelds
1178 +s.setHeight( s.height() + 30 /*140*/ );
1179
1180 if ( s.width() > s.height() * 3 )
1181 s.setHeight( s.width() / 3 );
1182diff -ur qt-2.3.7-old/src/widgets/qscrollview.cpp qt-2.3.7/src/widgets/qscrollview.cpp
1183 --- qt-2.3.7-old/src/widgets/qscrollview.cpp2004-07-23 19:25:18.000000000 +0200
1184 +++ qt-2.3.7/src/widgets/qscrollview.cpp2004-07-23 19:23:10.000000000 +0200
1185@@ -526,15 +526,16 @@
1186 this, SLOT( doDragAutoScroll() ) );
1187 #endif
1188
1189- connect( &d->hbar, SIGNAL( valueChanged( int ) ),
1190 -this, SLOT( hslide( int ) ) );
1191- connect( &d->vbar, SIGNAL( valueChanged( int ) ),
1192 -this, SLOT( vslide( int ) ) );
1193+ connect( &d->hbar, SIGNAL( valueChanged(int) ),
1194 +this, SLOT( hslide(int) ) );
1195+ connect( &d->vbar, SIGNAL( valueChanged(int) ),
1196 +this, SLOT( vslide(int) ) );
1197 d->viewport.installEventFilter( this );
1198
1199 setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
1200 setLineWidth( style().defaultFrameWidth() );
1201 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
1202+
1203 }
1204
1205
1206@@ -683,6 +684,11 @@
1207 h-tmarg-bmarg - (showh ? hsbExt : 0) );
1208 }
1209
1210+/*
1211+ The surrounding environment (or application, if there is no
1212+ environment, may set this. Requires Qt >= 2.3.8.
1213+*/
1214+bool qt_left_hand_scrollbars = FALSE;
1215
1216 /*!
1217 Updates scrollbars - all possibilities considered. You should never
1218@@ -786,45 +792,50 @@
1219
1220 // Position the scrollbars, viewport, and corner widget.
1221 int bottom;
1222+ int xoffset = ( qt_left_hand_scrollbars && ( showv || cornerWidget() ) ) ? vsbExt : 0;
1223+ int xpos = qt_left_hand_scrollbars ? 0 : w-vsbExt;
1224+ xpos = (style() == WindowsStyle) && qt_left_hand_scrollbars ? xpos + fw : xpos - fw;
1225+ int ypos = tmarg;
1226+ ypos = (style() == WindowsStyle) ? ypos +fw : 0;
1227 if ( showh ) {
1228 int right = ( showv || cornerWidget() ) ? w-vsbExt : w;
1229 if ( style() == WindowsStyle )
1230- setHBarGeometry(d->hbar, fw, h-hsbExt-fw,
1231+ setHBarGeometry(d->hbar, fw + xoffset , h-hsbExt-fw,
1232 right-fw-fw, hsbExt );
1233 else
1234- setHBarGeometry(d->hbar, 0, h-hsbExt, right,
1235+ setHBarGeometry(d->hbar, 0+ xoffset, h-hsbExt, right,
1236 hsbExt );
1237 bottom=h-hsbExt;
1238 } else {
1239 bottom=h;
1240 }
1241 if ( showv ) {
1242 -clipper()->setGeometry( lmarg, tmarg,
1243 +clipper()->setGeometry( lmarg + xoffset, tmarg,
1244 w-vsbExt-lmarg-rmarg,
1245 bottom-tmarg-bmarg );
1246 d->viewportResized( w-vsbExt-lmarg-rmarg, bottom-tmarg-bmarg );
1247 if ( style() == WindowsStyle )
1248 - changeFrameRect(QRect(0, 0, w, h) );
1249 + changeFrameRect(QRect(xoffset, 0, w, h) );
1250 else
1251 - changeFrameRect(QRect(0, 0, w-vsbExt, bottom));
1252 + changeFrameRect(QRect(xoffset, 0, w-vsbExt, bottom));
1253 if (cornerWidget()) {
1254 if ( style() == WindowsStyle )
1255- setVBarGeometry( d->vbar, w-vsbExt-fw,
1256- fw, vsbExt,
1257- h-hsbExt-fw-fw );
1258+ setVBarGeometry( d->vbar, xpos,
1259+ ypos, vsbExt,
1260+ bottom-fw-ypos );
1261 else
1262- setVBarGeometry( d->vbar, w-vsbExt, 0,
1263+ setVBarGeometry( d->vbar, xpos, ypos,
1264 vsbExt,
1265- h-hsbExt );
1266+ bottom-ypos );
1267 }
1268 else {
1269 if ( style() == WindowsStyle )
1270- setVBarGeometry( d->vbar, w-vsbExt-fw,
1271- fw, vsbExt,
1272- bottom-fw-fw );
1273+ setVBarGeometry( d->vbar, xpos,
1274+ ypos, vsbExt,
1275+ bottom-fw-ypos );
1276 else
1277- setVBarGeometry( d->vbar, w-vsbExt, 0,
1278- vsbExt, bottom );
1279+ setVBarGeometry( d->vbar, xpos, ypos,
1280+ vsbExt, bottom-ypos );
1281 }
1282 } else {
1283 if ( style() == WindowsStyle )
1284@@ -837,12 +848,12 @@
1285 }
1286 if ( d->corner ) {
1287 if ( style() == WindowsStyle )
1288- d->corner->setGeometry( w-vsbExt-fw,
1289+ d->corner->setGeometry( xpos,
1290 h-hsbExt-fw,
1291 vsbExt,
1292 hsbExt );
1293 else
1294- d->corner->setGeometry( w-vsbExt,
1295+ d->corner->setGeometry( xpos,
1296 h-hsbExt,
1297 vsbExt,
1298 hsbExt );
1299@@ -1266,6 +1277,9 @@
1300 case QEvent::LayoutHint:
1301 d->autoResizeHint(this);
1302 break;
1303 +case QEvent::WindowActivate:
1304 +case QEvent::WindowDeactivate:
1305 + return TRUE;
1306 default:
1307 break;
1308 }
1309@@ -1675,7 +1689,7 @@
1310 }
1311
1312 /*!
1313- Scrolls the content by \a x to the left and \a y upwards.
1314+ Scrolls the content by \a dx to the left and \a dy upwards.
1315 */
1316 void QScrollView::scrollBy( int dx, int dy )
1317 {
1318diff -ur qt-2.3.7-old/src/widgets/qtoolbutton.cpp qt-2.3.7/src/widgets/qtoolbutton.cpp
1319 --- qt-2.3.7-old/src/widgets/qtoolbutton.cpp2004-07-23 15:22:56.000000000 +0200
1320 +++ qt-2.3.7/src/widgets/qtoolbutton.cpp2004-07-23 15:38:13.000000000 +0200
1321@@ -230,7 +230,7 @@
1322 else
1323 QToolTip::add( this, textLabel );
1324 }
1325 -#endif
1326+#endif
1327 }
1328
1329
1330@@ -324,12 +324,12 @@
1331 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
1332 w = pm.width();
1333 h = pm.height();
1334 -if ( w < 32 )
1335 - w = 32;
1336 -if ( h < 32 )
1337 - h = 32;
1338 +if ( w < 24 )
1339 + w = 24;
1340 +if ( h < 24 )
1341 + h = 24;
1342 } else {
1343 -w = h = 16;
1344 +w = h = 14;
1345 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
1346 w = pm.width();
1347 h = pm.height();
1348diff -ur qt-2.3.7_old/src/kernel/qgfxvnc_qws.cpp qt-2.3.7/src/kernel/qgfxvnc_qws.cpp
1349 --- qt-2.3.7_old/src/kernel/qgfxvnc_qws.cpp2004-09-10 21:08:04.000000000 +0200
1350 +++ qt-2.3.7/src/kernel/qgfxvnc_qws.cpp2004-09-10 21:10:54.000000000 +0200
1351@@ -971,7 +971,7 @@
1352 void QGfxVNC<depth,type>::drawPoint( int x, int y )
1353 {
1354 QWSDisplay::grab( TRUE );
1355- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) & clipbounds );
1356+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) & this->clipbounds );
1357 QGfxRaster<depth,type>::drawPoint( x, y );
1358 QWSDisplay::ungrab();
1359 }
1360@@ -981,8 +981,8 @@
1361 {
1362 QWSDisplay::grab( TRUE );
1363 QRect r = pa.boundingRect();
1364- r.moveBy( xoffs, yoffs );
1365- qvnc_screen->setDirty( r & clipbounds );
1366+ r.moveBy( this->xoffs, this->yoffs );
1367+ qvnc_screen->setDirty( r & this->clipbounds );
1368 QGfxRaster<depth,type>::drawPoints( pa, x, y );
1369 QWSDisplay::ungrab();
1370 }
1371@@ -992,9 +992,9 @@
1372 {
1373 QWSDisplay::grab( TRUE );
1374 QRect r;
1375- r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
1376+ r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
1377 r = r.normalize();
1378- qvnc_screen->setDirty( r & clipbounds );
1379+ qvnc_screen->setDirty( r & this->clipbounds );
1380 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
1381 QWSDisplay::ungrab();
1382 }
1383@@ -1003,7 +1003,7 @@
1384 void QGfxVNC<depth,type>::fillRect( int x,int y,int w,int h )
1385 {
1386 QWSDisplay::grab( TRUE );
1387- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) & clipbounds );
1388+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) & this->clipbounds );
1389 QGfxRaster<depth,type>::fillRect( x, y, w, h );
1390 QWSDisplay::ungrab();
1391 }
1392@@ -1013,8 +1013,8 @@
1393 {
1394 QWSDisplay::grab( TRUE );
1395 QRect r = pa.boundingRect();
1396- r.moveBy( xoffs, yoffs );
1397- qvnc_screen->setDirty( r & clipbounds );
1398+ r.moveBy( this->xoffs, this->yoffs );
1399+ qvnc_screen->setDirty( r & this->clipbounds );
1400 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
1401 QWSDisplay::ungrab();
1402 }
1403@@ -1024,8 +1024,8 @@
1404 {
1405 QWSDisplay::grab( TRUE );
1406 QRect r = pa.boundingRect();
1407- r.moveBy( xoffs, yoffs );
1408- qvnc_screen->setDirty( r & clipbounds );
1409+ r.moveBy( this->xoffs, this->yoffs );
1410+ qvnc_screen->setDirty( r & this->clipbounds );
1411 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
1412 QWSDisplay::ungrab();
1413 }
1414@@ -1034,7 +1034,7 @@
1415 void QGfxVNC<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
1416 {
1417 QWSDisplay::grab( TRUE );
1418- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) & clipbounds );
1419+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) & this->clipbounds );
1420 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
1421 QWSDisplay::ungrab();
1422 }
1423@@ -1045,8 +1045,8 @@
1424 QWSDisplay::grab( TRUE );
1425 int dy = sy - y;
1426 int dx = sx - x;
1427- qvnc_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
1428 - w+abs(dx), h+abs(dy)) & clipbounds );
1429+ qvnc_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
1430 + w+abs(dx), h+abs(dy)) & this->clipbounds );
1431 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
1432 QWSDisplay::ungrab();
1433 }
1434@@ -1056,7 +1056,7 @@
1435 void QGfxVNC<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
1436 {
1437 QWSDisplay::grab( TRUE );
1438- qvnc_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) & clipbounds );
1439+ qvnc_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) & this->clipbounds );
1440 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
1441 QWSDisplay::ungrab();
1442 }
1443@@ -1066,7 +1066,7 @@
1444 void QGfxVNC<depth,type>::tiledBlt( int x,int y,int w,int h )
1445 {
1446 QWSDisplay::grab( TRUE );
1447- qvnc_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) & clipbounds );
1448+ qvnc_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) & this->clipbounds );
1449 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
1450 QWSDisplay::ungrab();
1451 }
1452diff -ur qt-2.3.7_old/src/kernel/qwsdecoration_qws.h qt-2.3.7/src/kernel/qwsdecoration_qws.h
1453 --- qt-2.3.7_old/src/kernel/qwsdecoration_qws.h2003-07-17 03:20:26.000000000 +0200
1454 +++ qt-2.3.7/src/kernel/qwsdecoration_qws.h2004-09-13 15:44:13.000000000 +0200
1455@@ -50,7 +50,7 @@
1456 enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
1457 TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
1458 Close=11, Minimize=12, Maximize=13, Normalize=14,
1459 - Menu=15, LastRegion=Menu };
1460 + Menu=15, LastRegion=Menu, UserDefined = 100 };
1461
1462 virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
1463 virtual void close( QWidget * );
diff --git a/qt/qt-2.3.7.patch/qte237-allowoverride.patch b/qt/qt-2.3.7.patch/qte237-allowoverride.patch
deleted file mode 100644
index e0629f6..0000000
--- a/qt/qt-2.3.7.patch/qte237-allowoverride.patch
+++ b/dev/null
@@ -1,229 +0,0 @@
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.7-old/src/kernel/qapplication.cpp qt-2.3.7/src/kernel/qapplication.cpp
15 --- qt-2.3.7-old/src/kernel/qapplication.cpp2004-07-23 15:22:56.000000000 +0200
16 +++ qt-2.3.7/src/kernel/qapplication.cpp2004-07-23 15:25:42.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@@ -933,11 +935,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@@ -958,6 +965,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@@ -1184,13 +1193,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@@ -1275,6 +1301,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 ) {
99diff -ur qt-2.3.7-old/src/kernel/qapplication.h qt-2.3.7/src/kernel/qapplication.h
100 --- qt-2.3.7-old/src/kernel/qapplication.h2004-07-23 15:22:56.000000000 +0200
101 +++ qt-2.3.7/src/kernel/qapplication.h2004-07-23 15:25:42.000000000 +0200
102@@ -61,6 +61,10 @@
103 class QSemaphore;
104 #endif
105
106+#if !defined( QT_WEAK_SYMBOL )
107+#define QT_WEAK_SYMBOL
108+#endif
109+
110 // REMOVE IN 3.0 (just here for moc source compatibility)
111 #define QNonBaseApplication QApplication
112
113@@ -85,7 +89,10 @@
114
115 #ifndef QT_NO_STYLE
116 static QStyle &style();
117 - static void setStyle( QStyle* );
118 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
119+private:
120 +static void setStyle_NonWeak( QStyle* );
121+public:
122 #endif
123 #if 1/* OBSOLETE */
124 enum ColorMode { NormalColors, CustomColors };
125@@ -106,11 +113,19 @@
126 #ifndef QT_NO_PALETTE
127 static QPalette palette( const QWidget* = 0 );
128 static void setPalette( const QPalette &, bool informWidgets=FALSE,
129 + const char* className = 0 ) QT_WEAK_SYMBOL;
130+private:
131 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
132 const char* className = 0 );
133+public:
134 #endif
135 static QFont font( const QWidget* = 0 );
136 static void setFont( const QFont &, bool informWidgets=FALSE,
137 + const char* className = 0 ) QT_WEAK_SYMBOL;
138+private:
139 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
140 const char* className = 0 );
141 +public:
142 static QFontMetrics fontMetrics();
143
144 QWidget *mainWidget() const;
145@@ -207,7 +222,10 @@
146 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
147 #ifndef QT_NO_QWS_MANAGER
148 static QWSDecoration &qwsDecoration();
149- static void qwsSetDecoration( QWSDecoration *);
150+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
151+private:
152+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
153+public:
154 #endif
155 #endif
156
157diff -ur qt-2.3.7-old/src/kernel/qapplication_qws.cpp qt-2.3.7/src/kernel/qapplication_qws.cpp
158 --- qt-2.3.7-old/src/kernel/qapplication_qws.cpp2004-07-23 15:22:56.000000000 +0200
159 +++ qt-2.3.7/src/kernel/qapplication_qws.cpp2004-07-23 15:25:42.000000000 +0200
160@@ -2804,6 +2804,11 @@
161 */
162 void QApplication::qwsSetDecoration( QWSDecoration *d )
163 {
164 +qwsSetDecoration_NonWeak ( d );
165+}
166+
167+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
168+{
169 if ( d ) {
170 delete qws_decoration;
171 qws_decoration = d;
172diff -ur qt-2.3.7-old/src/kernel/qfontdatabase.cpp qt-2.3.7/src/kernel/qfontdatabase.cpp
173 --- qt-2.3.7-old/src/kernel/qfontdatabase.cpp2004-07-23 15:22:56.000000000 +0200
174 +++ qt-2.3.7/src/kernel/qfontdatabase.cpp2004-07-23 15:25:42.000000000 +0200
175@@ -35,6 +35,8 @@
176 **
177 **********************************************************************/
178
179+#define QT_WEAK_SYMBOL __attribute__(( weak ))
180+
181 #include "qfontdatabase.h"
182
183 #ifndef QT_NO_FONTDATABASE
184@@ -2424,6 +2426,13 @@
185 const QString &style,
186 const QString &charSet )
187 {
188 +return pointSizes_NonWeak ( family, style, charSet );
189+}
190+
191+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
192+ const QString &style,
193+ const QString &charSet )
194+{
195 QString cs( charSet );
196 if ( charSet.isEmpty() ) {
197 QStringList lst = charSets( family );
198diff -ur qt-2.3.7-old/src/kernel/qfontdatabase.h qt-2.3.7/src/kernel/qfontdatabase.h
199 --- qt-2.3.7-old/src/kernel/qfontdatabase.h2004-07-23 15:22:56.000000000 +0200
200 +++ qt-2.3.7/src/kernel/qfontdatabase.h2004-07-23 15:25:42.000000000 +0200
201@@ -59,6 +59,10 @@
202 class QDiskFont;
203 #endif
204
205+#if !defined( QT_WEAK_SYMBOL )
206+#define QT_WEAK_SYMBOL
207+#endif
208+
209 class QFontDatabasePrivate;
210
211 class Q_EXPORT QFontDatabase
212@@ -67,9 +71,16 @@
213 QFontDatabase();
214
215 QStringList families( bool onlyForLocale = TRUE ) const;
216+
217+
218 QValueList<int> pointSizes( const QString &family,
219 const QString &style = QString::null,
220 - const QString &charSet = QString::null );
221 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
222+private:
223+ QValueList<int> pointSizes_NonWeak( const QString &family,
224 + const QString &style,
225 + const QString &charSet );
226+public:
227 QStringList styles( const QString &family,
228 const QString &charSet = QString::null ) const;
229 QStringList charSets( const QString &familyName,
diff --git a/qt/qt-2.3.7.patch/qte237-encoding.patch b/qt/qt-2.3.7.patch/qte237-encoding.patch
deleted file mode 100644
index c2f5c08..0000000
--- a/qt/qt-2.3.7.patch/qte237-encoding.patch
+++ b/dev/null
@@ -1,49 +0,0 @@
1German umlaute quite likely french, italian, spanish did
2not work due QFile::[decode,encode]Name did call QString
3local8Bit,fromLocal8Bit which plainly tried to use utf8
4encoding even if not useful. So a filename got changed
5and QFileInfo recognized the file not beeing present anymore...
6which lead to files not be shown.
7Also with Year-Names problem exists as the base system sent
8it encoded upstream.
9
10If you want to have UTF-8 encoding use LC_CTYPE as always and
11QTextCodec::codecForLocale will use the right UTF-8 encoding.
12
13As fallback the old behaviour was preserved
14
15
16
17
18
19
20
21 --- qt-2.3.7-old/src/tools/qstring.cpp2004-07-23 14:33:02.000000000 +0200
22 +++ qt-2.3.7/src/tools/qstring.cpp2004-07-23 14:32:31.000000000 +0200
23@@ -14469,7 +14469,11 @@
24 return qt_winQString2MB( *this );
25 #endif
26 #ifdef _WS_QWS_
27- return utf8(); // ##### if there is ANY 8 bit format supported?
28+ QTextCodec* codec = QTextCodec::codecForLocale();
29+ return codec
30 + ? codec->fromUnicode(*this)
31 + : utf8();
32+ //return latin1(); // ##### if there is ANY 8 bit format supported?
33 #endif
34 #endif
35 }
36@@ -14515,7 +14519,12 @@
37 return qt_winMB2QString( local8Bit );
38 #endif
39 #ifdef _WS_QWS_
40- return fromUtf8(local8Bit,len);
41+ QTextCodec* codec = QTextCodec::codecForLocale();
42+ if( len < 0) len = qstrlen(local8Bit);
43+ return codec
44 + ? codec->toUnicode(local8Bit, len)
45 + : QString::fromUtf8(local8Bit,len);
46+// return fromLatin1(local8Bit,len);
47 #endif
48 #endif // QT_NO_TEXTCODEC
49 }
diff --git a/qt/qt-2.3.7.patch/qte237-g++-aslinker.patch b/qt/qt-2.3.7.patch/qte237-g++-aslinker.patch
deleted file mode 100644
index 1ae72e9..0000000
--- a/qt/qt-2.3.7.patch/qte237-g++-aslinker.patch
+++ b/dev/null
@@ -1,161 +0,0 @@
1GCC3 requires libstdc++ for virtual all C++ application
2linking with gcc would trigger unresolved symbols like
3new, delete, pure_virtual etc.
4
5This is the safe one which works with gcc2 and gcc3. If you do
6not want the stdc++ dependency link with gcc and add -lsupc++ to the
7library dependency
8
9
10
11
12
13
14
15
16
17
18diff -ur qt-2.3.7-old/configs/linux-generic-g++-shared qt-2.3.7/configs/linux-generic-g++-shared
19 --- qt-2.3.7-old/configs/linux-generic-g++-shared2004-07-23 15:22:56.000000000 +0200
20 +++ qt-2.3.7/configs/linux-generic-g++-shared2004-07-23 15:23:12.000000000 +0200
21@@ -36,7 +36,7 @@
22 SYSCONF_LIBS_YACC=
23
24 # Linking applications
25 -SYSCONF_LINK = gcc
26 +SYSCONF_LINK = g++
27 SYSCONF_LFLAGS =
28 SYSCONF_LIBS =
29
30diff -ur qt-2.3.7-old/configs/linux-generic-g++-shared-debug qt-2.3.7/configs/linux-generic-g++-shared-debug
31 --- qt-2.3.7-old/configs/linux-generic-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
32 +++ qt-2.3.7/configs/linux-generic-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
33@@ -36,7 +36,7 @@
34 SYSCONF_LIBS_YACC=
35
36 # Linking applications
37 -SYSCONF_LINK = gcc
38 +SYSCONF_LINK = g++
39 SYSCONF_LFLAGS =
40 SYSCONF_LIBS =
41
42diff -ur qt-2.3.7-old/configs/linux-generic-g++-static qt-2.3.7/configs/linux-generic-g++-static
43 --- qt-2.3.7-old/configs/linux-generic-g++-static2004-07-23 15:22:56.000000000 +0200
44 +++ qt-2.3.7/configs/linux-generic-g++-static2004-07-23 15:23:12.000000000 +0200
45@@ -36,7 +36,7 @@
46 SYSCONF_LIBS_YACC=
47
48 # Linking applications
49 -SYSCONF_LINK = gcc
50 +SYSCONF_LINK = g++
51 SYSCONF_LFLAGS =
52 SYSCONF_LIBS =
53
54diff -ur qt-2.3.7-old/configs/linux-generic-g++-static-debug qt-2.3.7/configs/linux-generic-g++-static-debug
55 --- qt-2.3.7-old/configs/linux-generic-g++-static-debug2004-07-23 15:22:56.000000000 +0200
56 +++ qt-2.3.7/configs/linux-generic-g++-static-debug2004-07-23 15:23:12.000000000 +0200
57@@ -36,7 +36,7 @@
58 SYSCONF_LIBS_YACC=
59
60 # Linking applications
61 -SYSCONF_LINK = gcc
62 +SYSCONF_LINK = g++
63 SYSCONF_LFLAGS =
64 SYSCONF_LIBS =
65
66diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-shared qt-2.3.7/configs/linux-generic_rtti-g++-shared
67 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-shared2004-07-23 15:22:56.000000000 +0200
68 +++ qt-2.3.7/configs/linux-generic_rtti-g++-shared2004-07-23 15:23:12.000000000 +0200
69@@ -36,7 +36,7 @@
70 SYSCONF_LIBS_YACC=
71
72 # Linking applications
73 -SYSCONF_LINK = gcc
74 +SYSCONF_LINK = g++
75 SYSCONF_LFLAGS =
76 SYSCONF_LIBS =
77
78diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-shared-debug qt-2.3.7/configs/linux-generic_rtti-g++-shared-debug
79 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
80 +++ qt-2.3.7/configs/linux-generic_rtti-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
81@@ -36,7 +36,7 @@
82 SYSCONF_LIBS_YACC=
83
84 # Linking applications
85 -SYSCONF_LINK = gcc
86 +SYSCONF_LINK = g++
87 SYSCONF_LFLAGS =
88 SYSCONF_LIBS =
89
90diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-static qt-2.3.7/configs/linux-generic_rtti-g++-static
91 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-static2004-07-23 15:22:56.000000000 +0200
92 +++ qt-2.3.7/configs/linux-generic_rtti-g++-static2004-07-23 15:23:12.000000000 +0200
93@@ -36,7 +36,7 @@
94 SYSCONF_LIBS_YACC=
95
96 # Linking applications
97 -SYSCONF_LINK = gcc
98 +SYSCONF_LINK = g++
99 SYSCONF_LFLAGS =
100 SYSCONF_LIBS =
101
102diff -ur qt-2.3.7-old/configs/linux-generic_rtti-g++-static-debug qt-2.3.7/configs/linux-generic_rtti-g++-static-debug
103 --- qt-2.3.7-old/configs/linux-generic_rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200
104 +++ qt-2.3.7/configs/linux-generic_rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
105@@ -36,7 +36,7 @@
106 SYSCONF_LIBS_YACC=
107
108 # Linking applications
109 -SYSCONF_LINK = gcc
110 +SYSCONF_LINK = g++
111 SYSCONF_LFLAGS =
112 SYSCONF_LIBS =
113
114diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-shared qt-2.3.7/configs/linux-x86rtti-g++-shared
115 --- qt-2.3.7-old/configs/linux-x86rtti-g++-shared2004-07-23 15:22:56.000000000 +0200
116 +++ qt-2.3.7/configs/linux-x86rtti-g++-shared2004-07-23 15:23:12.000000000 +0200
117@@ -36,7 +36,7 @@
118 SYSCONF_LIBS_YACC=
119
120 # Linking applications
121 -SYSCONF_LINK = gcc
122 +SYSCONF_LINK = g++
123 SYSCONF_LFLAGS =
124 SYSCONF_LIBS = -lm
125
126diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-shared-debug qt-2.3.7/configs/linux-x86rtti-g++-shared-debug
127 --- qt-2.3.7-old/configs/linux-x86rtti-g++-shared-debug2004-07-23 15:22:56.000000000 +0200
128 +++ qt-2.3.7/configs/linux-x86rtti-g++-shared-debug2004-07-23 15:23:12.000000000 +0200
129@@ -36,7 +36,7 @@
130 SYSCONF_LIBS_YACC=
131
132 # Linking applications
133 -SYSCONF_LINK = gcc
134 +SYSCONF_LINK = g++
135 SYSCONF_LFLAGS =
136 SYSCONF_LIBS = -lm
137
138diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static qt-2.3.7/configs/linux-x86rtti-g++-static
139 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static2004-07-23 15:22:56.000000000 +0200
140 +++ qt-2.3.7/configs/linux-x86rtti-g++-static2004-07-23 15:23:12.000000000 +0200
141@@ -36,7 +36,7 @@
142 SYSCONF_LIBS_YACC=
143
144 # Linking applications
145 -SYSCONF_LINK = gcc
146 +SYSCONF_LINK = g++
147 SYSCONF_LFLAGS =
148 SYSCONF_LIBS = -lm
149
150diff -ur qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug qt-2.3.7/configs/linux-x86rtti-g++-static-debug
151 --- qt-2.3.7-old/configs/linux-x86rtti-g++-static-debug2004-07-23 15:22:56.000000000 +0200
152 +++ qt-2.3.7/configs/linux-x86rtti-g++-static-debug2004-07-23 15:23:12.000000000 +0200
153@@ -36,7 +36,7 @@
154 SYSCONF_LIBS_YACC=
155
156 # Linking applications
157 -SYSCONF_LINK = gcc
158 +SYSCONF_LINK = g++
159 SYSCONF_LFLAGS =
160 SYSCONF_LIBS = -lm
161
diff --git a/qt/qt-2.3.7.patch/qte237-gcc34.patch b/qt/qt-2.3.7.patch/qte237-gcc34.patch
deleted file mode 100644
index a7f1681..0000000
--- a/qt/qt-2.3.7.patch/qte237-gcc34.patch
+++ b/dev/null
@@ -1,510 +0,0 @@
1diff -ur qt-2.3.7_old/src/kernel/qgfxtransformed_qws.cpp qt-2.3.7/src/kernel/qgfxtransformed_qws.cpp
2 --- qt-2.3.7_old/src/kernel/qgfxtransformed_qws.cpp2004-09-10 21:08:04.000000000 +0200
3 +++ qt-2.3.7/src/kernel/qgfxtransformed_qws.cpp2004-09-10 21:08:42.000000000 +0200
4@@ -671,11 +671,11 @@
5 inline int tx( int x, int y ) {
6 switch ( qt_trans_screen->transformation() ) {
7 case QTransformedScreen::Rot90:
8 - return y - xoffs + yoffs;
9 + return y - this->xoffs + this->yoffs;
10 case QTransformedScreen::Rot180:
11 - return (width - x - 1) - xoffs - xoffs;
12 + return (this->width - x - 1) - this->xoffs - this->xoffs;
13 case QTransformedScreen::Rot270:
14 - return (height - y - 1) - xoffs - yoffs;
15 + return (this->height - y - 1) - this->xoffs - this->yoffs;
16 default:
17 return x;
18 }
19@@ -683,11 +683,11 @@
20 inline int ty( int x, int y ) {
21 switch ( qt_trans_screen->transformation() ) {
22 case QTransformedScreen::Rot90:
23 - return (width - x - 1) - yoffs - xoffs;
24 + return (this->width - x - 1) - this->yoffs - this->xoffs;
25 case QTransformedScreen::Rot180:
26 - return (height - y - 1) - yoffs - yoffs;
27 + return (this->height - y - 1) - this->yoffs - this->yoffs;
28 case QTransformedScreen::Rot270:
29 - return x - yoffs + xoffs;
30 + return x - this->yoffs + this->xoffs;
31 default:
32 return y;
33 }
34@@ -715,23 +715,23 @@
35 template <const int depth, const int type>
36 void QGfxTransformedRaster<depth,type>::setSourceWidgetOffset(int x, int y)
37 {
38- if ( srcbits == buffer ) {
39+ if ( this->srcbits == this->buffer ) {
40 switch ( qt_trans_screen->transformation() ) {
41 case QTransformedScreen::Rot90:
42 - srcwidgetoffs = QPoint( y, width - x - srcwidth );
43 + this->srcwidgetoffs = QPoint( y, this->width - x - this->srcwidth );
44 break;
45 case QTransformedScreen::Rot180:
46 - srcwidgetoffs = QPoint( width - x - srcwidth, height - y - srcheight );
47 + this->srcwidgetoffs = QPoint( this->width - x - this->srcwidth, this->height - y - this->srcheight );
48 break;
49 case QTransformedScreen::Rot270:
50 - srcwidgetoffs = QPoint( height - y - srcheight, x );
51 + this->srcwidgetoffs = QPoint( this->height - y - this->srcheight, x );
52 break;
53 default:
54 - srcwidgetoffs = QPoint( x, y );
55 + this->srcwidgetoffs = QPoint( x, y );
56 break;
57 }
58 } else
59 -srcwidgetoffs = QPoint( x, y );
60 +this->srcwidgetoffs = QPoint( x, y );
61 }
62
63 template <const int depth, const int type>
64@@ -739,8 +739,8 @@
65 {
66 QT_TRANS_GFX_BASE<depth,type>::setSource(i);
67 QSize s = qt_screen->mapToDevice( QSize(i->width(), i->height()) );
68- srcwidth = s.width();
69- srcheight = s.height();
70+ this->srcwidth = s.width();
71+ this->srcheight = s.height();
72 }
73
74 template <const int depth, const int type>
75@@ -782,7 +782,7 @@
76 if ( w == 0 || h == 0 )
77 return;
78 QRect r( x, y, w, h );
79- if ( cbrush.style() == SolidPattern ) {
80+ if ( this->cbrush.style() == Qt::SolidPattern ) {
81 r.setCoords( tx(x,y), ty(x,y), tx(x+w-1,y+h-1), ty(x+w-1,y+h-1) );
82 r = r.normalize();
83 }
84@@ -797,7 +797,7 @@
85 // solution. The brush offset logic is complicated enough, so we don't
86 // fastpath patternedbrush.
87
88- if ( inDraw || cpen.style()==NoPen || patternedbrush ) {
89+ if ( inDraw || this->cpen.style()==Qt::NoPen || this->patternedbrush ) {
90 //slowpath
91 QT_TRANS_GFX_BASE<depth,type>::drawPolygon( a, w, idx, num );
92 } else {
93@@ -819,29 +819,29 @@
94 template <const int depth, const int type>
95 void QGfxTransformedRaster<depth,type>::processSpans( int n, QPoint* point, int* width )
96 {
97- if ( inDraw || patternedbrush && srcwidth != 0 && srcheight != 0 ) {
98+ if ( inDraw || this->patternedbrush && this->srcwidth != 0 && this->srcheight != 0 ) {
99 //in the patternedbrush case, we let blt do the transformation
100 // so we leave inDraw false.
101 - QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
102 +QT_TRANS_GFX_BASE<depth,type>::processSpans( n, point, width );
103 } else {
104 inDraw = TRUE;
105 while (n--) {
106 if ( *width > 0 ) {
107 - int x=tx(point->x(),point->y())+xoffs;
108 - int y=ty(point->x(),point->y())+yoffs;
109 + int x=tx(point->x(),point->y())+this->xoffs;
110 + int y=ty(point->x(),point->y())+this->yoffs;
111
112 switch( qt_trans_screen->transformation() ) {
113 case QTransformedScreen::Rot90:
114 - vline( x, y-(*width-1), y );
115 + this->vline( x, y-(*width-1), y );
116 break;
117 case QTransformedScreen::Rot180:
118 - hline( x - (*width-1), x, y );
119 + this->hline( x - (*width-1), x, y );
120 break;
121 case QTransformedScreen::Rot270:
122 - vline( x, y, y+*width-1 );
123 + this->vline( x, y, y+*width-1 );
124 break;
125 default:
126 - hline( x, x+*width-1, y );
127 + this->hline( x, x+*width-1, y );
128 break;
129 }
130 }
131@@ -896,14 +896,14 @@
132 switch ( qt_trans_screen->transformation() ) {
133 case QTransformedScreen::Rot90:
134 rsx = sy;
135 - rsy = srcwidth - sx - w;
136 + rsy = this->srcwidth - sx - w;
137 break;
138 case QTransformedScreen::Rot180:
139 - rsx = srcwidth - sx - w;
140 - rsy = srcheight - sy - h;
141 + rsx = this->srcwidth - sx - w;
142 + rsy = this->srcheight - sy - h;
143 break;
144 case QTransformedScreen::Rot270:
145 - rsx = srcheight - sy - h;
146 + rsx = this->srcheight - sy - h;
147 rsy = sx;
148 break;
149 default:
150@@ -941,39 +941,39 @@
151 r.setCoords( tx(rx,ry), ty(rx,ry), tx(rx+w-1,ry+h-1), ty(rx+w-1,ry+h-1) );
152 r = r.normalize();
153
154- QPoint oldBrushOffs = brushoffs;
155+ QPoint oldBrushOffs = this->brushoffs;
156 int brx, bry;
157 switch ( qt_trans_screen->transformation() ) {
158 case QTransformedScreen::Rot90:
159 - brx = brushoffs.y();
160 - bry = srcwidth - brushoffs.x() - w;
161 + brx = this->brushoffs.y();
162 + bry = this->srcwidth - this->brushoffs.x() - w;
163 break;
164 case QTransformedScreen::Rot180:
165 - brx = srcwidth - brushoffs.x() - w;
166 - bry = srcheight - brushoffs.y() - h;
167 + brx = this->srcwidth - this->brushoffs.x() - w;
168 + bry = this->srcheight - this->brushoffs.y() - h;
169 break;
170 case QTransformedScreen::Rot270:
171 - brx = srcheight - brushoffs.y() - h;
172 - bry = brushoffs.x();
173 + brx = this->srcheight - this->brushoffs.y() - h;
174 + bry = this->brushoffs.x();
175 break;
176 default:
177 - brx = brushoffs.x();
178 - bry = brushoffs.y();
179 + brx = this->brushoffs.x();
180 + bry = this->brushoffs.y();
181 break;
182 }
183- brushoffs = QPoint( brx, bry );
184+ this->brushoffs = QPoint( brx, bry );
185
186- int oldsw = srcwidth;
187- int oldsh = srcheight;
188- QSize s = qt_screen->mapToDevice( QSize(srcwidth,srcheight) );
189- srcwidth = s.width();
190- srcheight = s.height();
191+ int oldsw = this->srcwidth;
192+ int oldsh = this->srcheight;
193+ QSize s = qt_screen->mapToDevice( QSize(this->srcwidth,this->srcheight) );
194+ this->srcwidth = s.width();
195+ this->srcheight = s.height();
196
197 QT_TRANS_GFX_BASE<depth,type>::tiledBlt( r.x(), r.y(), r.width(), r.height() );
198
199- srcwidth = oldsw;
200- srcheight = oldsh;
201- brushoffs = oldBrushOffs;
202+ this->srcwidth = oldsw;
203+ this->srcheight = oldsh;
204+ this->brushoffs = oldBrushOffs;
205 inDraw = FALSE;
206 }
207
208diff -ur qt-2.3.7_old/src/kernel/qgfxvfb_qws.cpp qt-2.3.7/src/kernel/qgfxvfb_qws.cpp
209 --- qt-2.3.7_old/src/kernel/qgfxvfb_qws.cpp2004-09-10 21:08:04.000000000 +0200
210 +++ qt-2.3.7/src/kernel/qgfxvfb_qws.cpp2004-09-10 21:08:42.000000000 +0200
211@@ -31,7 +31,6 @@
212 **********************************************************************/
213
214 #include "qgfxraster_qws.h"
215-
216 #ifndef QT_NO_QWS_VFB
217
218 #include <sys/ipc.h>
219@@ -140,8 +139,8 @@
220 void QGfxVFb<depth,type>::drawPoint( int x, int y )
221 {
222 QWSDisplay::grab( TRUE );
223- if ( is_screen_gfx )
224 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) );
225+ if ( this->is_screen_gfx )
226 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) );
227 QGfxRaster<depth,type>::drawPoint( x, y );
228 QWSDisplay::ungrab();
229 }
230@@ -150,8 +149,8 @@
231 void QGfxVFb<depth,type>::drawPoints( const QPointArray &pa,int x,int y )
232 {
233 QWSDisplay::grab( TRUE );
234- if ( is_screen_gfx )
235 -qvfb_screen->setDirty( clipbounds );
236+ if ( this->is_screen_gfx )
237 +qvfb_screen->setDirty( this->clipbounds );
238 QGfxRaster<depth,type>::drawPoints( pa, x, y );
239 QWSDisplay::ungrab();
240 }
241@@ -160,9 +159,9 @@
242 void QGfxVFb<depth,type>::drawLine( int x1,int y1,int x2,int y2 )
243 {
244 QWSDisplay::grab( TRUE );
245- if ( is_screen_gfx ) {
246+ if ( this->is_screen_gfx ) {
247 QRect r;
248 -r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
249 +r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
250 qvfb_screen->setDirty( r.normalize() );
251 }
252 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
253@@ -173,8 +172,8 @@
254 void QGfxVFb<depth,type>::fillRect( int x,int y,int w,int h )
255 {
256 QWSDisplay::grab( TRUE );
257- if ( is_screen_gfx )
258 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
259+ if ( this->is_screen_gfx )
260 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
261 QGfxRaster<depth,type>::fillRect( x, y, w, h );
262 QWSDisplay::ungrab();
263 }
264@@ -183,8 +182,8 @@
265 void QGfxVFb<depth,type>::drawPolyline( const QPointArray &pa,int x,int y )
266 {
267 QWSDisplay::grab( TRUE );
268- if ( is_screen_gfx )
269 -qvfb_screen->setDirty( clipbounds );
270+ if ( this->is_screen_gfx )
271 +qvfb_screen->setDirty( this->clipbounds );
272 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
273 QWSDisplay::ungrab();
274 }
275@@ -193,8 +192,8 @@
276 void QGfxVFb<depth,type>::drawPolygon( const QPointArray &pa,bool w,int x,int y )
277 {
278 QWSDisplay::grab( TRUE );
279- if ( is_screen_gfx )
280 -qvfb_screen->setDirty( clipbounds );
281+ if ( this->is_screen_gfx )
282 +qvfb_screen->setDirty( this->clipbounds );
283 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
284 QWSDisplay::ungrab();
285 }
286@@ -203,8 +202,8 @@
287 void QGfxVFb<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
288 {
289 QWSDisplay::grab( TRUE );
290- if ( is_screen_gfx )
291 -qvfb_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) );
292+ if ( this->is_screen_gfx )
293 +qvfb_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) );
294 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
295 QWSDisplay::ungrab();
296 }
297@@ -215,8 +214,8 @@
298 QWSDisplay::grab( TRUE );
299 int dy = sy - y;
300 int dx = sx - x;
301- if ( is_screen_gfx )
302 -qvfb_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
303+ if ( this->is_screen_gfx )
304 +qvfb_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
305 w+abs(dx), h+abs(dy)) );
306 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
307 QWSDisplay::ungrab();
308@@ -227,8 +226,8 @@
309 void QGfxVFb<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
310 {
311 QWSDisplay::grab( TRUE );
312- if ( is_screen_gfx )
313 -qvfb_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) );
314+ if ( this->is_screen_gfx )
315 +qvfb_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) );
316 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
317 QWSDisplay::ungrab();
318 }
319@@ -238,8 +237,8 @@
320 void QGfxVFb<depth,type>::tiledBlt( int x,int y,int w,int h )
321 {
322 QWSDisplay::grab( TRUE );
323- if ( is_screen_gfx )
324 -qvfb_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) );
325+ if ( this->is_screen_gfx )
326 +qvfb_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) );
327 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
328 QWSDisplay::ungrab();
329 }
330diff -ur qt-2.3.7_old/src/kernel/qgfxvnc_qws.cpp qt-2.3.7/src/kernel/qgfxvnc_qws.cpp
331 --- qt-2.3.7_old/src/kernel/qgfxvnc_qws.cpp2004-09-10 21:08:04.000000000 +0200
332 +++ qt-2.3.7/src/kernel/qgfxvnc_qws.cpp2004-09-10 21:10:54.000000000 +0200
333@@ -971,7 +971,7 @@
334 void QGfxVNC<depth,type>::drawPoint( int x, int y )
335 {
336 QWSDisplay::grab( TRUE );
337- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, 1, 1 ) & clipbounds );
338+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, 1, 1 ) & this->clipbounds );
339 QGfxRaster<depth,type>::drawPoint( x, y );
340 QWSDisplay::ungrab();
341 }
342@@ -981,8 +981,8 @@
343 {
344 QWSDisplay::grab( TRUE );
345 QRect r = pa.boundingRect();
346- r.moveBy( xoffs, yoffs );
347- qvnc_screen->setDirty( r & clipbounds );
348+ r.moveBy( this->xoffs, this->yoffs );
349+ qvnc_screen->setDirty( r & this->clipbounds );
350 QGfxRaster<depth,type>::drawPoints( pa, x, y );
351 QWSDisplay::ungrab();
352 }
353@@ -992,9 +992,9 @@
354 {
355 QWSDisplay::grab( TRUE );
356 QRect r;
357- r.setCoords( x1+xoffs, y1+yoffs, x2+xoffs, y2+yoffs );
358+ r.setCoords( x1+this->xoffs, y1+this->yoffs, x2+this->xoffs, y2+this->yoffs );
359 r = r.normalize();
360- qvnc_screen->setDirty( r & clipbounds );
361+ qvnc_screen->setDirty( r & this->clipbounds );
362 QGfxRaster<depth,type>::drawLine( x1, y1, x2, y2 );
363 QWSDisplay::ungrab();
364 }
365@@ -1003,7 +1003,7 @@
366 void QGfxVNC<depth,type>::fillRect( int x,int y,int w,int h )
367 {
368 QWSDisplay::grab( TRUE );
369- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) & clipbounds );
370+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) & this->clipbounds );
371 QGfxRaster<depth,type>::fillRect( x, y, w, h );
372 QWSDisplay::ungrab();
373 }
374@@ -1013,8 +1013,8 @@
375 {
376 QWSDisplay::grab( TRUE );
377 QRect r = pa.boundingRect();
378- r.moveBy( xoffs, yoffs );
379- qvnc_screen->setDirty( r & clipbounds );
380+ r.moveBy( this->xoffs, this->yoffs );
381+ qvnc_screen->setDirty( r & this->clipbounds );
382 QGfxRaster<depth,type>::drawPolyline( pa, x, y );
383 QWSDisplay::ungrab();
384 }
385@@ -1024,8 +1024,8 @@
386 {
387 QWSDisplay::grab( TRUE );
388 QRect r = pa.boundingRect();
389- r.moveBy( xoffs, yoffs );
390- qvnc_screen->setDirty( r & clipbounds );
391+ r.moveBy( this->xoffs, this->yoffs );
392+ qvnc_screen->setDirty( r & this->clipbounds );
393 QGfxRaster<depth,type>::drawPolygon( pa, w, x, y );
394 QWSDisplay::ungrab();
395 }
396@@ -1034,7 +1034,7 @@
397 void QGfxVNC<depth,type>::blt( int x,int y,int w,int h, int sx, int sy )
398 {
399 QWSDisplay::grab( TRUE );
400- qvnc_screen->setDirty( QRect( x+xoffs, y+yoffs, w, h ) & clipbounds );
401+ qvnc_screen->setDirty( QRect( x+this->xoffs, y+this->yoffs, w, h ) & this->clipbounds );
402 QGfxRaster<depth,type>::blt( x, y, w, h, sx, sy );
403 QWSDisplay::ungrab();
404 }
405@@ -1045,8 +1045,8 @@
406 QWSDisplay::grab( TRUE );
407 int dy = sy - y;
408 int dx = sx - x;
409- qvnc_screen->setDirty( QRect(QMIN(x,sx) + xoffs, QMIN(y,sy) + yoffs,
410 - w+abs(dx), h+abs(dy)) & clipbounds );
411+ qvnc_screen->setDirty( QRect(QMIN(x,sx) + this->xoffs, QMIN(y,sy) + this->yoffs,
412 + w+abs(dx), h+abs(dy)) & this->clipbounds );
413 QGfxRaster<depth,type>::scroll( x, y, w, h, sx, sy );
414 QWSDisplay::ungrab();
415 }
416@@ -1056,7 +1056,7 @@
417 void QGfxVNC<depth,type>::stretchBlt( int x,int y,int w,int h,int sx,int sy )
418 {
419 QWSDisplay::grab( TRUE );
420- qvnc_screen->setDirty( QRect( x + xoffs, y + yoffs, w, h) & clipbounds );
421+ qvnc_screen->setDirty( QRect( x + this->xoffs, y + this->yoffs, w, h) & this->clipbounds );
422 QGfxRaster<depth,type>::stretchBlt( x, y, w, h, sx, sy );
423 QWSDisplay::ungrab();
424 }
425@@ -1066,7 +1066,7 @@
426 void QGfxVNC<depth,type>::tiledBlt( int x,int y,int w,int h )
427 {
428 QWSDisplay::grab( TRUE );
429- qvnc_screen->setDirty( QRect(x + xoffs, y + yoffs, w, h) & clipbounds );
430+ qvnc_screen->setDirty( QRect(x + this->xoffs, y + this->yoffs, w, h) & this->clipbounds );
431 QGfxRaster<depth,type>::tiledBlt( x, y, w, h );
432 QWSDisplay::ungrab();
433 }
434diff -ur qt-2.3.7_old/src/tools/qcstring.h qt-2.3.7/src/tools/qcstring.h
435 --- qt-2.3.7_old/src/tools/qcstring.h2004-09-10 21:08:04.000000000 +0200
436 +++ qt-2.3.7/src/tools/qcstring.h2004-09-10 21:08:42.000000000 +0200
437@@ -119,7 +119,7 @@
438 // We want to keep source compatibility for 2.x
439 // ### TODO for 4.0: completely remove these and the cstr* functions
440
441-#if !defined(QT_GENUINE_STR)
442+#if 0
443
444 #undefstrlen
445 #define strlen qstrlen
446diff -ur qt-2.3.7_old/src/tools/qglobal.h qt-2.3.7/src/tools/qglobal.h
447 --- qt-2.3.7_old/src/tools/qglobal.h2004-09-10 21:08:04.000000000 +0200
448 +++ qt-2.3.7/src/tools/qglobal.h2004-09-10 21:08:42.000000000 +0200
449@@ -207,8 +207,16 @@
450 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
451 #define Q_FP_CCAST_BROKEN
452 #endif
453+/* ARM gcc pads structs to 32 bits, even when they contain a single
454+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
455+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
456+ members of a packed struct. (Pointers are OK, because then you
457+ supposedly know what you are doing.) */
458 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
459 #define Q_PACKED __attribute__ ((packed))
460+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
461+# define Q_NO_PACKED_REFERENCE
462+# endif
463 #endif
464 #elif defined(__xlC__)
465 #define _CC_XLC_
466diff -ur qt-2.3.7_old/src/tools/qsortedlist.h qt-2.3.7/src/tools/qsortedlist.h
467 --- qt-2.3.7_old/src/tools/qsortedlist.h2004-09-10 21:08:04.000000000 +0200
468 +++ qt-2.3.7/src/tools/qsortedlist.h2004-09-10 21:08:42.000000000 +0200
469@@ -48,7 +48,7 @@
470 public:
471 QSortedList() {}
472 QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
473- ~QSortedList() { clear(); }
474+ ~QSortedList() { this->clear(); }
475 QSortedList<type> &operator=(const QSortedList<type> &l)
476 { return (QSortedList<type>&)QList<type>::operator=(l); }
477
478diff -ur qt-2.3.7_old/src/tools/qstring.h qt-2.3.7/src/tools/qstring.h
479 --- qt-2.3.7_old/src/tools/qstring.h2004-09-10 21:08:04.000000000 +0200
480 +++ qt-2.3.7/src/tools/qstring.h2004-09-10 21:08:42.000000000 +0200
481@@ -163,8 +163,16 @@
482 bool isLetterOrNumber() const;
483 bool isDigit() const;
484
485+
486+#ifdef Q_NO_PACKED_REFERENCE
487+ uchar& cell() { return *(&cl); }
488+ uchar& row() { return *(&rw); }
489+#else
490 uchar& cell() { return cl; }
491- uchar& row() { return rw; }
492+ uchar& row() { return rw; }
493+#endif
494+
495+
496 uchar cell() const { return cl; }
497 uchar row() const { return rw; }
498
499diff -ur qt-2.3.7_old/src/kernel/qwsdecoration_qws.h qt-2.3.7/src/kernel/qwsdecoration_qws.h
500 --- qt-2.3.7_old/src/kernel/qwsdecoration_qws.h2003-07-17 03:20:26.000000000 +0200
501 +++ qt-2.3.7/src/kernel/qwsdecoration_qws.h2004-09-13 15:44:13.000000000 +0200
502@@ -50,7 +50,7 @@
503 enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
504 TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
505 Close=11, Minimize=12, Maximize=13, Normalize=14,
506 - Menu=15, LastRegion=Menu };
507 + Menu=15, LastRegion=Menu, UserDefined = 100 };
508
509 virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
510 virtual void close( QWidget * );
diff --git a/qt/qt-2.3.7.patch/qte237-hancomwordcrash.patch b/qt/qt-2.3.7.patch/qte237-hancomwordcrash.patch
deleted file mode 100644
index f5b26ea..0000000
--- a/qt/qt-2.3.7.patch/qte237-hancomwordcrash.patch
+++ b/dev/null
@@ -1,14 +0,0 @@
1Not included in the ALL patch
2
3
4 --- qt-2.3.7-old/src/kernel/qgfxraster_qws.cpp2004-07-23 15:22:56.000000000 +0200
5 +++ qt-2.3.7/src/kernel/qgfxraster_qws.cpp2004-07-23 15:29:16.000000000 +0200
6@@ -4237,7 +4237,7 @@
7 setAlphaType(IgnoreAlpha);
8 if ( w <= 0 || h <= 0 || !ncliprect ) return;
9 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
10-#ifdef QWS_EXPERIMENTAL_FASTPATH
11+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
12 // ### fix for 8bpp
13 // This seems to be reliable now, at least for 16bpp
14
diff --git a/qt/qt-2.3.7.patch/qte237-keyboard.patch b/qt/qt-2.3.7.patch/qte237-keyboard.patch
deleted file mode 100644
index b644fd7..0000000
--- a/qt/qt-2.3.7.patch/qte237-keyboard.patch
+++ b/dev/null
@@ -1,43 +0,0 @@
1Free the Virtual Terminal and Keyboard on a segfault in all cases...
2
3
4 --- qt-2.3.7-old/src/kernel/qwindowsystem_qws.cpp2004-07-23 15:22:56.000000000 +0200
5 +++ qt-2.3.7/src/kernel/qwindowsystem_qws.cpp2004-07-23 15:33:47.000000000 +0200
6@@ -844,6 +844,18 @@
7 {
8 }
9
10+static void catchSegvSignal( int )
11+{
12+#ifndef QT_NO_QWS_KEYBOARD
13+ if ( qwsServer )
14 +qwsServer->closeKeyboard();
15+#endif
16+ QWSServer::closedown();
17+ fprintf(stderr, "Segmentation fault.\n");
18+ exit(1);
19+}
20+
21+
22 /*!
23 \class QWSServer qwindowsystem_qws.h
24 \brief Server-specific functionality in Qt/Embedded
25@@ -936,6 +948,7 @@
26 }
27
28 signal(SIGPIPE, ignoreSignal); //we get it when we read
29+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
30 #endif
31 focusw = 0;
32 mouseGrabber = 0;
33 --- qt-2.3.7-old/src/kernel/qkeyboard_qws.cpp2004-07-23 15:22:56.000000000 +0200
34 +++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp2004-07-23 15:33:46.000000000 +0200
35@@ -238,7 +238,7 @@
36 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
37 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
38 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
39 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
40+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
41 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
42 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
43 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
diff --git a/qt/qt-2.3.7.patch/qte237-lefthand.patch b/qt/qt-2.3.7.patch/qte237-lefthand.patch
deleted file mode 100644
index 1287430..0000000
--- a/qt/qt-2.3.7.patch/qte237-lefthand.patch
+++ b/dev/null
@@ -1,133 +0,0 @@
1Backport of the LeftHand patch from Qt2.3.8
2
3Puts Scrollbar on the left for people using the right hand
4to hold the devices
5
6
7
8diff -u qt-2.3.7_orig/src/widgets/qscrollview.cpp qt-2.3.7/src/widgets/qscrollview.cpp
9 --- qt-2.3.7_orig/src/widgets/qscrollview.cpp2004-06-13 20:42:54.000000000 +0200
10 +++ qt-2.3.7/src/widgets/qscrollview.cpp2004-06-13 20:45:16.000000000 +0200
11@@ -526,15 +526,16 @@
12 this, SLOT( doDragAutoScroll() ) );
13 #endif
14
15- connect( &d->hbar, SIGNAL( valueChanged( int ) ),
16 -this, SLOT( hslide( int ) ) );
17- connect( &d->vbar, SIGNAL( valueChanged( int ) ),
18 -this, SLOT( vslide( int ) ) );
19+ connect( &d->hbar, SIGNAL( valueChanged(int) ),
20 +this, SLOT( hslide(int) ) );
21+ connect( &d->vbar, SIGNAL( valueChanged(int) ),
22 +this, SLOT( vslide(int) ) );
23 d->viewport.installEventFilter( this );
24
25 setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
26 setLineWidth( style().defaultFrameWidth() );
27 setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
28+
29 }
30
31
32@@ -683,6 +684,11 @@
33 h-tmarg-bmarg - (showh ? hsbExt : 0) );
34 }
35
36+/*
37+ The surrounding environment (or application, if there is no
38+ environment, may set this. Requires Qt >= 2.3.8.
39+*/
40+bool qt_left_hand_scrollbars = FALSE;
41
42 /*!
43 Updates scrollbars - all possibilities considered. You should never
44@@ -786,45 +792,50 @@
45
46 // Position the scrollbars, viewport, and corner widget.
47 int bottom;
48+ int xoffset = ( qt_left_hand_scrollbars && ( showv || cornerWidget() ) ) ? vsbExt : 0;
49+ int xpos = qt_left_hand_scrollbars ? 0 : w-vsbExt;
50+ xpos = (style() == WindowsStyle) && qt_left_hand_scrollbars ? xpos + fw : xpos - fw;
51+ int ypos = tmarg;
52+ ypos = (style() == WindowsStyle) ? ypos +fw : 0;
53 if ( showh ) {
54 int right = ( showv || cornerWidget() ) ? w-vsbExt : w;
55 if ( style() == WindowsStyle )
56- setHBarGeometry(d->hbar, fw, h-hsbExt-fw,
57+ setHBarGeometry(d->hbar, fw + xoffset , h-hsbExt-fw,
58 right-fw-fw, hsbExt );
59 else
60- setHBarGeometry(d->hbar, 0, h-hsbExt, right,
61+ setHBarGeometry(d->hbar, 0+ xoffset, h-hsbExt, right,
62 hsbExt );
63 bottom=h-hsbExt;
64 } else {
65 bottom=h;
66 }
67 if ( showv ) {
68 -clipper()->setGeometry( lmarg, tmarg,
69 +clipper()->setGeometry( lmarg + xoffset, tmarg,
70 w-vsbExt-lmarg-rmarg,
71 bottom-tmarg-bmarg );
72 d->viewportResized( w-vsbExt-lmarg-rmarg, bottom-tmarg-bmarg );
73 if ( style() == WindowsStyle )
74 - changeFrameRect(QRect(0, 0, w, h) );
75 + changeFrameRect(QRect(xoffset, 0, w, h) );
76 else
77 - changeFrameRect(QRect(0, 0, w-vsbExt, bottom));
78 + changeFrameRect(QRect(xoffset, 0, w-vsbExt, bottom));
79 if (cornerWidget()) {
80 if ( style() == WindowsStyle )
81- setVBarGeometry( d->vbar, w-vsbExt-fw,
82- fw, vsbExt,
83- h-hsbExt-fw-fw );
84+ setVBarGeometry( d->vbar, xpos,
85+ ypos, vsbExt,
86+ bottom-fw-ypos );
87 else
88- setVBarGeometry( d->vbar, w-vsbExt, 0,
89+ setVBarGeometry( d->vbar, xpos, ypos,
90 vsbExt,
91- h-hsbExt );
92+ bottom-ypos );
93 }
94 else {
95 if ( style() == WindowsStyle )
96- setVBarGeometry( d->vbar, w-vsbExt-fw,
97- fw, vsbExt,
98- bottom-fw-fw );
99+ setVBarGeometry( d->vbar, xpos,
100+ ypos, vsbExt,
101+ bottom-fw-ypos );
102 else
103- setVBarGeometry( d->vbar, w-vsbExt, 0,
104- vsbExt, bottom );
105+ setVBarGeometry( d->vbar, xpos, ypos,
106+ vsbExt, bottom-ypos );
107 }
108 } else {
109 if ( style() == WindowsStyle )
110@@ -837,12 +848,12 @@
111 }
112 if ( d->corner ) {
113 if ( style() == WindowsStyle )
114- d->corner->setGeometry( w-vsbExt-fw,
115+ d->corner->setGeometry( xpos,
116 h-hsbExt-fw,
117 vsbExt,
118 hsbExt );
119 else
120- d->corner->setGeometry( w-vsbExt,
121+ d->corner->setGeometry( xpos,
122 h-hsbExt,
123 vsbExt,
124 hsbExt );
125@@ -1675,7 +1686,7 @@
126 }
127
128 /*!
129- Scrolls the content by \a x to the left and \a y upwards.
130+ Scrolls the content by \a dx to the left and \a dy upwards.
131 */
132 void QScrollView::scrollBy( int dx, int dy )
133 {
diff --git a/qt/qt-2.3.8.patch/qte238-adjustsizes.patch b/qt/qt-2.3.8.patch/qte238-adjustsizes.patch
deleted file mode 100644
index b2a7f7e..0000000
--- a/qt/qt-2.3.8.patch/qte238-adjustsizes.patch
+++ b/dev/null
@@ -1,64 +0,0 @@
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
deleted file mode 100644
index 3266f78..0000000
--- a/qt/qt-2.3.8.patch/qte238-all.patch
+++ b/dev/null
@@ -1,1059 +0,0 @@
1diff -ur qt-2.3.8-old/include/qapplication.h qt-2.3.8/include/qapplication.h
2 --- qt-2.3.8-old/include/qapplication.h2004-07-22 01:07:45.000000000 +0200
3 +++ qt-2.3.8/include/qapplication.h2004-07-23 19:08:46.000000000 +0200
4@@ -61,6 +61,10 @@
5 class QSemaphore;
6 #endif
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
291@@ -35,6 +35,8 @@
292 **
293 **********************************************************************/
294
295 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
296+
297 #include "qobjectlist.h"
298 #include "qobjectdict.h"
299 #include "qapplication.h"
300@@ -936,11 +938,16 @@
301 #ifndef QT_NO_STYLE
302 void QApplication::setStyle( QStyle *style )
303 {
304 +setStyle_NonWeak ( style );
305+}
306+
307+void QApplication::setStyle_NonWeak( QStyle *style )
308+{
309 QStyle* old = app_style;
310- app_style = style;
311
312 if ( startingUp() ) {
313 delete old;
314 +app_style = style;
315 return;
316 }
317
318@@ -961,6 +968,8 @@
319 old->unPolish( qApp );
320 }
321
322+ app_style = style;
323+
324 // take care of possible palette requirements of certain gui
325 // styles. Do it before polishing the application since the style
326 // might call QApplication::setStyle() itself
327@@ -1187,13 +1196,30 @@
328 \sa QWidget::setPalette(), palette(), QStyle::polish()
329 */
330
331-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
332+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
333 + const char* className )
334+{
335 +setPalette_NonWeak ( palette, informWidgets, className );
336+}
337+
338+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
339 const char* className )
340 {
341 QPalette pal = palette;
342 #ifndef QT_NO_STYLE
343- if ( !startingUp() )
344+ if ( !startingUp() ) {
345 qApp->style().polish( pal );// NB: non-const reference
346 +if ( className ) {
347 + // if we just polished a class specific palette (this normally
348 + // only called by qt_fix_tooltips - see below), we better re-
349 + // polish the global palette. Some styles like liquid can get
350 + // confused, because they can not detect if the polished palette
351 + // is the global one or only a class specific one.
352 + // (liquid uses this palette to calculate blending pixmaps)
353 + QPalette p = qApp-> palette ( );
354 + qApp->style().polish ( p );
355 +}
356+ }
357 #endif
358 bool all = FALSE;
359 if ( !className ) {
360@@ -1278,6 +1304,12 @@
361 void QApplication::setFont( const QFont &font, bool informWidgets,
362 const char* className )
363 {
364 +setFont_NonWeak ( font, informWidgets, className );
365+}
366+
367+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
368 + const char* className )
369+{
370 bool all = FALSE;
371 if ( !className ) {
372 if ( !app_font ) {
373Nur in qt-2.3.8/src/kernel: qapplication.cpp.orig.
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
377@@ -61,6 +61,10 @@
378 class QSemaphore;
379 #endif
380
381+#if !defined( QT_WEAK_SYMBOL )
382+#define QT_WEAK_SYMBOL
383+#endif
384+
385 // REMOVE IN 3.0 (just here for moc source compatibility)
386 #define QNonBaseApplication QApplication
387
388@@ -85,7 +89,10 @@
389
390 #ifndef QT_NO_STYLE
391 static QStyle &style();
392 - static void setStyle( QStyle* );
393 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
394+private:
395 +static void setStyle_NonWeak( QStyle* );
396+public:
397 #endif
398 #if 1/* OBSOLETE */
399 enum ColorMode { NormalColors, CustomColors };
400@@ -106,11 +113,19 @@
401 #ifndef QT_NO_PALETTE
402 static QPalette palette( const QWidget* = 0 );
403 static void setPalette( const QPalette &, bool informWidgets=FALSE,
404 + const char* className = 0 ) QT_WEAK_SYMBOL;
405+private:
406 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
407 const char* className = 0 );
408+public:
409 #endif
410 static QFont font( const QWidget* = 0 );
411 static void setFont( const QFont &, bool informWidgets=FALSE,
412 + const char* className = 0 ) QT_WEAK_SYMBOL;
413+private:
414 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
415 const char* className = 0 );
416 +public:
417 static QFontMetrics fontMetrics();
418
419 QWidget *mainWidget() const;
420@@ -207,7 +222,10 @@
421 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
422 #ifndef QT_NO_QWS_MANAGER
423 static QWSDecoration &qwsDecoration();
424- static void qwsSetDecoration( QWSDecoration *);
425+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
426+private:
427+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
428+public:
429 #endif
430 #endif
431
432diff -ur qt-2.3.8-old/src/kernel/qapplication_qws.cpp qt-2.3.8/src/kernel/qapplication_qws.cpp
433 --- qt-2.3.8-old/src/kernel/qapplication_qws.cpp2004-07-22 01:07:45.000000000 +0200
434 +++ qt-2.3.8/src/kernel/qapplication_qws.cpp2004-07-23 19:08:46.000000000 +0200
435@@ -2896,6 +2896,11 @@
436 */
437 void QApplication::qwsSetDecoration( QWSDecoration *d )
438 {
439 +qwsSetDecoration_NonWeak ( d );
440+}
441+
442+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
443+{
444 if ( d ) {
445 delete qws_decoration;
446 qws_decoration = d;
447Nur in qt-2.3.8/src/kernel: qapplication_qws.cpp.orig.
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
451@@ -35,6 +35,8 @@
452 **
453 **********************************************************************/
454
455+#define QT_WEAK_SYMBOL __attribute__(( weak ))
456+
457 #include "qfontdatabase.h"
458
459 #ifndef QT_NO_FONTDATABASE
460@@ -2424,6 +2426,13 @@
461 const QString &style,
462 const QString &charSet )
463 {
464 +return pointSizes_NonWeak ( family, style, charSet );
465+}
466+
467+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
468+ const QString &style,
469+ const QString &charSet )
470+{
471 QString cs( charSet );
472 if ( charSet.isEmpty() ) {
473 QStringList lst = charSets( family );
474diff -ur qt-2.3.8-old/src/kernel/qfontdatabase.h qt-2.3.8/src/kernel/qfontdatabase.h
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
477@@ -59,6 +59,10 @@
478 class QDiskFont;
479 #endif
480
481+#if !defined( QT_WEAK_SYMBOL )
482+#define QT_WEAK_SYMBOL
483+#endif
484+
485 class QFontDatabasePrivate;
486
487 class Q_EXPORT QFontDatabase
488@@ -67,9 +71,16 @@
489 QFontDatabase();
490
491 QStringList families( bool onlyForLocale = TRUE ) const;
492+
493+
494 QValueList<int> pointSizes( const QString &family,
495 const QString &style = QString::null,
496 - const QString &charSet = QString::null );
497 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
498+private:
499+ QValueList<int> pointSizes_NonWeak( const QString &family,
500 + const QString &style,
501 + const QString &charSet );
502+public:
503 QStringList styles( const QString &family,
504 const QString &charSet = QString::null ) const;
505 QStringList charSets( const QString &familyName,
506diff -ur qt-2.3.8-old/src/kernel/qgfxraster_qws.cpp qt-2.3.8/src/kernel/qgfxraster_qws.cpp
507 --- qt-2.3.8-old/src/kernel/qgfxraster_qws.cpp2004-07-22 01:07:45.000000000 +0200
508 +++ qt-2.3.8/src/kernel/qgfxraster_qws.cpp2004-07-23 19:10:03.000000000 +0200
509@@ -4400,7 +4400,7 @@
510 setAlphaType(IgnoreAlpha);
511 if ( w <= 0 || h <= 0 || !ncliprect ) return;
512 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
513-#ifdef QWS_EXPERIMENTAL_FASTPATH
514+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
515 // ### fix for 8bpp
516 // This seems to be reliable now, at least for 16bpp
517
518Nur in qt-2.3.8/src/kernel: qgfxraster_qws.cpp.orig.
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
851@@ -314,7 +314,7 @@
852 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
853 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
854 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
855 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
856+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
857 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
858 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
859 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
860Nur in qt-2.3.8/src/kernel: qkeyboard_qws.cpp.orig.
861diff -ur qt-2.3.8-old/src/kernel/qwindowsystem_qws.cpp qt-2.3.8/src/kernel/qwindowsystem_qws.cpp
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 @@
865 {
866 }
867
868+static void catchSegvSignal( int )
869+{
870+#ifndef QT_NO_QWS_KEYBOARD
871+ if ( qwsServer )
872 +qwsServer->closeKeyboard();
873+#endif
874+ QWSServer::closedown();
875+ fprintf(stderr, "Segmentation fault.\n");
876+ exit(1);
877+}
878+
879+
880 /*!
881 \class QWSServer qwindowsystem_qws.h
882 \brief Server-specific functionality in Qt/Embedded
883@@ -1365,6 +1377,7 @@
884 }
885
886 signal(SIGPIPE, ignoreSignal); //we get it when we read
887+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
888 #endif
889 focusw = 0;
890 mouseGrabber = 0;
891Nur in qt-2.3.8/src/kernel: qwindowsystem_qws.cpp.orig.
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
990@@ -566,7 +566,7 @@
991 bool enabled, bool active )
992 {
993 #ifndef QT_NO_MENUBAR
994-#ifndef QT_NO_STYLE_SGI
995+#if 1 // #ifndef QT_NO_STYLE_SGI
996 if (draw_menu_bar_impl != 0) {
997 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
998 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
999diff -ur qt-2.3.8-old/src/widgets/qlistview.cpp qt-2.3.8/src/widgets/qlistview.cpp
1000 --- qt-2.3.8-old/src/widgets/qlistview.cpp2004-07-22 01:07:44.000000000 +0200
1001 +++ qt-2.3.8/src/widgets/qlistview.cpp2004-07-23 16:15:16.000000000 +0200
1002@@ -5054,9 +5054,9 @@
1003 l = l->childItem ? l->childItem : l->siblingItem;
1004
1005 if ( l && l->height() )
1006 -s.setHeight( s.height() + 10 * l->height() );
1007- else
1008 -s.setHeight( s.height() + 140 );
1009 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
1010+ else // ^v much too big for handhelds
1011 +s.setHeight( s.height() + 30 /*140*/ );
1012
1013 if ( s.width() > s.height() * 3 )
1014 s.setHeight( s.width() / 3 );
1015Nur in qt-2.3.8/src/widgets: qlistview.cpp.orig.
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
1032@@ -232,7 +232,7 @@
1033 else
1034 QToolTip::add( this, textLabel );
1035 }
1036 -#endif
1037+#endif
1038 }
1039
1040
1041@@ -326,12 +326,12 @@
1042 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
1043 w = pm.width();
1044 h = pm.height();
1045 -if ( w < 32 )
1046 - w = 32;
1047 -if ( h < 32 )
1048 - h = 32;
1049 +if ( w < 24 )
1050 + w = 24;
1051 +if ( h < 24 )
1052 + h = 24;
1053 } else {
1054 -w = h = 16;
1055 +w = h = 14;
1056 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
1057 w = pm.width();
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
deleted file mode 100644
index 8a63710..0000000
--- a/qt/qt-2.3.8.patch/qte238-allowoverride.patch
+++ b/dev/null
@@ -1,231 +0,0 @@
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-encoding.patch b/qt/qt-2.3.8.patch/qte238-encoding.patch
deleted file mode 100644
index 5ddb43c..0000000
--- a/qt/qt-2.3.8.patch/qte238-encoding.patch
+++ b/dev/null
@@ -1,49 +0,0 @@
1German umlaute quite likely french, italian, spanish did
2not work due QFile::[decode,encode]Name did call QString
3local8Bit,fromLocal8Bit which plainly tried to use utf8
4encoding even if not useful. So a filename got changed
5and QFileInfo recognized the file not beeing present anymore...
6which lead to files not be shown.
7Also with Year-Names problem exists as the base system sent
8it encoded upstream.
9
10If you want to have UTF-8 encoding use LC_CTYPE as always and
11QTextCodec::codecForLocale will use the right UTF-8 encoding.
12
13As fallback the old behaviour was preserved
14
15
16
17
18
19
20
21 --- qt-2.3.8-old/src/tools/qstring.cpp2004-07-23 14:33:02.000000000 +0200
22 +++ qt-2.3.8/src/tools/qstring.cpp2004-07-23 14:32:31.000000000 +0200
23@@ -14469,7 +14469,11 @@
24 return qt_winQString2MB( *this );
25 #endif
26 #ifdef _WS_QWS_
27- return utf8(); // ##### if there is ANY 8 bit format supported?
28+ QTextCodec* codec = QTextCodec::codecForLocale();
29+ return codec
30 + ? codec->fromUnicode(*this)
31 + : utf8();
32+ //return latin1(); // ##### if there is ANY 8 bit format supported?
33 #endif
34 #endif
35 }
36@@ -14515,7 +14519,12 @@
37 return qt_winMB2QString( local8Bit );
38 #endif
39 #ifdef _WS_QWS_
40- return fromUtf8(local8Bit,len);
41+ QTextCodec* codec = QTextCodec::codecForLocale();
42+ if( len < 0) len = qstrlen(local8Bit);
43+ return codec
44 + ? codec->toUnicode(local8Bit, len)
45 + : QString::fromUtf8(local8Bit,len);
46+// return fromLatin1(local8Bit,len);
47 #endif
48 #endif // QT_NO_TEXTCODEC
49 }
diff --git a/qt/qt-2.3.8.patch/qte238-gcc34.patch b/qt/qt-2.3.8.patch/qte238-gcc34.patch
deleted file mode 100644
index 770740d..0000000
--- a/qt/qt-2.3.8.patch/qte238-gcc34.patch
+++ b/dev/null
@@ -1,440 +0,0 @@
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
deleted file mode 100644
index 57c752e..0000000
--- a/qt/qt-2.3.8.patch/qte238-hancomwordcrash.patch
+++ b/dev/null
@@ -1,15 +0,0 @@
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
deleted file mode 100644
index 3351bbb..0000000
--- a/qt/qt-2.3.8.patch/qte238-iconviewspeed.patch
+++ b/dev/null
@@ -1,145 +0,0 @@
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
deleted file mode 100644
index 0ac321f..0000000
--- a/qt/qt-2.3.8.patch/qte238-keyboard.patch
+++ b/dev/null
@@ -1,47 +0,0 @@
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.
diff --git a/qt/qt-2.3.9.patch/qte239-all.patch b/qt/qt-2.3.9.patch/qte239-all.patch
deleted file mode 100644
index 533652d..0000000
--- a/qt/qt-2.3.9.patch/qte239-all.patch
+++ b/dev/null
@@ -1,510 +0,0 @@
1
2#
3# Patch managed by http://www.holgerschurig.de/patcher.html
4#
5
6--- qt-2.3.9-snapshot-20041102/src/iconview/qiconview.cpp~qte239-all
7+++ qt-2.3.9-snapshot-20041102/src/iconview/qiconview.cpp
8@@ -225,6 +225,7 @@
9 QIconView::SelectionMode selectionMode;
10 QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
11 QRect *rubber;
12+ QPixmap *backBuffer;
13 QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
14 *fullRedrawTimer;
15 int rastX, rastY, spacing;
16@@ -2268,6 +2269,7 @@
17 d->currentItem = 0;
18 d->highlightedItem = 0;
19 d->rubber = 0;
20+ d->backBuffer = 0;
21 d->scrollTimer = 0;
22 d->startDragItem = 0;
23 d->tmpCurrentItem = 0;
24@@ -2416,6 +2418,8 @@
25 delete item;
26 item = tmp;
27 }
28+ delete d->backBuffer;
29+ d->backBuffer = 0;
30 delete d->fm;
31 d->fm = 0;
32 #ifndef QT_NO_TOOLTIP
33@@ -2882,6 +2886,48 @@
34 }
35
36 /*!
37+ This function grabs all paintevents that otherwise would have been
38+ processed by the QScrollView::viewportPaintEvent(). Here we use a
39+ doublebuffer to reduce 'on-paint' flickering on QIconView
40+ (and of course its childs).
41+
42+ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
43+*/
44+
45+void QIconView::bufferedPaintEvent( QPaintEvent* pe )
46+{
47+ QWidget* vp = viewport();
48+ QRect r = pe->rect() & vp->rect();
49+ int ex = r.x() + contentsX();
50+ int ey = r.y() + contentsY();
51+ int ew = r.width();
52+ int eh = r.height();
53+
54+ if ( !d->backBuffer )
55 +d->backBuffer = new QPixmap(vp->size());
56+ if ( d->backBuffer->size() != vp->size() ) {
57 +//Resize function (with hysteesis). Uses a good compromise between memory
58 +//consumption and speed (number) of resizes.
59+ float newWidth = (float)vp->width();
60 +float newHeight = (float)vp->height();
61 +if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
62 +{
63 + newWidth *= 1.1892;
64 + newHeight *= 1.1892;
65 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
66 +} else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
67 + d->backBuffer->resize( (int)newWidth, (int)newHeight );
68+ }
69+
70+ QPainter p;
71+ p.begin(d->backBuffer, vp);
72+ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
73+ p.end();
74+ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
75+}
76+
77+/*!
78+
79 \reimp
80 */
81
82@@ -4939,7 +4985,7 @@
83 if ( !d->rubber )
84 drawDragShapes( d->oldDragPos );
85 }
86 - viewportPaintEvent( (QPaintEvent*)e );
87+ bufferedPaintEvent ((QPaintEvent*)e );
88 if ( d->dragging ) {
89 if ( !d->rubber )
90 drawDragShapes( d->oldDragPos );
91@@ -5377,11 +5423,19 @@
92 return;
93
94 if ( item->d->container1 && d->firstContainer ) {
95 -item->d->container1->items.removeRef( item );
96+ //Special-case checking of the last item, since this may be
97+ //called a few times for the same item.
98+ if (item->d->container1->items.last() == item)
99+ item->d->container1->items.removeLast();
100+ else
101+ item->d->container1->items.removeRef( item );
102 }
103 item->d->container1 = 0;
104 if ( item->d->container2 && d->firstContainer ) {
105 -item->d->container2->items.removeRef( item );
106+ if (item->d->container2->items.last() == item)
107+ item->d->container2->items.removeLast();
108+ else
109+ item->d->container2->items.removeRef( item );
110 }
111 item->d->container2 = 0;
112
113--- qt-2.3.9-snapshot-20041102/src/iconview/qiconview.h~qte239-all
114+++ qt-2.3.9-snapshot-20041102/src/iconview/qiconview.h
115@@ -444,6 +444,7 @@
116 virtual void contentsDropEvent( QDropEvent *e );
117 #endif
118
119+ void bufferedPaintEvent( QPaintEvent* );
120 virtual void resizeEvent( QResizeEvent* e );
121 virtual void keyPressEvent( QKeyEvent *e );
122 virtual void focusInEvent( QFocusEvent *e );
123--- qt-2.3.9-snapshot-20041102/src/kernel/qapplication.cpp~qte239-all
124+++ qt-2.3.9-snapshot-20041102/src/kernel/qapplication.cpp
125@@ -35,6 +35,8 @@
126 **
127 **********************************************************************/
128
129 +#define QT_WEAK_SYMBOL__attribute__(( weak ))
130+
131 #include "qobjectlist.h"
132 #include "qobjectdict.h"
133 #include "qapplication.h"
134@@ -937,11 +939,16 @@
135 #ifndef QT_NO_STYLE
136 void QApplication::setStyle( QStyle *style )
137 {
138 +setStyle_NonWeak ( style );
139+}
140+
141+void QApplication::setStyle_NonWeak( QStyle *style )
142+{
143 QStyle* old = app_style;
144- app_style = style;
145
146 if ( startingUp() ) {
147 delete old;
148 +app_style = style;
149 return;
150 }
151
152@@ -962,6 +969,8 @@
153 old->unPolish( qApp );
154 }
155
156+ app_style = style;
157+
158 // take care of possible palette requirements of certain gui
159 // styles. Do it before polishing the application since the style
160 // might call QApplication::setStyle() itself
161@@ -1188,13 +1197,30 @@
162 \sa QWidget::setPalette(), palette(), QStyle::polish()
163 */
164
165-void QApplication::setPalette( const QPalette &palette, bool informWidgets,
166+void QApplication::setPalette ( const QPalette &palette, bool informWidgets,
167 + const char* className )
168+{
169 +setPalette_NonWeak ( palette, informWidgets, className );
170+}
171+
172+void QApplication::setPalette_NonWeak ( const QPalette &palette, bool informWidgets,
173 const char* className )
174 {
175 QPalette pal = palette;
176 #ifndef QT_NO_STYLE
177- if ( !startingUp() )
178+ if ( !startingUp() ) {
179 qApp->style().polish( pal );// NB: non-const reference
180 +if ( className ) {
181 + // if we just polished a class specific palette (this normally
182 + // only called by qt_fix_tooltips - see below), we better re-
183 + // polish the global palette. Some styles like liquid can get
184 + // confused, because they can not detect if the polished palette
185 + // is the global one or only a class specific one.
186 + // (liquid uses this palette to calculate blending pixmaps)
187 + QPalette p = qApp-> palette ( );
188 + qApp->style().polish ( p );
189 +}
190+ }
191 #endif
192 bool all = FALSE;
193 if ( !className ) {
194@@ -1279,6 +1305,12 @@
195 void QApplication::setFont( const QFont &font, bool informWidgets,
196 const char* className )
197 {
198 +setFont_NonWeak ( font, informWidgets, className );
199+}
200+
201+void QApplication::setFont_NonWeak( const QFont &font, bool informWidgets,
202 + const char* className )
203+{
204 bool all = FALSE;
205 if ( !className ) {
206 if ( !app_font ) {
207--- qt-2.3.9-snapshot-20041102/src/kernel/qapplication.h~qte239-all
208+++ qt-2.3.9-snapshot-20041102/src/kernel/qapplication.h
209@@ -61,6 +61,10 @@
210 class QSemaphore;
211 #endif
212
213+#if !defined( QT_WEAK_SYMBOL )
214+#define QT_WEAK_SYMBOL
215+#endif
216+
217 // REMOVE IN 3.0 (just here for moc source compatibility)
218 #define QNonBaseApplication QApplication
219
220@@ -85,7 +89,10 @@
221
222 #ifndef QT_NO_STYLE
223 static QStyle &style();
224 - static void setStyle( QStyle* );
225 + static void setStyle( QStyle* ) QT_WEAK_SYMBOL;
226+private:
227 +static void setStyle_NonWeak( QStyle* );
228+public:
229 #endif
230 #if 1/* OBSOLETE */
231 enum ColorMode { NormalColors, CustomColors };
232@@ -106,11 +113,19 @@
233 #ifndef QT_NO_PALETTE
234 static QPalette palette( const QWidget* = 0 );
235 static void setPalette( const QPalette &, bool informWidgets=FALSE,
236 + const char* className = 0 ) QT_WEAK_SYMBOL;
237+private:
238 + static void setPalette_NonWeak( const QPalette &, bool informWidgets=FALSE,
239 const char* className = 0 );
240+public:
241 #endif
242 static QFont font( const QWidget* = 0 );
243 static void setFont( const QFont &, bool informWidgets=FALSE,
244 + const char* className = 0 ) QT_WEAK_SYMBOL;
245+private:
246 + static void setFont_NonWeak( const QFont &, bool informWidgets=FALSE,
247 const char* className = 0 );
248 +public:
249 static QFontMetrics fontMetrics();
250
251 QWidget *mainWidget() const;
252@@ -207,7 +222,10 @@
253 void qwsSetCustomColors( QRgb *colortable, int start, int numColors );
254 #ifndef QT_NO_QWS_MANAGER
255 static QWSDecoration &qwsDecoration();
256- static void qwsSetDecoration( QWSDecoration *);
257+ static void qwsSetDecoration( QWSDecoration *) QT_WEAK_SYMBOL;
258+private:
259+ static void qwsSetDecoration_NonWeak( QWSDecoration *);
260+public:
261 #endif
262 #endif
263
264--- qt-2.3.9-snapshot-20041102/src/kernel/qapplication_qws.cpp~qte239-all
265+++ qt-2.3.9-snapshot-20041102/src/kernel/qapplication_qws.cpp
266@@ -2905,6 +2905,11 @@
267 */
268 void QApplication::qwsSetDecoration( QWSDecoration *d )
269 {
270 +qwsSetDecoration_NonWeak ( d );
271+}
272+
273+void QApplication::qwsSetDecoration_NonWeak( QWSDecoration *d )
274+{
275 if ( d ) {
276 delete qws_decoration;
277 qws_decoration = d;
278--- qt-2.3.9-snapshot-20041102/src/kernel/qfontdatabase.cpp~qte239-all
279+++ qt-2.3.9-snapshot-20041102/src/kernel/qfontdatabase.cpp
280@@ -35,6 +35,8 @@
281 **
282 **********************************************************************/
283
284+#define QT_WEAK_SYMBOL __attribute__(( weak ))
285+
286 #include "qfontdatabase.h"
287
288 #ifndef QT_NO_FONTDATABASE
289@@ -2424,6 +2426,13 @@
290 const QString &style,
291 const QString &charSet )
292 {
293 +return pointSizes_NonWeak ( family, style, charSet );
294+}
295+
296+QValueList<int> QFontDatabase::pointSizes_NonWeak ( const QString &family,
297+ const QString &style,
298+ const QString &charSet )
299+{
300 QString cs( charSet );
301 if ( charSet.isEmpty() ) {
302 QStringList lst = charSets( family );
303--- qt-2.3.9-snapshot-20041102/src/kernel/qfontdatabase.h~qte239-all
304+++ qt-2.3.9-snapshot-20041102/src/kernel/qfontdatabase.h
305@@ -59,6 +59,10 @@
306 class QDiskFont;
307 #endif
308
309+#if !defined( QT_WEAK_SYMBOL )
310+#define QT_WEAK_SYMBOL
311+#endif
312+
313 class QFontDatabasePrivate;
314
315 class Q_EXPORT QFontDatabase
316@@ -67,9 +71,16 @@
317 QFontDatabase();
318
319 QStringList families( bool onlyForLocale = TRUE ) const;
320+
321+
322 QValueList<int> pointSizes( const QString &family,
323 const QString &style = QString::null,
324 - const QString &charSet = QString::null );
325 + const QString &charSet = QString::null ) QT_WEAK_SYMBOL;
326+private:
327+ QValueList<int> pointSizes_NonWeak( const QString &family,
328 + const QString &style,
329 + const QString &charSet );
330+public:
331 QStringList styles( const QString &family,
332 const QString &charSet = QString::null ) const;
333 QStringList charSets( const QString &familyName,
334--- qt-2.3.9-snapshot-20041102/src/kernel/qgfxraster_qws.cpp~qte239-all
335+++ qt-2.3.9-snapshot-20041102/src/kernel/qgfxraster_qws.cpp
336@@ -4408,7 +4408,7 @@
337 setAlphaType(IgnoreAlpha);
338 if ( w <= 0 || h <= 0 || !ncliprect ) return;
339 GFX_START(QRect(rx+xoffs, ry+yoffs, w+1, h+1))
340-#ifdef QWS_EXPERIMENTAL_FASTPATH
341+#if 0 // def QWS_EXPERIMENTAL_FASTPATH !! this is crashing HancomWord on OZ !!
342 // ### fix for 8bpp
343 // This seems to be reliable now, at least for 16bpp
344
345--- qt-2.3.9-snapshot-20041102/src/kernel/qkeyboard_qws.cpp~qte239-all
346+++ qt-2.3.9-snapshot-20041102/src/kernel/qkeyboard_qws.cpp
347@@ -314,7 +314,7 @@
348 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 63
349 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 64
350 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 65
351 - { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 66
352+ { Qt::Key_F14, 0xffff , 0xffff , 0xffff }, // 66
353 { Qt::Key_Meta, 0xffff , 0xffff , 0xffff }, // 67
354 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 68
355 { Qt::Key_unknown,0xffff , 0xffff , 0xffff }, // 69
356--- qt-2.3.9-snapshot-20041102/src/kernel/qwindowsystem_qws.cpp~qte239-all
357+++ qt-2.3.9-snapshot-20041102/src/kernel/qwindowsystem_qws.cpp
358@@ -913,6 +913,18 @@
359 {
360 }
361
362+static void catchSegvSignal( int )
363+{
364+#ifndef QT_NO_QWS_KEYBOARD
365+ if ( qwsServer )
366 +qwsServer->closeKeyboard();
367+#endif
368+ QWSServer::closedown();
369+ fprintf(stderr, "Segmentation fault.\n");
370+ exit(1);
371+}
372+
373+
374 /*!
375 \class QWSServer qwindowsystem_qws.h
376 \brief Server-specific functionality in Qt/Embedded
377@@ -1038,6 +1050,7 @@
378 }
379
380 signal(SIGPIPE, ignoreSignal); //we get it when we read
381+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
382 #endif
383 focusw = 0;
384 mouseGrabber = 0;
385--- qt-2.3.9-snapshot-20041102/src/tools/qcstring.h~qte239-all
386+++ qt-2.3.9-snapshot-20041102/src/tools/qcstring.h
387@@ -119,7 +119,7 @@
388 // We want to keep source compatibility for 2.x
389 // ### TODO for 4.0: completely remove these and the cstr* functions
390
391-#if !defined(QT_GENUINE_STR)
392+#if 0
393
394 #undefstrlen
395 #define strlen qstrlen
396--- qt-2.3.9-snapshot-20041102/src/tools/qglobal.h~qte239-all
397+++ qt-2.3.9-snapshot-20041102/src/tools/qglobal.h
398@@ -207,8 +207,16 @@
399 #if __GNUC__ == 2 && __GNUC_MINOR__ == 96
400 #define Q_FP_CCAST_BROKEN
401 #endif
402+/* ARM gcc pads structs to 32 bits, even when they contain a single
403+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
404+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
405+ members of a packed struct. (Pointers are OK, because then you
406+ supposedly know what you are doing.) */
407 #if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
408 #define Q_PACKED __attribute__ ((packed))
409+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
410+# define Q_NO_PACKED_REFERENCE
411+# endif
412 #endif
413 #elif defined(__xlC__)
414 #define _CC_XLC_
415--- qt-2.3.9-snapshot-20041102/src/tools/qstring.cpp~qte239-all
416+++ qt-2.3.9-snapshot-20041102/src/tools/qstring.cpp
417@@ -14469,7 +14469,11 @@
418 return qt_winQString2MB( *this );
419 #endif
420 #ifdef _WS_QWS_
421- return utf8(); // ##### if there is ANY 8 bit format supported?
422+ QTextCodec* codec = QTextCodec::codecForLocale();
423+ return codec
424 + ? codec->fromUnicode(*this)
425 + : utf8();
426+ //return latin1(); // ##### if there is ANY 8 bit format supported?
427 #endif
428 #endif
429 }
430@@ -14515,7 +14519,12 @@
431 return qt_winMB2QString( local8Bit );
432 #endif
433 #ifdef _WS_QWS_
434- return fromUtf8(local8Bit,len);
435+ QTextCodec* codec = QTextCodec::codecForLocale();
436+ if( len < 0) len = qstrlen(local8Bit);
437+ return codec
438 + ? codec->toUnicode(local8Bit, len)
439 + : QString::fromUtf8(local8Bit,len);
440+// return fromLatin1(local8Bit,len);
441 #endif
442 #endif // QT_NO_TEXTCODEC
443 }
444--- qt-2.3.9-snapshot-20041102/src/widgets/qcommonstyle.cpp~qte239-all
445+++ qt-2.3.9-snapshot-20041102/src/widgets/qcommonstyle.cpp
446@@ -572,7 +572,7 @@
447 bool enabled, bool active )
448 {
449 #ifndef QT_NO_MENUBAR
450-#ifndef QT_NO_STYLE_SGI
451+#if 1 // #ifndef QT_NO_STYLE_SGI
452 if (draw_menu_bar_impl != 0) {
453 QDrawMenuBarItemImpl impl = draw_menu_bar_impl;
454 (this->*impl)(p, x, y, w, h, mi, g, enabled, active);
455--- qt-2.3.9-snapshot-20041102/src/widgets/qlistview.cpp~qte239-all
456+++ qt-2.3.9-snapshot-20041102/src/widgets/qlistview.cpp
457@@ -5051,9 +5051,9 @@
458 l = l->childItem ? l->childItem : l->siblingItem;
459
460 if ( l && l->height() )
461 -s.setHeight( s.height() + 10 * l->height() );
462- else
463 -s.setHeight( s.height() + 140 );
464 +s.setHeight( s.height() + 4 /*10*/ * l->height() );
465+ else // ^v much too big for handhelds
466 +s.setHeight( s.height() + 30 /*140*/ );
467
468 if ( s.width() > s.height() * 3 )
469 s.setHeight( s.width() / 3 );
470--- qt-2.3.9-snapshot-20041102/src/widgets/qscrollview.cpp~qte239-all
471+++ qt-2.3.9-snapshot-20041102/src/widgets/qscrollview.cpp
472@@ -1285,6 +1285,9 @@
473 case QEvent::LayoutHint:
474 d->autoResizeHint(this);
475 break;
476 +case QEvent::WindowActivate:
477 +case QEvent::WindowDeactivate:
478 + return TRUE;
479 default:
480 break;
481 }
482--- qt-2.3.9-snapshot-20041102/src/widgets/qtoolbutton.cpp~qte239-all
483+++ qt-2.3.9-snapshot-20041102/src/widgets/qtoolbutton.cpp
484@@ -238,7 +238,7 @@
485 else
486 QToolTip::add( this, textLabel );
487 }
488 -#endif
489+#endif
490 }
491
492
493@@ -332,12 +332,12 @@
494 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Large, QIconSet::Normal);
495 w = pm.width();
496 h = pm.height();
497 -if ( w < 32 )
498 - w = 32;
499 -if ( h < 32 )
500 - h = 32;
501 +if ( w < 24 )
502 + w = 24;
503 +if ( h < 24 )
504 + h = 24;
505 } else {
506 -w = h = 16;
507 +w = h = 14;
508 QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
509 w = pm.width();
510 h = pm.height();
diff --git a/qt/qt-2.3.9.patch/qte239-qwsmouse.patch b/qt/qt-2.3.9.patch/qte239-qwsmouse.patch
deleted file mode 100644
index 865516e..0000000
--- a/qt/qt-2.3.9.patch/qte239-qwsmouse.patch
+++ b/dev/null
@@ -1,301 +0,0 @@
1#
2# Patch managed by http://www.holgerschurig.de/patcher.html
3#
4
5--- qt-2.3.9-snapshot-20041211/src/kernel/qwsmouse_qws.cpp~tslib.patch
6+++ qt-2.3.9-snapshot-20041211/src/kernel/qwsmouse_qws.cpp
7@@ -7,6 +7,14 @@
8 **
9 ** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
10 **
11+** Portions Copyright (C) 2003 Texas Instruments, Inc.
12+** Rights to said portions for use under the GPL and QPL licenses
13+** are hereby granted to Trolltech AS.
14+**
15+** Portions Copyright (C) 2004 Holger Hans Peter Freyther <freyther@handhelds.org>
16+** Rights to said portions for use under the GPL and QPL licenses
17+** are hereby granted to Trolltech AS.
18+**
19 ** This file is part of the kernel module of the Qt GUI Toolkit.
20 **
21 ** This file may be distributed and/or modified under the terms of the
22@@ -60,6 +68,10 @@
23 #include <linux/tpanel.h>
24 #endif
25
26+#ifdef QWS_TSLIB
27+#include <tslib.h>
28+#endif
29+
30 //#define QT_QWS_K2
31
32 #if defined(QT_QWS_IPAQ) || defined(QT_QWS_K2)
33@@ -1124,6 +1136,221 @@
34 return sent;
35 }
36
37+
38+class QTSLibHandler : public QCalibratedMouseHandler
39+{
40+ Q_OBJECT
41+public:
42+ QTSLibHandler();
43+ ~QTSLibHandler();
44+
45+ virtual void clearCalibration();
46+ virtual void calibrate( QWSPointerCalibrationData * );
47+
48+ static int sortByX( const void*, const void* );
49+ static int sortByY( const void*, const void* );
50+private:
51+ void openTs();
52+ void closeTs();
53+ void interpolateSample();
54+
55+private:
56+ bool raw : 1;
57+#ifdef QWS_TSLIB
58+ struct tsdev *ts;
59+#endif
60+ QSocketNotifier *m_notify;
61+
62+private slots:
63+ void readMouseData();
64+};
65+
66+QTSLibHandler::QTSLibHandler()
67+ : raw(false), m_notify(0l)
68+{
69+ openTs();
70+}
71+
72+QTSLibHandler::~QTSLibHandler()
73+{
74+ closeTs();
75+}
76+
77+void QTSLibHandler::openTs()
78+{
79+#ifdef QWS_TSLIB
80+ char *tsdevice;
81+
82+ if( ( tsdevice = getenv( "TSLIB_TSDEVICE" ) ) != NULL ) {
83+ ts = ts_open( tsdevice, 1 );
84+ } else {
85+ ts = ts_open( "/dev/ts", 1 );
86+ }
87+
88+ if (!ts) {
89+ qWarning( "Cannot open touchscreen (%s)", strerror( errno ) );
90+ return;
91+ }
92+
93+ if (ts_config( ts )) {
94+ qWarning( "Cannot configure touchscreen (%s)", strerror( errno ) );
95+ return;
96+ }
97+
98+
99+ m_notify = new QSocketNotifier( ts_fd(ts), QSocketNotifier::Read, this );
100+ connect( m_notify, SIGNAL(activated(int)), this, SLOT(readMouseData()));
101+#endif
102+}
103+
104+void QTSLibHandler::closeTs()
105+{
106+#ifdef QWS_TSLIB
107+ if (ts)
108+ ts_close(ts);
109+
110+ delete m_notify;
111+ m_notify = 0; ts = 0;
112+ raw = false;
113+#endif
114+
115+}
116+
117+void QTSLibHandler::clearCalibration()
118+{
119+ raw = true;
120+}
121+
122+
123+void QTSLibHandler::calibrate( QWSPointerCalibrationData *cd )
124+{
125+ QPoint dev_tl = cd->devPoints[ QWSPointerCalibrationData::TopLeft ];
126+ QPoint dev_br = cd->devPoints[ QWSPointerCalibrationData::BottomRight ];
127+ QPoint screen_tl = cd->screenPoints[ QWSPointerCalibrationData::TopLeft ];
128+ QPoint screen_br = cd->screenPoints[ QWSPointerCalibrationData::BottomRight ];
129+ int a, b, c, d, e, f, s;
130+
131+ s = 1 << 16;
132+
133+ a = s * (screen_tl.x() - screen_br.x() ) / (dev_tl.x() - dev_br.x());
134+ b = 0;
135+ c = s * screen_tl.x() - a * dev_tl.x();
136+
137+ d = 0;
138+ e = s * (screen_tl.y() - screen_br.y() ) / (dev_tl.y() - dev_br.y());
139+ f = s * screen_tl.y() - e * dev_tl.y();
140+
141+ QString calFile = "/etc/pointercal";
142+#ifndef QT_NO_TEXTSTREAM
143+ QFile file( calFile );
144+ if ( file.open( IO_WriteOnly ) ) {
145+ QTextStream t( &file );
146+ t << a << " " << b << " " << c << " ";
147+ t << d << " " << e << " " << f << " " << s;
148+ file.flush(); closeTs();
149+ openTs();
150+ } else
151+#endif
152+ {
153+ qDebug( "Could not save calibration: %s", calFile.latin1() );
154+ }
155+}
156+
157+void QTSLibHandler::readMouseData()
158+{
159+#ifdef QWS_TSLIB
160+ if(!qt_screen)
161+ return;
162+
163+ /*
164+ * After clear Calibration
165+ * we're in raw mode and do some easy median
166+ * search.
167+ */
168+ if (raw )
169+ return interpolateSample();
170+
171+ static struct ts_sample sample;
172+ static int ret;
173+
174+ /*
175+ * Ok. We need to see if we can read more than one event
176+ * We do this not to lose an update.
177+ */
178+ while ( true ) {
179+ if ((ret = ts_read(ts, &sample, 1)) != 1 )
180+ return;
181+
182+
183+ QPoint pos( sample.x, sample.y );
184+ emit mouseChanged( pos, sample.pressure != 0 ? 1 : 0 );
185+ }
186+#endif
187+}
188+
189+
190+/*
191+ * Lets take all down events and then sort them
192+ * and take the event in the middle.
193+ *
194+ * inspired by testutils.c
195+ */
196+void QTSLibHandler::interpolateSample() {
197+ static struct ts_sample samples[25];
198+ int index = 0;
199+ int ret;
200+
201+ do {
202+ /* fill only the last sample again */
203+ if ( index >= 25 )
204+ index = 24;
205+
206+ /* we're opened non-blocking */
207+ if((ret= ts_read_raw(ts, &samples[index], 1 ) ) != 1 ) {
208+ /* no event yet, so try again */
209+ if (ret==-1 ) {
210+ index--;
211+ continue;
212+ }
213+ }
214+ }while (samples[index++].pressure != 0);
215+
216+ /*
217+ * index is maximal 25 and we at least one sample
218+ */
219+ if( index >= 25 )
220+ index = 24;
221+ int x, y;
222+
223+ /*
224+ * now let us use the median value
225+ * even index does not have an item in the middle
226+ * so let us take the average of n/2 and (n/2)-1 as the middle
227+ */
228+ int m = index/2;
229+ ::qsort(samples, index, sizeof(ts_sample), QTSLibHandler::sortByX);
230+ x = (index % 2 ) ? samples[m].x :
231+ ( samples[m-1].x + samples[m].x )/2;
232+
233+ ::qsort(samples, index, sizeof(ts_sample), QTSLibHandler::sortByY);
234+ y = (index % 2 ) ? samples[m].y :
235+ ( samples[m-1].y + samples[m].y )/2;
236+
237+ emit mouseChanged( QPoint(x, y), 1 );
238+ emit mouseChanged( QPoint(0, 0), 0 );
239+}
240+
241+int QTSLibHandler::sortByX( const void* one, const void* two) {
242+ return reinterpret_cast<const struct ts_sample*>(one)->x -
243+ reinterpret_cast<const struct ts_sample*>(two)->x;
244+}
245+
246+int QTSLibHandler::sortByY( const void* one, const void* two) {
247+ return reinterpret_cast<const struct ts_sample*>(one)->y -
248+ reinterpret_cast<const struct ts_sample*>(two)->y;
249+}
250+
251+
252 /*
253 * Handler for /dev/tpanel Linux kernel driver
254 */
255@@ -1731,7 +1958,9 @@
256
257 case TPanel:
258 #if defined(QWS_CUSTOMTOUCHPANEL)
259- handler = new QCustomTPanelHandlerPrivate(mouseProtocol,mouseDev);
260+ handler = new QCustomTPanelHandlerPrivate(mouseProtocol,mouseDev);
261+#elif defined(QWS_TSLIB)
262+ handler = new QTSLibHandler();
263 #elif defined(QT_QWS_YOPY)
264 handler = new QYopyTPanelHandlerPrivate(mouseProtocol,mouseDev);
265 #elif defined(QT_QWS_IPAQ) || defined(QT_QWS_SL5XXX) || defined(QT_QWS_K2)
266--- qt-2.3.9-snapshot-20041211/configure~tslib.patch
267+++ qt-2.3.9-snapshot-20041211/configure
268@@ -406,6 +406,9 @@
269 -kde)
270 KDE=yes
271 ;;
272+ -tslib)
273+ TSLIB=YES
274+ ;;
275 -no-g++-exceptions)
276 GPLUSPLUS_EXCEPTIONS=no
277 ;;
278@@ -1290,6 +1293,9 @@
279 set to point to a KDE 2 installation.
280 See http://www.kde.org
281
282+ -tslib ............. Use the TSLib (touchscreen access library) mouse handler
283+ by default, instead of the normal device default.
284+
285 -no-g++-exceptions . Disable exceptions on platforms using the GNU C++
286 compiler by using the -fno-exceptions flag.
287
288@@ -1353,6 +1359,13 @@
289 [ "x$SM" = "xno" ] && QT_CXX="${QT_CXX} -DQT_NO_SM_SUPPORT"
290 [ "x$XFT" = "xyes" ] && QT_CXX="${QT_CXX} -DQT_XFT"
291 [ "x$XFT" = "xno" ] && QT_CXX="${QT_CXX} -DQT_NO_XKB"
292+
293+if [ "x$TSLIB" = "xyes" ]
294+then
295+ QT_CXX="${QT_CXX} -DQWS_TSLIB"
296+ QT_LIBS="${QT_LIBS} -lts"
297+fi
298+
299 if [ "x$THREAD" = "xyes" ]
300 then
301 cat >src-mt.mk <<EOF