Added ability to maintain bus and msg filters when clearing frames
This commit is contained in:
+11
-2
@@ -67,6 +67,7 @@ CANFrameModel::CANFrameModel(QObject *parent)
|
||||
dbcHandler = DBCHandler::getReference();
|
||||
interpretFrames = false;
|
||||
overwriteDups = false;
|
||||
filtersPersistDuringClear = false;
|
||||
useHexMode = true;
|
||||
timeSeconds = false;
|
||||
timeOffset = 0;
|
||||
@@ -200,6 +201,11 @@ void CANFrameModel::setOverwriteMode(bool mode)
|
||||
endResetModel();
|
||||
}
|
||||
|
||||
void CANFrameModel::setClearMode(bool mode)
|
||||
{
|
||||
filtersPersistDuringClear = mode;
|
||||
}
|
||||
|
||||
void CANFrameModel::setFilterState(unsigned int ID, bool state)
|
||||
{
|
||||
if (!filters.contains(ID)) return;
|
||||
@@ -832,8 +838,11 @@ void CANFrameModel::clearFrames()
|
||||
this->beginResetModel();
|
||||
frames.clear();
|
||||
filteredFrames.clear();
|
||||
filters.clear();
|
||||
busFilters.clear();
|
||||
if(filtersPersistDuringClear == false)
|
||||
{
|
||||
filters.clear();
|
||||
busFilters.clear();
|
||||
}
|
||||
frames.reserve(preallocSize);
|
||||
filteredFrames.reserve(preallocSize);
|
||||
this->endResetModel();
|
||||
|
||||
@@ -46,6 +46,7 @@ public:
|
||||
bool getInterpretMode();
|
||||
void setOverwriteMode(bool);
|
||||
void setHexMode(bool);
|
||||
void setClearMode(bool mode);
|
||||
void setSysTimeMode(bool);
|
||||
void setMillisMode(bool mode);
|
||||
void setIgnoreDBCColors(bool mode);
|
||||
@@ -89,6 +90,7 @@ private:
|
||||
QMutex mutex;
|
||||
bool interpretFrames; //should we use the dbcHandler?
|
||||
bool overwriteDups; //should we display all frames or only the newest for each ID?
|
||||
bool filtersPersistDuringClear;
|
||||
QString timeFormat;
|
||||
bool useHexMode;
|
||||
bool timeSeconds;
|
||||
|
||||
@@ -141,6 +141,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||
|
||||
connect(ui->cbInterpret, &QAbstractButton::toggled, this, &MainWindow::interpretToggled);
|
||||
connect(ui->cbOverwrite, &QAbstractButton::toggled, this, &MainWindow::overwriteToggled);
|
||||
connect(ui->cbPersistentFilters, &QAbstractButton::toggled, this, &MainWindow::presistentFiltersToggled);
|
||||
connect(ui->listFilters, &QListWidget::itemChanged, this, &MainWindow::filterListItemChanged);
|
||||
connect(ui->listBusFilters, &QListWidget::itemChanged, this, &MainWindow::busFilterListItemChanged);
|
||||
|
||||
@@ -616,6 +617,18 @@ void MainWindow::overwriteToggled(bool state)
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::presistentFiltersToggled(bool state)
|
||||
{
|
||||
if (state)
|
||||
{
|
||||
model->setClearMode(true);
|
||||
}
|
||||
else
|
||||
{
|
||||
model->setClearMode(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::updateFilterList()
|
||||
{
|
||||
if (model == nullptr) return;
|
||||
|
||||
@@ -99,6 +99,7 @@ private slots:
|
||||
void setupSendToLatestGraphWindow();
|
||||
void interpretToggled(bool);
|
||||
void overwriteToggled(bool);
|
||||
void presistentFiltersToggled(bool state);
|
||||
void logReceivedFrame(CANConnection*, QVector<CANFrame>);
|
||||
void tickGUIUpdate();
|
||||
void toggleCapture();
|
||||
|
||||
@@ -227,6 +227,13 @@
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbPersistentFilters">
|
||||
<property name="text">
|
||||
<string>Keep Filters When Clearing</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cbAutoScroll">
|
||||
<property name="text">
|
||||
|
||||
Reference in New Issue
Block a user