/** * Emits the positionClicked signal to jump to the clicked navigation item's * position */ void NavigationWidget::onCurrentItemChanged( QTreeWidgetItem *current, QTreeWidgetItem *previous) { Q_UNUSED(previous); if (current == NULL) { return; } emit positionClicked(current->data(0, Qt::UserRole).toInt()); }
/** * @brief Redirect mouse move events to control position */ void JoystickControl::mouseMoveEvent(QMouseEvent *event) { QPointF point = m_joystickArea->mapFromScene(mapToScene(event->pos())); QSizeF areaSize = m_joystickArea->boundingRect().size(); double y = -(point.y() / areaSize.height() - 0.5) * 2.0; double x = (point.x() / areaSize.width() - 0.5) * 2.0; if (y < -1.0) { y = -1.0; } if (y > 1.0) { y = 1.0; } if (x < -1.0) { x = -1.0; } if (x > 1.0) { x = 1.0; } emit positionClicked(x, y); }
void SkyMap::mousePressEvent( QMouseEvent *e ) { KStars* kstars = KStars::Instance(); if ( ( e->modifiers() & Qt::ControlModifier ) && (e->button() == Qt::LeftButton) ) { ZoomRect.moveCenter( e->pos() ); setZoomMouseCursor(); update(); //refresh without redrawing skymap return; } // if button is down and cursor is not moved set the move cursor after 500 ms QTimer::singleShot(500, this, SLOT (setMouseMoveCursor())); // break if point is unusable if ( projector()->unusablePoint( e->pos() ) ) return; if ( !midMouseButtonDown && e->button() == Qt::MidButton ) { y0 = 0.5*height() - e->y(); //record y pixel coordinate for middle-button zooming midMouseButtonDown = true; } if ( !mouseButtonDown ) { if ( e->button() == Qt::LeftButton ) { mouseButtonDown = true; } //determine RA, Dec of mouse pointer m_MousePoint = projector()->fromScreen( e->pos(), data->lst(), data->geo()->lat() ); setClickedPoint( &m_MousePoint ); //Find object nearest to clickedPoint() double maxrad = 1000.0/Options::zoomFactor(); SkyObject* obj = data->skyComposite()->objectNearest( clickedPoint(), maxrad ); setClickedObject( obj ); if( obj ) setClickedPoint( obj ); switch( e->button() ) { case Qt::LeftButton: { QString name; if( clickedObject() ) name = clickedObject()->translatedLongName(); else name = i18n( "Empty sky" ); //kstars->statusBar()->changeItem(name, 0 ); kstars->statusBar()->showMessage(name, 0 ); emit positionClicked(&m_MousePoint); } break; case Qt::RightButton: if( rulerMode ) { // Compute angular distance. slotEndRulerMode(); } else { // Show popup menu if( clickedObject() ) { clickedObject()->showPopupMenu( pmenu, QCursor::pos() ); } else { pmenu->createEmptyMenu( clickedPoint() ); pmenu->popup( QCursor::pos() ); } } break; default: ; } } }
void MiniMap::mousePressEvent(QMouseEvent *event) { float posX = event->pos().x(); float posY = event->pos().y(); QPointF pos((_overview.width() * posX) / width() + 1, (_overview.height() * posY) / height() + 1); emit positionClicked(pos); }