RangeFilteredLogModel is gone. The functionality is trivially implemented in
FilteredLogModel now. Changing the range is now O(log n) at worst (was O(n) at
best, for rewriting the arrays). Stacking filtered models is not supported
anymore, which simplifies the code.
This is important because we rely on monotonically increasing timestamps for
binary searches in various places.
Overhead for an already sorted file with 1 million lines is less than 5%.
Base time formatting adds + or - in front of the timestamp, so the column has
to grow a little to not hide the last digit.
Also fixes a crash when setting the base time while the time column is hidden.
ColumnManager has to apply the zoom factor to newly added columns. Otherwise,
showing a previously hidden column appears with scale 1.0.
This also drops the value-changed signal emission for the vadjustment, as it is
apparently not needed.
Add two actions to shrink and enlarge the text in the log pane. Add a theme
overide to set expander size to 1 (see bug #615985) and also turn focus lines
off. Remove extra ypadding on cells.
These also appear in the context menu of the timeline. The more generic wording
makes more sense for the timeline, since you do not pinpoint any specific line
in this case.
Seems like pygobject can all of the sudden not handle a NULL model on a
property. Using the getter works around this. Also using the setter now for
consistency.
I need to idle-aggregate scroll updates, since gtk performs heavy operations in
a synchronous fashion here (ironically, they do that to make scrolling smooth).
Fixes dragging the mouse over bigger gaps of log activity making the red
position rectangle come out next to the mouse pointer. Also selects the proper
row now, not randomly 1-2 rows before or after the gap.
The fix for Python issue #1021 uncovered a mistake of mine. I was under the
impression that logging.NOTSET level means "off", but in fact it means to not
modify the level, and setting that on the root logger with basicConfig leads to
turning on all levels.