From 8a8659a8f94575a1ce6bdd732f9b4af0237cae42 Mon Sep 17 00:00:00 2001 From: ConfuSomu Date: Sat, 21 Jan 2023 19:04:14 -0500 Subject: Implement basic search functionality --- src/mainwindow.cpp | 19 +++++++++++++++++++ src/mainwindow.h | 1 + 2 files changed, 20 insertions(+) (limited to 'src') 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 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(); diff --git a/src/mainwindow.h b/src/mainwindow.h index 98697fa..a0640de 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -33,6 +33,7 @@ private slots: void on_buttonRandom_clicked(); void on_buttonCopy_clicked(); + void on_buttonSearch_clicked(); void on_menuView_aboutToHide(); -- cgit v1.2.3-54-g00ecf