void MinimizeButton::paintEvent(QPaintEvent *) { QPainter p(this); p.setOpacity(_eff.currentf()); p.setRenderHint(QPainter::SmoothPixmapTransform); if (_pixmap.isNull()) QTimer::singleShot(10, this, SLOT(timerCall())); else p.drawPixmap(_rect, _pixmap); }
ViewerController::ViewerController() { mCameraOrbitButton = Qt::MidButton; mLUTSetMouseButton = Qt::RightButton; mFastSliceChangeMouseButton = Qt::MidButton; mCutPlaneOffsetButton = Qt::RightButton; mCutPlaneKeyboardModifiers = Qt::ControlModifier | Qt::MetaModifier; mTimer.setSingleShot( false ); QObject::connect( &mTimer, SIGNAL(timeout()), this, SLOT( timerCall() ) ); }
DelayedResponse::DelayedResponse(JsonClient * client, const QtJson::JsonObject & command, int interval, int timerOut) : QObject(client), m_client(client), m_hasResponded(false), m_nbCall(0) { Q_ASSERT(client); m_timer.setInterval(interval); connect(&m_timer, SIGNAL(timeout()), this, SLOT(timerCall())); QTimer::singleShot(timerOut, this, SLOT(onTimerOut())); m_action = command["action"].toString(); }
bool ViewerController::mouseMoveEvent ( BaseViewerState::Ptr aViewerState, const MouseEventInfo &aEventInfo ) { ViewerState &state = *(boost::polymorphic_downcast< ViewerState *>( aViewerState.get() ) ); QPoint diff = mTrackInfo.trackUpdate( aEventInfo.event->pos(), aEventInfo.event->globalPos() ); if ( state.viewType == vt3D && mInteractionMode == imORBIT_CAMERA ) { state.getViewerWindow< GeneralViewer >().cameraOrbit( Vector2f( diff.x() * -0.2f, diff.y() * -0.2f ) ); return true; } if ( state.viewType == vt3D && mInteractionMode == imCUT_PLANE ) { state.getViewerWindow< GeneralViewer >().cameraOrbit( Vector2f( diff.x() * -0.2f, diff.y() * -0.2f ) ); glm::fvec3 dir = -1.0f*state.getViewerWindow< GeneralViewer >().getCameraTargetDirection(); glm::fvec3 pos = state.getViewerWindow< GeneralViewer >().getCameraTargetPosition() + dir * state.mVolumeRenderConfig.cutPlaneCameraTargetOffset; state.getViewerWindow< GeneralViewer >().setCutPlane( soglu::Planef( pos, dir ) ); return true; } if ( mInteractionMode == imLUT_SETTING ) { glm::fvec2 oldVal = state.getViewerWindow< GeneralViewer >().getLUTWindow(); state.getViewerWindow< GeneralViewer >().setLUTWindow( oldVal + glm::fvec2(diff.x(), diff.y())); return true; } if ( mInteractionMode == imCUT_PLANE_OFFSET ) { float oldVal = state.mVolumeRenderConfig.cutPlaneCameraTargetOffset; state.getViewerWindow< GeneralViewer >().setCutPlaneCameraTargetOffset( oldVal + 0.3*(diff.x() + diff.y()) ); return true; } if ( mInteractionMode == imFAST_SLICE_CHANGE ) { int speed = mTrackInfo.mStartLocalPosition.y() - aEventInfo.event->pos().y(); mTmpViewer = &(state.getViewerWindow< GeneralViewer >()); mPositive = speed > 0; if( speed != 0 ) { float ms = 1000.0f / abs(speed); mTimer.setInterval( max<int>( static_cast<int>( ms ), 10 ) ); mTimer.start(); timerCall(); } else { mTimer.stop(); } return true; } if ( state.viewType == vt2DAlignedSlices ) { state.getViewerWindow< GeneralViewer >().updateMouseInfo( fromGLM(aEventInfo.realCoordinates) ); } return false; }