##// END OF EJS Templates
BarGroup and Bar as ChartItems instead of GraphicItems
BarGroup and Bar as ChartItems instead of GraphicItems

File last commit:

r64:e24eaf728304
r74:5412c444e1e8
Show More
qscatterseries.cpp
103 lines | 2.7 KiB | text/x-c | CppLexer
/ src / qscatterseries.cpp
Tero Ahola
Integrated scatter type series...
r42 #include "qscatterseries.h"
#include "qscatterseries_p.h"
#include "qchart.h"
#include <QPainter>
#include <QGraphicsScene>
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 #include <QDebug>
Tero Ahola
Integrated scatter type series...
r42
QTCOMMERCIALCHART_BEGIN_NAMESPACE
//#define QSeriesData QList<qreal>
Tero Ahola
Refactored series creation with QChart
r61 QScatterSeriesPrivate::QScatterSeriesPrivate(QGraphicsItem *parent) :
Tero Ahola
Integrated scatter type series...
r42 QGraphicsItem(parent),
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 m_scalex(100), // TODO: let the use define the scale (or autoscaled)
Tero Ahola
Draft implementation for setting color themes for a chart
r64 m_scaley(100),
m_markerColor(QColor())
Tero Ahola
Integrated scatter type series...
r42 {
}
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 void QScatterSeriesPrivate::resize(QRectF rect)
Tero Ahola
Integrated scatter type series...
r42 {
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 m_scenex.clear();
m_sceney.clear();
foreach(qreal x, m_x)
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 m_scenex.append(rect.left() + x * (rect.width() / m_scalex));
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48
foreach(qreal y, m_y)
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 m_sceney.append(rect.bottom() - y * (rect.height() / m_scaley));
Tero Ahola
Integrated scatter type series...
r42 }
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 // TODO:
//void QScatterSeriesPrivate::setAxisScale(qreal xscale, qreal yscale)
Tero Ahola
Integrated scatter type series...
r42 QRectF QScatterSeriesPrivate::boundingRect() const
{
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 return QRectF(0, 0, 55, 100);
Tero Ahola
Integrated scatter type series...
r42 }
void QScatterSeriesPrivate::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QPen pen = painter->pen();
QBrush brush = pen.brush();
// TODO: The opacity should be user definable...
Tero Ahola
Draft implementation for setting color themes for a chart
r64 //brush.setColor(QColor(255, 82, 0, 100));
brush.setColor(m_markerColor);
Tero Ahola
Integrated scatter type series...
r42 pen.setBrush(brush);
pen.setWidth(4);
painter->setPen(pen);
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 // TODO: m_scenex and m_sceny are left empty during construction -> we would need a resize
// event right after construction or maybe given a size during initialization
for (int i(0); i < m_scenex.count() && i < m_sceney.count(); i++) {
if (scene()->width() > m_scenex.at(i) && scene()->height() > m_sceney.at(i))
//painter->drawArc(m_scenex.at(i), m_sceney.at(i), 2, 2, 0, 5760);
painter->drawPoint(m_scenex.at(i), m_sceney.at(i));
Tero Ahola
Integrated scatter type series...
r42 }
}
Tero Ahola
Refactored series creation with QChart
r61 QScatterSeries::QScatterSeries(QObject *parent) :
Tero Ahola
Integrated scatter type series...
r42 QChartSeries(parent),
Tero Ahola
Refactored series creation with QChart
r61 d(new QScatterSeriesPrivate(qobject_cast<QGraphicsItem *> (parent)))
Tero Ahola
Integrated scatter type series...
r42 {
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 }
Tero Ahola
Refactored series creation with QChart
r61 bool QScatterSeries::setData(QList<qreal> x, QList<qreal> y)
{
// TODO: validate data
d->m_x = x;
d->m_y = y;
QGraphicsItem *parentItem = qobject_cast<QGraphicsItem *>(parent());
Q_ASSERT(parentItem);
d->resize(parentItem->boundingRect());
return true;
}
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 void QScatterSeries::chartSizeChanged(QRectF rect)
Tero Ahola
Resizing of QGraphicItems now possible by resize signal from QChart
r48 {
// Recalculate scatter data point locations on the scene
// d->transform().reset();
// d->transform().translate();
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 d->resize(rect);
Tero Ahola
Integrated scatter type series...
r42 }
Tero Ahola
Draft implementation for setting color themes for a chart
r64 void QScatterSeries::setMarkerColor(QColor color)
{
d->m_markerColor = color;
}
Tero Ahola
Removed scale from chart's sizeChanged signals
r54 // TODO:
//void QScatterSeries::chartScaleChanged(qreal xscale, qreal yscale)
//{
// d->rescale(xscale, yscale);
//}
Tero Ahola
Integrated scatter type series...
r42 QScatterSeries::~QScatterSeries()
{
delete d;
}
#include "moc_qscatterseries.cpp"
QTCOMMERCIALCHART_END_NAMESPACE