Revision control

++ // Copyright (C) 2016 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ #include <QtCharts/QCandlestickSet>
++ #include <private/qcandlestickset_p.h>
++
++ QT_BEGIN_NAMESPACE
++
++ /*!
++ \class QCandlestickSet
++ \since 5.8
++ \inmodule QtCharts
++ \brief The QCandlestickSet class represents a single candlestick item in a
++ candlestick chart.
++
++ Five values are needed to create a graphical representation of a candlestick
++ item: \e open, \e high, \e low, \e close, and \e timestamp. These values can
++ be either passed to a QCandlestickSet constructor
++ or set by using setOpen(), setHigh(), setLow(), setClose(), and setTimestamp().
++
++ \sa QCandlestickSeries
++ */
++
++ /*!
++ \qmltype CandlestickSet
++ \since QtCharts 2.2
++ \nativetype QCandlestickSet
++ \inqmlmodule QtCharts
++ \brief Represents a single candlestick item in a candlestick chart.
++
++ Five values are needed to create a graphical representation of a candlestick
++ item: \l open, \l high, \l low, \l close, and \l timestamp.
++
++ \sa CandlestickSeries
++ */
++
++ /*!
++ \property QCandlestickSet::timestamp
++ \brief The timestamp value of the candlestick item.
++ */
++
++ /*!
++ \qmlproperty real CandlestickSet::timestamp
++ The timestamp value of the candlestick item.
++ */
++
++ /*!
++ \property QCandlestickSet::open
++ \brief The open value of the candlestick item.
++ */
++
++ /*!
++ \qmlproperty real CandlestickSet::open
++ The open value of the candlestick item.
++ */
++
++ /*!
++ \property QCandlestickSet::high
++ \brief The high value of the candlestick item.
++ */
++
++ /*!
++ \qmlproperty real CandlestickSet::high
++ The high value of the candlestick item.
++ */
++
++ /*!
++ \property QCandlestickSet::low
++ \brief The low value of the candlestick item.
++ */
++
++ /*!
++ \qmlproperty real CandlestickSet::low
++ The low value of the candlestick item.
++ */
++
++ /*!
++ \property QCandlestickSet::close
++ \brief The close value of the candlestick item.
++ */
++
++ /*!
++ \qmlproperty real CandlestickSet::close
++ The close value of the candlestick item.
++ */
++
++ /*!
++ \property QCandlestickSet::brush
++ \brief The brush used to fill the candlestick item.
++ */
++
++ /*!
++ \property QCandlestickSet::pen
++ \brief The pen used to draw the lines of the candlestick item.
++ */
++
++ /*!
++ \qmlproperty string CandlestickSet::brushFilename
++ The name of the file used as a brush for the candlestick item.
++ */
++
++ /*!
++ \fn void QCandlestickSet::clicked()
++ This signal is emitted when the candlestick item is clicked.
++ */
++
++ /*!
++ \qmlsignal CandlestickSet::clicked()
++ This signal is emitted when the candlestick item is clicked.
++
++ The corresponding signal handler is \c {onClicked}.
++ */
++
++ /*!
++ \fn void QCandlestickSet::hovered(bool status)
++ This signal is emitted when a mouse is hovered over a candlestick
++ item.
++
++ When the mouse moves over the item, \a status turns \c true, and when the
++ mouse moves away again, it turns \c false.
++ */
++
++ /*!
++ \qmlsignal CandlestickSet::hovered(bool status)
++ This signal is emitted when a mouse is hovered over a candlestick
++ item.
++
++ When the mouse moves over the item, \a status turns \c true, and when the
++ mouse moves away again, it turns \c false.
++
++ The corresponding signal handler is \c {onHovered}.
++ */
++
++ /*!
++ \fn void QCandlestickSet::pressed()
++ This signal is emitted when the user clicks the candlestick item and
++ holds down the mouse button.
++ */
++
++ /*!
++ \qmlsignal CandlestickSet::pressed()
++ This signal is emitted when the user clicks the candlestick item and
++ holds down the mouse button.
++
++ The corresponding signal handler is \c {onPressed}.
++ */
++
++ /*!
++ \fn void QCandlestickSet::released()
++ This signal is emitted when the user releases the mouse press on the
++ candlestick item.
++ */
++
++ /*!
++ \qmlsignal CandlestickSet::released()
++ This signal is emitted when the user releases the mouse press on the
++ candlestick item.
++
++ The corresponding signal handler is \c {onReleased}.
++ */
++
++ /*!
++ \fn void QCandlestickSet::doubleClicked()
++ This signal is emitted when the user double-clicks a candlestick item.
++ */
++
++ /*!
++ \qmlsignal CandlestickSet::doubleClicked()
++ This signal is emitted when the user double-clicks a candlestick item.
++
++ The corresponding signal handler is \c {onDoubleClicked}.
++ */
++
++ /*!
++ \fn void QCandlestickSet::timestampChanged()
++ This signal is emitted when the candlestick item timestamp changes.
++ \sa timestamp
++ */
++
++ /*!
++ \fn void QCandlestickSet::openChanged()
++ This signal is emitted when the candlestick item open value changes.
++ \sa open
++ */
++
++ /*!
++ \fn void QCandlestickSet::highChanged()
++ This signal is emitted when the candlestick item high value changes.
++ \sa high
++ */
++
++ /*!
++ \fn void QCandlestickSet::lowChanged()
++ This signal is emitted when the candlestick item low value changes.
++ \sa low
++ */
++
++ /*!
++ \fn void QCandlestickSet::closeChanged()
++ This signal is emitted when the candlestick item close value changes.
++ \sa close
++ */
++
++ /*!
++ \fn void QCandlestickSet::brushChanged()
++ This signal is emitted when the candlestick item brush changes.
++ \sa brush
++ */
++
++ /*!
++ \fn void QCandlestickSet::penChanged()
++ This signal is emitted when the candlestick item pen changes.
++ \sa pen
++ */
++
++ /*!
++ Constructs a candlestick item with an optional \a timestamp and a \a parent.
++ */
++ QCandlestickSet::QCandlestickSet(qreal timestamp, QObject *parent)
++ : QObject(parent),
++ d_ptr(new QCandlestickSetPrivate(timestamp, this))
++ {
++ }
++
++ /*!
++ Constructs a candlestick item with given ordered values. The values \a open, \a high, \a low,
++ and \a close are mandatory. The values \a timestamp and \a parent are optional.
++ */
++ QCandlestickSet::QCandlestickSet(qreal open, qreal high, qreal low, qreal close, qreal timestamp,
++ QObject *parent)
++ : QObject(parent),
++ d_ptr(new QCandlestickSetPrivate(timestamp, this))
++ {
++ Q_D(QCandlestickSet);
++
++ d->m_open = open;
++ d->m_high = high;
++ d->m_low = low;
++ d->m_close = close;
++
++ emit d->updatedLayout();
++ }
++
++ /*!
++ Destroys the candlestick item.
++ */
++ QCandlestickSet::~QCandlestickSet()
++ {
++ }
++
++ void QCandlestickSet::setTimestamp(qreal timestamp)
++ {
++ Q_D(QCandlestickSet);
++
++ bool changed = d->setTimestamp(timestamp);
++ if (!changed)
++ return;
++
++ emit d->updatedLayout();
++ emit timestampChanged();
++ }
++
++ qreal QCandlestickSet::timestamp() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_timestamp;
++ }
++
++ void QCandlestickSet::setOpen(qreal open)
++ {
++ Q_D(QCandlestickSet);
++
++ if (d->m_open == open)
++ return;
++
++ d->m_open = open;
++
++ emit d->updatedLayout();
++ emit openChanged();
++ }
++
++ qreal QCandlestickSet::open() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_open;
++ }
++
++ void QCandlestickSet::setHigh(qreal high)
++ {
++ Q_D(QCandlestickSet);
++
++ if (d->m_high == high)
++ return;
++
++ d->m_high = high;
++
++ emit d->updatedLayout();
++ emit highChanged();
++ }
++
++ qreal QCandlestickSet::high() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_high;
++ }
++
++ void QCandlestickSet::setLow(qreal low)
++ {
++ Q_D(QCandlestickSet);
++
++ if (d->m_low == low)
++ return;
++
++ d->m_low = low;
++
++ emit d->updatedLayout();
++ emit lowChanged();
++ }
++
++ qreal QCandlestickSet::low() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_low;
++ }
++
++ void QCandlestickSet::setClose(qreal close)
++ {
++ Q_D(QCandlestickSet);
++
++ if (d->m_close == close)
++ return;
++
++ d->m_close = close;
++
++ emit d->updatedLayout();
++ emit closeChanged();
++ }
++
++ qreal QCandlestickSet::close() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_close;
++ }
++
++ void QCandlestickSet::setBrush(const QBrush &brush)
++ {
++ Q_D(QCandlestickSet);
++
++ if (d->m_brush == brush)
++ return;
++
++ d->m_brush = brush;
++
++ emit d->updatedCandlestick();
++ emit brushChanged();
++ }
++
++ QBrush QCandlestickSet::brush() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_brush;
++ }
++
++ void QCandlestickSet::setPen(const QPen &pen)
++ {
++ Q_D(QCandlestickSet);
++
++ if (d->m_pen == pen)
++ return;
++
++ d->m_pen = pen;
++
++ emit d->updatedCandlestick();
++ emit penChanged();
++ }
++
++ QPen QCandlestickSet::pen() const
++ {
++ Q_D(const QCandlestickSet);
++
++ return d->m_pen;
++ }
++
++ ////////////////////////////////////////////////////////////////////////////////////////////////////
++
++ QCandlestickSetPrivate::QCandlestickSetPrivate(qreal timestamp, QCandlestickSet *parent)
++ : QObject(parent),
++ q_ptr(parent),
++ m_timestamp(0.0),
++ m_open(0.0),
++ m_high(0.0),
++ m_low(0.0),
++ m_close(0.0),
++ m_brush(QBrush(Qt::NoBrush)),
++ m_pen(QPen(Qt::NoPen)),
++ m_series(nullptr)
++ {
++ setTimestamp(timestamp);
++ }
++
++ QCandlestickSetPrivate::~QCandlestickSetPrivate()
++ {
++ }
++
++ bool QCandlestickSetPrivate::setTimestamp(qreal timestamp)
++ {
++ timestamp = qMax(timestamp, qreal(0.0));
++ timestamp = qRound64(timestamp);
++
++ if (m_timestamp == timestamp)
++ return false;
++
++ m_timestamp = timestamp;
++
++ return true;
++ }
++
++ QT_END_NAMESPACE
++
++ #include "moc_qcandlestickset.cpp"
++ #include "moc_qcandlestickset_p.cpp"