diff options
Diffstat (limited to 'stfstrokeitem.cc')
-rw-r--r-- | stfstrokeitem.cc | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/stfstrokeitem.cc b/stfstrokeitem.cc index e2a7714..a9ca693 100644 --- a/stfstrokeitem.cc +++ b/stfstrokeitem.cc @@ -19,8 +19,8 @@ #include <QtCore/QDebug> #include <QtGui/QPen> #include <QtGui/QCursor> -#include <QtGui/QGraphicsScene> -#include <QtGui/QGraphicsSceneMouseEvent> +#include <QtWidgets/QGraphicsScene> +#include <QtWidgets/QGraphicsSceneMouseEvent> #include "notebookview.h" #include "stfstrokeitem.h" @@ -28,10 +28,12 @@ StfStrokeItem::StfStrokeItem(const QPainterPath &stroke, const PaperReplay::Sess : QGraphicsPathItem(stroke, parent), _session(session), _startTime(startTime), _endTime(endTime) { - if (_session.isValid()) { - setPen(QPen(Qt::darkGreen)); + QPen pen(Qt::black, 8.0f); + if (hasPaperReplay()) { + pen.setColor(Qt::darkGreen); setCursor(Qt::PointingHandCursor); } + setPen(pen); } int StfStrokeItem::type() const @@ -39,16 +41,25 @@ int StfStrokeItem::type() const return Type; } +bool StfStrokeItem::hasPaperReplay() const +{ + return _session.isValid() && !_session.fileName().isEmpty(); +} + void StfStrokeItem::mousePressEvent(QGraphicsSceneMouseEvent *event) { - if (_session.isValid() && !_session.fileName().isEmpty()) { + if (event->button() == Qt::LeftButton && hasPaperReplay()) { QGraphicsView *view = scene()->views().first(); if (NotebookView *nbview = qobject_cast<NotebookView*>(view)) { - event->accept(); - qint64 time = _startTime - _session.startTime(); + PaperReplay::PenTime time = _startTime - _session.startTime(); if (time < 10) time = 0; + qDebug() << "requesting paper replay at time" << time << "/" << _session.duration(); + nbview->requestPaperReplay(_session.fileName(), time); + event->accept(); + return; } } + QGraphicsItem::mousePressEvent(event); } |