From 064a008dac121cf1889a7ce8f18163f356d4c575 Mon Sep 17 00:00:00 2001 From: Bertrand Date: Tue, 23 Feb 2021 08:32:20 +0100 Subject: [PATCH] adding bus filter to filter utility --- filterutility.cpp | 39 +++++++++++++++++++++++++++++++++++++-- filterutility.h | 6 ++++-- 2 files changed, 41 insertions(+), 4 deletions(-) diff --git a/filterutility.cpp b/filterutility.cpp index 72cc3ed..88151b2 100644 --- a/filterutility.cpp +++ b/filterutility.cpp @@ -37,7 +37,7 @@ uint32_t FilterUtility::getGMLanSenderId(int32_t id) return id & 0x1FFF; } -QListWidgetItem * FilterUtility::createCheckableFilterItem(int32_t id, bool checked, QListWidget* parent) +QListWidgetItem * FilterUtility::createCheckableFilterItem(uint32_t id, bool checked, QListWidget* parent) { QListWidgetItem * thisItem = createFilterItem(id,parent); thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); @@ -48,7 +48,19 @@ QListWidgetItem * FilterUtility::createCheckableFilterItem(int32_t id, bool chec return thisItem; } -QListWidgetItem * FilterUtility::createFilterItem(int32_t id, QListWidget* parent) +QListWidgetItem * FilterUtility::createCheckableBusFilterItem(uint32_t id, bool checked, QListWidget* parent) +{ + QListWidgetItem * thisItem = createBusFilterItem(id,parent); + thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable); + if (checked) + thisItem->setCheckState(Qt::Checked); + else + thisItem->setCheckState(Qt::Unchecked); + return thisItem; +} + + +QListWidgetItem * FilterUtility::createFilterItem(uint32_t id, QListWidget* parent) { QSettings settings; DBCHandler * dbcHandler = DBCHandler::getReference(); @@ -81,3 +93,26 @@ QListWidgetItem * FilterUtility::createFilterItem(int32_t id, QListWidget* paren thisItem->setText(filterItemName); return thisItem; } + +QListWidgetItem * FilterUtility::createBusFilterItem(uint32_t id, QListWidget* parent) +{ + QSettings settings; + DBCHandler * dbcHandler = DBCHandler::getReference(); + QListWidgetItem *thisItem = new QListWidgetItem(parent); + QString filterItemName = QStringLiteral("%1").arg(id); + + if (settings.value("Main/FilterLabeling", false).toBool()) + { + // Filter labeling (show interpreted frame names next to the CAN addr ID) + MatchingCriteria_t matchingCriteria; + DBC_MESSAGE *msg = dbcHandler->findMessageForFilter(id,&matchingCriteria); + if (msg != NULL) + { + filterItemName.append(" "); + filterItemName.append(msg->name); + } + } + + thisItem->setText(filterItemName); + return thisItem; +} diff --git a/filterutility.h b/filterutility.h index e346c31..14e8f56 100644 --- a/filterutility.h +++ b/filterutility.h @@ -8,8 +8,10 @@ class FilterUtility { public: - static QListWidgetItem * createFilterItem(int32_t id, QListWidget* parent=NULL); // if parent is given, add item automatically to listwidget - static QListWidgetItem * createCheckableFilterItem(int32_t id, bool checked, QListWidget* parent=NULL); + static QListWidgetItem * createFilterItem(uint32_t id, QListWidget* parent=NULL); // if parent is given, add item automatically to listwidget + static QListWidgetItem * createCheckableFilterItem(uint32_t id, bool checked, QListWidget* parent=NULL); + static QListWidgetItem * createBusFilterItem(uint32_t id, QListWidget* parent=NULL); // if parent is given, add item automatically to listwidget + static QListWidgetItem * createCheckableBusFilterItem(uint32_t id, bool checked, QListWidget* parent=NULL); static uint32_t getIdAsInt( QListWidgetItem * item ); static QString getId( QListWidgetItem * item );