qbarset.cpp
467 lines
| 8.8 KiB
| text/x-c
|
CppLexer
Jani Honkonen
|
r794 | /**************************************************************************** | ||
** | ||||
** 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$ | ||||
** | ||||
****************************************************************************/ | ||||
sauimone
|
r169 | #include "qbarset.h" | ||
sauimone
|
r934 | #include "qbarsetprivate_p.h" | ||
//#include <QDebug> | ||||
sauimone
|
r283 | #include <QToolTip> | ||
sauimone
|
r169 | |||
QTCOMMERCIALCHART_BEGIN_NAMESPACE | ||||
sauimone
|
r934 | |||
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(); | ||||
} | ||||
sauimone
|
r313 | /*! | ||
\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. | ||||
sauimone
|
r325 | \mainclass | ||
sauimone
|
r377 | \sa QBarSeries, QStackedBarSeries, QPercentBarSeries | ||
sauimone
|
r313 | */ | ||
/*! | ||||
sauimone
|
r812 | \fn void QBarSet::clicked(QString category, Qt::MouseButtons button) | ||
sauimone
|
r313 | \brief signals that set has been clicked | ||
sauimone
|
r425 | Parameter \a category describes on which category was clicked | ||
sauimone
|
r812 | Parameter \a button mouse button | ||
sauimone
|
r425 | */ | ||
sauimone
|
r313 | /*! | ||
\fn void QBarSet::hoverEnter(QPoint pos) | ||||
\brief signals that mouse has entered over the set at position \a pos. | ||||
*/ | ||||
sauimone
|
r425 | |||
sauimone
|
r313 | /*! | ||
\fn void QBarSet::hoverLeave() | ||||
\brief signals that mouse has left from the set. | ||||
*/ | ||||
sauimone
|
r425 | |||
sauimone
|
r313 | /*! | ||
\fn void QBarSet::showToolTip(QPoint pos, QString tip) | ||||
sauimone
|
r319 | \brief \internal \a pos \a tip | ||
sauimone
|
r313 | */ | ||
/*! | ||||
Constructs QBarSet with a name of \a name and with parent of \a parent | ||||
*/ | ||||
sauimone
|
r280 | QBarSet::QBarSet(QString name, QObject *parent) | ||
sauimone
|
r276 | : QObject(parent) | ||
sauimone
|
r934 | ,d_ptr(new QBarSetPrivate(name,this)) | ||
// ,m_name(name) | ||||
// ,m_labelsVisible(false) | ||||
sauimone
|
r169 | { | ||
} | ||||
sauimone
|
r313 | /*! | ||
Sets new \a name for set. | ||||
*/ | ||||
sauimone
|
r169 | void QBarSet::setName(QString name) | ||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setName(name); | ||||
sauimone
|
r169 | } | ||
sauimone
|
r313 | |||
/*! | ||||
Returns name of the set. | ||||
*/ | ||||
sauimone
|
r776 | QString QBarSet::name() const | ||
sauimone
|
r171 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->name(); | ||||
sauimone
|
r171 | } | ||
sauimone
|
r169 | |||
sauimone
|
r313 | /*! | ||
Appends new value \a value to the end of set. | ||||
*/ | ||||
sauimone
|
r169 | QBarSet& QBarSet::operator << (const qreal &value) | ||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->operator <<(value); | ||||
sauimone
|
r169 | return *this; | ||
sauimone
|
r934 | |||
// m_values.append(value); | ||||
// emit structureChanged(); | ||||
// return *this; | ||||
sauimone
|
r169 | } | ||
Marek Rosa
|
r901 | /*! | ||
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() | ||||
*/ | ||||
Marek Rosa
|
r662 | void QBarSet::insertValue(int i, qreal value) | ||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->insertValue(i,value); | ||||
// m_values.insert(i, value); | ||||
Marek Rosa
|
r662 | } | ||
Marek Rosa
|
r901 | /*! | ||
Removes the value specified by \a i | ||||
\sa insertValue() | ||||
*/ | ||||
Marek Rosa
|
r663 | void QBarSet::removeValue(int i) | ||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->removeValue(i); | ||||
// m_values.removeAt(i); | ||||
Marek Rosa
|
r663 | } | ||
sauimone
|
r313 | /*! | ||
Returns count of values in set. | ||||
*/ | ||||
sauimone
|
r776 | int QBarSet::count() const | ||
sauimone
|
r171 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->count(); | ||||
// return m_values.count(); | ||||
sauimone
|
r171 | } | ||
sauimone
|
r313 | /*! | ||
Returns value of set indexed by \a index | ||||
*/ | ||||
sauimone
|
r776 | qreal QBarSet::valueAt(int index) const | ||
sauimone
|
r171 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->valueAt(index); | ||||
// return m_values.at(index); | ||||
sauimone
|
r171 | } | ||
sauimone
|
r313 | /*! | ||
Sets a new value \a value to set, indexed by \a index | ||||
*/ | ||||
sauimone
|
r183 | void QBarSet::setValue(int index, qreal value) | ||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setValue(index,value); | ||||
// m_values.replace(index,value); | ||||
// emit valueChanged(); | ||||
sauimone
|
r183 | } | ||
sauimone
|
r492 | /*! | ||
sauimone
|
r934 | Returns sum of all values in barset. | ||
sauimone
|
r492 | */ | ||
sauimone
|
r934 | qreal QBarSet::sum() const | ||
sauimone
|
r438 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->sum(); | ||||
/* | ||||
sauimone
|
r438 | qreal total(0); | ||
sauimone
|
r763 | for (int i=0; i < m_values.count(); i++) { | ||
total += m_values.at(i); | ||||
sauimone
|
r438 | } | ||
return total; | ||||
sauimone
|
r934 | */ | ||
sauimone
|
r438 | } | ||
sauimone
|
r313 | /*! | ||
Sets pen for set. Bars of this set are drawn using \a pen | ||||
*/ | ||||
sauimone
|
r763 | void QBarSet::setPen(const QPen &pen) | ||
sauimone
|
r214 | { | ||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setPen(pen); | ||||
// m_pen = pen; | ||||
// emit valueChanged(); | ||||
sauimone
|
r214 | } | ||
sauimone
|
r313 | /*! | ||
Returns pen of the set. | ||||
*/ | ||||
sauimone
|
r473 | QPen QBarSet::pen() const | ||
sauimone
|
r214 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->pen(); | ||||
// return m_pen; | ||||
sauimone
|
r214 | } | ||
sauimone
|
r313 | /*! | ||
Sets brush for the set. Bars of this set are drawn using \a brush | ||||
*/ | ||||
sauimone
|
r763 | void QBarSet::setBrush(const QBrush &brush) | ||
sauimone
|
r214 | { | ||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setBrush(brush); | ||||
// m_brush = brush; | ||||
// emit valueChanged(); | ||||
sauimone
|
r214 | } | ||
sauimone
|
r313 | /*! | ||
Returns brush of the set. | ||||
*/ | ||||
sauimone
|
r473 | QBrush QBarSet::brush() const | ||
sauimone
|
r214 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->brush(); | ||||
// return m_brush; | ||||
sauimone
|
r214 | } | ||
sauimone
|
r512 | /*! | ||
sauimone
|
r839 | Sets \a pen of the values that are drawn on top of this barset | ||
sauimone
|
r512 | */ | ||
sauimone
|
r820 | void QBarSet::setLabelPen(const QPen &pen) | ||
sauimone
|
r512 | { | ||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setLabelPen(pen); | ||||
// m_labelPen = pen; | ||||
// emit valueChanged(); | ||||
sauimone
|
r820 | } | ||
/*! | ||||
Returns pen of the values that are drawn on top of this barset | ||||
*/ | ||||
QPen QBarSet::labelPen() const | ||||
{ | ||||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->labelPen(); | ||||
// return m_labelPen; | ||||
sauimone
|
r820 | } | ||
/*! | ||||
sauimone
|
r839 | Sets \a brush of the values that are drawn on top of this barset | ||
sauimone
|
r820 | */ | ||
void QBarSet::setLabelBrush(const QBrush &brush) | ||||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setLabelBrush(brush); | ||||
// m_labelBrush = brush; | ||||
// emit valueChanged(); | ||||
sauimone
|
r820 | } | ||
/*! | ||||
Returns brush of the values that are drawn on top of this barset | ||||
*/ | ||||
QBrush QBarSet::labelBrush() const | ||||
{ | ||||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->labelBrush(); | ||||
// return m_labelBrush; | ||||
sauimone
|
r820 | } | ||
/*! | ||||
sauimone
|
r839 | Sets the \a font for values that are drawn on top of this barset | ||
sauimone
|
r820 | */ | ||
void QBarSet::setLabelFont(const QFont &font) | ||||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setLabelFont(font); | ||||
// m_labelFont = font; | ||||
// emit valueChanged(); | ||||
sauimone
|
r512 | } | ||
/*! | ||||
sauimone
|
r817 | Returns the pen for values that are drawn on top of this set | ||
sauimone
|
r512 | */ | ||
sauimone
|
r820 | QFont QBarSet::labelFont() const | ||
sauimone
|
r512 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->labelFont(); | ||||
// return m_labelFont; | ||||
sauimone
|
r512 | } | ||
sauimone
|
r813 | /*! | ||
Marek Rosa
|
r908 | Sets visibility of bar labels. If \a visible is true, labels are drawn on top of barsets. | ||
sauimone
|
r813 | */ | ||
Marek Rosa
|
r908 | |||
sauimone
|
r820 | void QBarSet::setLabelsVisible(bool visible) | ||
{ | ||||
sauimone
|
r934 | Q_D(QBarSet); | ||
d->setLabelsVisible(visible); | ||||
// m_labelsVisible = visible; | ||||
// emit labelsVisibleChanged(visible); | ||||
sauimone
|
r820 | } | ||
/*! | ||||
Returns the visibility of values | ||||
*/ | ||||
bool QBarSet::labelsVisible() const | ||||
sauimone
|
r813 | { | ||
sauimone
|
r934 | Q_D(const QBarSet); | ||
return d->labelsVisible(); | ||||
// return m_labelsVisible; | ||||
sauimone
|
r813 | } | ||
sauimone
|
r934 | /* | ||
sauimone
|
r412 | void QBarSet::barHoverEnterEvent(QPoint pos) | ||
sauimone
|
r276 | { | ||
sauimone
|
r763 | emit showToolTip(pos, m_name); | ||
sauimone
|
r288 | emit hoverEnter(pos); | ||
sauimone
|
r276 | } | ||
sauimone
|
r313 | */ | ||
sauimone
|
r934 | /* | ||
sauimone
|
r412 | void QBarSet::barHoverLeaveEvent() | ||
sauimone
|
r276 | { | ||
sauimone
|
r288 | // Emit signal to user of charts | ||
emit hoverLeave(); | ||||
sauimone
|
r276 | } | ||
sauimone
|
r934 | */ | ||
sauimone
|
r239 | #include "moc_qbarset.cpp" | ||
sauimone
|
r934 | #include "moc_qbarsetprivate_p.cpp" | ||
Tero Ahola
|
r737 | |||
sauimone
|
r169 | QTCOMMERCIALCHART_END_NAMESPACE | ||