diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2025-07-15 16:43:04 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2025-07-15 16:43:04 -0400 |
| commit | ecf8b3f9d730bc08bf40c7ef2e5659769a77ee1e (patch) | |
| tree | d1dd5dadf9d2079e5b72be5a34357c5b31a700ac /ui | |
| parent | c41b80eae54efed5cef8f9ebb32f9a7177e9fe72 (diff) | |
If type references exceed the xref item limit, other references may be less than the item limit but still not a complete list. Add the + indicator on the other categories if this condition is detected.
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/xreflist.h | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/ui/xreflist.h b/ui/xreflist.h index 1785bc0a..ed29843b 100644 --- a/ui/xreflist.h +++ b/ui/xreflist.h @@ -350,7 +350,7 @@ class BINARYNINJAUIAPI CrossReferenceTreeModel : public QAbstractItemModel std::optional<BinaryNinja::FunctionViewType> m_graphType; SelectionInfoForXref m_curRef; - public: +public: CrossReferenceTreeModel(QWidget* parent, BinaryViewRef data, ViewFrame* view); virtual ~CrossReferenceTreeModel(); @@ -460,8 +460,9 @@ class BINARYNINJAUIAPI CrossReferenceItemDelegate : public QStyledItemDelegate QImage m_xrefTo, m_xrefFrom; bool m_table; size_t m_maxUIItems; + bool m_dependentRefsExceeded = false; - public: +public: CrossReferenceItemDelegate(QWidget* parent, bool table); void updateFonts(); @@ -472,6 +473,7 @@ class BINARYNINJAUIAPI CrossReferenceItemDelegate : public QStyledItemDelegate virtual QImage DrawArrow(bool direction) const; void updateMaxUIItems(size_t count); size_t getMaxUIItems() const { return m_maxUIItems; } + void setDependentRefsExceeded(bool value) { m_dependentRefsExceeded = value; } }; /*! @@ -532,7 +534,8 @@ class BINARYNINJAUIAPI CrossReferenceContainer virtual QModelIndex prevIndex() = 0; virtual QModelIndexList selectedRows() const = 0; virtual bool hasSelection() const = 0; - virtual void setNewSelection(std::vector<XrefItem>& refs, bool newRefTarget, const SelectionInfoForXref& ref) = 0; + virtual void setNewSelection(std::vector<XrefItem>& refs, bool newRefTarget, const SelectionInfoForXref& ref, + bool dependentRefsExceeded) = 0; virtual void updateFonts() = 0; virtual int leafCount() const = 0; virtual int filteredCount() const = 0; @@ -560,7 +563,8 @@ public: CrossReferenceTree(CrossReferenceWidget* parent, ViewFrame* view, BinaryViewRef data); virtual ~CrossReferenceTree(); - void setNewSelection(std::vector<XrefItem>& refs, bool newRefTarget, const SelectionInfoForXref& ref) override; + void setNewSelection(std::vector<XrefItem>& refs, bool newRefTarget, const SelectionInfoForXref& ref, + bool dependentRefsExceeded) override; virtual QModelIndex nextIndex() override; virtual QModelIndex prevIndex() override; virtual bool hasSelection() const override { return selectionModel()->selectedRows().size() != 0; } @@ -606,7 +610,8 @@ class BINARYNINJAUIAPI CrossReferenceTable : public QTableView, public CrossRefe virtual ~CrossReferenceTable(); void updateFontAndHeaderSize(); - void setNewSelection(std::vector<XrefItem>& refs, bool newRefTarget, const SelectionInfoForXref& ref) override; + void setNewSelection(std::vector<XrefItem>& refs, bool newRefTarget, const SelectionInfoForXref& ref, + bool dependentRefsExceeded) override; virtual QModelIndex nextIndex() override; virtual QModelIndex prevIndex() override; virtual bool hasSelection() const override { return selectionModel()->selectedRows().size() != 0; } |
