diff options
author | Gerald Combs <gerald@wireshark.org> | 2015-06-29 22:20:53 -0500 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2015-06-30 03:23:20 +0000 |
commit | 2325550c0d82288c2957212282fd5e1211c53ad8 (patch) | |
tree | eb84a85598d74978eedc1cbaa32691b189b9cbce | |
parent | 63a78d45bce99d9c0147d8b9c0bd0f81badc3f5f (diff) | |
download | wireshark-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.cpp | 25 |
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; |