From a096663fc17d08af0bf2581150b618a1a8f09767 Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Fri, 5 Jul 2019 11:29:28 -0400 Subject: 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 --- ui/symbolsview.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 ui/symbolsview.h (limited to 'ui/symbolsview.h') 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 +#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(); +}; -- cgit v1.3.1