| 28 | |
| 29 | |
| 30 | class Window(qrd.CaptureViewer): |
| 31 | def __init__(self, ctx: qrd.CaptureContext, version: str): |
| 32 | super().__init__() |
| 33 | |
| 34 | self.mqt: qrd.MiniQtHelper = ctx.Extensions().GetMiniQtHelper() |
| 35 | |
| 36 | self.ctx = ctx |
| 37 | self.version = version |
| 38 | self.topWindow = self.mqt.CreateToplevelWidget("Breadcrumbs", lambda c, w, d: window_closed()) |
| 39 | |
| 40 | vert = self.mqt.CreateVerticalContainer() |
| 41 | self.mqt.AddWidget(self.topWindow, vert) |
| 42 | |
| 43 | self.breadcrumbs = self.mqt.CreateLabel() |
| 44 | |
| 45 | self.mqt.AddWidget(vert, self.breadcrumbs) |
| 46 | |
| 47 | ctx.AddCaptureViewer(self) |
| 48 | |
| 49 | def OnCaptureLoaded(self): |
| 50 | self.mqt.SetWidgetText(self.breadcrumbs, "Breadcrumbs:") |
| 51 | |
| 52 | def OnCaptureClosed(self): |
| 53 | self.mqt.SetWidgetText(self.breadcrumbs, "Breadcrumbs:") |
| 54 | |
| 55 | def OnSelectedEventChanged(self, event): |
| 56 | pass |
| 57 | |
| 58 | def OnEventChanged(self, event): |
| 59 | action = self.ctx.GetAction(event) |
| 60 | |
| 61 | breadcrumbs = '' |
| 62 | |
| 63 | if action is not None: |
| 64 | breadcrumbs = '@{}: {}'.format(action.eventId, action.name) |
| 65 | |
| 66 | while action.parent is not None: |
| 67 | action = action.parent |
| 68 | breadcrumbs = '@{}: {}'.format(action.eventId, action.name) + '\n' + breadcrumbs |
| 69 | |
| 70 | self.mqt.SetWidgetText(self.breadcrumbs, "Breadcrumbs:\n{}".format(breadcrumbs)) |
| 71 | |
| 72 | |
| 73 | cur_window: Optional[Window] = None |