diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2024-01-12 10:11:19 -0700 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2024-02-05 13:42:52 -0500 |
| commit | 97ac519092fc87e27c49ab21aafb41b77f40dc03 (patch) | |
| tree | 33d1a72b835a73c25868cb170106f865d9d54430 /ui/searchresult.h | |
| parent | efa49ca6d23530b5e1ececccea4a2dc0bbe3406b (diff) | |
Sidebar improvements
Diffstat (limited to 'ui/searchresult.h')
| -rw-r--r-- | ui/searchresult.h | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/ui/searchresult.h b/ui/searchresult.h index c585d52c..07bedcd7 100644 --- a/ui/searchresult.h +++ b/ui/searchresult.h @@ -12,9 +12,10 @@ #include <QtWidgets/QProgressBar> #include <QtWidgets/QToolButton> #include "binaryninjaapi.h" -#include "dockhandler.h" #include "filter.h" #include "expandablegroup.h" +#include "sidebar.h" +#include "tabwidget.h" #define FIND_RESULT_LIST_UPDATE_INTERVAL 250 #define COLUMN_MIN_WIDTH_IN_CHAR 10 @@ -183,6 +184,7 @@ class BINARYNINJAUIAPI SearchResultTable : public QTableView BinaryNinja::FindParameters m_params; UIActionHandler m_actionHandler; QTimer* m_updateTimer; + bool m_ignoreColumnResize = true; int m_charWidth, m_charHeight; @@ -233,7 +235,7 @@ class SearchProgressBar; /*! \ingroup searchresult */ -class BINARYNINJAUIAPI SearchResultWidget : public QWidget +class BINARYNINJAUIAPI SearchResultWidget : public SidebarWidget { Q_OBJECT @@ -253,10 +255,10 @@ class BINARYNINJAUIAPI SearchResultWidget : public QWidget virtual void contextMenuEvent(QContextMenuEvent* event) override; public: - SearchResultWidget(BinaryViewRef data); + SearchResultWidget(BinaryViewRef data, const QString& title); ~SearchResultWidget(); - void notifyFontChanged(); + void notifyFontChanged() override; void startNewFind(const BinaryNinja::FindParameters& params); virtual QString getHeaderText(); @@ -299,3 +301,42 @@ class BINARYNINJAUIAPI SearchProgressBar : public QWidget void show(); bool isRunning() const { return m_running; } }; + +/*! + \ingroup searchresult +*/ +class BINARYNINJAUIAPI SearchResultHeaderWidget : public QWidget, public FilterTarget +{ + Q_OBJECT + + QLineEdit* m_search; + QComboBox* m_mode; + QCheckBox* m_caseInsensitive; + +public: + SearchResultHeaderWidget(); + + virtual void setFilter(const std::string&) override {} + virtual void scrollToFirstItem() override {} + virtual void scrollToCurrentItem() override {} + virtual void selectFirstItem() override {} + virtual void activateFirstItem() override; + +protected: + virtual void keyPressEvent(QKeyEvent* e) override; +}; + +/*! + \ingroup searchresult +*/ +class BINARYNINJAUIAPI SearchResultSidebarWidgetType : public SidebarWidgetType +{ +public: + SearchResultSidebarWidgetType(); + SidebarWidgetLocation defaultLocation() const override { return SidebarWidgetLocation::RightBottom; } + SidebarContextSensitivity contextSensitivity() const override { return PerViewTypeSidebarContext; } + bool alwaysShowTabs() const override { return true; } + virtual QString noWidgetMessage() const override { return "No search active"; } + virtual QWidget* headerWidget(SplitPaneWidget* panes, ViewFrame* frame, BinaryViewRef data) override; + virtual DockableTabStyle* tabStyle() const override { return new DefaultDockableTabStyle(); } +}; |
