Log viewer - fixes for column sorting
This commit is contained in:
		
							parent
							
								
									45210f0668
								
							
						
					
					
						commit
						9939aa4a0e
					
				|  | @ -24,6 +24,8 @@ import gtk | |||
| import gobject | ||||
| import pango | ||||
| 
 | ||||
| import os | ||||
| import traceback | ||||
| import logging | ||||
| # logging has been set up in fpdb.py or HUD_main.py, use their settings: | ||||
| log = logging.getLogger("logview") | ||||
|  | @ -135,7 +137,7 @@ class GuiLogView: | |||
|     def loadLog(self): | ||||
| 
 | ||||
|         self.liststore.clear() | ||||
|         self.listcols = [] | ||||
| #        self.listcols = [] blanking listcols causes sortcols() to fail with index out of range | ||||
| 
 | ||||
|         # guesstimate number of lines in file | ||||
|         if os.path.exists(self.logfile): | ||||
|  | @ -155,6 +157,15 @@ class GuiLogView: | |||
|                 # 2009-12-02 15:23:21,716 - config       DEBUG    config logger initialised | ||||
|                 l = l + 1 | ||||
|                 if l > startline: | ||||
|                     # NOTE selecting a sort column and then switching to a log file | ||||
|                     # with several thousand rows will send cpu 100% for a prolonged period. | ||||
|                     # reason is that the append() method seems to sort every record as it goes, rather than | ||||
|                     # pulling in the whole file and sorting at the end. | ||||
|                     # one fix is to check if a column sort has been selected, reset to date/time asc | ||||
|                     # append all the rows and then reselect the required sort order. | ||||
|                     # Note: there is no easy method available to revert the list to an "unsorted" state. | ||||
|                     # always defaulting to date/time asc doesn't work, because some rows do not have date/time info | ||||
|                     # and would end up sorted out of context. | ||||
|                     if len(line) > 49 and line[23:26] == ' - ' and line[34:39] == '     ': | ||||
|                         iter = self.liststore.append( (line[0:23], line[26:32], line[39:46], line[48:].strip(), True) ) | ||||
|                     else: | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user