Esempio n. 1
0
void FrameLabel::mouseMoveEvent(QMouseEvent *ev)
{
    if(_image.isNull())
        return;
    // Save mouse cursor position
    QPointF tmpPoint = ev->pos();
    setMouseCursorPos(tmpPoint);

    // Update box width and height if box drawing is in progress
    if(_draw)
    {
        switch(_drawMode)
        {
        case nooba::lineDraw:
        {
            drawingLine.setP2(toOriginalImage(tmpPoint));
            break;
        }
        default:
            break;
        }
    }
    // Inform main window of mouse move event
    emit onMouseMoveEvent();
}
Esempio n. 2
0
void FrameLabel::mouseReleaseEvent(QMouseEvent *ev)
{
    if(_image.isNull())
        return;
    // Update cursor position
    setMouseCursorPos(ev->pos());
    qDebug() << getMouseCursorPos() << Q_FUNC_INFO;
    // On left mouse button release
    if(ev->button()==Qt::LeftButton)
    {
        // Set leftButtonRelease flag to TRUE
        mouseData.leftButtonRelease=true;
        if(_draw)
        {
            // Stop drawing box
            _draw=false;
        }
    }
    // On right mouse button release
    else if(ev->button()==Qt::RightButton)
    {
        _draw=false;
        _varName.clear();
        _drawMode = nooba::noDraw;
        drawingLine = QLineF();
        _color = QColor(Qt::transparent);
    }
}
Esempio n. 3
0
void FrameLabel::mousePressEvent(QMouseEvent *ev)
{
    // Update cursor position
    setMouseCursorPos(ev->pos());;
    if(ev->button()==Qt::LeftButton)
    {
        // Start drawing box
        startPoint=ev->pos();
        box=new QRect(startPoint.x(),startPoint.y(),0,0);
        drawBox=true;
    }
} // mousePressEvent()
Esempio n. 4
0
void FrameLabel::mouseMoveEvent(QMouseEvent *ev)
{
    // Save mouse cursor position
    setMouseCursorPos(ev->pos());
    // Update box width and height if box drawing is in progress
    if(drawBox)
    {
        box->setWidth(getMouseCursorPos().x()-startPoint.x());
        box->setHeight(getMouseCursorPos().y()-startPoint.y());
    }
    // Inform main window of mouse move event
    emit onMouseMoveEvent();
} // mouseMoveEvent()
Esempio n. 5
0
void FrameLabel::mousePressEvent(QMouseEvent *ev)
{
    if(_image.isNull())
        return;
    // Update cursor position
    setMouseCursorPos(ev->pos());;

    if(ev->button()==Qt::LeftButton)
    {
        // Start drawing box
        if(_varName.isEmpty())
            return;
        QPointF p1 = ev->pos();

        // start point relative to original image.
        startPointOrg= toOriginalImage(p1);
        qDebug() << p1 << Q_FUNC_INFO;
        qDebug() << "org" << startPointOrg << Q_FUNC_INFO;
        switch(_drawMode)
        {
        case nooba::lineDraw:
        {
            _S_Line s_l = _lineMap.take(_varName);
            if(s_l._line.isNull())
            {
                if(drawingLine.isNull())
                {
                    drawingLine = QLineF(startPointOrg, startPointOrg);
                }
              }
            else
            {
                drawingLine =s_l._line;
            }
            drawingLine.setPoints(startPointOrg, startPointOrg);
            _draw=true;
            break;
        }
        case nooba::boxDraw:
        {
            box = new QRect(startPointOrg.x(),startPointOrg.y(),0,0);
            _draw = true;
            break;
        }
        default:
            break;
        }
    }
}
Esempio n. 6
0
void FrameLabel::mouseReleaseEvent(QMouseEvent *ev)
{
    // Update cursor position
    setMouseCursorPos(ev->pos());
    // On left mouse button release
    if(ev->button()==Qt::LeftButton)
    {
        // Set leftButtonRelease flag to TRUE
        mouseData.leftButtonRelease=true;
        if(drawBox)
        {
            // Stop drawing box
            drawBox=false;
            // Save box dimensions
            mouseData.selectionBox.setX(box->left());
            mouseData.selectionBox.setY(box->top());
            mouseData.selectionBox.setWidth(box->width());
            mouseData.selectionBox.setHeight(box->height());
            // Set leftButtonRelease flag to TRUE
            mouseData.leftButtonRelease=true;
            // Inform main window of event
            emit newMouseData(mouseData);
        }
        // Set leftButtonRelease flag to FALSE
        mouseData.leftButtonRelease=false;
    }
    // On right mouse button release
    else if(ev->button()==Qt::RightButton)
    {
        // If user presses (and then releases) the right mouse button while drawing box, stop drawing box
        if(drawBox)
            drawBox=false;
        else
        {
            // Set rightButtonRelease flag to TRUE
            mouseData.rightButtonRelease=true;
            // Inform main window of event
            emit newMouseData(mouseData);
            // Set rightButtonRelease flag to FALSE
            mouseData.rightButtonRelease=false;
        }
    }
} // mouseReleaseEvent()