diff options
| author | Rusty Wagner <rusty@vector35.com> | 2019-03-18 11:32:12 -0700 |
|---|---|---|
| committer | Rusty Wagner <rusty@vector35.com> | 2019-03-20 13:00:17 -0400 |
| commit | 22be7356f339bcb11383ac0ec2a6e11a605f9533 (patch) | |
| tree | 10e7b7cdbed38d16320868884d4667bfc8b472d5 /python/examples/triage | |
| parent | 36650362e2723036605ae336a40b4064ffd1b0fb (diff) | |
Fix some bugs in triage plugin
Diffstat (limited to 'python/examples/triage')
| -rw-r--r-- | python/examples/triage/byte.py | 34 | ||||
| -rw-r--r-- | python/examples/triage/entropy.py | 4 | ||||
| -rw-r--r-- | python/examples/triage/exports.py | 4 | ||||
| -rw-r--r-- | python/examples/triage/headers.py | 4 | ||||
| -rw-r--r-- | python/examples/triage/imports.py | 4 | ||||
| -rw-r--r-- | python/examples/triage/sections.py | 6 |
6 files changed, 32 insertions, 24 deletions
diff --git a/python/examples/triage/byte.py b/python/examples/triage/byte.py index 23302033..d4095237 100644 --- a/python/examples/triage/byte.py +++ b/python/examples/triage/byte.py @@ -1,5 +1,6 @@ # coding: utf8 +import sys from PySide2.QtWidgets import QAbstractScrollArea, QAbstractSlider from PySide2.QtGui import QPainter, QPalette, QFont from PySide2.QtCore import Qt, QTimer, QRect @@ -102,14 +103,14 @@ class ByteView(QAbstractScrollArea, View): self.actionHandler().bindAction("Page Down", UIAction(lambda ctxt: self.pageDown(False))) self.actionHandler().bindAction("Extend Selection Page Up", UIAction(lambda ctxt: self.pageUp(True))) self.actionHandler().bindAction("Extend Selection Page Down", UIAction(lambda ctxt: self.pageDown(True))) - self.actionHandler().bindAction("Move Cursor to Start Of Line", UIAction(lambda ctxt: self.moveToStartOfLine(False))) - self.actionHandler().bindAction("Move Cursor to End Of Line", UIAction(lambda ctxt: self.moveToEndOfLine(False))) - self.actionHandler().bindAction("Move Cursor to Start Of View", UIAction(lambda ctxt: self.moveToStartOfView(False))) - self.actionHandler().bindAction("Move Cursor to End Of View", UIAction(lambda ctxt: self.moveToEndOfView(False))) - self.actionHandler().bindAction("Extend Selection to Start Of Line", UIAction(lambda ctxt: self.moveToStartOfLine(True))) - self.actionHandler().bindAction("Extend Selection to End Of Line", UIAction(lambda ctxt: self.moveToEndOfLine(True))) - self.actionHandler().bindAction("Extend Selection to Start Of View", UIAction(lambda ctxt: self.moveToStartOfView(True))) - self.actionHandler().bindAction("Extend Selection to End Of View", UIAction(lambda ctxt: self.moveToEndOfView(True))) + self.actionHandler().bindAction("Move Cursor to Start of Line", UIAction(lambda ctxt: self.moveToStartOfLine(False))) + self.actionHandler().bindAction("Move Cursor to End of Line", UIAction(lambda ctxt: self.moveToEndOfLine(False))) + self.actionHandler().bindAction("Move Cursor to Start of View", UIAction(lambda ctxt: self.moveToStartOfView(False))) + self.actionHandler().bindAction("Move Cursor to End of View", UIAction(lambda ctxt: self.moveToEndOfView(False))) + self.actionHandler().bindAction("Extend Selection to Start of Line", UIAction(lambda ctxt: self.moveToStartOfLine(True))) + self.actionHandler().bindAction("Extend Selection to End of Line", UIAction(lambda ctxt: self.moveToEndOfLine(True))) + self.actionHandler().bindAction("Extend Selection to Start of View", UIAction(lambda ctxt: self.moveToStartOfView(True))) + self.actionHandler().bindAction("Extend Selection to End of View", UIAction(lambda ctxt: self.moveToEndOfView(True))) def getData(self): return self.data @@ -202,9 +203,12 @@ class ByteView(QAbstractScrollArea, View): def createRenderContext(self): render = RenderContext(self) userFont = binaryninjaui.getMonospaceFont(self) - # Some fonts aren't fixed width across all characters, use a known good one - font = QFont("Menlo", userFont.pointSize()) - font.setKerning(False) + if sys.platform == "darwin": + # Some fonts aren't fixed width across all characters, use a known good one + font = QFont("Menlo", userFont.pointSize()) + font.setKerning(False) + else: + font = userFont render.setFont(font) return render @@ -212,6 +216,8 @@ class ByteView(QAbstractScrollArea, View): self.addrWidth = max(len("%x" % self.data.end), 8) render = self.createRenderContext() cols = ((width - 4) // render.getFontWidth()) - (self.addrWidth + 2) + if cols < 1: + cols = 1 if cols != self.cols: self.cols = cols if self.topLine < len(self.lines): @@ -642,6 +648,7 @@ class ByteView(QAbstractScrollArea, View): self.cursorAddr = self.lines[i - self.visibleRows].address elif self.cursorAddr >= (self.lines[i - self.visibleRows].address + self.lines[i - self.visibleRows].length): self.cursorAddr = self.lines[i - self.visibleRows].address + self.lines[i - self.visibleRows].length - 1 + break self.adjustAddressAfterBackwardMovement() if self.topLine > self.visibleRows: self.topLine -= self.visibleRows @@ -668,8 +675,9 @@ class ByteView(QAbstractScrollArea, View): self.cursorAddr = self.lines[i + self.visibleRows].address + lineOfs if self.cursorAddr < self.lines[i + self.visibleRows].address: self.cursorAddr = self.lines[i + self.visibleRows].address - elif self.cursorAddr >= (self.lines[i + self.visibleRows].address + self.lines[i - self.visibleRows].length): - self.cursorAddr = self.lines[i + self.visibleRows].address + self.lines[i - self.visibleRows].length - 1 + elif self.cursorAddr >= (self.lines[i + self.visibleRows].address + self.lines[i + self.visibleRows].length): + self.cursorAddr = self.lines[i + self.visibleRows].address + self.lines[i + self.visibleRows].length - 1 + break self.adjustAddressAfterForwardMovement() if (self.topLine + self.visibleRows) < len(self.lines): self.topLine += self.visibleRows diff --git a/python/examples/triage/entropy.py b/python/examples/triage/entropy.py index 37ce295a..94afd650 100644 --- a/python/examples/triage/entropy.py +++ b/python/examples/triage/entropy.py @@ -4,7 +4,7 @@ from PySide2.QtWidgets import QWidget from PySide2.QtGui import QImage, QColor, QPainter from PySide2.QtCore import Qt, QSize, QTimer import binaryninjaui -from binaryninjaui import ViewFrame, ThemeColor +from binaryninjaui import ViewFrame, ThemeColor, UIContext class EntropyThread(threading.Thread): @@ -51,7 +51,7 @@ class EntropyWidget(QWidget): self.timer.setSingleShot(False) self.timer.start() - self.setMinimumHeight(32) + self.setMinimumHeight(UIContext.getScaledWindowSize(32, 32).height()) def paintEvent(self, event): p = QPainter(self) diff --git a/python/examples/triage/exports.py b/python/examples/triage/exports.py index 27dbae76..14b23969 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 +from binaryninjaui import ViewFrame, FilterTarget, FilteredView, UIContext class GenericExportsModel(QAbstractItemModel): @@ -178,4 +178,4 @@ class ExportsWidget(QWidget): self.filter = FilteredView(self, self.imports, self.imports) layout.addWidget(self.filter, 1) self.setLayout(layout) - self.setMinimumSize(QSize(100, 196)) + self.setMinimumSize(UIContext.getScaledWindowSize(100, 196)) diff --git a/python/examples/triage/headers.py b/python/examples/triage/headers.py index 47869134..33b9b3c2 100644 --- a/python/examples/triage/headers.py +++ b/python/examples/triage/headers.py @@ -1,7 +1,7 @@ import time from binaryninja.binaryview import StructuredDataView import binaryninjaui -from binaryninjaui import ThemeColor, ViewFrame +from binaryninjaui import ThemeColor, ViewFrame, UIContext from PySide2.QtWidgets import QWidget, QLabel, QGridLayout from PySide2.QtGui import QPalette @@ -217,6 +217,6 @@ class HeaderWidget(QWidget): row = 0 col += 1 for col in range(1, header.columns): - layout.setColumnMinimumWidth(col * 3 - 1, 20) + layout.setColumnMinimumWidth(col * 3 - 1, UIContext.getScaledWindowSize(20, 20).width()) layout.setColumnStretch(header.columns * 3 - 1, 1) self.setLayout(layout) diff --git a/python/examples/triage/imports.py b/python/examples/triage/imports.py index a7eb64bd..24de5327 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 +from binaryninjaui import ViewFrame, FilterTarget, FilteredView, UIContext class GenericImportsModel(QAbstractItemModel): @@ -195,4 +195,4 @@ class ImportsWidget(QWidget): self.filter = FilteredView(self, self.imports, self.imports) layout.addWidget(self.filter, 1) self.setLayout(layout) - self.setMinimumSize(QSize(100, 196)) + self.setMinimumSize(UIContext.getScaledWindowSize(100, 196)) diff --git a/python/examples/triage/sections.py b/python/examples/triage/sections.py index 4a8d0f65..d0e3a3bf 100644 --- a/python/examples/triage/sections.py +++ b/python/examples/triage/sections.py @@ -3,7 +3,7 @@ from PySide2.QtWidgets import QWidget, QLabel, QGridLayout, QHBoxLayout from binaryninja.enums import SectionSemantics import binaryninjaui -from binaryninjaui import ThemeColor, ViewFrame +from binaryninjaui import ThemeColor, ViewFrame, UIContext from . import headers @@ -14,7 +14,7 @@ class SegmentsWidget(QWidget): layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setVerticalSpacing(1) - layout.setHorizontalSpacing(16) + layout.setHorizontalSpacing(UIContext.getScaledWindowSize(16, 16).width()) self.segments = [] for segment in data.segments: @@ -69,7 +69,7 @@ class SectionsWidget(QWidget): layout = QGridLayout() layout.setContentsMargins(0, 0, 0, 0) layout.setVerticalSpacing(1) - layout.setHorizontalSpacing(16) + layout.setHorizontalSpacing(UIContext.getScaledWindowSize(16, 16).width()) maxNameLen = 0 for section in data.sections.values(): |
