Files
        @ 71441196d1c5
    
        
              Branch filter: 
        
    Location: tempo-plotter/src/zoomer.h - annotation
        
            
            71441196d1c5
            2.4 KiB
            text/plain
        
        
    
    Merge with default
    bdc33b5c53c6 2175b10b9f1e bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6 81bc58c2b941 2175b10b9f1e 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 2175b10b9f1e 2175b10b9f1e 2541096f1ba6 2541096f1ba6 e6427508f520 e6427508f520 bdc33b5c53c6 bdc33b5c53c6 bdc33b5c53c6  | /*
  Copyright © 2019 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 <QList>
#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;
    /// Get a list of visible channels
    QList<const StreamChannel*> visChannels() const;
    /// Draw sample values
    void drawValues(QPainter* painter) const;
    /// Returns trackerRect for value tracker
    QRect valueTrackerRect(const QFont& font) const;
};
#endif // ZOOMER_H
 |