Vector35 / Vector35/binaryninja-api

Lots of public C++ UI API classes are not exposed to Python

Open
#3,782 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Component: API Component: UI Effort: Low Impact: Low
Dominant language
C++
Stars
1.3k
Forks
298
Avg merge
5d 5h
Merged PRs (30d)
19

Description

Version and Platform (required):

  • Binary Ninja Version: 3.3.3992
  • OS: macOS
  • OS Version: 12.4
  • CPU Architecture: M1

Bug Description:
There are a bunch of objects defined in public ui api headers, marked BINARYNINJAUIAPI, that are not exposed to python because they are missing from the shiboken type system xml file. Here's a list:

AddUserXrefDialog
AddressDialogWithPreview
BackgroundThread
ClickableStateLabel
CommandListDelegate
CreateStackVariableDialog
CrossReferenceContainer
CrossReferenceSidebarWidgetType
CustomFusionStyle
DataComparedTableItem
DockProperties
DockableTabCollection
FileOffsetDialogWithPreview
GetSymbolsListThread
GetTypesListThread
GraphLayoutCompleteEvent
IconImage
LogListFilterProxyModel
LogViewComboBox
MemoryMapItemDelegate
MemoryMapSidebarWidget
MemoryMapSidebarWidgetType
MergeVariableHeader
MergeVariableItemDelegate
MergeVariableListItem
MiniGraphSidebarWidgetType
PaneHeaderContainer
PaneHeaderFade
QCheckboxCombo
ScriptingCompletionModel
ScriptingCompletionPopup
SearchProgressBar
SearchResultFilterProxyModel
SearchResultItemDelegate
SearchResultModel
SearchResultTable
SearchResultWidget
SectionDialog
SectionWidget
SegmentDialog
SegmentWidget
StackView
StackViewSidebarWidget
StackViewSidebarWidgetType
StringsViewSidebarWidget
StringsViewSidebarWidgetType
SymbolsViewSidebarWidgetType
TabDragIndicator
TagListSidebarWidgetType
TextBrowser
TextBrowserDownloadCache
TypeDefinitionLinesAndFilterStatus
TypeFilter
TypeFilterEdit
TypeViewSidebarWidget
TypeViewSidebarWidgetType
UIBookmarkAction
VariableList
VariableListModel
VariableListSidebarWidgetType
ViewNavigationMode
ViewPaneHeader
ViewTypeContainer
WidgetPaneHeader

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Shiboken type system XML file and the public UI API headers containing the listed classes. Add the missing classes to the binding definitions, then verify that each listed class is exposed to Python.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, python
Domain
api, desktop-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.