Files
        @ d51978a02948
    
        
              Branch filter: 
        
    Location: tempo-plotter/src/zoomer.h - annotation
        
            
            d51978a02948
            2.4 KiB
            text/plain
        
        
    
    updated qmake project file
    bdc33b5c53c6 81bc58c2b941 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 81bc58c2b941 e6427508f520 81bc58c2b941 81bc58c2b941 262f56d3e063 bdc33b5c53c6 1e848e98efb7 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 262f56d3e063 bdc33b5c53c6 81bc58c2b941 262f56d3e063 262f56d3e063 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 d4a271f3d46a d4a271f3d46a d4a271f3d46a 2541096f1ba6 2541096f1ba6 2541096f1ba6 754420135f22 2541096f1ba6 81bc58c2b941 2541096f1ba6 754420135f22 754420135f22 c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac c9d4060942ac 262f56d3e063 262f56d3e063 81bc58c2b941 2541096f1ba6 2541096f1ba6 2541096f1ba6 81bc58c2b941 e6427508f520 e6427508f520 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6  | /*
  Copyright © 2018 Hasan Yavuz Özderya
  This file is part of serialplot.
  serialplot is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.
  serialplot is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.
  You should have received a copy of the GNU General Public License
  along with serialplot.  If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef ZOOMER_H
#define ZOOMER_H
#include <QVector>
#include <QRect>
#include "scrollzoomer.h"
#include "streamchannel.h"
class Zoomer : public ScrollZoomer
{
    Q_OBJECT
public:
    Zoomer(QWidget*, bool doReplot=true);
    void zoom(int up);
    void zoom(const QRectF&);
    /// Set displayed channels for value tracking (can be null)
    void setDispChannels(QVector<const StreamChannel*> channels);
signals:
    void unzoomed();
protected:
    /// Re-implemented to display selection size in the tracker text.
    QwtText trackerTextF(const QPointF &pos) const override;
    /// Re-implemented for sample value tracker
    QRect trackerRect(const QFont&) const override;
    /// Re-implemented for alpha background
    void drawRubberBand(QPainter* painter) const override;
    /// Re-implemented to draw sample values
    void drawTracker(QPainter* painter) const override;
    /// Re-implemented for alpha background (masking is basically disabled)
    QRegion rubberBandMask() const;
    /// Overloaded for panning
    void widgetMousePressEvent(QMouseEvent* mouseEvent);
    /// Overloaded for panning
    void widgetMouseReleaseEvent(QMouseEvent* mouseEvent);
    /// Overloaded for panning
    void widgetMouseMoveEvent(QMouseEvent* mouseEvent);
private:
    bool is_panning;
    QPointF pan_point;
    /// displayed channels for value tracking
    QVector<const StreamChannel*> dispChannels;
    /// Draw sample values
    void drawValues(QPainter* painter) const;
    /// Find sample values for given X value
    QVector<double> findValues(double x) const;
    /// Returns trackerRect for value tracker
    QRect valueTrackerRect(const QFont& font) const;
};
#endif // ZOOMER_H
 |