Files
@ 5c9db4e54bbd
Branch filter:
Location: tempo-plotter/src/zoomer.h - annotation
5c9db4e54bbd
2.4 KiB
text/plain
fix crash during update check #16
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
|