Hi,
The following patch fix a crash in QTreeView.
It arrived too late to be pushed into this release...
OK?
Index: Makefile
===================================================================
RCS file: /cvs/ports/x11/qt4/Makefile,v
retrieving revision 1.85
diff -u -p -r1.85 Makefile
--- Makefile 17 May 2011 08:26:53 -0000 1.85
+++ Makefile 7 Jun 2011 11:28:11 -0000
@@ -23,6 +23,7 @@ PKGNAME-debug = qt4-debug-${PKGVERSION}
FULLPKGNAME-html = qt4-html-${PKGVERSION}
FULLPKGPATH-html = ${BASE_PKGPATH},-html
+REVISION-main = 0
REVISION-tds = 0
SHARED_LIBS = Qt3Support 8.0 \
Index: patches/patch-src_gui_itemviews_qtreeview_cpp
===================================================================
RCS file: patches/patch-src_gui_itemviews_qtreeview_cpp
diff -N patches/patch-src_gui_itemviews_qtreeview_cpp
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ patches/patch-src_gui_itemviews_qtreeview_cpp 7 Jun 2011 11:28:11
-0000
@@ -0,0 +1,43 @@
+$OpenBSD$
+
+Fix QTreeView crash in indexRowSizeHint/itemHeight
+(http://bugreports.qt.nokia.com/browse/QTBUG-16292)
+
+--- src/gui/itemviews/qtreeview.cpp.orig Wed Mar 30 07:19:05 2011
++++ src/gui/itemviews/qtreeview.cpp Tue Jun 7 13:08:49 2011
+@@ -2753,6 +2753,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &ind
+
+ int start = -1;
+ int end = -1;
++ int indexRow = index.row();
+ int count = d->header->count();
+ bool emptyHeader = (count == 0);
+ QModelIndex parent = index.parent();
+@@ -2789,7 +2790,7 @@ int QTreeView::indexRowSizeHint(const QModelIndex &ind
+ int logicalColumn = emptyHeader ? column :
d->header->logicalIndex(column);
+ if (d->header->isSectionHidden(logicalColumn))
+ continue;
+- QModelIndex idx = d->model->index(index.row(), logicalColumn, parent);
++ QModelIndex idx = d->model->index(indexRow, logicalColumn, parent);
+ if (idx.isValid()) {
+ QWidget *editor = d->editorForIndex(idx).editor;
+ if (editor && d->persistent.contains(editor)) {
+@@ -3224,14 +3225,14 @@ int QTreeViewPrivate::itemHeight(int item) const
+ if (viewItems.isEmpty())
+ return 0;
+ const QModelIndex &index = viewItems.at(item).index;
++ if (!index.isValid())
++ return 0;
+ int height = viewItems.at(item).height;
+- if (height <= 0 && index.isValid()) {
++ if (height <= 0) {
+ height = q_func()->indexRowSizeHint(index);
+ viewItems[item].height = height;
+ }
+- if (!index.isValid() || height < 0)
+- return 0;
+- return height;
++ return qMax(height, 0);
+ }
+
+