Update to newest version of QCustomPlot (2.1.1)

This commit is contained in:
Collin Kidder
2023-02-14 20:23:45 -05:00
parent 329f1162ac
commit 4fa638a2f3
2 changed files with 244 additions and 167 deletions
+115 -87
View File
@@ -1,7 +1,7 @@
/*************************************************************************** /***************************************************************************
** ** ** **
** QCustomPlot, an easy to use, modern plotting widget for Qt ** ** QCustomPlot, an easy to use, modern plotting widget for Qt **
** Copyright (C) 2011-2021 Emanuel Eichhammer ** ** Copyright (C) 2011-2022 Emanuel Eichhammer **
** ** ** **
** This program is free software: you can redistribute it and/or modify ** ** This program is free software: you can redistribute it and/or modify **
** it under the terms of the GNU General Public License as published by ** ** it under the terms of the GNU General Public License as published by **
@@ -18,16 +18,16 @@
** ** ** **
**************************************************************************** ****************************************************************************
** Author: Emanuel Eichhammer ** ** Author: Emanuel Eichhammer **
** Website/Contact: http://www.qcustomplot.com/ ** ** Website/Contact: https://www.qcustomplot.com/ **
** Date: 29.03.21 ** ** Date: 06.11.22 **
** Version: 2.1.0 ** ** Version: 2.1.1 **
****************************************************************************/ ****************************************************************************/
#include "qcustomplot.h" #include "qcustomplot.h"
/* including file 'src/vector2d.cpp' */ /* including file 'src/vector2d.cpp' */
/* modified 2021-03-29T02:30:44, size 7973 */ /* modified 2022-11-06T12:45:56, size 7973 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPVector2D //////////////////// QCPVector2D
@@ -272,7 +272,7 @@ QCPVector2D &QCPVector2D::operator-=(const QCPVector2D &vector)
/* including file 'src/painter.cpp' */ /* including file 'src/painter.cpp' */
/* modified 2021-03-29T02:30:44, size 8656 */ /* modified 2022-11-06T12:45:56, size 8656 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPPainter //////////////////// QCPPainter
@@ -489,7 +489,7 @@ void QCPPainter::makeNonCosmetic()
/* including file 'src/paintbuffer.cpp' */ /* including file 'src/paintbuffer.cpp' */
/* modified 2021-03-29T02:30:44, size 18915 */ /* modified 2022-11-06T12:45:56, size 18915 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAbstractPaintBuffer //////////////////// QCPAbstractPaintBuffer
@@ -908,11 +908,6 @@ void QCPPaintBufferGlFbo::draw(QCPPainter *painter) const
qDebug() << Q_FUNC_INFO << "OpenGL frame buffer object doesn't exist, reallocateBuffer was not called?"; qDebug() << Q_FUNC_INFO << "OpenGL frame buffer object doesn't exist, reallocateBuffer was not called?";
return; return;
} }
QOpenGLContext *cont = mGlContext.toStrongRef().data();
if (cont != QOpenGLContext::currentContext())
cont->makeCurrent(cont->surface());
painter->drawImage(0, 0, mGlFrameBuffer->toImage()); painter->drawImage(0, 0, mGlFrameBuffer->toImage());
} }
@@ -981,7 +976,7 @@ void QCPPaintBufferGlFbo::reallocateBuffer()
/* including file 'src/layer.cpp' */ /* including file 'src/layer.cpp' */
/* modified 2021-03-29T02:30:44, size 37615 */ /* modified 2022-11-06T12:45:56, size 37615 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPLayer //////////////////// QCPLayer
@@ -1841,7 +1836,7 @@ void QCPLayerable::wheelEvent(QWheelEvent *event)
/* including file 'src/axis/range.cpp' */ /* including file 'src/axis/range.cpp' */
/* modified 2021-03-29T02:30:44, size 12221 */ /* modified 2022-11-06T12:45:56, size 12221 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPRange //////////////////// QCPRange
@@ -2163,7 +2158,7 @@ bool QCPRange::validRange(const QCPRange &range)
/* including file 'src/selection.cpp' */ /* including file 'src/selection.cpp' */
/* modified 2021-03-29T02:30:44, size 21837 */ /* modified 2022-11-06T12:45:56, size 21837 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPDataRange //////////////////// QCPDataRange
@@ -2764,7 +2759,7 @@ QCPDataSelection QCPDataSelection::inverse(const QCPDataRange &outerRange) const
/* including file 'src/selectionrect.cpp' */ /* including file 'src/selectionrect.cpp' */
/* modified 2021-03-29T02:30:44, size 9215 */ /* modified 2022-11-06T12:45:56, size 9215 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPSelectionRect //////////////////// QCPSelectionRect
@@ -2993,7 +2988,7 @@ void QCPSelectionRect::draw(QCPPainter *painter)
/* including file 'src/layout.cpp' */ /* including file 'src/layout.cpp' */
/* modified 2021-03-29T02:30:44, size 78863 */ /* modified 2022-11-06T12:45:56, size 78863 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPMarginGroup //////////////////// QCPMarginGroup
@@ -5166,7 +5161,7 @@ void QCPLayoutInset::addElement(QCPLayoutElement *element, const QRectF &rect)
/* including file 'src/lineending.cpp' */ /* including file 'src/lineending.cpp' */
/* modified 2021-03-29T02:30:44, size 11189 */ /* modified 2022-11-06T12:45:56, size 11189 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPLineEnding //////////////////// QCPLineEnding
@@ -5460,7 +5455,7 @@ void QCPLineEnding::draw(QCPPainter *painter, const QCPVector2D &pos, double ang
/* including file 'src/axis/labelpainter.cpp' */ /* including file 'src/axis/labelpainter.cpp' */
/* modified 2021-03-29T02:30:44, size 27296 */ /* modified 2022-11-06T12:45:56, size 27519 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -5658,8 +5653,8 @@ QByteArray QCPLabelPainterPrivate::generateLabelParameterHash() const
QByteArray result; QByteArray result;
result.append(QByteArray::number(mParentPlot->bufferDevicePixelRatio())); result.append(QByteArray::number(mParentPlot->bufferDevicePixelRatio()));
result.append(QByteArray::number(mRotation)); result.append(QByteArray::number(mRotation));
//result.append(QByteArray::number((int)tickLabelSide)); TODO: check whether this is really a cache-invalidating property //result.append(QByteArray::number(int(tickLabelSide))); TODO: check whether this is really a cache-invalidating property
result.append(QByteArray::number((int)mSubstituteExponent)); result.append(QByteArray::number(int(mSubstituteExponent)));
result.append(QString(mMultiplicationSymbol).toUtf8()); result.append(QString(mMultiplicationSymbol).toUtf8());
result.append(mColor.name().toLatin1()+QByteArray::number(mColor.alpha(), 16)); result.append(mColor.name().toLatin1()+QByteArray::number(mColor.alpha(), 16));
result.append(mFont.toString().toLatin1()); result.append(mFont.toString().toLatin1());
@@ -5762,9 +5757,12 @@ QPointF QCPLabelPainterPrivate::getAnchorPos(const QPointF &tickPos)
case asTopRight: return tickPos+QPointF(-mPadding*M_SQRT1_2, mPadding*M_SQRT1_2); case asTopRight: return tickPos+QPointF(-mPadding*M_SQRT1_2, mPadding*M_SQRT1_2);
case asBottomRight: return tickPos+QPointF(-mPadding*M_SQRT1_2, -mPadding*M_SQRT1_2); case asBottomRight: return tickPos+QPointF(-mPadding*M_SQRT1_2, -mPadding*M_SQRT1_2);
case asBottomLeft: return tickPos+QPointF(mPadding*M_SQRT1_2, -mPadding*M_SQRT1_2); case asBottomLeft: return tickPos+QPointF(mPadding*M_SQRT1_2, -mPadding*M_SQRT1_2);
default: qDebug() << Q_FUNC_INFO << "invalid mode for anchor side: " << mAnchorSide; break;
} }
break;
} }
case amSkewedUpright: case amSkewedUpright:
// fall through
case amSkewedRotated: case amSkewedRotated:
{ {
QCPVector2D anchorNormal(tickPos-mAnchorReference); QCPVector2D anchorNormal(tickPos-mAnchorReference);
@@ -5773,6 +5771,7 @@ QPointF QCPLabelPainterPrivate::getAnchorPos(const QPointF &tickPos)
anchorNormal.normalize(); anchorNormal.normalize();
return tickPos+(anchorNormal*mPadding).toPointF(); return tickPos+(anchorNormal*mPadding).toPointF();
} }
default: qDebug() << Q_FUNC_INFO << "invalid mode for anchor mode: " << mAnchorMode; break;
} }
return tickPos; return tickPos;
} }
@@ -5990,8 +5989,8 @@ QByteArray QCPLabelPainterPrivate::cacheKey(const QString &text, const QColor &c
{ {
return text.toUtf8()+ return text.toUtf8()+
QByteArray::number(color.red()+256*color.green()+65536*color.blue(), 36)+ QByteArray::number(color.red()+256*color.green()+65536*color.blue(), 36)+
QByteArray::number(color.alpha()+256*(int)side, 36)+ QByteArray::number(color.alpha()+256*int(side), 36)+
QByteArray::number((int)(rotation*100)%36000, 36); QByteArray::number(int(rotation*100), 36);
} }
QCPLabelPainterPrivate::AnchorSide QCPLabelPainterPrivate::skewedAnchorSide(const QPointF &tickPos, double sideExpandHorz, double sideExpandVert) const QCPLabelPainterPrivate::AnchorSide QCPLabelPainterPrivate::skewedAnchorSide(const QPointF &tickPos, double sideExpandHorz, double sideExpandVert) const
@@ -6059,7 +6058,7 @@ void QCPLabelPainterPrivate::analyzeFontMetrics()
/* including file 'src/axis/axisticker.cpp' */ /* including file 'src/axis/axisticker.cpp' */
/* modified 2021-03-29T02:30:44, size 18688 */ /* modified 2022-11-06T12:45:56, size 18693 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTicker //////////////////// QCPAxisTicker
@@ -6443,7 +6442,7 @@ double QCPAxisTicker::pickClosest(double target, const QVector<double> &candidat
*/ */
double QCPAxisTicker::getMantissa(double input, double *magnitude) const double QCPAxisTicker::getMantissa(double input, double *magnitude) const
{ {
const double mag = qPow(10.0, qFloor(qLn(input)/qLn(10.0))); const double mag = std::pow(10.0, std::floor(std::log10(input)));
if (magnitude) *magnitude = mag; if (magnitude) *magnitude = mag;
return input/mag; return input/mag;
} }
@@ -6479,7 +6478,7 @@ double QCPAxisTicker::cleanMantissa(double input) const
/* including file 'src/axis/axistickerdatetime.cpp' */ /* including file 'src/axis/axistickerdatetime.cpp' */
/* modified 2021-03-29T02:30:44, size 18829 */ /* modified 2022-11-06T12:45:56, size 18829 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTickerDateTime //////////////////// QCPAxisTickerDateTime
@@ -6836,7 +6835,7 @@ double QCPAxisTickerDateTime::dateTimeToKey(const QDate &date, Qt::TimeSpec time
/* including file 'src/axis/axistickertime.cpp' */ /* including file 'src/axis/axistickertime.cpp' */
/* modified 2021-03-29T02:30:44, size 11745 */ /* modified 2022-11-06T12:45:56, size 11745 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTickerTime //////////////////// QCPAxisTickerTime
@@ -7085,7 +7084,7 @@ void QCPAxisTickerTime::replaceUnit(QString &text, QCPAxisTickerTime::TimeUnit u
/* including file 'src/axis/axistickerfixed.cpp' */ /* including file 'src/axis/axistickerfixed.cpp' */
/* modified 2021-03-29T02:30:44, size 5575 */ /* modified 2022-11-06T12:45:56, size 5575 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTickerFixed //////////////////// QCPAxisTickerFixed
@@ -7187,7 +7186,7 @@ double QCPAxisTickerFixed::getTickStep(const QCPRange &range)
/* including file 'src/axis/axistickertext.cpp' */ /* including file 'src/axis/axistickertext.cpp' */
/* modified 2021-03-29T02:30:44, size 8742 */ /* modified 2022-11-06T12:45:56, size 8742 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTickerText //////////////////// QCPAxisTickerText
@@ -7404,7 +7403,7 @@ QVector<double> QCPAxisTickerText::createTickVector(double tickStep, const QCPRa
/* including file 'src/axis/axistickerpi.cpp' */ /* including file 'src/axis/axistickerpi.cpp' */
/* modified 2021-03-29T02:30:44, size 11177 */ /* modified 2022-11-06T12:45:56, size 11177 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTickerPi //////////////////// QCPAxisTickerPi
@@ -7691,7 +7690,7 @@ QString QCPAxisTickerPi::unicodeSubscript(int number) const
/* including file 'src/axis/axistickerlog.cpp' */ /* including file 'src/axis/axistickerlog.cpp' */
/* modified 2021-03-29T02:30:44, size 7890 */ /* modified 2022-11-06T12:45:56, size 7890 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAxisTickerLog //////////////////// QCPAxisTickerLog
@@ -7832,7 +7831,7 @@ QVector<double> QCPAxisTickerLog::createTickVector(double tickStep, const QCPRan
/* including file 'src/axis/axis.cpp' */ /* including file 'src/axis/axis.cpp' */
/* modified 2021-03-29T02:30:44, size 99883 */ /* modified 2022-11-06T12:45:56, size 99911 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -10353,7 +10352,7 @@ QCPAxisPainterPrivate::TickLabelData QCPAxisPainterPrivate::getTickLabelData(con
int eLast = -1; // last index of exponent part, rest of text after this will be suffixPart int eLast = -1; // last index of exponent part, rest of text after this will be suffixPart
if (substituteExponent) if (substituteExponent)
{ {
ePos = text.indexOf(QLatin1Char('e')); ePos = text.indexOf(QString(mParentPlot->locale().exponential()));
if (ePos > 0 && text.at(ePos-1).isDigit()) if (ePos > 0 && text.at(ePos-1).isDigit())
{ {
eLast = ePos; eLast = ePos;
@@ -10550,7 +10549,7 @@ void QCPAxisPainterPrivate::getMaxTickLabelSize(const QFont &font, const QString
/* including file 'src/scatterstyle.cpp' */ /* including file 'src/scatterstyle.cpp' */
/* modified 2021-03-29T02:30:44, size 17466 */ /* modified 2022-11-06T12:45:56, size 17466 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPScatterStyle //////////////////// QCPScatterStyle
@@ -11023,7 +11022,7 @@ void QCPScatterStyle::drawShape(QCPPainter *painter, double x, double y) const
/* including file 'src/plottable.cpp' */ /* including file 'src/plottable.cpp' */
/* modified 2021-03-29T02:30:44, size 38818 */ /* modified 2022-11-06T12:45:56, size 38818 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPSelectionDecorator //////////////////// QCPSelectionDecorator
@@ -11994,7 +11993,7 @@ void QCPAbstractPlottable::deselectEvent(bool *selectionStateChanged)
/* including file 'src/item.cpp' */ /* including file 'src/item.cpp' */
/* modified 2021-03-29T02:30:44, size 49486 */ /* modified 2022-11-06T12:45:56, size 49486 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemAnchor //////////////////// QCPItemAnchor
@@ -13266,7 +13265,7 @@ QCP::Interaction QCPAbstractItem::selectionCategory() const
/* including file 'src/core.cpp' */ /* including file 'src/core.cpp' */
/* modified 2021-03-29T02:30:44, size 127198 */ /* modified 2022-11-06T12:45:56, size 127625 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCustomPlot //////////////////// QCustomPlot
@@ -13278,7 +13277,7 @@ QCP::Interaction QCPAbstractItem::selectionCategory() const
interacts with the user. interacts with the user.
For tutorials on how to use QCustomPlot, see the website\n For tutorials on how to use QCustomPlot, see the website\n
http://www.qcustomplot.com/ https://www.qcustomplot.com/
*/ */
/* start of documentation of inline functions */ /* start of documentation of inline functions */
@@ -13602,7 +13601,7 @@ QCustomPlot::QCustomPlot(QWidget *parent) :
xAxis2(nullptr), xAxis2(nullptr),
yAxis2(nullptr), yAxis2(nullptr),
legend(nullptr), legend(nullptr),
mBufferDevicePixelRatio(1.0), // will be adapted to primary screen below mBufferDevicePixelRatio(1.0), // will be adapted to true value below
mPlotLayout(nullptr), mPlotLayout(nullptr),
mAutoAddPlottableToLegend(true), mAutoAddPlottableToLegend(true),
mAntialiasedElements(QCP::aeNone), mAntialiasedElements(QCP::aeNone),
@@ -13631,7 +13630,6 @@ QCustomPlot::QCustomPlot(QWidget *parent) :
mOpenGlCacheLabelsBackup(true) mOpenGlCacheLabelsBackup(true)
{ {
setAttribute(Qt::WA_NoMousePropagation); setAttribute(Qt::WA_NoMousePropagation);
setAttribute(Qt::WA_OpaquePaintEvent);
setFocusPolicy(Qt::ClickFocus); setFocusPolicy(Qt::ClickFocus);
setMouseTracking(true); setMouseTracking(true);
QLocale currentLocale = locale(); QLocale currentLocale = locale();
@@ -15471,6 +15469,22 @@ QSize QCustomPlot::sizeHint() const
void QCustomPlot::paintEvent(QPaintEvent *event) void QCustomPlot::paintEvent(QPaintEvent *event)
{ {
Q_UNUSED(event) Q_UNUSED(event)
// detect if the device pixel ratio has changed (e.g. moving window between different DPI screens), and adapt buffers if necessary:
#ifdef QCP_DEVICEPIXELRATIO_SUPPORTED
# ifdef QCP_DEVICEPIXELRATIO_FLOAT
double newDpr = devicePixelRatioF();
# else
double newDpr = devicePixelRatio();
# endif
if (!qFuzzyCompare(mBufferDevicePixelRatio, newDpr))
{
setBufferDevicePixelRatio(newDpr);
replot(QCustomPlot::rpQueuedRefresh);
return;
}
#endif
QCPPainter painter(this); QCPPainter painter(this);
if (painter.isActive()) if (painter.isActive())
{ {
@@ -16485,7 +16499,7 @@ void QCustomPlot::toPainter(QCPPainter *painter, int width, int height)
/* including file 'src/colorgradient.cpp' */ /* including file 'src/colorgradient.cpp' */
/* modified 2021-03-29T02:30:44, size 25278 */ /* modified 2022-11-06T12:45:56, size 25408 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -16715,10 +16729,10 @@ void QCPColorGradient::colorize(const double *data, const QCPRange &range, QRgb
const double value = data[dataIndexFactor*i]; const double value = data[dataIndexFactor*i];
if (skipNanCheck || !std::isnan(value)) if (skipNanCheck || !std::isnan(value))
{ {
int index = int((!logarithmic ? value-range.lower : qLn(value/range.lower)) * posToIndexFactor); qint64 index = qint64((!logarithmic ? value-range.lower : qLn(value/range.lower)) * posToIndexFactor);
if (!mPeriodic) if (!mPeriodic)
{ {
index = qBound(0, index, mLevelCount-1); index = qBound(qint64(0), index, qint64(mLevelCount-1));
} else } else
{ {
index %= mLevelCount; index %= mLevelCount;
@@ -16776,10 +16790,10 @@ void QCPColorGradient::colorize(const double *data, const unsigned char *alpha,
const double value = data[dataIndexFactor*i]; const double value = data[dataIndexFactor*i];
if (skipNanCheck || !std::isnan(value)) if (skipNanCheck || !std::isnan(value))
{ {
int index = int((!logarithmic ? value-range.lower : qLn(value/range.lower)) * posToIndexFactor); qint64 index = qint64((!logarithmic ? value-range.lower : qLn(value/range.lower)) * posToIndexFactor);
if (!mPeriodic) if (!mPeriodic)
{ {
index = qBound(0, index, mLevelCount-1); index = qBound(qint64(0), index, qint64(mLevelCount-1));
} else } else
{ {
index %= mLevelCount; index %= mLevelCount;
@@ -17022,7 +17036,7 @@ void QCPColorGradient::updateColorBuffer()
for (int i=0; i<mLevelCount; ++i) for (int i=0; i<mLevelCount; ++i)
{ {
double position = i*indexToPosFactor; double position = i*indexToPosFactor;
QMap<double, QColor>::const_iterator it = mColorStops.lowerBound(position); QMap<double, QColor>::const_iterator it = const_cast<const QMap<double, QColor>*>(&mColorStops)->lowerBound(position); // force using the const lowerBound method
if (it == mColorStops.constEnd()) // position is on or after last stop, use color of last stop if (it == mColorStops.constEnd()) // position is on or after last stop, use color of last stop
{ {
if (useAlpha) if (useAlpha)
@@ -17120,7 +17134,7 @@ void QCPColorGradient::updateColorBuffer()
/* including file 'src/selectiondecorator-bracket.cpp' */ /* including file 'src/selectiondecorator-bracket.cpp' */
/* modified 2021-03-29T02:30:44, size 12308 */ /* modified 2022-11-06T12:45:56, size 12308 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPSelectionDecoratorBracket //////////////////// QCPSelectionDecoratorBracket
@@ -17406,7 +17420,7 @@ QPointF QCPSelectionDecoratorBracket::getPixelCoordinates(const QCPPlottableInte
/* including file 'src/layoutelements/layoutelement-axisrect.cpp' */ /* including file 'src/layoutelements/layoutelement-axisrect.cpp' */
/* modified 2021-03-29T02:30:44, size 47193 */ /* modified 2022-11-06T12:45:56, size 47193 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -18691,7 +18705,7 @@ void QCPAxisRect::wheelEvent(QWheelEvent *event)
/* including file 'src/layoutelements/layoutelement-legend.cpp' */ /* including file 'src/layoutelements/layoutelement-legend.cpp' */
/* modified 2021-03-29T02:30:44, size 31762 */ /* modified 2022-11-06T12:45:56, size 31762 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPAbstractLegendItem //////////////////// QCPAbstractLegendItem
@@ -19615,7 +19629,7 @@ void QCPLegend::parentPlotInitialized(QCustomPlot *parentPlot)
/* including file 'src/layoutelements/layoutelement-textelement.cpp' */ /* including file 'src/layoutelements/layoutelement-textelement.cpp' */
/* modified 2021-03-29T02:30:44, size 12925 */ /* modified 2022-11-06T12:45:56, size 12925 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPTextElement //////////////////// QCPTextElement
@@ -20021,7 +20035,7 @@ QColor QCPTextElement::mainTextColor() const
/* including file 'src/layoutelements/layoutelement-colorscale.cpp' */ /* including file 'src/layoutelements/layoutelement-colorscale.cpp' */
/* modified 2021-03-29T02:30:44, size 26531 */ /* modified 2022-11-06T12:45:56, size 26531 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -20705,7 +20719,7 @@ void QCPColorScaleAxisRectPrivate::axisSelectableChanged(QCPAxis::SelectablePart
/* including file 'src/plottables/plottable-graph.cpp' */ /* including file 'src/plottables/plottable-graph.cpp' */
/* modified 2021-03-29T02:30:44, size 74518 */ /* modified 2022-11-06T12:45:57, size 74926 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPGraphData //////////////////// QCPGraphData
@@ -21535,21 +21549,37 @@ QVector<QPointF> QCPGraph::dataToImpulseLines(const QVector<QCPGraphData> &data)
{ {
for (int i=0; i<data.size(); ++i) for (int i=0; i<data.size(); ++i)
{ {
const double key = keyAxis->coordToPixel(data.at(i).key); const QCPGraphData &current = data.at(i);
result[i*2+0].setX(valueAxis->coordToPixel(0)); if (!qIsNaN(current.value))
result[i*2+0].setY(key); {
result[i*2+1].setX(valueAxis->coordToPixel(data.at(i).value)); const double key = keyAxis->coordToPixel(current.key);
result[i*2+1].setY(key); result[i*2+0].setX(valueAxis->coordToPixel(0));
result[i*2+0].setY(key);
result[i*2+1].setX(valueAxis->coordToPixel(current.value));
result[i*2+1].setY(key);
} else
{
result[i*2+0] = QPointF(0, 0);
result[i*2+1] = QPointF(0, 0);
}
} }
} else // key axis is horizontal } else // key axis is horizontal
{ {
for (int i=0; i<data.size(); ++i) for (int i=0; i<data.size(); ++i)
{ {
const double key = keyAxis->coordToPixel(data.at(i).key); const QCPGraphData &current = data.at(i);
result[i*2+0].setX(key); if (!qIsNaN(current.value))
result[i*2+0].setY(valueAxis->coordToPixel(0)); {
result[i*2+1].setX(key); const double key = keyAxis->coordToPixel(data.at(i).key);
result[i*2+1].setY(valueAxis->coordToPixel(data.at(i).value)); result[i*2+0].setX(key);
result[i*2+0].setY(valueAxis->coordToPixel(0));
result[i*2+1].setX(key);
result[i*2+1].setY(valueAxis->coordToPixel(data.at(i).value));
} else
{
result[i*2+0] = QPointF(0, 0);
result[i*2+1] = QPointF(0, 0);
}
} }
} }
return result; return result;
@@ -22463,7 +22493,7 @@ int QCPGraph::findIndexBelowY(const QVector<QPointF> *data, double y) const
/* including file 'src/plottables/plottable-curve.cpp' */ /* including file 'src/plottables/plottable-curve.cpp' */
/* modified 2021-03-29T02:30:44, size 63851 */ /* modified 2022-11-06T12:45:56, size 63851 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPCurveData //////////////////// QCPCurveData
@@ -23921,7 +23951,7 @@ double QCPCurve::pointDistance(const QPointF &pixelPoint, QCPCurveDataContainer:
/* including file 'src/plottables/plottable-bars.cpp' */ /* including file 'src/plottables/plottable-bars.cpp' */
/* modified 2021-03-29T02:30:44, size 43907 */ /* modified 2022-11-06T12:45:56, size 43907 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -25097,7 +25127,7 @@ void QCPBars::connectBars(QCPBars *lower, QCPBars *upper)
/* including file 'src/plottables/plottable-statisticalbox.cpp' */ /* including file 'src/plottables/plottable-statisticalbox.cpp' */
/* modified 2021-03-29T02:30:44, size 28951 */ /* modified 2022-11-06T12:45:57, size 28951 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPStatisticalBoxData //////////////////// QCPStatisticalBoxData
@@ -25759,7 +25789,7 @@ QVector<QLineF> QCPStatisticalBox::getWhiskerBarLines(QCPStatisticalBoxDataConta
/* including file 'src/plottables/plottable-colormap.cpp' */ /* including file 'src/plottables/plottable-colormap.cpp' */
/* modified 2021-03-29T02:30:44, size 48149 */ /* modified 2022-11-06T12:45:56, size 48189 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPColorMapData //////////////////// QCPColorMapData
@@ -26129,8 +26159,8 @@ void QCPColorMapData::recalculateDataBounds()
{ {
if (mKeySize > 0 && mValueSize > 0) if (mKeySize > 0 && mValueSize > 0)
{ {
double minHeight = mData[0]; double minHeight = std::numeric_limits<double>::max();
double maxHeight = mData[0]; double maxHeight = -std::numeric_limits<double>::max();
const int dataCount = mValueSize*mKeySize; const int dataCount = mValueSize*mKeySize;
for (int i=0; i<dataCount; ++i) for (int i=0; i<dataCount; ++i)
{ {
@@ -26173,8 +26203,7 @@ void QCPColorMapData::clearAlpha()
void QCPColorMapData::fill(double z) void QCPColorMapData::fill(double z)
{ {
const int dataCount = mValueSize*mKeySize; const int dataCount = mValueSize*mKeySize;
for (int i=0; i<dataCount; ++i) memset(mData, z, dataCount*sizeof(*mData));
mData[i] = z;
mDataBounds = QCPRange(z, z); mDataBounds = QCPRange(z, z);
mDataModified = true; mDataModified = true;
} }
@@ -26193,8 +26222,7 @@ void QCPColorMapData::fillAlpha(unsigned char alpha)
if (mAlpha || createAlpha(false)) if (mAlpha || createAlpha(false))
{ {
const int dataCount = mValueSize*mKeySize; const int dataCount = mValueSize*mKeySize;
for (int i=0; i<dataCount; ++i) memset(mAlpha, alpha, dataCount*sizeof(*mAlpha));
mAlpha[i] = alpha;
mDataModified = true; mDataModified = true;
} }
} }
@@ -26892,7 +26920,7 @@ void QCPColorMap::drawLegendIcon(QCPPainter *painter, const QRectF &rect) const
/* including file 'src/plottables/plottable-financial.cpp' */ /* including file 'src/plottables/plottable-financial.cpp' */
/* modified 2021-03-29T02:30:44, size 42914 */ /* modified 2022-11-06T12:45:57, size 42914 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPFinancialData //////////////////// QCPFinancialData
@@ -27854,7 +27882,7 @@ QRectF QCPFinancial::selectionHitBox(QCPFinancialDataContainer::const_iterator i
/* including file 'src/plottables/plottable-errorbar.cpp' */ /* including file 'src/plottables/plottable-errorbar.cpp' */
/* modified 2021-03-29T02:30:44, size 37679 */ /* modified 2022-11-06T12:45:56, size 37679 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPErrorBarsData //////////////////// QCPErrorBarsData
@@ -28822,7 +28850,7 @@ bool QCPErrorBars::rectIntersectsLine(const QRectF &pixelRect, const QLineF &lin
/* including file 'src/items/item-straightline.cpp' */ /* including file 'src/items/item-straightline.cpp' */
/* modified 2021-03-29T02:30:44, size 7596 */ /* modified 2022-11-06T12:45:56, size 7596 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemStraightLine //////////////////// QCPItemStraightLine
@@ -29003,7 +29031,7 @@ QPen QCPItemStraightLine::mainPen() const
/* including file 'src/items/item-line.cpp' */ /* including file 'src/items/item-line.cpp' */
/* modified 2021-03-29T02:30:44, size 8525 */ /* modified 2022-11-06T12:45:56, size 8525 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemLine //////////////////// QCPItemLine
@@ -29234,7 +29262,7 @@ QPen QCPItemLine::mainPen() const
/* including file 'src/items/item-curve.cpp' */ /* including file 'src/items/item-curve.cpp' */
/* modified 2021-03-29T02:30:44, size 7273 */ /* modified 2022-11-06T12:45:56, size 7273 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemCurve //////////////////// QCPItemCurve
@@ -29403,7 +29431,7 @@ QPen QCPItemCurve::mainPen() const
/* including file 'src/items/item-rect.cpp' */ /* including file 'src/items/item-rect.cpp' */
/* modified 2021-03-29T02:30:44, size 6472 */ /* modified 2022-11-06T12:45:56, size 6472 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemRect //////////////////// QCPItemRect
@@ -29560,7 +29588,7 @@ QBrush QCPItemRect::mainBrush() const
/* including file 'src/items/item-text.cpp' */ /* including file 'src/items/item-text.cpp' */
/* modified 2021-03-29T02:30:44, size 13335 */ /* modified 2022-11-06T12:45:56, size 13335 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemText //////////////////// QCPItemText
@@ -29908,7 +29936,7 @@ QBrush QCPItemText::mainBrush() const
/* including file 'src/items/item-ellipse.cpp' */ /* including file 'src/items/item-ellipse.cpp' */
/* modified 2021-03-29T02:30:44, size 7881 */ /* modified 2022-11-06T12:45:56, size 7881 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemEllipse //////////////////// QCPItemEllipse
@@ -30097,7 +30125,7 @@ QBrush QCPItemEllipse::mainBrush() const
/* including file 'src/items/item-pixmap.cpp' */ /* including file 'src/items/item-pixmap.cpp' */
/* modified 2021-03-29T02:30:44, size 10622 */ /* modified 2022-11-06T12:45:56, size 10622 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemPixmap //////////////////// QCPItemPixmap
@@ -30367,7 +30395,7 @@ QPen QCPItemPixmap::mainPen() const
/* including file 'src/items/item-tracer.cpp' */ /* including file 'src/items/item-tracer.cpp' */
/* modified 2021-03-29T02:30:44, size 14645 */ /* modified 2022-11-06T12:45:56, size 14645 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemTracer //////////////////// QCPItemTracer
@@ -30737,7 +30765,7 @@ QBrush QCPItemTracer::mainBrush() const
/* including file 'src/items/item-bracket.cpp' */ /* including file 'src/items/item-bracket.cpp' */
/* modified 2021-03-29T02:30:44, size 10705 */ /* modified 2022-11-06T12:45:56, size 10705 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////// QCPItemBracket //////////////////// QCPItemBracket
@@ -30978,7 +31006,7 @@ QPen QCPItemBracket::mainPen() const
/* including file 'src/polar/radialaxis.cpp' */ /* including file 'src/polar/radialaxis.cpp' */
/* modified 2021-03-29T02:30:44, size 49415 */ /* modified 2022-11-06T12:45:57, size 49415 */
@@ -32439,7 +32467,7 @@ QCP::Interaction QCPPolarAxisRadial::selectionCategory() const
/* including file 'src/polar/layoutelement-angularaxis.cpp' */ /* including file 'src/polar/layoutelement-angularaxis.cpp' */
/* modified 2021-03-29T02:30:44, size 57266 */ /* modified 2022-11-06T12:45:57, size 57266 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -34130,7 +34158,7 @@ bool QCPPolarAxisAngular::registerPolarGraph(QCPPolarGraph *graph)
/* including file 'src/polar/polargrid.cpp' */ /* including file 'src/polar/polargrid.cpp' */
/* modified 2021-03-29T02:30:44, size 7493 */ /* modified 2022-11-06T12:45:57, size 7493 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -34318,7 +34346,7 @@ void QCPPolarGrid::drawAngularGrid(QCPPainter *painter, const QPointF &center, d
/* including file 'src/polar/polargraph.cpp' */ /* including file 'src/polar/polargraph.cpp' */
/* modified 2021-03-29T02:30:44, size 44035 */ /* modified 2022-11-06T12:45:57, size 44035 */
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
+129 -80
View File
@@ -1,7 +1,7 @@
/*************************************************************************** /***************************************************************************
** ** ** **
** QCustomPlot, an easy to use, modern plotting widget for Qt ** ** QCustomPlot, an easy to use, modern plotting widget for Qt **
** Copyright (C) 2011-2021 Emanuel Eichhammer ** ** Copyright (C) 2011-2022 Emanuel Eichhammer **
** ** ** **
** This program is free software: you can redistribute it and/or modify ** ** This program is free software: you can redistribute it and/or modify **
** it under the terms of the GNU General Public License as published by ** ** it under the terms of the GNU General Public License as published by **
@@ -18,9 +18,9 @@
** ** ** **
**************************************************************************** ****************************************************************************
** Author: Emanuel Eichhammer ** ** Author: Emanuel Eichhammer **
** Website/Contact: http://www.qcustomplot.com/ ** ** Website/Contact: https://www.qcustomplot.com/ **
** Date: 29.03.21 ** ** Date: 06.11.22 **
** Version: 2.1.0 ** ** Version: 2.1.1 **
****************************************************************************/ ****************************************************************************/
#ifndef QCUSTOMPLOT_H #ifndef QCUSTOMPLOT_H
@@ -129,10 +129,10 @@ class QCPPolarGrid;
class QCPPolarGraph; class QCPPolarGraph;
/* including file 'src/global.h' */ /* including file 'src/global.h' */
/* modified 2021-03-29T02:30:44, size 16981 */ /* modified 2022-11-06T12:45:57, size 18102 */
#define QCUSTOMPLOT_VERSION_STR "2.1.0" #define QCUSTOMPLOT_VERSION_STR "2.1.1"
#define QCUSTOMPLOT_VERSION 0x020100 #define QCUSTOMPLOT_VERSION 0x020101
// decl definitions for shared library compilation/usage: // decl definitions for shared library compilation/usage:
#if defined(QT_STATIC_BUILD) #if defined(QT_STATIC_BUILD)
@@ -156,8 +156,35 @@ class QCPPolarGraph;
It provides QMetaObject-based reflection of its enums and flags via \a QCP::staticMetaObject. It provides QMetaObject-based reflection of its enums and flags via \a QCP::staticMetaObject.
*/ */
// Qt version < 6.2.0: to get metatypes Q_GADGET/Q_ENUMS/Q_FLAGS in namespace we have to make it look like a class during moc-run
#if QT_VERSION >= 0x060200 // don't use QT_VERSION_CHECK here, some moc versions don't understand it
namespace QCP { namespace QCP {
Q_NAMESPACE Q_NAMESPACE // this is how to add the staticMetaObject to namespaces in newer Qt versions
#else // Qt version older than 6.2.0
# ifndef Q_MOC_RUN
namespace QCP {
# else // not in moc run
class QCP {
Q_GADGET
Q_ENUMS(ExportPen)
Q_ENUMS(ResolutionUnit)
Q_ENUMS(SignDomain)
Q_ENUMS(MarginSide)
Q_ENUMS(AntialiasedElement)
Q_ENUMS(PlottingHint)
Q_ENUMS(Interaction)
Q_ENUMS(SelectionRectMode)
Q_ENUMS(SelectionType)
Q_FLAGS(AntialiasedElements)
Q_FLAGS(PlottingHints)
Q_FLAGS(MarginSides)
Q_FLAGS(Interactions)
public:
# endif
#endif
/*! /*!
Defines the different units in which the image resolution can be specified in the export Defines the different units in which the image resolution can be specified in the export
@@ -300,20 +327,6 @@ enum SelectionType { stNone ///< The plottable is not selectable
,stMultipleDataRanges ///< Any combination of data points/ranges can be selected ,stMultipleDataRanges ///< Any combination of data points/ranges can be selected
}; };
Q_ENUM_NS(ExportPen)
Q_ENUM_NS(ResolutionUnit)
Q_ENUM_NS(SignDomain)
Q_ENUM_NS(MarginSide)
Q_FLAG_NS(MarginSides)
Q_ENUM_NS(AntialiasedElement)
Q_FLAG_NS(AntialiasedElements)
Q_ENUM_NS(PlottingHint)
Q_FLAG_NS(PlottingHints)
Q_ENUM_NS(Interaction)
Q_FLAG_NS(Interactions)
Q_ENUM_NS(SelectionRectMode)
Q_ENUM_NS(SelectionType)
/*! \internal /*! \internal
Returns whether the specified \a value is considered an invalid data value for plottables (i.e. Returns whether the specified \a value is considered an invalid data value for plottables (i.e.
@@ -374,21 +387,55 @@ inline int getMarginValue(const QMargins &margins, QCP::MarginSide side)
return 0; return 0;
} }
// for newer Qt versions we have to declare the enums/flags as metatypes inside the namespace using Q_ENUM_NS/Q_FLAG_NS:
// if you change anything here, don't forget to change it for older Qt versions below, too,
// and at the start of the namespace in the fake moc-run class
#if QT_VERSION >= 0x060200
Q_ENUM_NS(ExportPen)
Q_ENUM_NS(ResolutionUnit)
Q_ENUM_NS(SignDomain)
Q_ENUM_NS(MarginSide)
Q_ENUM_NS(AntialiasedElement)
Q_ENUM_NS(PlottingHint)
Q_ENUM_NS(Interaction)
Q_ENUM_NS(SelectionRectMode)
Q_ENUM_NS(SelectionType)
extern const QMetaObject staticMetaObject; // in moc-run we create a static meta object for QCP "fake" object. This line is the link to it via QCP::staticMetaObject in normal operation as namespace Q_FLAG_NS(AntialiasedElements)
Q_FLAG_NS(PlottingHints)
Q_FLAG_NS(MarginSides)
Q_FLAG_NS(Interactions)
#else
extern const QMetaObject staticMetaObject;
#endif
} // end of namespace QCP } // end of namespace QCP
Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::AntialiasedElements) Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::AntialiasedElements)
Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::PlottingHints) Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::PlottingHints)
Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::MarginSides) Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::MarginSides)
Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::Interactions) Q_DECLARE_OPERATORS_FOR_FLAGS(QCP::Interactions)
//no need to use Q_DECLARE_METATYPE on enum since Q_ENUM_NS adds enum as metatype automatically
// for older Qt versions we have to declare the enums/flags as metatypes outside the namespace using Q_DECLARE_METATYPE:
// if you change anything here, don't forget to change it for newer Qt versions above, too,
// and at the start of the namespace in the fake moc-run class
#if QT_VERSION < QT_VERSION_CHECK(6, 2, 0)
Q_DECLARE_METATYPE(QCP::ExportPen)
Q_DECLARE_METATYPE(QCP::ResolutionUnit)
Q_DECLARE_METATYPE(QCP::SignDomain)
Q_DECLARE_METATYPE(QCP::MarginSide)
Q_DECLARE_METATYPE(QCP::AntialiasedElement)
Q_DECLARE_METATYPE(QCP::PlottingHint)
Q_DECLARE_METATYPE(QCP::Interaction)
Q_DECLARE_METATYPE(QCP::SelectionRectMode)
Q_DECLARE_METATYPE(QCP::SelectionType)
#endif
/* end of 'src/global.h' */ /* end of 'src/global.h' */
/* including file 'src/vector2d.h' */ /* including file 'src/vector2d.h' */
/* modified 2021-03-29T02:30:44, size 4988 */ /* modified 2022-11-06T12:45:56, size 4988 */
class QCP_LIB_DECL QCPVector2D class QCP_LIB_DECL QCPVector2D
{ {
@@ -463,7 +510,7 @@ inline QDebug operator<< (QDebug d, const QCPVector2D &vec)
/* including file 'src/painter.h' */ /* including file 'src/painter.h' */
/* modified 2021-03-29T02:30:44, size 4035 */ /* modified 2022-11-06T12:45:56, size 4035 */
class QCP_LIB_DECL QCPPainter : public QPainter class QCP_LIB_DECL QCPPainter : public QPainter
{ {
@@ -522,7 +569,7 @@ Q_DECLARE_METATYPE(QCPPainter::PainterMode)
/* including file 'src/paintbuffer.h' */ /* including file 'src/paintbuffer.h' */
/* modified 2021-03-29T02:30:44, size 5006 */ /* modified 2022-11-06T12:45:56, size 5006 */
class QCP_LIB_DECL QCPAbstractPaintBuffer class QCP_LIB_DECL QCPAbstractPaintBuffer
{ {
@@ -630,7 +677,7 @@ protected:
/* including file 'src/layer.h' */ /* including file 'src/layer.h' */
/* modified 2021-03-29T02:30:44, size 7038 */ /* modified 2022-11-06T12:45:56, size 7038 */
class QCP_LIB_DECL QCPLayer : public QObject class QCP_LIB_DECL QCPLayer : public QObject
{ {
@@ -779,7 +826,7 @@ private:
/* including file 'src/axis/range.h' */ /* including file 'src/axis/range.h' */
/* modified 2021-03-29T02:30:44, size 5280 */ /* modified 2022-11-06T12:45:56, size 5280 */
class QCP_LIB_DECL QCPRange class QCP_LIB_DECL QCPRange
{ {
@@ -897,7 +944,7 @@ inline const QCPRange operator/(const QCPRange& range, double value)
/* including file 'src/selection.h' */ /* including file 'src/selection.h' */
/* modified 2021-03-29T02:30:44, size 8569 */ /* modified 2022-11-06T12:45:56, size 8569 */
class QCP_LIB_DECL QCPDataRange class QCP_LIB_DECL QCPDataRange
{ {
@@ -1101,7 +1148,7 @@ inline QDebug operator<< (QDebug d, const QCPDataSelection &selection)
/* including file 'src/selectionrect.h' */ /* including file 'src/selectionrect.h' */
/* modified 2021-03-29T02:30:44, size 3354 */ /* modified 2022-11-06T12:45:56, size 3354 */
class QCP_LIB_DECL QCPSelectionRect : public QCPLayerable class QCP_LIB_DECL QCPSelectionRect : public QCPLayerable
{ {
@@ -1155,7 +1202,7 @@ protected:
/* including file 'src/layout.h' */ /* including file 'src/layout.h' */
/* modified 2021-03-29T02:30:44, size 14279 */ /* modified 2022-11-06T12:45:56, size 14279 */
class QCP_LIB_DECL QCPMarginGroup : public QObject class QCP_LIB_DECL QCPMarginGroup : public QObject
{ {
@@ -1476,7 +1523,7 @@ Q_DECLARE_METATYPE(QCPLayoutInset::InsetPlacement)
/* including file 'src/lineending.h' */ /* including file 'src/lineending.h' */
/* modified 2021-03-29T02:30:44, size 4426 */ /* modified 2022-11-06T12:45:56, size 4426 */
class QCP_LIB_DECL QCPLineEnding class QCP_LIB_DECL QCPLineEnding
{ {
@@ -1540,7 +1587,7 @@ Q_DECLARE_METATYPE(QCPLineEnding::EndingStyle)
/* including file 'src/axis/labelpainter.h' */ /* including file 'src/axis/labelpainter.h' */
/* modified 2021-03-29T02:30:44, size 7086 */ /* modified 2022-11-06T12:45:56, size 7086 */
class QCPLabelPainterPrivate class QCPLabelPainterPrivate
{ {
@@ -1680,7 +1727,7 @@ Q_DECLARE_METATYPE(QCPLabelPainterPrivate::AnchorSide)
/* including file 'src/axis/axisticker.h' */ /* including file 'src/axis/axisticker.h' */
/* modified 2021-03-29T02:30:44, size 4230 */ /* modified 2022-11-06T12:45:56, size 4230 */
class QCP_LIB_DECL QCPAxisTicker class QCP_LIB_DECL QCPAxisTicker
{ {
@@ -1745,7 +1792,7 @@ Q_DECLARE_METATYPE(QSharedPointer<QCPAxisTicker>)
/* including file 'src/axis/axistickerdatetime.h' */ /* including file 'src/axis/axistickerdatetime.h' */
/* modified 2021-03-29T02:30:44, size 3600 */ /* modified 2022-11-06T12:45:56, size 3600 */
class QCP_LIB_DECL QCPAxisTickerDateTime : public QCPAxisTicker class QCP_LIB_DECL QCPAxisTickerDateTime : public QCPAxisTicker
{ {
@@ -1794,7 +1841,7 @@ protected:
/* including file 'src/axis/axistickertime.h' */ /* including file 'src/axis/axistickertime.h' */
/* modified 2021-03-29T02:30:44, size 3542 */ /* modified 2022-11-06T12:45:56, size 3542 */
class QCP_LIB_DECL QCPAxisTickerTime : public QCPAxisTicker class QCP_LIB_DECL QCPAxisTickerTime : public QCPAxisTicker
{ {
@@ -1846,7 +1893,7 @@ Q_DECLARE_METATYPE(QCPAxisTickerTime::TimeUnit)
/* including file 'src/axis/axistickerfixed.h' */ /* including file 'src/axis/axistickerfixed.h' */
/* modified 2021-03-29T02:30:44, size 3308 */ /* modified 2022-11-06T12:45:56, size 3308 */
class QCP_LIB_DECL QCPAxisTickerFixed : public QCPAxisTicker class QCP_LIB_DECL QCPAxisTickerFixed : public QCPAxisTicker
{ {
@@ -1888,7 +1935,7 @@ Q_DECLARE_METATYPE(QCPAxisTickerFixed::ScaleStrategy)
/* including file 'src/axis/axistickertext.h' */ /* including file 'src/axis/axistickertext.h' */
/* modified 2021-03-29T02:30:44, size 3090 */ /* modified 2022-11-06T12:45:56, size 3090 */
class QCP_LIB_DECL QCPAxisTickerText : public QCPAxisTicker class QCP_LIB_DECL QCPAxisTickerText : public QCPAxisTicker
{ {
@@ -1926,7 +1973,7 @@ protected:
/* including file 'src/axis/axistickerpi.h' */ /* including file 'src/axis/axistickerpi.h' */
/* modified 2021-03-29T02:30:44, size 3911 */ /* modified 2022-11-06T12:45:56, size 3911 */
class QCP_LIB_DECL QCPAxisTickerPi : public QCPAxisTicker class QCP_LIB_DECL QCPAxisTickerPi : public QCPAxisTicker
{ {
@@ -1985,7 +2032,7 @@ Q_DECLARE_METATYPE(QCPAxisTickerPi::FractionStyle)
/* including file 'src/axis/axistickerlog.h' */ /* including file 'src/axis/axistickerlog.h' */
/* modified 2021-03-29T02:30:44, size 2594 */ /* modified 2022-11-06T12:45:56, size 2594 */
class QCP_LIB_DECL QCPAxisTickerLog : public QCPAxisTicker class QCP_LIB_DECL QCPAxisTickerLog : public QCPAxisTicker
{ {
@@ -2017,7 +2064,7 @@ protected:
/* including file 'src/axis/axis.h' */ /* including file 'src/axis/axis.h' */
/* modified 2021-03-29T02:30:44, size 20913 */ /* modified 2022-11-06T12:45:56, size 20913 */
class QCP_LIB_DECL QCPGrid :public QCPLayerable class QCP_LIB_DECL QCPGrid :public QCPLayerable
{ {
@@ -2445,7 +2492,7 @@ protected:
/* including file 'src/scatterstyle.h' */ /* including file 'src/scatterstyle.h' */
/* modified 2021-03-29T02:30:44, size 7275 */ /* modified 2022-11-06T12:45:56, size 7275 */
class QCP_LIB_DECL QCPScatterStyle class QCP_LIB_DECL QCPScatterStyle
{ {
@@ -2552,7 +2599,7 @@ Q_DECLARE_METATYPE(QCPScatterStyle::ScatterShape)
/* including file 'src/datacontainer.h' */ /* including file 'src/datacontainer.h' */
/* modified 2021-03-29T02:30:44, size 34070 */ /* modified 2022-11-06T12:45:56, size 34305 */
/*! \relates QCPDataContainer /*! \relates QCPDataContainer
Returns whether the sort key of \a a is less than the sort key of \a b. Returns whether the sort key of \a a is less than the sort key of \a b.
@@ -3221,6 +3268,8 @@ QCPRange QCPDataContainer<DataType>::keyRange(bool &foundRange, QCP::SignDomain
output parameter \a foundRange indicates whether a sensible range was found. If this is false, output parameter \a foundRange indicates whether a sensible range was found. If this is false,
you should not use the returned QCPRange (e.g. the data container is empty or all points have the you should not use the returned QCPRange (e.g. the data container is empty or all points have the
same value). same value).
Inf and -Inf data values are ignored.
If \a inKeyRange has both lower and upper bound set to zero (is equal to <tt>QCPRange()</tt>), If \a inKeyRange has both lower and upper bound set to zero (is equal to <tt>QCPRange()</tt>),
all data points are considered, without any restriction on the keys. all data points are considered, without any restriction on the keys.
@@ -3258,12 +3307,12 @@ QCPRange QCPDataContainer<DataType>::valueRange(bool &foundRange, QCP::SignDomai
if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper)) if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper))
continue; continue;
current = it->valueRange(); current = it->valueRange();
if ((current.lower < range.lower || !haveLower) && !qIsNaN(current.lower)) if ((current.lower < range.lower || !haveLower) && !qIsNaN(current.lower) && std::isfinite(current.lower))
{ {
range.lower = current.lower; range.lower = current.lower;
haveLower = true; haveLower = true;
} }
if ((current.upper > range.upper || !haveUpper) && !qIsNaN(current.upper)) if ((current.upper > range.upper || !haveUpper) && !qIsNaN(current.upper) && std::isfinite(current.upper))
{ {
range.upper = current.upper; range.upper = current.upper;
haveUpper = true; haveUpper = true;
@@ -3276,12 +3325,12 @@ QCPRange QCPDataContainer<DataType>::valueRange(bool &foundRange, QCP::SignDomai
if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper)) if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper))
continue; continue;
current = it->valueRange(); current = it->valueRange();
if ((current.lower < range.lower || !haveLower) && current.lower < 0 && !qIsNaN(current.lower)) if ((current.lower < range.lower || !haveLower) && current.lower < 0 && !qIsNaN(current.lower) && std::isfinite(current.lower))
{ {
range.lower = current.lower; range.lower = current.lower;
haveLower = true; haveLower = true;
} }
if ((current.upper > range.upper || !haveUpper) && current.upper < 0 && !qIsNaN(current.upper)) if ((current.upper > range.upper || !haveUpper) && current.upper < 0 && !qIsNaN(current.upper) && std::isfinite(current.upper))
{ {
range.upper = current.upper; range.upper = current.upper;
haveUpper = true; haveUpper = true;
@@ -3294,12 +3343,12 @@ QCPRange QCPDataContainer<DataType>::valueRange(bool &foundRange, QCP::SignDomai
if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper)) if (restrictKeyRange && (it->mainKey() < inKeyRange.lower || it->mainKey() > inKeyRange.upper))
continue; continue;
current = it->valueRange(); current = it->valueRange();
if ((current.lower < range.lower || !haveLower) && current.lower > 0 && !qIsNaN(current.lower)) if ((current.lower < range.lower || !haveLower) && current.lower > 0 && !qIsNaN(current.lower) && std::isfinite(current.lower))
{ {
range.lower = current.lower; range.lower = current.lower;
haveLower = true; haveLower = true;
} }
if ((current.upper > range.upper || !haveUpper) && current.upper > 0 && !qIsNaN(current.upper)) if ((current.upper > range.upper || !haveUpper) && current.upper > 0 && !qIsNaN(current.upper) && std::isfinite(current.upper))
{ {
range.upper = current.upper; range.upper = current.upper;
haveUpper = true; haveUpper = true;
@@ -3394,7 +3443,7 @@ void QCPDataContainer<DataType>::performAutoSqueeze()
/* including file 'src/plottable.h' */ /* including file 'src/plottable.h' */
/* modified 2021-03-29T02:30:44, size 8461 */ /* modified 2022-11-06T12:45:56, size 8461 */
class QCP_LIB_DECL QCPSelectionDecorator class QCP_LIB_DECL QCPSelectionDecorator
{ {
@@ -3551,7 +3600,7 @@ private:
/* including file 'src/item.h' */ /* including file 'src/item.h' */
/* modified 2021-03-29T02:30:44, size 9425 */ /* modified 2022-11-06T12:45:56, size 9425 */
class QCP_LIB_DECL QCPItemAnchor class QCP_LIB_DECL QCPItemAnchor
{ {
@@ -3736,7 +3785,7 @@ private:
/* including file 'src/core.h' */ /* including file 'src/core.h' */
/* modified 2021-03-29T02:30:44, size 19304 */ /* modified 2022-11-06T12:45:56, size 19304 */
class QCP_LIB_DECL QCustomPlot : public QWidget class QCP_LIB_DECL QCustomPlot : public QWidget
{ {
@@ -4106,7 +4155,7 @@ ItemType *QCustomPlot::itemAt(const QPointF &pos, bool onlySelectable) const
/* including file 'src/plottable1d.h' */ /* including file 'src/plottable1d.h' */
/* modified 2021-03-29T02:30:44, size 25638 */ /* modified 2022-11-06T12:45:56, size 25638 */
class QCPPlottableInterface1D class QCPPlottableInterface1D
{ {
@@ -4698,7 +4747,7 @@ void QCPAbstractPlottable1D<DataType>::drawPolyline(QCPPainter *painter, const Q
/* including file 'src/colorgradient.h' */ /* including file 'src/colorgradient.h' */
/* modified 2021-03-29T02:30:44, size 7262 */ /* modified 2022-11-06T12:45:56, size 7262 */
class QCP_LIB_DECL QCPColorGradient class QCP_LIB_DECL QCPColorGradient
{ {
@@ -4801,7 +4850,7 @@ Q_DECLARE_METATYPE(QCPColorGradient::GradientPreset)
/* including file 'src/selectiondecorator-bracket.h' */ /* including file 'src/selectiondecorator-bracket.h' */
/* modified 2021-03-29T02:30:44, size 4458 */ /* modified 2022-11-06T12:45:56, size 4458 */
class QCP_LIB_DECL QCPSelectionDecoratorBracket : public QCPSelectionDecorator class QCP_LIB_DECL QCPSelectionDecoratorBracket : public QCPSelectionDecorator
{ {
@@ -4870,7 +4919,7 @@ Q_DECLARE_METATYPE(QCPSelectionDecoratorBracket::BracketStyle)
/* including file 'src/layoutelements/layoutelement-axisrect.h' */ /* including file 'src/layoutelements/layoutelement-axisrect.h' */
/* modified 2021-03-29T02:30:44, size 7529 */ /* modified 2022-11-06T12:45:56, size 7529 */
class QCP_LIB_DECL QCPAxisRect : public QCPLayoutElement class QCP_LIB_DECL QCPAxisRect : public QCPLayoutElement
{ {
@@ -4996,7 +5045,7 @@ private:
/* including file 'src/layoutelements/layoutelement-legend.h' */ /* including file 'src/layoutelements/layoutelement-legend.h' */
/* modified 2021-03-29T02:30:44, size 10425 */ /* modified 2022-11-06T12:45:56, size 10425 */
class QCP_LIB_DECL QCPAbstractLegendItem : public QCPLayoutElement class QCP_LIB_DECL QCPAbstractLegendItem : public QCPLayoutElement
{ {
@@ -5214,7 +5263,7 @@ Q_DECLARE_METATYPE(QCPLegend::SelectablePart)
/* including file 'src/layoutelements/layoutelement-textelement.h' */ /* including file 'src/layoutelements/layoutelement-textelement.h' */
/* modified 2021-03-29T02:30:44, size 5359 */ /* modified 2022-11-06T12:45:56, size 5359 */
class QCP_LIB_DECL QCPTextElement : public QCPLayoutElement class QCP_LIB_DECL QCPTextElement : public QCPLayoutElement
{ {
@@ -5301,7 +5350,7 @@ private:
/* including file 'src/layoutelements/layoutelement-colorscale.h' */ /* including file 'src/layoutelements/layoutelement-colorscale.h' */
/* modified 2021-03-29T02:30:44, size 5939 */ /* modified 2022-11-06T12:45:56, size 5939 */
class QCPColorScaleAxisRectPrivate : public QCPAxisRect class QCPColorScaleAxisRectPrivate : public QCPAxisRect
@@ -5409,7 +5458,7 @@ private:
/* including file 'src/plottables/plottable-graph.h' */ /* including file 'src/plottables/plottable-graph.h' */
/* modified 2021-03-29T02:30:44, size 9316 */ /* modified 2022-11-06T12:45:56, size 9316 */
class QCP_LIB_DECL QCPGraphData class QCP_LIB_DECL QCPGraphData
{ {
@@ -5548,7 +5597,7 @@ Q_DECLARE_METATYPE(QCPGraph::LineStyle)
/* including file 'src/plottables/plottable-curve.h' */ /* including file 'src/plottables/plottable-curve.h' */
/* modified 2021-03-29T02:30:44, size 7434 */ /* modified 2022-11-06T12:45:56, size 7434 */
class QCP_LIB_DECL QCPCurveData class QCP_LIB_DECL QCPCurveData
{ {
@@ -5663,7 +5712,7 @@ Q_DECLARE_METATYPE(QCPCurve::LineStyle)
/* including file 'src/plottables/plottable-bars.h' */ /* including file 'src/plottables/plottable-bars.h' */
/* modified 2021-03-29T02:30:44, size 8955 */ /* modified 2022-11-06T12:45:56, size 8955 */
class QCP_LIB_DECL QCPBarsGroup : public QObject class QCP_LIB_DECL QCPBarsGroup : public QObject
{ {
@@ -5851,7 +5900,7 @@ Q_DECLARE_METATYPE(QCPBars::WidthType)
/* including file 'src/plottables/plottable-statisticalbox.h' */ /* including file 'src/plottables/plottable-statisticalbox.h' */
/* modified 2021-03-29T02:30:44, size 7522 */ /* modified 2022-11-06T12:45:56, size 7522 */
class QCP_LIB_DECL QCPStatisticalBoxData class QCP_LIB_DECL QCPStatisticalBoxData
{ {
@@ -5968,7 +6017,7 @@ protected:
/* including file 'src/plottables/plottable-colormap.h' */ /* including file 'src/plottables/plottable-colormap.h' */
/* modified 2021-03-29T02:30:44, size 7092 */ /* modified 2022-11-06T12:45:56, size 7092 */
class QCP_LIB_DECL QCPColorMapData class QCP_LIB_DECL QCPColorMapData
{ {
@@ -6104,7 +6153,7 @@ protected:
/* including file 'src/plottables/plottable-financial.h' */ /* including file 'src/plottables/plottable-financial.h' */
/* modified 2021-03-29T02:30:44, size 8644 */ /* modified 2022-11-06T12:45:56, size 8644 */
class QCP_LIB_DECL QCPFinancialData class QCP_LIB_DECL QCPFinancialData
{ {
@@ -6243,7 +6292,7 @@ Q_DECLARE_METATYPE(QCPFinancial::ChartStyle)
/* including file 'src/plottables/plottable-errorbar.h' */ /* including file 'src/plottables/plottable-errorbar.h' */
/* modified 2021-03-29T02:30:44, size 7749 */ /* modified 2022-11-06T12:45:56, size 7749 */
class QCP_LIB_DECL QCPErrorBarsData class QCP_LIB_DECL QCPErrorBarsData
{ {
@@ -6368,7 +6417,7 @@ protected:
/* including file 'src/items/item-straightline.h' */ /* including file 'src/items/item-straightline.h' */
/* modified 2021-03-29T02:30:44, size 3137 */ /* modified 2022-11-06T12:45:56, size 3137 */
class QCP_LIB_DECL QCPItemStraightLine : public QCPAbstractItem class QCP_LIB_DECL QCPItemStraightLine : public QCPAbstractItem
{ {
@@ -6411,7 +6460,7 @@ protected:
/* including file 'src/items/item-line.h' */ /* including file 'src/items/item-line.h' */
/* modified 2021-03-29T02:30:44, size 3429 */ /* modified 2022-11-06T12:45:56, size 3429 */
class QCP_LIB_DECL QCPItemLine : public QCPAbstractItem class QCP_LIB_DECL QCPItemLine : public QCPAbstractItem
{ {
@@ -6461,7 +6510,7 @@ protected:
/* including file 'src/items/item-curve.h' */ /* including file 'src/items/item-curve.h' */
/* modified 2021-03-29T02:30:44, size 3401 */ /* modified 2022-11-06T12:45:56, size 3401 */
class QCP_LIB_DECL QCPItemCurve : public QCPAbstractItem class QCP_LIB_DECL QCPItemCurve : public QCPAbstractItem
{ {
@@ -6512,7 +6561,7 @@ protected:
/* including file 'src/items/item-rect.h' */ /* including file 'src/items/item-rect.h' */
/* modified 2021-03-29T02:30:44, size 3710 */ /* modified 2022-11-06T12:45:56, size 3710 */
class QCP_LIB_DECL QCPItemRect : public QCPAbstractItem class QCP_LIB_DECL QCPItemRect : public QCPAbstractItem
{ {
@@ -6571,7 +6620,7 @@ protected:
/* including file 'src/items/item-text.h' */ /* including file 'src/items/item-text.h' */
/* modified 2021-03-29T02:30:44, size 5576 */ /* modified 2022-11-06T12:45:56, size 5576 */
class QCP_LIB_DECL QCPItemText : public QCPAbstractItem class QCP_LIB_DECL QCPItemText : public QCPAbstractItem
{ {
@@ -6668,7 +6717,7 @@ protected:
/* including file 'src/items/item-ellipse.h' */ /* including file 'src/items/item-ellipse.h' */
/* modified 2021-03-29T02:30:44, size 3890 */ /* modified 2022-11-06T12:45:56, size 3890 */
class QCP_LIB_DECL QCPItemEllipse : public QCPAbstractItem class QCP_LIB_DECL QCPItemEllipse : public QCPAbstractItem
{ {
@@ -6730,7 +6779,7 @@ protected:
/* including file 'src/items/item-pixmap.h' */ /* including file 'src/items/item-pixmap.h' */
/* modified 2021-03-29T02:30:44, size 4407 */ /* modified 2022-11-06T12:45:56, size 4407 */
class QCP_LIB_DECL QCPItemPixmap : public QCPAbstractItem class QCP_LIB_DECL QCPItemPixmap : public QCPAbstractItem
{ {
@@ -6799,7 +6848,7 @@ protected:
/* including file 'src/items/item-tracer.h' */ /* including file 'src/items/item-tracer.h' */
/* modified 2021-03-29T02:30:44, size 4811 */ /* modified 2022-11-06T12:45:56, size 4811 */
class QCP_LIB_DECL QCPItemTracer : public QCPAbstractItem class QCP_LIB_DECL QCPItemTracer : public QCPAbstractItem
{ {
@@ -6885,7 +6934,7 @@ Q_DECLARE_METATYPE(QCPItemTracer::TracerStyle)
/* including file 'src/items/item-bracket.h' */ /* including file 'src/items/item-bracket.h' */
/* modified 2021-03-29T02:30:44, size 3991 */ /* modified 2022-11-06T12:45:56, size 3991 */
class QCP_LIB_DECL QCPItemBracket : public QCPAbstractItem class QCP_LIB_DECL QCPItemBracket : public QCPAbstractItem
{ {
@@ -6952,7 +7001,7 @@ Q_DECLARE_METATYPE(QCPItemBracket::BracketStyle)
/* including file 'src/polar/radialaxis.h' */ /* including file 'src/polar/radialaxis.h' */
/* modified 2021-03-29T02:30:44, size 12227 */ /* modified 2022-11-06T12:45:56, size 12227 */
class QCP_LIB_DECL QCPPolarAxisRadial : public QCPLayerable class QCP_LIB_DECL QCPPolarAxisRadial : public QCPLayerable
@@ -7204,7 +7253,7 @@ Q_DECLARE_METATYPE(QCPPolarAxisRadial::SelectablePart)
/* including file 'src/polar/layoutelement-angularaxis.h' */ /* including file 'src/polar/layoutelement-angularaxis.h' */
/* modified 2021-03-29T02:30:44, size 13461 */ /* modified 2022-11-06T12:45:56, size 13461 */
class QCP_LIB_DECL QCPPolarAxisAngular : public QCPLayoutElement class QCP_LIB_DECL QCPPolarAxisAngular : public QCPLayoutElement
{ {
@@ -7477,7 +7526,7 @@ Q_DECLARE_METATYPE(QCPPolarAxisAngular::SelectablePart)
/* including file 'src/polar/polargrid.h' */ /* including file 'src/polar/polargrid.h' */
/* modified 2021-03-29T02:30:44, size 4506 */ /* modified 2022-11-06T12:45:56, size 4506 */
class QCP_LIB_DECL QCPPolarGrid :public QCPLayerable class QCP_LIB_DECL QCPPolarGrid :public QCPLayerable
{ {
@@ -7557,7 +7606,7 @@ Q_DECLARE_METATYPE(QCPPolarGrid::GridType)
/* including file 'src/polar/polargraph.h' */ /* including file 'src/polar/polargraph.h' */
/* modified 2021-03-29T02:30:44, size 9606 */ /* modified 2022-11-06T12:45:56, size 9606 */
class QCP_LIB_DECL QCPPolarLegendItem : public QCPAbstractLegendItem class QCP_LIB_DECL QCPPolarLegendItem : public QCPAbstractLegendItem