Commit graph

323 commits

Author SHA1 Message Date
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
René Stadler
f98ece8fe6 Rename COL_LINE to COL_LINE_NUMBER 2014-09-11 20:51:38 +02:00
René Stadler
500e9b53c3 Fix object name serialization 2014-09-11 20:51:38 +02:00
René Stadler
9de84e42e7 Add test script to generate a simple test log. Fix level name space adjustment 2014-09-11 20:51:38 +02:00
René Stadler
56e4a95450 Almost allow copying a full line to clipboard 2014-09-11 20:51:38 +02:00
René Stadler
0736ed0257 Remove commented code 2014-09-11 20:51:38 +02:00
René Stadler
e92d613dec Replace model.get with model.get_value 2014-09-11 20:51:38 +02:00
René Stadler
4ec31e6aa0 Cleanup 2014-09-11 20:51:38 +02:00
René Stadler
2932f7ebbe Remove commented code, resolve FIXME 2014-09-11 20:51:38 +02:00
René Stadler
a511073ea2 Simplify function 2014-09-11 20:51:38 +02:00
René Stadler
8747ab3a6e Rename more density stuff to timeline 2014-09-11 20:51:38 +02:00
René Stadler
f17d2000c8 Remove unused attribute 2014-09-11 20:51:38 +02:00
René Stadler
949a6ee149 And now make it actually run\! 2014-09-11 20:51:38 +02:00
René Stadler
cf96667ad9 Also commit the previous change to the GUI module :-/ 2014-09-11 20:51:38 +02:00
René Stadler
25f8f316d7 Move final log line parsing from GUI to Data module 2014-09-11 20:51:38 +02:00
René Stadler
ef78287a70 Optimize color stripping function a bit 2014-09-11 20:51:38 +02:00
René Stadler
5329d7503e Also plot green info line count in timeline display 2014-09-11 20:51:38 +02:00
René Stadler
fad744c07f Add user/system time to benchmark output 2014-09-11 20:51:38 +02:00
René Stadler
887ae6d898 Rename line frequency plugin/widget to timeline 2014-09-11 20:51:37 +02:00
René Stadler
7e8b53221a Speed up level density sentinel 2014-09-11 20:51:37 +02:00
René Stadler
2d6b01144d Correctly handle variable length thread address formatting 2014-09-11 20:51:37 +02:00
René Stadler
df353a932a Add markers for warning and error log messages to the timeline display 2014-09-11 20:51:37 +02:00
René Stadler
435b9bd55a Colorize log and debug log levels in frequency display widget 2014-09-11 20:51:37 +02:00
René Stadler
97d114aeb1 Colorize debug level column 2014-09-11 20:51:37 +02:00
René Stadler
0a483e4931 Rename debug level instances 2014-09-11 20:51:37 +02:00
René Stadler
95476926f8 Hacky commit to parse debug level on line cache level 2014-09-11 20:51:37 +02:00
René Stadler
a52c2c3310 Add (commented out) support for parsing debug level at line cache scan time 2014-09-11 20:51:37 +02:00
René Stadler
ed04803d87 Cleanup 2014-09-11 20:51:37 +02:00
René Stadler
0482a50c3b Fix timestamps of unparsable lines to fix line density display 2014-09-11 20:51:37 +02:00
René Stadler
00786f0121 Fix message display 2014-09-11 20:51:37 +02:00
René Stadler
109cc29ed9 Save huge amounts of memory by never caching the message and interning data for the other columns 2014-09-11 20:51:37 +02:00
René Stadler
b3f21b5a59 Use less regex matching to parse lines (does not provide a performance gain though) 2014-09-11 20:51:37 +02:00
René Stadler
df2d890d40 Make column id order match log line fields order 2014-09-11 20:51:37 +02:00
René Stadler
c21fa27d1b Fix benchmark hack option 2014-09-11 20:51:37 +02:00
René Stadler
9d8f796931 Add some simple filtering 2014-09-11 20:51:37 +02:00
René Stadler
2f96b18869 Add evil comment about treeview slowness with multiple selection mode 2014-09-11 20:51:37 +02:00
René Stadler
c7e3c56305 Fix comment 2014-09-11 20:51:37 +02:00
René Stadler
2511183d74 Use monospace font for some numeric columns 2014-09-11 20:51:37 +02:00
René Stadler
b1085b3b4d Also draw vertical help lines 2014-09-11 20:51:37 +02:00
René Stadler
9619daa316 Change model design to be more filter friendly 2014-09-11 20:51:37 +02:00
René Stadler
805629cc35 Draw horizontal helper lines in frequency display 2014-09-11 20:51:37 +02:00
René Stadler
09b74c44b2 Separate log model into base class and lazy implementation. Add basis for a filter model based on that 2014-09-11 20:51:37 +02:00
René Stadler
c84f0ccd75 Remove dead/commented out code 2014-09-11 20:51:37 +02:00
René Stadler
770eb32ca6 Add/change comments 2014-09-11 20:51:37 +02:00
René Stadler
de83182e02 Change view columns menu item label 2014-09-11 20:51:37 +02:00
René Stadler
eea7c6687b Add PID column 2014-09-11 20:51:36 +02:00
René Stadler
6eb37ebc3c Add skeleton for file properties plugin 2014-09-11 20:51:36 +02:00
René Stadler
519ac2bf99 Add debug output. Add filename column 2014-09-11 20:51:36 +02:00
René Stadler
be2929d7fa Add view columns visibility and ordering state persistence 2014-09-11 20:51:36 +02:00
René Stadler
21091d1dbd Don't make column headers clickable 2014-09-11 20:51:36 +02:00
René Stadler
8464704408 Fix progress display on load 2014-09-11 20:51:36 +02:00
René Stadler
eb50a5dd41 If the indicator in the frequency display is just 1px wide, don't use transparency 2014-09-11 20:51:36 +02:00
René Stadler
71cddb7d78 New import (the old repo got busted, just had 4 revs anyways) 2014-09-11 20:51:36 +02:00