ui: set global map transition duration (#29061)

* this works!

* revert properties

* more clean up

* more

* more

* add comment

* final
old-commit-hash: e4dc86f44d
beeps
Shane Smiskol 2 years ago committed by GitHub
parent d50f057f02
commit a069514c36
  1. 13
      selfdrive/ui/qt/maps/map.cc

@ -117,11 +117,6 @@ void MapWindow::initLayers() {
pin["type"] = "symbol"; pin["type"] = "symbol";
pin["source"] = "pinSource"; pin["source"] = "pinSource";
m_map->addLayer(pin); 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-pitch-alignment", "viewport");
m_map->setLayoutProperty("pinLayer", "icon-image", "default_marker"); m_map->setLayoutProperty("pinLayer", "icon-image", "default_marker");
m_map->setLayoutProperty("pinLayer", "icon-ignore-placement", true); m_map->setLayoutProperty("pinLayer", "icon-ignore-placement", true);
@ -305,6 +300,10 @@ void MapWindow::initializeGL() {
m_map->setStyleUrl("mapbox://styles/commaai/clj7g5vrp007b01qzb5ro0i4j"); m_map->setStyleUrl("mapbox://styles/commaai/clj7g5vrp007b01qzb5ro0i4j");
QObject::connect(m_map.data(), &QMapboxGL::mapChanged, [=](QMapboxGL::MapChange change) { 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) { if (change == QMapboxGL::MapChange::MapChangeDidFinishLoadingMap) {
loaded_once = true; loaded_once = true;
} }
@ -411,7 +410,7 @@ void MapWindow::offroadTransition(bool offroad) {
} }
void MapWindow::updateDestinationMarker() { void MapWindow::updateDestinationMarker() {
m_map->setPaintProperty("pinLayer", "icon-opacity", 0); m_map->setPaintProperty("pinLayer", "visibility", "none");
auto nav_dest = coordinate_from_param("NavDestination"); auto nav_dest = coordinate_from_param("NavDestination");
if (nav_dest.has_value()) { if (nav_dest.has_value()) {
@ -421,6 +420,6 @@ void MapWindow::updateDestinationMarker() {
pinSource["type"] = "geojson"; pinSource["type"] = "geojson";
pinSource["data"] = QVariant::fromValue<QMapbox::Feature>(feature); pinSource["data"] = QVariant::fromValue<QMapbox::Feature>(feature);
m_map->updateSource("pinSource", pinSource); m_map->updateSource("pinSource", pinSource);
m_map->setPaintProperty("pinLayer", "icon-opacity", 1); m_map->setPaintProperty("pinLayer", "visibility", "visible");
} }
} }

Loading…
Cancel
Save