diff options
Diffstat (limited to 'ui')
| -rw-r--r-- | ui/historyview.h | 54 | ||||
| -rw-r--r-- | ui/uitypes.h | 2 |
2 files changed, 56 insertions, 0 deletions
diff --git a/ui/historyview.h b/ui/historyview.h new file mode 100644 index 00000000..06f6561d --- /dev/null +++ b/ui/historyview.h @@ -0,0 +1,54 @@ +#pragma once + +#include "filter.h" +#include "sidebarwidget.h" +#include <qsortfilterproxymodel.h> +#include <qstandarditemmodel.h> +#include <qtreeview.h> + + +class BINARYNINJAUIAPI HistorySidebarWidget : public SidebarWidget, public FilterTarget +{ + Q_OBJECT + QTreeView* m_tree; + QStandardItemModel* m_model; + QSortFilterProxyModel* m_proxyModel; + + QWidget* m_header; + FilteredView* m_libFilter; + BinaryViewRef m_data; + ContextMenuManager* m_contextMenuManager; + Menu m_contextMenu; + bool m_updating = false; + + std::unordered_map<std::string, QPersistentModelIndex> m_idIndices; + + virtual void scrollToFirstItem() override; + virtual void scrollToCurrentItem() override; + virtual void selectFirstItem() override; + virtual void activateFirstItem() override; + virtual void setFilter(const std::string& filter) override; + + virtual void contextMenuEvent(QContextMenuEvent*) override; + + void itemDoubleClicked(const QModelIndex& index); + void scrollBarRangeChanged(int min, int max); + + void populateTree(); + + public: + HistorySidebarWidget(BinaryViewRef data); + + void notifyFontChanged() override; + QWidget* headerWidget() override { return m_header; } +}; + + +class BINARYNINJAUIAPI HistorySidebarWidgetType : public SidebarWidgetType +{ + public: + HistorySidebarWidgetType(); + SidebarWidget* createWidget(ViewFrame* frame, BinaryViewRef data) override; + SidebarWidgetLocation defaultLocation() const override { return SidebarWidgetLocation::RightBottom; } + SidebarContextSensitivity contextSensitivity() const override { return PerViewTypeSidebarContext; } +}; diff --git a/ui/uitypes.h b/ui/uitypes.h index 68022642..511e5aa9 100644 --- a/ui/uitypes.h +++ b/ui/uitypes.h @@ -115,6 +115,8 @@ typedef BinaryNinja::Ref<BinaryNinja::RepoPlugin> RepoPluginRef; typedef BinaryNinja::Ref<BinaryNinja::Repository> RepositoryRef; typedef BinaryNinja::Ref<BinaryNinja::RepositoryManager> RepositoryManagerRef; typedef BinaryNinja::Ref<BinaryNinja::Logger> LoggerRef; +typedef BinaryNinja::Ref<BinaryNinja::UndoAction> UndoActionRef; +typedef BinaryNinja::Ref<BinaryNinja::UndoEntry> UndoEntryRef; typedef BinaryNinja::Ref<BinaryNinja::Collaboration::Remote> RemoteRef; typedef BinaryNinja::Ref<BinaryNinja::Collaboration::RemoteProject> RemoteProjectRef; |
