diff options
author | Titta Heikkala <titta.heikkala@digia.com> | 2013-08-19 09:22:45 +0300 |
---|---|---|
committer | Titta Heikkala <titta.heikkala@digia.com> | 2013-08-19 10:58:59 +0300 |
commit | 1aa9b23ddd5da2633164b973b037e8c71a2c515f (patch) | |
tree | 33e29d43983689566562d44a3b49783bf667f9c3 /tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp | |
parent | d8e784e0dd829c1e5b9c95a6afd8545ca050f1d2 (diff) |
Add hovered signal with index for bar charts
Added hovered signal for bar charts including the hovered bar inside the
set. The hovered bar is identified by the index.
Documentation and tests are updated accordingly.
Task-number: QTRD-2161
Change-Id: I96c9d86975441274a697dec794b22e906fb44243
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp')
-rw-r--r-- | tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp | 261 |
1 files changed, 261 insertions, 0 deletions
diff --git a/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp b/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp index 384cc3bf..17223458 100644 --- a/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp +++ b/tests/auto/qstackedbarseries/tst_qstackedbarseries.cpp @@ -253,6 +253,9 @@ void tst_QStackedBarSeries::mousehovered() QList<QBarSet*> barSets = series->barSets(); QSignalSpy seriesSpy(series,SIGNAL(hovered(bool,QBarSet*))); + QSignalSpy seriesIndexSpy(series, SIGNAL(hovered(bool, int, QBarSet*))); + QSignalSpy setIndexSpy1(set1, SIGNAL(hovered(bool, int))); + QSignalSpy setIndexSpy2(set2, SIGNAL(hovered(bool, int))); QChartView view(new QChart()); view.resize(400,300); @@ -305,21 +308,37 @@ void tst_QStackedBarSeries::mousehovered() QTest::mouseMove(view.viewport(), QPoint(0, layout.at(0).center().y())); QCoreApplication::processEvents(QEventLoop::AllEvents, 10000); TRY_COMPARE(seriesSpy.count(), 0); + TRY_COMPARE(seriesIndexSpy.count(), 0); //======================================================================= // move mouse on top of set1 QTest::mouseMove(view.viewport(), layout.at(0).center().toPoint()); TRY_COMPARE(seriesSpy.count(), 1); + TRY_COMPARE(seriesIndexSpy.count(), 1); + TRY_COMPARE(setIndexSpy1.count(), 1); + TRY_COMPARE(setIndexSpy2.count(), 0); QList<QVariant> seriesSpyArg = seriesSpy.takeFirst(); QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1); QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); QVERIFY(seriesSpyArg.at(0).toBool() == true); + QList<QVariant> seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == true); + + QList<QVariant> setIndexSpyArg = setIndexSpy1.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == true); + //======================================================================= // move mouse from top of set1 to top of set2 QTest::mouseMove(view.viewport(), layout.at(1).center().toPoint()); TRY_COMPARE(seriesSpy.count(), 2); + TRY_COMPARE(seriesIndexSpy.count(), 2); + TRY_COMPARE(setIndexSpy1.count(), 1); + TRY_COMPARE(setIndexSpy2.count(), 1); // should leave set1 seriesSpyArg = seriesSpy.takeFirst(); @@ -327,22 +346,264 @@ void tst_QStackedBarSeries::mousehovered() QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); QVERIFY(seriesSpyArg.at(0).toBool() == false); + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == false); + + setIndexSpyArg = setIndexSpy1.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == false); + // should enter set2 seriesSpyArg = seriesSpy.takeFirst(); QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2); QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); QVERIFY(seriesSpyArg.at(0).toBool() == true); + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == true); + + setIndexSpyArg = setIndexSpy2.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == true); + //======================================================================= // move mouse from top of set2 to background QTest::mouseMove(view.viewport(), QPoint(layout.at(1).center().x(), 0)); TRY_COMPARE(seriesSpy.count(), 1); + TRY_COMPARE(seriesIndexSpy.count(), 1); + TRY_COMPARE(setIndexSpy1.count(), 0); + TRY_COMPARE(setIndexSpy2.count(), 1); // should leave set2 seriesSpyArg = seriesSpy.takeFirst(); QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2); QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); QVERIFY(seriesSpyArg.at(0).toBool() == false); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == false); + + setIndexSpyArg = setIndexSpy2.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == false); + +//======================================================================= +// move mouse on top of set1, bar0 to check the index (hover into set1) + QTest::mouseMove(view.viewport(), layout.at(0).center().toPoint()); + + TRY_COMPARE(seriesSpy.count(), 1); + TRY_COMPARE(seriesIndexSpy.count(), 1); + TRY_COMPARE(setIndexSpy1.count(), 1); + TRY_COMPARE(setIndexSpy2.count(), 0); + + //should enter set1, bar0 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == true); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == true); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0); + + setIndexSpyArg = setIndexSpy1.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == true); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 0); + +//======================================================================= +// move mouse on top of set2, bar0 to check the index (hover out set1, +// hover in set2) + QTest::mouseMove(view.viewport(), layout.at(1).center().toPoint()); + + TRY_COMPARE(seriesSpy.count(), 2); + TRY_COMPARE(seriesIndexSpy.count(), 2); + TRY_COMPARE(setIndexSpy1.count(), 1); + TRY_COMPARE(setIndexSpy2.count(), 1); + + //should leave set1, bar0 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == false); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == false); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0); + + setIndexSpyArg = setIndexSpy1.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == false); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 0); + + //should enter set2, bar0 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == true); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == true); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0); + + setIndexSpyArg = setIndexSpy2.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == true); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 0); + +//======================================================================= +// move mouse on top of set1, bar1 to check the index (hover out set2, +// hover in set1) + QTest::mouseMove(view.viewport(), layout.at(2).center().toPoint()); + + TRY_COMPARE(seriesSpy.count(), 2); + TRY_COMPARE(seriesIndexSpy.count(), 2); + TRY_COMPARE(setIndexSpy1.count(), 1); + TRY_COMPARE(setIndexSpy2.count(), 1); + + //should leave set2, bar0 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == false); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == false); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 0); + + setIndexSpyArg = setIndexSpy2.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == false); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 0); + + //should enter set1, bar1 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == true); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == true); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1); + + setIndexSpyArg = setIndexSpy1.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == true); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 1); + +//======================================================================= +// move mouse between set1 and set2 (hover out set1) + QTest::mouseMove(view.viewport(), QPoint((layout.at(3).right() + layout.at(4).left()) /2, + layout.at(2).top())); + + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + TRY_COMPARE(seriesSpy.count(), 1); + TRY_COMPARE(seriesIndexSpy.count(), 1); + TRY_COMPARE(setIndexSpy1.count(), 1); + TRY_COMPARE(setIndexSpy2.count(), 0); + + //should leave set1, bar1 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set1); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == false); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set1); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == false); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1); + + setIndexSpyArg = setIndexSpy1.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == false); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 1); + +//======================================================================= +// move mouse on top of set2, bar1 to check the index (hover in set2) + QTest::mouseMove(view.viewport(), layout.at(3).center().toPoint()); + + TRY_COMPARE(seriesSpy.count(), 1); + TRY_COMPARE(seriesIndexSpy.count(), 1); + TRY_COMPARE(setIndexSpy1.count(), 0); + TRY_COMPARE(setIndexSpy2.count(), 1); + + //should enter set2, bar1 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == true); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == true); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1); + + setIndexSpyArg = setIndexSpy2.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == true); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 1); + +//======================================================================= +// move mouse between set1 and set2 (hover out set2) + QTest::mouseMove(view.viewport(), QPoint((layout.at(3).right() + layout.at(4).left()) /2, + layout.at(2).top())); + + QCoreApplication::processEvents(QEventLoop::AllEvents, 1000); + TRY_COMPARE(seriesSpy.count(), 1); + TRY_COMPARE(seriesIndexSpy.count(), 1); + TRY_COMPARE(setIndexSpy1.count(), 0); + TRY_COMPARE(setIndexSpy2.count(), 1); + + //should leave set1, bar1 + seriesSpyArg = seriesSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesSpyArg.at(1)), set2); + QVERIFY(seriesSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesSpyArg.at(0).toBool() == false); + + seriesIndexSpyArg = seriesIndexSpy.takeFirst(); + QCOMPARE(qvariant_cast<QBarSet*>(seriesIndexSpyArg.at(2)), set2); + QVERIFY(seriesIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(seriesIndexSpyArg.at(0).toBool() == false); + QVERIFY(seriesIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(seriesIndexSpyArg.at(1).toInt() == 1); + + setIndexSpyArg = setIndexSpy2.takeFirst(); + QVERIFY(setIndexSpyArg.at(0).type() == QVariant::Bool); + QVERIFY(setIndexSpyArg.at(0).toBool() == false); + QVERIFY(setIndexSpyArg.at(1).type() == QVariant::Int); + QVERIFY(setIndexSpyArg.at(1).toInt() == 1); } QTEST_MAIN(tst_QStackedBarSeries) |