aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStig Bjørlykke <stig@bjorlykke.org>2015-08-14 07:54:51 +0200
committerStig Bjørlykke <stig@bjorlykke.org>2015-08-14 06:08:40 +0000
commit842622594a1ac05adb2b5e6fbca69ec8b327b1dc (patch)
tree7b16215d2b3794dcb3f8309559e1a23b09fc5336
parent6cc1c8d98b518b0b4fa86ca4287bacf46a998f61 (diff)
Qt: Avoid redissect twice when changing fields
Changing fields in http, imf or ldap used to trigger redissect twice because of UAT_AFFECTS_FIELDS and UAT_AFFECTS_DISSECTION. Also changed from redrawVisiblePackets() to columnsChanged() because fields in a custom column may have changed. This also fixes reloading Lua plugins with Lua fields in custom columns. Change-Id: I805a765690decbe7434dbf1c33ebd1113e23d16d Reviewed-on: https://code.wireshark.org/review/10025 Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
-rw-r--r--ui/qt/main_window_slots.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp
index 25316dfdcb..da38dc21f9 100644
--- a/ui/qt/main_window_slots.cpp
+++ b/ui/qt/main_window_slots.cpp
@@ -1300,6 +1300,8 @@ void MainWindow::redissectPackets()
if (capture_file_.capFile())
cf_redissect_packets(capture_file_.capFile());
main_ui_->statusBar->expertUpdate();
+
+ proto_free_deregistered_fields();
}
void MainWindow::fieldsChanged()
@@ -1322,14 +1324,9 @@ void MainWindow::fieldsChanged()
dfilter_free(dfp);
}
- proto_free_deregistered_fields();
-
if (have_custom_cols(&CaptureFile::globalCapFile()->cinfo)) {
- /* Recreate packet list according to new/changed/deleted fields */
- packet_list_->redrawVisiblePackets();
- } else if (CaptureFile::globalCapFile()->state != FILE_CLOSED) {
- /* Redissect packets if we have any */
- redissectPackets();
+ // Recreate packet list according to new/changed/deleted fields
+ packet_list_->columnsChanged();
}
}
@@ -2491,6 +2488,11 @@ void MainWindow::on_actionAnalyzeReloadLuaPlugins_triggered()
fieldsChanged();
+ if (CaptureFile::globalCapFile()->state != FILE_CLOSED) {
+ // Redissect packets if we have any
+ redissectPackets();
+ }
+
wsApp->setReloadingLua(false);
SimpleDialog::displayQueuedMessages();
}