Skip to content

Commit abfc86a

Browse files
committed
Add config parameter to make all data columns equal size in Sniffer
1 parent 225e248 commit abfc86a

File tree

4 files changed

+73
-20
lines changed

4 files changed

+73
-20
lines changed

mainsettingsdialog.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
9292
ui->cbFilterLabeling->setChecked(settings.value("Main/FilterLabeling", true).toBool());
9393
ui->cbIgnoreDBCColors->setChecked(settings.value("Main/IgnoreDBCColors", false).toBool());
9494

95+
ui->cbEqualSniffer->setChecked(settings.value("Main/EqualDataSniff", false).toBool());
96+
9597
int maxFramesDefault;
9698
if (QSysInfo::WordSize > 32)
9799
{
@@ -132,6 +134,7 @@ MainSettingsDialog::MainSettingsDialog(QWidget *parent) :
132134
connect(ui->lineRemotePassword, SIGNAL(editingFinished()), this, SLOT(updateSettings()));
133135
connect(ui->cbLoadConnections, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
134136
connect(ui->cbFilterLabeling, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
137+
connect(ui->cbEqualSniffer, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
135138
connect(ui->cbHexGraphFlow, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
136139
connect(ui->cbHexGraphInfo, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
137140
connect(ui->cbIgnoreDBCColors, SIGNAL(toggled(bool)), this, SLOT(updateSettings()));
@@ -196,6 +199,7 @@ void MainSettingsDialog::updateSettings()
196199
settings.setValue("Playback/SendingBus", ui->comboSendingBus->currentIndex());
197200
settings.setValue("Main/UseFiltered", ui->cbUseFiltered->isChecked());
198201
settings.setValue("Main/UseOpenGL", ui->cbUseOpenGL->isChecked());
202+
settings.setValue("Main/EqualDataSniff", ui->cbEqualSniffer->isChecked());
199203
settings.setValue("Main/TimeFormat", ui->lineClockFormat->text());
200204
settings.setValue("Main/FontSize", ui->spinFontSize->value());
201205
settings.setValue("Remote/Host", ui->lineRemoteHost->text());

re/sniffer/snifferwindow.cpp

+45-16
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ SnifferWindow::SnifferWindow(QWidget *parent) :
1515
mGUITimer(this),
1616
mFilter(false)
1717
{
18+
19+
inhibitSectionResizeEvent = false;
20+
1821
ui->setupUi(this);
1922
setWindowFlags(Qt::Window);
2023
ui->treeView->setModel(&mModel);
@@ -31,6 +34,9 @@ SnifferWindow::SnifferWindow(QWidget *parent) :
3134
ui->treeView->header()->setDefaultAlignment(Qt::AlignCenter);
3235
//ui->treeView->setItemDelegate(new SnifferDelegate());
3336

37+
QHeaderView *header = ui->treeView->header();
38+
connect(header, &QHeaderView::sectionResized, this, &SnifferWindow::sectionResized);
39+
3440
/* activate sorting */
3541
ui->listWidget->setSortingEnabled(true);
3642

@@ -84,14 +90,22 @@ void SnifferWindow::readSettings()
8490
ui->treeView->setColumnWidth(0, settings.value("Sniffer/DeltaColumn", 110).toUInt());
8591
ui->treeView->setColumnWidth(1, settings.value("Sniffer/FrequencyColumn", 110).toUInt());
8692
ui->treeView->setColumnWidth(2, settings.value("Sniffer/IDColumn", 70).toUInt());
87-
ui->treeView->setColumnWidth(3, settings.value("Sniffer/Data0Column", 92).toUInt());
88-
ui->treeView->setColumnWidth(4, settings.value("Sniffer/Data1Column", 92).toUInt());
89-
ui->treeView->setColumnWidth(5, settings.value("Sniffer/Data2Column", 92).toUInt());
90-
ui->treeView->setColumnWidth(6, settings.value("Sniffer/Data3Column", 92).toUInt());
91-
ui->treeView->setColumnWidth(7, settings.value("Sniffer/Data4Column", 92).toUInt());
92-
ui->treeView->setColumnWidth(8, settings.value("Sniffer/Data5Column", 92).toUInt());
93-
ui->treeView->setColumnWidth(9, settings.value("Sniffer/Data6Column", 92).toUInt());
94-
ui->treeView->setColumnWidth(10, settings.value("Sniffer/Data7Column", 92).toUInt());
93+
if (!settings.value("Main/EqualDataSniff", false).toBool())
94+
{
95+
for (int i = 0; i < MAX_BYTES; i++)
96+
{
97+
QString key = "Sniffer/Data" + QString::number(i).trimmed() + "Column";
98+
ui->treeView->setColumnWidth(3+i, settings.value(key, 50).toUInt());
99+
}
100+
}
101+
else //set all columns equal to column Data0 size
102+
{
103+
int colSize = settings.value("Sniffer/Data0Column", 50).toUInt();
104+
for (int i = 0; i < MAX_BYTES; i++)
105+
{
106+
ui->treeView->setColumnWidth(3+i, colSize);
107+
}
108+
}
95109
}
96110
}
97111

@@ -106,14 +120,12 @@ void SnifferWindow::writeSettings()
106120
settings.setValue("Sniffer/DeltaColumn", ui->treeView->columnWidth(0));
107121
settings.setValue("Sniffer/FrequencyColumn", ui->treeView->columnWidth(1));
108122
settings.setValue("Sniffer/IDColumn", ui->treeView->columnWidth(2));
109-
settings.setValue("Sniffer/Data0Column", ui->treeView->columnWidth(3));
110-
settings.setValue("Sniffer/Data1Column", ui->treeView->columnWidth(4));
111-
settings.setValue("Sniffer/Data2Column", ui->treeView->columnWidth(5));
112-
settings.setValue("Sniffer/Data3Column", ui->treeView->columnWidth(6));
113-
settings.setValue("Sniffer/Data4Column", ui->treeView->columnWidth(7));
114-
settings.setValue("Sniffer/Data5Column", ui->treeView->columnWidth(8));
115-
settings.setValue("Sniffer/Data6Column", ui->treeView->columnWidth(9));
116-
settings.setValue("Sniffer/Data7Column", ui->treeView->columnWidth(10));
123+
124+
for (int i = 0; i < MAX_BYTES; i++)
125+
{
126+
QString key = "Sniffer/Data" + QString::number(i).trimmed() + "Column";
127+
settings.setValue(key, ui->treeView->columnWidth(i+3));
128+
}
117129
}
118130
}
119131

@@ -170,6 +182,23 @@ void SnifferWindow::update()
170182
mModel.refresh();
171183
}
172184

185+
void SnifferWindow::sectionResized(int idx, int oldSize, int newSize)
186+
{
187+
QSettings settings;
188+
189+
//nothing to do if we're not enforcing equal column sizes
190+
if (!settings.value("Main/EqualDataSniff", false).toBool()) return;
191+
if (inhibitSectionResizeEvent) return;
192+
193+
//we're enforcing equal sizes so change the size of all columns to match.
194+
inhibitSectionResizeEvent = true;
195+
for (int i = 0; i < MAX_BYTES; i++)
196+
{
197+
ui->treeView->setColumnWidth(3+i, newSize);
198+
}
199+
inhibitSectionResizeEvent = false;
200+
}
201+
173202
void SnifferWindow::notchTick()
174203
{
175204
notchPingPong = !notchPingPong;

re/sniffer/snifferwindow.h

+4
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,9 @@ public slots:
102102
void fltNone();
103103
void itemChanged(QListWidgetItem*);
104104

105+
private slots:
106+
void sectionResized(int idx, int oldSize, int newSize);
107+
105108
private:
106109
void filter(bool pFilter);
107110
bool eventFilter(QObject *obj, QEvent *event);
@@ -117,6 +120,7 @@ public slots:
117120
SnifferDelegate *sniffDel;
118121
QAbstractItemDelegate *defaultDel;
119122
bool notchPingPong;
123+
bool inhibitSectionResizeEvent;
120124
};
121125

122126
#endif // SNIFFER_H

ui/mainsettingsdialog.ui

+20-4
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@
176176
<item>
177177
<spacer name="horizontalSpacer">
178178
<property name="orientation">
179-
<enum>Qt::Horizontal</enum>
179+
<enum>Qt::Orientation::Horizontal</enum>
180180
</property>
181181
<property name="sizeHint" stdset="0">
182182
<size>
@@ -288,7 +288,7 @@
288288
<item>
289289
<spacer name="verticalSpacer_2">
290290
<property name="orientation">
291-
<enum>Qt::Vertical</enum>
291+
<enum>Qt::Orientation::Vertical</enum>
292292
</property>
293293
<property name="sizeHint" stdset="0">
294294
<size>
@@ -399,6 +399,22 @@
399399
</layout>
400400
</widget>
401401
</item>
402+
<item>
403+
<widget class="QGroupBox" name="groupBox_10">
404+
<property name="title">
405+
<string>Data Columns</string>
406+
</property>
407+
<layout class="QVBoxLayout" name="verticalLayout_11">
408+
<item>
409+
<widget class="QCheckBox" name="cbEqualSniffer">
410+
<property name="text">
411+
<string>Equal size data columns in Sniffer Window</string>
412+
</property>
413+
</widget>
414+
</item>
415+
</layout>
416+
</widget>
417+
</item>
402418
<item>
403419
<widget class="QGroupBox" name="groupBox_8">
404420
<property name="enabled">
@@ -448,7 +464,7 @@
448464
<item row="3" column="1">
449465
<widget class="QLineEdit" name="lineRemotePassword">
450466
<property name="echoMode">
451-
<enum>QLineEdit::Password</enum>
467+
<enum>QLineEdit::EchoMode::Password</enum>
452468
</property>
453469
</widget>
454470
</item>
@@ -468,7 +484,7 @@
468484
<item>
469485
<spacer name="verticalSpacer">
470486
<property name="orientation">
471-
<enum>Qt::Vertical</enum>
487+
<enum>Qt::Orientation::Vertical</enum>
472488
</property>
473489
<property name="sizeHint" stdset="0">
474490
<size>

0 commit comments

Comments
 (0)