From a069514c3600196b4ae6497a4af829b857130f47 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 20 Jul 2023 16:11:23 -0700 Subject: [PATCH] ui: set global map transition duration (#29061) * this works! * revert properties * more clean up * more * more * add comment * final old-commit-hash: e4dc86f44d6efc6153f8ace852a63802e4a65ca4 --- selfdrive/ui/qt/maps/map.cc | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/selfdrive/ui/qt/maps/map.cc b/selfdrive/ui/qt/maps/map.cc index ba8aab3ca9..2a257ab98f 100644 --- a/selfdrive/ui/qt/maps/map.cc +++ b/selfdrive/ui/qt/maps/map.cc @@ -117,11 +117,6 @@ void MapWindow::initLayers() { pin["type"] = "symbol"; pin["source"] = "pinSource"; m_map->addLayer(pin); - - // FIXME: solve, workaround to remove animation on visibility property - QVariantMap transition; - transition["duration"] = 0; // ms - m_map->setPaintProperty("pinLayer", "icon-opacity-transition", transition); m_map->setLayoutProperty("pinLayer", "icon-pitch-alignment", "viewport"); m_map->setLayoutProperty("pinLayer", "icon-image", "default_marker"); m_map->setLayoutProperty("pinLayer", "icon-ignore-placement", true); @@ -305,6 +300,10 @@ void MapWindow::initializeGL() { m_map->setStyleUrl("mapbox://styles/commaai/clj7g5vrp007b01qzb5ro0i4j"); QObject::connect(m_map.data(), &QMapboxGL::mapChanged, [=](QMapboxGL::MapChange change) { + // set global animation duration to 0 ms so visibility changes are instant + if (change == QMapboxGL::MapChange::MapChangeDidFinishLoadingStyle) { + m_map->setTransitionOptions(0, 0); + } if (change == QMapboxGL::MapChange::MapChangeDidFinishLoadingMap) { loaded_once = true; } @@ -411,7 +410,7 @@ void MapWindow::offroadTransition(bool offroad) { } void MapWindow::updateDestinationMarker() { - m_map->setPaintProperty("pinLayer", "icon-opacity", 0); + m_map->setPaintProperty("pinLayer", "visibility", "none"); auto nav_dest = coordinate_from_param("NavDestination"); if (nav_dest.has_value()) { @@ -421,6 +420,6 @@ void MapWindow::updateDestinationMarker() { pinSource["type"] = "geojson"; pinSource["data"] = QVariant::fromValue(feature); m_map->updateSource("pinSource", pinSource); - m_map->setPaintProperty("pinLayer", "icon-opacity", 1); + m_map->setPaintProperty("pinLayer", "visibility", "visible"); } }