diff options
| author | Xusheng <xusheng@vector35.com> | 2021-03-29 13:33:21 +0800 |
|---|---|---|
| committer | Xusheng <xusheng@vector35.com> | 2021-03-31 16:17:30 +0800 |
| commit | 0f1fc5758a161e3117210a03df0695ab97d6bad1 (patch) | |
| tree | 66b949c4534f15c43683f4398b5f82971a7e16ee | |
| parent | 1189b309f718dc89c6ffcf6a09fd40b5af79d3d0 (diff) | |
cached the number of max UI items
| -rw-r--r-- | ui/xreflist.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/ui/xreflist.h b/ui/xreflist.h index 0a9708a6..625d384e 100644 --- a/ui/xreflist.h +++ b/ui/xreflist.h @@ -237,6 +237,7 @@ class BINARYNINJAUIAPI CrossReferenceTreeModel : public QAbstractItemModel BinaryViewRef m_data; ViewFrame* m_view; std::vector<XrefItem> m_refs; + size_t m_maxUIItems; public: CrossReferenceTreeModel(QWidget* parent, BinaryViewRef data, ViewFrame* view); @@ -256,6 +257,8 @@ public: bool setModelData(std::vector<XrefItem>& refs, QItemSelectionModel* selectionModel, bool& selectionUpdated); int leafCount() const; ViewFrame* getView() const { return m_view; } + virtual void updateMaxUIItems(size_t value) { m_maxUIItems = value; } + size_t getMaxUIItems() const { return m_maxUIItems; } }; @@ -267,6 +270,8 @@ class BINARYNINJAUIAPI CrossReferenceTableModel : public QAbstractTableModel BinaryViewRef m_data; ViewFrame* m_view; std::vector<XrefItem> m_refs; + size_t m_maxUIItems; + public: enum ColumnHeaders { @@ -290,6 +295,8 @@ public: bool setModelData(std::vector<XrefItem>& refs, QItemSelectionModel* selectionModel, bool& selectionUpdated); const XrefItem& getRow(int idx); ViewFrame* getView() const { return m_view; } + virtual void updateMaxUIItems(size_t value) { m_maxUIItems = value; } + size_t getMaxUIItems() const { return m_maxUIItems; } }; @@ -301,6 +308,7 @@ class BINARYNINJAUIAPI CrossReferenceItemDelegate: public QStyledItemDelegate int m_baseline, m_charWidth, m_charHeight, m_charOffset; QImage m_xrefTo, m_xrefFrom; bool m_table; + size_t m_maxUIItems; public: CrossReferenceItemDelegate(QWidget* parent, bool table); @@ -311,6 +319,8 @@ public: virtual void paintTreeRow(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& idx) const; virtual void paintTableRow(QPainter* painter, const QStyleOptionViewItem& option, const QModelIndex& idx) const; virtual QImage DrawArrow(bool direction) const; + void updateMaxUIItems(size_t count); + size_t getMaxUIItems() const { return m_maxUIItems; } }; @@ -366,6 +376,7 @@ public: virtual void updateFonts() = 0; virtual int leafCount() const = 0; virtual int filteredCount() const = 0; + virtual void updateMaxUIItems(size_t value) = 0; }; @@ -399,6 +410,7 @@ public: virtual int leafCount() const override; virtual int filteredCount() const override; void updateTextFilter(const QString& filterText); + virtual void updateMaxUIItems(size_t count) override; Q_SIGNALS: void newSelection(); @@ -432,6 +444,8 @@ public: virtual void updateFonts() override; virtual int leafCount() const override; virtual int filteredCount() const override; + virtual void updateMaxUIItems(size_t count) override; + public Q_SLOTS: void updateTextFilter(const QString& filterText); Q_SIGNALS: @@ -469,6 +483,7 @@ class BINARYNINJAUIAPI CrossReferenceWidget: public QWidget, public DockContextH bool m_navigating = false; bool m_navToNextOrPrevStarted = false; bool m_pinned; + bool m_uiMaxItemsExceeded = false; virtual void contextMenuEvent(QContextMenuEvent* event) override; virtual void wheelEvent(QWheelEvent* e) override; @@ -494,6 +509,8 @@ public: virtual bool keyPressHandler(QKeyEvent* e); void useTableView(bool tableView, bool init); bool tableView() const { return m_useTableView; } + bool uiMaxItemsExceeded() const { return m_uiMaxItemsExceeded; } + void setUIMaxItemsExceeded(bool value) { m_uiMaxItemsExceeded = value; } private Q_SLOTS: void hoverTimerEvent(); |
