diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2025-08-06 16:41:26 -0400 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2025-08-29 15:42:09 -0400 |
| commit | 5c4abf48ab4b77555a79777bc37d52c842ee149a (patch) | |
| tree | a9daf8875c7ed70b55bc730de5a63621801a8019 /ui/xreflist.h | |
| parent | 2303f75b080f6dd0c9a5c669a71f64ce830f5650 (diff) | |
Add a Pinned Cross References tab to hold pinned references
Diffstat (limited to 'ui/xreflist.h')
| -rw-r--r-- | ui/xreflist.h | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/ui/xreflist.h b/ui/xreflist.h index ed29843b..c144da71 100644 --- a/ui/xreflist.h +++ b/ui/xreflist.h @@ -25,6 +25,7 @@ #include "viewframe.h" #include "fontsettings.h" #include "expandablegroup.h" +#include "tabwidget.h" class XrefHeader; @@ -676,7 +677,6 @@ class BINARYNINJAUIAPI CrossReferenceWidget : public SidebarWidget, public UICon SelectionInfoForXref m_curRef; SelectionInfoForXref m_newRef; std::optional<SelectionInfoForXref> m_pendingSelection; - bool m_navigating = false; bool m_navToNextOrPrevStarted = false; bool m_pinned; bool m_uiMaxItemsExceeded = false; @@ -729,11 +729,13 @@ class BINARYNINJAUIAPI CrossReferenceWidget : public SidebarWidget, public UICon void notifyRefresh() override; void notifyQuiesce(bool quiesce) override; + const SelectionInfoForXref& getCurrentSelection() const { return m_curRef; } + private Q_SLOTS: void hoverTimerEvent(); - void newPinnedPane(); + void newPinnedTab(); - public Q_SLOTS: +public Q_SLOTS: void referenceActivated(const QModelIndex& idx); void pinnedStateChanged(bool state); void selectionChanged(); @@ -753,6 +755,21 @@ class BINARYNINJAUIAPI CrossReferenceSidebarWidgetType : public SidebarWidgetTyp virtual SidebarWidget* createWidget(ViewFrame* frame, BinaryViewRef data) override; }; +/*! + \ingroup xreflist +*/ +class BINARYNINJAUIAPI PinnedCrossReferenceSidebarWidgetType : public SidebarWidgetType +{ +public: + PinnedCrossReferenceSidebarWidgetType(); + SidebarWidgetLocation defaultLocation() const override { return SidebarWidgetLocation::RightBottom; } + SidebarContextSensitivity contextSensitivity() const override { return PerViewTypeSidebarContext; } + bool alwaysShowTabs() const override { return true; } + QString noWidgetMessage() const override { return "No pinned cross references"; } + DockableTabStyle* tabStyle() const override { return new DefaultDockableTabStyle(); } + bool deactivateOnLastTabClose() const override { return true; } +}; + // https://github.com/CuriousCrow/QCheckboxCombo /*! QCheckboxCombo is a combobox widget that contains items with checkboxes. |
