Merge branch 'feature/busfilter'
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
#Build directory
|
||||||
|
build/
|
||||||
|
|
||||||
# Compiled Object files
|
# Compiled Object files
|
||||||
*.slo
|
*.slo
|
||||||
*.lo
|
*.lo
|
||||||
|
|||||||
+47
-4
@@ -11,6 +11,7 @@ CANFrameModel::~CANFrameModel()
|
|||||||
frames.clear();
|
frames.clear();
|
||||||
filteredFrames.clear();
|
filteredFrames.clear();
|
||||||
filters.clear();
|
filters.clear();
|
||||||
|
busFilters.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
int CANFrameModel::rowCount(const QModelIndex &parent) const
|
int CANFrameModel::rowCount(const QModelIndex &parent) const
|
||||||
@@ -171,6 +172,13 @@ void CANFrameModel::setFilterState(unsigned int ID, bool state)
|
|||||||
sendRefresh();
|
sendRefresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CANFrameModel::setBusFilterState(unsigned int BusID, bool state)
|
||||||
|
{
|
||||||
|
if (!busFilters.contains(BusID)) return;
|
||||||
|
busFilters[BusID] = state;
|
||||||
|
sendRefresh();
|
||||||
|
}
|
||||||
|
|
||||||
void CANFrameModel::setAllFilters(bool state)
|
void CANFrameModel::setAllFilters(bool state)
|
||||||
{
|
{
|
||||||
QMap<int, bool>::iterator it;
|
QMap<int, bool>::iterator it;
|
||||||
@@ -337,7 +345,7 @@ void CANFrameModel::recalcOverwrite()
|
|||||||
|
|
||||||
for (int i = 0; i < frames.count(); i++)
|
for (int i = 0; i < frames.count(); i++)
|
||||||
{
|
{
|
||||||
if (filters[frames[i].frameId()])
|
if (filters[frames[i].frameId()] && busFilters[frames[i].bus])
|
||||||
{
|
{
|
||||||
filteredFrames.append(frames[i]);
|
filteredFrames.append(frames[i]);
|
||||||
}
|
}
|
||||||
@@ -578,6 +586,18 @@ bool CANFrameModel::any_filters_are_configured(void)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CANFrameModel::any_busfilters_are_configured(void)
|
||||||
|
{
|
||||||
|
for (auto const &val : busFilters)
|
||||||
|
{
|
||||||
|
if (val == true)
|
||||||
|
continue;
|
||||||
|
else
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
|
void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
|
||||||
{
|
{
|
||||||
@@ -601,10 +621,21 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
|
|||||||
needFilterRefresh = true;
|
needFilterRefresh = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//if this BusID isn't found in the busFilters list then add it and show it by default
|
||||||
|
if (!busFilters.contains(tempFrame.bus))
|
||||||
|
{
|
||||||
|
// if there are any busFilters already configured, leave the new filter disabled
|
||||||
|
if (any_busfilters_are_configured())
|
||||||
|
busFilters.insert(tempFrame.bus, false);
|
||||||
|
else
|
||||||
|
busFilters.insert(tempFrame.bus, true);
|
||||||
|
needFilterRefresh = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (!overwriteDups)
|
if (!overwriteDups)
|
||||||
{
|
{
|
||||||
frames.append(tempFrame);
|
frames.append(tempFrame);
|
||||||
if (filters[tempFrame.frameId()])
|
if (filters[tempFrame.frameId()] && busFilters[tempFrame.bus])
|
||||||
{
|
{
|
||||||
if (autoRefresh) beginInsertRows(QModelIndex(), filteredFrames.count(), filteredFrames.count());
|
if (autoRefresh) beginInsertRows(QModelIndex(), filteredFrames.count(), filteredFrames.count());
|
||||||
tempFrame.frameCount = 1;
|
tempFrame.frameCount = 1;
|
||||||
@@ -629,7 +660,7 @@ void CANFrameModel::addFrame(const CANFrame& frame, bool autoRefresh = false)
|
|||||||
if (!found)
|
if (!found)
|
||||||
{
|
{
|
||||||
frames.append(tempFrame);
|
frames.append(tempFrame);
|
||||||
if (filters[tempFrame.frameId()])
|
if (filters[tempFrame.frameId()] && busFilters[tempFrame.bus])
|
||||||
{
|
{
|
||||||
if (autoRefresh) beginInsertRows(QModelIndex(), filteredFrames.count(), filteredFrames.count());
|
if (autoRefresh) beginInsertRows(QModelIndex(), filteredFrames.count(), filteredFrames.count());
|
||||||
tempFrame.frameCount = 1;
|
tempFrame.frameCount = 1;
|
||||||
@@ -676,7 +707,7 @@ void CANFrameModel::sendRefresh()
|
|||||||
int count = frames.count();
|
int count = frames.count();
|
||||||
for (int i = 0; i < count; i++)
|
for (int i = 0; i < count; i++)
|
||||||
{
|
{
|
||||||
if (filters[frames[i].frameId()])
|
if (filters[frames[i].frameId()] && busFilters[frames[i].bus])
|
||||||
{
|
{
|
||||||
tempContainer.append(frames[i]);
|
tempContainer.append(frames[i]);
|
||||||
}
|
}
|
||||||
@@ -727,6 +758,7 @@ void CANFrameModel::clearFrames()
|
|||||||
frames.clear();
|
frames.clear();
|
||||||
filteredFrames.clear();
|
filteredFrames.clear();
|
||||||
filters.clear();
|
filters.clear();
|
||||||
|
busFilters.clear();
|
||||||
frames.reserve(preallocSize);
|
frames.reserve(preallocSize);
|
||||||
filteredFrames.reserve(preallocSize);
|
filteredFrames.reserve(preallocSize);
|
||||||
this->endResetModel();
|
this->endResetModel();
|
||||||
@@ -758,6 +790,11 @@ void CANFrameModel::insertFrames(const QVector<CANFrame> &newFrames)
|
|||||||
needFilterRefresh = true;
|
needFilterRefresh = true;
|
||||||
}
|
}
|
||||||
if (filters[newFrames[i].frameId()])
|
if (filters[newFrames[i].frameId()])
|
||||||
|
{
|
||||||
|
busFilters.insert(newFrames[i].bus, true);
|
||||||
|
needFilterRefresh = true;
|
||||||
|
}
|
||||||
|
if (filters[newFrames[i].frameId()] && busFilters[newFrames[i].bus])
|
||||||
{
|
{
|
||||||
insertedFiltered++;
|
insertedFiltered++;
|
||||||
filteredFrames.append(newFrames[i]);
|
filteredFrames.append(newFrames[i]);
|
||||||
@@ -796,6 +833,7 @@ void CANFrameModel::loadFilterFile(QString filename)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
filters.clear();
|
filters.clear();
|
||||||
|
busFilters.clear();
|
||||||
|
|
||||||
while (!inFile->atEnd()) {
|
while (!inFile->atEnd()) {
|
||||||
line = inFile->readLine().simplified();
|
line = inFile->readLine().simplified();
|
||||||
@@ -861,3 +899,8 @@ const QMap<int, bool>* CANFrameModel::getFiltersReference() const
|
|||||||
{
|
{
|
||||||
return &filters;
|
return &filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const QMap<int, bool>* CANFrameModel::getBusFiltersReference() const
|
||||||
|
{
|
||||||
|
return &busFilters;
|
||||||
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ public:
|
|||||||
void setHexMode(bool);
|
void setHexMode(bool);
|
||||||
void setSysTimeMode(bool);
|
void setSysTimeMode(bool);
|
||||||
void setFilterState(unsigned int ID, bool state);
|
void setFilterState(unsigned int ID, bool state);
|
||||||
|
void setBusFilterState(unsigned int BusID, bool state);
|
||||||
void setAllFilters(bool state);
|
void setAllFilters(bool state);
|
||||||
void setSecondsMode(bool);
|
void setSecondsMode(bool);
|
||||||
void setTimeFormat(QString);
|
void setTimeFormat(QString);
|
||||||
@@ -62,6 +63,7 @@ public:
|
|||||||
const QVector<CANFrame> *getListReference() const; //thou shalt not modify these frames externally!
|
const QVector<CANFrame> *getListReference() const; //thou shalt not modify these frames externally!
|
||||||
const QVector<CANFrame> *getFilteredListReference() const; //Thus saith the Lord, NO.
|
const QVector<CANFrame> *getFilteredListReference() const; //Thus saith the Lord, NO.
|
||||||
const QMap<int, bool> *getFiltersReference() const; //this neither
|
const QMap<int, bool> *getFiltersReference() const; //this neither
|
||||||
|
const QMap<int, bool> *getBusFiltersReference() const; //this neither
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void addFrame(const CANFrame&, bool);
|
void addFrame(const CANFrame&, bool);
|
||||||
@@ -75,10 +77,12 @@ private:
|
|||||||
void qSortCANFrameDesc(QVector<CANFrame>* frames, Column column, int lowerBound, int upperBound);
|
void qSortCANFrameDesc(QVector<CANFrame>* frames, Column column, int lowerBound, int upperBound);
|
||||||
uint64_t getCANFrameVal(int row, Column col);
|
uint64_t getCANFrameVal(int row, Column col);
|
||||||
bool any_filters_are_configured(void);
|
bool any_filters_are_configured(void);
|
||||||
|
bool any_busfilters_are_configured(void);
|
||||||
|
|
||||||
QVector<CANFrame> frames;
|
QVector<CANFrame> frames;
|
||||||
QVector<CANFrame> filteredFrames;
|
QVector<CANFrame> filteredFrames;
|
||||||
QMap<int, bool> filters;
|
QMap<int, bool> filters;
|
||||||
|
QMap<int, bool> busFilters;
|
||||||
DBCHandler *dbcHandler;
|
DBCHandler *dbcHandler;
|
||||||
QMutex mutex;
|
QMutex mutex;
|
||||||
bool interpretFrames; //should we use the dbcHandler?
|
bool interpretFrames; //should we use the dbcHandler?
|
||||||
|
|||||||
+37
-2
@@ -37,7 +37,7 @@ uint32_t FilterUtility::getGMLanSenderId(int32_t id)
|
|||||||
return id & 0x1FFF;
|
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);
|
QListWidgetItem * thisItem = createFilterItem(id,parent);
|
||||||
thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable);
|
thisItem->setFlags(thisItem->flags() | Qt::ItemIsUserCheckable);
|
||||||
@@ -48,7 +48,19 @@ QListWidgetItem * FilterUtility::createCheckableFilterItem(int32_t id, bool chec
|
|||||||
return thisItem;
|
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;
|
QSettings settings;
|
||||||
DBCHandler * dbcHandler = DBCHandler::getReference();
|
DBCHandler * dbcHandler = DBCHandler::getReference();
|
||||||
@@ -81,3 +93,26 @@ QListWidgetItem * FilterUtility::createFilterItem(int32_t id, QListWidget* paren
|
|||||||
thisItem->setText(filterItemName);
|
thisItem->setText(filterItemName);
|
||||||
return thisItem;
|
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;
|
||||||
|
}
|
||||||
|
|||||||
+4
-2
@@ -8,8 +8,10 @@ class FilterUtility
|
|||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static QListWidgetItem * createFilterItem(int32_t id, QListWidget* parent=NULL); // if parent is given, add item automatically to listwidget
|
static QListWidgetItem * createFilterItem(uint32_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 * 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 uint32_t getIdAsInt( QListWidgetItem * item );
|
||||||
static QString getId( QListWidgetItem * item );
|
static QString getId( QListWidgetItem * item );
|
||||||
|
|||||||
+24
-1
@@ -124,6 +124,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
|||||||
connect(ui->actionPreferences, &QAction::triggered, this, &MainWindow::showSettingsDialog);
|
connect(ui->actionPreferences, &QAction::triggered, this, &MainWindow::showSettingsDialog);
|
||||||
connect(model, &CANFrameModel::updatedFiltersList, this, &MainWindow::updateFilterList);
|
connect(model, &CANFrameModel::updatedFiltersList, this, &MainWindow::updateFilterList);
|
||||||
connect(ui->listFilters, &QListWidget::itemChanged, this, &MainWindow::filterListItemChanged);
|
connect(ui->listFilters, &QListWidget::itemChanged, this, &MainWindow::filterListItemChanged);
|
||||||
|
connect(ui->listBusFilters, &QListWidget::itemChanged, this, &MainWindow::busFilterListItemChanged);
|
||||||
connect(ui->btnFilterAll, &QAbstractButton::clicked, this, &MainWindow::filterSetAll);
|
connect(ui->btnFilterAll, &QAbstractButton::clicked, this, &MainWindow::filterSetAll);
|
||||||
connect(ui->btnFilterNone, &QAbstractButton::clicked, this, &MainWindow::filterClearAll);
|
connect(ui->btnFilterNone, &QAbstractButton::clicked, this, &MainWindow::filterClearAll);
|
||||||
connect(ui->actionFirmware_Update, &QAction::triggered, this, &MainWindow::showFirmwareUploaderWindow);
|
connect(ui->actionFirmware_Update, &QAction::triggered, this, &MainWindow::showFirmwareUploaderWindow);
|
||||||
@@ -503,13 +504,15 @@ void MainWindow::updateFilterList()
|
|||||||
{
|
{
|
||||||
if (model == nullptr) return;
|
if (model == nullptr) return;
|
||||||
const QMap<int, bool> *filters = model->getFiltersReference();
|
const QMap<int, bool> *filters = model->getFiltersReference();
|
||||||
if (filters == nullptr) return;
|
const QMap<int, bool> *busFilters = model->getBusFiltersReference();
|
||||||
|
if (filters == nullptr && busFilters == nullptr) return;
|
||||||
|
|
||||||
qDebug() << "updateFilterList called on MainWindow";
|
qDebug() << "updateFilterList called on MainWindow";
|
||||||
|
|
||||||
inhibitFilterUpdate = true;
|
inhibitFilterUpdate = true;
|
||||||
|
|
||||||
ui->listFilters->clear();
|
ui->listFilters->clear();
|
||||||
|
ui->listBusFilters->clear();
|
||||||
|
|
||||||
if (filters->isEmpty()) return;
|
if (filters->isEmpty()) return;
|
||||||
|
|
||||||
@@ -518,6 +521,13 @@ void MainWindow::updateFilterList()
|
|||||||
{
|
{
|
||||||
/*QListWidgetItem *thisItem = */FilterUtility::createCheckableFilterItem(filterIter.key(), filterIter.value(), ui->listFilters);
|
/*QListWidgetItem *thisItem = */FilterUtility::createCheckableFilterItem(filterIter.key(), filterIter.value(), ui->listFilters);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (busFilters->isEmpty()) return;
|
||||||
|
|
||||||
|
for (filterIter = busFilters->begin(); filterIter != busFilters->end(); ++filterIter)
|
||||||
|
{
|
||||||
|
QListWidgetItem *thisItem = FilterUtility::createCheckableBusFilterItem(filterIter.key(), filterIter.value(), ui->listBusFilters);
|
||||||
|
}
|
||||||
inhibitFilterUpdate = false;
|
inhibitFilterUpdate = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -534,6 +544,19 @@ void MainWindow::filterListItemChanged(QListWidgetItem *item)
|
|||||||
model->setFilterState(ID, isSet);
|
model->setFilterState(ID, isSet);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::busFilterListItemChanged(QListWidgetItem *item)
|
||||||
|
{
|
||||||
|
if (inhibitFilterUpdate) return;
|
||||||
|
//qDebug() << item->text();
|
||||||
|
|
||||||
|
// strip away possible filter label
|
||||||
|
int ID = FilterUtility::getIdAsInt(item);
|
||||||
|
bool isSet = false;
|
||||||
|
if (item->checkState() == Qt::Checked) isSet = true;
|
||||||
|
|
||||||
|
model->setBusFilterState(ID, isSet);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::filterSetAll()
|
void MainWindow::filterSetAll()
|
||||||
{
|
{
|
||||||
inhibitFilterUpdate = true;
|
inhibitFilterUpdate = true;
|
||||||
|
|||||||
@@ -94,11 +94,13 @@ private slots:
|
|||||||
void gridDoubleClicked(QModelIndex);
|
void gridDoubleClicked(QModelIndex);
|
||||||
void interpretToggled(bool);
|
void interpretToggled(bool);
|
||||||
void overwriteToggled(bool);
|
void overwriteToggled(bool);
|
||||||
|
//void logReceivedFrame(CANConnection*, QVector<CANFrame>);
|
||||||
void tickGUIUpdate();
|
void tickGUIUpdate();
|
||||||
void toggleCapture();
|
void toggleCapture();
|
||||||
void normalizeTiming();
|
void normalizeTiming();
|
||||||
void updateFilterList();
|
void updateFilterList();
|
||||||
void filterListItemChanged(QListWidgetItem *item);
|
void filterListItemChanged(QListWidgetItem *item);
|
||||||
|
void busFilterListItemChanged(QListWidgetItem *item);
|
||||||
void filterSetAll();
|
void filterSetAll();
|
||||||
void filterClearAll();
|
void filterClearAll();
|
||||||
void headerClicked (int logicalIndex);
|
void headerClicked (int logicalIndex);
|
||||||
|
|||||||
+74
-6
@@ -79,6 +79,12 @@
|
|||||||
<height>50</height>
|
<height>50</height>
|
||||||
</size>
|
</size>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="font">
|
||||||
|
<font>
|
||||||
|
<weight>50</weight>
|
||||||
|
<bold>false</bold>
|
||||||
|
</font>
|
||||||
|
</property>
|
||||||
<property name="maxLength">
|
<property name="maxLength">
|
||||||
<number>8</number>
|
<number>8</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -92,6 +98,43 @@
|
|||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="lblContMsg">
|
<widget class="QLabel" name="lblContMsg">
|
||||||
|
<property name="palette">
|
||||||
|
<palette>
|
||||||
|
<active>
|
||||||
|
<colorrole role="WindowText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</active>
|
||||||
|
<inactive>
|
||||||
|
<colorrole role="WindowText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>255</red>
|
||||||
|
<green>0</green>
|
||||||
|
<blue>0</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</inactive>
|
||||||
|
<disabled>
|
||||||
|
<colorrole role="WindowText">
|
||||||
|
<brush brushstyle="SolidPattern">
|
||||||
|
<color alpha="255">
|
||||||
|
<red>120</red>
|
||||||
|
<green>120</green>
|
||||||
|
<blue>120</blue>
|
||||||
|
</color>
|
||||||
|
</brush>
|
||||||
|
</colorrole>
|
||||||
|
</disabled>
|
||||||
|
</palette>
|
||||||
|
</property>
|
||||||
<property name="font">
|
<property name="font">
|
||||||
<font>
|
<font>
|
||||||
<pointsize>11</pointsize>
|
<pointsize>11</pointsize>
|
||||||
@@ -230,20 +273,45 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="Line" name="line_2">
|
<widget class="QLabel" name="label_2">
|
||||||
<property name="orientation">
|
<property name="text">
|
||||||
<enum>Qt::Horizontal</enum>
|
<string>Bus Filtering:</string>
|
||||||
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item alignment="Qt::AlignHCenter">
|
<item>
|
||||||
|
<widget class="QListWidget" name="listBusFilters">
|
||||||
|
<property name="sizePolicy">
|
||||||
|
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
||||||
|
<horstretch>0</horstretch>
|
||||||
|
<verstretch>0</verstretch>
|
||||||
|
</sizepolicy>
|
||||||
|
</property>
|
||||||
|
<property name="maximumSize">
|
||||||
|
<size>
|
||||||
|
<width>175</width>
|
||||||
|
<height>40</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="flow">
|
||||||
|
<enum>QListView::LeftToRight</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
<widget class="QLabel" name="label_7">
|
<widget class="QLabel" name="label_7">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Frame Filtering:</string>
|
<string>Frame Filtering:</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="alignment">
|
||||||
|
<set>Qt::AlignCenter</set>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item alignment="Qt::AlignHCenter">
|
<item>
|
||||||
<widget class="QListWidget" name="listFilters">
|
<widget class="QListWidget" name="listFilters">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
<sizepolicy hsizetype="Fixed" vsizetype="Expanding">
|
||||||
@@ -293,7 +361,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>800</width>
|
<width>800</width>
|
||||||
<height>23</height>
|
<height>21</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menu_RE_Tools">
|
<widget class="QMenu" name="menu_RE_Tools">
|
||||||
|
|||||||
Reference in New Issue
Block a user