summaryrefslogtreecommitdiff
path: root/ui/xrefstate.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2025-08-15 14:11:55 -0400
committerRusty Wagner <rusty.wagner@gmail.com>2025-08-29 15:42:09 -0400
commit112b1ed7e58e8cb14ecba18bba74fc3bde372431 (patch)
tree247e54945ebac2c44e35d9e1e05399ddc17ddbac /ui/xrefstate.h
parent0cf8ae794f97626d4560a87165b30870a313a743 (diff)
Add a modal dialog option for cross references
Diffstat (limited to 'ui/xrefstate.h')
-rw-r--r--ui/xrefstate.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/ui/xrefstate.h b/ui/xrefstate.h
index e81be4a0..56b46881 100644
--- a/ui/xrefstate.h
+++ b/ui/xrefstate.h
@@ -1,14 +1,22 @@
#pragma once
+#include <QtCore/QModelIndex>
#include "binaryninjaapi.h"
#include "uicontext.h"
+#include "viewframe.h"
class SplitPaneContainer;
class SplitPaneWidget;
class BINARYNINJAUIAPI CrossReferenceState
{
- std::map<SplitPaneContainer*, std::map<QString, SelectionInfoForXref>> m_curXref;
+ struct Selection
+ {
+ SelectionInfoForXref selectionInfo;
+ std::optional<int> previousDialogSelection;
+ };
+
+ std::map<SplitPaneContainer*, std::map<QString, Selection>> m_selections;
SplitPaneContainer* m_currentContainer = nullptr;
QString m_currentDataType;
@@ -16,6 +24,7 @@ public:
CrossReferenceState();
std::optional<SelectionInfoForXref> getCurrentSelection() const;
+ std::optional<int> getPreviousDialogSelection() const;
void updateCrossReferences(ViewFrame* frame, const SelectionInfoForXref& selection);
void beginNavigationForCrossReference(ViewFrame* frame, const SelectionInfoForXref& selection);
@@ -25,6 +34,8 @@ public:
void newPinnedTab();
void newPinnedPane();
+ void modalDialog();
+ void focusSidebar();
void bindActions(UIContext* context);
};