summaryrefslogtreecommitdiff
path: root/ui/xreflist.h
diff options
context:
space:
mode:
authorKyleMiles <krm504@nyu.edu>2022-01-27 22:43:28 -0500
committerKyleMiles <krm504@nyu.edu>2022-01-28 00:24:06 -0500
commit6812c973c9fa9b4ad642ab81856c05f87bd6fcc4 (patch)
treedace4156d03148bcaf02df138ab4e0d93e61bc6f /ui/xreflist.h
parent519c9db22367f2659d1a54599fab47e6313be06e (diff)
Format All Files
Diffstat (limited to 'ui/xreflist.h')
-rw-r--r--ui/xreflist.h135
1 files changed, 79 insertions, 56 deletions
diff --git a/ui/xreflist.h b/ui/xreflist.h
index 76942954..f1426ee9 100644
--- a/ui/xreflist.h
+++ b/ui/xreflist.h
@@ -28,11 +28,11 @@
class XrefHeader;
class XrefItem
{
-public:
+ public:
enum XrefDirection
{
- Forward, // current address is addressing another address
- Backward // current address is being referenced by another address
+ Forward, // current address is addressing another address
+ Backward // current address is being referenced by another address
};
enum XrefType
@@ -43,7 +43,7 @@ public:
TypeXrefType
};
-protected:
+ protected:
FunctionRef m_func;
ArchitectureRef m_arch;
uint64_t m_addr;
@@ -58,14 +58,15 @@ protected:
mutable int m_size;
-public:
+ public:
explicit XrefItem();
explicit XrefItem(XrefHeader* parent, XrefType type, FunctionRef func);
// The four constructors are used for code/data/type/variable referecens, respectively
explicit XrefItem(BinaryNinja::ReferenceSource ref, XrefType type, XrefDirection direction);
explicit XrefItem(uint64_t addr, XrefType type, XrefDirection direction);
explicit XrefItem(BinaryNinja::TypeReferenceSource ref, XrefType type, XrefDirection direction);
- explicit XrefItem(BinaryNinja::Variable var, BinaryNinja::ILReferenceSource ref, XrefType type, XrefDirection direction);
+ explicit XrefItem(
+ BinaryNinja::Variable var, BinaryNinja::ILReferenceSource ref, XrefType type, XrefDirection direction);
XrefItem(const XrefItem& ref);
virtual ~XrefItem();
@@ -92,11 +93,12 @@ public:
};
-class XrefHeader: public XrefItem
+class XrefHeader : public XrefItem
{
-protected:
+ protected:
QString m_name;
-public:
+
+ public:
XrefHeader();
XrefHeader(const QString& name, XrefItem::XrefType type, XrefHeader* parent, FunctionRef func);
virtual ~XrefHeader() {}
@@ -114,7 +116,8 @@ public:
class XrefFunctionHeader : public XrefHeader
{
std::deque<XrefItem*> m_refs;
-public:
+
+ public:
XrefFunctionHeader();
XrefFunctionHeader(FunctionRef func, XrefHeader* parent, XrefItem* child);
XrefFunctionHeader(const XrefFunctionHeader& header);
@@ -129,7 +132,8 @@ public:
class XrefTypeHeader : public XrefHeader
{
std::deque<XrefItem*> m_refs;
-public:
+
+ public:
XrefTypeHeader();
XrefTypeHeader(BinaryNinja::QualifiedName name, XrefHeader* parent, XrefItem* child);
XrefTypeHeader(const XrefTypeHeader& header);
@@ -143,7 +147,8 @@ public:
class XrefVariableHeader : public XrefHeader
{
std::deque<XrefItem*> m_refs;
-public:
+
+ public:
XrefVariableHeader();
XrefVariableHeader(XrefHeader* parent, XrefItem* child);
XrefVariableHeader(const XrefVariableHeader& header);
@@ -154,11 +159,12 @@ public:
};
-class XrefCodeReferences: public XrefHeader
+class XrefCodeReferences : public XrefHeader
{
std::map<FunctionRef, XrefFunctionHeader*> m_refs;
std::deque<XrefFunctionHeader*> m_refList;
-public:
+
+ public:
XrefCodeReferences(XrefHeader* parent);
virtual ~XrefCodeReferences();
virtual int childCount() const override { return (int)m_refs.size(); }
@@ -169,10 +175,11 @@ public:
};
-class XrefDataReferences: public XrefHeader
+class XrefDataReferences : public XrefHeader
{
std::deque<XrefItem*> m_refs;
-public:
+
+ public:
XrefDataReferences(XrefHeader* parent);
virtual ~XrefDataReferences();
virtual int childCount() const override { return (int)m_refs.size(); };
@@ -182,11 +189,12 @@ public:
};
-class XrefTypeReferences: public XrefHeader
+class XrefTypeReferences : public XrefHeader
{
std::map<BinaryNinja::QualifiedName, XrefTypeHeader*> m_refs;
std::deque<XrefTypeHeader*> m_refList;
-public:
+
+ public:
XrefTypeReferences(XrefHeader* parent);
virtual ~XrefTypeReferences();
virtual int childCount() const override { return (int)m_refs.size(); };
@@ -197,11 +205,12 @@ public:
};
-class XrefVariableReferences: public XrefHeader
+class XrefVariableReferences : public XrefHeader
{
std::map<BinaryNinja::Variable, XrefVariableHeader*> m_refs;
std::deque<XrefVariableHeader*> m_refList;
-public:
+
+ public:
XrefVariableReferences(XrefHeader* parent);
virtual ~XrefVariableReferences();
virtual int childCount() const override { return (int)m_refs.size(); };
@@ -212,10 +221,11 @@ public:
};
-class XrefRoot: public XrefHeader
+class XrefRoot : public XrefHeader
{
std::map<XrefItem::XrefType, XrefHeader*> m_refs;
-public:
+
+ public:
XrefRoot();
XrefRoot(XrefRoot&& root);
~XrefRoot();
@@ -238,7 +248,7 @@ class BINARYNINJAUIAPI CrossReferenceTreeModel : public QAbstractItemModel
size_t m_maxUIItems;
std::optional<BNFunctionGraphType> m_graphType;
-public:
+ public:
CrossReferenceTreeModel(QWidget* parent, BinaryViewRef data, ViewFrame* view);
virtual ~CrossReferenceTreeModel();
@@ -273,7 +283,7 @@ class BINARYNINJAUIAPI CrossReferenceTableModel : public QAbstractTableModel
size_t m_maxUIItems;
std::optional<BNFunctionGraphType> m_graphType;
-public:
+ public:
enum ColumnHeaders
{
Direction = 0,
@@ -288,9 +298,21 @@ public:
virtual QModelIndex index(int row, int col, const QModelIndex& parent = QModelIndex()) const override;
virtual QVariant data(const QModelIndex& i, int role) const override;
Qt::ItemFlags flags(const QModelIndex& index) const override;
- virtual int rowCount(const QModelIndex& parent = QModelIndex()) const override { (void)parent; return (int)m_refs.size(); };
- virtual QModelIndex parent(const QModelIndex& i) const override { (void)i; return QModelIndex(); }
- virtual int columnCount(const QModelIndex& parent = QModelIndex()) const override { (void) parent; return 4;};
+ virtual int rowCount(const QModelIndex& parent = QModelIndex()) const override
+ {
+ (void)parent;
+ return (int)m_refs.size();
+ };
+ virtual QModelIndex parent(const QModelIndex& i) const override
+ {
+ (void)i;
+ return QModelIndex();
+ }
+ virtual int columnCount(const QModelIndex& parent = QModelIndex()) const override
+ {
+ (void)parent;
+ return 4;
+ };
virtual QVariant headerData(int column, Qt::Orientation orientation, int role) const override;
virtual bool hasChildren(const QModelIndex&) const override { return false; }
bool setModelData(std::vector<XrefItem>& refs, QItemSelectionModel* selectionModel, bool& selectionUpdated);
@@ -302,7 +324,7 @@ public:
};
-class BINARYNINJAUIAPI CrossReferenceItemDelegate: public QStyledItemDelegate
+class BINARYNINJAUIAPI CrossReferenceItemDelegate : public QStyledItemDelegate
{
Q_OBJECT
@@ -312,7 +334,7 @@ class BINARYNINJAUIAPI CrossReferenceItemDelegate: public QStyledItemDelegate
bool m_table;
size_t m_maxUIItems;
-public:
+ public:
CrossReferenceItemDelegate(QWidget* parent, bool table);
void updateFonts();
@@ -338,20 +360,20 @@ class BINARYNINJAUIAPI CrossReferenceFilterProxyModel : public QSortFilterProxyM
bool m_showOutgoing = true;
bool m_table;
-public:
+ public:
CrossReferenceFilterProxyModel(QObject* parent, bool table);
QModelIndex nextValidIndex(const QModelIndex& current) const;
QModelIndex getFirstLeaf(const QModelIndex& index) const;
QModelIndex prevValidIndex(const QModelIndex& current) const;
QModelIndex getLastLeaf(const QModelIndex& index) const;
-protected:
+ protected:
virtual bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const override;
virtual bool lessThan(const QModelIndex& left, const QModelIndex& right) const override;
virtual QVariant data(const QModelIndex& index, int role) const override;
virtual bool hasChildren(const QModelIndex& parent) const override;
-public Q_SLOTS:
+ public Q_SLOTS:
void directionChanged(int index, bool checked);
void typeChanged(int index, bool checked);
void resetFilter();
@@ -360,12 +382,13 @@ public Q_SLOTS:
class CrossReferenceWidget;
class BINARYNINJAUIAPI CrossReferenceContainer
{
-protected:
+ protected:
ViewFrame* m_view;
CrossReferenceWidget* m_parent;
BinaryViewRef m_data;
UIActionHandler m_actionHandler;
-public:
+
+ public:
CrossReferenceContainer(CrossReferenceWidget* parent, ViewFrame* view, BinaryViewRef data);
virtual ~CrossReferenceContainer() {}
virtual QModelIndex translateIndex(const QModelIndex& idx) const = 0;
@@ -382,7 +405,7 @@ public:
};
-class BINARYNINJAUIAPI CrossReferenceTree: public QTreeView, public CrossReferenceContainer
+class BINARYNINJAUIAPI CrossReferenceTree : public QTreeView, public CrossReferenceContainer
{
Q_OBJECT
@@ -390,11 +413,11 @@ class BINARYNINJAUIAPI CrossReferenceTree: public QTreeView, public CrossReferen
CrossReferenceFilterProxyModel* m_model;
CrossReferenceItemDelegate* m_itemDelegate;
-protected:
- void drawBranches(QPainter *painter, const QRect &rect, const QModelIndex &index) const override;
+ protected:
+ void drawBranches(QPainter* painter, const QRect& rect, const QModelIndex& index) const override;
virtual bool getReference(const QModelIndex& idx, XrefItem** refPtr) const override;
-public:
+ public:
CrossReferenceTree(CrossReferenceWidget* parent, ViewFrame* view, BinaryViewRef data);
virtual ~CrossReferenceTree();
@@ -415,12 +438,12 @@ public:
virtual void updateMaxUIItems(size_t count) override;
void setGraphType(BNFunctionGraphType type) { m_tree->setGraphType(type); }
-Q_SIGNALS:
+ Q_SIGNALS:
void newSelection();
};
-class BINARYNINJAUIAPI CrossReferenceTable: public QTableView, public CrossReferenceContainer
+class BINARYNINJAUIAPI CrossReferenceTable : public QTableView, public CrossReferenceContainer
{
Q_OBJECT
@@ -428,7 +451,7 @@ class BINARYNINJAUIAPI CrossReferenceTable: public QTableView, public CrossRefer
CrossReferenceItemDelegate* m_itemDelegate;
CrossReferenceFilterProxyModel* m_model;
-public:
+ public:
CrossReferenceTable(CrossReferenceWidget* parent, ViewFrame* view, BinaryViewRef data);
virtual ~CrossReferenceTable();
@@ -450,15 +473,15 @@ public:
virtual void updateMaxUIItems(size_t count) override;
void setGraphType(BNFunctionGraphType type) { m_table->setGraphType(type); }
-public Q_SLOTS:
+ public Q_SLOTS:
void updateTextFilter(const QString& filterText);
-Q_SIGNALS:
+ Q_SIGNALS:
void newSelection();
};
class ExpandableGroup;
class QCheckboxCombo;
-class BINARYNINJAUIAPI CrossReferenceWidget: public SidebarWidget, public UIContextNotification
+class BINARYNINJAUIAPI CrossReferenceWidget : public SidebarWidget, public UIContextNotification
{
Q_OBJECT
@@ -494,7 +517,7 @@ class BINARYNINJAUIAPI CrossReferenceWidget: public SidebarWidget, public UICont
virtual void contextMenuEvent(QContextMenuEvent* event) override;
virtual void wheelEvent(QWheelEvent* e) override;
-public:
+ public:
CrossReferenceWidget(ViewFrame* view, BinaryViewRef data, bool pinned);
virtual ~CrossReferenceWidget();
virtual void notifyFontChanged() override;
@@ -522,16 +545,16 @@ public:
virtual void focus() override;
- virtual void OnNewSelectionForXref(UIContext* context, ViewFrame* frame, View* view,
- const SelectionInfoForXref& selection) override;
+ virtual void OnNewSelectionForXref(
+ UIContext* context, ViewFrame* frame, View* view, const SelectionInfoForXref& selection) override;
virtual QWidget* headerWidget() override { return m_header; }
-private Q_SLOTS:
+ private Q_SLOTS:
void hoverTimerEvent();
void newPinnedPane();
-public Q_SLOTS:
+ public Q_SLOTS:
void referenceActivated(const QModelIndex& idx);
void pinnedStateChanged(bool state);
void selectionChanged();
@@ -540,9 +563,9 @@ public Q_SLOTS:
};
-class BINARYNINJAUIAPI CrossReferenceSidebarWidgetType: public SidebarWidgetType
+class BINARYNINJAUIAPI CrossReferenceSidebarWidgetType : public SidebarWidgetType
{
-public:
+ public:
CrossReferenceSidebarWidgetType();
virtual bool isInReferenceArea() const override { return true; }
virtual SidebarWidget* createWidget(ViewFrame* frame, BinaryViewRef data) override;
@@ -559,18 +582,18 @@ class BINARYNINJAUIAPI QCheckboxCombo : public QComboBox
{
Q_OBJECT
-public:
- explicit QCheckboxCombo(QWidget *parent = nullptr);
+ public:
+ explicit QCheckboxCombo(QWidget* parent = nullptr);
bool eventFilter(QObject* watched, QEvent* event);
void hidePopup();
void showPopup();
- void addItem(const QString &text, bool checked = true);
+ void addItem(const QString& text, bool checked = true);
-Q_SIGNALS:
+ Q_SIGNALS:
void selectionChanged(const QString& text);
void itemToggled(int index, bool checked);
-private:
+ private:
bool m_popupVisible = false;
bool m_editable = false;
QString m_selectionString;