Added "preview" dotted circle around eraser tool

preferencesAboutTextFull
Craig Watson 8 years ago
parent 871e7535e9
commit c65457e962
  1. 7
      src/board/UBBoardView.cpp
  2. 27
      src/domain/UBGraphicsScene.cpp
  3. 3
      src/domain/UBGraphicsScene.h
  4. 2
      src/gui/UBResources.cpp

@ -1691,9 +1691,14 @@ void UBBoardView::setToolCursor (int tool)
controlViewport->setCursor (UBResources::resources ()->penCursor); controlViewport->setCursor (UBResources::resources ()->penCursor);
break; break;
case UBStylusTool::Eraser: case UBStylusTool::Eraser:
{
controlViewport->setCursor (UBResources::resources ()->eraserCursor); controlViewport->setCursor (UBResources::resources ()->eraserCursor);
scene()->hideEraser(); UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
if (currentTool != UBStylusTool::Eraser)
// Avoid hiding the eraser after a click with the eraser
scene()->hideEraser();
break; break;
}
case UBStylusTool::Marker: case UBStylusTool::Marker:
controlViewport->setCursor (UBResources::resources ()->markerCursor); controlViewport->setCursor (UBResources::resources ()->markerCursor);
break; break;

@ -424,7 +424,7 @@ bool UBGraphicsScene::inputDevicePress(const QPointF& scenePos, const qreal& pre
eraserWidth /= UBApplication::boardController->currentZoom(); eraserWidth /= UBApplication::boardController->currentZoom();
eraseLineTo(scenePos, eraserWidth); eraseLineTo(scenePos, eraserWidth);
drawEraser(scenePos, true); drawEraser(scenePos, mInputDeviceIsPressed);
accepted = true; accepted = true;
} }
@ -453,7 +453,7 @@ bool UBGraphicsScene::inputDeviceMove(const QPointF& scenePos, const qreal& pres
if (currentTool == UBStylusTool::Eraser) if (currentTool == UBStylusTool::Eraser)
{ {
drawEraser(position); drawEraser(position, mInputDeviceIsPressed);
accepted = true; accepted = true;
} }
@ -541,6 +541,12 @@ bool UBGraphicsScene::inputDeviceRelease()
accepted = true; accepted = true;
} }
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)UBDrawingController::drawingController()->stylusTool();
if (currentTool == UBStylusTool::Eraser)
redrawEraser(false);
UBDrawingController *dc = UBDrawingController::drawingController(); UBDrawingController *dc = UBDrawingController::drawingController();
if (dc->isDrawingTool() || mDrawWithCompass) if (dc->isDrawingTool() || mDrawWithCompass)
@ -624,7 +630,7 @@ bool UBGraphicsScene::inputDeviceRelease()
return accepted; return accepted;
} }
void UBGraphicsScene::drawEraser(const QPointF &pPoint, bool isFirstDraw) void UBGraphicsScene::drawEraser(const QPointF &pPoint, bool pressed)
{ {
qreal eraserWidth = UBSettings::settings()->currentEraserWidth(); qreal eraserWidth = UBSettings::settings()->currentEraserWidth();
eraserWidth /= UBApplication::boardController->systemScaleFactor(); eraserWidth /= UBApplication::boardController->systemScaleFactor();
@ -635,10 +641,19 @@ void UBGraphicsScene::drawEraser(const QPointF &pPoint, bool isFirstDraw)
// TODO UB 4.x optimize - no need to do that every time we move it // TODO UB 4.x optimize - no need to do that every time we move it
if (mEraser) { if (mEraser) {
mEraser->setRect(QRectF(pPoint.x() - eraserRadius, pPoint.y() - eraserRadius, eraserWidth, eraserWidth)); mEraser->setRect(QRectF(pPoint.x() - eraserRadius, pPoint.y() - eraserRadius, eraserWidth, eraserWidth));
redrawEraser(pressed);
}
}
if(isFirstDraw) { void UBGraphicsScene::redrawEraser(bool pressed)
mEraser->show(); {
} if (mEraser) {
if(pressed)
mEraser->setPen(QPen(Qt::SolidLine));
else
mEraser->setPen(QPen(Qt::DotLine));
mEraser->show();
} }
} }

@ -359,7 +359,8 @@ public slots:
void initPolygonItem(UBGraphicsPolygonItem*); void initPolygonItem(UBGraphicsPolygonItem*);
void drawEraser(const QPointF& pEndPoint, bool isFirstDraw = false); void drawEraser(const QPointF& pEndPoint, bool pressed = true);
void redrawEraser(bool pressed);
void drawPointer(const QPointF& pEndPoint, bool isFirstDraw = false); void drawPointer(const QPointF& pEndPoint, bool isFirstDraw = false);
void DisposeMagnifierQWidgets(); void DisposeMagnifierQWidgets();

@ -65,7 +65,7 @@ void UBResources::init()
{ {
// Cursors // Cursors
penCursor = QCursor(Qt::CrossCursor); penCursor = QCursor(Qt::CrossCursor);
eraserCursor = QCursor(QPixmap(":/images/cursors/eraser.png"), 21, 21); eraserCursor = QCursor(QPixmap(":/images/cursors/eraser.png"), 5, 25);
markerCursor = QCursor(QPixmap(":/images/cursors/marker.png"), 3, 30); markerCursor = QCursor(QPixmap(":/images/cursors/marker.png"), 3, 30);
pointerCursor = QCursor(QPixmap(":/images/cursors/laser.png"), 2, 1); pointerCursor = QCursor(QPixmap(":/images/cursors/laser.png"), 2, 1);
handCursor = QCursor(Qt::OpenHandCursor); handCursor = QCursor(Qt::OpenHandCursor);

Loading…
Cancel
Save