QHeaderView - no big update work if updates are disabled
authorThorbjørn Lund Martsum <tmartsum@gmail.com>
Wed, 14 Dec 2011 20:26:49 +0000 (21:26 +0100)
committerQt by Nokia <qt-info@nokia.com>
Thu, 15 Dec 2011 14:39:24 +0000 (15:39 +0100)
There is no reason to find out where to update the headerview
if updates aren't enabled.  Another approch I considered to skip the
whole calculation and just call update. I seriosly doubt that this
calculation and update of a particular QHeaderView rect will normally(*)
be faster than just updating everything.

However to be safe I have done the conservative fix.

(*) Normally but with many/fragmented spans in the headerview.

Change-Id: Ia812a747ee825653db0345cdc34f9d2f7155ea01
Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
src/widgets/itemviews/qheaderview.cpp

index 8ecbdeb..76529fc 100644 (file)
@@ -887,6 +887,11 @@ void QHeaderView::resizeSection(int logical, int size)
     if (size != oldSize)
         d->createSectionSpan(visual, visual, size, d->headerSectionResizeMode(visual));
 
+    if (!updatesEnabled()) {
+        emit sectionResized(logical, oldSize, size);
+        return;
+    }
+
     int w = d->viewport->width();
     int h = d->viewport->height();
     int pos = sectionViewportPosition(logical);