diff options
| author | Peter LaFosse <peter@vector35.com> | 2019-07-05 11:29:28 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2019-07-14 14:42:52 -0400 |
| commit | a096663fc17d08af0bf2581150b618a1a8f09767 (patch) | |
| tree | a865bc30f99da2612ed4aa61d46e0c483fb35b19 /ui/symbolsview.h | |
| parent | c061061966ee12a7d6ace672b7798257eeb22cfd (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.h | 43 |
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(); +}; |
