summaryrefslogtreecommitdiff
authorar <ar>2004-07-23 20:11:03 (UTC)
committer ar <ar>2004-07-23 20:11:03 (UTC)
commita807ba26df5f4fe7c50f6e0e1420d4b0d7c3add8 (patch) (side-by-side diff)
tree36b7b7ab471b5dc43cb6b92f725d99541baff108
parentf9499e14b777050f0bdb3821ca8421dd4c7231fd (diff)
downloadopie-a807ba26df5f4fe7c50f6e0e1420d4b0d7c3add8.zip
opie-a807ba26df5f4fe7c50f6e0e1420d4b0d7c3add8.tar.gz
opie-a807ba26df5f4fe7c50f6e0e1420d4b0d7c3add8.tar.bz2
- make patch patcheable :)
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--qt/qt-2.3.7.patch/qte237-all.patch7
-rw-r--r--qt/qt-2.3.7.patch/qte237-iconviewspeed.patch7
2 files changed, 0 insertions, 14 deletions
diff --git a/qt/qt-2.3.7.patch/qte237-all.patch b/qt/qt-2.3.7.patch/qte237-all.patch
index e3351a3..6f94211 100644
--- a/qt/qt-2.3.7.patch/qte237-all.patch
+++ b/qt/qt-2.3.7.patch/qte237-all.patch
@@ -271,135 +271,128 @@ diff -ur qt-2.3.7-old/include/qglobal.h qt-2.3.7/include/qglobal.h
@@ -207,8 +207,16 @@
#if __GNUC__ == 2 && __GNUC_MINOR__ == 96
#define Q_FP_CCAST_BROKEN
#endif
+/* ARM gcc pads structs to 32 bits, even when they contain a single
+ char, or short. We tell gcc to pack QChars to 16 bits, to avoid
+ QString bloat. However, gcc 3.4 doesn't allow us to create references to
+ members of a packed struct. (Pointers are OK, because then you
+ supposedly know what you are doing.) */
#if (defined(__arm__) || defined(__ARMEL__)) && !defined(QT_MOC_CPP)
#define Q_PACKED __attribute__ ((packed))
+# if __GNUC__ == 3 && __GNUC_MINOR__ >= 4
+# define Q_NO_PACKED_REFERENCE
+# endif
#endif
#elif defined(__xlC__)
#define _CC_XLC_
diff -ur qt-2.3.7-old/include/qiconview.h qt-2.3.7/include/qiconview.h
--- qt-2.3.7-old/include/qiconview.h 2004-07-23 15:22:56.000000000 +0200
+++ qt-2.3.7/include/qiconview.h 2004-07-23 15:45:34.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 -ur qt-2.3.7-old/include/qsortedlist.h qt-2.3.7/include/qsortedlist.h
--- qt-2.3.7-old/include/qsortedlist.h 2004-07-23 15:22:56.000000000 +0200
+++ qt-2.3.7/include/qsortedlist.h 2004-07-23 15:42:01.000000000 +0200
@@ -48,7 +48,7 @@
public:
QSortedList() {}
QSortedList( const QSortedList<type> &l ) : QList<type>(l) {}
- ~QSortedList() { clear(); }
+ ~QSortedList() { this->clear(); }
QSortedList<type> &operator=(const QSortedList<type> &l)
{ return (QSortedList<type>&)QList<type>::operator=(l); }
diff -ur qt-2.3.7-old/include/qstring.h qt-2.3.7/include/qstring.h
--- qt-2.3.7-old/include/qstring.h 2004-07-23 15:22:56.000000000 +0200
+++ qt-2.3.7/include/qstring.h 2004-07-23 15:42:01.000000000 +0200
@@ -163,8 +163,16 @@
bool isLetterOrNumber() const;
bool isDigit() const;
+
+#ifdef Q_NO_PACKED_REFERENCE
+ uchar& cell() { return *(&cl); }
+ uchar& row() { return *(&rw); }
+#else
uchar& cell() { return cl; }
- uchar& row() { return rw; }
+ uchar& row() { return rw; }
+#endif
+
+
uchar cell() const { return cl; }
uchar row() const { return rw; }
diff -ur 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-07-23 15:22:56.000000000 +0200
+++ qt-2.3.7/src/iconview/qiconview.cpp 2004-07-23 15:45:34.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);
diff --git a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch b/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
index 63e45ec..81064e1 100644
--- a/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
+++ b/qt/qt-2.3.7.patch/qte237-iconviewspeed.patch
@@ -1,85 +1,78 @@
Speed up patches backported from
http://robotics.dei.unipd.it/~koral/KDE/kflicker.html
and
http://lists.kde.org/?l=kde-optimize&m=105382164111363&w=2 (complete thread)
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);