aboutsummaryrefslogtreecommitdiffstats
path: root/src/mainwindow.cpp
diff options
context:
space:
mode:
authorConfuSomu2023-01-21 19:04:14 -0500
committerConfuSomu2023-01-21 19:04:14 -0500
commit8a8659a8f94575a1ce6bdd732f9b4af0237cae42 (patch)
tree3b39cd4481627c31844d2d9683bffa2c191646e3 /src/mainwindow.cpp
parentfbc19ae1dabf9fa9d07a9cbbfe2517016ac4d014 (diff)
downloadActorViewer-8a8659a8f94575a1ce6bdd732f9b4af0237cae42.tar
ActorViewer-8a8659a8f94575a1ce6bdd732f9b4af0237cae42.tar.gz
ActorViewer-8a8659a8f94575a1ce6bdd732f9b4af0237cae42.zip
Implement basic search functionality
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r--src/mainwindow.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp
index 02fb760..b33889a 100644
--- a/src/mainwindow.cpp
+++ b/src/mainwindow.cpp
@@ -97,6 +97,25 @@ void MainWindow::on_buttonCopy_clicked() {
}
}
+void MainWindow::on_buttonSearch_clicked() {
+ static QString* last_search = new QString;
+ static int selected_match = 0;
+
+ QString current_search = ui->textInputSearch->text();
+
+ if (not (*last_search == current_search)) {
+ *last_search = current_search;
+ selected_match = 0;
+ } else
+ ++selected_match;
+
+ QList<QListWidgetItem*> matches = ui->listWidget->findItems(current_search, Qt::MatchContains);
+ if (not matches.isEmpty()) {
+ ui->listWidget->scrollToItem(matches[selected_match], QAbstractItemView::EnsureVisible);
+ ui->listWidget->setCurrentItem(matches[selected_match]);
+ }
+}
+
void MainWindow::relist_statuses() {
if (data_archive) {
ui->listWidget->clear();