@@ -15,6 +15,9 @@ SnifferWindow::SnifferWindow(QWidget *parent) :
15
15
mGUITimer(this ),
16
16
mFilter(false )
17
17
{
18
+
19
+ inhibitSectionResizeEvent = false ;
20
+
18
21
ui->setupUi (this );
19
22
setWindowFlags (Qt::Window);
20
23
ui->treeView ->setModel (&mModel );
@@ -31,6 +34,9 @@ SnifferWindow::SnifferWindow(QWidget *parent) :
31
34
ui->treeView ->header ()->setDefaultAlignment (Qt::AlignCenter);
32
35
// ui->treeView->setItemDelegate(new SnifferDelegate());
33
36
37
+ QHeaderView *header = ui->treeView ->header ();
38
+ connect (header, &QHeaderView::sectionResized, this , &SnifferWindow::sectionResized);
39
+
34
40
/* activate sorting */
35
41
ui->listWidget ->setSortingEnabled (true );
36
42
@@ -84,14 +90,22 @@ void SnifferWindow::readSettings()
84
90
ui->treeView ->setColumnWidth (0 , settings.value (" Sniffer/DeltaColumn" , 110 ).toUInt ());
85
91
ui->treeView ->setColumnWidth (1 , settings.value (" Sniffer/FrequencyColumn" , 110 ).toUInt ());
86
92
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
+ }
95
109
}
96
110
}
97
111
@@ -106,14 +120,12 @@ void SnifferWindow::writeSettings()
106
120
settings.setValue (" Sniffer/DeltaColumn" , ui->treeView ->columnWidth (0 ));
107
121
settings.setValue (" Sniffer/FrequencyColumn" , ui->treeView ->columnWidth (1 ));
108
122
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
+ }
117
129
}
118
130
}
119
131
@@ -170,6 +182,23 @@ void SnifferWindow::update()
170
182
mModel .refresh ();
171
183
}
172
184
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
+
173
202
void SnifferWindow::notchTick ()
174
203
{
175
204
notchPingPong = !notchPingPong;
0 commit comments