TagList

Detailed Description

Classes

class  TagListModel
 
class  TagItemDelegate
 
class  TagList
 
class  TagListWidget
 
class  TagListDialog
 
class  TagListSidebarWidgetType
 

Class Documentation

◆ TagListModel

class TagListModel

Public Member Functions

 TagListModel (QWidget *parent, BinaryViewRef data)
 
virtual ~TagListModel ()
 
BinaryNinja::TagReferenceGetRef (const QModelIndex &index)
 
const BinaryNinja::TagReferenceGetRef (const QModelIndex &index) const
 
void SetSectionSizeHints (const std::map< int, QSize > &sizes)
 
TagTypeRef GetTypeRef (const QModelIndex &index)
 
const TagTypeRef GetTypeRef (const QModelIndex &index) const
 
virtual QModelIndex index (int row, int col, const QModelIndex &parent) const override
 
virtual QModelIndex parent (const QModelIndex &i) const override
 
virtual bool hasChildren (const QModelIndex &parent) const override
 
virtual int rowCount (const QModelIndex &parent) const override
 
virtual int columnCount (const QModelIndex &parent) const override
 
virtual QVariant headerData (int section, Qt::Orientation orientation, int role) const override
 
virtual QVariant data (const QModelIndex &i, int role) const override
 
virtual bool setData (const QModelIndex &i, const QVariant &value, int role=Qt::EditRole) override
 
virtual Qt::ItemFlags flags (const QModelIndex &i) const override
 
virtual void sort (int column, Qt::SortOrder order) override
 
virtual void OnTagAdded (BinaryNinja::BinaryView *, const BinaryNinja::TagReference &) override
 
virtual void OnTagRemoved (BinaryNinja::BinaryView *, const BinaryNinja::TagReference &) override
 
bool setModelData (const std::vector< std::pair< TagTypeRef, std::vector< BinaryNinja::TagReference > > > &refs, QItemSelectionModel *selectionModel, int sortColumn, Qt::SortOrder sortOrder, bool &selectionUpdated)
 
- Public Member Functions inherited from BinaryNinja::BinaryDataNotification
 BinaryDataNotification ()
 
 BinaryDataNotification (NotificationTypes notifications)
 
virtual ~BinaryDataNotification ()
 
BNBinaryDataNotificationGetCallbacks ()
 
virtual uint64_t OnNotificationBarrier (BinaryView *view)
 
virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len)
 
virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdated (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdateRequested (BinaryView *view, Function *func)
 
virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var)
 
virtual void OnDataMetadataUpdated (BinaryView *view, uint64_t offset)
 
virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef)
 
virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagUpdated (BinaryView *view, const TagReference &tagRef)
 
virtual void OnSymbolAdded (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym)
 
virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnTypeDefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeUndefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeReferenceChanged (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeFieldReferenceChanged (BinaryView *data, const QualifiedName &name, uint64_t offset)
 
virtual void OnSegmentAdded (BinaryView *data, Segment *segment)
 
virtual void OnSegmentRemoved (BinaryView *data, Segment *segment)
 
virtual void OnSegmentUpdated (BinaryView *data, Segment *segment)
 
virtual void OnSectionAdded (BinaryView *data, Section *section)
 
virtual void OnSectionRemoved (BinaryView *data, Section *section)
 
virtual void OnSectionUpdated (BinaryView *data, Section *section)
 
virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)
 This notification is posted after the display name for a component is updated. More...
 
virtual void OnComponentAdded (BinaryView *data, Component *component)
 This notification is posted after a Component is added to the tree. More...
 
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)
 This notification is posted after a Component is removed from the tree. More...
 
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)
 This notification is posted whenever a component is moved from one component to another. More...
 
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is added to a Component. More...
 
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is removed from a Component. More...
 
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is added to a Component. More...
 
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is removed from a Component. More...
 
virtual void OnExternalLibraryAdded (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLibraryUpdated (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLibraryRemoved (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLocationAdded (BinaryView *data, ExternalLocation *location)
 
virtual void OnExternalLocationUpdated (BinaryView *data, ExternalLocation *location)
 
virtual void OnExternalLocationRemoved (BinaryView *data, ExternalLocation *location)
 
virtual void OnTypeArchiveAttached (BinaryView *data, const std::string &id, const std::string &path)
 This notification is posted whenever a Type Archive is attached to a Binary View. More...
 
virtual void OnTypeArchiveDetached (BinaryView *data, const std::string &id, const std::string &path)
 This notification is posted whenever a Type Archive is detached to a Binary View. More...
 
virtual void OnTypeArchiveConnected (BinaryView *data, TypeArchive *archive)
 This notification is posted whenever a previously disconnected Type Archive attached to the Binary View is connected. More...
 
virtual void OnTypeArchiveDisconnected (BinaryView *data, TypeArchive *archive)
 This notification is posted whenever a previously connected Type Archive attached to the Binary View is disconnected. More...
 

Protected Attributes

QWidget * m_owner
 
BinaryViewRef m_data
 
std::map< TagTypeRef, size_t > m_typeIndexes
 
std::vector< std::pair< TagTypeRef, std::vector< BinaryNinja::TagReference > > > m_refs
 
std::map< int, QSize > m_sectionSizeHints
 
std::map< std::string, uint64_t > m_count
 
DisassemblySettingsRef m_settings
 

Additional Inherited Members

- Public Types inherited from BinaryNinja::BinaryDataNotification
enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , ExternalLibraryAdded = 1ULL << 39 ,
  ExternalLibraryUpdated = 1ULL << 40 , ExternalLibraryRemoved = 1ULL << 41 , ExternalLocationAdded = 1ULL << 42 , ExternalLocationUpdated = 1ULL << 43 ,
  ExternalLocationRemoved = 1ULL << 44 , TypeArchiveAttached = 1ULL << 45 , TypeArchiveDetached = 1ULL << 46 , TypeArchiveConnected = 1ULL << 47 ,
  TypeArchiveDisconnected = 1ULL << 48 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved , FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated ,
  DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated , TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated ,
  SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated , StringUpdates = StringFound | StringRemoved , TypeLifetime = TypeDefined | TypeUndefined ,
  TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved , SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved ,
  SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentNameUpdated | ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved , TypeArchiveUpdates = TypeArchiveAttached | TypeArchiveDetached | TypeArchiveConnected | TypeArchiveDisconnected
}
 
using NotificationTypes = uint64_t
 

Constructor & Destructor Documentation

◆ TagListModel()

TagListModel::TagListModel ( QWidget *  parent,
BinaryViewRef  data 
)

◆ ~TagListModel()

virtual TagListModel::~TagListModel ( )
virtual

Member Function Documentation

◆ GetRef() [1/2]

BinaryNinja::TagReference & TagListModel::GetRef ( const QModelIndex &  index)

◆ GetRef() [2/2]

const BinaryNinja::TagReference & TagListModel::GetRef ( const QModelIndex &  index) const

◆ SetSectionSizeHints()

void TagListModel::SetSectionSizeHints ( const std::map< int, QSize > &  sizes)
inline

◆ GetTypeRef() [1/2]

TagTypeRef TagListModel::GetTypeRef ( const QModelIndex &  index)

◆ GetTypeRef() [2/2]

const TagTypeRef TagListModel::GetTypeRef ( const QModelIndex &  index) const

◆ index()

virtual QModelIndex TagListModel::index ( int  row,
int  col,
const QModelIndex &  parent 
) const
overridevirtual

◆ parent()

virtual QModelIndex TagListModel::parent ( const QModelIndex &  i) const
overridevirtual

◆ hasChildren()

virtual bool TagListModel::hasChildren ( const QModelIndex &  parent) const
overridevirtual

◆ rowCount()

virtual int TagListModel::rowCount ( const QModelIndex &  parent) const
overridevirtual

◆ columnCount()

virtual int TagListModel::columnCount ( const QModelIndex &  parent) const
overridevirtual

◆ headerData()

virtual QVariant TagListModel::headerData ( int  section,
Qt::Orientation  orientation,
int  role 
) const
overridevirtual

◆ data()

virtual QVariant TagListModel::data ( const QModelIndex &  i,
int  role 
) const
overridevirtual

◆ setData()

virtual bool TagListModel::setData ( const QModelIndex &  i,
const QVariant &  value,
int  role = Qt::EditRole 
)
overridevirtual

◆ flags()

virtual Qt::ItemFlags TagListModel::flags ( const QModelIndex &  i) const
overridevirtual

◆ sort()

virtual void TagListModel::sort ( int  column,
Qt::SortOrder  order 
)
overridevirtual

◆ OnTagAdded()

virtual void TagListModel::OnTagAdded ( BinaryNinja::BinaryView ,
const BinaryNinja::TagReference  
)
overridevirtual

◆ OnTagRemoved()

virtual void TagListModel::OnTagRemoved ( BinaryNinja::BinaryView ,
const BinaryNinja::TagReference  
)
overridevirtual

◆ setModelData()

bool TagListModel::setModelData ( const std::vector< std::pair< TagTypeRef, std::vector< BinaryNinja::TagReference > > > &  refs,
QItemSelectionModel *  selectionModel,
int  sortColumn,
Qt::SortOrder  sortOrder,
bool &  selectionUpdated 
)

Member Data Documentation

◆ m_owner

QWidget* TagListModel::m_owner
protected

◆ m_data

BinaryViewRef TagListModel::m_data
protected

◆ m_typeIndexes

std::map<TagTypeRef, size_t> TagListModel::m_typeIndexes
protected

◆ m_refs

std::vector<std::pair<TagTypeRef, std::vector<BinaryNinja::TagReference> > > TagListModel::m_refs
protected

◆ m_sectionSizeHints

std::map<int, QSize> TagListModel::m_sectionSizeHints
protected

◆ m_count

std::map<std::string, uint64_t> TagListModel::m_count
protected

◆ m_settings

DisassemblySettingsRef TagListModel::m_settings
protected

◆ TagItemDelegate

class TagItemDelegate

Public Member Functions

 TagItemDelegate (QWidget *parent)
 
void updateFonts ()
 
virtual QSize sizeHint (const QStyleOptionViewItem &option, const QModelIndex &idx) const override
 
virtual void paint (QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &idx) const override
 
virtual void setEditorData (QWidget *editor, const QModelIndex &index) const override
 

Protected Member Functions

void initFont ()
 

Protected Attributes

QFont m_font
 
QFont m_monospaceFont
 
QFont m_emojiFont
 
int m_baseline
 
int m_charWidth
 
int m_charHeight
 
int m_charOffset
 

Constructor & Destructor Documentation

◆ TagItemDelegate()

TagItemDelegate::TagItemDelegate ( QWidget *  parent)

Member Function Documentation

◆ initFont()

void TagItemDelegate::initFont ( )
protected

◆ updateFonts()

void TagItemDelegate::updateFonts ( )

◆ sizeHint()

virtual QSize TagItemDelegate::sizeHint ( const QStyleOptionViewItem &  option,
const QModelIndex &  idx 
) const
overridevirtual

◆ paint()

virtual void TagItemDelegate::paint ( QPainter *  painter,
const QStyleOptionViewItem &  option,
const QModelIndex &  idx 
) const
overridevirtual

◆ setEditorData()

virtual void TagItemDelegate::setEditorData ( QWidget *  editor,
const QModelIndex &  index 
) const
overridevirtual

Member Data Documentation

◆ m_font

QFont TagItemDelegate::m_font
protected

◆ m_monospaceFont

QFont TagItemDelegate::m_monospaceFont
protected

◆ m_emojiFont

QFont TagItemDelegate::m_emojiFont
protected

◆ m_baseline

int TagItemDelegate::m_baseline
protected

◆ m_charWidth

int TagItemDelegate::m_charWidth
protected

◆ m_charHeight

int TagItemDelegate::m_charHeight
protected

◆ m_charOffset

int TagItemDelegate::m_charOffset
protected

◆ TagList

class TagList

Public Types

typedef std::function< bool(const BinaryNinja::TagReference &)> FilterFn
 
- Public Types inherited from BinaryNinja::BinaryDataNotification
enum  NotificationType : uint64_t {
  NotificationBarrier = 1ULL << 0 , DataWritten = 1ULL << 1 , DataInserted = 1ULL << 2 , DataRemoved = 1ULL << 3 ,
  FunctionAdded = 1ULL << 4 , FunctionRemoved = 1ULL << 5 , FunctionUpdated = 1ULL << 6 , FunctionUpdateRequested = 1ULL << 7 ,
  DataVariableAdded = 1ULL << 8 , DataVariableRemoved = 1ULL << 9 , DataVariableUpdated = 1ULL << 10 , DataMetadataUpdated = 1ULL << 11 ,
  TagTypeUpdated = 1ULL << 12 , TagAdded = 1ULL << 13 , TagRemoved = 1ULL << 14 , TagUpdated = 1ULL << 15 ,
  SymbolAdded = 1ULL << 16 , SymbolRemoved = 1ULL << 17 , SymbolUpdated = 1ULL << 18 , StringFound = 1ULL << 19 ,
  StringRemoved = 1ULL << 20 , TypeDefined = 1ULL << 21 , TypeUndefined = 1ULL << 22 , TypeReferenceChanged = 1ULL << 23 ,
  TypeFieldReferenceChanged = 1ULL << 24 , SegmentAdded = 1ULL << 25 , SegmentRemoved = 1ULL << 26 , SegmentUpdated = 1ULL << 27 ,
  SectionAdded = 1ULL << 28 , SectionRemoved = 1ULL << 29 , SectionUpdated = 1ULL << 30 , ComponentNameUpdated = 1ULL << 31 ,
  ComponentAdded = 1ULL << 32 , ComponentRemoved = 1ULL << 33 , ComponentMoved = 1ULL << 34 , ComponentFunctionAdded = 1ULL << 35 ,
  ComponentFunctionRemoved = 1ULL << 36 , ComponentDataVariableAdded = 1ULL << 37 , ComponentDataVariableRemoved = 1ULL << 38 , ExternalLibraryAdded = 1ULL << 39 ,
  ExternalLibraryUpdated = 1ULL << 40 , ExternalLibraryRemoved = 1ULL << 41 , ExternalLocationAdded = 1ULL << 42 , ExternalLocationUpdated = 1ULL << 43 ,
  ExternalLocationRemoved = 1ULL << 44 , TypeArchiveAttached = 1ULL << 45 , TypeArchiveDetached = 1ULL << 46 , TypeArchiveConnected = 1ULL << 47 ,
  TypeArchiveDisconnected = 1ULL << 48 , BinaryDataUpdates = DataWritten | DataInserted | DataRemoved , FunctionLifetime = FunctionAdded | FunctionRemoved , FunctionUpdates = FunctionLifetime | FunctionUpdated ,
  DataVariableLifetime = DataVariableAdded | DataVariableRemoved , DataVariableUpdates = DataVariableLifetime | DataVariableUpdated , TagLifetime = TagAdded | TagRemoved , TagUpdates = TagLifetime | TagUpdated ,
  SymbolLifetime = SymbolAdded | SymbolRemoved , SymbolUpdates = SymbolLifetime | SymbolUpdated , StringUpdates = StringFound | StringRemoved , TypeLifetime = TypeDefined | TypeUndefined ,
  TypeUpdates = TypeLifetime | TypeReferenceChanged | TypeFieldReferenceChanged , SegmentLifetime = SegmentAdded | SegmentRemoved , SegmentUpdates = SegmentLifetime | SegmentUpdated , SectionLifetime = SectionAdded | SectionRemoved ,
  SectionUpdates = SectionLifetime | SectionUpdated , ComponentUpdates = ComponentNameUpdated | ComponentAdded | ComponentRemoved | ComponentMoved | ComponentFunctionAdded | ComponentFunctionRemoved | ComponentDataVariableAdded | ComponentDataVariableRemoved , TypeArchiveUpdates = TypeArchiveAttached | TypeArchiveDetached | TypeArchiveConnected | TypeArchiveDisconnected
}
 
using NotificationTypes = uint64_t
 

Public Slots

void showContextMenu ()
 

Public Member Functions

 TagList (QWidget *parent, ViewFrame *view, BinaryViewRef data, TagListModel *model=nullptr, Menu *menu=nullptr)
 
virtual ~TagList ()
 
virtual void setModel (QAbstractItemModel *model) override
 
void notifyFontChanged ()
 
void removeSelection ()
 
void copySelection ()
 
void clearFilter ()
 
void setFilter (FilterFn filter)
 
void setFilterView (FilteredView *filterView)
 
void updateTags ()
 
bool hasSelection ()
 
void navigateToNext ()
 
void navigateToPrev ()
 
void scrollToFirstItem () override
 
void scrollToCurrentItem () override
 
void selectFirstItem () override
 
void activateFirstItem () override
 
- Public Member Functions inherited from BinaryNinja::BinaryDataNotification
 BinaryDataNotification ()
 
 BinaryDataNotification (NotificationTypes notifications)
 
virtual ~BinaryDataNotification ()
 
BNBinaryDataNotificationGetCallbacks ()
 
virtual uint64_t OnNotificationBarrier (BinaryView *view)
 
virtual void OnBinaryDataWritten (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataInserted (BinaryView *view, uint64_t offset, size_t len)
 
virtual void OnBinaryDataRemoved (BinaryView *view, uint64_t offset, uint64_t len)
 
virtual void OnAnalysisFunctionAdded (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionRemoved (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdated (BinaryView *view, Function *func)
 
virtual void OnAnalysisFunctionUpdateRequested (BinaryView *view, Function *func)
 
virtual void OnDataVariableAdded (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableRemoved (BinaryView *view, const DataVariable &var)
 
virtual void OnDataVariableUpdated (BinaryView *view, const DataVariable &var)
 
virtual void OnDataMetadataUpdated (BinaryView *view, uint64_t offset)
 
virtual void OnTagTypeUpdated (BinaryView *view, Ref< TagType > tagTypeRef)
 
virtual void OnTagAdded (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagRemoved (BinaryView *view, const TagReference &tagRef)
 
virtual void OnTagUpdated (BinaryView *view, const TagReference &tagRef)
 
virtual void OnSymbolAdded (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolRemoved (BinaryView *view, Symbol *sym)
 
virtual void OnSymbolUpdated (BinaryView *view, Symbol *sym)
 
virtual void OnStringFound (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnStringRemoved (BinaryView *data, BNStringType type, uint64_t offset, size_t len)
 
virtual void OnTypeDefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeUndefined (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeReferenceChanged (BinaryView *data, const QualifiedName &name, Type *type)
 
virtual void OnTypeFieldReferenceChanged (BinaryView *data, const QualifiedName &name, uint64_t offset)
 
virtual void OnSegmentAdded (BinaryView *data, Segment *segment)
 
virtual void OnSegmentRemoved (BinaryView *data, Segment *segment)
 
virtual void OnSegmentUpdated (BinaryView *data, Segment *segment)
 
virtual void OnSectionAdded (BinaryView *data, Section *section)
 
virtual void OnSectionRemoved (BinaryView *data, Section *section)
 
virtual void OnSectionUpdated (BinaryView *data, Section *section)
 
virtual void OnComponentNameUpdated (BinaryView *data, std::string &previousName, Component *component)
 This notification is posted after the display name for a component is updated. More...
 
virtual void OnComponentAdded (BinaryView *data, Component *component)
 This notification is posted after a Component is added to the tree. More...
 
virtual void OnComponentRemoved (BinaryView *data, Component *formerParent, Component *component)
 This notification is posted after a Component is removed from the tree. More...
 
virtual void OnComponentMoved (BinaryView *data, Component *formerParent, Component *newParent, Component *component)
 This notification is posted whenever a component is moved from one component to another. More...
 
virtual void OnComponentFunctionAdded (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is added to a Component. More...
 
virtual void OnComponentFunctionRemoved (BinaryView *data, Component *component, Function *function)
 This notification is posted whenever a Function is removed from a Component. More...
 
virtual void OnComponentDataVariableAdded (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is added to a Component. More...
 
virtual void OnComponentDataVariableRemoved (BinaryView *data, Component *component, const DataVariable &var)
 This notification is posted whenever a DataVariable is removed from a Component. More...
 
virtual void OnExternalLibraryAdded (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLibraryUpdated (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLibraryRemoved (BinaryView *data, ExternalLibrary *library)
 
virtual void OnExternalLocationAdded (BinaryView *data, ExternalLocation *location)
 
virtual void OnExternalLocationUpdated (BinaryView *data, ExternalLocation *location)
 
virtual void OnExternalLocationRemoved (BinaryView *data, ExternalLocation *location)
 
virtual void OnTypeArchiveAttached (BinaryView *data, const std::string &id, const std::string &path)
 This notification is posted whenever a Type Archive is attached to a Binary View. More...
 
virtual void OnTypeArchiveDetached (BinaryView *data, const std::string &id, const std::string &path)
 This notification is posted whenever a Type Archive is detached to a Binary View. More...
 
virtual void OnTypeArchiveConnected (BinaryView *data, TypeArchive *archive)
 This notification is posted whenever a previously disconnected Type Archive attached to the Binary View is connected. More...
 
virtual void OnTypeArchiveDisconnected (BinaryView *data, TypeArchive *archive)
 This notification is posted whenever a previously connected Type Archive attached to the Binary View is disconnected. More...
 
- Public Member Functions inherited from FilterTarget
virtual ~FilterTarget ()
 
virtual void setFilter (const std::string &filter)=0
 
virtual void scrollToFirstItem ()=0
 
virtual void scrollToCurrentItem ()=0
 
virtual void selectFirstItem ()=0
 
virtual void activateFirstItem ()=0
 
virtual void closeFilter ()
 

Static Public Member Functions

static void registerActions ()
 

Protected Member Functions

virtual void contextMenuEvent (QContextMenuEvent *event) override
 
virtual void keyPressEvent (QKeyEvent *e) override
 
virtual void mouseMoveEvent (QMouseEvent *e) override
 
virtual void mousePressEvent (QMouseEvent *e) override
 
virtual void wheelEvent (QWheelEvent *e) override
 
virtual void resizeEvent (QResizeEvent *event) override
 
void goToReference (const QModelIndex &idx)
 
void setFilter (const std::string &filter) override
 
virtual void OnAnalysisFunctionUpdated (BinaryNinja::BinaryView *view, BinaryNinja::Function *func) override
 
virtual void OnTagAdded (BinaryNinja::BinaryView *, const BinaryNinja::TagReference &) override
 
virtual void OnTagUpdated (BinaryNinja::BinaryView *, const BinaryNinja::TagReference &) override
 
virtual void OnTagRemoved (BinaryNinja::BinaryView *, const BinaryNinja::TagReference &) override
 
virtual void OnTagTypeUpdated (BinaryNinja::BinaryView *, TagTypeRef) override
 
virtual void showEvent (QShowEvent *event) override
 
virtual void hideEvent (QHideEvent *event) override
 

Member Typedef Documentation

◆ FilterFn

typedef std::function<bool(const BinaryNinja::TagReference&)> TagList::FilterFn

Constructor & Destructor Documentation

◆ TagList()

TagList::TagList ( QWidget *  parent,
ViewFrame view,
BinaryViewRef  data,
TagListModel model = nullptr,
Menu menu = nullptr 
)

◆ ~TagList()

virtual TagList::~TagList ( )
virtual

Member Function Documentation

◆ contextMenuEvent()

virtual void TagList::contextMenuEvent ( QContextMenuEvent *  event)
overrideprotectedvirtual

◆ keyPressEvent()

virtual void TagList::keyPressEvent ( QKeyEvent *  e)
overrideprotectedvirtual

◆ mouseMoveEvent()

virtual void TagList::mouseMoveEvent ( QMouseEvent *  e)
overrideprotectedvirtual

◆ mousePressEvent()

virtual void TagList::mousePressEvent ( QMouseEvent *  e)
overrideprotectedvirtual

◆ wheelEvent()

virtual void TagList::wheelEvent ( QWheelEvent *  e)
overrideprotectedvirtual

◆ resizeEvent()

virtual void TagList::resizeEvent ( QResizeEvent *  event)
overrideprotectedvirtual

◆ goToReference()

void TagList::goToReference ( const QModelIndex &  idx)
protected

◆ setFilter() [1/2]

void TagList::setFilter ( const std::string &  filter)
overrideprotectedvirtual

Implements FilterTarget.

◆ OnAnalysisFunctionUpdated()

virtual void TagList::OnAnalysisFunctionUpdated ( BinaryNinja::BinaryView view,
BinaryNinja::Function func 
)
overrideprotectedvirtual

◆ OnTagAdded()

virtual void TagList::OnTagAdded ( BinaryNinja::BinaryView ,
const BinaryNinja::TagReference  
)
overrideprotectedvirtual

◆ OnTagUpdated()

virtual void TagList::OnTagUpdated ( BinaryNinja::BinaryView ,
const BinaryNinja::TagReference  
)
overrideprotectedvirtual

◆ OnTagRemoved()

virtual void TagList::OnTagRemoved ( BinaryNinja::BinaryView ,
const BinaryNinja::TagReference  
)
overrideprotectedvirtual

◆ OnTagTypeUpdated()

virtual void TagList::OnTagTypeUpdated ( BinaryNinja::BinaryView ,
TagTypeRef   
)
overrideprotectedvirtual

◆ showEvent()

virtual void TagList::showEvent ( QShowEvent *  event)
overrideprotectedvirtual

◆ hideEvent()

virtual void TagList::hideEvent ( QHideEvent *  event)
overrideprotectedvirtual

◆ showContextMenu

void TagList::showContextMenu ( )
slot

◆ registerActions()

static void TagList::registerActions ( )
static

◆ setModel()

virtual void TagList::setModel ( QAbstractItemModel *  model)
overridevirtual

◆ notifyFontChanged()

void TagList::notifyFontChanged ( )

◆ removeSelection()

void TagList::removeSelection ( )

◆ copySelection()

void TagList::copySelection ( )

◆ clearFilter()

void TagList::clearFilter ( )

◆ setFilter() [2/2]

void TagList::setFilter ( FilterFn  filter)

◆ setFilterView()

void TagList::setFilterView ( FilteredView filterView)
inline

◆ updateTags()

void TagList::updateTags ( )

◆ hasSelection()

bool TagList::hasSelection ( )

◆ navigateToNext()

void TagList::navigateToNext ( )

◆ navigateToPrev()

void TagList::navigateToPrev ( )

◆ scrollToFirstItem()

void TagList::scrollToFirstItem ( )
overridevirtual

Implements FilterTarget.

◆ scrollToCurrentItem()

void TagList::scrollToCurrentItem ( )
overridevirtual

Implements FilterTarget.

◆ selectFirstItem()

void TagList::selectFirstItem ( )
overridevirtual

Implements FilterTarget.

◆ activateFirstItem()

void TagList::activateFirstItem ( )
overridevirtual

Implements FilterTarget.

◆ TagListWidget

class TagListWidget

Public Member Functions

TagListGetList ()
 
void editTag (TagRef tag)
 
TagListgetNotificationList ()
 
FilteredViewgetNotificationFilter ()
 
 TagListWidget (ViewFrame *view, BinaryViewRef data)
 
virtual ~TagListWidget ()
 
virtual void focus () override
 
virtual QWidget * headerWidget () override
 
- Public Member Functions inherited from SidebarWidget
 SidebarWidget (const QString &title)
 
 ~SidebarWidget ()
 
const QString & title () const
 
void enableRefreshTimer (int interval)
 
void setRefreshQuiesce (bool enable)
 
virtual void notifyRefresh ()
 
virtual void notifyFontChanged ()
 
virtual void notifyOffsetChanged (uint64_t)
 
virtual void notifyThemeChanged ()
 
virtual void notifyViewChanged (ViewFrame *)
 
virtual void notifyViewLocationChanged (View *, const ViewLocation &)
 
virtual void focus ()
 
virtual void closing ()
 
virtual void setPrimaryOrientation (Qt::Orientation)
 
virtual QWidget * headerWidget ()
 

Protected Member Functions

virtual void notifyFontChanged () override
 

Additional Inherited Members

- Protected Attributes inherited from SidebarWidget
QString m_title
 
UIActionHandler m_actionHandler
 
ContextMenuManagerm_contextMenuManager = nullptr
 
Menum_menu = nullptr
 
QTimer * m_updateTimer = nullptr
 

Constructor & Destructor Documentation

◆ TagListWidget()

TagListWidget::TagListWidget ( ViewFrame view,
BinaryViewRef  data 
)

◆ ~TagListWidget()

virtual TagListWidget::~TagListWidget ( )
virtual

Member Function Documentation

◆ notifyFontChanged()

virtual void TagListWidget::notifyFontChanged ( )
overrideprotectedvirtual

Reimplemented from SidebarWidget.

◆ GetList()

TagList * TagListWidget::GetList ( )

◆ editTag()

void TagListWidget::editTag ( TagRef  tag)

◆ getNotificationList()

TagList * TagListWidget::getNotificationList ( )
inline

◆ getNotificationFilter()

FilteredView * TagListWidget::getNotificationFilter ( )
inline

◆ focus()

virtual void TagListWidget::focus ( )
overridevirtual

Reimplemented from SidebarWidget.

◆ headerWidget()

virtual QWidget * TagListWidget::headerWidget ( )
inlineoverridevirtual

Reimplemented from SidebarWidget.

◆ TagListDialog

class TagListDialog

Public Types

typedef std::function< void(const TagRef &)> AddFn
 

Public Member Functions

 TagListDialog (QWidget *parent, ViewFrame *frame, BinaryViewRef data, AddFn addFn)
 
void setFilter (TagList::FilterFn filter)
 

Member Typedef Documentation

◆ AddFn

typedef std::function<void(const TagRef&)> TagListDialog::AddFn

Constructor & Destructor Documentation

◆ TagListDialog()

TagListDialog::TagListDialog ( QWidget *  parent,
ViewFrame frame,
BinaryViewRef  data,
AddFn  addFn 
)

Member Function Documentation

◆ setFilter()

void TagListDialog::setFilter ( TagList::FilterFn  filter)

◆ TagListSidebarWidgetType

class TagListSidebarWidgetType

Public Member Functions

 TagListSidebarWidgetType ()
 
virtual SidebarWidgetcreateWidget (ViewFrame *frame, BinaryViewRef data) override
 
SidebarWidgetLocation defaultLocation () const override
 
SidebarContextSensitivity contextSensitivity () const override
 
- Public Member Functions inherited from SidebarWidgetType
 SidebarWidgetType (const QImage &icon, const QString &name)
 
virtual ~SidebarWidgetType ()
 
const SidebarIconicon () const
 
const QString & name () const
 
virtual bool isInReferenceArea () const
 
virtual bool viewSensitive () const
 
virtual SidebarWidgetLocation defaultLocation () const
 
virtual SidebarContextSensitivity contextSensitivity () const
 
virtual bool alwaysShowTabs () const
 
virtual bool hideIfNoContent () const
 
virtual SidebarWidgetcreateWidget (ViewFrame *, BinaryViewRef)
 
virtual SidebarWidgetcreateInvalidContextWidget ()
 
virtual QWidget * headerWidget (SplitPaneWidget *, ViewFrame *, BinaryViewRef)
 
virtual bool focusHeaderWidget () const
 
virtual QString noWidgetMessage () const
 
virtual DockableTabStyletabStyle () const
 
virtual bool canUseAsPane (SplitPaneWidget *, BinaryViewRef) const
 
virtual PanecreatePane (SplitPaneWidget *, BinaryViewRef)
 
void updateTheme ()
 

Constructor & Destructor Documentation

◆ TagListSidebarWidgetType()

TagListSidebarWidgetType::TagListSidebarWidgetType ( )

Member Function Documentation

◆ createWidget()

virtual SidebarWidget * TagListSidebarWidgetType::createWidget ( ViewFrame frame,
BinaryViewRef  data 
)
overridevirtual

Reimplemented from SidebarWidgetType.

◆ defaultLocation()

SidebarWidgetLocation TagListSidebarWidgetType::defaultLocation ( ) const
inlineoverridevirtual

Reimplemented from SidebarWidgetType.

◆ contextSensitivity()

SidebarContextSensitivity TagListSidebarWidgetType::contextSensitivity ( ) const
inlineoverridevirtual

Reimplemented from SidebarWidgetType.