/************************************************************************* Notify that we want to unselect any object *************************************************************************/ void StelObjectMgr::unSelect(void) { if(!lastSelectedObjects.isEmpty()) { lastSelectedObjects.clear(); emit(selectedObjectChanged(StelModule::RemoveFromSelection)); } }
/************************************************************************* Notify that we want to select the given objects *************************************************************************/ bool StelObjectMgr::setSelectedObject(const QList<StelObjectP>& objs, StelModule::StelModuleSelectAction action) { if (action==StelModule::AddToSelection) lastSelectedObjects.append(objs); else lastSelectedObjects = objs; emit(selectedObjectChanged(action)); return true; }
//-------------------------------------------------------------------------------------------------- /// //-------------------------------------------------------------------------------------------------- void PdmUiTreeView::slotOnSelectionChanged() { emit selectionChanged(); std::vector<PdmUiItem*> objects; m_treeViewEditor->selectedUiItems(objects); PdmObjectHandle* objHandle = NULL; if (objects.size()) { PdmUiObjectHandle* uiObjH = dynamic_cast< PdmUiObjectHandle*>(objects[0]); if (uiObjH) { objHandle = uiObjH->objectHandle(); } } emit selectedObjectChanged(objHandle); }
void StelMovementMgr::init() { QSettings* conf = StelApp::getInstance().getSettings(); objectMgr = GETSTELMODULE(StelObjectMgr); Q_ASSERT(conf); Q_ASSERT(objectMgr); connect(objectMgr, SIGNAL(selectedObjectChanged(StelModule::StelModuleSelectAction)), this, SLOT(selectedObjectChange(StelModule::StelModuleSelectAction))); movementsSpeedFactor=1.; flagEnableMoveAtScreenEdge = conf->value("navigation/flag_enable_move_at_screen_edge",false).toBool(); mouseZoomSpeed = conf->value("navigation/mouse_zoom",30).toInt(); flagEnableZoomKeys = conf->value("navigation/flag_enable_zoom_keys").toBool(); flagEnableMoveKeys = conf->value("navigation/flag_enable_move_keys").toBool(); keyMoveSpeed = conf->value("navigation/move_speed",0.0004f).toFloat(); keyZoomSpeed = conf->value("navigation/zoom_speed", 0.0004f).toFloat(); autoMoveDuration = conf->value ("navigation/auto_move_duration",1.5f).toFloat(); flagManualZoom = conf->value("navigation/flag_manual_zoom").toBool(); flagAutoZoomOutResetsDirection = conf->value("navigation/auto_zoom_out_resets_direction", true).toBool(); flagEnableMouseNavigation = conf->value("navigation/flag_enable_mouse_navigation",true).toBool(); minFov = conf->value("navigation/min_fov",0.001389).toDouble(); // default: minimal FOV = 5" maxFov = 100.; initFov = conf->value("navigation/init_fov",60.f).toFloat(); currentFov = initFov; setInitConstellationIntensity(conf->value("viewing/constellation_art_intensity", 0.5f).toFloat()); // With a special code of init_view_position=x/y/2 you can set zenith into the center and atan2(x/y) to bottom of screen. // examples: 1/0->0 (-1/0) // -1/0 ->180 (1/0) // 0/-1 --> 90 (0/-1) // 0/1 ->270 (0/1) Vec3f tmp = StelUtils::strToVec3f(conf->value("navigation/init_view_pos").toString()); if (tmp[2]==2) { initViewPos.set(0., 0., 1.); setViewUpVector(Vec3d(tmp[0], tmp[1], 0.)); setViewDirectionJ2000(core->altAzToJ2000(Vec3d(0., 0., 1.), StelCore::RefractionOff)); } else { initViewPos.set(tmp[0], tmp[1], tmp[2]); viewDirectionJ2000 = core->altAzToJ2000(initViewPos, StelCore::RefractionOff); } QString tmpstr = conf->value("navigation/viewing_mode", "horizon").toString(); if (tmpstr=="equator") setMountMode(StelMovementMgr::MountEquinoxEquatorial); else { if (tmpstr=="horizon") setMountMode(StelMovementMgr::MountAltAzimuthal); else { qWarning() << "ERROR: Unknown viewing mode type: " << tmpstr; setMountMode(StelMovementMgr::MountEquinoxEquatorial); } } QString movementGroup = N_("Movement and Selection"); addAction("actionSwitch_Equatorial_Mount", N_("Miscellaneous"), N_("Switch between equatorial and azimuthal mount"), "equatorialMount", "Ctrl+M"); addAction("actionGoto_Selected_Object", movementGroup, N_("Center on selected object"), "setFlagTracking()", "Space"); addAction("actionZoom_In_Auto", movementGroup, N_("Zoom in on selected object"), "autoZoomIn()", "/"); addAction("actionZoom_Out_Auto", movementGroup, N_("Zoom out"), "autoZoomOut()", "\\"); addAction("actionSet_Tracking", movementGroup, N_("Track object"), "tracking", "T"); }