controls/LogViewer.py
changeset 1071 5e740fe71fbe
parent 1020 2d20f25cd39f
child 1076 2a02c6404124
equal deleted inserted replaced
1070:86ee833e33ef 1071:5e740fe71fbe
   414                         break
   414                         break
   415                 self.previous_log_count[level] = count
   415                 self.previous_log_count[level] = count
   416         new_messages.sort()
   416         new_messages.sort()
   417         if len(new_messages) > 0:
   417         if len(new_messages) > 0:
   418             self.HasNewData = True
   418             self.HasNewData = True
   419             old_length = len(self.LogMessages)
   419             if self.CurrentMessage is not None:
       
   420                 current_is_last = self.GetNextMessage(self.CurrentMessage)[0] is None
       
   421             else:
       
   422                 current_is_last = True
   420             for new_message in new_messages:
   423             for new_message in new_messages:
   421                 self.LogMessages.append(new_message)
   424                 self.LogMessages.append(new_message)
   422                 self.LogMessagesTimestamp = numpy.append(self.LogMessagesTimestamp, [new_message.Timestamp])
   425                 self.LogMessagesTimestamp = numpy.append(self.LogMessagesTimestamp, [new_message.Timestamp])
   423             if self.CurrentMessage is None or self.CurrentMessage == old_length - 1:
   426             if current_is_last:
   424                 self.CurrentMessage = len(self.LogMessages) - 1
   427                 self.ScrollToLast(False)
   425                 self.ResetMessageToolTip()
   428                 self.ResetMessageToolTip()
   426                 self.MessageToolTipTimer.Stop()
   429                 self.MessageToolTipTimer.Stop()
   427                 self.ParentWindow.SelectTab(self)
   430                 self.ParentWindow.SelectTab(self)
   428             self.NewDataAvailable(None)
   431             self.NewDataAvailable(None)
   429     
   432     
   755             else:
   758             else:
   756                 self.LastStartTime = current_time
   759                 self.LastStartTime = current_time
   757             self.ScrollTimer.Start(int(period * 1000), True)
   760             self.ScrollTimer.Start(int(period * 1000), True)
   758         self.ScrollSpeed = speed    
   761         self.ScrollSpeed = speed    
   759     
   762     
   760     def ScrollToLast(self):
   763     def ScrollToLast(self, refresh=True):
   761         if len(self.LogMessages) > 0:
   764         if len(self.LogMessages) > 0:
   762             self.CurrentMessage = len(self.LogMessages) - 1
   765             self.CurrentMessage = len(self.LogMessages) - 1
   763             message = self.LogMessages[self.CurrentMessage]
   766             message = self.LogMessages[self.CurrentMessage]
   764             if not self.FilterLogMessage(message):
   767             if not self.FilterLogMessage(message):
   765                 message, self.CurrentMessage = self.GetPreviousMessage(self.CurrentMessage)
   768                 message, self.CurrentMessage = self.GetPreviousMessage(self.CurrentMessage)
   766             self.RefreshView()
   769             if refresh:
       
   770                 self.RefreshView()
   767 
   771 
   768     def ScrollToFirst(self):
   772     def ScrollToFirst(self):
   769         if len(self.LogMessages) > 0:
   773         if len(self.LogMessages) > 0:
   770             message_idx = 0
   774             message_idx = 0
   771             message = self.LogMessages[message_idx]
   775             message = self.LogMessages[message_idx]