287 |
287 |
288 |
288 |
289 class LogViewer(DebugViewer, wx.Panel): |
289 class LogViewer(DebugViewer, wx.Panel): |
290 |
290 |
291 def __init__(self, parent, window): |
291 def __init__(self, parent, window): |
292 wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) |
292 wx.Panel.__init__(self, parent, style=wx.TAB_TRAVERSAL | wx.SUNKEN_BORDER) |
293 DebugViewer.__init__(self, None, False, False) |
293 DebugViewer.__init__(self, None, False, False) |
294 |
294 |
295 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
295 main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=5) |
296 main_sizer.AddGrowableCol(0) |
296 main_sizer.AddGrowableCol(0) |
297 main_sizer.AddGrowableRow(1) |
297 main_sizer.AddGrowableRow(1) |
298 |
298 |
299 filter_sizer = wx.BoxSizer(wx.HORIZONTAL) |
299 filter_sizer = wx.BoxSizer(wx.HORIZONTAL) |
300 main_sizer.AddSizer(filter_sizer, border=5, flag=wx.TOP|wx.LEFT|wx.RIGHT|wx.GROW) |
300 main_sizer.AddSizer(filter_sizer, border=5, flag=wx.TOP | wx.LEFT | wx.RIGHT | wx.GROW) |
301 |
301 |
302 self.MessageFilter = wx.ComboBox(self, style=wx.CB_READONLY) |
302 self.MessageFilter = wx.ComboBox(self, style=wx.CB_READONLY) |
303 self.MessageFilter.Append(_("All")) |
303 self.MessageFilter.Append(_("All")) |
304 levels = LogLevels[:3] |
304 levels = LogLevels[:3] |
305 levels.reverse() |
305 levels.reverse() |
306 for level in levels: |
306 for level in levels: |
307 self.MessageFilter.Append(_(level)) |
307 self.MessageFilter.Append(_(level)) |
308 self.Bind(wx.EVT_COMBOBOX, self.OnMessageFilterChanged, self.MessageFilter) |
308 self.Bind(wx.EVT_COMBOBOX, self.OnMessageFilterChanged, self.MessageFilter) |
309 filter_sizer.AddWindow(self.MessageFilter, 1, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
309 filter_sizer.AddWindow(self.MessageFilter, 1, border=5, flag=wx.RIGHT | wx.ALIGN_CENTER_VERTICAL) |
310 |
310 |
311 self.SearchMessage = wx.SearchCtrl(self, style=wx.TE_PROCESS_ENTER) |
311 self.SearchMessage = wx.SearchCtrl(self, style=wx.TE_PROCESS_ENTER) |
312 self.SearchMessage.ShowSearchButton(True) |
312 self.SearchMessage.ShowSearchButton(True) |
313 self.SearchMessage.ShowCancelButton(True) |
313 self.SearchMessage.ShowCancelButton(True) |
314 self.Bind(wx.EVT_TEXT_ENTER, self.OnSearchMessageChanged, self.SearchMessage) |
314 self.Bind(wx.EVT_TEXT_ENTER, self.OnSearchMessageChanged, self.SearchMessage) |
315 self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, |
315 self.Bind(wx.EVT_SEARCHCTRL_SEARCH_BTN, |
316 self.OnSearchMessageSearchButtonClick, self.SearchMessage) |
316 self.OnSearchMessageSearchButtonClick, self.SearchMessage) |
317 self.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, |
317 self.Bind(wx.EVT_SEARCHCTRL_CANCEL_BTN, |
318 self.OnSearchMessageCancelButtonClick, self.SearchMessage) |
318 self.OnSearchMessageCancelButtonClick, self.SearchMessage) |
319 filter_sizer.AddWindow(self.SearchMessage, 3, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
319 filter_sizer.AddWindow(self.SearchMessage, 3, border=5, flag=wx.RIGHT | wx.ALIGN_CENTER_VERTICAL) |
320 |
320 |
321 self.CleanButton = wx.lib.buttons.GenBitmapButton(self, bitmap=GetBitmap("Clean"), |
321 self.CleanButton = wx.lib.buttons.GenBitmapButton(self, bitmap=GetBitmap("Clean"), |
322 size=wx.Size(28, 28), style=wx.NO_BORDER) |
322 size=wx.Size(28, 28), style=wx.NO_BORDER) |
323 self.CleanButton.SetToolTipString(_("Clean log messages")) |
323 self.CleanButton.SetToolTipString(_("Clean log messages")) |
324 self.Bind(wx.EVT_BUTTON, self.OnCleanButton, self.CleanButton) |
324 self.Bind(wx.EVT_BUTTON, self.OnCleanButton, self.CleanButton) |
325 filter_sizer.AddWindow(self.CleanButton) |
325 filter_sizer.AddWindow(self.CleanButton) |
326 |
326 |
327 message_panel_sizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0) |
327 message_panel_sizer = wx.FlexGridSizer(cols=2, hgap=0, rows=1, vgap=0) |
328 message_panel_sizer.AddGrowableCol(0) |
328 message_panel_sizer.AddGrowableCol(0) |
329 message_panel_sizer.AddGrowableRow(0) |
329 message_panel_sizer.AddGrowableRow(0) |
330 main_sizer.AddSizer(message_panel_sizer, border=5, flag=wx.LEFT|wx.RIGHT|wx.BOTTOM|wx.GROW) |
330 main_sizer.AddSizer(message_panel_sizer, border=5, flag=wx.LEFT | wx.RIGHT | wx.BOTTOM | wx.GROW) |
331 |
331 |
332 self.MessagePanel = wx.Panel(self) |
332 self.MessagePanel = wx.Panel(self) |
333 if wx.Platform == '__WXMSW__': |
333 if wx.Platform == '__WXMSW__': |
334 self.Font = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName='Courier New') |
334 self.Font = wx.Font(8, wx.SWISS, wx.NORMAL, wx.NORMAL, faceName='Courier New') |
335 else: |
335 else: |