diff --git a/birdvisu/maps_new/providers.py b/birdvisu/maps_new/providers.py index 59f15a6..4a55e65 100644 --- a/birdvisu/maps_new/providers.py +++ b/birdvisu/maps_new/providers.py @@ -79,7 +79,8 @@ class OspfDataTopologyProvider(TopologyProvider): net_id = re.match(r'((network|stubnet|external) [^ ]+)', n).group(1) if net_id in self.network_renames: net_id = self.network_renames[net_id] - metric = int(re.search(r'metric ([0-9]+)', n).group(1)) + # FIXME: Hacking metric and metric2 together is a bad idea. + metric = int(re.search(r'metric2? ([0-9]+)', n).group(1)) ident = (r.ident, net_id) # I really hope that one router has at most one link to each network (incl. external) assert ident not in self.topology.links diff --git a/birdvisu/visualisation/annotators.py b/birdvisu/visualisation/annotators.py index 8d66872..fcdd098 100644 --- a/birdvisu/visualisation/annotators.py +++ b/birdvisu/visualisation/annotators.py @@ -140,9 +140,14 @@ def create_qgritems(at): x = pos.x y = pos.y - shape = QtWidgets.QGraphicsRectItem(x, y, size, size) + shape = QtWidgets.QGraphicsRectItem(-size/2, -size/2, size, size) shape.setBrush(brush) + shape.setPos(x, y) label = QtWidgets.QGraphicsSimpleTextItem(rk, parent=shape) + label.setY(size*0.8) + # Centering: + text_width = label.boundingRect().width() + label.setX(-text_width/2) at.router_annotations[rk].append(shape) for nk, n in topo.networks.items(): @@ -160,9 +165,14 @@ def create_qgritems(at): x = pos.x y = pos.y - shape = QtWidgets.QGraphicsRectItem(x, y, size, size) + shape = QtWidgets.QGraphicsRectItem(-size/2, -size/2, size, size) shape.setBrush(brush) + shape.setPos(x, y) label = QtWidgets.QGraphicsSimpleTextItem(nk, parent=shape) + label.setY(size*0.8) + # Centering: + text_width = label.boundingRect().width() + label.setX(-text_width/2) at.network_annotations[nk].append(shape) for lk, l in topo.links.items():