From 4a56cddaff81902e37be0b3cce9107ebe73c5bb5 Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Thu, 19 Jan 2023 19:37:27 +0100 Subject: [PATCH] cabana: search by signal name (#26944) old-commit-hash: 35b83579634f2cdee4d6ef4652995b1844773b6e --- tools/cabana/messageswidget.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tools/cabana/messageswidget.cc b/tools/cabana/messageswidget.cc index 10a9c2e849..5deac031a1 100644 --- a/tools/cabana/messageswidget.cc +++ b/tools/cabana/messageswidget.cc @@ -97,7 +97,24 @@ void MessageListModel::setFilterString(const QString &string) { filter_str = string; msgs.clear(); for (auto it = can->can_msgs.begin(); it != can->can_msgs.end(); ++it) { + bool found = false; + + // Search by message id or name if (it.key().contains(filter_str, Qt::CaseInsensitive) || msgName(it.key()).contains(filter_str, Qt::CaseInsensitive)) { + found = true; + } + + // Search by signal name + const DBCMsg *msg = dbc()->msg(it.key()); + if (msg != nullptr) { + for (auto &signal: msg->getSignals()) { + if (QString::fromStdString(signal->name).contains(filter_str, Qt::CaseInsensitive)) { + found = true; + } + } + } + + if (found) { msgs.push_back(it.key()); } }