mirror of
https://github.com/tumic0/GPXSee.git
synced 2025-01-31 17:15:14 +01:00
Improved graph zooming
(however, still not perfect...)
This commit is contained in:
parent
75bd542feb
commit
781bc8c38f
@ -41,6 +41,7 @@ AxisItem::AxisItem(Type type, QGraphicsItem *parent)
|
|||||||
{
|
{
|
||||||
_type = type;
|
_type = type;
|
||||||
_size = 0;
|
_size = 0;
|
||||||
|
_zoom = 1.0;
|
||||||
|
|
||||||
_font.setPixelSize(FONT_SIZE);
|
_font.setPixelSize(FONT_SIZE);
|
||||||
_font.setFamily(FONT_FAMILY);
|
_font.setFamily(FONT_FAMILY);
|
||||||
@ -52,7 +53,8 @@ void AxisItem::setRange(const RangeF &range)
|
|||||||
_range = range;
|
_range = range;
|
||||||
|
|
||||||
QFontMetrics fm(_font);
|
QFontMetrics fm(_font);
|
||||||
Ticks ticks(_range.min(), _range.max(), (_type == X) ? XTICKS : YTICKS);
|
Ticks ticks(_range.min(), _range.max(),
|
||||||
|
(_type == X) ? XTICKS * _zoom : YTICKS * _zoom);
|
||||||
_ticks = QVector<Tick>(ticks.count());
|
_ticks = QVector<Tick>(ticks.count());
|
||||||
for (int i = 0; i < ticks.count(); i++) {
|
for (int i = 0; i < ticks.count(); i++) {
|
||||||
Tick &t = _ticks[i];
|
Tick &t = _ticks[i];
|
||||||
|
@ -20,6 +20,7 @@ public:
|
|||||||
void setRange(const RangeF &range);
|
void setRange(const RangeF &range);
|
||||||
void setSize(qreal size);
|
void setSize(qreal size);
|
||||||
void setLabel(const QString& label);
|
void setLabel(const QString& label);
|
||||||
|
void setZoom(qreal zoom) {_zoom = zoom;}
|
||||||
|
|
||||||
QSizeF margin() const;
|
QSizeF margin() const;
|
||||||
QList<qreal> ticks() const;
|
QList<qreal> ticks() const;
|
||||||
@ -41,6 +42,7 @@ private:
|
|||||||
QRectF _boundingRect;
|
QRectF _boundingRect;
|
||||||
QFont _font;
|
QFont _font;
|
||||||
QLocale _locale;
|
QLocale _locale;
|
||||||
|
qreal _zoom;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // AXISITEM_H
|
#endif // AXISITEM_H
|
||||||
|
@ -279,6 +279,7 @@ void GraphView::redraw(const QSizeF &size)
|
|||||||
ry.resize(_minYRange * _yScale);
|
ry.resize(_minYRange * _yScale);
|
||||||
|
|
||||||
_xAxis->setRange(rx);
|
_xAxis->setRange(rx);
|
||||||
|
_xAxis->setZoom(_zoom);
|
||||||
_yAxis->setRange(ry);
|
_yAxis->setRange(ry);
|
||||||
mx = _xAxis->margin();
|
mx = _xAxis->margin();
|
||||||
my = _yAxis->margin();
|
my = _yAxis->margin();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user