summaryrefslogtreecommitdiff
path: root/ui/symbolsview.h
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2019-07-05 11:29:28 -0400
committerPeter LaFosse <peter@vector35.com>2019-07-14 14:42:52 -0400
commita096663fc17d08af0bf2581150b618a1a8f09767 (patch)
treea865bc30f99da2612ed4aa61d46e0c483fb35b19 /ui/symbolsview.h
parentc061061966ee12a7d6ace672b7798257eeb22cfd (diff)
Add support for sorting the symbol list by name or address
Refactoring Function List to support Symbols and Data Variables too Renaming FunctionList and FunctionsView to SymbolList/SymbolsView Keep track of current selection and scroll position between model resets
Diffstat (limited to 'ui/symbolsview.h')
-rw-r--r--ui/symbolsview.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/ui/symbolsview.h b/ui/symbolsview.h
new file mode 100644
index 00000000..694f3ea4
--- /dev/null
+++ b/ui/symbolsview.h
@@ -0,0 +1,43 @@
+#pragma once
+
+#include <QtCore/QTimer>
+#include "binaryninjaapi.h"
+#include "dockhandler.h"
+#include "filter.h"
+#include "symbollist.h"
+
+class ViewFrame;
+class SymbolList;
+
+class BINARYNINJAUIAPI SymbolsView: public QWidget, public DockContextHandler, public BinaryNinja::BinaryDataNotification
+{
+ Q_OBJECT
+ Q_INTERFACES(DockContextHandler)
+
+ BinaryViewRef m_data;
+
+ SymbolList* m_funcList;
+ FilteredView* m_funcFilter;
+
+ bool m_updatesPending;
+ QTimer* m_updateTimer;
+
+public:
+ SymbolsView(ViewFrame* frame, BinaryViewRef data);
+ virtual ~SymbolsView();
+
+ SymbolList* getSymbolList() { return m_funcList; }
+ FilteredView* getFunctionFilter() { return m_funcFilter; }
+
+ virtual void OnBinaryDataWritten(BinaryNinja::BinaryView* data, uint64_t offset, size_t len) override;
+ virtual void OnBinaryDataInserted(BinaryNinja::BinaryView* data, uint64_t offset, size_t len) override;
+ virtual void OnBinaryDataRemoved(BinaryNinja::BinaryView* data, uint64_t offset, uint64_t len) override;
+
+protected:
+ virtual void contextMenuEvent(QContextMenuEvent* event) override;
+ virtual void notifyFontChanged() override;
+ virtual bool shouldBeVisible(ViewFrame* frame) override;
+
+private Q_SLOTS:
+ void updateTimerEvent();
+};