示例#1
0
void ToolBox::buttonCallback ( int buttonIndex, Vrui::InputDevice::ButtonCallbackData* cbData )
{
	updateDeviceTransformations ( ) ;
	int deviceIndex = 0;
	ButtonId button ( deviceIndex, buttonIndex ) ;
	if ( cbData -> newButtonState )
	{
		ButtonPressEvent buttonPressEvent ( this, currentTool ( ), button ) ;
		tellExtensions ( & Extension::buttonPressed, buttonPressEvent ) ;
		if ( currentTool ( ) ) {
			// In case an extension modified ToolBox state:
			buttonPressEvent . tool = currentTool ( ) ;

			if ( button == mainButton ( ) )
				currentTool ( ) -> mainButtonPressed ( buttonPressEvent ) ;
			else
				currentTool ( ) -> otherButtonPressed ( buttonPressEvent ) ;
		}
	}
	else
	{
		ButtonReleaseEvent buttonReleaseEvent ( this, currentTool ( ), button ) ;
		tellExtensions ( & Extension::buttonReleased, buttonReleaseEvent ) ;
		if ( currentTool ( ) ) {
			// In case an extension modified ToolBox state:
			buttonReleaseEvent . tool = currentTool ( ) ;

			if ( button == mainButton ( ) )
				currentTool ( ) -> mainButtonReleased ( buttonReleaseEvent ) ;
			else
				currentTool ( ) -> otherButtonReleased ( buttonReleaseEvent ) ;
		}
	}
}
示例#2
0
void QgsComposerView::wheelEvent( QWheelEvent* event )
{
  if ( currentTool() == MoveItemContent )
  {
    //move item content tool, so scroll events get handled by the selected composer item

    QPointF scenePoint = mapToScene( event->pos() );
    //select topmost item at position of event
    QgsComposerItem* theItem = composition()->composerItemAt( scenePoint );
    if ( theItem )
    {
      if ( theItem->isSelected() )
      {
        QPointF itemPoint = theItem->mapFromScene( scenePoint );
        theItem->beginCommand( tr( "Zoom item content" ) );
        theItem->zoomContent( event->delta(), itemPoint.x(), itemPoint.y() );
        theItem->endCommand();
      }
    }
  }
  else
  {
    //not using move item content tool, so zoom whole composition
    wheelZoom( event );
  }
}
void ToolSettings::eraserNear(bool near)
{
	if(near) {
		_eraserOverride = currentTool();
		setTool(tools::ERASER);
	} else {
		setTool(tools::Type(_eraserOverride));
	}
}
示例#4
0
bool ToolBox::makeCurrent ( Tool* tool )
{
	// Ignore call to grab current tool:
	if ( currentTool ( ) == tool )
		return false ;

	ToolDropEvent toolDropEvent ( this, currentTool ( ) ) ;
	if ( currentTool ( ) ) {
		mCurrentTool = mTools . end ( ) ;
		tellExtensions ( & Extension::dropped, toolDropEvent ) ;
		toolDropEvent . tool -> dropped ( toolDropEvent ) ;
	}
	if ( tool ) {
		mCurrentTool = tool -> mToolBoxPosition ;
		ToolGrabEvent toolGrabEvent ( this, tool ) ;
		tellExtensions ( & Extension::grabbed, toolGrabEvent ) ;
		tool -> grabbed ( toolGrabEvent ) ;
	}
	return true ;
}
示例#5
0
void ToolBox::frame ( )
{
	updateDeviceTransformations ( ) ;

	MotionEvent motionEvent ( this, currentTool ( ) ) ;

	tellExtensions ( & Extension::moved, motionEvent ) ;

	// In case an extension modified ToolBox state:
	motionEvent . tool = currentTool ( ) ;

	if ( currentTool ( ) )
		currentTool ( ) -> moved ( motionEvent ) ;

	for ( ExtensionList::iterator pos ( mExtensions . begin ( ) ) ;
	      pos != mExtensions . end ( ) ; ++pos )
	{
		(*pos) -> frame ( ) ;
	}
}
bool QDeclarativeViewInspector::mouseMoveEvent(QMouseEvent *event)
{
    QList<QGraphicsItem*> selItems = data->selectableItems(event->pos());
    if (!selItems.isEmpty()) {
        declarativeView()->setToolTip(currentTool()->titleForItem(selItems.first()));
    } else {
        declarativeView()->setToolTip(QString());
    }

    return AbstractViewInspector::mouseMoveEvent(event);
}
示例#7
0
void ToolSettings::eraserNear(bool near)
{
	if(near && !_eraserActive) {
		_eraserOverride = currentTool();
		setTool(tools::Tool::ERASER);
		_eraserActive = true;
	} else if(!near && _eraserActive) {
		setTool(tools::Tool::Type(_eraserOverride));
		_eraserActive = false;
	}
}
示例#8
0
void QgsComposerView::wheelEvent( QWheelEvent* event )
{
  if ( mRubberBandItem || mRubberBandLineItem )
  {
    //ignore wheel events while marquee operations are active (eg, creating new item)
    return;
  }

  if ( composition()->selectionHandles()->isDragging() || composition()->selectionHandles()->isResizing() )
  {
    //ignore wheel events while dragging/resizing items
    return;
  }

  if ( currentTool() == MoveItemContent )
  {
    //move item content tool, so scroll events get handled by the selected composer item

    QPointF scenePoint = mapToScene( event->pos() );
    //select topmost item at position of event
    QgsComposerItem* theItem = composition()->composerItemAt( scenePoint, true );
    if ( theItem )
    {
      if ( theItem->isSelected() )
      {
        QPointF itemPoint = theItem->mapFromScene( scenePoint );
        theItem->beginCommand( tr( "Zoom item content" ) );
        theItem->zoomContent( event->delta(), itemPoint.x(), itemPoint.y() );
        theItem->endCommand();
      }
    }
  }
  else
  {
    //not using move item content tool, so zoom whole composition
    wheelZoom( event );
  }
}
示例#9
0
bool FormWindowBase::gridVisible() const
{
    return m_d->m_grid.visible() && currentTool() == 0;
}
示例#10
0
/**
 * Set which tool setting widget is visible
 * @param tool tool identifier
 */
void ToolSettings::setTool(tools::Tool::Type tool) {
	// Save old tool settings, then switch to the new tool
	_previousTool = currentTool();
	saveCurrentTool();
	selectTool(tool);
}