MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / ExportsTreeView

Class ExportsTreeView

python/examples/triage/exports.py:107–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

105
106
107class ExportsTreeView(QTreeView, FilterTarget):
108 def __init__(self, parent, view, data):
109 QTreeView.__init__(self, parent)
110 FilterTarget.__init__(self)
111 self.data = data
112 self.parent = parent
113 self.view = view
114
115 # Allow view-specific shortcuts when exports are focused
116 self.actionHandler = UIActionHandler()
117 self.actionHandler.setupActionHandler(self)
118 self.actionHandler.setActionContext(lambda: self.view.actionContext())
119
120 self.model = GenericExportsModel(self.data)
121 self.setModel(self.model)
122 self.setRootIsDecorated(False)
123 self.setUniformRowHeights(True)
124 self.setSortingEnabled(True)
125 self.sortByColumn(0, Qt.AscendingOrder)
126 if self.model.ordinal_col is not None:
127 self.setColumnWidth(self.model.ordinal_col, 55)
128
129 self.setFont(binaryninjaui.getMonospaceFont(self))
130
131 self.selectionModel().currentChanged.connect(self.exportSelected)
132 self.doubleClicked.connect(self.exportDoubleClicked)
133
134 def exportSelected(self, cur, prev):
135 sym = self.model.getSymbol(cur)
136 if sym is not None:
137 self.view.setCurrentOffset(sym.address)
138
139 def exportDoubleClicked(self, cur):
140 sym = self.model.getSymbol(cur)
141 if sym is not None:
142 viewFrame = ViewFrame.viewFrameForWidget(self)
143 if len(self.data.get_functions_at(sym.address)) > 0:
144 viewFrame.navigate("Graph:" + viewFrame.getCurrentDataType(), sym.address)
145 else:
146 viewFrame.navigate("Linear:" + viewFrame.getCurrentDataType(), sym.address)
147
148 def setFilter(self, filterText):
149 self.model.setFilter(filterText)
150
151 def scrollToFirstItem(self):
152 self.scrollToTop()
153
154 def scrollToCurrentItem(self):
155 self.scrollTo(self.currentIndex())
156
157 def selectFirstItem(self):
158 self.setCurrentIndex(self.model.index(0, 0, QModelIndex()))
159
160 def activateFirstItem(self):
161 self.exportDoubleClicked(self.model.index(0, 0, QModelIndex()))
162
163 def closeFilter(self):
164 self.setFocus(Qt.OtherFocusReason)

Callers 1

__init__Method · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected