Changeset - 969bab18103b
[Not reviewed]
Hasan Yavuz Ă–ZDERYA - 7 years ago 2018-10-01 15:08:43
hy@ozderya.net
don't display values when zooming (selecting rectangle)
1 file changed with 14 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/zoomer.cpp
Show inline comments
 
@@ -95,30 +95,32 @@ QRegion Zoomer::rubberBandMask() const
 
{
 
    const QPolygon pa = selection();
 
    if (pa.count() < 2)
 
    {
 
        return QRegion();
 
    }
 
    const QRect r = QRect(pa.first(), pa.last()).normalized().adjusted(0, 0, 1, 1);
 
    return QRegion(r);
 
}
 

	
 
void Zoomer::drawTracker(QPainter* painter) const
 
{
 
    // ScrollZoomer::drawTracker(painter);
 
    if (_stream != nullptr && _stream->numChannels())
 
    if (isActive())
 
    {
 
        QwtPlotZoomer::drawTracker(painter);
 
    }
 
    else if (_stream != nullptr && _stream->numChannels())
 
    {
 
        drawValues(painter);
 
    }
 
    return;
 
}
 

	
 
void Zoomer::drawValues(QPainter* painter) const
 
{
 
    painter->save();
 

	
 
    double x = invTransform(trackerPosition()).x();
 
    auto values = findValues(x);
 

	
 
    // draw vertical line
 
    auto linePen = QPen(Qt::DotLine);
 
    linePen.setColor(Qt::white);
 
@@ -154,26 +156,33 @@ QVector<double> Zoomer::findValues(doubl
 
    QVector<double> r(nc);
 
    for (unsigned ci = 0; ci < nc; ci++)
 
    {
 
        auto chan = _stream->channel(ci);
 
        double val = chan->findValue(x);
 
        r[ci] = val;
 
    }
 
    return r;
 
}
 

	
 
QRect Zoomer::trackerRect(const QFont& font) const
 
{
 
    // TODO: optimize tracker area for masking instead of returning whole plot size
 
    return pickArea().boundingRect().toRect();
 
    if (isActive())
 
    {
 
        return QwtPlotZoomer::trackerRect(font);
 
    }
 
    else
 
    {
 
        // TODO: optimize tracker area for masking instead of returning whole plot size
 
        return pickArea().boundingRect().toRect();
 
    }
 
}
 

	
 
void Zoomer::widgetMousePressEvent(QMouseEvent* mouseEvent)
 
{
 
    if (mouseEvent->modifiers() & Qt::ControlModifier)
 
    {
 
        is_panning = true;
 
        parentWidget()->setCursor(Qt::ClosedHandCursor);
 
        pan_point = invTransform(mouseEvent->pos());
 
    }
 
    else
 
    {
0 comments (0 inline, 0 general)