summaryrefslogtreecommitdiff
path: root/python/examples
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2019-03-27 22:57:58 -0400
committerRusty Wagner <rusty@vector35.com>2019-03-27 23:02:34 -0400
commitc6604a881d3febdf691d77561c62057bb09dac71 (patch)
tree8aeb83804f5096d0c18877be9cc60547c7ca4978 /python/examples
parent962efd7abd475c1c40ae2892a89ac5b2c56e24a7 (diff)
Fix an issue with keyboard shortcuts when imports/exports list is active
Diffstat (limited to 'python/examples')
-rw-r--r--python/examples/triage/exports.py7
-rw-r--r--python/examples/triage/imports.py7
-rw-r--r--python/examples/triage/view.py12
3 files changed, 18 insertions, 8 deletions
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)