diff options
Diffstat (limited to 'src/mainwindow.cpp')
-rw-r--r-- | src/mainwindow.cpp | 19 |
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(); |