summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerald Combs <gerald@wireshark.org>2015-06-29 22:20:53 -0500
committerGerald Combs <gerald@wireshark.org>2015-06-30 03:23:20 +0000
commit2325550c0d82288c2957212282fd5e1211c53ad8 (patch)
treeeb84a85598d74978eedc1cbaa32691b189b9cbce
parent63a78d45bce99d9c0147d8b9c0bd0f81badc3f5f (diff)
downloadwireshark-2325550c0d82288c2957212282fd5e1211c53ad8.tar.gz
Fix setting widget visibility when changing the layout.
Fixes a bug exposed by g5265bc3. Change-Id: Ia0775aa068f5e9e1eeb66384bac97fe57f3c957c Reviewed-on: https://code.wireshark.org/review/9231 Reviewed-by: Gerald Combs <gerald@wireshark.org>
-rw-r--r--ui/qt/main_window_slots.cpp25
1 files changed, 7 insertions, 18 deletions
diff --git a/ui/qt/main_window_slots.cpp b/ui/qt/main_window_slots.cpp
index c44745e54e..d2f960af6e 100644
--- a/ui/qt/main_window_slots.cpp
+++ b/ui/qt/main_window_slots.cpp
@@ -345,24 +345,13 @@ void MainWindow::layoutPanes()
parents[1]->addWidget(getLayoutWidget(prefs.gui_layout_content_2));
parents[2]->addWidget(getLayoutWidget(prefs.gui_layout_content_3));
- QList<QWidget *>split_widgets;
- for (int i = 0; i < master_split_.count(); i++) {
- split_widgets << master_split_.widget(i);
- }
- for (int i = 0; i < extra_split_.count(); i++) {
- split_widgets << master_split_.widget(i);
- }
- foreach (QWidget *widget, split_widgets) {
- bool show = true;
- if (widget == packet_list_ && !recent.packet_list_show) {
- show = false;
- } else if (widget == proto_tree_ && !recent.tree_view_show) {
- show = false;
- } else if (widget == byte_view_tab_ && !recent.byte_view_show) {
- show = false;
- }
- widget->setVisible(show);
- }
+ const QList<QWidget *> ms_children = master_split_.findChildren<QWidget *>();
+
+ extra_split_.setVisible(ms_children.contains(&extra_split_));
+ packet_list_->setVisible(ms_children.contains(packet_list_) && recent.packet_list_show);
+ proto_tree_->setVisible(ms_children.contains(proto_tree_) && recent.tree_view_show);
+ byte_view_tab_->setVisible(ms_children.contains(byte_view_tab_) && recent.byte_view_show);
+
packet_list_->thaw();
cf_select_packet(capture_file_.capFile(), current_row); // XXX Doesn't work for row 0?
cur_layout_ = new_layout;