From c6604a881d3febdf691d77561c62057bb09dac71 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Wed, 27 Mar 2019 22:57:58 -0400 Subject: Fix an issue with keyboard shortcuts when imports/exports list is active --- python/examples/triage/exports.py | 7 ++++++- python/examples/triage/imports.py | 7 ++++++- python/examples/triage/view.py | 12 ++++++------ 3 files changed, 18 insertions(+), 8 deletions(-) (limited to 'python/examples/triage') diff --git a/python/examples/triage/exports.py b/python/examples/triage/exports.py index 14b23969..c72baa19 100644 --- a/python/examples/triage/exports.py +++ b/python/examples/triage/exports.py @@ -2,7 +2,7 @@ from PySide2.QtWidgets import QTreeView, QVBoxLayout, QWidget from PySide2.QtCore import Qt, QAbstractItemModel, QModelIndex, QSize from binaryninja.enums import SymbolType, SymbolBinding import binaryninjaui -from binaryninjaui import ViewFrame, FilterTarget, FilteredView, UIContext +from binaryninjaui import ViewFrame, FilterTarget, FilteredView, UIContext, UIActionHandler class GenericExportsModel(QAbstractItemModel): @@ -112,6 +112,11 @@ class ExportsTreeView(QTreeView, FilterTarget): self.parent = parent self.view = view + # Allow view-specific shortcuts when exports are focused + self.actionHandler = UIActionHandler() + self.actionHandler.setupActionHandler(self) + self.actionHandler.setActionContext(lambda: self.view.actionContext()) + self.model = GenericExportsModel(self.data) self.setModel(self.model) self.setRootIsDecorated(False) diff --git a/python/examples/triage/imports.py b/python/examples/triage/imports.py index 24de5327..e1a85a7a 100644 --- a/python/examples/triage/imports.py +++ b/python/examples/triage/imports.py @@ -2,7 +2,7 @@ from PySide2.QtWidgets import QTreeView, QVBoxLayout, QWidget from PySide2.QtCore import Qt, QAbstractItemModel, QModelIndex, QSize from binaryninja.enums import SymbolType import binaryninjaui -from binaryninjaui import ViewFrame, FilterTarget, FilteredView, UIContext +from binaryninjaui import ViewFrame, FilterTarget, FilteredView, UIContext, UIActionHandler class GenericImportsModel(QAbstractItemModel): @@ -132,6 +132,11 @@ class ImportsTreeView(QTreeView, FilterTarget): self.parent = parent self.view = view + # Allow view-specific shortcuts when imports are focused + self.actionHandler = UIActionHandler() + self.actionHandler.setupActionHandler(self) + self.actionHandler.setActionContext(lambda: self.view.actionContext()) + self.model = GenericImportsModel(self.data) self.setModel(self.model) self.setRootIsDecorated(False) diff --git a/python/examples/triage/view.py b/python/examples/triage/view.py index 952318ba..e25d3d1c 100644 --- a/python/examples/triage/view.py +++ b/python/examples/triage/view.py @@ -26,7 +26,7 @@ class TriageView(QScrollArea, View): container = QWidget(self) layout = QVBoxLayout() - entropyGroup = QGroupBox("Entropy") + entropyGroup = QGroupBox("Entropy", container) entropyLayout = QVBoxLayout() entropyLayout.addWidget(entropy.EntropyWidget(entropyGroup, self, self.data)) entropyGroup.setLayout(entropyLayout) @@ -42,7 +42,7 @@ class TriageView(QScrollArea, View): log.log_error(traceback.format_exc()) if hdr is not None: - headerGroup = QGroupBox("Headers") + headerGroup = QGroupBox("Headers", container) headerLayout = QVBoxLayout() headerWidget = headers.HeaderWidget(headerGroup, hdr) headerLayout.addWidget(headerWidget) @@ -52,13 +52,13 @@ class TriageView(QScrollArea, View): if self.data.executable: importExportSplitter = QSplitter(Qt.Horizontal) - importGroup = QGroupBox("Imports") + importGroup = QGroupBox("Imports", container) importLayout = QVBoxLayout() importLayout.addWidget(imports.ImportsWidget(importGroup, self, self.data)) importGroup.setLayout(importLayout) importExportSplitter.addWidget(importGroup) - exportGroup = QGroupBox("Exports") + exportGroup = QGroupBox("Exports", container) exportLayout = QVBoxLayout() exportLayout.addWidget(exports.ExportsWidget(exportGroup, self, self.data)) exportGroup.setLayout(exportLayout) @@ -67,7 +67,7 @@ class TriageView(QScrollArea, View): layout.addWidget(importExportSplitter) if self.data.view_type != "PE": - segmentsGroup = QGroupBox("Segments") + segmentsGroup = QGroupBox("Segments", container) segmentsLayout = QVBoxLayout() segmentsWidget = sections.SegmentsWidget(segmentsGroup, self.data) segmentsLayout.addWidget(segmentsWidget) @@ -76,7 +76,7 @@ class TriageView(QScrollArea, View): if len(segmentsWidget.segments) == 0: segmentsGroup.hide() - sectionsGroup = QGroupBox("Sections") + sectionsGroup = QGroupBox("Sections", container) sectionsLayout = QVBoxLayout() sectionsWidget = sections.SectionsWidget(sectionsGroup, self.data) sectionsLayout.addWidget(sectionsWidget) -- cgit v1.3.1