summaryrefslogtreecommitdiff
path: root/qt
authordrw <drw>2005-02-28 17:40:44 (UTC)
committer drw <drw>2005-02-28 17:40:44 (UTC)
commit772bc43173a3155ef08c769f1d01ef0ec7b31bcd (patch) (side-by-side diff)
tree678a5cdeb431bca63299c3b595c26a0a6639a3f3 /qt
parent2b64a84d39eeed5681d0ee5068c7d11a01527750 (diff)
downloadopie-772bc43173a3155ef08c769f1d01ef0ec7b31bcd.zip
opie-772bc43173a3155ef08c769f1d01ef0ec7b31bcd.tar.gz
opie-772bc43173a3155ef08c769f1d01ef0ec7b31bcd.tar.bz2
Added QT patch for QTabBar which fixes problems with the scroll buttons in OTabWidget
Diffstat (limited to 'qt') (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.10.patch/qtabbar.patch39
-rw-r--r--qt/qt-2.3.10.patch/qte-2.3.10-all.patch63
2 files changed, 88 insertions, 14 deletions
diff --git a/qt/qt-2.3.10.patch/qtabbar.patch b/qt/qt-2.3.10.patch/qtabbar.patch
new file mode 100644
index 0000000..6940ec9
--- a/dev/null
+++ b/qt/qt-2.3.10.patch/qtabbar.patch
@@ -0,0 +1,39 @@
+
+#
+# Patch managed by http://www.holgerschurig.de/patcher.html
+#
+
+--- qt-2.3.10/src/widgets/qtabbar.cpp~qtabbar
++++ qt-2.3.10/src/widgets/qtabbar.cpp
+@@ -260,7 +260,6 @@
+ lstatic->insert( index, newTab );
+
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ) );
+
+ #ifndef QT_NO_ACCEL
+@@ -282,7 +281,6 @@
+ l->remove( t );
+ lstatic->remove( t );
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ) );
+ update();
+ }
+@@ -887,6 +885,7 @@
+ }
+ for ( t = lstatic->first(); t; t = lstatic->next() )
+ t->r.setHeight( r.height() );
++ updateArrowButtons();
+ }
+
+ /*!
+@@ -977,7 +976,6 @@
+ d->leftB->setGeometry( width() - 2*arrowWidth, 0, arrowWidth, height() );
+ #endif
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ));
+ }
+
diff --git a/qt/qt-2.3.10.patch/qte-2.3.10-all.patch b/qt/qt-2.3.10.patch/qte-2.3.10-all.patch
index ab52716..24bac51 100644
--- a/qt/qt-2.3.10.patch/qte-2.3.10-all.patch
+++ b/qt/qt-2.3.10.patch/qte-2.3.10-all.patch
@@ -32,13 +32,13 @@ Index: qt-2.3.10/src/iconview/qiconview.cpp
+ d->backBuffer = 0;
delete d->fm;
d->fm = 0;
#ifndef QT_NO_TOOLTIP
@@ -2882,6 +2886,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).
+
@@ -78,25 +78,25 @@ Index: qt-2.3.10/src/iconview/qiconview.cpp
+}
+
+/*!
+
\reimp
*/
-
+
@@ -4939,7 +4985,7 @@
if ( !d->rubber )
drawDragShapes( d->oldDragPos );
}
- viewportPaintEvent( (QPaintEvent*)e );
+ bufferedPaintEvent ((QPaintEvent*)e );
if ( d->dragging ) {
if ( !d->rubber )
drawDragShapes( d->oldDragPos );
@@ -5377,11 +5423,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();
@@ -109,33 +109,33 @@ Index: qt-2.3.10/src/iconview/qiconview.cpp
+ if (item->d->container2->items.last() == item)
+ item->d->container2->items.removeLast();
+ else
+ item->d->container2->items.removeRef( item );
}
item->d->container2 = 0;
-
+
Index: qt-2.3.10/src/iconview/qiconview.h
===================================================================
--- qt-2.3.10.orig/src/iconview/qiconview.h 2005-02-24 21:09:53.060675971 +0100
+++ qt-2.3.10/src/iconview/qiconview.h 2005-02-24 21:10:04.602019959 +0100
@@ -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 );
Index: qt-2.3.10/src/kernel/qgfxraster_qws.cpp
===================================================================
--- qt-2.3.10.orig/src/kernel/qgfxraster_qws.cpp 2005-02-24 21:09:54.817425663 +0100
+++ qt-2.3.10/src/kernel/qgfxraster_qws.cpp 2005-02-24 21:10:02.521320506 +0100
@@ -4037,13 +4037,14 @@
for( loopc2=0;loopc2<frontadd;loopc2++ )
*(alphaptr++)=get_value_32(16,(unsigned char **)&temppos);
-
+
- PackType temp2;
- unsigned char * cp;
+ volatile PackType temp2;
+ volatile unsigned short int * cp;
for( loopc2=0;loopc2<count;loopc2++ ) {
- temp2=*((PackType *)temppos);
@@ -146,21 +146,21 @@ Index: qt-2.3.10/src/kernel/qgfxraster_qws.cpp
+ cp=reinterpret_cast<volatile unsigned short int *>(&temp2);
+ *(alphaptr++)=qt_conv16ToRgb(*cp);
+ cp++;
+ *(alphaptr++)=qt_conv16ToRgb(*cp);
temppos += 2;
}
-
+
Index: qt-2.3.10/src/kernel/qwindowsystem_qws.cpp
===================================================================
--- qt-2.3.10.orig/src/kernel/qwindowsystem_qws.cpp 2005-02-24 21:09:53.891557664 +0100
+++ qt-2.3.10/src/kernel/qwindowsystem_qws.cpp 2005-02-24 21:10:03.511177634 +0100
@@ -918,6 +918,18 @@
{
}
-
+
+static void catchSegvSignal( int )
+{
+#ifndef QT_NO_QWS_KEYBOARD
+ if ( qwsServer )
+ qwsServer->closeKeyboard();
+#endif
@@ -172,13 +172,13 @@ Index: qt-2.3.10/src/kernel/qwindowsystem_qws.cpp
+
/*!
\class QWSServer qwindowsystem_qws.h
\brief Server-specific functionality in Qt/Embedded
@@ -1043,6 +1055,7 @@
}
-
+
signal(SIGPIPE, ignoreSignal); //we get it when we read
+ signal(SIGSEGV, catchSegvSignal); //recover the keyboard on crash
#endif
focusw = 0;
mouseGrabber = 0;
Index: qt-2.3.10/src/kernel/qwsdecoration_qws.h
@@ -188,26 +188,26 @@ Index: qt-2.3.10/src/kernel/qwsdecoration_qws.h
@@ -50,7 +50,7 @@
enum Region { None=0, All=1, Title=2, Top=3, Bottom=4, Left=5, Right=6,
TopLeft=7, TopRight=8, BottomLeft=9, BottomRight=10,
Close=11, Minimize=12, Maximize=13, Normalize=14,
- Menu=15, LastRegion=Menu };
+ Menu=15, LastRegion=Menu, UserDefined = 100 };
-
+
virtual QRegion region(const QWidget *, const QRect &rect, Region r=All) = 0;
virtual void close( QWidget * );
Index: qt-2.3.10/src/tools/qcstring.h
===================================================================
--- qt-2.3.10.orig/src/tools/qcstring.h 2005-02-24 21:09:54.354491675 +0100
+++ qt-2.3.10/src/tools/qcstring.h 2005-02-24 21:10:03.026247674 +0100
@@ -119,7 +119,7 @@
// We want to keep source compatibility for 2.x
// ### TODO for 4.0: completely remove these and the cstr* functions
-
+
-#if !defined(QT_GENUINE_STR)
+#if 0
-
+
#undef strlen
#define strlen qstrlen
Index: qt-2.3.10/src/tools/qstring.cpp
===================================================================
--- qt-2.3.10.orig/src/tools/qstring.cpp 2005-02-24 21:09:55.291358022 +0100
+++ qt-2.3.10/src/tools/qstring.cpp 2005-02-24 21:10:01.748431931 +0100
@@ -254,21 +254,21 @@ Index: qt-2.3.10/src/widgets/qcommonstyle.cpp
Index: qt-2.3.10/src/widgets/qlistview.cpp
===================================================================
--- qt-2.3.10.orig/src/widgets/qlistview.cpp 2005-02-24 21:09:53.868560939 +0100
+++ qt-2.3.10/src/widgets/qlistview.cpp 2005-02-24 21:10:03.500179222 +0100
@@ -5051,9 +5051,9 @@
l = l->childItem ? l->childItem : l->siblingItem;
-
+
if ( l && l->height() )
- s.setHeight( s.height() + 10 * l->height() );
- else
- s.setHeight( s.height() + 140 );
+ s.setHeight( s.height() + 4 /*10*/ * l->height() );
+ else // ^v much too big for handhelds
+ s.setHeight( s.height() + 30 /*140*/ );
-
+
if ( s.width() > s.height() * 3 )
s.setHeight( s.width() / 3 );
Index: qt-2.3.10/src/widgets/qtoolbutton.cpp
===================================================================
--- qt-2.3.10.orig/src/widgets/qtoolbutton.cpp 2005-02-24 21:09:53.868560939 +0100
+++ qt-2.3.10/src/widgets/qtoolbutton.cpp 2005-02-24 21:10:03.524175756 +0100
@@ -287,6 +287,41 @@ Index: qt-2.3.10/src/widgets/qtoolbutton.cpp
} else {
- w = h = 16;
+ w = h = 14;
QPixmap pm = iconSet(TRUE).pixmap(QIconSet::Small, QIconSet::Normal);
w = pm.width();
h = pm.height();
+Index: qt-2.3.10/src/widgets/qtabbar.cpp
+===================================================================
+--- qt-2.3.10.orig/src/widgets/qtabbar.cpp 2005-02-27 18:07:41.000000000 -0600
++++ qt-2.3.10/src/widgets/qtabbar.cpp 2005-02-28 11:16:56.444377440 -0600
+@@ -260,7 +260,6 @@
+ lstatic->insert( index, newTab );
+
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ) );
+
+ #ifndef QT_NO_ACCEL
+@@ -282,7 +281,6 @@
+ l->remove( t );
+ lstatic->remove( t );
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ) );
+ update();
+ }
+@@ -887,6 +885,7 @@
+ }
+ for ( t = lstatic->first(); t; t = lstatic->next() )
+ t->r.setHeight( r.height() );
++ updateArrowButtons();
+ }
+
+ /*!
+@@ -977,7 +976,6 @@
+ d->leftB->setGeometry( width() - 2*arrowWidth, 0, arrowWidth, height() );
+ #endif
+ layoutTabs();
+- updateArrowButtons();
+ makeVisible( tab( currentTab() ));
+ }