/**************************************************************************** ** ** Copyright (C) 2012 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 Commercial Charts Add-on. ** ** $QT_BEGIN_LICENSE$ ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial 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 "qbarsetprivate_p.h" //#include #include QTCOMMERCIALCHART_BEGIN_NAMESPACE QBarSetPrivate::QBarSetPrivate(QString name, QBarSet *parent) : QObject(parent), q_ptr(parent), m_name(name), m_labelsVisible(false) { } QBarSetPrivate::~QBarSetPrivate() { } void QBarSetPrivate::setName(QString name) { m_name = name; } QString QBarSetPrivate::name() const { return m_name; } QBarSetPrivate& QBarSetPrivate::operator << (const qreal &value) { m_values.append(value); emit structureChanged(); return *this; } void QBarSetPrivate::insertValue(int i, qreal value) { m_values.insert(i, value); } void QBarSetPrivate::removeValue(int i) { m_values.removeAt(i); } int QBarSetPrivate::count() const { return m_values.count(); } qreal QBarSetPrivate::valueAt(int index) const { return m_values.at(index); } void QBarSetPrivate::setValue(int index, qreal value) { m_values.replace(index,value); emit valueChanged(); } qreal QBarSetPrivate::sum() const { qreal sum(0); for (int i=0; i < m_values.count(); i++) { sum += m_values.at(i); } return sum; } void QBarSetPrivate::setPen(const QPen &pen) { m_pen = pen; emit valueChanged(); } QPen QBarSetPrivate::pen() const { return m_pen; } void QBarSetPrivate::setBrush(const QBrush &brush) { m_brush = brush; emit valueChanged(); } QBrush QBarSetPrivate::brush() const { return m_brush; } void QBarSetPrivate::setLabelPen(const QPen &pen) { m_labelPen = pen; emit valueChanged(); } QPen QBarSetPrivate::labelPen() const { return m_labelPen; } void QBarSetPrivate::setLabelBrush(const QBrush &brush) { m_labelBrush = brush; emit valueChanged(); } QBrush QBarSetPrivate::labelBrush() const { return m_labelBrush; } void QBarSetPrivate::setLabelFont(const QFont &font) { m_labelFont = font; emit valueChanged(); } QFont QBarSetPrivate::labelFont() const { return m_labelFont; } void QBarSetPrivate::setLabelsVisible(bool visible) { m_labelsVisible = visible; emit labelsVisibleChanged(visible); } bool QBarSetPrivate::labelsVisible() const { return m_labelsVisible; } void QBarSetPrivate::barHoverEnterEvent(QPoint pos) { emit showToolTip(pos, m_name); emit hoverEnter(pos); } void QBarSetPrivate::barHoverLeaveEvent() { // Emit signal to user of charts emit hoverLeave(); } /*! \class QBarSet \brief part of QtCommercial chart API. 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 QBarSeries, QStackedBarSeries, QPercentBarSeries */ /*! \fn void QBarSet::clicked(QString category, Qt::MouseButtons button) \brief signals that set has been clicked Parameter \a category describes on which category was clicked Parameter \a button mouse button */ /*! \fn void QBarSet::hoverEnter(QPoint pos) \brief signals that mouse has entered over the set at position \a pos. */ /*! \fn void QBarSet::hoverLeave() \brief signals that mouse has left from the set. */ /*! \fn void QBarSet::showToolTip(QPoint pos, QString tip) \brief \internal \a pos \a tip */ /*! Constructs QBarSet with a name of \a name and with parent of \a parent */ QBarSet::QBarSet(QString name, QObject *parent) : QObject(parent) ,d_ptr(new QBarSetPrivate(name,this)) // ,m_name(name) // ,m_labelsVisible(false) { } /*! Sets new \a name for set. */ void QBarSet::setName(QString name) { Q_D(QBarSet); d->setName(name); } /*! Returns name of the set. */ QString QBarSet::name() const { Q_D(const QBarSet); return d->name(); } /*! Appends new value \a value to the end of set. */ QBarSet& QBarSet::operator << (const qreal &value) { Q_D(QBarSet); d->operator <<(value); return *this; // m_values.append(value); // emit structureChanged(); // return *this; } /*! Inserts new \a value on the \a i position. The value that is currently at this postion is moved to postion i + 1 \sa removeValue() */ void QBarSet::insertValue(int i, qreal value) { Q_D(QBarSet); d->insertValue(i,value); // m_values.insert(i, value); } /*! Removes the value specified by \a i \sa insertValue() */ void QBarSet::removeValue(int i) { Q_D(QBarSet); d->removeValue(i); // m_values.removeAt(i); } /*! Returns count of values in set. */ int QBarSet::count() const { Q_D(const QBarSet); return d->count(); // return m_values.count(); } /*! Returns value of set indexed by \a index */ qreal QBarSet::valueAt(int index) const { Q_D(const QBarSet); return d->valueAt(index); // return m_values.at(index); } /*! Sets a new value \a value to set, indexed by \a index */ void QBarSet::setValue(int index, qreal value) { Q_D(QBarSet); d->setValue(index,value); // m_values.replace(index,value); // emit valueChanged(); } /*! Returns sum of all values in barset. */ qreal QBarSet::sum() const { Q_D(const QBarSet); return d->sum(); /* qreal total(0); for (int i=0; i < m_values.count(); i++) { total += m_values.at(i); } return total; */ } /*! Sets pen for set. Bars of this set are drawn using \a pen */ void QBarSet::setPen(const QPen &pen) { Q_D(QBarSet); d->setPen(pen); // m_pen = pen; // emit valueChanged(); } /*! Returns pen of the set. */ QPen QBarSet::pen() const { Q_D(const QBarSet); return d->pen(); // return m_pen; } /*! Sets brush for the set. Bars of this set are drawn using \a brush */ void QBarSet::setBrush(const QBrush &brush) { Q_D(QBarSet); d->setBrush(brush); // m_brush = brush; // emit valueChanged(); } /*! Returns brush of the set. */ QBrush QBarSet::brush() const { Q_D(const QBarSet); return d->brush(); // return m_brush; } /*! Sets \a pen of the values that are drawn on top of this barset */ void QBarSet::setLabelPen(const QPen &pen) { Q_D(QBarSet); d->setLabelPen(pen); // m_labelPen = pen; // emit valueChanged(); } /*! Returns pen of the values that are drawn on top of this barset */ QPen QBarSet::labelPen() const { Q_D(const QBarSet); return d->labelPen(); // return m_labelPen; } /*! Sets \a brush of the values that are drawn on top of this barset */ void QBarSet::setLabelBrush(const QBrush &brush) { Q_D(QBarSet); d->setLabelBrush(brush); // m_labelBrush = brush; // emit valueChanged(); } /*! Returns brush of the values that are drawn on top of this barset */ QBrush QBarSet::labelBrush() const { Q_D(const QBarSet); return d->labelBrush(); // return m_labelBrush; } /*! Sets the \a font for values that are drawn on top of this barset */ void QBarSet::setLabelFont(const QFont &font) { Q_D(QBarSet); d->setLabelFont(font); // m_labelFont = font; // emit valueChanged(); } /*! Returns the pen for values that are drawn on top of this set */ QFont QBarSet::labelFont() const { Q_D(const QBarSet); return d->labelFont(); // return m_labelFont; } /*! Sets visibility of bar labels. If \a visible is true, labels are drawn on top of barsets. */ void QBarSet::setLabelsVisible(bool visible) { Q_D(QBarSet); d->setLabelsVisible(visible); // m_labelsVisible = visible; // emit labelsVisibleChanged(visible); } /*! Returns the visibility of values */ bool QBarSet::labelsVisible() const { Q_D(const QBarSet); return d->labelsVisible(); // return m_labelsVisible; } /* void QBarSet::barHoverEnterEvent(QPoint pos) { emit showToolTip(pos, m_name); emit hoverEnter(pos); } */ /* void QBarSet::barHoverLeaveEvent() { // Emit signal to user of charts emit hoverLeave(); } */ #include "moc_qbarset.cpp" #include "moc_qbarsetprivate_p.cpp" QTCOMMERCIALCHART_END_NAMESPACE