##// END OF EJS Templates
Add pressed, released and doubleClicked signals...
Add pressed, released and doubleClicked signals Added pressed, released and doubleClicked signals for all series. The signals are also added to QPieSlice and QBoxPlotSet. Change-Id: If94948be439a3b53ed48c02d0092091e836222a4 Task-number: QTRD-2384 Reviewed-by: Miikka Heikkinen <miikka.heikkinen@theqtcompany.com>

File last commit:

r2739:f78be8da2422
r2739:f78be8da2422
Show More
tst_qsplineseries.cpp
196 lines | 5.9 KiB | text/x-c | CppLexer
Michal Klocek
Adds spline scatter unit tests
r1266 /****************************************************************************
**
Titta Heikkala
Update copyright year...
r2688 ** Copyright (C) 2014 Digia Plc
Michal Klocek
Adds spline scatter unit tests
r1266 ** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** This file is part of the Qt Enterprise Charts Add-on.
Michal Klocek
Adds spline scatter unit tests
r1266 **
** $QT_BEGIN_LICENSE$
Miikka Heikkinen
Qt Commercial -> Qt Enterprise...
r2574 ** Licensees holding valid Qt Enterprise licenses may use this file in
** accordance with the Qt Enterprise License Agreement provided with the
Michal Klocek
Adds spline scatter unit tests
r1266 ** 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 "../qxyseries/tst_qxyseries.h"
Titta Heikkala
Fix include syntax...
r2714 #include <QtCharts/QSplineSeries>
Michal Klocek
Adds spline scatter unit tests
r1266
Q_DECLARE_METATYPE(QList<QPointF>)
class tst_QSplineSeries : public tst_QXYSeries
{
Q_OBJECT
public slots:
void initTestCase();
void cleanupTestCase();
void init();
void cleanup();
private slots:
void qsplineseries_data();
void qsplineseries();
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 void pressedSignal();
void releasedSignal();
void doubleClickedSignal();
Michal Klocek
Adds spline scatter unit tests
r1266 protected:
void pointsVisible_data();
};
void tst_QSplineSeries::initTestCase()
{
}
void tst_QSplineSeries::cleanupTestCase()
{
Miikka Heikkinen
Plugged some memory leaks....
r2733 QTest::qWait(1); // Allow final deleteLaters to run
Michal Klocek
Adds spline scatter unit tests
r1266 }
void tst_QSplineSeries::init()
{
tst_QXYSeries::init();
m_series = new QSplineSeries();
}
void tst_QSplineSeries::cleanup()
{
delete m_series;
tst_QXYSeries::cleanup();
}
void tst_QSplineSeries::qsplineseries_data()
{
}
void tst_QSplineSeries::qsplineseries()
{
QSplineSeries series;
QCOMPARE(series.count(),0);
QCOMPARE(series.brush(), QBrush());
QCOMPARE(series.points(), QList<QPointF>());
QCOMPARE(series.pen(), QPen());
QCOMPARE(series.pointsVisible(), false);
series.append(QList<QPointF>());
series.append(0.0,0.0);
series.append(QPointF());
series.remove(0.0,0.0);
series.remove(QPointF());
Jani Honkonen
xyseries: removeAll() was duplicate of clear()
r1374 series.clear();
Michal Klocek
Adds spline scatter unit tests
r1266
series.replace(QPointF(),QPointF());
series.replace(0,0,0,0);
series.setBrush(QBrush());
series.setPen(QPen());
series.setPointsVisible(false);
m_chart->addSeries(&series);
m_view->show();
QTest::qWaitForWindowShown(m_view);
}
Titta Heikkala
Add pressed, released and doubleClicked signals...
r2739 void tst_QSplineSeries::pressedSignal()
{
SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
QPointF splinePoint(4, 12);
QSplineSeries *splineSeries = new QSplineSeries();
splineSeries->append(QPointF(2, 1));
splineSeries->append(splinePoint);
splineSeries->append(QPointF(6, 12));
QChartView view;
view.chart()->legend()->setVisible(false);
view.chart()->addSeries(splineSeries);
view.show();
QTest::qWaitForWindowShown(&view);
QSignalSpy seriesSpy(splineSeries, SIGNAL(pressed(QPointF)));
QPointF checkPoint = view.chart()->mapToPosition(splinePoint);
QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, checkPoint.toPoint());
QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
QCOMPARE(seriesSpy.count(), 1);
QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
// checkPoint is QPointF and for the mouseClick it it's changed to QPoint
// this causes small distinction in decimals so we round it before comparing
QPointF signalPoint = qvariant_cast<QPointF>(seriesSpyArg.at(0));
QCOMPARE(qRound(signalPoint.x()), qRound(splinePoint.x()));
QCOMPARE(qRound(signalPoint.y()), qRound(splinePoint.y()));
}
void tst_QSplineSeries::releasedSignal()
{
SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
QPointF splinePoint(4, 12);
QSplineSeries *splineSeries = new QSplineSeries();
splineSeries->append(QPointF(2, 20));
splineSeries->append(splinePoint);
splineSeries->append(QPointF(6, 12));
QChartView view;
view.chart()->legend()->setVisible(false);
view.chart()->addSeries(splineSeries);
view.show();
QTest::qWaitForWindowShown(&view);
QSignalSpy seriesSpy(splineSeries, SIGNAL(released(QPointF)));
QPointF checkPoint = view.chart()->mapToPosition(splinePoint);
QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, checkPoint.toPoint());
QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
QCOMPARE(seriesSpy.count(), 1);
QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
// checkPoint is QPointF and for the mouseClick it it's changed to QPoint
// this causes small distinction in decimals so we round it before comparing
QPointF signalPoint = qvariant_cast<QPointF>(seriesSpyArg.at(0));
QCOMPARE(qRound(signalPoint.x()), qRound(splinePoint.x()));
QCOMPARE(qRound(signalPoint.y()), qRound(splinePoint.y()));
}
void tst_QSplineSeries::doubleClickedSignal()
{
SKIP_IF_CANNOT_TEST_MOUSE_EVENTS();
QPointF splinePoint(4, 12);
QSplineSeries *splineSeries = new QSplineSeries();
splineSeries->append(QPointF(2, 20));
splineSeries->append(splinePoint);
splineSeries->append(QPointF(6, 12));
QChartView view;
view.chart()->legend()->setVisible(false);
view.chart()->addSeries(splineSeries);
view.show();
QTest::qWaitForWindowShown(&view);
QSignalSpy seriesSpy(splineSeries, SIGNAL(doubleClicked(QPointF)));
QPointF checkPoint = view.chart()->mapToPosition(splinePoint);
QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, checkPoint.toPoint());
QCoreApplication::processEvents(QEventLoop::AllEvents, 1000);
QCOMPARE(seriesSpy.count(), 1);
QList<QVariant> seriesSpyArg = seriesSpy.takeFirst();
// checkPoint is QPointF and for the mouseClick it it's changed to QPoint
// this causes small distinction in decimals so we round it before comparing
QPointF signalPoint = qvariant_cast<QPointF>(seriesSpyArg.at(0));
QCOMPARE(qRound(signalPoint.x()), qRound(splinePoint.x()));
QCOMPARE(qRound(signalPoint.y()), qRound(splinePoint.y()));
}
Michal Klocek
Adds spline scatter unit tests
r1266 QTEST_MAIN(tst_QSplineSeries)
#include "tst_qsplineseries.moc"