Skip to content

Commit 850744d

Browse files
committed
Add regex and case sensitivity options to FilterEdit
1 parent 792e824 commit 850744d

6 files changed

Lines changed: 30 additions & 10 deletions

File tree

ui/attachprocess.cpp

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ ProcessListWidget::ProcessListWidget(QWidget* parent, DbgRef<DebuggerController>
313313
setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
314314
setVerticalScrollMode(QAbstractItemView::ScrollPerPixel);
315315
setAutoScroll(false);
316-
316+
317317
resizeColumnsToContents();
318318
resizeRowsToContents();
319319

@@ -367,9 +367,14 @@ void ProcessListWidget::updateContent(const std::vector<ProcessItem>& processLis
367367
}
368368

369369

370-
void ProcessListWidget::setFilter(const string& filter)
370+
void ProcessListWidget::setFilter(const string& filter, FilterOptions options)
371371
{
372-
m_filter->setFilterFixedString(QString::fromStdString(filter));
372+
if (options.testFlag(UseRegexOption))
373+
m_filter->setFilterRegularExpression(QString::fromStdString(filter));
374+
else
375+
m_filter->setFilterFixedString(QString::fromStdString(filter));
376+
m_filter->setFilterCaseSensitivity(
377+
options.testFlag(CaseSensitiveOption) ? Qt::CaseSensitive : Qt::CaseInsensitive);
373378
updateColumnWidths();
374379
}
375380

@@ -395,6 +400,7 @@ AttachProcessDialog::AttachProcessDialog(QWidget* parent, DbgRef<DebuggerControl
395400

396401
m_processListWidget = new ProcessListWidget(this, controller);
397402
m_separateEdit = new FilterEdit(m_processListWidget);
403+
m_separateEdit->showRegexToggle(true);
398404
m_filter = new FilteredView(this, m_processListWidget, m_processListWidget, m_separateEdit);
399405
m_filter->setFilterPlaceholderText("Search process");
400406

ui/attachprocess.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ limitations under the License.
2626
#include <QHeaderView>
2727
#include <QStyledItemDelegate>
2828
#include "debuggerapi.h"
29+
#include "filter.h"
2930
#include "ui.h"
3031

3132

@@ -133,7 +134,7 @@ class ProcessListWidget : public QTableView, public FilterTarget
133134

134135
virtual void contextMenuEvent(QContextMenuEvent* event) override;
135136

136-
virtual void setFilter(const std::string& filter) override;
137+
virtual void setFilter(const std::string& filter, FilterOptions options) override;
137138
virtual void scrollToFirstItem() override;
138139
virtual void scrollToCurrentItem() override;
139140
virtual void ensureSelection() override;

ui/moduleswidget.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -580,9 +580,14 @@ void DebugModulesWidget::onDoubleClicked()
580580
};
581581

582582

583-
void DebugModulesWidget::setFilter(const string& filter)
583+
void DebugModulesWidget::setFilter(const string& filter, FilterOptions options)
584584
{
585-
m_filter->setFilterRegularExpression(QString::fromStdString(filter));
585+
if (options.testFlag(UseRegexOption))
586+
m_filter->setFilterRegularExpression(QString::fromStdString(filter));
587+
else
588+
m_filter->setFilterFixedString(QString::fromStdString(filter));
589+
m_filter->setFilterCaseSensitivity(
590+
options.testFlag(CaseSensitiveOption) ? Qt::CaseSensitive : Qt::CaseInsensitive);
586591
updateColumnWidths();
587592
}
588593

@@ -609,6 +614,7 @@ DebugModulesWithFilter::DebugModulesWithFilter(ViewFrame* view, BinaryViewRef da
609614
{
610615
m_modules = new DebugModulesWidget(view, data);
611616
m_separateEdit = new FilterEdit(m_modules);
617+
m_separateEdit->showRegexToggle(true);
612618
m_filter = new FilteredView(this, m_modules, m_modules, m_separateEdit);
613619
m_filter->setFilterPlaceholderText("Search modules");
614620

ui/moduleswidget.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ limitations under the License.
2727
#include "fontsettings.h"
2828
#include "theme.h"
2929
#include "globalarea.h"
30+
#include "filter.h"
3031
#include "debuggerapi.h"
3132

3233
using namespace BinaryNinjaDebuggerAPI;
@@ -154,7 +155,7 @@ class DebugModulesWidget : public QTableView, public FilterTarget
154155
bool canCopy();
155156
bool canCopyAll();
156157

157-
virtual void setFilter(const std::string& filter) override;
158+
virtual void setFilter(const std::string& filter, FilterOptions options) override;
158159
virtual void scrollToFirstItem() override;
159160
virtual void scrollToCurrentItem() override;
160161
virtual void ensureSelection() override;

ui/registerswidget.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -930,9 +930,14 @@ void DebugRegistersWidget::editValue()
930930
}
931931

932932

933-
void DebugRegistersWidget::setFilter(const string& filter)
933+
void DebugRegistersWidget::setFilter(const string& filter, FilterOptions options)
934934
{
935-
m_filter->setFilterRegularExpression(QString::fromStdString(filter));
935+
if (options.testFlag(UseRegexOption))
936+
m_filter->setFilterRegularExpression(QString::fromStdString(filter));
937+
else
938+
m_filter->setFilterFixedString(QString::fromStdString(filter));
939+
m_filter->setFilterCaseSensitivity(
940+
options.testFlag(CaseSensitiveOption) ? Qt::CaseSensitive : Qt::CaseInsensitive);
936941
updateColumnWidths();
937942
}
938943

@@ -953,6 +958,7 @@ DebugRegistersContainer::DebugRegistersContainer(ViewFrame* view, BinaryViewRef
953958
{
954959
m_register = new DebugRegistersWidget(view, data, menu);
955960
m_separateEdit = new FilterEdit(m_register);
961+
m_separateEdit->showRegexToggle(true);
956962
m_filter = new FilteredView(this, m_register, m_register, m_separateEdit);
957963
m_filter->setFilterPlaceholderText("Search registers");
958964

ui/registerswidget.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ class DebugRegistersWidget : public QTableView, public FilterTarget
179179
bool selectionNotEmpty();
180180
bool canPaste();
181181

182-
virtual void setFilter(const std::string& filter) override;
182+
virtual void setFilter(const std::string& filter, FilterOptions options) override;
183183
virtual void scrollToFirstItem() override;
184184
virtual void scrollToCurrentItem() override;
185185
virtual void ensureSelection() override;

0 commit comments

Comments
 (0)