summaryrefslogtreecommitdiff
path: root/ui/xreflist.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-08-06 16:41:26 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-08-29 15:42:09 -0400
commit5c4abf48ab4b77555a79777bc37d52c842ee149a (patch)
treea9daf8875c7ed70b55bc730de5a63621801a8019 /ui/xreflist.h
parent2303f75b080f6dd0c9a5c669a71f64ce830f5650 (diff)
Add a Pinned Cross References tab to hold pinned references
Diffstat (limited to 'ui/xreflist.h')
-rw-r--r--ui/xreflist.h23
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.