Review Request 121880: FocusedTreeView: use a timer to batch recomputations of column width

Nicolai Hähnle nhaehnle at gmail.com
Fri Feb 27 09:42:26 UTC 2015


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/121880/
-----------------------------------------------------------

(Updated Feb. 27, 2015, 9:42 a.m.)


Status
------

This change has been marked as submitted.


Review request for KDevelop.


Repository: kdevplatform


Description
-------

We need to recompute the column width when a new row is inserted to ensure that
the horizontal scrollbar behaves properly.

Under certain circumstances (in particular: running an extremely spammy process
or filtering large outputs), rowInserted is called many times in quick succession,
which leads to essentially quadratic runtime behavior, because some of the
recomputation triggers a slow layout recomputation inside QTreeView. So we delay
the recomputation until we get back to the event loop.

Also re-use this timer for the auto-scroll behavior in the standard output view
(which is currently the only user of this class).

After this change, output views work more smoothly even on very large outputs.
Unfortunately, there seems to still be some quadratic runtime behavior in Qt itself.


Diffs
-----

  util/focusedtreeview.cpp b58720313cc9c3ca08ae401c009425a30cdc326a 
  plugins/standardoutputview/outputwidget.h 88415cfd4755d24d15c9598a283deca43b63b04c 
  plugins/standardoutputview/outputwidget.cpp 5babb1977afe929531f6468678b4a78f9a203174 
  util/focusedtreeview.h f813c2de6d8679c57c1477d8bc63c29e2139ba98 

Diff: https://git.reviewboard.kde.org/r/121880/diff/


Testing
-------


Thanks,

Nicolai Hähnle

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kdevelop-devel/attachments/20150227/d3c9a29a/attachment.html>


More information about the KDevelop-devel mailing list