void WIView::onSlewButtonClicked() { ///Slew map to selected sky-object SkyObject* so = m_CurSoItem->getSkyObject(); KStars* kstars = KStars::Instance(); if (so != 0) { kstars->map()->setFocusPoint(so); kstars->map()->setFocusObject(so); kstars->map()->setDestination(*kstars->map()->focusPoint()); } }
void KSPopupMenu::initFlagActions( SkyObject *obj ) { KStars *ks = KStars::Instance(); QList<int> flags = ks->data()->skyComposite()->flags()->getFlagsNearPix( obj, 5 ); if ( flags.size() == 0 ) { // There is no flag around clicked SkyObject addAction( i18n( "Add flag..."), ks->map(), SLOT( slotAddFlag() ) ); } else if( flags.size() == 1) { // There is only one flag around clicked SkyObject addAction ( i18n ("Edit flag"), this, SLOT( slotEditFlag() ) ); addAction ( i18n ("Delete flag"), this, SLOT( slotDeleteFlag() ) ); m_CurrentFlagIdx = flags.first(); } else { // There are more than one flags around clicked SkyObject - we need to create submenus QMenu *editMenu = new QMenu ( i18n ( "Edit flag..."), KStars::Instance() ); QMenu *deleteMenu = new QMenu ( i18n ( "Delete flag..."), KStars::Instance() ); connect( editMenu, SIGNAL( triggered(QAction*) ), this, SLOT( slotEditFlag(QAction*) ) ); connect( deleteMenu, SIGNAL( triggered(QAction*) ), this, SLOT( slotDeleteFlag(QAction*) ) ); if ( m_EditActionMapping ) { delete m_EditActionMapping; } if ( m_DeleteActionMapping ) { delete m_DeleteActionMapping; } m_EditActionMapping = new QHash<QAction*, int>; m_DeleteActionMapping = new QHash<QAction*, int>; foreach ( int idx, flags ) { QIcon flagIcon( QPixmap::fromImage( ks->data()->skyComposite()->flags()->image( idx ) ) ); QString flagLabel = ks->data()->skyComposite()->flags()->label( idx ); if ( flagLabel.size() > 35 ) { flagLabel = flagLabel.left( 35 ); flagLabel.append( "..." ); } QAction *editAction = new QAction( flagIcon, flagLabel, ks ); editAction->setIconVisibleInMenu( true ); editMenu->addAction( editAction ); m_EditActionMapping->insert( editAction, idx ); QAction *deleteAction = new QAction( flagIcon, flagLabel, ks ); deleteAction->setIconVisibleInMenu( true ); deleteMenu->addAction( deleteAction ); m_DeleteActionMapping->insert( deleteAction, idx); } addMenu( editMenu ); addMenu( deleteMenu ); }
void KSPopupMenu::createEmptyMenu( SkyPoint *nullObj ) { KStars* ks = KStars::Instance(); SkyObject o( SkyObject::TYPE_UNKNOWN, nullObj->ra(), nullObj->dec() ); o.setAlt( nullObj->alt() ); o.setAz( nullObj->az() ); initPopupMenu( &o, i18n( "Empty sky" ), QString(), QString(), false, false ); addAction( i18nc( "Sloan Digital Sky Survey", "Show SDSS Image" ), ks->map(), SLOT( slotSDSS() ) ); addAction( i18nc( "Digitized Sky Survey", "Show DSS Image" ), ks->map(), SLOT( slotDSS() ) ); }
void KSPopupMenu::createStarMenu( StarObject *star ) { KStars* ks = KStars::Instance(); //Add name, rise/set time, center/track, and detail-window items QString name; if( star->name() != "star" ) { name = star->translatedLongName(); } else { if( star->getHDIndex() ) { name = QString( "HD%1" ).arg( QString::number( star->getHDIndex() ) ); } else { // FIXME: this should be some catalog name too name = "Star"; } } initPopupMenu( star, name, i18n( "star" ), i18n("%1<sup>m</sup>, %2", star->mag(), star->sptype()) ); //If the star is named, add custom items to popup menu based on object's ImageList and InfoList if ( star->name() != "star" ) { addLinksToMenu( star ); } else { addAction( i18nc( "Sloan Digital Sky Survey", "Show SDSS Image" ), ks->map(), SLOT( slotSDSS() ) ); addAction( i18nc( "Digitized Sky Survey", "Show DSS Image" ), ks->map(), SLOT( slotDSS() ) ); } }
void ConjunctionsTool::slotGoto() { int index = m_SortModel->mapToSource( OutputList->currentIndex() ).row(); // Get the number of the line long double jd = outputJDList.value( index ); KStarsDateTime dt; KStars *ks = KStars::Instance(); KStarsData *data = KStarsData::Instance(); SkyMap *map = ks->map(); // Show conjunction data->setLocation( *geoPlace ); dt.setDJD( jd ); data->changeDateTime( dt ); map->setClickedObject( data->skyComposite()->findByName( m_Model->data( m_Model->index( index, 2 ) ).toString() ) ); map->setClickedPoint( map->clickedObject() ); map->slotCenter(); }
void KSPopupMenu::createSatelliteMenu( Satellite *satellite ) { KStars* ks = KStars::Instance(); QString velocity, altitude, range; velocity.setNum( satellite->velocity() ); altitude.setNum( satellite->altitude() ); range.setNum( satellite->range() ); clear(); addFancyLabel( satellite->name() ); addFancyLabel( satellite->id() ); addFancyLabel( i18n( "satellite" ) ); addFancyLabel( KStarsData::Instance()->skyComposite()->getConstellationBoundary()->constellationName( satellite ) ); addSeparator(); addFancyLabel( i18n( "Velocity: %1 km/s", velocity ), -2 ); addFancyLabel( i18n( "Altitude: %1 km", altitude ), -2 ); addFancyLabel( i18n( "Range: %1 km", range ), -2 ); addSeparator(); //Insert item for centering on object addAction( i18n( "Center && Track" ), ks->map(), SLOT( slotCenter() ) ); //Insert item for measuring distances //FIXME: add key shortcut to menu items properly! addAction( i18n( "Angular Distance To... [" ), ks->map(), SLOT(slotBeginAngularDistance()) ); addAction( i18n( "Starhop from here to... " ), ks->map(), SLOT(slotBeginStarHop()) ); //Insert "Add/Remove Label" item if ( ks->map()->isObjectLabeled( satellite ) ) addAction( i18n( "Remove Label" ), ks->map(), SLOT( slotRemoveObjectLabel() ) ); else addAction( i18n( "Attach Label" ), ks->map(), SLOT( slotAddObjectLabel() ) ); }
void KSPopupMenu::initPopupMenu( SkyObject *obj, QString name, QString type, QString info, bool showDetails, bool showObsList, bool showFlags ) { KStars* ks = KStars::Instance(); clear(); bool showLabel = name != i18n("star") && !name.isEmpty(); if( name.isEmpty() ) name = i18n( "Empty sky" ); addFancyLabel( name ); addFancyLabel( type ); addFancyLabel( info ); addFancyLabel( KStarsData::Instance()->skyComposite()->getConstellationBoundary()->constellationName( obj ) ); //Insert Rise/Set/Transit labels SkyObject* o = obj->clone(); addSeparator(); addFancyLabel( riseSetTimeLabel(o, true), -2 ); addFancyLabel( riseSetTimeLabel(o, false), -2 ); addFancyLabel( transitTimeLabel(o), -2 ); addSeparator(); delete o; // Show 'Select this object' item when in object pointing mode and when obj is not empty sky if(KStars::Instance()->map()->isInObjectPointingMode() && obj->type() != 21) { addAction( i18n( "Select this object"), KStars::Instance()->map(), SLOT(slotObjectSelected())); } //Insert item for centering on object addAction( i18n( "Center && Track" ), ks->map(), SLOT( slotCenter() ) ); if ( showFlags ) { //Insert actions for flag operations initFlagActions( obj ); } //Insert item for measuring distances //FIXME: add key shortcut to menu items properly! addAction( i18n( "Angular Distance To... [" ), ks->map(), SLOT(slotBeginAngularDistance()) ); addAction( i18n( "Starhop from here to... " ), ks->map(), SLOT(slotBeginStarHop()) ); //Insert item for Showing details dialog if ( showDetails ) addAction( i18nc( "Show Detailed Information Dialog", "Details" ), ks->map(), SLOT( slotDetail() ) ); //Insert "Add/Remove Label" item if ( showLabel ) { if ( ks->map()->isObjectLabeled( obj ) ) { addAction( i18n( "Remove Label" ), ks->map(), SLOT( slotRemoveObjectLabel() ) ); } else { addAction( i18n( "Attach Label" ), ks->map(), SLOT( slotAddObjectLabel() ) ); } } // Should show observing list if( showObsList ) { if ( ks->observingList()->contains( obj ) ) addAction( i18n("Remove From Observing WishList"), ks->observingList(), SLOT( slotRemoveObject() ) ); else addAction( i18n("Add to Observing WishList"), ks->observingList(), SLOT( slotAddObject() ) ); } // Should we show trail actions TrailObject* t = dynamic_cast<TrailObject*>( obj ); if( t ) { if( t->hasTrail() ) addAction( i18n( "Remove Trail" ), ks->map(), SLOT( slotRemovePlanetTrail() ) ); else addAction( i18n( "Add Trail" ), ks->map(), SLOT( slotAddPlanetTrail() ) ); } addSeparator(); #ifdef HAVE_XPLANET if ( obj->isSolarSystem() && obj->type() != SkyObject::COMET ) { // FIXME: We now have asteroids -- so should this not be isMajorPlanet() || Pluto? QMenu *xplanetSubmenu = new QMenu(); xplanetSubmenu->setTitle( i18n( "Print Xplanet view" ) ); xplanetSubmenu->addAction( i18n( "To screen" ), ks->map(), SLOT( slotXplanetToScreen() ) ); xplanetSubmenu->addAction( i18n( "To file..." ), ks->map(), SLOT( slotXplanetToFile() ) ); addMenu( xplanetSubmenu ); } #endif addSeparator(); addINDI(); }