void CatalogComponent::update( KSNumbers * ) { if ( selected() ) { KStarsData *data = KStarsData::Instance(); foreach ( SkyObject *obj, m_ObjectList ) { DeepSkyObject *dso = dynamic_cast< DeepSkyObject * >( obj ); StarObject *so = dynamic_cast< StarObject *>( obj ); Q_ASSERT( dso || so ); // We either have stars, or deep sky objects if( dso ) { // Update the deep sky object if need be if ( dso->updateID != data->updateID() ) { dso->updateID = data->updateID(); if ( dso->updateNumID != data->updateNumID() ) { dso->updateCoords( data->updateNum() ); } dso->EquatorialToHorizontal( data->lst(), data->geo()->lat() ); } } else { // Do exactly the same thing for stars if ( so->updateID != data->updateID() ) { so->updateID = data->updateID(); if ( so->updateNumID != data->updateNumID() ) { so->updateCoords( data->updateNum() ); } so->EquatorialToHorizontal( data->lst(), data->geo()->lat() ); } } } this->updateID = data->updateID(); }