diff --git a/gui/qt/network_dialog.py b/gui/qt/network_dialog.py index 5d6f13770..18d9b4ff9 100644 --- a/gui/qt/network_dialog.py +++ b/gui/qt/network_dialog.py @@ -208,18 +208,26 @@ class NetworkChoiceLayout(object): grid.addWidget(QLabel(height_str), 1, 1) grid.addWidget(HelpButton(msg), 1, 4) else: - checkpoint = network.get_checkpoint() self.cph_label = QLabel(_('Chain split detected')) grid.addWidget(self.cph_label, 4, 0) - chains_list_widget = QTreeWidget() - chains_list_widget.setHeaderLabels( [ _('Nodes'), _('Blocks'), _('Checkpoint'), _('Hash') ] ) - chains_list_widget.setMaximumHeight(150) - grid.addWidget(chains_list_widget, 5, 0, 1, 5) + + chains_list_widget = QTreeWidget() + chains_list_widget.setHeaderLabels( [ _('Height'), _('Server') ] ) + grid.addWidget(chains_list_widget, 5, 0, 1, 5) + if n_chains> 1: + checkpoint = network.get_checkpoint() for b in network.blockchains.values(): _hash = b.get_hash(checkpoint) - height = b.height() - count = sum([i.blockchain == b for i in network.interfaces.values()]) - chains_list_widget.addTopLevelItem(QTreeWidgetItem( [ '%d'%count, '%d'%height, '%d'%checkpoint, _hash ] )) + x = QTreeWidgetItem([ '%d'%checkpoint, _hash ]) + for i in network.interfaces.values(): + if i.blockchain == b: + x.addChild(QTreeWidgetItem(['%d'%i.tip, i.host])) + chains_list_widget.addTopLevelItem(x) + x.setExpanded(True) + else: + for i in network.interfaces.values(): + chains_list_widget.addTopLevelItem(QTreeWidgetItem(['%d'%i.tip, i.host])) + chains_list_widget.header().setResizeMode(0, QHeaderView.ResizeToContents) grid.setRowStretch(7, 1) vbox = QVBoxLayout() diff --git a/lib/network.py b/lib/network.py index 8c556b31b..2254ed2f9 100644 --- a/lib/network.py +++ b/lib/network.py @@ -719,6 +719,7 @@ class Network(util.DaemonThread): self.add_recent_server(server) interface = Interface(server, socket) interface.blockchain = None + interface.tip = 0 interface.mode = 'checkpoint' self.interfaces[server] = interface self.request_header(interface, self.get_checkpoint())