mirror of
https://github.com/rizinorg/cutter.git
synced 2025-01-19 02:48:49 +00:00
Implement the "Search in" feature (#873)
This commit is contained in:
parent
08107fdc67
commit
02ce3cb731
@ -6,6 +6,19 @@
|
||||
#include "MainWindow.h"
|
||||
#include "common/Helpers.h"
|
||||
|
||||
static const QMap<QString, QString> kSearchBoundariesValues {
|
||||
{"io.maps", "All maps"},
|
||||
{"io.map", "Current map"},
|
||||
{"raw", "Raw"},
|
||||
{"dbg.maps", "All memory maps"},
|
||||
{"dbg.map", "Memory map"},
|
||||
{"block", "Current block"},
|
||||
{"bin.section", "Current mapped section"},
|
||||
{"bin.sections", "All mapped sections"},
|
||||
{"dbg.stack", "Stack"},
|
||||
{"dbg.heap", "Heap"}
|
||||
};
|
||||
|
||||
SearchModel::SearchModel(QList<SearchDescription> *search, QObject *parent)
|
||||
: QAbstractListModel(parent),
|
||||
search(search)
|
||||
@ -116,6 +129,12 @@ SearchWidget::SearchWidget(MainWindow *main, QAction *action) :
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->searchInCombo->blockSignals(true);
|
||||
QMap<QString, QString>::const_iterator mapIter;
|
||||
for (mapIter = kSearchBoundariesValues.begin(); mapIter != kSearchBoundariesValues.end(); ++mapIter)
|
||||
ui->searchInCombo->addItem(mapIter.value(), mapIter.key());
|
||||
ui->searchInCombo->blockSignals(false);
|
||||
|
||||
search_model = new SearchModel(&search, this);
|
||||
search_proxy_model = new SearchSortFilterProxyModel(search_model, this);
|
||||
ui->searchTreeView->setModel(search_proxy_model);
|
||||
@ -138,6 +157,8 @@ SearchWidget::SearchWidget(MainWindow *main, QAction *action) :
|
||||
connect(ui->searchspaceCombo, QOverload<int>::of(&QComboBox::currentIndexChanged),
|
||||
[ = ](int index) { updatePlaceholderText(index);});
|
||||
|
||||
QString currentSearchBoundary = Core()->getConfig("search.in");
|
||||
ui->searchInCombo->setCurrentIndex(ui->searchInCombo->findData(currentSearchBoundary));
|
||||
}
|
||||
|
||||
SearchWidget::~SearchWidget() {}
|
||||
@ -213,3 +234,10 @@ void SearchWidget::updatePlaceholderText(int index)
|
||||
ui->filterLineEdit->setPlaceholderText("jmp rax");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void SearchWidget::on_searchInCombo_currentIndexChanged(int index)
|
||||
{
|
||||
Config()->setConfig("search.in",
|
||||
ui->searchInCombo->itemData(index).toString());
|
||||
}
|
||||
|
@ -66,7 +66,7 @@ public:
|
||||
|
||||
private slots:
|
||||
void on_searchTreeView_doubleClicked(const QModelIndex &index);
|
||||
|
||||
void on_searchInCombo_currentIndexChanged(int index);
|
||||
void searchChanged();
|
||||
void refreshSearchspaces();
|
||||
|
||||
|
@ -6,7 +6,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>463</width>
|
||||
<width>548</width>
|
||||
<height>300</height>
|
||||
</rect>
|
||||
</property>
|
||||
@ -94,6 +94,23 @@
|
||||
<item>
|
||||
<widget class="QComboBox" name="searchspaceCombo"/>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="searchInLabel">
|
||||
<property name="text">
|
||||
<string>Search in:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="searchInCombo">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>16777215</width>
|
||||
<height>300</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
|
Loading…
Reference in New Issue
Block a user