summaryrefslogtreecommitdiff
path: root/qte
diff options
context:
space:
mode:
authorChris Larson <clarson@kergoth.com>2004-11-09 00:36:47 +0000
committerChris Larson <clarson@kergoth.com>2004-11-09 00:36:47 +0000
commitf96441b9faf769c9ecdd4d338b605ea3d0cc4010 (patch)
treeedb17ec2c4ea13c5acb1c7350957a249a820e28d /qte
parentb6588aa6851fb220cedc387d21c51513ef8d67f4 (diff)
Disable bk EOLN_NATIVE conversions on all files in packages FILESPATHs, to prevent it screwing up patches.
BKrev: 4190111fA4MuVozAqwE7xOSL9fr-TA
Diffstat (limited to 'qte')
-rw-r--r--qte/qte-2.3.7/compile.patch19
-rw-r--r--qte/qte-2.3.7/daemonize.patch113
-rw-r--r--qte/qte-2.3.7/devfs.patch164
-rw-r--r--qte/qte-2.3.7/encoding.patch49
-rw-r--r--qte/qte-2.3.7/kernel-keymap-tosa.patch79
-rw-r--r--qte/qte-2.3.7/lefthand.patch126
-rw-r--r--qte/qte-2.3.7/no-moc.patch37
-rw-r--r--qte/qte-2.3.7/qiconview-speed.patch126
-rw-r--r--qte/qte-2.3.7/qtopia.patch120
-rw-r--r--qte/qte-2.3.7/sharp_char.h309
-rw-r--r--qte/qte-2.3.7/switches.h74
-rw-r--r--qte/qte-2.3.7/update-qtfontdir62
-rw-r--r--qte/qte-2.3.8-snapshot/compile.patch19
-rw-r--r--qte/qte-2.3.8-snapshot/daemonize.patch113
-rw-r--r--qte/qte-2.3.8-snapshot/encoding.patch49
-rw-r--r--qte/qte-2.3.8-snapshot/fix-qgfxraster.patch29
-rw-r--r--qte/qte-2.3.8-snapshot/lefthand.patch126
-rw-r--r--qte/qte-2.3.8-snapshot/no-moc.patch32
-rw-r--r--qte/qte-2.3.8-snapshot/qconfig-qpe.h124
-rw-r--r--qte/qte-2.3.8-snapshot/qpe.patch100
-rw-r--r--qte/qte-2.3.8-snapshot/qte238-iconviewspeed.patch145
-rw-r--r--qte/qte-2.3.8-snapshot/qtopia.patch120
-rw-r--r--qte/qte-2.3.8-snapshot/qwsmouse-tosa.diff27
-rw-r--r--qte/qte-2.3.8-snapshot/sharp_char.h309
-rw-r--r--qte/qte-2.3.8-snapshot/simpad.patch403
-rw-r--r--qte/qte-2.3.8-snapshot/switches.h74
-rw-r--r--qte/qte-2.3.8-snapshot/tslib.patch349
-rw-r--r--qte/qte-2.3.8-snapshot/update-qtfontdir62
-rw-r--r--qte/qte-2.3.8-snapshot/vt-switch.patch205
29 files changed, 3564 insertions, 0 deletions
diff --git a/qte/qte-2.3.7/compile.patch b/qte/qte-2.3.7/compile.patch
index e69de29bb2..ce4ca82fcb 100644
--- a/qte/qte-2.3.7/compile.patch
+++ b/qte/qte-2.3.7/compile.patch
@@ -0,0 +1,19 @@
+--- configure 2002-09-06 20:04:34.000000000 -0400
++++ configure.new 2002-09-06 20:04:16.000000000 -0400
+@@ -250,7 +250,7 @@
+ PLATFORM=
+ XPLATFORM=
+ FROMMAKE=
+-QT_CXX=""
++QT_CXX=" \$(CXXFLAGS_EXTRA)"
+
+
+ # Parse the arguments, setting things to "yes" or "no".
+@@ -1356,6 +1356,7 @@
+ COMPILER=`echo $PLATFORM | cut -f 2- -d-`
+ if [ "$COMPILER" = "g++" ]
+ then
++ QT_CXX="$QT_CXX -fpermissive"
+ if [ "$GPLUSPLUS_EXCEPTIONS" = "no" ]
+ then
+ QT_C="$QT_C -fno-exceptions"
diff --git a/qte/qte-2.3.7/daemonize.patch b/qte/qte-2.3.7/daemonize.patch
index e69de29bb2..1f83398988 100644
--- a/qte/qte-2.3.7/daemonize.patch
+++ b/qte/qte-2.3.7/daemonize.patch
@@ -0,0 +1,113 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.7/src/kernel/qapplication_qws.cpp~daemonize 2004-07-17 22:47:54.840820000 +0200
++++ qt-2.3.7/src/kernel/qapplication_qws.cpp 2004-07-17 23:34:32.407525912 +0200
+@@ -103,6 +103,7 @@
+ #endif
+
+ #include <sys/time.h>
++#include <syslog.h>
+
+ #if defined(_OS_AIX_) && defined(_CC_GNU_)
+ #include <sys/select.h>
+@@ -162,6 +163,7 @@
+ //these used to be environment variables, they are initialized from
+ //environment variables in
+
++bool qws_daemon = TRUE;
+ bool qws_savefonts = FALSE;
+ bool qws_screen_is_interlaced=FALSE; //### should be detected
+ bool qws_shared_memory = FALSE;
+@@ -1614,6 +1616,10 @@
+ mwGeometry = argv[i];
+ } else if ( arg == "-shared" ) {
+ qws_shared_memory = TRUE;
++ } else if ( arg == "-daemon" ) {
++ qws_daemon = TRUE;
++ } else if ( arg == "-nodaemon" ) {
++ qws_daemon = FALSE;
+ } else if ( arg == "-noshared" ) {
+ qws_shared_memory = FALSE;
+ } else if ( arg == "-savefonts" ) {
+@@ -1670,6 +1676,78 @@
+ qt_appType = type;
+ qws_single_process = TRUE;
+
++ /* Daemonize the server process -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
++ * Added a new command line option which only is relevant if the application is created as a GuiServer.
++ * The option is -daemon respectively -nodaemon. If in daemon mode (which is the default now), the
++ * server will detach from the controlling terminal and continue as a daemon. This is done via the standard
++ * UNIX double fork magic.
++ */
++ if ( qws_daemon )
++ {
++ qWarning( "qt_init() - starting in daemon mode..." );
++
++ int pid1 = fork();
++ if ( pid1 == -1 )
++ {
++ qWarning( "qt_init() - can't perform initial fork: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( pid1 ) _exit( 0 ); // ok, first fork performed
++
++ chdir( "/" );
++ setsid();
++ umask(0);
++ close(0);
++ close(1);
++ close(2);
++
++ int fdnull = ::open( "/dev/null", O_RDWR );
++ if ( fdnull == -1 )
++ {
++ syslog( 3, "qt_init() - can't open /dev/null to redirect std{in|out|err}: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ dup2( fdnull, 0 ); // stdin
++ dup2( fdnull, 1 ); // stdout
++ dup2( fdnull, 2 ); // stderr
++
++ int pid2 = fork();
++ if ( pid2 == -1 )
++ {
++ syslog( 3, "qt_init() - can't perform initial fork: %s", strerror( errno ) );
++ exit( -1 );
++ }
++ if ( pid2 )
++ {
++ syslog( 4, "qt_init() [%d] - successfully entered daemon mode", pid2 );
++ _exit( 0 ); // ok, second fork performed
++ }
++ }
++
++ /*
++ * , ,
++ * /( )`
++ * \ \___ / | B E W A R E !
++ * /- _ `-/ ' We are a DAEMON now!
++ * (/\/ \ \ /\
++ * / / | ` \
++ * O O ) / |
++ * `-^--'`< '
++ * (_.) _ ) /
++ * `.___/` /
++ * `-----' /
++ * <----. __ / __ \
++ * <----|====O)))==) \) /====
++ * <----' `--' `.__,' \
++ * | |
++ * \ /
++ * ______( (_ / \______
++ * (FL) ,' ,-----' | \
++ * `--{__________) \/
++ *
++ */
++
++
+ /* Allocate a dedicated virtual terminal -- (C) Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
+ * Added a new command line option which only is relevant if the application is created as a GuiServer.
+ * The option is -terminal <num>, where <num> specifies the virtual terminal to be occupied by the server.
diff --git a/qte/qte-2.3.7/devfs.patch b/qte/qte-2.3.7/devfs.patch
index e69de29bb2..822faa7fd1 100644
--- a/qte/qte-2.3.7/devfs.patch
+++ b/qte/qte-2.3.7/devfs.patch
@@ -0,0 +1,164 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.7/configure~devfs
++++ qt-2.3.7/configure
+@@ -402,6 +402,9 @@
+ -tslib)
+ TSLIB=yes
+ ;;
++ -devfs)
++ DEVFS=yes
++ ;;
+ -no-g++-exceptions)
+ GPLUSPLUS_EXCEPTIONS=no
+ ;;
+@@ -1261,6 +1264,8 @@
+ -tslib ............. Use the TSLib (touchscreen access library) mouse handler
+ by default, instead of the normal device default.
+
++ -devfs ............. Use devfs /dev paths.
++
+ -no-g++-exceptions . Disable exceptions on platforms using the GNU C++
+ compiler by using the -fno-exceptions flag.
+
+@@ -1327,6 +1332,11 @@
+ QT_LIBS="${QT_LIBS} -lts"
+ fi
+
++if [ "x$DEVFS" = "xyes" ]
++then
++ QT_CXX="${QT_CXX} -DQT_QWS_DEVFS"
++fi
++
+ if [ "x$THREAD" = "xyes" ]
+ then
+ cat >src-mt.mk <<EOF
+--- qt-2.3.7/src/kernel/qgfxlinuxfb_qws.cpp~devfs
++++ qt-2.3.7/src/kernel/qgfxlinuxfb_qws.cpp
+@@ -101,11 +101,19 @@
+ bool QLinuxFbScreen::connect( const QString &displaySpec )
+ {
+ // Check for explicitly specified device
++#ifdef QT_QWS_DEVFS
++ QRegExp r( "/dev/fb/[0-9]+" );
++#else
+ QRegExp r( "/dev/fb[0-9]+" );
++#endif
+ int len;
+ int m = r.match( displaySpec, 0, &len );
+
++#ifdef QT_QWS_DEVFS
++ QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb/0");
++#else
+ QString dev = (m>=0) ? displaySpec.mid( m, len ) : QString("/dev/fb0");
++#endif
+
+ fd=open( dev.latin1(), O_RDWR );
+ if (fd<0) {
+@@ -121,14 +129,22 @@
+
+ /* Get fixed screen information */
+ if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
++#ifdef QT_QWS_DEVFS
++ perror("reading /dev/fb/0");
++#else
+ perror("reading /dev/fb0");
++#endif
+ qWarning("Error reading fixed information");
+ return FALSE;
+ }
+
+ /* Get variable screen information */
+ if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)) {
++#ifdef QT_QWS_DEVFS
++ perror("reading /dev/fb/0");
++#else
+ perror("reading /dev/fb0");
++#endif
+ qWarning("Error reading variable information");
+ return FALSE;
+ }
+@@ -165,7 +181,11 @@
+ data += dataoffset;
+
+ if ((int)data == -1) {
+- perror("mapping /dev/fb0");
++#ifdef QT_QWS_DEVFS
++ perror("reading /dev/fb/0");
++#else
++ perror("reading /dev/fb0");
++#endif
+ qWarning("Error: failed to map framebuffer device to memory.");
+ return FALSE;
+ }
+@@ -229,7 +249,11 @@
+
+ static void writeTerm(const char* termctl, int sizeof_termctl)
+ {
++#ifdef QT_QWS_DEVFS
++ const char* tt[]={"/dev/vc/1","/dev/console","/dev/tty",0};
++#else
+ const char* tt[]={"/dev/console","/dev/tty","/dev/tty0",0};
++#endif
+ const char** dev=tt;
+ while (*dev) {
+ int tty=::open(*dev,O_WRONLY);
+@@ -792,7 +816,11 @@
+ fb_var_screeninfo vinfo;
+
+ if (ioctl(fd, FBIOGET_FSCREENINFO, &finfo)) {
++#ifdef QT_QWS_DEVFS
++ perror("reading /dev/fb/0");
++#else
+ perror("reading /dev/fb0");
++#endif
+ qFatal("Error reading fixed information");
+ }
+
+--- qt-2.3.7/src/kernel/qkeyboard_qws.cpp~devfs
++++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp
+@@ -1017,7 +1017,11 @@
+
+ QWSTtyKeyboardHandler::QWSTtyKeyboardHandler(const QString& device)
+ {
++#ifdef QT_QWS_DEVFS
++ kbdFD=open(device.isEmpty() ? "/dev/vc/1" : device.latin1(), O_RDWR | O_NDELAY, 0);
++#else
+ kbdFD=open(device.isEmpty() ? "/dev/tty0" : device.latin1(), O_RDWR | O_NDELAY, 0);
++#endif
+
+ if ( kbdFD >= 0 ) {
+ QSocketNotifier *notifier;
+--- qt-2.3.7/src/kernel/qwindowsystem_qws.cpp~devfs
++++ qt-2.3.7/src/kernel/qwindowsystem_qws.cpp
+@@ -762,7 +762,11 @@
+ void openDevice()
+ {
+ if ( !sn ) {
++#ifdef QT_QWS_DEVFS
++ int fd = ::open("/dev/sound/dsp",O_RDWR);
++#else
+ int fd = ::open("/dev/dsp",O_RDWR);
++#endif
+ if ( fd < 0 ) {
+ // For debugging purposes - defined QT_NO_SOUND if you
+ // don't have sound hardware!
+--- qt-2.3.7/src/kernel/qsoundqss_qws.cpp~devfs
++++ qt-2.3.7/src/kernel/qsoundqss_qws.cpp
+@@ -388,7 +388,12 @@
+ //
+ // Don't block open right away.
+ //
+- if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1) {
++#ifdef QT_QWS_DEVFS
++ if ((fd = ::open("/dev/sound/dsp", O_WRONLY|O_NONBLOCK)) != -1)
++#else
++ if ((fd = ::open("/dev/dsp", O_WRONLY|O_NONBLOCK)) != -1)
++#endif
++ {
+ int flags = fcntl(fd, F_GETFL);
+ flags &= ~O_NONBLOCK;
+ if (fcntl(fd, F_SETFL, flags) != 0) {
diff --git a/qte/qte-2.3.7/encoding.patch b/qte/qte-2.3.7/encoding.patch
index e69de29bb2..5ddb43c2f6 100644
--- a/qte/qte-2.3.7/encoding.patch
+++ b/qte/qte-2.3.7/encoding.patch
@@ -0,0 +1,49 @@
+German umlaute quite likely french, italian, spanish did
+not work due QFile::[decode,encode]Name did call QString
+local8Bit,fromLocal8Bit which plainly tried to use utf8
+encoding even if not useful. So a filename got changed
+and QFileInfo recognized the file not beeing present anymore...
+which lead to files not be shown.
+Also with Year-Names problem exists as the base system sent
+it encoded upstream.
+
+If you want to have UTF-8 encoding use LC_CTYPE as always and
+QTextCodec::codecForLocale will use the right UTF-8 encoding.
+
+As fallback the old behaviour was preserved
+
+
+
+
+
+
+
+--- qt-2.3.8-old/src/tools/qstring.cpp 2004-07-23 14:33:02.000000000 +0200
++++ qt-2.3.8/src/tools/qstring.cpp 2004-07-23 14:32:31.000000000 +0200
+@@ -14469,7 +14469,11 @@
+ return qt_winQString2MB( *this );
+ #endif
+ #ifdef _WS_QWS_
+- return utf8(); // ##### if there is ANY 8 bit format supported?
++ QTextCodec* codec = QTextCodec::codecForLocale();
++ return codec
++ ? codec->fromUnicode(*this)
++ : utf8();
++ //return latin1(); // ##### if there is ANY 8 bit format supported?
+ #endif
+ #endif
+ }
+@@ -14515,7 +14519,12 @@
+ return qt_winMB2QString( local8Bit );
+ #endif
+ #ifdef _WS_QWS_
+- return fromUtf8(local8Bit,len);
++ QTextCodec* codec = QTextCodec::codecForLocale();
++ if( len < 0) len = qstrlen(local8Bit);
++ return codec
++ ? codec->toUnicode(local8Bit, len)
++ : QString::fromUtf8(local8Bit,len);
++// return fromLatin1(local8Bit,len);
+ #endif
+ #endif // QT_NO_TEXTCODEC
+ }
diff --git a/qte/qte-2.3.7/kernel-keymap-tosa.patch b/qte/qte-2.3.7/kernel-keymap-tosa.patch
index e69de29bb2..5ff7b03c48 100644
--- a/qte/qte-2.3.7/kernel-keymap-tosa.patch
+++ b/qte/qte-2.3.7/kernel-keymap-tosa.patch
@@ -0,0 +1,79 @@
+--- qt-2.3.7/src/kernel/qkeyboard_qws.cpp~kernel-keymap-tosa.patch
++++ qt-2.3.7/src/kernel/qkeyboard_qws.cpp
+@@ -231,14 +231,24 @@
+ { Qt::Key_CapsLock, 0xffff , 0xffff , 0xffff }, // 3c 60
+ { Qt::Key_At, '@' , 's' , 'S'-64 }, // 3d
+ { Qt::Key_Question, '?' , '?' , 0xffff }, // 3e
++#ifdef QT_QWS_SL6000
++ { Qt::Key_Comma, ',' , ';' , 0xffff }, // 3f
++ { Qt::Key_Period, '.' , ':' , 0xffff }, // 40
++#else
+ { Qt::Key_Comma, ',' , ',' , 0xffff }, // 3f
+ { Qt::Key_Period, '.' , '.' , 0xffff }, // 40
++#endif
+ { Qt::Key_Tab, 9 , '\\' , 0xffff }, // 41
+ { Qt::Key_X, 0xffff , 'x' , 'X'-64 }, // 42
+ { Qt::Key_C, 0xffff , 'c' , 'C'-64 }, // 43
+ { Qt::Key_V, 0xffff , 'v' , 'V'-64 }, // 44
++#ifdef QT_QWS_SL6000
++ { Qt::Key_Slash, '/' , '?' , 0xffff }, // 45
++ { Qt::Key_Apostrophe, '\'' , '"' , 0xffff }, // 46 70
++#else
+ { Qt::Key_Slash, '/' , '/' , 0xffff }, // 45
+ { Qt::Key_Apostrophe, '\'' , '\'' , 0xffff }, // 46 70
++#endif
+ { Qt::Key_Semicolon, ';' , ';' , 0xffff }, // 47
+ { Qt::Key_QuoteDbl, '\"' , '\"' , 0xffff }, // 48
+ { Qt::Key_Colon, ':' , ':' , 0xffff }, // 49
+@@ -388,6 +398,32 @@
+ static const int keyMSize = sizeof(keyM)/sizeof(QWSServer::KeyMap)-1;
+ static QIntDict<QWSServer::KeyMap> *overrideMap = 0;
+
++#if defined(QT_QWS_SL6000)
++/* Translation table to obtain a 'legacy' keycode corresponding to
++ Fn+key on tosa
++ Other devices obviously send different keycodes while Fn is down, tosa sends
++ the same keys as usual bracketed by Fn-down/Fn-up.
++ This table is used while Fn is down to obtain the key-code the SL-5xxx would
++ send, so the rest of keyboard processing does not need to be adjusted. */
++static const uchar sl6kFnTrans[] = { 0x00,
++ 0x5e, 0x3a, 0x43, 0x4a, 0x2b, 0x4b, 0x4c, 0x4d, 0x30, 0x4e, 0x4f, 0x50,
++ // !, -, cpy, #, 3, $, %, _, 8, &, *, (,
++ 0x53, 0x3b, 0x31, 0x32, 0x29, 0x2c, 0x3d, 0x2d, 0x2f, 0x44, 0x2a, 0x42,
++ // =, +, 9, 0, 1, 4, @, 5, 7, pste, 2, cut,
++ // padding for keycodes which don't ever get directly sent on tosa
++ // except for y->6, ret->'>', BS->DEL
++ 0x2e, 0x00, 0x00, 0x57, 0x00, 0x00, 0x51, 0x00, 0x00, 0x00, 0x00, 0x00,
++ // 6, _Z, shft, ret, F11, fn, BS?, F31, lght, cncl, lft, up,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ // dn, rght, OK, home, 1, 2, 3, 4, 5, 6, 7, 8,
++ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
++ // 9, 0, UNK, UNK, UNK, UNK, UNK, UNK, UNK, -, +, caps,
++ // here are a few translatable codes again...
++ 0x00, 0x00, 0x54, 0x56, 0x3c, 0x00, 0x00, 0x00, 0x70, 0x55 };
++ // @, ?, ,, ., tab, cut, cpy, pste, /, '
++static const int sl6kFnSize = sizeof(sl6kFnTrans);
++#endif
++
+ /*!
+ Changes the mapping of the keyboard; adding the scancode to Unicode
+ mappings from \a map. The server takes over ownership of \a map
+@@ -697,6 +733,18 @@
+
+ void QWSPC101KeyboardHandler::doKey(uchar code)
+ {
++
++ qDebug("Key pressed: %x", code);
++
++#if defined(QT_QWS_SL6000)
++ if (fn)
++ if (code < sl6kFnSize) {
++ code = sl6kFnTrans[code];
++ qDebug("Translated Fn: %x", code);
++ } else
++ qDebug("Untranslatable Fn: %x", code);
++#endif
++
+ #if defined(QT_QWS_IPAQ)
+ // map ipaq 'action' key (0x60, 0xe0)
+ // to keycode for space.
diff --git a/qte/qte-2.3.7/lefthand.patch b/qte/qte-2.3.7/lefthand.patch
index e69de29bb2..0a0cccf210 100644
--- a/qte/qte-2.3.7/lefthand.patch
+++ b/qte/qte-2.3.7/lefthand.patch
@@ -0,0 +1,126 @@
+diff -u qt-2.3.7_orig/src/widgets/qscrollview.cpp qt-2.3.7/src/widgets/qscrollview.cpp
+--- qt-2.3.7_orig/src/widgets/qscrollview.cpp 2004-06-13 20:42:54.000000000 +0200
++++ qt-2.3.7/src/widgets/qscrollview.cpp 2004-06-13 20:45:16.000000000 +0200
+@@ -526,15 +526,16 @@
+ this, SLOT( doDragAutoScroll() ) );
+ #endif
+
+- connect( &d->hbar, SIGNAL( valueChanged( int ) ),
+- this, SLOT( hslide( int ) ) );
+- connect( &d->vbar, SIGNAL( valueChanged( int ) ),
+- this, SLOT( vslide( int ) ) );
++ connect( &d->hbar, SIGNAL( valueChanged(int) ),
++ this, SLOT( hslide(int) ) );
++ connect( &d->vbar, SIGNAL( valueChanged(int) ),
++ this, SLOT( vslide(int) ) );
+ d->viewport.installEventFilter( this );
+
+ setFrameStyle( QFrame::StyledPanel | QFrame::Sunken );
+ setLineWidth( style().defaultFrameWidth() );
+ setSizePolicy( QSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding ) );
++
+ }
+
+
+@@ -683,6 +684,11 @@
+ h-tmarg-bmarg - (showh ? hsbExt : 0) );
+ }
+
++/*
++ The surrounding environment (or application, if there is no
++ environment, may set this. Requires Qt >= 2.3.8.
++*/
++bool qt_left_hand_scrollbars = FALSE;
+
+ /*!
+ Updates scrollbars - all possibilities considered. You should never
+@@ -786,45 +792,50 @@
+
+ // Position the scrollbars, viewport, and corner widget.
+ int bottom;
++ int xoffset = ( qt_left_hand_scrollbars && ( showv || cornerWidget() ) ) ? vsbExt : 0;
++ int xpos = qt_left_hand_scrollbars ? 0 : w-vsbExt;
++ xpos = (style() == WindowsStyle) && qt_left_hand_scrollbars ? xpos + fw : xpos - fw;
++ int ypos = tmarg;
++ ypos = (style() == WindowsStyle) ? ypos +fw : 0;
+ if ( showh ) {
+ int right = ( showv || cornerWidget() ) ? w-vsbExt : w;
+ if ( style() == WindowsStyle )
+- setHBarGeometry(d->hbar, fw, h-hsbExt-fw,
++ setHBarGeometry(d->hbar, fw + xoffset , h-hsbExt-fw,
+ right-fw-fw, hsbExt );
+ else
+- setHBarGeometry(d->hbar, 0, h-hsbExt, right,
++ setHBarGeometry(d->hbar, 0+ xoffset, h-hsbExt, right,
+ hsbExt );
+ bottom=h-hsbExt;
+ } else {
+ bottom=h;
+ }
+ if ( showv ) {
+- clipper()->setGeometry( lmarg, tmarg,
++ clipper()->setGeometry( lmarg + xoffset, tmarg,
+ w-vsbExt-lmarg-rmarg,
+ bottom-tmarg-bmarg );
+ d->viewportResized( w-vsbExt-lmarg-rmarg, bottom-tmarg-bmarg );
+ if ( style() == WindowsStyle )
+- changeFrameRect(QRect(0, 0, w, h) );
++ changeFrameRect(QRect(xoffset, 0, w, h) );
+ else
+- changeFrameRect(QRect(0, 0, w-vsbExt, bottom));
++ changeFrameRect(QRect(xoffset, 0, w-vsbExt, bottom));
+ if (cornerWidget()) {
+ if ( style() == WindowsStyle )
+- setVBarGeometry( d->vbar, w-vsbExt-fw,
+- fw, vsbExt,
+- h-hsbExt-fw-fw );
++ setVBarGeometry( d->vbar, xpos,
++ ypos, vsbExt,
++ bottom-fw-ypos );
+ else
+- setVBarGeometry( d->vbar, w-vsbExt, 0,
++ setVBarGeometry( d->vbar, xpos, ypos,
+ vsbExt,
+- h-hsbExt );
++ bottom-ypos );
+ }
+ else {
+ if ( style() == WindowsStyle )
+- setVBarGeometry( d->vbar, w-vsbExt-fw,
+- fw, vsbExt,
+- bottom-fw-fw );
++ setVBarGeometry( d->vbar, xpos,
++ ypos, vsbExt,
++ bottom-fw-ypos );
+ else
+- setVBarGeometry( d->vbar, w-vsbExt, 0,
+- vsbExt, bottom );
++ setVBarGeometry( d->vbar, xpos, ypos,
++ vsbExt, bottom-ypos );
+ }
+ } else {
+ if ( style() == WindowsStyle )
+@@ -837,12 +848,12 @@
+ }
+ if ( d->corner ) {
+ if ( style() == WindowsStyle )
+- d->corner->setGeometry( w-vsbExt-fw,
++ d->corner->setGeometry( xpos,
+ h-hsbExt-fw,
+ vsbExt,
+ hsbExt );
+ else
+- d->corner->setGeometry( w-vsbExt,
++ d->corner->setGeometry( xpos,
+ h-hsbExt,
+ vsbExt,
+ hsbExt );
+@@ -1675,7 +1686,7 @@
+ }
+
+ /*!
+- Scrolls the content by \a x to the left and \a y upwards.
++ Scrolls the content by \a dx to the left and \a dy upwards.
+ */
+ void QScrollView::scrollBy( int dx, int dy )
+ {
diff --git a/qte/qte-2.3.7/no-moc.patch b/qte/qte-2.3.7/no-moc.patch
index e69de29bb2..8d8ea8161e 100644
--- a/qte/qte-2.3.7/no-moc.patch
+++ b/qte/qte-2.3.7/no-moc.patch
@@ -0,0 +1,37 @@
+
+#
+# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
+#
+
+--- qt-2.3.8-snapshot-20040107/Makefile~no-moc 2004-01-07 01:11:04.000000000 +0100
++++ qt-2.3.8-snapshot-20040107/Makefile 2004-01-07 16:29:38.000000000 +0100
+@@ -8,7 +8,7 @@
+ init: FORCE
+ @$(MAKE) QTDIR=`pwd` all
+
+-all: symlinks src-moc src-mt sub-src sub-tools sub-tutorial sub-examples
++all: symlinks src-mt sub-src sub-tools sub-tutorial sub-examples
+ @echo
+ @echo "The Qt library is now built in ./lib"
+ @echo "The Qt examples are built in the directories in ./examples"
+@@ -31,10 +31,10 @@
+ symlinks: .buildopts
+ @cd include; rm -f q*.h; for i in ../src/*/q*.h ../src/3rdparty/*/q*.h ../extensions/*/src/q*.h; do ln -s $$i .; done; rm -f q*_p.h
+
+-sub-src: src-moc src-mt .buildopts FORCE
++sub-src: src-mt .buildopts FORCE
+ cd src; $(MAKE)
+
+-src-mt: src-moc .buildopts FORCE
++src-mt: .buildopts FORCE
+ $(MAKE) -f src-mt.mk
+
+ sub-tutorial: sub-src FORCE
+@@ -45,7 +45,6 @@
+
+ clean:
+ -rm .buildopts
+- cd src/moc; $(MAKE) clean
+ cd src; $(MAKE) clean
+ -rm src/tmp/*.o src/tmp/*.a src/allmoc.cpp
+ -find src/3rdparty -name '*.o' | xargs rm
diff --git a/qte/qte-2.3.7/qiconview-speed.patch b/qte/qte-2.3.7/qiconview-speed.patch
index e69de29bb2..cf4422942c 100644
--- a/qte/qte-2.3.7/qiconview-speed.patch
+++ b/qte/qte-2.3.7/qiconview-speed.patch
@@ -0,0 +1,126 @@
+diff -u qt-2.3.7_old/src/iconview/qiconview.cpp qt-2.3.7/src/iconview/qiconview.cpp
+--- qt-2.3.7_old/src/iconview/qiconview.cpp 2004-06-13 22:29:56.000000000 +0200
++++ qt-2.3.7/src/iconview/qiconview.cpp 2004-06-13 22:33:32.000000000 +0200
+@@ -1,5 +1,5 @@
+ /****************************************************************************
+-** $Id$
++** $Id$
+ **
+ ** Implementation of QIconView widget class
+ **
+@@ -220,6 +220,7 @@
+ QIconView::SelectionMode selectionMode;
+ QIconViewItem *currentItem, *tmpCurrentItem, *highlightedItem, *startDragItem, *pressedItem, *selectAnchor;
+ QRect *rubber;
++ QPixmap *backBuffer;
+ QTimer *scrollTimer, *adjustTimer, *updateTimer, *inputTimer,
+ *fullRedrawTimer;
+ int rastX, rastY, spacing;
+@@ -2263,6 +2264,7 @@
+ d->currentItem = 0;
+ d->highlightedItem = 0;
+ d->rubber = 0;
++ d->backBuffer = 0;
+ d->scrollTimer = 0;
+ d->startDragItem = 0;
+ d->tmpCurrentItem = 0;
+@@ -2411,6 +2413,8 @@
+ delete item;
+ item = tmp;
+ }
++ delete d->backBuffer;
++ d->backBuffer = 0;
+ delete d->fm;
+ d->fm = 0;
+ #ifndef QT_NO_TOOLTIP
+@@ -2877,6 +2881,48 @@
+ }
+
+ /*!
++ This function grabs all paintevents that otherwise would have been
++ processed by the QScrollView::viewportPaintEvent(). Here we use a
++ doublebuffer to reduce 'on-paint' flickering on QIconView
++ (and of course its childs).
++
++ \sa QScrollView::viewportPaintEvent(), QIconView::drawContents()
++*/
++
++void QIconView::bufferedPaintEvent( QPaintEvent* pe )
++{
++ QWidget* vp = viewport();
++ QRect r = pe->rect() & vp->rect();
++ int ex = r.x() + contentsX();
++ int ey = r.y() + contentsY();
++ int ew = r.width();
++ int eh = r.height();
++
++ if ( !d->backBuffer )
++ d->backBuffer = new QPixmap(vp->size());
++ if ( d->backBuffer->size() != vp->size() ) {
++ //Resize function (with hysteesis). Uses a good compromise between memory
++ //consumption and speed (number) of resizes.
++ float newWidth = (float)vp->width();
++ float newHeight = (float)vp->height();
++ if ( newWidth > d->backBuffer->width() || newHeight > d->backBuffer->height() )
++ {
++ newWidth *= 1.1892;
++ newHeight *= 1.1892;
++ d->backBuffer->resize( (int)newWidth, (int)newHeight );
++ } else if ( 1.5*newWidth < d->backBuffer->width() || 1.5*newHeight < d->backBuffer->height() )
++ d->backBuffer->resize( (int)newWidth, (int)newHeight );
++ }
++
++ QPainter p;
++ p.begin(d->backBuffer, vp);
++ drawContentsOffset(&p, contentsX(), contentsY(), ex, ey, ew, eh);
++ p.end();
++ bitBlt(vp, r.x(), r.y(), d->backBuffer, r.x(), r.y(), ew, eh);
++}
++
++/*!
++
+ \reimp
+ */
+
+@@ -4855,7 +4901,7 @@
+ if ( !d->rubber )
+ drawDragShapes( d->oldDragPos );
+ }
+- viewportPaintEvent( (QPaintEvent*)e );
++ bufferedPaintEvent ((QPaintEvent*)e );
+ if ( d->dragging ) {
+ if ( !d->rubber )
+ drawDragShapes( d->oldDragPos );
+@@ -5286,11 +5332,19 @@
+ return;
+
+ if ( item->d->container1 && d->firstContainer ) {
+- item->d->container1->items.removeRef( item );
++ //Special-case checking of the last item, since this may be
++ //called a few times for the same item.
++ if (item->d->container1->items.last() == item)
++ item->d->container1->items.removeLast();
++ else
++ item->d->container1->items.removeRef( item );
+ }
+ item->d->container1 = 0;
+ if ( item->d->container2 && d->firstContainer ) {
+- item->d->container2->items.removeRef( item );
++ if (item->d->container2->items.last() == item)
++ item->d->container2->items.removeLast();
++ else
++ item->d->container2->items.removeRef( item );
+ }
+ item->d->container2 = 0;
+
+diff -u qt-2.3.7_old/src/iconview/qiconview.h qt-2.3.7/src/iconview/qiconview.h
+--- qt-2.3.7_old/src/iconview/qiconview.h 2004-06-13 22:29:56.000000000 +0200
++++ qt-2.3.7/src/iconview/qiconview.h 2004-06-13 22:33:32.000000000 +0200
+@@ -444,6 +444,7 @@
+ virtual void contentsDropEvent( QDropEvent *e );
+ #endif
+
++ void bufferedPaintEvent( QPaintEvent* );
+ virtual void resizeEvent( QResizeEvent* e );
+ virtual void keyPressEvent( QKeyEvent *e );
+ virtual void focusInEvent( QFocusEvent *e );
diff --git a/qte/qte-2.3.7/qtopia.patch b/qte/qte-2.3.7/qtopia.patch
index e69de29bb2..0361aaf9