Don't scale waypoint info text size when zooming.

This commit is contained in:
Dan Albert 2020-10-19 22:26:31 -07:00
parent 5023e0d30f
commit 4125f6ec06

View File

@ -4,8 +4,16 @@ import datetime
import logging import logging
from typing import List, Optional, Tuple from typing import List, Optional, Tuple
from PySide2.QtCore import Qt, QPointF from PySide2.QtCore import QPointF, Qt
from PySide2.QtGui import QBrush, QColor, QPen, QPixmap, QWheelEvent, QPolygonF from PySide2.QtGui import (
QBrush,
QColor,
QFont,
QPen,
QPixmap,
QPolygonF,
QWheelEvent,
)
from PySide2.QtWidgets import ( from PySide2.QtWidgets import (
QFrame, QFrame,
QGraphicsItem, QGraphicsItem,
@ -46,6 +54,9 @@ class QLiberationMap(QGraphicsView):
self.game_model = game_model self.game_model = game_model
self.game: Optional[Game] = game_model.game self.game: Optional[Game] = game_model.game
self.waypoint_info_font = QFont()
self.waypoint_info_font.setPointSize(12)
self.flight_path_items: List[QGraphicsItem] = [] self.flight_path_items: List[QGraphicsItem] = []
# A tuple of (package index, flight index), or none. # A tuple of (package index, flight index), or none.
self.selected_flight: Optional[Tuple[int, int]] = None self.selected_flight: Optional[Tuple[int, int]] = None
@ -345,19 +356,19 @@ class QLiberationMap(QGraphicsView):
pen = QPen(QColor("black"), 0.3) pen = QPen(QColor("black"), 0.3)
brush = QColor("white") brush = QColor("white")
def draw_text(text: str, x: int, y: int) -> None: text = "\n".join([
item = scene.addSimpleText(text) f"{number} {waypoint.name}",
item.setBrush(brush) f"{altitude} ft {altitude_type}",
item.setPen(pen) tot,
item.moveBy(x, y) ])
item.setZValue(2)
self.flight_path_items.append(item)
draw_text(f"{number} {waypoint.name}", position[0] + 8, item = scene.addSimpleText(text, self.waypoint_info_font)
position[1] - 15) item.setFlag(QGraphicsItem.ItemIgnoresTransformations)
draw_text(f"{altitude} ft {altitude_type}", position[0] + 8, item.setBrush(brush)
position[1] - 5) item.setPen(pen)
draw_text(tot, position[0] + 8, position[1] + 5) item.moveBy(position[0] + 8, position[1])
item.setZValue(2)
self.flight_path_items.append(item)
def draw_flight_path(self, scene: QGraphicsScene, pos0: Tuple[int, int], def draw_flight_path(self, scene: QGraphicsScene, pos0: Tuple[int, int],
pos1: Tuple[int, int], player: bool, pos1: Tuple[int, int], player: bool,