Merge branch 'master' of github.com:Sankore/Sankore-3.1

preferencesAboutTextFull
Anatoly Mihalchenko 13 years ago
commit 62296937b8
  1. 63
      src/board/UBBoardView.cpp

@ -282,86 +282,82 @@ UBBoardView::event (QEvent * e)
return QGraphicsView::event (e);
}
void
UBBoardView::tabletEvent (QTabletEvent * event)
{
if (!mUseHighResTabletEvent)
void UBBoardView::tabletEvent (QTabletEvent * event)
{
if (!mUseHighResTabletEvent) {
event->setAccepted (false);
return;
}
qDebug() << "tableEvent position " << event->pos();
qDebug() << "tableEvent global position " << event->globalPos();
UBDrawingController *dc = UBDrawingController::drawingController ();
QPointF tabletPos = UBGeometryUtils::pointConstrainedInRect (event->hiResGlobalPos ()
- mapToGlobal (QPoint (0, 0)), rect ());
QPointF tabletPos = UBGeometryUtils::pointConstrainedInRect (event->hiResGlobalPos () - mapToGlobal (QPoint (0, 0)), rect ());
// QPointF tabletPos = event->pos();
qDebug() << "tabletPos " << tabletPos;
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)dc->stylusTool ();
if (event->type () == QEvent::TabletPress || event->type () == QEvent::TabletEnterProximity)
{
if (event->pointerType () == QTabletEvent::Eraser)
{
if (event->type () == QEvent::TabletPress || event->type () == QEvent::TabletEnterProximity) {
if (event->pointerType () == QTabletEvent::Eraser) {
dc->setStylusTool (UBStylusTool::Eraser);
mUsingTabletEraser = true;
}
else
{
else {
if (mUsingTabletEraser && currentTool == UBStylusTool::Eraser)
{
dc->setStylusTool (dc->latestDrawingTool ());
}
mUsingTabletEraser = false;
}
}
// if event are not Pen events, we drop the tablet stuff and route everything through mouse event
if (currentTool != UBStylusTool::Pen
&& currentTool != UBStylusTool::Line
&& currentTool != UBStylusTool::Marker
&& !mMarkerPressureSensitive)
{
if (currentTool != UBStylusTool::Pen && currentTool != UBStylusTool::Line && currentTool != UBStylusTool::Marker && !mMarkerPressureSensitive){
event->setAccepted (false);
return;
}
QPointF scenePos = viewportTransform ().inverted ().map (tabletPos);
qDebug() << "scene Pos " << scenePos;
qreal pressure = 1.0;
if (((currentTool == UBStylusTool::Pen || currentTool == UBStylusTool::Line)
&& mPenPressureSensitive)
|| (currentTool == UBStylusTool::Marker && mMarkerPressureSensitive))
{
pressure = event->pressure ();
}
bool acceptEvent = true;
switch (event->type ())
{
case QEvent::TabletPress:
{
mTabletStylusIsPressed = true;
switch (event->type ()) {
case QEvent::TabletPress: {
qDebug() << "TabletPress";
mTabletStylusIsPressed = true;
scene()->inputDevicePress (scenePos, pressure);
break;
}
case QEvent::TabletMove:
{
case QEvent::TabletMove: {
qDebug() << "TabletMove";
if (mTabletStylusIsPressed)
{
scene ()->inputDeviceMove (scenePos, pressure);
}
acceptEvent = false; // rerouted to mouse move
break;
}
case QEvent::TabletRelease:
{
case QEvent::TabletRelease: {
qDebug() << "TabletRelease";
UBStylusTool::Enum currentTool = (UBStylusTool::Enum)dc->stylusTool ();
scene ()->setToolCursor (currentTool);
setToolCursor (currentTool);
@ -375,8 +371,7 @@ UBBoardView::tabletEvent (QTabletEvent * event)
break;
}
default:
{
default: {
//NOOP - avoid compiler warning
}
}

Loading…
Cancel
Save