void FlyToEditWidget::save() { if (flyToElement()->view() != nullptr && m_coord != GeoDataCoordinates()) { GeoDataCoordinates coords = m_coord; if (auto camera = geodata_cast<GeoDataCamera>(flyToElement()->view())) { camera->setCoordinates( coords ); } else if (auto lookAt = geodata_cast<GeoDataLookAt>(flyToElement()->view())) { lookAt->setCoordinates( coords ); } else{ lookAt = new GeoDataLookAt; lookAt->setCoordinates( coords ); flyToElement()->setView( lookAt ); } } flyToElement()->setDuration(m_durationSpin->value()); if (m_modeCombo->currentIndex() == 0) { flyToElement()->setFlyToMode( GeoDataFlyTo::Smooth ); } else if (m_modeCombo->currentIndex() == 1) { flyToElement()->setFlyToMode( GeoDataFlyTo::Bounce ); } emit editingDone(m_index); }
void FlyToEditWidget::save() { if (flyToElement()->view() != 0 && m_coord != GeoDataCoordinates()) { GeoDataCoordinates coords = m_coord; if ( flyToElement()->view()->nodeType() == GeoDataTypes::GeoDataCameraType ) { GeoDataCamera* camera = dynamic_cast<GeoDataCamera*>( flyToElement()->view() ); camera->setCoordinates( coords ); } else if ( flyToElement()->view()->nodeType() == GeoDataTypes::GeoDataLookAtType ) { GeoDataLookAt* lookAt = dynamic_cast<GeoDataLookAt*>( flyToElement()->view() ); lookAt->setCoordinates( coords ); } else{ GeoDataLookAt* lookAt = new GeoDataLookAt; lookAt->setCoordinates( coords ); flyToElement()->setView( lookAt ); } } flyToElement()->setDuration(m_waitSpin->value()); emit editingDone(m_index); }