Commit graph

326 commits

Author SHA1 Message Date
René Stadler
8cfe17d064 Remove stale GUI module 2014-09-11 20:51:46 +02:00
René Stadler
097cacebbd Add new base time feature
The log view context menu gains a new action "Set base time", which changes the
time column to show the delta to the selected row.
2014-09-11 20:51:46 +02:00
René Stadler
d71d09759b Split giant GUI module into submodules 2014-09-11 20:51:46 +02:00
René Stadler
7b57fe2423 timeline: fix timestamp binary search
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.
2014-09-11 20:51:45 +02:00
René Stadler
3a90836f82 GUI: remove unused imports 2014-09-11 20:51:45 +02:00
René Stadler
390262a363 Cleanup whitespace 2014-09-11 20:51:45 +02:00
René Stadler
63e62b670f Rename UIManager file 2014-09-11 20:51:45 +02:00
René Stadler
6369acee76 Migrate from glade to GtkBuilder 2014-09-11 20:51:45 +02:00
René Stadler
b468acd836 Fix logging being on by default with recent Python
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.
2014-09-11 20:51:45 +02:00
René Stadler
7dcd3db661 Use mmap in a portable way 2014-09-11 20:51:45 +02:00
René Stadler
984549d45a Add FIXME comments 2014-09-11 20:51:45 +02:00
René Stadler
867a312f93 GUI: Fix edit-copy-line action crashing/copying wrong line
When the view was unfiltered, this crashed.  When the view was range filtered,
this copied the wrong line.

Spotted by Stefan Kost.
2014-09-11 20:51:45 +02:00
René Stadler
7fdbfa2cf4 Move more attribute lookups out of loops for speed 2014-09-11 20:51:45 +02:00
René Stadler
ff146e1cb1 Add support for recent log format changes, be more tolerant on whitespaces, cope with object names containing '>' 2014-09-11 20:51:45 +02:00
René Stadler
c9aeb0ce2b Update vertical timeline when the widget size changes 2014-09-11 20:51:45 +02:00
René Stadler
c96c55a62c Fix bottom view showing the wrong selected log line 2014-09-11 20:51:45 +02:00
René Stadler
29ce10fb46 Fix bottom view line activating the wrong line after filtering 2014-09-11 20:51:45 +02:00
René Stadler
e75b817b72 Fix bottom view not showing current line until you add something there 2014-09-11 20:51:45 +02:00
René Stadler
43badaea0c Faster handling of partial expose events in timeline 2014-09-11 20:51:45 +02:00
René Stadler
ebda9480c3 Mention GStreamer in --help output 2014-09-11 20:51:45 +02:00
René Stadler
be38bc2906 Allow to cancel a running filter process 2014-09-11 20:51:44 +02:00
René Stadler
313d671fbf Make hide before/after action insensitive when first/last line is selected 2014-09-11 20:51:44 +02:00
René Stadler
53becaa72c Add filtering for object name and source code filename 2014-09-11 20:51:44 +02:00
René Stadler
35c11f13ab Add FIXME comment 2014-09-11 20:51:44 +02:00
René Stadler
b5caf22bdb Create own menu structure for log view context menu 2014-09-11 20:51:44 +02:00
René Stadler
04d90a4e38 Sync show-timeline action state before connecting signal handler 2014-09-11 20:51:44 +02:00
René Stadler
8b6e0d193f Timeline.py: Move per-window management into own class 2014-09-11 20:51:44 +02:00
René Stadler
500e68ca3e Re-format long line 2014-09-11 20:51:44 +02:00
René Stadler
e1182e28c3 Replace gdk.ALL_EVENTS_MASK with proper minimal set of event flags 2014-09-11 20:51:44 +02:00
René Stadler
aa7c3747ba Move performance test program into its own file 2014-09-11 20:51:44 +02:00
René Stadler
2b2e3c11c8 Allow creation of more than one window 2014-09-11 20:51:44 +02:00
René Stadler
f998069d6b Add TODO comment 2014-09-11 20:51:44 +02:00
René Stadler
e5d490cabe Use GdkColors for level column, cleanup color handling 2014-09-11 20:51:44 +02:00
René Stadler
9fe8b55ecb Replace linear-time filtered index search with usage of bisect module 2014-09-11 20:51:44 +02:00
René Stadler
e971bda1ae Restore visible range of log view when changing filter 2014-09-11 20:51:44 +02:00
René Stadler
b155f21610 Resolve small FIXME in SubRange 2014-09-11 20:51:44 +02:00
René Stadler
4356b706f9 Cleanup FilteredLogModel.super_model_changed_range 2014-09-11 20:51:44 +02:00
René Stadler
154a630c9b Fix crash with unparsable files 2014-09-11 20:51:44 +02:00
René Stadler
9e3ebe40cd Make option parser work with glib before 2.13.2 2014-09-11 20:51:44 +02:00
René Stadler
fec6bf0848 s/get_cells/get_cell_renderers/ again 2014-09-11 20:51:44 +02:00
René Stadler
e523019f50 Correctly parse categories with digits in them (fixes flump3dec, v4l2src messages) 2014-09-11 20:51:44 +02:00
René Stadler
93a1da46c9 Fix filtered range transformation (finally!) 2014-09-11 20:51:44 +02:00
René Stadler
73e9b22838 Fix filtered model index translation and improve tests 2014-09-11 20:51:44 +02:00
René Stadler
5f3c94afff Fix off-by-one error in filtered model range reclamping 2014-09-11 20:51:44 +02:00
René Stadler
a8f6481d2b Improve filtered model interacting with range changes 2014-09-11 20:51:43 +02:00
René Stadler
e47a5a70d4 Unify two very similar methods 2014-09-11 20:51:43 +02:00
René Stadler
2fa90648aa Add FIXME about broken index translation logic 2014-09-11 20:51:43 +02:00
René Stadler
a7a0ea0fa2 Prevent crash with older bindings 2014-09-11 20:51:43 +02:00
René Stadler
0784883ebf Fix more problems when clamping with filter turned on 2014-09-11 20:51:43 +02:00
René Stadler
075d186296 Fix off-by-one error causing display of spurious line when clamping with filter turned on 2014-09-11 20:51:43 +02:00
René Stadler
8e6ad93d99 Fix selection of line after changing filter, add logging 2014-09-11 20:51:43 +02:00
René Stadler
d87731efcc Preserve clamped timestamp range when filtering and vice versa 2014-09-11 20:51:43 +02:00
René Stadler
23a588b8aa Implement idle filtering (with progress display) 2014-09-11 20:51:43 +02:00
René Stadler
7b405fdd55 Factor out progress dialog handling into its own reusable object class 2014-09-11 20:51:43 +02:00
René Stadler
1c9935eea3 Implement category filtering 2014-09-11 20:51:43 +02:00
René Stadler
9f91df2f58 Allow for more than one (log level) filter to be set 2014-09-11 20:51:43 +02:00
René Stadler
0eb58cff84 Restore search to a consistent state when showing the search bar again 2014-09-11 20:51:43 +02:00
René Stadler
cd378c7302 Add accelerators to search result navigation actions 2014-09-11 20:51:43 +02:00
René Stadler
14f91ccecf Fix search result navigation action sensitivity when showing the find bar 2014-09-11 20:51:43 +02:00
René Stadler
f8da21fb46 Add search navigation menu items to view menu 2014-09-11 20:51:43 +02:00
René Stadler
e3d2cfb035 When right clicking to open a context menu, pass the event on (which selects the row) 2014-09-11 20:51:43 +02:00
René Stadler
ca40c5e58a Implement backward search result navigation 2014-09-11 20:51:43 +02:00
René Stadler
d6240e93a7 Remove dead/useless code 2014-09-11 20:51:43 +02:00
René Stadler
a176ca7797 Rename variable 2014-09-11 20:51:43 +02:00
René Stadler
cf5badd4f4 Implement lazy searching 2014-09-11 20:51:43 +02:00
René Stadler
c0bb774c43 Some search fixes 2014-09-11 20:51:43 +02:00
René Stadler
ec713b827c Add status label to find bar 2014-09-11 20:51:43 +02:00
René Stadler
99a755e56c Fix timeline warning/error indicator triangle vertical position 2014-09-11 20:51:43 +02:00
René Stadler
a6f268ab4b Add GUI utility function to add a popup menu to a widget 2014-09-11 20:51:42 +02:00
René Stadler
a073b11f63 Cleanup timeline warning/error triangle drawing, add TODOs 2014-09-11 20:51:42 +02:00
René Stadler
abc54e5360 Add tooltip to vertical timeline widget 2014-09-11 20:51:42 +02:00
René Stadler
47badacfde Add hide before/after menu items to timeline context menu 2014-09-11 20:51:42 +02:00
René Stadler
cec4541f3d Add context menu to bottom view, with entry to clear all lines 2014-09-11 20:51:42 +02:00
René Stadler
492f663a5a Fix copying of line to clipboard 2014-09-11 20:51:42 +02:00
René Stadler
60e794e8a2 Remove implicit keybinding of copy message action 2014-09-11 20:51:42 +02:00
René Stadler
44303a412e Fix adding rows to the bottom view 2014-09-11 20:51:42 +02:00
René Stadler
2b59250ec0 Fix crash when adding a line to bottom view with log filter turned on 2014-09-11 20:51:42 +02:00
René Stadler
08e6121766 Implement filtered log model index translation 2014-09-11 20:51:42 +02:00
René Stadler
bfd0ad3960 Add support for stacking log model filters 2014-09-11 20:51:42 +02:00
René Stadler
98e1541488 Do not let the user add duplicate lines to the bottom log view 2014-09-11 20:51:42 +02:00
René Stadler
9a9e40a3ce Keep the bottom view sorted by timestamp 2014-09-11 20:51:42 +02:00
René Stadler
db7943cedb Unbreak filtering again 2014-09-11 20:51:42 +02:00
René Stadler
68fd8fc604 Improve method to update log view after search text change 2014-09-11 20:51:42 +02:00
René Stadler
0beee4cf4f Remove dead code 2014-09-11 20:51:42 +02:00
René Stadler
c28059e36c Use the mmapped fileobj in more places and use slice access 2014-09-11 20:51:42 +02:00
René Stadler
4424eb686f Add simple cache eviction to LazyLogModel to limit memory usage 2014-09-11 20:51:42 +02:00
René Stadler
c749df8574 Rename show-find-bar action callback handler 2014-09-11 20:51:42 +02:00
René Stadler
89f8ebe0cf Implement lazy highlighting of search results 2014-09-11 20:51:42 +02:00
René Stadler
d4dcc1be13 Move search matching logic into the SearchOperation object 2014-09-11 20:51:42 +02:00
René Stadler
a9fd7fe84c Add search result navigation 2014-09-11 20:51:42 +02:00
René Stadler
4be0be249a Fix crash when showing all lines after having filtered down to zero lines 2014-09-11 20:51:42 +02:00
René Stadler
8dbfc09163 Avoid GtkWarning when filtering down to no visible line at all 2014-09-11 20:51:42 +02:00
René Stadler
5f35233eb7 Fix crash when displaying only one line 2014-09-11 20:51:42 +02:00
René Stadler
4a2c020660 Hide unimplemented filtering actions 2014-09-11 20:51:42 +02:00
René Stadler
406eb80d03 Add preliminary log level filtering support 2014-09-11 20:51:41 +02:00
René Stadler
3087edd7f8 Add level, category, object filtering actions 2014-09-11 20:51:41 +02:00
René Stadler
6e35575f0b Derive range/clamping model filter from the new base class 2014-09-11 20:51:41 +02:00
René Stadler
e368dbf200 Add identity filter model to save some memory 2014-09-11 20:51:41 +02:00
René Stadler
77de714d35 Add base class for filtered log models 2014-09-11 20:51:41 +02:00
René Stadler
334a3758fb Move class around 2014-09-11 20:51:41 +02:00
René Stadler
b3df52cd2f Change code to cleaner terminology of filter model relationships 2014-09-11 20:51:41 +02:00
René Stadler
2eb76b142d Try to avoid a crash regarding illegal paths received from GtkTreeView 2014-09-11 20:51:41 +02:00
René Stadler
5b41b6e861 Fix timeline level distribution plotting after gaps 2014-09-11 20:51:41 +02:00
René Stadler
99c871ba4a For search highlighting, use pango attrlists instead of markup 2014-09-11 20:51:41 +02:00
René Stadler
80263e1416 After changing the filter, scroll to the selected row 2014-09-11 20:51:41 +02:00
René Stadler
fab31075c7 Retain bottom view model and fix crash after filter change 2014-09-11 20:51:41 +02:00
René Stadler
1e0c5215d2 Keep line selection when changing filter model 2014-09-11 20:51:41 +02:00
René Stadler
3081d6256d Only auto size view columns once 2014-09-11 20:51:41 +02:00
René Stadler
cd935bb368 Remove redundant property settings 2014-09-11 20:51:41 +02:00
René Stadler
3c8fbd0da0 Fix window size and position state persistency 2014-09-11 20:51:41 +02:00
René Stadler
8fe97e709c Fix hanging after loading an unparsable/colored file 2014-09-11 20:51:41 +02:00
René Stadler
527b3ed2ef Behave a little better with unparsable/colored files 2014-09-11 20:51:41 +02:00
René Stadler
026604747a Fix division by zero crash with unparsable/colored files 2014-09-11 20:51:41 +02:00
René Stadler
d9fcd38371 Fix crash when viewing a colored log file 2014-09-11 20:51:41 +02:00
René Stadler
41b34c2e5e Fix crash when opening a file that has trash lines only 2014-09-11 20:51:41 +02:00
René Stadler
a2b332c495 Gracefully handle garbage lines at the line cache level 2014-09-11 20:51:41 +02:00
René Stadler
c1c71ec392 Correct wording in benchmark output 2014-09-11 20:51:41 +02:00
René Stadler
38c4ac239e Fix comment 2014-09-11 20:51:41 +02:00
René Stadler
f61574dbda Fix level distribution calculation for the last partition 2014-09-11 20:51:41 +02:00
René Stadler
4ef74e1099 Make message column receive a minimal size, which removes the size warning 2014-09-11 20:51:41 +02:00
René Stadler
40c64be892 Remove more outdated comments 2014-09-11 20:51:40 +02:00
René Stadler
ad7481c82e Remove outdated comment 2014-09-11 20:51:40 +02:00
René Stadler
5738b1d5df Remove commented code 2014-09-11 20:51:40 +02:00
René Stadler
209448c559 s/omit lines/hide lines/ 2014-09-11 20:51:40 +02:00
René Stadler
528c531f8b After load, select the first line 2014-09-11 20:51:40 +02:00
René Stadler
769a3d9d7c When navigating with the timeline, select the line in the center of the view 2014-09-11 20:51:40 +02:00
René Stadler
7032df7e73 When navigating with the bottom view, select the target line 2014-09-11 20:51:40 +02:00
René Stadler
ea08ca6805 When activating a bottom view row, navigate the log view there 2014-09-11 20:51:40 +02:00
René Stadler
ad32656ecb Add ability to add rows to bottom view 2014-09-11 20:51:40 +02:00
René Stadler
3cfcc8e635 Avoid copies of the line index list in the line view model (fixes range filtering) 2014-09-11 20:51:40 +02:00
René Stadler
a583af7596 Remove left over whitespace 2014-09-11 20:51:40 +02:00
René Stadler
47dc733bc6 Display timestamp and full message of selected line 2014-09-11 20:51:40 +02:00
René Stadler
635659a6b9 Correctly set sensitivity of row action group 2014-09-11 20:51:40 +02:00
René Stadler
293dd13985 Add a (pretty limited) context menu to the timeline widget 2014-09-11 20:51:40 +02:00
René Stadler
b4ba3c5297 Adjust comment 2014-09-11 20:51:40 +02:00
René Stadler
b948b7b6e5 Fix handling of filename command line argument 2014-09-11 20:51:40 +02:00
René Stadler
480392b881 Tweak thread colors a bit 2014-09-11 20:51:40 +02:00
René Stadler
91208d8eb9 Add fuzzy compatibility to unpatched pygtk 2.12.0 2014-09-11 20:51:40 +02:00
René Stadler
8108907e5f Add ranged line omission feature 2014-09-11 20:51:40 +02:00
René Stadler
cb6d082f19 Speed up immediate search results by setting search start position 2014-09-11 20:51:40 +02:00
René Stadler
6f371b8b3a Use low idle priority for dispatching, to fix initial vtimeline display 2014-09-11 20:51:40 +02:00
René Stadler
b9156160e3 Add basic search highlighting 2014-09-11 20:51:40 +02:00
René Stadler
13d22d4254 Draw vertical timeline connectors as triangles 2014-09-11 20:51:40 +02:00
René Stadler
61a28cff12 Set view selection mode to BROWSE 2014-09-11 20:51:40 +02:00
René Stadler
e0be989987 Fix timeline position drawing and vertical timeline initial display 2014-09-11 20:51:39 +02:00
René Stadler
4fa1150b48 Put basename of open file into window title 2014-09-11 20:51:39 +02:00
René Stadler
ffd3cbb07c Add reload file functionality 2014-09-11 20:51:39 +02:00
René Stadler
4086eb2edc Disable interactive search on the log view 2014-09-11 20:51:39 +02:00
René Stadler
d4237c5600 Save state of timeline visibility 2014-09-11 20:51:39 +02:00
René Stadler
6e056f8e20 Refactor state/config classes to be more flexible 2014-09-11 20:51:39 +02:00