@ -29,12 +29,12 @@ const QRect UBGraphicsRuler::sDefaultRect = QRect(0, 0, 800, 96);
UBGraphicsRuler : : UBGraphicsRuler ( )
: QGraphicsRectItem ( )
, mResizing ( false )
, mResizing ( false )
, mRotating ( false )
{
setRect ( sDefaultRect ) ;
mResizeSvgItem = new QGraphicsSvgItem ( " :/images/resizeRuler.svg " , this ) ;
mResizeSvgItem = new QGraphicsSvgItem ( " :/images/resizeRuler.svg " , this ) ;
mResizeSvgItem - > setVisible ( false ) ;
mResizeSvgItem - > setData ( UBGraphicsItemData : : ItemLayerType , QVariant ( UBItemLayerType : : Control ) ) ;
@ -42,7 +42,7 @@ UBGraphicsRuler::UBGraphicsRuler()
mRotateSvgItem - > setVisible ( false ) ;
mRotateSvgItem - > setData ( UBGraphicsItemData : : ItemLayerType , QVariant ( UBItemLayerType : : Control ) ) ;
create ( * this ) ;
create ( * this ) ;
setData ( UBGraphicsItemData : : itemLayerType , QVariant ( itemLayerType : : CppTool ) ) ; //Necessary to set if we want z value to be assigned correctly
@ -98,9 +98,9 @@ void UBGraphicsRuler::paint(QPainter *painter, const QStyleOptionGraphicsItem *s
Q_UNUSED ( styleOption ) ;
Q_UNUSED ( widget ) ;
UBAbstractDrawRuler : : paint ( ) ;
UBAbstractDrawRuler : : paint ( ) ;
QTransform antiScaleTransform2 ;
QTransform antiScaleTransform2 ;
qreal ratio = mAntiScaleRatio > 1.0 ? mAntiScaleRatio : 1.0 ;
antiScaleTransform2 . scale ( ratio , 1.0 ) ;
@ -269,28 +269,28 @@ QRectF UBGraphicsRuler::rotateButtonRect() const
void UBGraphicsRuler : : hoverMoveEvent ( QGraphicsSceneHoverEvent * event )
{
UBStylusTool : : Enum currentTool = ( UBStylusTool : : Enum ) UBDrawingController : : drawingController ( ) - > stylusTool ( ) ;
if ( currentTool = = UBStylusTool : : Selector | | currentTool = = UBStylusTool : : Play )
{
mCloseSvgItem - > setVisible ( mShowButtons ) ;
mResizeSvgItem - > setVisible ( mShowButtons ) ;
mRotateSvgItem - > setVisible ( mShowButtons ) ;
if ( resizeButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( resizeCursor ( ) ) ;
else if ( closeButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( closeCursor ( ) ) ;
else if ( rotateButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( rotateCursor ( ) ) ;
else
setCursor ( moveCursor ( ) ) ;
event - > accept ( ) ;
}
else if ( UBDrawingController : : drawingController ( ) - > isDrawingTool ( ) )
{
event - > accept ( ) ;
}
UBStylusTool : : Enum currentTool = ( UBStylusTool : : Enum ) UBDrawingController : : drawingController ( ) - > stylusTool ( ) ;
if ( currentTool = = UBStylusTool : : Selector | | currentTool = = UBStylusTool : : Play )
{
mCloseSvgItem - > setVisible ( mShowButtons ) ;
mResizeSvgItem - > setVisible ( mShowButtons ) ;
mRotateSvgItem - > setVisible ( mShowButtons ) ;
if ( resizeButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( resizeCursor ( ) ) ;
else if ( closeButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( closeCursor ( ) ) ;
else if ( rotateButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( rotateCursor ( ) ) ;
else
setCursor ( moveCursor ( ) ) ;
event - > accept ( ) ;
}
else if ( UBDrawingController : : drawingController ( ) - > isDrawingTool ( ) )
{
event - > accept ( ) ;
}
}
void UBGraphicsRuler : : mousePressEvent ( QGraphicsSceneMouseEvent * event )
@ -309,7 +309,7 @@ void UBGraphicsRuler::mousePressEvent(QGraphicsSceneMouseEvent *event)
{
mResizeSvgItem - > setVisible ( false ) ;
mRotateSvgItem - > setVisible ( false ) ;
QGraphicsItem : : mousePressEvent ( event ) ;
QGraphicsItem : : mousePressEvent ( event ) ;
}
mResizeSvgItem - > setVisible ( mShowButtons & & mResizing ) ;
mRotateSvgItem - > setVisible ( mShowButtons & & mRotating ) ;
@ -320,20 +320,20 @@ void UBGraphicsRuler::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
{
if ( ! mResizing & & ! mRotating )
{
QGraphicsItem : : mouseMoveEvent ( event ) ;
QGraphicsItem : : mouseMoveEvent ( event ) ;
}
else
{
if ( mResizing )
{
QPointF delta = event - > pos ( ) - event - > lastPos ( ) ;
if ( rect ( ) . width ( ) + delta . x ( ) < sMinLength )
delta . setX ( sMinLength - rect ( ) . width ( ) ) ;
QPointF delta = event - > pos ( ) - event - > lastPos ( ) ;
if ( rect ( ) . width ( ) + delta . x ( ) < sMinLength )
delta . setX ( sMinLength - rect ( ) . width ( ) ) ;
if ( rect ( ) . width ( ) + delta . x ( ) > sMaxLength )
delta . setX ( sMaxLength - rect ( ) . width ( ) ) ;
setRect ( QRectF ( rect ( ) . topLeft ( ) , QSizeF ( rect ( ) . width ( ) + delta . x ( ) , rect ( ) . height ( ) ) ) ) ;
setRect ( QRectF ( rect ( ) . topLeft ( ) , QSizeF ( rect ( ) . width ( ) + delta . x ( ) , rect ( ) . height ( ) ) ) ) ;
}
else
{
@ -362,13 +362,13 @@ void UBGraphicsRuler::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
}
else if ( closeButtonRect ( ) . contains ( event - > pos ( ) ) )
{
hide ( ) ;
emit hidden ( ) ;
hide ( ) ;
emit hidden ( ) ;
event - > accept ( ) ;
}
else
{
QGraphicsItem : : mouseReleaseEvent ( event ) ;
QGraphicsItem : : mouseReleaseEvent ( event ) ;
}
if ( scene ( ) )
@ -377,41 +377,41 @@ void UBGraphicsRuler::mouseReleaseEvent(QGraphicsSceneMouseEvent *event)
void UBGraphicsRuler : : hoverEnterEvent ( QGraphicsSceneHoverEvent * event )
{
UBStylusTool : : Enum currentTool = ( UBStylusTool : : Enum ) UBDrawingController : : drawingController ( ) - > stylusTool ( ) ;
UBStylusTool : : Enum currentTool = ( UBStylusTool : : Enum ) UBDrawingController : : drawingController ( ) - > stylusTool ( ) ;
if ( currentTool = = UBStylusTool : : Selector | |
if ( currentTool = = UBStylusTool : : Selector | |
currentTool = = UBStylusTool : : Play )
{
mCloseSvgItem - > setParentItem ( this ) ;
mResizeSvgItem - > setParentItem ( this ) ;
mRotateSvgItem - > setParentItem ( this ) ;
mShowButtons = true ;
mCloseSvgItem - > setVisible ( mShowButtons ) ;
mResizeSvgItem - > setVisible ( mShowButtons ) ;
mRotateSvgItem - > setVisible ( mShowButtons ) ;
if ( event - > pos ( ) . x ( ) > = resizeButtonRect ( ) . left ( ) )
{
setCursor ( resizeCursor ( ) ) ;
}
else
{
if ( closeButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( closeCursor ( ) ) ;
else if ( rotateButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( rotateCursor ( ) ) ;
else
setCursor ( moveCursor ( ) ) ;
}
event - > accept ( ) ;
update ( ) ;
}
else if ( UBDrawingController : : drawingController ( ) - > isDrawingTool ( ) )
{
setCursor ( drawRulerLineCursor ( ) ) ;
UBDrawingController : : drawingController ( ) - > mActiveRuler = this ;
event - > accept ( ) ;
}
{
mCloseSvgItem - > setParentItem ( this ) ;
mResizeSvgItem - > setParentItem ( this ) ;
mRotateSvgItem - > setParentItem ( this ) ;
mShowButtons = true ;
mCloseSvgItem - > setVisible ( mShowButtons ) ;
mResizeSvgItem - > setVisible ( mShowButtons ) ;
mRotateSvgItem - > setVisible ( mShowButtons ) ;
if ( event - > pos ( ) . x ( ) > = resizeButtonRect ( ) . left ( ) )
{
setCursor ( resizeCursor ( ) ) ;
}
else
{
if ( closeButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( closeCursor ( ) ) ;
else if ( rotateButtonRect ( ) . contains ( event - > pos ( ) ) )
setCursor ( rotateCursor ( ) ) ;
else
setCursor ( moveCursor ( ) ) ;
}
event - > accept ( ) ;
update ( ) ;
}
else if ( UBDrawingController : : drawingController ( ) - > isDrawingTool ( ) )
{
setCursor ( drawRulerLineCursor ( ) ) ;
UBDrawingController : : drawingController ( ) - > mActiveRuler = this ;
event - > accept ( ) ;
}
}
void UBGraphicsRuler : : hoverLeaveEvent ( QGraphicsSceneHoverEvent * event )
@ -421,7 +421,7 @@ void UBGraphicsRuler::hoverLeaveEvent(QGraphicsSceneHoverEvent *event)
mCloseSvgItem - > setVisible ( mShowButtons ) ;
mResizeSvgItem - > setVisible ( mShowButtons ) ;
mRotateSvgItem - > setVisible ( mShowButtons ) ;
UBDrawingController : : drawingController ( ) - > mActiveRuler = NULL ;
UBDrawingController : : drawingController ( ) - > mActiveRuler = NULL ;
event - > accept ( ) ;
update ( ) ;
}
@ -435,28 +435,28 @@ UBGraphicsScene* UBGraphicsRuler::scene() const
void UBGraphicsRuler : : StartLine ( const QPointF & scenePos , qreal width )
{
QPointF itemPos = mapFromScene ( scenePos ) ;
qreal y ;
if ( itemPos . y ( ) > rect ( ) . y ( ) + rect ( ) . height ( ) / 2 )
{
drawLineDirection = 0 ;
y = rect ( ) . y ( ) + rect ( ) . height ( ) + width / 2 ;
}
else
{
drawLineDirection = 1 ;
y = rect ( ) . y ( ) - width / 2 ;
}
if ( itemPos . x ( ) < rect ( ) . x ( ) + sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + sLeftEdgeMargin ) ;
if ( itemPos . x ( ) > rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin ) ;
itemPos . setY ( y ) ;
itemPos = mapToScene ( itemPos ) ;
QPointF itemPos = mapFromScene ( scenePos ) ;
qreal y ;
if ( itemPos . y ( ) > rect ( ) . y ( ) + rect ( ) . height ( ) / 2 )
{
drawLineDirection = 0 ;
y = rect ( ) . y ( ) + rect ( ) . height ( ) + width / 2 ;
}
else
{
drawLineDirection = 1 ;
y = rect ( ) . y ( ) - width / 2 ;
}
if ( itemPos . x ( ) < rect ( ) . x ( ) + sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + sLeftEdgeMargin ) ;
if ( itemPos . x ( ) > rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin ) ;
itemPos . setY ( y ) ;
itemPos = mapToScene ( itemPos ) ;
scene ( ) - > moveTo ( itemPos ) ;
scene ( ) - > drawLineTo ( itemPos , width , true ) ;
@ -464,26 +464,26 @@ void UBGraphicsRuler::StartLine(const QPointF& scenePos, qreal width)
void UBGraphicsRuler : : DrawLine ( const QPointF & scenePos , qreal width )
{
QPointF itemPos = mapFromScene ( scenePos ) ;
qreal y ;
if ( drawLineDirection = = 0 )
{
y = rect ( ) . y ( ) + rect ( ) . height ( ) + width / 2 ;
}
else
{
y = rect ( ) . y ( ) - width / 2 ;
}
if ( itemPos . x ( ) < rect ( ) . x ( ) + sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + sLeftEdgeMargin ) ;
if ( itemPos . x ( ) > rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin ) ;
itemPos . setY ( y ) ;
itemPos = mapToScene ( itemPos ) ;
// We have to use "pointed" line for marker tool
QPointF itemPos = mapFromScene ( scenePos ) ;
qreal y ;
if ( drawLineDirection = = 0 )
{
y = rect ( ) . y ( ) + rect ( ) . height ( ) + width / 2 ;
}
else
{
y = rect ( ) . y ( ) - width / 2 ;
}
if ( itemPos . x ( ) < rect ( ) . x ( ) + sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + sLeftEdgeMargin ) ;
if ( itemPos . x ( ) > rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin )
itemPos . setX ( rect ( ) . x ( ) + rect ( ) . width ( ) - sLeftEdgeMargin ) ;
itemPos . setY ( y ) ;
itemPos = mapToScene ( itemPos ) ;
// We have to use "pointed" line for marker tool
scene ( ) - > drawLineTo ( itemPos , width , UBDrawingController : : drawingController ( ) - > stylusTool ( ) ! = UBStylusTool : : Marker ) ;
}