Commit graph

302 commits

Author SHA1 Message Date
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
René Stadler
181554e597 Gracefully handle errors when opening a file 2014-09-11 20:51:39 +02:00
René Stadler
04d8c6c806 Add very simple search bar 2014-09-11 20:51:39 +02:00
René Stadler
df96f4064c Colorize vertical timeline lines to indicate different threads 2014-09-11 20:51:39 +02:00
René Stadler
44376b41d1 Add (commented) support to draw the vertical timeline on first display 2014-09-11 20:51:39 +02:00
René Stadler
19a3fef369 Add vertical timeline widget (which looks quite cool) 2014-09-11 20:51:39 +02:00
René Stadler
be53d450ce s/get_cells/get_cell_renderers/ 2014-09-11 20:51:39 +02:00
René Stadler
4ae0bfa220 Replace filename column with code column, listing filename and line number 2014-09-11 20:51:39 +02:00
René Stadler
822a90a334 Make file->open work correctly 2014-09-11 20:51:39 +02:00
René Stadler
8602b6ab63 Enable double-clicking a file in file chooser dialog 2014-09-11 20:51:39 +02:00
René Stadler
f21ca6638d Align log level column text in center 2014-09-11 20:51:39 +02:00
René Stadler
b5e04f3d80 Fix initial column size measurement 2014-09-11 20:51:39 +02:00
René Stadler
98b381c7d9 Clamp timeline mouse position to actual range 2014-09-11 20:51:39 +02:00
René Stadler
13a1310e44 Fix copyright/license headers and module docstrings 2014-09-11 20:51:39 +02:00
René Stadler
d59678e2e3 Cleanup 2014-09-11 20:51:39 +02:00
René Stadler
cda1eb0131 Display timeline by default 2014-09-11 20:51:39 +02:00
René Stadler
41eaf0eb5e Fix missing the last vertical ref line in the timeline display 2014-09-11 20:51:39 +02:00
René Stadler
d2b5c883f3 Implement cancelling of the load process in the UI 2014-09-11 20:51:39 +02:00
René Stadler
b4ad0d01bd Progressively draw the debug level distribution into the timeline widget 2014-09-11 20:51:38 +02:00
René Stadler
7cda31f6c7 Don't make timeline data processing block the GUI 2014-09-11 20:51:38 +02:00
René Stadler
5a0fff722b Ease importing of modules from the Common package 2014-09-11 20:51:38 +02:00
René Stadler
e3410d3305 Ditch arrays for offset storage again 2014-09-11 20:51:38 +02:00
René Stadler
3b5745c412 Fix timeline for files where the first timestamp >> 0 2014-09-11 20:51:38 +02:00
René Stadler
75d1ff49e4 Use an array for line offset mapping (if file < 4GB) 2014-09-11 20:51:38 +02:00
René Stadler
03713f4a0e Add LogLines class 2014-09-11 20:51:38 +02:00