diff options
Diffstat (limited to 'src/barchart/qbarset.cpp')
-rw-r--r-- | src/barchart/qbarset.cpp | 678 |
1 files changed, 0 insertions, 678 deletions
diff --git a/src/barchart/qbarset.cpp b/src/barchart/qbarset.cpp deleted file mode 100644 index 7a320f95..00000000 --- a/src/barchart/qbarset.cpp +++ /dev/null @@ -1,678 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the Qt Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** contact form at http://qt.digia.com -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "qbarset.h" -#include "qbarset_p.h" -#include "charthelpers_p.h" -#include "qchart_p.h" - -QTCOMMERCIALCHART_BEGIN_NAMESPACE - -/*! - \class QBarSet - \inmodule Qt Charts - \brief Building block for different bar charts. - - QBarSet represents one set of bars. Set of bars contains one data value for each category. - First value of set is assumed to belong to first category, second to second category and so on. - If set has fewer values than there are categories, then the missing values are assumed to be - at the end of set. For missing values in middle of a set, numerical value of zero is used. - - \mainclass - - \sa QAbstractBarSeries, QBarSeries, QStackedBarSeries, QPercentBarSeries -*/ -#ifdef QDOC_QT5 -/*! - \qmltype BarSet - \instantiates QBarSet - \inqmlmodule QtCommercial.Chart - - \include doc/src/barset.qdocinc -*/ -#else -/*! - \qmlclass BarSet QBarSet - - \include ../doc/src/barset.qdocinc -*/ -#endif - -/*! - \property QBarSet::label - Defines the label of the bar set. -*/ -/*! - \qmlproperty string BarSet::label - Defines the label of the bar set. -*/ - -/*! - \property QBarSet::pen - \brief Defines the pen used by the bar set. -*/ - -/*! - \property QBarSet::brush - \brief Defines the brush used by the bar set. -*/ - -/*! - \qmlproperty QString BarSet::brushFilename - The name of the file used as a brush for the set. -*/ - -/*! - \property QBarSet::labelBrush - \brief Defines the brush used by the bar set's label. -*/ - -/*! - \property QBarSet::labelFont - \brief Defines the font used by the bar set's label. -*/ - -/*! - \qmlproperty Font BarSet::labelFont - Defines the font used by the bar set's label. - - See the Qt documentation for more details of Font. -*/ - -/*! - \property QBarSet::color - The fill (brush) color of the bar set. -*/ -/*! - \qmlproperty color BarSet::color - The fill (brush) color of the bar set. -*/ - -/*! - \property QBarSet::borderColor - The line (pen) color of the bar set. -*/ -/*! - \qmlproperty color BarSet::borderColor - The line (pen) color of the bar set. -*/ - -/*! - \qmlproperty real BarSet::borderWidth - The width of the border line. By default the width is 2.0. -*/ - -/*! - \property QBarSet::labelColor - The text (label) color of the bar set. -*/ -/*! - \qmlproperty color BarSet::labelColor - The text (label) color of the bar set. -*/ - -/*! - \fn void QBarSet::clicked(int index) - - The signal is emitted if the user clicks with a mouse on top of bar set. - Clicked bar inside set is indexed by \a index -*/ - -/*! - \fn void QBarSet::hovered(bool status) - - The signal is emitted if mouse is hovered on top of bar set. - Parameter \a status is true, if mouse entered on top of bar set, false if mouse left from top of bar set. -*/ - -/*! - \fn void QBarSet::hovered(bool status, int index) - - The signal is emitted if mouse is hovered on top of bar set. - Parameter \a status is true, if mouse entered on top of bar set, false if mouse left from top of bar set. - Hovered bar inside the set is indexed by \a index. -*/ - - -/*! - \fn void QBarSet::labelChanged() - This signal is emitted when the label of the bar set has changed. - \sa label -*/ -/*! - \qmlsignal BarSet::onLabelChanged() - This signal is emitted when the label of the bar set has changed. -*/ - -/*! - \fn void QBarSet::penChanged() - This signal is emitted when the pen of the bar set has changed. - \sa pen -*/ - -/*! - \fn void QBarSet::brushChanged() - This signal is emitted when the brush of the bar set has changed. - \sa brush -*/ - -/*! - \fn void QBarSet::labelBrushChanged() - This signal is emitted when the brush of the bar set's label has changed. - \sa labelBrush -*/ - -/*! - \fn void QBarSet::labelFontChanged() - This signal is emitted when the font of the bar set's label has changed. - \sa labelBrush -*/ - -/*! - \fn void QBarSet::colorChanged(QColor) - This signal is emitted when the fill (brush) color of the set has changed to \a color. -*/ -/*! - \qmlsignal BarSet::onColorChanged(color color) - This signal is emitted when the fill (brush) color of the set has changed to \a color. -*/ - -/*! - \fn void QBarSet::borderColorChanged(QColor) - This signal is emitted when the line (pen) color of the set has changed to \a color. -*/ -/*! - \qmlsignal BarSet::onBorderColorChanged(color color) - This signal is emitted when the line (pen) color of the set has changed to \a color. -*/ - -/*! - \fn void QBarSet::labelColorChanged(QColor) - This signal is emitted when the text (label) color of the set has changed to \a color. -*/ -/*! - \qmlsignal BarSet::onLabelColorChanged(color color) - This signal is emitted when the text (label) color of the set has changed to \a color. -*/ - -/*! - \fn void QBarSet::valuesAdded(int index, int count) - This signal is emitted when new values have been added to the set. - Parameter \a index indicates the position of the first inserted value. - Parameter \a count is the number of inserted values. - \sa append(), insert() -*/ -/*! - \qmlsignal BarSet::onValuesAdded(int index, int count) - This signal is emitted when new values have been added to the set. - Parameter \a index indicates the position of the first inserted value. - Parameter \a count is the number of inserted values. -*/ - -/*! - \fn void QBarSet::valuesRemoved(int index, int count) - This signal is emitted values have been removed from the set. - Parameter \a index indicates the position of the first removed value. - Parameter \a count is the number of removed values. - \sa remove() -*/ -/*! - \qmlsignal BarSet::onValuesRemoved(int index, int count) - This signal is emitted values have been removed from the set. - Parameter \a index indicates the position of the first removed value. - Parameter \a count is the number of removed values. -*/ - -/*! - \fn void QBarSet::valueChanged(int index) - This signal is emitted values the value in the set has been modified. - Parameter \a index indicates the position of the modified value. - \sa at() -*/ -/*! - \qmlsignal BarSet::onValueChanged(int index) - This signal is emitted values the value in the set has been modified. - Parameter \a index indicates the position of the modified value. -*/ - -/*! - \qmlproperty int BarSet::count - The count of values on the bar set -*/ - -/*! - \qmlproperty QVariantList BarSet::values - The values of the bar set. You can set either a list of reals or a list of points as values. If you set a list of - reals as values, the values are automatically completed to points by using the index of a value as it's - x-coordinate. For example the following sets have equal values: - \code - myBarSet1.values = [0, 5, 1, 5]; - myBarSet2.values = [Qt.point(0, 0), Qt.point(1, 5), Qt.point(2, 1), Qt.point(3, 5)]; - \endcode -*/ - -/*! - Constructs QBarSet with a label of \a label and with parent of \a parent. -*/ -QBarSet::QBarSet(const QString label, QObject *parent) - : QObject(parent), - d_ptr(new QBarSetPrivate(label, this)) -{ -} - -/*! - Destroys the bar set. -*/ -QBarSet::~QBarSet() -{ - // NOTE: d_ptr destroyed by QObject -} - -/*! - Sets new \a label for set. -*/ -void QBarSet::setLabel(const QString label) -{ - d_ptr->m_label = label; - emit labelChanged(); -} - -/*! - Returns label of the set. -*/ -QString QBarSet::label() const -{ - return d_ptr->m_label; -} - -/*! - Appends new value \a value to the end of set. -*/ -void QBarSet::append(const qreal value) -{ - // Convert to QPointF - int index = d_ptr->m_values.count(); - d_ptr->append(QPointF(d_ptr->m_values.count(), value)); - emit valuesAdded(index, 1); -} - -/*! - Appends a list of reals to set. Works like append with single real value. The \a values in list - are appended to end of bar set. - \sa append() -*/ -void QBarSet::append(const QList<qreal> &values) -{ - int index = d_ptr->m_values.count(); - d_ptr->append(values); - emit valuesAdded(index, values.count()); -} - -/*! - Convenience operator. Same as append, with real \a value. - \sa append() -*/ -QBarSet &QBarSet::operator << (const qreal &value) -{ - append(value); - return *this; -} - -/*! - Inserts new \a value on the \a index position. - The value that is currently at this postion is moved to position index + 1 - \sa remove() -*/ -void QBarSet::insert(const int index, const qreal value) -{ - d_ptr->insert(index, value); - emit valuesAdded(index, 1); -} - -/*! - Removes \a count number of values from the set starting at \a index. - \sa insert() -*/ -void QBarSet::remove(const int index, const int count) -{ - int removedCount = d_ptr->remove(index, count); - if (removedCount > 0) - emit valuesRemoved(index, removedCount); - return; -} - -/*! - Sets a new value \a value to set, indexed by \a index. -*/ -void QBarSet::replace(const int index, const qreal value) -{ - if (index >= 0 && index < d_ptr->m_values.count()) { - d_ptr->replace(index, value); - emit valueChanged(index); - } -} - - -/*! - Returns value of set indexed by \a index. - If the index is out of bounds 0.0 is returned. -*/ -qreal QBarSet::at(const int index) const -{ - if (index < 0 || index >= d_ptr->m_values.count()) - return 0; - return d_ptr->m_values.at(index).y(); -} - -/*! - Returns value of set indexed by \a index. - If the index is out of bounds 0.0 is returned. -*/ -qreal QBarSet::operator [](const int index) const -{ - return at(index); -} - -/*! - Returns count of values in set. -*/ -int QBarSet::count() const -{ - return d_ptr->m_values.count(); -} - -/*! - Returns sum of all values in the bar set. -*/ -qreal QBarSet::sum() const -{ - qreal total(0); - for (int i = 0; i < d_ptr->m_values.count(); i++) - total += d_ptr->m_values.at(i).y(); - return total; -} - -/*! - Sets pen for set. Bars of this set are drawn using \a pen -*/ -void QBarSet::setPen(const QPen &pen) -{ - if (d_ptr->m_pen != pen) { - d_ptr->m_pen = pen; - emit d_ptr->updatedBars(); - emit penChanged(); - } -} - -/*! - Returns pen of the set. -*/ -QPen QBarSet::pen() const -{ - if (d_ptr->m_pen == QChartPrivate::defaultPen()) - return QPen(); - else - return d_ptr->m_pen; -} - -/*! - Sets brush for the set. Bars of this set are drawn using \a brush. -*/ -void QBarSet::setBrush(const QBrush &brush) -{ - if (d_ptr->m_brush != brush) { - d_ptr->m_brush = brush; - emit d_ptr->updatedBars(); - emit brushChanged(); - } -} - -/*! - Returns brush of the set. -*/ -QBrush QBarSet::brush() const -{ - if (d_ptr->m_brush == QChartPrivate::defaultBrush()) - return QBrush(); - else - return d_ptr->m_brush; -} - -/*! - Sets \a brush of the values that are drawn on top of this bar set. -*/ -void QBarSet::setLabelBrush(const QBrush &brush) -{ - if (d_ptr->m_labelBrush != brush) { - d_ptr->m_labelBrush = brush; - emit d_ptr->updatedBars(); - emit labelBrushChanged(); - } -} - -/*! - Returns brush of the values that are drawn on top of this bar set. -*/ -QBrush QBarSet::labelBrush() const -{ - if (d_ptr->m_labelBrush == QChartPrivate::defaultBrush()) - return QBrush(); - else - return d_ptr->m_labelBrush; -} - -/*! - Sets the \a font for values that are drawn on top of this bar set. -*/ -void QBarSet::setLabelFont(const QFont &font) -{ - if (d_ptr->m_labelFont != font) { - d_ptr->m_labelFont = font; - emit d_ptr->updatedBars(); - emit labelFontChanged(); - } - -} - -/*! - Returns the pen for values that are drawn on top of this bar set. -*/ -QFont QBarSet::labelFont() const -{ - return d_ptr->m_labelFont; -} - -/*! - Returns the color of the brush of bar set. -*/ -QColor QBarSet::color() -{ - return brush().color(); -} - -/*! - Sets the \a color of brush for this bar set. -*/ -void QBarSet::setColor(QColor color) -{ - QBrush b = brush(); - if ((b.color() != color) || (b.style() == Qt::NoBrush)) { - b.setColor(color); - if (b.style() == Qt::NoBrush) { - // Set tyle to Qt::SolidPattern. (Default is Qt::NoBrush) - // This prevents theme to override color defined in QML side: - // BarSet { label: "Bob"; color:"red"; values: [1,2,3] } - // The color must be obeyed, since user wanted it. - b.setStyle(Qt::SolidPattern); - } - setBrush(b); - emit colorChanged(color); - } -} - -/*! - Returns the color of pen of this bar set. -*/ -QColor QBarSet::borderColor() -{ - return pen().color(); -} - -/*! - Sets the color of pen for this bar set. -*/ -void QBarSet::setBorderColor(QColor color) -{ - QPen p = pen(); - if (p.color() != color) { - p.setColor(color); - setPen(p); - emit borderColorChanged(color); - } -} - -/*! - Returns the color of labels of this bar set. -*/ -QColor QBarSet::labelColor() -{ - return labelBrush().color(); -} - -/*! - Sets the color of labels for this bar set. -*/ -void QBarSet::setLabelColor(QColor color) -{ - QBrush b = labelBrush(); - if (b == QBrush()) - b.setStyle(Qt::SolidPattern); - - if (b.color() != color) { - b.setColor(color); - setLabelBrush(b); - emit labelColorChanged(color); - } -} - -//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - -QBarSetPrivate::QBarSetPrivate(const QString label, QBarSet *parent) : QObject(parent), - q_ptr(parent), - m_label(label), - m_pen(QChartPrivate::defaultPen()), - m_brush(QChartPrivate::defaultBrush()), - m_labelBrush(QChartPrivate::defaultBrush()) -{ -} - -QBarSetPrivate::~QBarSetPrivate() -{ -} - -void QBarSetPrivate::append(QPointF value) -{ - if (isValidValue(value)) { - m_values.append(value); - emit restructuredBars(); - } -} - -void QBarSetPrivate::append(QList<QPointF> values) -{ - for (int i = 0; i < values.count(); i++) { - if (isValidValue(values.at(i))) - m_values.append(values.at(i)); - } - emit restructuredBars(); -} - -void QBarSetPrivate::append(QList<qreal> values) -{ - int index = m_values.count(); - for (int i = 0; i < values.count(); i++) { - if (isValidValue(values.at(i))) { - m_values.append(QPointF(index, values.at(i))); - index++; - } - } - emit restructuredBars(); -} - -void QBarSetPrivate::insert(const int index, const qreal value) -{ - m_values.insert(index, QPointF(index, value)); - emit restructuredBars(); -} - -void QBarSetPrivate::insert(const int index, const QPointF value) -{ - m_values.insert(index, value); - emit restructuredBars(); -} - -int QBarSetPrivate::remove(const int index, const int count) -{ - int removeCount = count; - - if ((index < 0) || (m_values.count() == 0)) - return 0; // Invalid index or not values in list, remove nothing. - else if ((index + count) > m_values.count()) - removeCount = m_values.count() - index; // Trying to remove more items than list has. Limit amount to be removed. - - int c = 0; - while (c < removeCount) { - m_values.removeAt(index); - c++; - } - emit restructuredBars(); - return removeCount; -} - -void QBarSetPrivate::replace(const int index, const qreal value) -{ - m_values.replace(index, QPointF(index, value)); - emit updatedLayout(); -} - -void QBarSetPrivate::replace(const int index, const QPointF value) -{ - m_values.replace(index, value); - emit updatedLayout(); -} - -qreal QBarSetPrivate::pos(const int index) -{ - if (index < 0 || index >= m_values.count()) - return 0; - return m_values.at(index).x(); -} - -qreal QBarSetPrivate::value(const int index) -{ - if (index < 0 || index >= m_values.count()) - return 0; - return m_values.at(index).y(); -} - -#include "moc_qbarset.cpp" -#include "moc_qbarset_p.cpp" - -QTCOMMERCIALCHART_END_NAMESPACE |