diff options
| author | Josh Ferrell <josh@vector35.com> | 2024-05-08 16:19:26 -0400 |
|---|---|---|
| committer | Josh Ferrell <josh@vector35.com> | 2024-05-14 14:31:46 -0400 |
| commit | cb407be11b08c1c427fcf33a49974155e522e14a (patch) | |
| tree | 4c99b4230e375517a4742a6ac3d4bc95c9e6bd23 /ui | |
| parent | 3c28d7e6eaa84041ec0fe5352a618759c13e6cb3 (diff) | |
Ref count undo objects
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; |
