diff options
| author | Brian Potchik <brian@vector35.com> | 2019-03-26 11:55:36 -0400 |
|---|---|---|
| committer | Brian Potchik <brian@vector35.com> | 2019-03-26 11:55:36 -0400 |
| commit | 8b04c6ec72e8487883e5d71c141969dbf7eca050 (patch) | |
| tree | 3cf6de820253be98795197e0b83481109973ff4b | |
| parent | 20362165f9fcfce7902c0c058754e4ddbe8b016f (diff) | |
Add BinaryDataNavigable API to View which enables FeatureMap/UI Plugin navigation.
| -rw-r--r-- | python/examples/kaitai/view.py | 7 | ||||
| -rw-r--r-- | python/examples/triage/byte.py | 1 | ||||
| -rw-r--r-- | ui/viewframe.h | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/python/examples/kaitai/view.py b/python/examples/kaitai/view.py index 75952b9b..e1039f31 100644 --- a/python/examples/kaitai/view.py +++ b/python/examples/kaitai/view.py @@ -101,6 +101,7 @@ class KaitaiView(QScrollArea, View): QScrollArea.__init__(self, parent) View.__init__(self) + View.setBinaryDataNavigable(self, True) self.setupView(self) # BinaryViewType @@ -234,8 +235,10 @@ class KaitaiView(QScrollArea, View): return binaryninjaui.getMonospaceFont(self) def navigate(self, addr): - #log.log_debug('navigate()') - return False + self.rootSelectionStart = addr + self.rootSelectionEnd = addr+1 + self.hexWidget.setSelectionRange(addr, addr+1) + return True def navigateToFileOffset(self, offset): #log.log_debug('navigateToFileOffset()') diff --git a/python/examples/triage/byte.py b/python/examples/triage/byte.py index f4a5056a..4caf228f 100644 --- a/python/examples/triage/byte.py +++ b/python/examples/triage/byte.py @@ -22,6 +22,7 @@ class ByteView(QAbstractScrollArea, View): def __init__(self, parent, data): QAbstractScrollArea.__init__(self, parent) View.__init__(self) + View.setBinaryDataNavigable(self, True) self.setupView(self) self.data = data self.byte_mapping = [ diff --git a/ui/viewframe.h b/ui/viewframe.h index 6217fffa..688a5a21 100644 --- a/ui/viewframe.h +++ b/ui/viewframe.h @@ -36,6 +36,7 @@ class BINARYNINJAUIAPI View protected: Menu m_contextMenu; UIActionHandler m_actionHandler; + bool m_binaryDataNavigable = false; bool writeDataToClipboard(const BinaryNinja::DataBuffer& data, bool binary, TransformRef xform); BinaryNinja::DataBuffer readDataFromClipboard(TransformRef xform); @@ -74,6 +75,9 @@ public: virtual bool navigateToFunction(FunctionRef func, uint64_t offset); virtual bool goToReference(FunctionRef func, uint64_t source, uint64_t target); + bool isBinaryDataNavigable() { return m_binaryDataNavigable; } + void setBinaryDataNavigable(bool navigable) { m_binaryDataNavigable = navigable; } + virtual bool closeRequest() { return true; } virtual void closing() {} virtual void updateFonts() {} |
