summaryrefslogtreecommitdiff
path: root/ui/searchresult.h
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2024-01-12 10:11:19 -0700
committerRusty Wagner <rusty.wagner@gmail.com>2024-02-05 13:42:52 -0500
commit97ac519092fc87e27c49ab21aafb41b77f40dc03 (patch)
tree33d1a72b835a73c25868cb170106f865d9d54430 /ui/searchresult.h
parentefa49ca6d23530b5e1ececccea4a2dc0bbe3406b (diff)
Sidebar improvements
Diffstat (limited to 'ui/searchresult.h')
-rw-r--r--ui/searchresult.h49
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(); }
+};