mirror of
				https://github.com/f4exb/sdrangel.git
				synced 2025-11-04 05:30:32 -05:00 
			
		
		
		
	Restore position of 2D map after changing settings. #2458
This commit is contained in:
		
							parent
							
								
									e287ac60d5
								
							
						
					
					
						commit
						65e6f89214
					
				@ -1745,22 +1745,36 @@ void MapGUI::applyMap2DSettings(bool reloadMap)
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            qCritical() << "MapGUI::applyMap2DSettings - Failed to invoke createMap";
 | 
					            qCritical() << "MapGUI::applyMap2DSettings - Failed to invoke createMap";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        supportedMapsChanged();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        QObject *newMap = retVal.value<QObject *>();
 | 
					        QObject *newMap = retVal.value<QObject *>();
 | 
				
			||||||
        // Restore position of map
 | 
					 | 
				
			||||||
        if (newMap != nullptr)
 | 
					        if (newMap != nullptr)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            if (coords.isValid())
 | 
					            if (coords.isValid())
 | 
				
			||||||
            {
 | 
					            {
 | 
				
			||||||
                newMap->setProperty("zoomLevel", QVariant::fromValue(zoom));
 | 
					                // Restore position of map
 | 
				
			||||||
                newMap->setProperty("center", QVariant::fromValue(coords));
 | 
					                // With Qt5, we could set the properties immediately, but with Qt6, it seems we need a delay
 | 
				
			||||||
 | 
					                // otherwise they are overwritten. Is there a signal we should use instead?
 | 
				
			||||||
 | 
					                //newMap->setProperty("zoomLevel", QVariant::fromValue(zoom));
 | 
				
			||||||
 | 
					                //newMap->setProperty("center", QVariant::fromValue(coords));
 | 
				
			||||||
 | 
					                QTimer::singleShot(200, [this, zoom, coords]() {
 | 
				
			||||||
 | 
					                    QQuickItem *root = ui->map->rootObject();
 | 
				
			||||||
 | 
					                    if (root)
 | 
				
			||||||
 | 
					                    {
 | 
				
			||||||
 | 
					                        QObject *mapObject = root->findChild<QObject*>("map");
 | 
				
			||||||
 | 
					                        if (mapObject) {
 | 
				
			||||||
 | 
					                            mapObject->setProperty("zoomLevel", QVariant::fromValue(zoom));
 | 
				
			||||||
 | 
					                            mapObject->setProperty("center", QVariant::fromValue(coords));
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                });
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            qCritical() << "MapGUI::applyMap2DSettings - createMap returned a nullptr";
 | 
					            qCritical() << "MapGUI::applyMap2DSettings - createMap returned a nullptr";
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					 | 
				
			||||||
        supportedMapsChanged();
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1824,6 +1838,7 @@ void MapGUI::orientationChanged(Qt::ScreenOrientation orientation)
 | 
				
			|||||||
void MapGUI::displayToolbar()
 | 
					void MapGUI::displayToolbar()
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    ui->mapTypes->setVisible(m_settings.m_map2DEnabled);
 | 
					    ui->mapTypes->setVisible(m_settings.m_map2DEnabled);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Replace buttons with menu when window gets narrow
 | 
					    // Replace buttons with menu when window gets narrow
 | 
				
			||||||
    bool narrow = this->screen()->availableGeometry().width() < 400;
 | 
					    bool narrow = this->screen()->availableGeometry().width() < 400;
 | 
				
			||||||
    ui->layersMenu->setVisible(narrow);
 | 
					    ui->layersMenu->setVisible(narrow);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user