/**************************************************************************** ** ** 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 "declarativechart.h" #include QTCOMMERCIALCHART_BEGIN_NAMESPACE DeclarativeChart::DeclarativeChart(QDeclarativeItem *parent) : QDeclarativeItem(parent), m_chart(new QChart(this)), m_legend(LegendDisabled) { setFlag(QGraphicsItem::ItemHasNoContents, false); } DeclarativeChart::~DeclarativeChart() { delete m_chart; } void DeclarativeChart::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry) { Q_UNUSED(oldGeometry) if (newGeometry.isValid()) { if (newGeometry.width() > 0 && newGeometry.height() > 0) { m_chart->resize(newGeometry.width(), newGeometry.height()); } } } void DeclarativeChart::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget) { Q_UNUSED(option) Q_UNUSED(widget) // TODO: optimized? painter->setRenderHint(QPainter::Antialiasing, true); } void DeclarativeChart::setAnimationOptions(QChart::AnimationOption animations) { m_chart->setAnimationOptions(animations); } QChart::AnimationOption DeclarativeChart::animationOptions() { if (m_chart->animationOptions().testFlag(QChart::AllAnimations)) return QChart::AllAnimations; else if (m_chart->animationOptions().testFlag(QChart::GridAxisAnimations)) return QChart::GridAxisAnimations; else if (m_chart->animationOptions().testFlag(QChart::SeriesAnimations)) return QChart::SeriesAnimations; else return QChart::NoAnimation; } void DeclarativeChart::setLegend(ChartLegend legend) { if (legend != m_legend) { m_legend = legend; switch (m_legend) { case LegendDisabled: m_chart->legend()->setVisible(false); break; case LegendTop: m_chart->legend()->setVisible(true); m_chart->legend()->setAlignment(QLegend::AlignmentTop); break; case LegendBottom: m_chart->legend()->setVisible(true); m_chart->legend()->setAlignment(QLegend::AlignmentBottom); break; case LegendLeft: m_chart->legend()->setVisible(true); m_chart->legend()->setAlignment(QLegend::AlignmentLeft); break; case LegendRight: m_chart->legend()->setVisible(true); m_chart->legend()->setAlignment(QLegend::AlignmentRight); break; default: m_chart->legend()->setVisible(false); break; } } } DeclarativeChart::ChartLegend DeclarativeChart::legend() { return m_legend; } #include "moc_declarativechart.cpp" QTCOMMERCIALCHART_END_NAMESPACE