From 69f73db4ec09826487454f85670f992cec1af51a Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 11 Nov 2014 12:17:45 +0200 Subject: Moved manual tests to separate directory. This allows publishing autotests. Git export attributes changed accordingly. Change-Id: I6db2eb52dabdb8f12e0bc2a992a873abfa15b1a5 Reviewed-by: Titta Heikkala --- .gitattributes | 1 - tests/.gitattributes | 2 + tests/boxplottester/boxplottester.pro | 18 - tests/boxplottester/customtablemodel.cpp | 147 --- tests/boxplottester/customtablemodel.h | 52 - tests/boxplottester/main.cpp | 34 - tests/boxplottester/mainwidget.cpp | 482 -------- tests/boxplottester/mainwidget.h | 90 -- tests/boxplottester/pentool.cpp | 141 --- tests/boxplottester/pentool.h | 60 - tests/chartdesigner/brushwidget.cpp | 33 - tests/chartdesigner/brushwidget.h | 39 - tests/chartdesigner/chartdesigner.pro | 24 - tests/chartdesigner/engine.cpp | 343 ------ tests/chartdesigner/engine.h | 76 -- tests/chartdesigner/main.cpp | 32 - tests/chartdesigner/mainwindow.cpp | 423 ------- tests/chartdesigner/mainwindow.h | 97 -- tests/chartdesigner/objectinspectorwidget.cpp | 51 - tests/chartdesigner/objectinspectorwidget.h | 37 - tests/chartdesigner/penwidget.cpp | 56 - tests/chartdesigner/penwidget.h | 48 - tests/chartviewer/charts.h | 90 -- tests/chartviewer/charts/axis/barcategoryaxisx.cpp | 80 -- .../charts/axis/barcategoryaxisxlogy.cpp | 81 -- tests/chartviewer/charts/axis/barcategoryaxisy.cpp | 84 -- .../charts/axis/barcategoryaxisylogx.cpp | 81 -- tests/chartviewer/charts/axis/categoryaxis.cpp | 83 -- tests/chartviewer/charts/axis/datetimeaxisx.cpp | 81 -- tests/chartviewer/charts/axis/datetimeaxisy.cpp | 80 -- tests/chartviewer/charts/axis/logvalueaxisx.cpp | 76 -- tests/chartviewer/charts/axis/logvalueaxisy.cpp | 76 -- tests/chartviewer/charts/axis/valueaxis.cpp | 75 -- .../charts/barseries/horizontalbarchart.cpp | 51 - .../charts/barseries/horizontalpercentbarchart.cpp | 51 - .../charts/barseries/horizontalstackedbarchart.cpp | 51 - .../charts/barseries/verticalbarchart.cpp | 51 - .../charts/barseries/verticalpercentbarchart.cpp | 51 - .../charts/barseries/verticalstackedbarchart.cpp | 51 - tests/chartviewer/charts/charts.pri | 51 - tests/chartviewer/charts/domain/barlogx.cpp | 67 -- tests/chartviewer/charts/domain/barlogy.cpp | 67 -- tests/chartviewer/charts/domain/barpercentlogx.cpp | 67 -- tests/chartviewer/charts/domain/barpercentlogy.cpp | 67 -- tests/chartviewer/charts/domain/barstackedlogx.cpp | 67 -- tests/chartviewer/charts/domain/barstackedlogy.cpp | 67 -- tests/chartviewer/charts/domain/linelogxlogy.cpp | 62 - tests/chartviewer/charts/domain/linelogxy.cpp | 62 - tests/chartviewer/charts/domain/linexlogy.cpp | 62 - .../chartviewer/charts/domain/scatterlogxlogy.cpp | 62 - tests/chartviewer/charts/domain/scatterlogxy.cpp | 62 - tests/chartviewer/charts/domain/scatterxlogy.cpp | 62 - tests/chartviewer/charts/domain/splinelogxlogy.cpp | 62 - tests/chartviewer/charts/domain/splinelogxy.cpp | 62 - tests/chartviewer/charts/domain/splinexlogy.cpp | 62 - tests/chartviewer/charts/font/font.cpp | 126 -- .../charts/multiaxis/multivalueaxis.cpp | 77 -- .../charts/multiaxis/multivalueaxis2.cpp | 77 -- .../charts/multiaxis/multivalueaxis3.cpp | 79 -- .../charts/multiaxis/multivalueaxis4.cpp | 78 -- .../charts/multiaxis/multivaluebaraxis.cpp | 102 -- tests/chartviewer/charts/pieseries/donutchart.cpp | 55 - tests/chartviewer/charts/pieseries/piechart.cpp | 57 - tests/chartviewer/charts/size/sizecharts.cpp | 140 --- tests/chartviewer/charts/xyseries/areachart.cpp | 65 -- tests/chartviewer/charts/xyseries/linechart.cpp | 52 - tests/chartviewer/charts/xyseries/scatterchart.cpp | 51 - tests/chartviewer/charts/xyseries/splinechart.cpp | 52 - tests/chartviewer/chartviewer.pro | 8 - tests/chartviewer/grid.cpp | 301 ----- tests/chartviewer/grid.h | 82 -- tests/chartviewer/main.cpp | 85 -- tests/chartviewer/model.h | 66 -- tests/chartviewer/view.cpp | 56 - tests/chartviewer/view.h | 42 - tests/chartviewer/window.cpp | 506 --------- tests/chartviewer/window.h | 117 -- tests/chartwidgettest/chartwidgettest.pro | 15 - tests/chartwidgettest/dataseriedialog.cpp | 189 --- tests/chartwidgettest/dataseriedialog.h | 55 - tests/chartwidgettest/main.cpp | 34 - tests/chartwidgettest/mainwidget.cpp | 380 ------- tests/chartwidgettest/mainwidget.h | 80 -- tests/manual/boxplottester/boxplottester.pro | 18 + tests/manual/boxplottester/customtablemodel.cpp | 147 +++ tests/manual/boxplottester/customtablemodel.h | 52 + tests/manual/boxplottester/main.cpp | 34 + tests/manual/boxplottester/mainwidget.cpp | 482 ++++++++ tests/manual/boxplottester/mainwidget.h | 90 ++ tests/manual/boxplottester/pentool.cpp | 141 +++ tests/manual/boxplottester/pentool.h | 60 + tests/manual/chartdesigner/brushwidget.cpp | 33 + tests/manual/chartdesigner/brushwidget.h | 39 + tests/manual/chartdesigner/chartdesigner.pro | 24 + tests/manual/chartdesigner/engine.cpp | 343 ++++++ tests/manual/chartdesigner/engine.h | 76 ++ tests/manual/chartdesigner/main.cpp | 32 + tests/manual/chartdesigner/mainwindow.cpp | 423 +++++++ tests/manual/chartdesigner/mainwindow.h | 97 ++ .../manual/chartdesigner/objectinspectorwidget.cpp | 51 + tests/manual/chartdesigner/objectinspectorwidget.h | 37 + tests/manual/chartdesigner/penwidget.cpp | 56 + tests/manual/chartdesigner/penwidget.h | 48 + tests/manual/chartviewer/charts.h | 90 ++ .../chartviewer/charts/axis/barcategoryaxisx.cpp | 80 ++ .../charts/axis/barcategoryaxisxlogy.cpp | 81 ++ .../chartviewer/charts/axis/barcategoryaxisy.cpp | 84 ++ .../charts/axis/barcategoryaxisylogx.cpp | 81 ++ .../chartviewer/charts/axis/categoryaxis.cpp | 83 ++ .../chartviewer/charts/axis/datetimeaxisx.cpp | 81 ++ .../chartviewer/charts/axis/datetimeaxisy.cpp | 80 ++ .../chartviewer/charts/axis/logvalueaxisx.cpp | 76 ++ .../chartviewer/charts/axis/logvalueaxisy.cpp | 76 ++ tests/manual/chartviewer/charts/axis/valueaxis.cpp | 75 ++ .../charts/barseries/horizontalbarchart.cpp | 51 + .../charts/barseries/horizontalpercentbarchart.cpp | 51 + .../charts/barseries/horizontalstackedbarchart.cpp | 51 + .../charts/barseries/verticalbarchart.cpp | 51 + .../charts/barseries/verticalpercentbarchart.cpp | 51 + .../charts/barseries/verticalstackedbarchart.cpp | 51 + tests/manual/chartviewer/charts/charts.pri | 51 + tests/manual/chartviewer/charts/domain/barlogx.cpp | 67 ++ tests/manual/chartviewer/charts/domain/barlogy.cpp | 67 ++ .../chartviewer/charts/domain/barpercentlogx.cpp | 67 ++ .../chartviewer/charts/domain/barpercentlogy.cpp | 67 ++ .../chartviewer/charts/domain/barstackedlogx.cpp | 67 ++ .../chartviewer/charts/domain/barstackedlogy.cpp | 67 ++ .../chartviewer/charts/domain/linelogxlogy.cpp | 62 + .../manual/chartviewer/charts/domain/linelogxy.cpp | 62 + .../manual/chartviewer/charts/domain/linexlogy.cpp | 62 + .../chartviewer/charts/domain/scatterlogxlogy.cpp | 62 + .../chartviewer/charts/domain/scatterlogxy.cpp | 62 + .../chartviewer/charts/domain/scatterxlogy.cpp | 62 + .../chartviewer/charts/domain/splinelogxlogy.cpp | 62 + .../chartviewer/charts/domain/splinelogxy.cpp | 62 + .../chartviewer/charts/domain/splinexlogy.cpp | 62 + tests/manual/chartviewer/charts/font/font.cpp | 126 ++ .../charts/multiaxis/multivalueaxis.cpp | 77 ++ .../charts/multiaxis/multivalueaxis2.cpp | 77 ++ .../charts/multiaxis/multivalueaxis3.cpp | 79 ++ .../charts/multiaxis/multivalueaxis4.cpp | 78 ++ .../charts/multiaxis/multivaluebaraxis.cpp | 102 ++ .../chartviewer/charts/pieseries/donutchart.cpp | 55 + .../chartviewer/charts/pieseries/piechart.cpp | 57 + .../manual/chartviewer/charts/size/sizecharts.cpp | 140 +++ .../chartviewer/charts/xyseries/areachart.cpp | 65 ++ .../chartviewer/charts/xyseries/linechart.cpp | 52 + .../chartviewer/charts/xyseries/scatterchart.cpp | 51 + .../chartviewer/charts/xyseries/splinechart.cpp | 52 + tests/manual/chartviewer/chartviewer.pro | 10 + tests/manual/chartviewer/grid.cpp | 301 +++++ tests/manual/chartviewer/grid.h | 82 ++ tests/manual/chartviewer/main.cpp | 85 ++ tests/manual/chartviewer/model.h | 66 ++ tests/manual/chartviewer/view.cpp | 56 + tests/manual/chartviewer/view.h | 42 + tests/manual/chartviewer/window.cpp | 506 +++++++++ tests/manual/chartviewer/window.h | 117 ++ tests/manual/chartwidgettest/chartwidgettest.pro | 15 + tests/manual/chartwidgettest/dataseriedialog.cpp | 189 +++ tests/manual/chartwidgettest/dataseriedialog.h | 55 + tests/manual/chartwidgettest/main.cpp | 34 + tests/manual/chartwidgettest/mainwidget.cpp | 380 +++++++ tests/manual/chartwidgettest/mainwidget.h | 80 ++ tests/manual/manual.pro | 18 + tests/manual/polarcharttest/chartview.cpp | 58 + tests/manual/polarcharttest/chartview.h | 38 + tests/manual/polarcharttest/main.cpp | 31 + tests/manual/polarcharttest/mainwindow.cpp | 1199 ++++++++++++++++++++ tests/manual/polarcharttest/mainwindow.h | 161 +++ tests/manual/polarcharttest/mainwindow.ui | 1002 ++++++++++++++++ tests/manual/polarcharttest/polarcharttest.pro | 19 + tests/manual/presenterchart/chartview.cpp | 100 ++ tests/manual/presenterchart/chartview.h | 49 + tests/manual/presenterchart/main.cpp | 37 + tests/manual/presenterchart/presenterchart.pro | 9 + tests/manual/qmlchartaxis/main.cpp | 48 + .../qmlchartaxis/qml/qmlchartaxis/Button.qml | 70 ++ .../qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml | 75 ++ .../qml/qmlchartaxis/ChartAxesRevert.qml | 58 + .../qml/qmlchartaxis/ConfiguringDynamically.qml | 74 ++ .../qml/qmlchartaxis/CreatingDynamically.qml | 68 ++ .../qml/qmlchartaxis/DefaultAndUserDefined.qml | 71 ++ .../qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml | 49 + .../qml/qmlchartaxis/DefaultAxesRevert.qml | 49 + .../qmlchartaxis/qml/qmlchartaxis/Legacy.qml | 56 + .../qml/qmlchartaxis/SeriesSpecificDynamic.qml | 82 ++ .../qml/qmlchartaxis/SwitchingDynamically.qml | 71 ++ .../qmlchartaxis/qml/qmlchartaxis/UserDefined.qml | 64 ++ .../qml/qmlchartaxis/UserDefinedRevert.qml | 64 ++ .../manual/qmlchartaxis/qml/qmlchartaxis/main.qml | 96 ++ tests/manual/qmlchartaxis/qmlchartaxis.pro | 8 + tests/manual/qmlchartaxis/resources.qrc | 18 + tests/manual/qmlchartproperties/main.cpp | 49 + .../qml/qmlchartproperties/AreaChart.qml | 111 ++ .../qml/qmlchartproperties/AreaEditor.qml | 111 ++ .../qml/qmlchartproperties/BarChart.qml | 76 ++ .../qml/qmlchartproperties/BarEditor.qml | 199 ++++ .../qml/qmlchartproperties/Button.qml | 70 ++ .../qml/qmlchartproperties/Chart.qml | 110 ++ .../qml/qmlchartproperties/ChartEditor.qml | 119 ++ .../qml/qmlchartproperties/ChartEditorAxis.qml | 131 +++ .../qml/qmlchartproperties/ChartEditorLegend.qml | 80 ++ .../qmlchartproperties/ChartEditorProperties.qml | 124 ++ .../qml/qmlchartproperties/ChartEditorSeries.qml | 64 ++ .../qml/qmlchartproperties/ChartEditorTitle.qml | 35 + .../qml/qmlchartproperties/FontEditor.qml | 92 ++ .../qml/qmlchartproperties/HorizontalBarChart.qml | 77 ++ .../HorizontalPercentBarChart.qml | 79 ++ .../HorizontalStackedBarChart.qml | 79 ++ .../qml/qmlchartproperties/LineChart.qml | 78 ++ .../qml/qmlchartproperties/LineEditor.qml | 123 ++ .../qml/qmlchartproperties/PercentBarChart.qml | 78 ++ .../qml/qmlchartproperties/PieChart.qml | 67 ++ .../qml/qmlchartproperties/PieEditor.qml | 228 ++++ .../qml/qmlchartproperties/ScatterChart.qml | 75 ++ .../qml/qmlchartproperties/ScatterEditor.qml | 118 ++ .../qml/qmlchartproperties/SplineChart.qml | 77 ++ .../qml/qmlchartproperties/StackedBarChart.qml | 77 ++ .../qml/qmlchartproperties/main.qml | 179 +++ .../qmlchartproperties/qmlchartproperties.pro | 8 + tests/manual/qmlchartproperties/resources.qrc | 30 + tests/manual/wavechart/main.cpp | 44 + tests/manual/wavechart/wavechart.cpp | 69 ++ tests/manual/wavechart/wavechart.h | 49 + tests/manual/wavechart/wavechart.pro | 8 + tests/polarcharttest/chartview.cpp | 58 - tests/polarcharttest/chartview.h | 38 - tests/polarcharttest/main.cpp | 31 - tests/polarcharttest/mainwindow.cpp | 1199 -------------------- tests/polarcharttest/mainwindow.h | 161 --- tests/polarcharttest/mainwindow.ui | 1002 ---------------- tests/polarcharttest/polarcharttest.pro | 19 - tests/presenterchart/chartview.cpp | 100 -- tests/presenterchart/chartview.h | 49 - tests/presenterchart/main.cpp | 37 - tests/presenterchart/presenterchart.pro | 8 - tests/qmlchartaxis/main.cpp | 48 - tests/qmlchartaxis/qml/qmlchartaxis/Button.qml | 70 -- tests/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml | 75 -- .../qml/qmlchartaxis/ChartAxesRevert.qml | 58 - .../qml/qmlchartaxis/ConfiguringDynamically.qml | 74 -- .../qml/qmlchartaxis/CreatingDynamically.qml | 68 -- .../qml/qmlchartaxis/DefaultAndUserDefined.qml | 71 -- .../qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml | 49 - .../qml/qmlchartaxis/DefaultAxesRevert.qml | 49 - tests/qmlchartaxis/qml/qmlchartaxis/Legacy.qml | 56 - .../qml/qmlchartaxis/SeriesSpecificDynamic.qml | 82 -- .../qml/qmlchartaxis/SwitchingDynamically.qml | 71 -- .../qmlchartaxis/qml/qmlchartaxis/UserDefined.qml | 64 -- .../qml/qmlchartaxis/UserDefinedRevert.qml | 64 -- tests/qmlchartaxis/qml/qmlchartaxis/main.qml | 96 -- tests/qmlchartaxis/qmlchartaxis.pro | 8 - tests/qmlchartaxis/resources.qrc | 18 - tests/qmlchartproperties/main.cpp | 49 - .../qml/qmlchartproperties/AreaChart.qml | 111 -- .../qml/qmlchartproperties/AreaEditor.qml | 111 -- .../qml/qmlchartproperties/BarChart.qml | 76 -- .../qml/qmlchartproperties/BarEditor.qml | 199 ---- .../qml/qmlchartproperties/Button.qml | 70 -- .../qml/qmlchartproperties/Chart.qml | 110 -- .../qml/qmlchartproperties/ChartEditor.qml | 119 -- .../qml/qmlchartproperties/ChartEditorAxis.qml | 131 --- .../qml/qmlchartproperties/ChartEditorLegend.qml | 80 -- .../qmlchartproperties/ChartEditorProperties.qml | 124 -- .../qml/qmlchartproperties/ChartEditorSeries.qml | 64 -- .../qml/qmlchartproperties/ChartEditorTitle.qml | 35 - .../qml/qmlchartproperties/FontEditor.qml | 92 -- .../qml/qmlchartproperties/HorizontalBarChart.qml | 77 -- .../HorizontalPercentBarChart.qml | 79 -- .../HorizontalStackedBarChart.qml | 79 -- .../qml/qmlchartproperties/LineChart.qml | 78 -- .../qml/qmlchartproperties/LineEditor.qml | 123 -- .../qml/qmlchartproperties/PercentBarChart.qml | 78 -- .../qml/qmlchartproperties/PieChart.qml | 67 -- .../qml/qmlchartproperties/PieEditor.qml | 228 ---- .../qml/qmlchartproperties/ScatterChart.qml | 75 -- .../qml/qmlchartproperties/ScatterEditor.qml | 118 -- .../qml/qmlchartproperties/SplineChart.qml | 77 -- .../qml/qmlchartproperties/StackedBarChart.qml | 77 -- .../qml/qmlchartproperties/main.qml | 179 --- tests/qmlchartproperties/qmlchartproperties.pro | 8 - tests/qmlchartproperties/resources.qrc | 30 - tests/tests.pro | 20 +- tests/wavechart/main.cpp | 44 - tests/wavechart/wavechart.cpp | 69 -- tests/wavechart/wavechart.h | 49 - tests/wavechart/wavechart.pro | 7 - 288 files changed, 14176 insertions(+), 14169 deletions(-) create mode 100644 tests/.gitattributes delete mode 100644 tests/boxplottester/boxplottester.pro delete mode 100644 tests/boxplottester/customtablemodel.cpp delete mode 100644 tests/boxplottester/customtablemodel.h delete mode 100644 tests/boxplottester/main.cpp delete mode 100644 tests/boxplottester/mainwidget.cpp delete mode 100644 tests/boxplottester/mainwidget.h delete mode 100644 tests/boxplottester/pentool.cpp delete mode 100644 tests/boxplottester/pentool.h delete mode 100644 tests/chartdesigner/brushwidget.cpp delete mode 100644 tests/chartdesigner/brushwidget.h delete mode 100644 tests/chartdesigner/chartdesigner.pro delete mode 100644 tests/chartdesigner/engine.cpp delete mode 100644 tests/chartdesigner/engine.h delete mode 100644 tests/chartdesigner/main.cpp delete mode 100644 tests/chartdesigner/mainwindow.cpp delete mode 100644 tests/chartdesigner/mainwindow.h delete mode 100644 tests/chartdesigner/objectinspectorwidget.cpp delete mode 100644 tests/chartdesigner/objectinspectorwidget.h delete mode 100644 tests/chartdesigner/penwidget.cpp delete mode 100644 tests/chartdesigner/penwidget.h delete mode 100644 tests/chartviewer/charts.h delete mode 100644 tests/chartviewer/charts/axis/barcategoryaxisx.cpp delete mode 100644 tests/chartviewer/charts/axis/barcategoryaxisxlogy.cpp delete mode 100644 tests/chartviewer/charts/axis/barcategoryaxisy.cpp delete mode 100644 tests/chartviewer/charts/axis/barcategoryaxisylogx.cpp delete mode 100644 tests/chartviewer/charts/axis/categoryaxis.cpp delete mode 100644 tests/chartviewer/charts/axis/datetimeaxisx.cpp delete mode 100644 tests/chartviewer/charts/axis/datetimeaxisy.cpp delete mode 100644 tests/chartviewer/charts/axis/logvalueaxisx.cpp delete mode 100644 tests/chartviewer/charts/axis/logvalueaxisy.cpp delete mode 100644 tests/chartviewer/charts/axis/valueaxis.cpp delete mode 100644 tests/chartviewer/charts/barseries/horizontalbarchart.cpp delete mode 100644 tests/chartviewer/charts/barseries/horizontalpercentbarchart.cpp delete mode 100644 tests/chartviewer/charts/barseries/horizontalstackedbarchart.cpp delete mode 100644 tests/chartviewer/charts/barseries/verticalbarchart.cpp delete mode 100644 tests/chartviewer/charts/barseries/verticalpercentbarchart.cpp delete mode 100644 tests/chartviewer/charts/barseries/verticalstackedbarchart.cpp delete mode 100644 tests/chartviewer/charts/charts.pri delete mode 100644 tests/chartviewer/charts/domain/barlogx.cpp delete mode 100644 tests/chartviewer/charts/domain/barlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/barpercentlogx.cpp delete mode 100644 tests/chartviewer/charts/domain/barpercentlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/barstackedlogx.cpp delete mode 100644 tests/chartviewer/charts/domain/barstackedlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/linelogxlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/linelogxy.cpp delete mode 100644 tests/chartviewer/charts/domain/linexlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/scatterlogxlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/scatterlogxy.cpp delete mode 100644 tests/chartviewer/charts/domain/scatterxlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/splinelogxlogy.cpp delete mode 100644 tests/chartviewer/charts/domain/splinelogxy.cpp delete mode 100644 tests/chartviewer/charts/domain/splinexlogy.cpp delete mode 100644 tests/chartviewer/charts/font/font.cpp delete mode 100644 tests/chartviewer/charts/multiaxis/multivalueaxis.cpp delete mode 100644 tests/chartviewer/charts/multiaxis/multivalueaxis2.cpp delete mode 100644 tests/chartviewer/charts/multiaxis/multivalueaxis3.cpp delete mode 100644 tests/chartviewer/charts/multiaxis/multivalueaxis4.cpp delete mode 100644 tests/chartviewer/charts/multiaxis/multivaluebaraxis.cpp delete mode 100644 tests/chartviewer/charts/pieseries/donutchart.cpp delete mode 100644 tests/chartviewer/charts/pieseries/piechart.cpp delete mode 100644 tests/chartviewer/charts/size/sizecharts.cpp delete mode 100644 tests/chartviewer/charts/xyseries/areachart.cpp delete mode 100644 tests/chartviewer/charts/xyseries/linechart.cpp delete mode 100644 tests/chartviewer/charts/xyseries/scatterchart.cpp delete mode 100644 tests/chartviewer/charts/xyseries/splinechart.cpp delete mode 100644 tests/chartviewer/chartviewer.pro delete mode 100644 tests/chartviewer/grid.cpp delete mode 100644 tests/chartviewer/grid.h delete mode 100644 tests/chartviewer/main.cpp delete mode 100644 tests/chartviewer/model.h delete mode 100644 tests/chartviewer/view.cpp delete mode 100644 tests/chartviewer/view.h delete mode 100644 tests/chartviewer/window.cpp delete mode 100644 tests/chartviewer/window.h delete mode 100644 tests/chartwidgettest/chartwidgettest.pro delete mode 100644 tests/chartwidgettest/dataseriedialog.cpp delete mode 100644 tests/chartwidgettest/dataseriedialog.h delete mode 100644 tests/chartwidgettest/main.cpp delete mode 100644 tests/chartwidgettest/mainwidget.cpp delete mode 100644 tests/chartwidgettest/mainwidget.h create mode 100644 tests/manual/boxplottester/boxplottester.pro create mode 100644 tests/manual/boxplottester/customtablemodel.cpp create mode 100644 tests/manual/boxplottester/customtablemodel.h create mode 100644 tests/manual/boxplottester/main.cpp create mode 100644 tests/manual/boxplottester/mainwidget.cpp create mode 100644 tests/manual/boxplottester/mainwidget.h create mode 100644 tests/manual/boxplottester/pentool.cpp create mode 100644 tests/manual/boxplottester/pentool.h create mode 100644 tests/manual/chartdesigner/brushwidget.cpp create mode 100644 tests/manual/chartdesigner/brushwidget.h create mode 100644 tests/manual/chartdesigner/chartdesigner.pro create mode 100644 tests/manual/chartdesigner/engine.cpp create mode 100644 tests/manual/chartdesigner/engine.h create mode 100644 tests/manual/chartdesigner/main.cpp create mode 100644 tests/manual/chartdesigner/mainwindow.cpp create mode 100644 tests/manual/chartdesigner/mainwindow.h create mode 100644 tests/manual/chartdesigner/objectinspectorwidget.cpp create mode 100644 tests/manual/chartdesigner/objectinspectorwidget.h create mode 100644 tests/manual/chartdesigner/penwidget.cpp create mode 100644 tests/manual/chartdesigner/penwidget.h create mode 100644 tests/manual/chartviewer/charts.h create mode 100644 tests/manual/chartviewer/charts/axis/barcategoryaxisx.cpp create mode 100644 tests/manual/chartviewer/charts/axis/barcategoryaxisxlogy.cpp create mode 100644 tests/manual/chartviewer/charts/axis/barcategoryaxisy.cpp create mode 100644 tests/manual/chartviewer/charts/axis/barcategoryaxisylogx.cpp create mode 100644 tests/manual/chartviewer/charts/axis/categoryaxis.cpp create mode 100644 tests/manual/chartviewer/charts/axis/datetimeaxisx.cpp create mode 100644 tests/manual/chartviewer/charts/axis/datetimeaxisy.cpp create mode 100644 tests/manual/chartviewer/charts/axis/logvalueaxisx.cpp create mode 100644 tests/manual/chartviewer/charts/axis/logvalueaxisy.cpp create mode 100644 tests/manual/chartviewer/charts/axis/valueaxis.cpp create mode 100644 tests/manual/chartviewer/charts/barseries/horizontalbarchart.cpp create mode 100644 tests/manual/chartviewer/charts/barseries/horizontalpercentbarchart.cpp create mode 100644 tests/manual/chartviewer/charts/barseries/horizontalstackedbarchart.cpp create mode 100644 tests/manual/chartviewer/charts/barseries/verticalbarchart.cpp create mode 100644 tests/manual/chartviewer/charts/barseries/verticalpercentbarchart.cpp create mode 100644 tests/manual/chartviewer/charts/barseries/verticalstackedbarchart.cpp create mode 100644 tests/manual/chartviewer/charts/charts.pri create mode 100644 tests/manual/chartviewer/charts/domain/barlogx.cpp create mode 100644 tests/manual/chartviewer/charts/domain/barlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/barpercentlogx.cpp create mode 100644 tests/manual/chartviewer/charts/domain/barpercentlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/barstackedlogx.cpp create mode 100644 tests/manual/chartviewer/charts/domain/barstackedlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/linelogxlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/linelogxy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/linexlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/scatterlogxlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/scatterlogxy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/scatterxlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/splinelogxlogy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/splinelogxy.cpp create mode 100644 tests/manual/chartviewer/charts/domain/splinexlogy.cpp create mode 100644 tests/manual/chartviewer/charts/font/font.cpp create mode 100644 tests/manual/chartviewer/charts/multiaxis/multivalueaxis.cpp create mode 100644 tests/manual/chartviewer/charts/multiaxis/multivalueaxis2.cpp create mode 100644 tests/manual/chartviewer/charts/multiaxis/multivalueaxis3.cpp create mode 100644 tests/manual/chartviewer/charts/multiaxis/multivalueaxis4.cpp create mode 100644 tests/manual/chartviewer/charts/multiaxis/multivaluebaraxis.cpp create mode 100644 tests/manual/chartviewer/charts/pieseries/donutchart.cpp create mode 100644 tests/manual/chartviewer/charts/pieseries/piechart.cpp create mode 100644 tests/manual/chartviewer/charts/size/sizecharts.cpp create mode 100644 tests/manual/chartviewer/charts/xyseries/areachart.cpp create mode 100644 tests/manual/chartviewer/charts/xyseries/linechart.cpp create mode 100644 tests/manual/chartviewer/charts/xyseries/scatterchart.cpp create mode 100644 tests/manual/chartviewer/charts/xyseries/splinechart.cpp create mode 100644 tests/manual/chartviewer/chartviewer.pro create mode 100644 tests/manual/chartviewer/grid.cpp create mode 100644 tests/manual/chartviewer/grid.h create mode 100644 tests/manual/chartviewer/main.cpp create mode 100644 tests/manual/chartviewer/model.h create mode 100644 tests/manual/chartviewer/view.cpp create mode 100644 tests/manual/chartviewer/view.h create mode 100644 tests/manual/chartviewer/window.cpp create mode 100644 tests/manual/chartviewer/window.h create mode 100644 tests/manual/chartwidgettest/chartwidgettest.pro create mode 100644 tests/manual/chartwidgettest/dataseriedialog.cpp create mode 100644 tests/manual/chartwidgettest/dataseriedialog.h create mode 100644 tests/manual/chartwidgettest/main.cpp create mode 100644 tests/manual/chartwidgettest/mainwidget.cpp create mode 100644 tests/manual/chartwidgettest/mainwidget.h create mode 100644 tests/manual/manual.pro create mode 100644 tests/manual/polarcharttest/chartview.cpp create mode 100644 tests/manual/polarcharttest/chartview.h create mode 100644 tests/manual/polarcharttest/main.cpp create mode 100644 tests/manual/polarcharttest/mainwindow.cpp create mode 100644 tests/manual/polarcharttest/mainwindow.h create mode 100644 tests/manual/polarcharttest/mainwindow.ui create mode 100644 tests/manual/polarcharttest/polarcharttest.pro create mode 100644 tests/manual/presenterchart/chartview.cpp create mode 100644 tests/manual/presenterchart/chartview.h create mode 100644 tests/manual/presenterchart/main.cpp create mode 100644 tests/manual/presenterchart/presenterchart.pro create mode 100644 tests/manual/qmlchartaxis/main.cpp create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/Button.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/Legacy.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml create mode 100644 tests/manual/qmlchartaxis/qml/qmlchartaxis/main.qml create mode 100644 tests/manual/qmlchartaxis/qmlchartaxis.pro create mode 100644 tests/manual/qmlchartaxis/resources.qrc create mode 100644 tests/manual/qmlchartproperties/main.cpp create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/BarChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/Button.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/Chart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/LineChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/PieChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml create mode 100644 tests/manual/qmlchartproperties/qml/qmlchartproperties/main.qml create mode 100644 tests/manual/qmlchartproperties/qmlchartproperties.pro create mode 100644 tests/manual/qmlchartproperties/resources.qrc create mode 100644 tests/manual/wavechart/main.cpp create mode 100644 tests/manual/wavechart/wavechart.cpp create mode 100644 tests/manual/wavechart/wavechart.h create mode 100644 tests/manual/wavechart/wavechart.pro delete mode 100644 tests/polarcharttest/chartview.cpp delete mode 100644 tests/polarcharttest/chartview.h delete mode 100644 tests/polarcharttest/main.cpp delete mode 100644 tests/polarcharttest/mainwindow.cpp delete mode 100644 tests/polarcharttest/mainwindow.h delete mode 100644 tests/polarcharttest/mainwindow.ui delete mode 100644 tests/polarcharttest/polarcharttest.pro delete mode 100644 tests/presenterchart/chartview.cpp delete mode 100644 tests/presenterchart/chartview.h delete mode 100644 tests/presenterchart/main.cpp delete mode 100644 tests/presenterchart/presenterchart.pro delete mode 100644 tests/qmlchartaxis/main.cpp delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/Button.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/Legacy.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml delete mode 100644 tests/qmlchartaxis/qml/qmlchartaxis/main.qml delete mode 100644 tests/qmlchartaxis/qmlchartaxis.pro delete mode 100644 tests/qmlchartaxis/resources.qrc delete mode 100644 tests/qmlchartproperties/main.cpp delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/BarChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/Button.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/Chart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/LineChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/PieChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml delete mode 100644 tests/qmlchartproperties/qml/qmlchartproperties/main.qml delete mode 100644 tests/qmlchartproperties/qmlchartproperties.pro delete mode 100644 tests/qmlchartproperties/resources.qrc delete mode 100644 tests/wavechart/main.cpp delete mode 100644 tests/wavechart/wavechart.cpp delete mode 100644 tests/wavechart/wavechart.h delete mode 100644 tests/wavechart/wavechart.pro diff --git a/.gitattributes b/.gitattributes index 26f7dd27..e4b9352a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,5 +2,4 @@ .gitignore export-ignore .gitattributes export-ignore .commit-template export-ignore -tests export-ignore tools export-ignore diff --git a/tests/.gitattributes b/tests/.gitattributes new file mode 100644 index 00000000..fbbe17a3 --- /dev/null +++ b/tests/.gitattributes @@ -0,0 +1,2 @@ +.gitattributes export-ignore +manual export-ignore diff --git a/tests/boxplottester/boxplottester.pro b/tests/boxplottester/boxplottester.pro deleted file mode 100644 index 2568adc3..00000000 --- a/tests/boxplottester/boxplottester.pro +++ /dev/null @@ -1,18 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the test.pri file!" ) -} - -TEMPLATE = app - -QT += charts -QT += core gui widgets - -SOURCES += main.cpp \ - mainwidget.cpp \ - customtablemodel.cpp \ - pentool.cpp - -HEADERS += \ - mainwidget.h \ - customtablemodel.h \ - pentool.h diff --git a/tests/boxplottester/customtablemodel.cpp b/tests/boxplottester/customtablemodel.cpp deleted file mode 100644 index 8724dd56..00000000 --- a/tests/boxplottester/customtablemodel.cpp +++ /dev/null @@ -1,147 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "customtablemodel.h" -#include -#include -#include -#include - -const QString categories[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Nov", "Dec"}; - -CustomTableModel::CustomTableModel(QObject *parent) : - QAbstractTableModel(parent) -{ - m_columnCount = 6; - m_rowCount = 5; - QVector* dataVec_Jan = new QVector(m_rowCount); - dataVec_Jan->insert(0, 3.0); - dataVec_Jan->insert(1, 4.0); - dataVec_Jan->insert(2, 4.4); - dataVec_Jan->insert(3, 6.0); - dataVec_Jan->insert(4, 7.0); - m_data.append(dataVec_Jan); - - QVector* dataVec_Feb = new QVector(m_rowCount); - dataVec_Feb->insert(0, 5.0); - dataVec_Feb->insert(1, 6.0); - dataVec_Feb->insert(2, 7.5); - dataVec_Feb->insert(3, 8.0); - dataVec_Feb->insert(4, 12.0); - m_data.append(dataVec_Feb); - - QVector* dataVec_Mar = new QVector(m_rowCount); - dataVec_Mar->insert(0, 3.0); - dataVec_Mar->insert(1, 4.0); - dataVec_Mar->insert(2, 5.7); - dataVec_Mar->insert(3, 8.0); - dataVec_Mar->insert(4, 9.0); - m_data.append(dataVec_Mar); - - QVector* dataVec_Apr = new QVector(m_rowCount); - dataVec_Apr->insert(0, 5.0); - dataVec_Apr->insert(1, 6.0); - dataVec_Apr->insert(2, 6.8); - dataVec_Apr->insert(3, 7.0); - dataVec_Apr->insert(4, 8.0); - m_data.append(dataVec_Apr); - - QVector* dataVec_May = new QVector(m_rowCount); - dataVec_May->insert(0, 4.0); - dataVec_May->insert(1, 5.0); - dataVec_May->insert(2, 5.2); - dataVec_May->insert(3, 6.0); - dataVec_May->insert(4, 7.0); - m_data.append(dataVec_May); - - QVector* dataVec_Jun = new QVector(m_rowCount); - dataVec_Jun->insert(0, 4.0); - dataVec_Jun->insert(1, 7.0); - dataVec_Jun->insert(2, 8.2); - dataVec_Jun->insert(3, 9.0); - dataVec_Jun->insert(4, 10.0); - m_data.append(dataVec_Jun); -} - -CustomTableModel::~CustomTableModel() -{ - qDeleteAll(m_data); -} - -int CustomTableModel::rowCount(const QModelIndex &parent) const -{ - Q_UNUSED(parent) - return m_rowCount; -} - -int CustomTableModel::columnCount(const QModelIndex &parent) const -{ - Q_UNUSED(parent) - return m_data.count(); -} - -QVariant CustomTableModel::headerData(int section, Qt::Orientation orientation, int role) const -{ - if (role != Qt::DisplayRole) - return QVariant(); - - if (orientation == Qt::Horizontal) - return categories[section]; - else - return QString("%1").arg(section + 1); -} - -QVariant CustomTableModel::data(const QModelIndex &index, int role) const -{ - if (role == Qt::DisplayRole) { - return m_data[index.column()]->at(index.row()); - } else if (role == Qt::EditRole) { - return m_data[index.column()]->at(index.row()); - } else if (role == Qt::BackgroundRole) { - QRect rect; - foreach (rect, m_mapping) - if (rect.contains(index.column(), index.row())) - return QColor(m_mapping.key(rect)); - - // cell not mapped return white color - return QColor(Qt::white); - } - return QVariant(); -} - -bool CustomTableModel::setData(const QModelIndex &index, const QVariant &value, int role) -{ - if (index.isValid() && role == Qt::EditRole) { - m_data[index.column()]->replace(index.row(), value.toDouble()); - emit dataChanged(index, index); - return true; - } - return false; -} - -Qt::ItemFlags CustomTableModel::flags(const QModelIndex &index) const -{ - return QAbstractItemModel::flags(index) | Qt::ItemIsEditable; -} - -void CustomTableModel::addMapping(QString color, QRect area) -{ - m_mapping.insertMulti(color, area); -} diff --git a/tests/boxplottester/customtablemodel.h b/tests/boxplottester/customtablemodel.h deleted file mode 100644 index 0f1fb9df..00000000 --- a/tests/boxplottester/customtablemodel.h +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef CUSTOMTABLEMODEL_H -#define CUSTOMTABLEMODEL_H - -#include -#include -#include - -class CustomTableModel : public QAbstractTableModel -{ - Q_OBJECT -public: - explicit CustomTableModel(QObject *parent = 0); - virtual ~CustomTableModel(); - - int rowCount(const QModelIndex &parent = QModelIndex()) const; - int columnCount(const QModelIndex &parent = QModelIndex()) const; - QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; - QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; - bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); - Qt::ItemFlags flags(const QModelIndex &index) const; - - void addMapping(QString color, QRect area); - void clearMapping() { m_mapping.clear(); } - -private: - QList *> m_data; - QHash m_mapping; - int m_columnCount; - int m_rowCount; -}; - -#endif // CUSTOMTABLEMODEL_H diff --git a/tests/boxplottester/main.cpp b/tests/boxplottester/main.cpp deleted file mode 100644 index 6d136669..00000000 --- a/tests/boxplottester/main.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 -#include -#include "mainwidget.h" - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - - MainWidget w; - w.resize(1000,600); - w.show(); - - return a.exec(); -} diff --git a/tests/boxplottester/mainwidget.cpp b/tests/boxplottester/mainwidget.cpp deleted file mode 100644 index 784512d3..00000000 --- a/tests/boxplottester/mainwidget.cpp +++ /dev/null @@ -1,482 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "mainwidget.h" -#include "customtablemodel.h" -#include "pentool.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_CHARTS_USE_NAMESPACE - -static const QString allCategories[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; -static const int maxCategories = 12; - -MainWidget::MainWidget(QWidget *parent) : - QWidget(parent), - m_chart(0), - m_axis(0), - m_rowPos(0), - m_seriesCount(0) -{ - m_chart = new QChart(); - - m_penTool = new PenTool("Whiskers pen", this); - - // Grid layout for the controls for configuring the chart widget - QGridLayout *grid = new QGridLayout(); - - // Create add a series button - QPushButton *addSeriesButton = new QPushButton("Add a series"); - connect(addSeriesButton, SIGNAL(clicked()), this, SLOT(addSeries())); - grid->addWidget(addSeriesButton, m_rowPos++, 1); - - // Create remove a series button - QPushButton *removeSeriesButton = new QPushButton("Remove a series"); - connect(removeSeriesButton, SIGNAL(clicked()), this, SLOT(removeSeries())); - grid->addWidget(removeSeriesButton, m_rowPos++, 1); - - // Create add a single box button - QPushButton *addBoxButton = new QPushButton("Add a box"); - connect(addBoxButton, SIGNAL(clicked()), this, SLOT(addBox())); - grid->addWidget(addBoxButton, m_rowPos++, 1); - - // Create insert a box button - QPushButton *insertBoxButton = new QPushButton("Insert a box"); - connect(insertBoxButton, SIGNAL(clicked()), this, SLOT(insertBox())); - grid->addWidget(insertBoxButton, m_rowPos++, 1); - - // Create add a single box button - QPushButton *removeBoxButton = new QPushButton("Remove a box"); - connect(removeBoxButton, SIGNAL(clicked()), this, SLOT(removeBox())); - grid->addWidget(removeBoxButton, m_rowPos++, 1); - - // Create clear button - QPushButton *clearButton = new QPushButton("Clear"); - connect(clearButton, SIGNAL(clicked()), this, SLOT(clear())); - grid->addWidget(clearButton, m_rowPos++, 1); - - // Create clear button - QPushButton *clearBoxButton = new QPushButton("ClearBox"); - connect(clearBoxButton, SIGNAL(clicked()), this, SLOT(clearBox())); - grid->addWidget(clearBoxButton, m_rowPos++, 1); - - // Create set brush button - QPushButton *setBrushButton = new QPushButton("Set brush"); - connect(setBrushButton, SIGNAL(clicked()), this, SLOT(setBrush())); - grid->addWidget(setBrushButton, m_rowPos++, 1); - - // Create set whiskers pen button - QPushButton *setWhiskersButton = new QPushButton("Whiskers pen"); - connect(setWhiskersButton, SIGNAL(clicked()), m_penTool, SLOT(show())); - connect(m_penTool, SIGNAL(changed()), this, SLOT(changePen())); - grid->addWidget(setWhiskersButton, m_rowPos++, 1); - - // Box width setting - m_boxWidthSB = new QDoubleSpinBox(); - m_boxWidthSB->setMinimum(-1.0); - m_boxWidthSB->setMaximum(2.0); - m_boxWidthSB->setSingleStep(0.1); - m_boxWidthSB->setValue(0.5); - grid->addWidget(new QLabel("Box width:"), m_rowPos, 0); - grid->addWidget(m_boxWidthSB, m_rowPos++, 1); - connect(m_boxWidthSB, SIGNAL(valueChanged(double)), this, SLOT(setBoxWidth(double))); - - initThemeCombo(grid); - initCheckboxes(grid); - - QTableView *tableView = new QTableView; - m_model = new CustomTableModel(tableView); - tableView->setModel(m_model); - tableView->setMaximumWidth(200); - grid->addWidget(tableView, m_rowPos++, 0, 3, 2, Qt::AlignLeft); - tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); - tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); - - // add row with empty label to make all the other rows static - grid->addWidget(new QLabel(""), grid->rowCount(), 0); - grid->setRowStretch(grid->rowCount() - 1, 1); - - // Create chart view with the chart - m_chartView = new QChartView(m_chart, this); - - // As a default antialiasing is off - m_chartView->setRenderHint(QPainter::Antialiasing, false); - - // Another grid layout as a main layout - QGridLayout *mainLayout = new QGridLayout(); - mainLayout->addLayout(grid, 0, 0); - mainLayout->addWidget(m_chartView, 0, 1, 3, 1); - setLayout(mainLayout); - - legendToggled(false); - animationToggled(false); -} - -// Combo box for selecting theme -void MainWidget::initThemeCombo(QGridLayout *grid) -{ - QComboBox *chartTheme = new QComboBox(); - chartTheme->addItem("Default"); - chartTheme->addItem("Light"); - chartTheme->addItem("Blue Cerulean"); - chartTheme->addItem("Dark"); - chartTheme->addItem("Brown Sand"); - chartTheme->addItem("Blue NCS"); - chartTheme->addItem("High Contrast"); - chartTheme->addItem("Blue Icy"); - chartTheme->addItem("Qt"); - connect(chartTheme, SIGNAL(currentIndexChanged(int)), - this, SLOT(changeChartTheme(int))); - grid->addWidget(new QLabel("Chart theme:"), m_rowPos, 0); - grid->addWidget(chartTheme, m_rowPos++, 1); -} - -// Different check boxes for customizing chart -void MainWidget::initCheckboxes(QGridLayout *grid) -{ - QCheckBox *animationCheckBox = new QCheckBox("Animation"); - connect(animationCheckBox, SIGNAL(toggled(bool)), this, SLOT(animationToggled(bool))); - animationCheckBox->setChecked(false); - grid->addWidget(animationCheckBox, m_rowPos++, 0); - - QCheckBox *legendCheckBox = new QCheckBox("Legend"); - connect(legendCheckBox, SIGNAL(toggled(bool)), this, SLOT(legendToggled(bool))); - legendCheckBox->setChecked(false); - grid->addWidget(legendCheckBox, m_rowPos++, 0); - - QCheckBox *titleCheckBox = new QCheckBox("Title"); - connect(titleCheckBox, SIGNAL(toggled(bool)), this, SLOT(titleToggled(bool))); - titleCheckBox->setChecked(false); - grid->addWidget(titleCheckBox, m_rowPos++, 0); - - QCheckBox *antialiasingCheckBox = new QCheckBox("Antialiasing"); - connect(antialiasingCheckBox, SIGNAL(toggled(bool)), this, SLOT(antialiasingToggled(bool))); - antialiasingCheckBox->setChecked(false); - grid->addWidget(antialiasingCheckBox, m_rowPos++, 0); - - QCheckBox *modelMapperCheckBox = new QCheckBox("Use model mapper"); - connect(modelMapperCheckBox, SIGNAL(toggled(bool)), this, SLOT(modelMapperToggled(bool))); - modelMapperCheckBox->setChecked(false); - grid->addWidget(modelMapperCheckBox, m_rowPos++, 0); - - m_boxOutlined = new QCheckBox("Box outlined"); - connect(m_boxOutlined, SIGNAL(toggled(bool)), this, SLOT(boxOutlineToggled(bool))); - m_boxOutlined->setChecked(true); - grid->addWidget(m_boxOutlined, m_rowPos++, 0); -} - -void MainWidget::updateAxis(int categoryCount) -{ - if (!m_axis) { - m_chart->createDefaultAxes(); - m_axis = new QBarCategoryAxis(); - } - QStringList categories; - for (int i = 0; i < categoryCount; i++) - categories << allCategories[i]; - m_axis->setCategories(categories); -} - -void MainWidget::addSeries() -{ - qDebug() << "BoxPlotTester::MainWidget::addSeries()"; - - if (m_seriesCount > 9) - return; - - // Initial data - QBoxSet *set0 = new QBoxSet(); - QBoxSet *set1 = new QBoxSet(); - QBoxSet *set2 = new QBoxSet(); - QBoxSet *set3 = new QBoxSet(); - QBoxSet *set4 = new QBoxSet(); - QBoxSet *set5 = new QBoxSet(); - - // low bot med top upp - *set0 << -1 << 2 << 4 << 13 << 15; - *set1 << 5 << 6 << 7.5 << 8 << 12; - *set2 << 3 << 5 << 5.7 << 8 << 9; - *set3 << 5 << 6 << 6.8 << 7 << 8; - *set4 << 4 << 5 << 5.2 << 6 << 7; - *set5 << 4 << 7 << 8.2 << 9 << 10; - - m_series[m_seriesCount] = new QBoxPlotSeries(); - m_series[m_seriesCount]->append(set0); - m_series[m_seriesCount]->append(set1); - m_series[m_seriesCount]->append(set2); - m_series[m_seriesCount]->append(set3); - m_series[m_seriesCount]->append(set4); - m_series[m_seriesCount]->append(set5); - m_series[m_seriesCount]->setName("Box & Whiskers"); - - connect(m_series[m_seriesCount], SIGNAL(clicked(QBoxSet*)), this, SLOT(boxClicked(QBoxSet*))); - connect(m_series[m_seriesCount], SIGNAL(hovered(bool, QBoxSet*)), this, SLOT(boxHovered(bool, QBoxSet*))); - connect(set1, SIGNAL(clicked()), this, SLOT(singleBoxClicked())); - connect(set2, SIGNAL(hovered(bool)), this, SLOT(singleBoxHovered(bool))); - - m_series[m_seriesCount]->setBoxOutlineVisible(m_boxOutlined->checkState()); - m_series[m_seriesCount]->setBoxWidth(m_boxWidthSB->value()); - - m_chart->addSeries(m_series[m_seriesCount]); - - updateAxis(m_series[0]->count()); - m_chart->setAxisX(m_axis, m_series[m_seriesCount]); - - m_seriesCount++; -} - -void MainWidget::removeSeries() -{ - qDebug() << "BoxPlotTester::MainWidget::removeSeries()"; - - if (m_seriesCount > 0) { - m_seriesCount--; - m_chart->removeSeries(m_series[m_seriesCount]); - delete m_series[m_seriesCount]; - m_series[m_seriesCount] = 0; - } else { - qDebug() << "Create a series first"; - } -} - -void MainWidget::addBox() -{ - qDebug() << "BoxPlotTester::MainWidget::addBox()"; - - if (m_seriesCount > 0 && m_series[0]->count() < maxCategories) { - QBoxSet *newSet = new QBoxSet(); - newSet->setValue(QBoxSet::LowerExtreme, 5.0); - newSet->setValue(QBoxSet::LowerQuartile, 6.0); - newSet->setValue(QBoxSet::Median, 6.8); - newSet->setValue(QBoxSet::UpperQuartile, 7.0); - newSet->setValue(QBoxSet::UpperExtreme, 8.0); - - updateAxis(m_series[0]->count() + 1); - - m_series[0]->append(newSet); - } -} - -void MainWidget::insertBox() -{ - qDebug() << "BoxPlotTester::MainWidget::insertBox()"; - - if (m_seriesCount > 0 && m_series[0]->count() < maxCategories) { - updateAxis(m_series[0]->count() + 1); - for (int i = 0; i < m_seriesCount; i++) { - QBoxSet *newSet = new QBoxSet(); - *newSet << 2 << 6 << 6.8 << 7 << 10; - m_series[i]->insert(1, newSet); - } - } -} - -void MainWidget::removeBox() -{ - qDebug() << "BoxPlotTester::MainWidget::removeBox"; - - if (m_seriesCount > 0) { - for (int i = 0; i < m_seriesCount; i++) { - qDebug() << "m_series[i]->count() = " << m_series[i]->count(); - if (m_series[i]->count()) { - QList sets = m_series[i]->boxSets(); - m_series[i]->remove(sets.at(m_series[i]->count() - 1)); - } - } - - updateAxis(m_series[0]->count()); - } else { - qDebug() << "Create a series first"; - } -} - -void MainWidget::clear() -{ - qDebug() << "BoxPlotTester::MainWidget::clear"; - - if (m_seriesCount > 0) - m_series[0]->clear(); - else - qDebug() << "Create a series first"; -} - -void MainWidget::clearBox() -{ - qDebug() << "BoxPlotTester::MainWidget::clearBox"; - - if (m_seriesCount > 0) { - QList sets = m_series[0]->boxSets(); - if (sets.count() > 1) - sets.at(1)->clear(); - else - qDebug() << "Create a series with at least two items first"; - } else { - qDebug() << "Create a series first"; - } -} - -void MainWidget::setBrush() -{ - qDebug() << "BoxPlotTester::MainWidget::setBrush"; - - if (m_seriesCount > 0) { - QList sets = m_series[0]->boxSets(); - if (sets.count() > 1) - sets.at(1)->setBrush(QBrush(QColor(Qt::yellow))); - else - qDebug() << "Create a series with at least two items first"; - } else { - qDebug() << "Create a series first"; - } -} - -void MainWidget::animationToggled(bool enabled) -{ - qDebug() << "BoxPlotTester::Animation toggled to " << enabled; - if (enabled) - m_chart->setAnimationOptions(QChart::SeriesAnimations); - else - m_chart->setAnimationOptions(QChart::NoAnimation); -} - -void MainWidget::legendToggled(bool enabled) -{ - qDebug() << "BoxPlotTester::Legend toggled to " << enabled; - m_chart->legend()->setVisible(enabled); - if (enabled) - m_chart->legend()->setAlignment(Qt::AlignBottom); -} - -void MainWidget::titleToggled(bool enabled) -{ - qDebug() << "BoxPlotTester::Title toggled to " << enabled; - if (enabled) - m_chart->setTitle("Simple boxplotchart example"); - else - m_chart->setTitle(""); -} - -void MainWidget::antialiasingToggled(bool enabled) -{ - qDebug() << "BoxPlotTester::antialiasingToggled toggled to " << enabled; - m_chartView->setRenderHint(QPainter::Antialiasing, enabled); -} - -void MainWidget::boxOutlineToggled(bool visible) -{ - qDebug() << "BoxPlotTester::boxOutlineToggled toggled to " << visible; - for (int i = 0; i < m_seriesCount; i++) - m_series[i]->setBoxOutlineVisible(visible); -} - -void MainWidget::modelMapperToggled(bool enabled) -{ - if (enabled) { - m_series[m_seriesCount] = new QBoxPlotSeries(); - - int first = 0; - int count = 5; - QVBoxPlotModelMapper *mapper = new QVBoxPlotModelMapper(this); - mapper->setFirstBoxSetColumn(0); - mapper->setLastBoxSetColumn(5); - mapper->setFirstRow(first); - mapper->setRowCount(count); - mapper->setSeries(m_series[m_seriesCount]); - mapper->setModel(m_model); - m_chart->addSeries(m_series[m_seriesCount]); - - m_seriesCount++; - } else { - removeSeries(); - } -} - -void MainWidget::changeChartTheme(int themeIndex) -{ - qDebug() << "BoxPlotTester::changeChartTheme: " << themeIndex; - if (themeIndex == 0) - m_chart->setTheme(QChart::ChartThemeLight); - else - m_chart->setTheme((QChart::ChartTheme) (themeIndex - 1)); -} - -void MainWidget::boxClicked(QBoxSet *set) -{ - qDebug() << "boxClicked, median = " << set->at(QBoxSet::Median); -} - -void MainWidget::boxHovered(bool state, QBoxSet *set) -{ - if (state) - qDebug() << "box median " << set->at(QBoxSet::Median) << " hover started"; - else - qDebug() << "box median " << set->at(QBoxSet::Median) << " hover ended"; -} - -void MainWidget::singleBoxClicked() -{ - qDebug() << "singleBoxClicked"; -} - -void MainWidget::singleBoxHovered(bool state) -{ - if (state) - qDebug() << "single box hover started"; - else - qDebug() << "single box hover ended"; -} - -void MainWidget::changePen() -{ - qDebug() << "changePen() = " << m_penTool->pen(); - for (int i = 0; i < m_seriesCount; i++) - m_series[i]->setPen(m_penTool->pen()); -} - -void MainWidget::setBoxWidth(double width) -{ - qDebug() << "setBoxWidth to " << width; - - for (int i = 0; i < m_seriesCount; i++) - m_series[i]->setBoxWidth(qreal(width)); -} diff --git a/tests/boxplottester/mainwidget.h b/tests/boxplottester/mainwidget.h deleted file mode 100644 index cbb2cd38..00000000 --- a/tests/boxplottester/mainwidget.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef MAINWIDGET_H -#define MAINWIDGET_H - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -class QGridLayout; -class CustomTableModel; -class PenTool; - -QT_CHARTS_USE_NAMESPACE - -class MainWidget : public QWidget -{ - Q_OBJECT -public: - explicit MainWidget(QWidget *parent = 0); - -signals: - -private: - void initThemeCombo(QGridLayout *grid); - void initCheckboxes(QGridLayout *grid); - void updateAxis(int categoryCount); - -private slots: - void addSeries(); - void removeSeries(); - void addBox(); - void insertBox(); - void removeBox(); - void clear(); - void clearBox(); - void setBrush(); - void animationToggled(bool enabled); - void legendToggled(bool enabled); - void titleToggled(bool enabled); - void modelMapperToggled(bool enabled); - void changeChartTheme(int themeIndex); - void boxClicked(QBoxSet *set); - void boxHovered(bool state, QBoxSet *set); - void singleBoxClicked(); - void singleBoxHovered(bool state); - void changePen(); - void antialiasingToggled(bool); - void boxOutlineToggled(bool); - void setBoxWidth(double width); - -private: - QChart *m_chart; - QChartView *m_chartView; - QGridLayout *m_scatterLayout; - QBarCategoryAxis *m_axis; - CustomTableModel *m_model; - PenTool *m_penTool; - int m_rowPos; - int m_seriesCount; - QBoxPlotSeries *m_series[10]; - QCheckBox *m_boxOutlined; - QDoubleSpinBox *m_boxWidthSB; -}; - -#endif // MAINWIDGET_H diff --git a/tests/boxplottester/pentool.cpp b/tests/boxplottester/pentool.cpp deleted file mode 100644 index b827039f..00000000 --- a/tests/boxplottester/pentool.cpp +++ /dev/null @@ -1,141 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "pentool.h" -#include -#include -#include -#include -#include - -PenTool::PenTool(QString title, QWidget *parent) - : QWidget(parent) -{ - setWindowTitle(title); - setWindowFlags(Qt::Tool); - - m_colorButton = new QPushButton(); - - m_widthSpinBox = new QDoubleSpinBox(); - - m_styleCombo = new QComboBox(); - m_styleCombo->addItem("NoPen"); - m_styleCombo->addItem("SolidLine"); - m_styleCombo->addItem("DashLine"); - m_styleCombo->addItem("DotLine"); - m_styleCombo->addItem("DashDotLine"); - m_styleCombo->addItem("DashDotDotLine"); - - m_capStyleCombo = new QComboBox(); - m_capStyleCombo->addItem("FlatCap", Qt::FlatCap); - m_capStyleCombo->addItem("SquareCap", Qt::SquareCap); - m_capStyleCombo->addItem("RoundCap", Qt::RoundCap); - - m_joinStyleCombo = new QComboBox(); - m_joinStyleCombo->addItem("MiterJoin", Qt::MiterJoin); - m_joinStyleCombo->addItem("BevelJoin", Qt::BevelJoin); - m_joinStyleCombo->addItem("RoundJoin", Qt::RoundJoin); - m_joinStyleCombo->addItem("SvgMiterJoin", Qt::SvgMiterJoin); - - QFormLayout *layout = new QFormLayout(); - layout->addRow("Color", m_colorButton); - layout->addRow("Width", m_widthSpinBox); - layout->addRow("Style", m_styleCombo); - layout->addRow("Cap style", m_capStyleCombo); - layout->addRow("Join style", m_joinStyleCombo); - setLayout(layout); - - connect(m_colorButton, SIGNAL(clicked()), this, SLOT(showColorDialog())); - connect(m_widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidth(double))); - connect(m_styleCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateStyle(int))); - connect(m_capStyleCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateCapStyle(int))); - connect(m_joinStyleCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateJoinStyle(int))); -} - -void PenTool::setPen(const QPen &pen) -{ - m_pen = pen; - m_colorButton->setText(m_pen.color().name()); - m_widthSpinBox->setValue(m_pen.widthF()); - m_styleCombo->setCurrentIndex(m_pen.style()); // index matches the enum - m_capStyleCombo->setCurrentIndex(m_capStyleCombo->findData(m_pen.capStyle())); - m_joinStyleCombo->setCurrentIndex(m_joinStyleCombo->findData(m_pen.joinStyle())); -} - -QPen PenTool::pen() const -{ - return m_pen; -} - -QString PenTool::name() -{ - return name(m_pen); -} - -QString PenTool::name(const QPen &pen) -{ - return pen.color().name() + ":" + QString::number(pen.widthF()); -} - -void PenTool::showColorDialog() -{ - QColorDialog dialog(m_pen.color()); - dialog.show(); - dialog.exec(); - m_pen.setColor(dialog.selectedColor()); - m_colorButton->setText(m_pen.color().name()); - emit changed(); -} - -void PenTool::updateWidth(double width) -{ - if (!qFuzzyCompare((qreal) width, m_pen.widthF())) { - m_pen.setWidthF(width); - emit changed(); - } -} - -void PenTool::updateStyle(int style) -{ - if (m_pen.style() != style) { - m_pen.setStyle((Qt::PenStyle) style); - emit changed(); - } -} - -void PenTool::updateCapStyle(int index) -{ - Qt::PenCapStyle capStyle = (Qt::PenCapStyle) m_capStyleCombo->itemData(index).toInt(); - if (m_pen.capStyle() != capStyle) { - m_pen.setCapStyle(capStyle); - emit changed(); - } -} - -void PenTool::updateJoinStyle(int index) -{ - Qt::PenJoinStyle joinStyle = (Qt::PenJoinStyle) m_joinStyleCombo->itemData(index).toInt(); - if (m_pen.joinStyle() != joinStyle) { - m_pen.setJoinStyle(joinStyle); - emit changed(); - } -} - -#include "moc_pentool.cpp" diff --git a/tests/boxplottester/pentool.h b/tests/boxplottester/pentool.h deleted file mode 100644 index 13b4064d..00000000 --- a/tests/boxplottester/pentool.h +++ /dev/null @@ -1,60 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ -#ifndef PENTOOL_H -#define PENTOOL_H - -#include -#include - -class QPushButton; -class QDoubleSpinBox; -class QComboBox; - -class PenTool : public QWidget -{ - Q_OBJECT - -public: - explicit PenTool(QString title, QWidget *parent = 0); - void setPen(const QPen &pen); - QPen pen() const; - QString name(); - static QString name(const QPen &pen); - -Q_SIGNALS: - void changed(); - -public Q_SLOTS: - void showColorDialog(); - void updateWidth(double width); - void updateStyle(int style); - void updateCapStyle(int index); - void updateJoinStyle(int index); - -private: - QPen m_pen; - QPushButton *m_colorButton; - QDoubleSpinBox *m_widthSpinBox; - QComboBox *m_styleCombo; - QComboBox *m_capStyleCombo; - QComboBox *m_joinStyleCombo; -}; - -#endif // PENTOOL_H diff --git a/tests/chartdesigner/brushwidget.cpp b/tests/chartdesigner/brushwidget.cpp deleted file mode 100644 index 6e615001..00000000 --- a/tests/chartdesigner/brushwidget.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "brushwidget.h" - -BrushWidget::BrushWidget(QWidget *parent):QWidget(parent) -{ - - -} - -BrushWidget::~BrushWidget() -{ - -} - diff --git a/tests/chartdesigner/brushwidget.h b/tests/chartdesigner/brushwidget.h deleted file mode 100644 index 7f570cb5..00000000 --- a/tests/chartdesigner/brushwidget.h +++ /dev/null @@ -1,39 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef BRUSHWIDGET_H -#define BRUSHWIDGET_H - -#include - -class BrushWidget: public QWidget -{ -public: - explicit BrushWidget(QWidget *parent = 0); - ~BrushWidget(); - - QBrush brush() const { return m_brush; } - void setBrush(const QBrush &brush); - -private: - QBrush m_brush; -}; - -#endif /* BRUSHWIDGET_H */ diff --git a/tests/chartdesigner/chartdesigner.pro b/tests/chartdesigner/chartdesigner.pro deleted file mode 100644 index 0594b37f..00000000 --- a/tests/chartdesigner/chartdesigner.pro +++ /dev/null @@ -1,24 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the test.pri file!" ) -} - -TEMPLATE = app -QT += core gui - -SOURCES += \ - brushwidget.cpp \ - main.cpp \ - mainwindow.cpp \ - objectinspectorwidget.cpp \ - penwidget.cpp \ - engine.cpp - - -HEADERS += \ - brushwidget.h \ - mainwindow.h \ - objectinspectorwidget.h \ - penwidget.h \ - engine.h - -!system_build:mac: QMAKE_POST_LINK += "$$MAC_POST_LINK_PREFIX $$MAC_TESTS_BIN_DIR" diff --git a/tests/chartdesigner/engine.cpp b/tests/chartdesigner/engine.cpp deleted file mode 100644 index b7ea9e93..00000000 --- a/tests/chartdesigner/engine.cpp +++ /dev/null @@ -1,343 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2014 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 Enterprise Charts Add-on. - ** - ** $QT_BEGIN_LICENSE$ - ** Licensees holding valid Qt Enterprise licenses may use this file in - ** accordance with the Qt Enterprise 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 "engine.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - - -const qint32 MAGIC_NUMBER = 0x66666666; - -Engine::Engine(QObject* parent) : - QObject(parent), m_count(10), m_chart(new QChart()), m_model(0), m_selection(0) -{ - createModels(); -} - -Engine::~Engine() -{ - delete m_chart; - delete m_selection; - delete m_model; -} - -void Engine::createModels() -{ - m_model = new QStandardItemModel(m_count, m_count); - m_model->setHorizontalHeaderLabels( - QStringList() << "A" << "B" << "C" << "D" << "E" << "F" << "G" << "H" << "I" << "J"); - m_model->setVerticalHeaderLabels( - QStringList() << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8" << "9" << "10"); - m_selection = new QItemSelectionModel(m_model); - -} - -QList Engine::addSeries(QAbstractSeries::SeriesType type) -{ - const QModelIndexList& list = m_selection->selectedIndexes(); - - QMap columns; - - foreach (const QModelIndex& index, list) { - columns.insertMulti(index.column(), index); - } - - QList keys = columns.uniqueKeys(); - - QModelIndexList rows = columns.values(keys.first()); - - int minRow = m_count + 1; - int maxRow = -1; - - foreach (const QModelIndex& index, rows) { - minRow = qMin(index.row(), minRow); - maxRow = qMax(index.row(), maxRow); - } - - QList result; - QColor color; - - switch (type) { - - case QAbstractSeries::SeriesTypeLine: - { - for (int i = 1; i < keys.count(); ++i) { - QLineSeries *line = new QLineSeries(); - setupXYSeries(line, keys, i, minRow, maxRow); - result << line; - } - break; - } - case QAbstractSeries::SeriesTypeSpline: - { - for (int i = 1; i < keys.count(); ++i) { - QSplineSeries *line = new QSplineSeries(); - setupXYSeries(line, keys, i, minRow, maxRow); - result << line; - } - break; - } - case QAbstractSeries::SeriesTypeScatter: - { - for (int i = 1; i < keys.count(); ++i) { - QScatterSeries *line = new QScatterSeries(); - setupXYSeries(line, keys, i, minRow, maxRow); - result << line; - } - break; - } - case QAbstractSeries::SeriesTypeBar: - { - QBarSeries *bar = new QBarSeries(); - setupBarSeries(bar,keys,minRow,maxRow); - result << bar; - break; - } - case QAbstractSeries::SeriesTypePercentBar: - { - QPercentBarSeries *bar = new QPercentBarSeries(); - setupBarSeries(bar,keys,minRow,maxRow); - result << bar; - break; - } - case QAbstractSeries::SeriesTypeStackedBar: - { - QStackedBarSeries *bar = new QStackedBarSeries(); - setupBarSeries(bar,keys,minRow,maxRow); - result << bar; - break; - } - case QAbstractSeries::SeriesTypePie: - { - - QPieSeries *pie = new QPieSeries(); - setupPieSeries(pie,keys,minRow,maxRow); - result << pie; - break; - } - case QAbstractSeries::SeriesTypeArea: - { - QAreaSeries *area = new QAreaSeries( new QLineSeries(), new QLineSeries()); - setupAreaSeries(area,keys,minRow,maxRow); - result << area; - break; - } - } - - m_chart->createDefaultAxes(); - return result; -} - -void Engine::removeSeries(QAbstractSeries* series) -{ - m_chart->removeSeries(series); - - foreach (const QModelIndex& index, m_seriesModelIndex.value(series)) { - m_model->setData(index, QColor(Qt::white), Qt::BackgroundRole); - } -} - -void Engine::clearModels() -{ - delete m_selection; - m_selection = 0; - delete m_model; - m_model = 0; - createModels(); -} - -bool Engine::save(const QString &filename) const -{ - if (filename.isEmpty()) - return false; - - QFile file(filename); - - if (!file.open(QIODevice::WriteOnly)) { - return false; - } - - QDataStream out(&file); - out << MAGIC_NUMBER; - out.setVersion(QDataStream::Qt_4_8); - out << m_model->rowCount(); - out << m_model->columnCount(); - - for (int row = 0; row < m_model->rowCount(); ++row) { - for (int column = 0; column < m_model->columnCount(); ++column) { - QStandardItem *item = m_model->item(row, column); - if (item) { - out << row; - out << column; - out << item->data(Qt::EditRole).toString(); - } - } - } - return true; -} - -bool Engine::load(const QString &filename) -{ - clearModels(); - - if (filename.isEmpty()) - return false; - - QFile file(filename); - - if (!file.open(QIODevice::ReadOnly)) { - return false; - } - - QDataStream in(&file); - - qint32 magicNumber; - in >> magicNumber; - - if (magicNumber != MAGIC_NUMBER) - return false; - - in.setVersion(QDataStream::Qt_4_8); - - int rowCount; - in >> rowCount; - - int columnCount; - in >> columnCount; - - while (!in.atEnd()) { - int row; - int column; - QString value; - in >> row >> column >> value; - QStandardItem *item = new QStandardItem(); - bool ok; - double result = value.toDouble(&ok); - if(ok) - item->setData(result, Qt::EditRole); - else - item->setData(value, Qt::EditRole); - m_model->setItem(row, column, item); - } - - return true; -} - -void Engine::setupXYSeries(QXYSeries *xyseries, const QList& columns, int column, int minRow, int maxRow) -{ - QVXYModelMapper* mapper = new QVXYModelMapper(xyseries); - mapper->setSeries(xyseries); - mapper->setModel(m_model); - mapper->setXColumn(columns.first()); - mapper->setYColumn(columns.at(column)); - mapper->setFirstRow(minRow); - mapper->setRowCount(maxRow - minRow + 1); - m_chart->addSeries(xyseries); - xyseries->setName(QString("Series %1").arg(m_chart->series().count())); - QObject::connect(xyseries,SIGNAL(clicked(QPointF)),this,SIGNAL(selected())); - const QModelIndexList& list = m_selection->selectedIndexes(); - QModelIndexList result; - foreach (const QModelIndex& index, list) { - if (index.column() ==columns.at(column)){ - m_model->setData(index, xyseries->pen().color(), Qt::BackgroundRole); - result << index; - } - } - m_seriesModelIndex.insert(xyseries,result); -} - -void Engine::setupBarSeries(QAbstractBarSeries *bar, const QList& columns, int minRow, int maxRow) -{ - QHBarModelMapper* mapper = new QHBarModelMapper(bar); - mapper->setSeries(bar); - mapper->setModel(m_model); - mapper->setFirstColumn(minRow); - mapper->setColumnCount(maxRow - minRow + 1); - mapper->setFirstBarSetRow(columns.at(1)); - mapper->setLastBarSetRow(columns.last()); - m_chart->addSeries(bar); - bar->setName(QString("Series %1").arg(m_chart->series().count())); - - const QModelIndexList& list = m_selection->selectedIndexes(); - foreach (const QModelIndex& index, list) { - if (index.column() >= columns.at(1) && index.column()<= columns.last()) { - //m_model->setData(index, bar->barSets().at(index.column())->brush().color(), Qt::BackgroundRole); - } - } -} - -void Engine::setupPieSeries(QPieSeries *pie, const QList& columns, int minRow, int maxRow) -{ - QVPieModelMapper* mapper = new QVPieModelMapper(pie); - mapper->setSeries(pie); - mapper->setModel(m_model); - mapper->setValuesColumn(columns.at(1)); - mapper->setLabelsColumn(columns.first()); - mapper->setFirstRow(minRow); - mapper->setRowCount(maxRow - minRow + 1); - m_chart->addSeries(pie); - pie->setName(QString("Series %1").arg(m_chart->series().count())); - - const QModelIndexList& list = m_selection->selectedIndexes(); - foreach (const QModelIndex& index, list) { - // m_model->setData(index, bar->barSets()pen().color(), Qt::BackgroundRole); - } -} - -void Engine::setupAreaSeries(QAreaSeries *series, const QList& columns, int minRow, int maxRow) -{ - QVXYModelMapper* umapper = new QVXYModelMapper(series); - umapper->setSeries(series->upperSeries()); - umapper->setModel(m_model); - umapper->setXColumn(columns.first()); - umapper->setYColumn(columns.at(1)); - umapper->setFirstRow(minRow); - umapper->setRowCount(maxRow - minRow + 1); - - QVXYModelMapper* lmapper = new QVXYModelMapper(series); - lmapper->setSeries(series->lowerSeries()); - lmapper->setModel(m_model); - lmapper->setXColumn(columns.first()); - lmapper->setYColumn(columns.at(2)); - lmapper->setFirstRow(minRow); - lmapper->setRowCount(maxRow - minRow + 1); - - m_chart->addSeries(series); - series->setName(QString("Series %1").arg(m_chart->series().count())); - - const QModelIndexList& list = m_selection->selectedIndexes(); - foreach (const QModelIndex& index, list) { - //if (index.column() ==columns.at(column)) - // m_model->setData(index, xyseries->pen().color(), Qt::BackgroundRole); - } -} diff --git a/tests/chartdesigner/engine.h b/tests/chartdesigner/engine.h deleted file mode 100644 index eef15dcf..00000000 --- a/tests/chartdesigner/engine.h +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2014 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 Enterprise Charts Add-on. - ** - ** $QT_BEGIN_LICENSE$ - ** Licensees holding valid Qt Enterprise licenses may use this file in - ** accordance with the Qt Enterprise 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$ - ** - ****************************************************************************/ - -#ifndef ENGINE_H -#define ENGINE_H - -#include -#include -#include - -class QStandardItemModel; -class QItemSelectionModel; - - -QT_CHARTS_BEGIN_NAMESPACE -class QChart; -class QXYSeries; -class QAbstractBarSeries; -class QPieSeries; -class QAreaSeries; -QT_CHARTS_END_NAMESPACE - -QT_CHARTS_USE_NAMESPACE - -class Engine : public QObject -{ - Q_OBJECT -public: - explicit Engine(QObject *parent = 0); - ~Engine(); - - int modelCount() { return m_count; } - QStandardItemModel *model() const { return m_model; } - QItemSelectionModel *selectionModel() const { return m_selection; } - QChart* chart() const { return m_chart; } - void clearModels(); - QList addSeries(QAbstractSeries::SeriesType type); - void removeSeries(QAbstractSeries* series); - bool save(const QString &filename) const; - bool load(const QString &filename); -signals: - void selected(); - -private: - void createModels(); - void setupXYSeries(QXYSeries *xyseries, const QList& columns, int column, int minRow, int maxRow); - void setupBarSeries(QAbstractBarSeries *series, const QList& columns, int minRow, int maxRow); - void setupPieSeries(QPieSeries *pie, const QList& columns, int minRow, int maxRow); - void setupAreaSeries(QAreaSeries *series, const QList& columns, int minRow, int maxRow); - -private: - int m_count; - QChart *m_chart; - QStandardItemModel *m_model; - QItemSelectionModel *m_selection; - QMap > m_seriesModelIndex; -}; - -#endif /* ENGINE_H */ diff --git a/tests/chartdesigner/main.cpp b/tests/chartdesigner/main.cpp deleted file mode 100644 index 6b47caf5..00000000 --- a/tests/chartdesigner/main.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "mainwindow.h" -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - - MainWindow window; - window.resize(1000,600); - window.show(); - return a.exec(); -} diff --git a/tests/chartdesigner/mainwindow.cpp b/tests/chartdesigner/mainwindow.cpp deleted file mode 100644 index 70588459..00000000 --- a/tests/chartdesigner/mainwindow.cpp +++ /dev/null @@ -1,423 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2014 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 Enterprise Charts Add-on. - ** - ** $QT_BEGIN_LICENSE$ - ** Licensees holding valid Qt Enterprise licenses may use this file in - ** accordance with the Qt Enterprise 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 "mainwindow.h" -#include "objectinspectorwidget.h" -#include "penwidget.h" -#include "brushwidget.h" -#include "engine.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static const QString FILENAME_SETTING("filename"); -static const QString GEOMETRY_SETTING("geometry"); - -MainWindow::MainWindow() : - m_engine(new Engine(this)), - m_view(new QChartView(m_engine->chart())), - m_scene(m_view->scene()), - m_table(new QTableView()), - m_addSeriesMenu(0), - m_seriesMenu(0), - m_chartMenu(0), - m_themeMenu(0), - m_animationMenu(0), - m_zoomMenu(0), - m_removeAllAction(0), - m_legendAction(0), - m_antialiasingAction(0) -{ - createMenus(); - createDockWidgets(); - createTable(); - createLayout(); - - QSettings settings; - restoreGeometry(settings.value(GEOMETRY_SETTING).toByteArray()); - m_filename = settings.value(FILENAME_SETTING).toString(); - if (m_filename.isEmpty()) - m_filename = "untitled"; - - setWindowTitle(m_filename); - updateUI(); -} - -MainWindow::~MainWindow() -{ - delete m_engine; -} - -void MainWindow::createMenus() -{ - QMenu *file = menuBar()->addMenu(tr("File")); - QMenu *edit = menuBar()->addMenu(tr("Edit")); - m_seriesMenu = menuBar()->addMenu(tr("Series")); - m_chartMenu = menuBar()->addMenu(tr("Chart")); - - m_addSeriesMenu = new QMenu(tr("Add series")); - m_themeMenu = new QMenu(tr("Apply theme")); - m_animationMenu = new QMenu(tr("Animations")); - m_zoomMenu = new QMenu(tr("Zoom")); - - file->addAction(tr("New"), this, SLOT(handleNewAction())); - file->addAction(tr("Load"), this, SLOT(handleLoadAction())); - file->addAction(tr("Save"), this, SLOT(handleSaveAction())); - file->addAction(tr("Save As"), this, SLOT(handleSaveAsAction())); - - //seriesMenu - m_seriesMenu->addMenu(m_addSeriesMenu); - m_removeAllAction = new QAction(tr("Remove all series"), this); - QObject::connect(m_removeAllAction, SIGNAL(triggered()), this, SLOT(handleRemoveAllSeriesAction())); - m_seriesMenu->addAction(m_removeAllAction); - m_seriesMenu->addSeparator(); - - //seriesMenu /addSeriesMenu - { - int index = QAbstractSeries::staticMetaObject.indexOfEnumerator("SeriesType"); - QMetaEnum metaEnum = QAbstractSeries::staticMetaObject.enumerator(index); - - int count = metaEnum.keyCount(); - - for (int i = 0; i < count; ++i) { - QAction* action = new QAction(metaEnum.key(i), this); - action->setData(metaEnum.value(i)); - m_addSeriesMenu->addAction(action); - QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleAddSeriesMenu())); - } - } - - //chartMenu / themeMenu - { - m_chartMenu->addMenu(m_themeMenu); - int index = QChart::staticMetaObject.indexOfEnumerator("ChartTheme"); - QMetaEnum metaEnum = QChart::staticMetaObject.enumerator(index); - - int count = metaEnum.keyCount(); - - for (int i = 0; i < count; ++i) { - QAction* action = new QAction(metaEnum.key(i), this); - action->setData(metaEnum.value(i)); - action->setCheckable(true); - m_themeMenu->addAction(action); - QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleThemeMenu())); - } - } - - //chartMenu / animationMenu - { - m_chartMenu->addMenu(m_animationMenu); - int index = QChart::staticMetaObject.indexOfEnumerator("AnimationOption"); - QMetaEnum metaEnum = QChart::staticMetaObject.enumerator(index); - - int count = metaEnum.keyCount(); - - for (int i = 0; i < count; ++i) { - QAction* action = new QAction(metaEnum.key(i), this); - action->setData(metaEnum.value(i)); - action->setCheckable(true); - m_animationMenu->addAction(action); - QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleAnimationMenu())); - } - } - - //chartMenu / zoomMenu - { - m_chartMenu->addMenu(m_zoomMenu); - int index = QChartView::staticMetaObject.indexOfEnumerator("RubberBand"); - QMetaEnum metaEnum = QChartView::staticMetaObject.enumerator(index); - - int count = metaEnum.keyCount(); - - for (int i = 0; i < count; ++i) { - QAction* action = new QAction(metaEnum.key(i), this); - action->setData(metaEnum.value(i)); - action->setCheckable(true); - m_zoomMenu->addAction(action); - QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleZoomMenu())); - } - } - - //chartMenu / legend - m_legendAction = new QAction(tr("Legend"), this); - m_legendAction->setCheckable(true); - m_chartMenu->addAction(m_legendAction); - QObject::connect(m_legendAction, SIGNAL(triggered()), this, SLOT(handleLegendAction())); - - //chartMenu / Anti-aliasing - m_antialiasingAction = new QAction(tr("Anti-aliasing"), this); - m_antialiasingAction->setCheckable(true); - m_chartMenu->addAction(m_antialiasingAction); - QObject::connect(m_antialiasingAction, SIGNAL(triggered()), this, SLOT(handleAntialiasingAction())); - -} - -void MainWindow::createDockWidgets() -{ - m_brushWidget = new BrushWidget(); - QDockWidget *brushDockWidget = new QDockWidget(tr("Brush"), this); - brushDockWidget->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); - brushDockWidget->setWidget(m_brushWidget); - addDockWidget(Qt::RightDockWidgetArea, brushDockWidget); - - m_penWidget = new PenWidget(); - QDockWidget *penDockWidget = new QDockWidget(tr("Pen"), this); - penDockWidget->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); - penDockWidget->setWidget(m_penWidget); - addDockWidget(Qt::RightDockWidgetArea, penDockWidget); - - m_inspectorWidget = new InspectorWidget(); - QDockWidget *inspectorDockWidget = new QDockWidget(tr("Object Inspector"), this); - inspectorDockWidget->setFeatures( - QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); - inspectorDockWidget->setWidget(m_inspectorWidget); - addDockWidget(Qt::RightDockWidgetArea, inspectorDockWidget); - - setDockOptions(QMainWindow::AnimatedDocks); -} - -void MainWindow::createLayout() -{ - m_table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); - - int rowHeight = m_table->rowHeight(0); - int tableHeight = (m_engine->modelCount() * rowHeight) + m_table->horizontalHeader()->height() + 2 * m_table->frameWidth(); - - m_table->setMinimumHeight(tableHeight); - m_table->setMaximumHeight(tableHeight); - - QSplitter *splitter = new QSplitter(this); - splitter->setOrientation(Qt::Vertical); - splitter->addWidget(m_table); - splitter->addWidget(m_view); - setCentralWidget(splitter); - m_view->hide(); -} - -void MainWindow::createTable() -{ - m_table->setModel(m_engine->model()); - m_table->setSelectionModel(m_engine->selectionModel()); - QObject::connect(m_table->selectionModel(),SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this,SLOT(updateUI())); -} - -void MainWindow::updateUI() -{ - - QItemSelectionModel* selection = m_table->selectionModel(); - const QModelIndexList& list = selection->selectedIndexes(); - - QMap columns; - - foreach (const QModelIndex& index, list) { - columns.insertMulti(index.column(), index); - } - - QList keys = columns.uniqueKeys(); - - bool seriesEnabled = false; - - foreach (QAction* action, m_addSeriesMenu->actions()) { - switch (action->data().toInt()) { - case QAbstractSeries::SeriesTypeLine: - case QAbstractSeries::SeriesTypeSpline: - case QAbstractSeries::SeriesTypeScatter: - action->setEnabled(list.count() > 0 && keys.count() >= 2); - seriesEnabled |= action->isEnabled(); - break; - case QAbstractSeries::SeriesTypeBar: - case QAbstractSeries::SeriesTypePercentBar: - case QAbstractSeries::SeriesTypeStackedBar: - action->setEnabled(list.count() > 0 && keys.count() >= 2); - seriesEnabled |= action->isEnabled(); - break; - case QAbstractSeries::SeriesTypePie: - action->setEnabled(list.count() > 0 && keys.count() == 2); - seriesEnabled |= action->isEnabled(); - break; - case QAbstractSeries::SeriesTypeArea: - action->setEnabled(list.count() > 0 && keys.count() == 3); - seriesEnabled |= action->isEnabled(); - break; - } - } - - m_chartMenu->setEnabled(m_engine->chart()->series().count() > 0); - m_seriesMenu->setEnabled(seriesEnabled || m_engine->chart()->series().count() > 0); - m_removeAllAction->setEnabled(m_engine->chart()->series().count() > 0); - - int theme = m_engine->chart()->theme(); - foreach (QAction* action, m_themeMenu->actions()) { - action->setChecked(action->data().toInt() == theme); - } - - int animation = m_engine->chart()->animationOptions(); - foreach (QAction* action, m_animationMenu->actions()) { - action->setChecked(action->data().toInt() == animation); - } - - int zoom = m_view->rubberBand(); - foreach (QAction* action, m_zoomMenu->actions()) { - action->setChecked(action->data().toInt() == zoom); - } - - m_legendAction->setChecked(m_engine->chart()->legend()->isVisible()); - m_antialiasingAction->setChecked(m_view->renderHints().testFlag(QPainter::Antialiasing)); - - foreach (QAction *action, m_seriesMenu->actions()) { - //TODO: visibility handling - //if (m_series.value(action->text())) - // ; - //action->setChecked(false); - } -} - -void MainWindow::closeEvent(QCloseEvent *event) -{ - QSettings settings; - settings.setValue(GEOMETRY_SETTING, saveGeometry()); - settings.setValue(FILENAME_SETTING, m_filename); - QMainWindow::closeEvent(event); -} - -//handlers - -void MainWindow::handleNewAction() -{ - m_engine->chart()->removeAllSeries(); - m_view->hide(); - m_engine->clearModels(); - createTable(); - m_filename = "untitled"; - setWindowTitle(m_filename); - updateUI(); -} - -void MainWindow::handleAddSeriesMenu() -{ - m_view->show(); - QAction* action = qobject_cast(sender()); - QList series = m_engine->addSeries(QAbstractSeries::SeriesType(action->data().toInt())); - - foreach (QAbstractSeries* s , series) - { - QAction *newAction = new QAction(s->name(),this); - //newAction->setCheckable(true); - m_series.insert(s->name(),s); - m_seriesMenu->addAction(newAction); - } - - updateUI(); -} - -void MainWindow::handleRemoveAllSeriesAction() -{ - - foreach (QAction* action, m_seriesMenu->actions()){ - if(m_series.contains(action->text())){ - m_seriesMenu->removeAction(action); - m_engine->removeSeries(m_series.value(action->text())); - delete action; - } - } - - m_series.clear(); - - m_view->hide(); - updateUI(); -} - -void MainWindow::handleThemeMenu() -{ - QAction* action = qobject_cast(sender()); - m_engine->chart()->setTheme(QChart::ChartTheme(action->data().toInt())); - updateUI(); -} - -void MainWindow::handleAnimationMenu() -{ - QAction* action = qobject_cast(sender()); - m_engine->chart()->setAnimationOptions(QChart::AnimationOption(action->data().toInt())); - updateUI(); -} - -void MainWindow::handleZoomMenu() -{ - QAction* action = qobject_cast(sender()); - m_view->setRubberBand(QChartView::RubberBand(action->data().toInt())); - updateUI(); -} - -void MainWindow::handleAntialiasingAction() -{ - QAction* action = qobject_cast(sender()); - if (action->isChecked()) { - m_view->setRenderHint(QPainter::Antialiasing, true); - } - else { - m_view->setRenderHint(QPainter::Antialiasing, false); - } -} - -void MainWindow::handleLegendAction() -{ - QAction* action = qobject_cast(sender()); - if (action->isChecked()) { - m_engine->chart()->legend()->setVisible(true); - } - else { - m_engine->chart()->legend()->setVisible(false); - } -} - -void MainWindow::handleSaveAction() -{ - if(!m_engine->save(m_filename)) { - - QScopedPointer messageBox(new QMessageBox(this)); - messageBox->setIcon(QMessageBox::Warning); - messageBox->setWindowModality(Qt::WindowModal); - messageBox->setWindowTitle(QString(tr("Error"))); - messageBox->setText(tr("Could not write to ") + m_filename); - messageBox->exec(); - } -} - -void MainWindow::handleLoadAction() -{ - if(!m_engine->load(m_filename)) { - - QScopedPointer messageBox(new QMessageBox(this)); - messageBox->setIcon(QMessageBox::Warning); - messageBox->setWindowModality(Qt::WindowModal); - messageBox->setWindowTitle(QString(tr("Error"))); - messageBox->setText(tr("Could not open ") + m_filename); - messageBox->exec(); - - }else createTable(); -} diff --git a/tests/chartdesigner/mainwindow.h b/tests/chartdesigner/mainwindow.h deleted file mode 100644 index d5ce5418..00000000 --- a/tests/chartdesigner/mainwindow.h +++ /dev/null @@ -1,97 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include - - -QT_CHARTS_BEGIN_NAMESPACE -class QChartView; -class QAbstractSeries; -QT_CHARTS_END_NAMESPACE - -class QGraphicsScene; -class InspectorWidget; -class BrushWidget; -class PenWidget; -class QTableView; -class Engine; - -QT_CHARTS_USE_NAMESPACE - -class MainWindow : public QMainWindow -{ - Q_OBJECT -public: - MainWindow(); - ~MainWindow(); - -private slots: - void handleNewAction(); - void handleAddSeriesMenu(); - void handleRemoveAllSeriesAction(); - void updateUI(); - void handleThemeMenu(); - void handleAnimationMenu(); - void handleZoomMenu(); - void handleAntialiasingAction(); - void handleLegendAction(); - void handleSaveAction(); - void handleLoadAction(); - -protected: - void closeEvent(QCloseEvent *event); - -private: - void createMenus(); - void createDockWidgets(); - void createModel(); - void createLayout(); - void createTable(); - -private: - Engine *m_engine; - QChartView *m_view; - QGraphicsScene *m_scene; - QTableView *m_table; - InspectorWidget *m_inspectorWidget; - PenWidget *m_penWidget; - BrushWidget *m_brushWidget; - QMenu *m_addSeriesMenu; - QMenu *m_seriesMenu; - QMenu *m_chartMenu; - QMenu *m_themeMenu; - QMenu *m_animationMenu; - QMenu *m_zoomMenu; - - QAction *m_removeAllAction; - QAction *m_legendAction; - QAction *m_antialiasingAction; - QString m_filename; - - QMap m_series; - -}; - -#endif /* MAINWINDOW_H */ diff --git a/tests/chartdesigner/objectinspectorwidget.cpp b/tests/chartdesigner/objectinspectorwidget.cpp deleted file mode 100644 index 64a89854..00000000 --- a/tests/chartdesigner/objectinspectorwidget.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "objectinspectorwidget.h" -#include -#include -#include - -InspectorWidget::InspectorWidget() -{ - -} - -InspectorWidget::~InspectorWidget() -{ - -} - -QIcon InspectorWidget::getColorIcon(const QColor& color,const QSize &size) const -{ - - QString key = QString("COLOR_ICON=%1:%2x%3").arg(color.name()).arg(size.width()).arg(size.height()); - - QPixmap pixmap(size); - - if (!QPixmapCache::find(key, &pixmap)) { - pixmap.fill(Qt::white); - QPainter painter(&pixmap); - painter.fillRect(2, 2, 46, 46, color); - QPixmapCache::insert(key, pixmap); - } - - return QIcon(pixmap); -} diff --git a/tests/chartdesigner/objectinspectorwidget.h b/tests/chartdesigner/objectinspectorwidget.h deleted file mode 100644 index ba9deed4..00000000 --- a/tests/chartdesigner/objectinspectorwidget.h +++ /dev/null @@ -1,37 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef INSPECTORWIDGET_H -#define INSPECTORWIDGET_H - -#include - -class InspectorWidget : public QWidget -{ -public: - InspectorWidget(); - ~InspectorWidget(); - -private: - QIcon getColorIcon(const QColor& color,const QSize &size) const; - -}; - -#endif diff --git a/tests/chartdesigner/penwidget.cpp b/tests/chartdesigner/penwidget.cpp deleted file mode 100644 index e2b22f64..00000000 --- a/tests/chartdesigner/penwidget.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "penwidget.h" -#include -#include -#include - -PenWidget::PenWidget(QWidget *parent):QWidget(parent), -m_colorComboBox(0), -m_lineStyleComboBox(0), -m_widthSpinBox(0) -{ - createContent(); - createLayout(); - setFixedSize(minimumSizeHint()); -} - -PenWidget::~PenWidget() -{ - -} - -void PenWidget::createContent() -{ - m_colorComboBox = new QComboBox(this); - m_lineStyleComboBox = new QComboBox(this); - m_widthSpinBox = new QSpinBox(this); -} - -void PenWidget::createLayout() -{ - QFormLayout *layout = new QFormLayout(); - layout->addRow(tr("Color"), m_colorComboBox); - layout->addRow(tr("Style"), m_lineStyleComboBox); - layout->addRow(tr("Width"), m_widthSpinBox); - setLayout(layout); -} - diff --git a/tests/chartdesigner/penwidget.h b/tests/chartdesigner/penwidget.h deleted file mode 100644 index fe9998c0..00000000 --- a/tests/chartdesigner/penwidget.h +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef PENWIDGET_H -#define PENWIDGET_H - -#include -#include - -class QComboBox; -class QSpinBox; - -class PenWidget : public QWidget -{ -public: - explicit PenWidget(QWidget* parent = 0); - ~PenWidget(); - - QPen pen() const { return m_pen; } -private: - void createContent(); - void createLayout(); - -private: - QPen m_pen; - QComboBox *m_colorComboBox; - QComboBox *m_lineStyleComboBox; - QSpinBox *m_widthSpinBox; -}; - -#endif /* PENWIDGET_H */ diff --git a/tests/chartviewer/charts.h b/tests/chartviewer/charts.h deleted file mode 100644 index 2d59a885..00000000 --- a/tests/chartviewer/charts.h +++ /dev/null @@ -1,90 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - - -#ifndef CHARTS_H -#define CHARTS_H -#include "model.h" -#include -#include -#include -#include - -QT_CHARTS_BEGIN_NAMESPACE -class QChart; -QT_CHARTS_END_NAMESPACE - -QT_CHARTS_USE_NAMESPACE - -class Chart -{ -public: - virtual ~Chart() {}; - virtual QChart *createChart(const DataTable &table) = 0; - virtual QString name() = 0; - virtual QString category() = 0; - virtual QString subCategory() = 0; - -}; - -namespace Charts -{ - - typedef QList ChartList; - - inline ChartList &chartList() - { - static ChartList list; - return list; - } - - inline bool findChart(Chart *chart) - { - ChartList &list = chartList(); - if (list.contains(chart)) - return true; - - foreach (Chart *item, list) { - if (item->name() == chart->name() && item->category() == chart->category() && item->subCategory() == chart->subCategory()) - return true; - } - return false; - } - - inline void addChart(Chart *chart) - { - ChartList &list = chartList(); - if (!findChart(chart)) - list.append(chart); - } -} - -template -class ChartWrapper -{ -public: - QSharedPointer chart; - ChartWrapper() : chart(new T) { Charts::addChart(chart.data()); } -}; - -#define DECLARE_CHART(chartType) static ChartWrapper chartType; -#define DECLARE_CHART_TEMPLATE(chartType,chartName) static ChartWrapper chartName; - -#endif diff --git a/tests/chartviewer/charts/axis/barcategoryaxisx.cpp b/tests/chartviewer/charts/axis/barcategoryaxisx.cpp deleted file mode 100644 index 250576bb..00000000 --- a/tests/chartviewer/charts/axis/barcategoryaxisx.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarCategoryAxisX: public Chart -{ -public: - QString name() { return "AxisX"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return "BarCategoryAxis"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle(" BarCateogry X , Value Y"); - - QString name("Series "); - QBarSeries *series = new QBarSeries(chart); - QValueAxis *valueaxis = new QValueAxis(); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisY(valueaxis, series); - chart->setAxisX(barcategory, series); - - return chart; - } -}; - -class BarCategoryAxisXTitle: public BarCategoryAxisX -{ - QString name() { return "AxisX Title"; } - QChart *createChart(const DataTable &table) - { - QChart *chart = BarCategoryAxisX::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle(" BarCateogry X , Value Y, title"); - return chart; - } -}; - -DECLARE_CHART(BarCategoryAxisX); -DECLARE_CHART(BarCategoryAxisXTitle); diff --git a/tests/chartviewer/charts/axis/barcategoryaxisxlogy.cpp b/tests/chartviewer/charts/axis/barcategoryaxisxlogy.cpp deleted file mode 100644 index 516d0f49..00000000 --- a/tests/chartviewer/charts/axis/barcategoryaxisxlogy.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarCategoryAxisXLogY: public Chart -{ -public: - QString name() { return "AxisX"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return "BarCategoryAxis"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle(" BarCateogry X , LogValue Y"); - - QString name("Series "); - QBarSeries *series = new QBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisY(logvalueaxis, series); - chart->setAxisX(barcategory, series); - - return chart; - } -}; - -class BarCategoryAxisXLogYTitle: public BarCategoryAxisXLogY -{ - QString name() { return "AxisX Title"; } - QChart *createChart(const DataTable &table) - { - QChart *chart = BarCategoryAxisXLogY::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle(" BarCateogry X , LogValue Y, title"); - return chart; - } -}; - -DECLARE_CHART(BarCategoryAxisXLogY); -DECLARE_CHART(BarCategoryAxisXLogYTitle); diff --git a/tests/chartviewer/charts/axis/barcategoryaxisy.cpp b/tests/chartviewer/charts/axis/barcategoryaxisy.cpp deleted file mode 100644 index d20442b2..00000000 --- a/tests/chartviewer/charts/axis/barcategoryaxisy.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarCategoryAxisY: public Chart -{ -public: - QString name() { return "AxisY"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return "BarCategoryAxis"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle(" BarCateogry Y , Value X"); - - QString name("Series "); - QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); - QValueAxis *valueaxis = new QValueAxis(); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach(Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisX(valueaxis, series); - chart->setAxisY(barcategory, series); - - return chart; - } -}; - -class BarCategoryAxisYTitle: public BarCategoryAxisY -{ -public: - QString name() - { - return "AxisY Title"; - } - - QChart *createChart(const DataTable &table) - { - QChart *chart = BarCategoryAxisY::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle(" BarCateogry Y , Value X, title"); - return chart; - } -}; - -DECLARE_CHART(BarCategoryAxisY); -DECLARE_CHART(BarCategoryAxisYTitle); diff --git a/tests/chartviewer/charts/axis/barcategoryaxisylogx.cpp b/tests/chartviewer/charts/axis/barcategoryaxisylogx.cpp deleted file mode 100644 index f38cf931..00000000 --- a/tests/chartviewer/charts/axis/barcategoryaxisylogx.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarCategoryAxisYLogX: public Chart -{ -public: - QString name() { return "AxisY"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return "BarCategoryAxis"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle(" LogValue X , BarCateogry Y"); - - QString name("Series "); - QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisX(logvalueaxis, series); - chart->setAxisY(barcategory, series); - - return chart; - } -}; - -class BarCategoryAxisYLogXTitle: public BarCategoryAxisYLogX -{ - QString name() { return "AxisX Title"; } - QChart *createChart(const DataTable &table) - { - QChart *chart = BarCategoryAxisYLogX::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle(" LogValue X , BarCateogry Y, title"); - return chart; - } -}; - -DECLARE_CHART(BarCategoryAxisYLogX); -DECLARE_CHART(BarCategoryAxisYLogXTitle); diff --git a/tests/chartviewer/charts/axis/categoryaxis.cpp b/tests/chartviewer/charts/axis/categoryaxis.cpp deleted file mode 100644 index dc025f6d..00000000 --- a/tests/chartviewer/charts/axis/categoryaxis.cpp +++ /dev/null @@ -1,83 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class CategoryLineChart: public Chart -{ -public: - QString name() { return QObject::tr("CategoryAxis"); } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Category X , Category Y "); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QCategoryAxis *axisX = new QCategoryAxis; - axisX->append("low", 5); - axisX->append("avg.", 12); - axisX->append("high", 19); - axisX->setRange(0, 20); - chart->setAxisX(axisX, chart->series().at(0)); - - QCategoryAxis *axisY = new QCategoryAxis; - axisY->append("cheap", 5); - axisY->append("fair", 12); - axisY->append("pricy", 20); - axisY->setRange(0, 20); - chart->setAxisY(axisY, chart->series().at(0)); - - return chart; - } -}; - -class CategoryLineChartTitle: public CategoryLineChart -{ -public: - QString name() { return QObject::tr("CategoryAxis, Title"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = CategoryLineChart::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle("Category X , Category Y,title "); - return chart; - } -}; - -DECLARE_CHART(CategoryLineChart) -DECLARE_CHART(CategoryLineChartTitle) diff --git a/tests/chartviewer/charts/axis/datetimeaxisx.cpp b/tests/chartviewer/charts/axis/datetimeaxisx.cpp deleted file mode 100644 index 99154bbc..00000000 --- a/tests/chartviewer/charts/axis/datetimeaxisx.cpp +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class DateTimeAxisX: public Chart -{ -public: - QString name() { return "AxisX"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return "DateTimeAxis"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("DateTime X , Value Y"); - QValueAxis *valueaxis = new QValueAxis(); - QDateTimeAxis *datetimeaxis = new QDateTimeAxis(); - datetimeaxis->setTickCount(10); - datetimeaxis->setFormat("yyyy"); - - qreal day = 1000l * 60l * 60l * 24l; - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) { - QPointF point = data.first; - series->append(day * 365l * 30l + point.x() * day * 365l, point.y()); - } - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - chart->setAxisX(datetimeaxis, series); - chart->setAxisY(valueaxis, series); - } - - return chart; - } -}; - -class DateTimeAxisXTitle: public DateTimeAxisX -{ -public: - QString name() { return "AxisX Title"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = DateTimeAxisX::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle("DateTime X , Value Y, Title"); - return chart; - } -}; - - -DECLARE_CHART(DateTimeAxisX); -DECLARE_CHART(DateTimeAxisXTitle); diff --git a/tests/chartviewer/charts/axis/datetimeaxisy.cpp b/tests/chartviewer/charts/axis/datetimeaxisy.cpp deleted file mode 100644 index 0234eb6a..00000000 --- a/tests/chartviewer/charts/axis/datetimeaxisy.cpp +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class DateTimeAxisY: public Chart -{ -public: - QString name() { return "AxisY"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return "DateTimeAxis"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Value X , DateTime Y"); - QValueAxis *valueaxis = new QValueAxis(); - QDateTimeAxis *datetimeaxis = new QDateTimeAxis(); - datetimeaxis->setTickCount(10); - datetimeaxis->setFormat("yyyy"); - - qreal day = 1000l * 60l * 60l * 24l; - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) { - QPointF point = data.first; - series->append(point.x(), day * 365l * 30l + point.y() * day * 365l); - } - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - chart->setAxisY(datetimeaxis, series); - chart->setAxisX(valueaxis, series); - } - - return chart; - } -}; - -class DateTimeAxisYTitle: public DateTimeAxisY -{ -public: - QString name() { return "AxisY Title"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = DateTimeAxisY::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle("Value X , DateTime Y, Title"); - return chart; - } -}; - -DECLARE_CHART(DateTimeAxisY); -DECLARE_CHART(DateTimeAxisYTitle); diff --git a/tests/chartviewer/charts/axis/logvalueaxisx.cpp b/tests/chartviewer/charts/axis/logvalueaxisx.cpp deleted file mode 100644 index d60a1f18..00000000 --- a/tests/chartviewer/charts/axis/logvalueaxisx.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class LogValueAxisX: public Chart -{ -public: - QString name() { return "LogValueAxisX"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return QObject::tr("Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("LogValue X , Value Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - chart->createDefaultAxes(); - QLogValueAxis *axis = new QLogValueAxis(); - axis->setBase(1.2); - foreach (QAbstractSeries *series, chart->series()) - chart->setAxisX(axis, series); - - return chart; - } -}; - -class LogValueAxisTitleX: public LogValueAxisX -{ -public: - QString name() { return "LogValueAxisXTitle"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = LogValueAxisX::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle("Log Value X , Value Y, title"); - return chart; - } -}; - -DECLARE_CHART(LogValueAxisX); -DECLARE_CHART(LogValueAxisTitleX); diff --git a/tests/chartviewer/charts/axis/logvalueaxisy.cpp b/tests/chartviewer/charts/axis/logvalueaxisy.cpp deleted file mode 100644 index cc631515..00000000 --- a/tests/chartviewer/charts/axis/logvalueaxisy.cpp +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class LogValueAxisY: public Chart -{ -public: - QString name() { return "LogValueAxisY"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return QObject::tr("Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Value X , LogValue Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - chart->createDefaultAxes(); - QLogValueAxis *axis = new QLogValueAxis(); - axis->setBase(2); - foreach (QAbstractSeries *series, chart->series()) - chart->setAxisY(axis, series); - - return chart; - } -}; - -class LogValueAxisTitleY: public LogValueAxisY -{ -public: - QString name() { return "LogValueAxisYTitle"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = LogValueAxisY::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle("Value X , Log Value Y, title"); - return chart; - } -}; - -DECLARE_CHART(LogValueAxisY); -DECLARE_CHART(LogValueAxisTitleY); diff --git a/tests/chartviewer/charts/axis/valueaxis.cpp b/tests/chartviewer/charts/axis/valueaxis.cpp deleted file mode 100644 index 9bbfb0c9..00000000 --- a/tests/chartviewer/charts/axis/valueaxis.cpp +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class ValueAxis: public Chart -{ -public: - QString name() { return "ValueAxis"; } - QString category() { return QObject::tr("Axis"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Value X , Value Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - chart->createDefaultAxes(); - QValueAxis *axis = new QValueAxis(); - foreach (QAbstractSeries *series, chart->series()) - chart->setAxisX(axis, series); - - return chart; - } -}; - -class ValueAxisTitle: public ValueAxis -{ -public: - QString name() { return "ValueAxis Title"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = ValueAxis::createChart(table); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->setTitle("Value X , Value Y, title"); - return chart; - } -}; - -DECLARE_CHART(ValueAxis); -DECLARE_CHART(ValueAxisTitle); diff --git a/tests/chartviewer/charts/barseries/horizontalbarchart.cpp b/tests/chartviewer/charts/barseries/horizontalbarchart.cpp deleted file mode 100644 index 3cc1887e..00000000 --- a/tests/chartviewer/charts/barseries/horizontalbarchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class HorizontalBarChart: public Chart -{ -public: - QString name() { return QObject::tr("HorizontalBarChart"); } - QString category() { return QObject::tr("BarSeries"); } - QString subCategory() { return QObject::tr("Horizontal"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Horizontal bar chart"); - QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(HorizontalBarChart) - diff --git a/tests/chartviewer/charts/barseries/horizontalpercentbarchart.cpp b/tests/chartviewer/charts/barseries/horizontalpercentbarchart.cpp deleted file mode 100644 index 71cd14f0..00000000 --- a/tests/chartviewer/charts/barseries/horizontalpercentbarchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class HorizontalPercentBarChart: public Chart -{ -public: - QString name() { return QObject::tr("HorizontalPercentBarChart"); } - QString category() { return QObject::tr("BarSeries"); } - QString subCategory() { return QObject::tr("Horizontal"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Horizontal percent chart"); - QHorizontalPercentBarSeries *series = new QHorizontalPercentBarSeries(chart); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(HorizontalPercentBarChart) - diff --git a/tests/chartviewer/charts/barseries/horizontalstackedbarchart.cpp b/tests/chartviewer/charts/barseries/horizontalstackedbarchart.cpp deleted file mode 100644 index 7dab6791..00000000 --- a/tests/chartviewer/charts/barseries/horizontalstackedbarchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class HorizontalStackedBarChart: public Chart -{ -public: - QString name() { return QObject::tr("HorizontalStackedBarChart"); } - QString category() { return QObject::tr("BarSeries"); } - QString subCategory() { return QObject::tr("Horizontal"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Horizontal stacked chart"); - QHorizontalStackedBarSeries *series = new QHorizontalStackedBarSeries(chart); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(HorizontalStackedBarChart) - diff --git a/tests/chartviewer/charts/barseries/verticalbarchart.cpp b/tests/chartviewer/charts/barseries/verticalbarchart.cpp deleted file mode 100644 index d7dbbaa0..00000000 --- a/tests/chartviewer/charts/barseries/verticalbarchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class VerticalBarChart: public Chart -{ -public: - QString name() { return QObject::tr("VerticalBarChart"); } - QString category() { return QObject::tr("BarSeries"); } - QString subCategory() { return QObject::tr("Vertical"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Vertical bar chart"); - QBarSeries *series = new QBarSeries(chart); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(VerticalBarChart) - diff --git a/tests/chartviewer/charts/barseries/verticalpercentbarchart.cpp b/tests/chartviewer/charts/barseries/verticalpercentbarchart.cpp deleted file mode 100644 index e219ebc0..00000000 --- a/tests/chartviewer/charts/barseries/verticalpercentbarchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class VerticalPercentBarChart: public Chart -{ -public: - QString name() { return QObject::tr("VerticalPercentBarChart"); } - QString category() { return QObject::tr("BarSeries"); } - QString subCategory() { return QObject::tr("Vertical"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Percent bar chart"); - QPercentBarSeries *series = new QPercentBarSeries(chart); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(VerticalPercentBarChart) - diff --git a/tests/chartviewer/charts/barseries/verticalstackedbarchart.cpp b/tests/chartviewer/charts/barseries/verticalstackedbarchart.cpp deleted file mode 100644 index 84986acc..00000000 --- a/tests/chartviewer/charts/barseries/verticalstackedbarchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class VerticalStackedBarChart: public Chart -{ -public: - QString name() { return QObject::tr("VerticalStackedBarChart"); } - QString category() { return QObject::tr("BarSeries"); } - QString subCategory() { return QObject::tr("Vertical"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Stacked bar chart"); - QStackedBarSeries *series = new QStackedBarSeries(chart); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(VerticalStackedBarChart) - diff --git a/tests/chartviewer/charts/charts.pri b/tests/chartviewer/charts/charts.pri deleted file mode 100644 index 5bef427f..00000000 --- a/tests/chartviewer/charts/charts.pri +++ /dev/null @@ -1,51 +0,0 @@ -INCLUDEPATH += $$PWD -DEPENDPATH += $$PWD -SOURCES += \ - $$PWD/font/font.cpp \ - $$PWD/xyseries/linechart.cpp \ - $$PWD/xyseries/scatterchart.cpp \ - $$PWD/xyseries/splinechart.cpp \ - $$PWD/xyseries/areachart.cpp \ - $$PWD/barseries/verticalstackedbarchart.cpp \ - $$PWD/barseries/horizontalstackedbarchart.cpp \ - $$PWD/barseries/verticalbarchart.cpp \ - $$PWD/barseries/horizontalbarchart.cpp \ - $$PWD/barseries/horizontalpercentbarchart.cpp \ - $$PWD/barseries/verticalpercentbarchart.cpp \ - $$PWD/pieseries/piechart.cpp \ - $$PWD/pieseries/donutchart.cpp \ - $$PWD/axis/valueaxis.cpp \ - $$PWD/axis/logvalueaxisx.cpp \ - $$PWD/axis/logvalueaxisy.cpp \ - $$PWD/axis/categoryaxis.cpp \ - $$PWD/axis/barcategoryaxisx.cpp \ - $$PWD/axis/barcategoryaxisy.cpp \ - $$PWD/axis/barcategoryaxisxlogy.cpp \ - $$PWD/axis/barcategoryaxisylogx.cpp \ - $$PWD/multiaxis/multivalueaxis.cpp \ - $$PWD/multiaxis/multivalueaxis2.cpp \ - $$PWD/multiaxis/multivalueaxis3.cpp \ - $$PWD/multiaxis/multivalueaxis4.cpp \ - $$PWD/multiaxis/multivaluebaraxis.cpp \ - $$PWD/size/sizecharts.cpp \ - $$PWD/domain/barlogy.cpp \ - $$PWD/domain/barlogx.cpp \ - $$PWD/domain/barstackedlogy.cpp \ - $$PWD/domain/barstackedlogx.cpp \ - $$PWD/domain/barpercentlogy.cpp \ - $$PWD/domain/barpercentlogx.cpp \ - $$PWD/domain/linelogxlogy.cpp \ - $$PWD/domain/linelogxy.cpp \ - $$PWD/domain/linexlogy.cpp \ - $$PWD/domain/splinelogxlogy.cpp \ - $$PWD/domain/splinelogxy.cpp \ - $$PWD/domain/splinexlogy.cpp \ - $$PWD/domain/scatterlogxlogy.cpp \ - $$PWD/domain/scatterlogxy.cpp \ - $$PWD/domain/scatterxlogy.cpp - -!linux-arm*: { -SOURCES += \ - $$PWD/axis/datetimeaxisx.cpp \ - $$PWD/axis/datetimeaxisy.cpp -} diff --git a/tests/chartviewer/charts/domain/barlogx.cpp b/tests/chartviewer/charts/domain/barlogx.cpp deleted file mode 100644 index 32a36755..00000000 --- a/tests/chartviewer/charts/domain/barlogx.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarLogX: public Chart -{ -public: - QString name() { return "Horizontal Bar"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return "Horizontal Log"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Bar: Log X, BarCateogry Y"); - - QString name("Series "); - QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisX(logvalueaxis, series); - chart->setAxisY(barcategory, series); - - return chart; - } -}; - -DECLARE_CHART(BarLogX); diff --git a/tests/chartviewer/charts/domain/barlogy.cpp b/tests/chartviewer/charts/domain/barlogy.cpp deleted file mode 100644 index e8c36acd..00000000 --- a/tests/chartviewer/charts/domain/barlogy.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarLogY: public Chart -{ -public: - QString name() { return "Bar"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return "Vertical Log"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Bar: BarCateogry X, Log Y"); - - QString name("Series "); - QBarSeries *series = new QBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisY(logvalueaxis, series); - chart->setAxisX(barcategory, series); - - return chart; - } -}; - -DECLARE_CHART(BarLogY); diff --git a/tests/chartviewer/charts/domain/barpercentlogx.cpp b/tests/chartviewer/charts/domain/barpercentlogx.cpp deleted file mode 100644 index ce61c5cc..00000000 --- a/tests/chartviewer/charts/domain/barpercentlogx.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarPercentLogX: public Chart -{ -public: - QString name() { return "Horizontal PercentBar"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return "Horizontal Log"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("PercentBar: Log X, BarCateogry Y"); - - QString name("Series "); - QHorizontalPercentBarSeries *series = new QHorizontalPercentBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisX(logvalueaxis, series); - chart->setAxisY(barcategory, series); - - return chart; - } -}; - -DECLARE_CHART(BarPercentLogX); diff --git a/tests/chartviewer/charts/domain/barpercentlogy.cpp b/tests/chartviewer/charts/domain/barpercentlogy.cpp deleted file mode 100644 index cf10e76c..00000000 --- a/tests/chartviewer/charts/domain/barpercentlogy.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarPercentLogY: public Chart -{ -public: - QString name() { return "PercentBar"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return "Vertical Log"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("PercentBar: BarCateogry X, Log Y"); - - QString name("Series "); - QPercentBarSeries *series = new QPercentBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisY(logvalueaxis, series); - chart->setAxisX(barcategory, series); - - return chart; - } -}; - -DECLARE_CHART(BarPercentLogY); diff --git a/tests/chartviewer/charts/domain/barstackedlogx.cpp b/tests/chartviewer/charts/domain/barstackedlogx.cpp deleted file mode 100644 index e10445f1..00000000 --- a/tests/chartviewer/charts/domain/barstackedlogx.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarStackedLogX: public Chart -{ -public: - QString name() { return "Horizontal StackedBar"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return "Horizontal Log"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("StackedBar: Log X, BarCateogry Y"); - - QString name("Series "); - QHorizontalStackedBarSeries *series = new QHorizontalStackedBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisX(logvalueaxis, series); - chart->setAxisY(barcategory, series); - - return chart; - } -}; - -DECLARE_CHART(BarStackedLogX); diff --git a/tests/chartviewer/charts/domain/barstackedlogy.cpp b/tests/chartviewer/charts/domain/barstackedlogy.cpp deleted file mode 100644 index 114252d9..00000000 --- a/tests/chartviewer/charts/domain/barstackedlogy.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include - -class BarStackedLogY: public Chart -{ -public: - QString name() { return "StackedBar"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return "Vertical Log"; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("StackedBar: BarCateogry X, Log Y"); - - QString name("Series "); - QStackedBarSeries *series = new QStackedBarSeries(chart); - QLogValueAxis *logvalueaxis = new QLogValueAxis(); - logvalueaxis->setBase(2); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - for (int i(0); i < table.count(); i++) { - QBarSet *set = new QBarSet("Bar set " + QString::number(i)); - foreach (Data data, table[i]) - *set << data.first.y(); - series->append(set); - } - chart->addSeries(series); - - int count = series->barSets().first()->count(); - - - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - - chart->setAxisY(logvalueaxis, series); - chart->setAxisX(barcategory, series); - - return chart; - } -}; - -DECLARE_CHART(BarStackedLogY); diff --git a/tests/chartviewer/charts/domain/linelogxlogy.cpp b/tests/chartviewer/charts/domain/linelogxlogy.cpp deleted file mode 100644 index dea1ef04..00000000 --- a/tests/chartviewer/charts/domain/linelogxlogy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class LineLogXLogY: public Chart -{ -public: - QString name() { return "Line LogX LogY"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Line: Log X, Log Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QLogValueAxis *axisX= new QLogValueAxis(); - axisX->setBase(2); - QLogValueAxis *axisY= new QLogValueAxis(); - axisY->setBase(2); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(LineLogXLogY); diff --git a/tests/chartviewer/charts/domain/linelogxy.cpp b/tests/chartviewer/charts/domain/linelogxy.cpp deleted file mode 100644 index ca0d7cf1..00000000 --- a/tests/chartviewer/charts/domain/linelogxy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class LineLogXY: public Chart -{ -public: - QString name() { return "Line LogX Y"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Line: Log X, Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QLogValueAxis *axisX= new QLogValueAxis(); - axisX->setBase(2); - QValueAxis *axisY= new QValueAxis(); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(LineLogXY); diff --git a/tests/chartviewer/charts/domain/linexlogy.cpp b/tests/chartviewer/charts/domain/linexlogy.cpp deleted file mode 100644 index 16ec254d..00000000 --- a/tests/chartviewer/charts/domain/linexlogy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class LineXLogY: public Chart -{ -public: - QString name() { return "Line X LogY"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Line: X, Log Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QValueAxis *axisX= new QValueAxis(); - QLogValueAxis *axisY= new QLogValueAxis(); - axisY->setBase(2); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(LineXLogY); diff --git a/tests/chartviewer/charts/domain/scatterlogxlogy.cpp b/tests/chartviewer/charts/domain/scatterlogxlogy.cpp deleted file mode 100644 index c87def5c..00000000 --- a/tests/chartviewer/charts/domain/scatterlogxlogy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class ScatterLogXLogY: public Chart -{ -public: - QString name() { return "Scatter LogX LogY"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Scatter: Log X, Log Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QScatterSeries *series = new QScatterSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QLogValueAxis *axisX= new QLogValueAxis(); - axisX->setBase(2); - QLogValueAxis *axisY= new QLogValueAxis(); - axisY->setBase(2); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(ScatterLogXLogY); diff --git a/tests/chartviewer/charts/domain/scatterlogxy.cpp b/tests/chartviewer/charts/domain/scatterlogxy.cpp deleted file mode 100644 index d7603616..00000000 --- a/tests/chartviewer/charts/domain/scatterlogxy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class ScatterLogXY: public Chart -{ -public: - QString name() { return "Scatter LogX Y"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Scatter: Log X, Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QScatterSeries *series = new QScatterSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QLogValueAxis *axisX= new QLogValueAxis(); - axisX->setBase(2); - QValueAxis *axisY= new QValueAxis(); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(ScatterLogXY); diff --git a/tests/chartviewer/charts/domain/scatterxlogy.cpp b/tests/chartviewer/charts/domain/scatterxlogy.cpp deleted file mode 100644 index bc09bf66..00000000 --- a/tests/chartviewer/charts/domain/scatterxlogy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class ScatterXLogY: public Chart -{ -public: - QString name() { return "Scatter X LogY"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Scatter: X, Log Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QScatterSeries *series = new QScatterSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QValueAxis *axisX= new QValueAxis(); - QLogValueAxis *axisY= new QLogValueAxis(); - axisY->setBase(2); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(ScatterXLogY); diff --git a/tests/chartviewer/charts/domain/splinelogxlogy.cpp b/tests/chartviewer/charts/domain/splinelogxlogy.cpp deleted file mode 100644 index b87a4bb7..00000000 --- a/tests/chartviewer/charts/domain/splinelogxlogy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class SplineLogXLogY: public Chart -{ -public: - QString name() { return "Spline LogX LogY"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Spline: Log X, Log Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QSplineSeries *series = new QSplineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QLogValueAxis *axisX= new QLogValueAxis(); - axisX->setBase(2); - QLogValueAxis *axisY= new QLogValueAxis(); - axisY->setBase(2); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(SplineLogXLogY); diff --git a/tests/chartviewer/charts/domain/splinelogxy.cpp b/tests/chartviewer/charts/domain/splinelogxy.cpp deleted file mode 100644 index 0354aadf..00000000 --- a/tests/chartviewer/charts/domain/splinelogxy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class SplineLogXY: public Chart -{ -public: - QString name() { return "Spline LogX Y"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Spline: Log X, Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QSplineSeries *series = new QSplineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QLogValueAxis *axisX= new QLogValueAxis(); - axisX->setBase(2); - QValueAxis *axisY= new QValueAxis(); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(SplineLogXY); diff --git a/tests/chartviewer/charts/domain/splinexlogy.cpp b/tests/chartviewer/charts/domain/splinexlogy.cpp deleted file mode 100644 index 6a6d8210..00000000 --- a/tests/chartviewer/charts/domain/splinexlogy.cpp +++ /dev/null @@ -1,62 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class SplineXLogY: public Chart -{ -public: - QString name() { return "Spline X LogY"; } - QString category() { return QObject::tr("Domain"); } - QString subCategory() { return QObject::tr("Both Log"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Spline: X, Log Y"); - - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QSplineSeries *series = new QSplineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - - QValueAxis *axisX= new QValueAxis(); - QLogValueAxis *axisY= new QLogValueAxis(); - axisY->setBase(2); - foreach (QAbstractSeries *series, chart->series()) { - chart->setAxisX(axisX, series); - chart->setAxisY(axisY, series); - } - - return chart; - } -}; - -DECLARE_CHART(SplineXLogY); diff --git a/tests/chartviewer/charts/font/font.cpp b/tests/chartviewer/charts/font/font.cpp deleted file mode 100644 index b544ca94..00000000 --- a/tests/chartviewer/charts/font/font.cpp +++ /dev/null @@ -1,126 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include - -class FontChart: public Chart -{ -public: - FontChart(int fontSize): m_fontSize(fontSize) {}; - QString name() { return QObject::tr("Font") + " " + QString::number(m_fontSize); } - QString category() { return QObject::tr("Font"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Font size " + QString::number(m_fontSize)); - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - chart->createDefaultAxes(); - QFont font; - font.setPixelSize(m_fontSize); - chart->setTitleFont(font); - chart->axisX()->setLabelsFont(font); - chart->axisY()->setLabelsFont(font); - chart->axisX()->setTitleText("Axis X"); - chart->axisY()->setTitleText("Axis Y"); - chart->axisX()->setTitleFont(font); - chart->axisY()->setTitleFont(font); - return chart; - } - -private: - int m_fontSize; -}; - -class FontChart6: public FontChart -{ -public: - FontChart6(): FontChart(6) {}; -}; - -class FontChart8: public FontChart -{ -public: - FontChart8(): FontChart(8) {}; -}; - -class FontChart10: public FontChart -{ -public: - FontChart10(): FontChart(10) {}; -}; - -class FontChart14: public FontChart -{ -public: - FontChart14(): FontChart(14) {}; -}; - -class FontChart18: public FontChart -{ -public: - FontChart18(): FontChart(18) {}; -}; - -class FontChart20: public FontChart -{ -public: - FontChart20(): FontChart(20) {}; -}; - -class FontChart24: public FontChart -{ -public: - FontChart24(): FontChart(24) {}; -}; - -class FontChart28: public FontChart -{ -public: - FontChart28(): FontChart(28) {}; -}; - -class FontChart32: public FontChart -{ -public: - FontChart32(): FontChart(32) {}; -}; - -DECLARE_CHART(FontChart6); -DECLARE_CHART(FontChart8); -DECLARE_CHART(FontChart10); -DECLARE_CHART(FontChart14); -DECLARE_CHART(FontChart18); -DECLARE_CHART(FontChart20); -DECLARE_CHART(FontChart24); -DECLARE_CHART(FontChart28); -DECLARE_CHART(FontChart32); diff --git a/tests/chartviewer/charts/multiaxis/multivalueaxis.cpp b/tests/chartviewer/charts/multiaxis/multivalueaxis.cpp deleted file mode 100644 index 960b9c6a..00000000 --- a/tests/chartviewer/charts/multiaxis/multivalueaxis.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class MultiValueAxis: public Chart -{ -public: - QString name() - { - return "AxisSet 1"; - } - QString category() - { - return QObject::tr("MultiAxis"); - } - QString subCategory() - { - return "MultiValueAxis"; - } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - QValueAxis *axisX; - QValueAxis *axisY; - - chart->setTitle("MultiValueAxis1"); - - QString name("Series"); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - - chart->addSeries(series); - axisX = new QValueAxis(); - axisX->setLinePenColor(series->pen().color()); - axisY = new QValueAxis(); - axisY->setLinePenColor(series->pen().color()); - - chart->addAxis(axisX,nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); - chart->addAxis(axisY,nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); - series->attachAxis(axisX); - series->attachAxis(axisY); - - nameIndex++; - } - - return chart; - } -}; - -DECLARE_CHART(MultiValueAxis); diff --git a/tests/chartviewer/charts/multiaxis/multivalueaxis2.cpp b/tests/chartviewer/charts/multiaxis/multivalueaxis2.cpp deleted file mode 100644 index 91e1d7a3..00000000 --- a/tests/chartviewer/charts/multiaxis/multivalueaxis2.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class MultiValueAxis2: public Chart -{ -public: - QString name() - { - return "AxisSet 2"; - } - QString category() - { - return QObject::tr("MultiAxis"); - } - QString subCategory() - { - return "MultiValueAxis"; - } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - QValueAxis *axisX; - QValueAxis *axisY; - - chart->setTitle("MultiValueAxis2"); - - QString name("Series"); - int nameIndex = 1; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - - chart->addSeries(series); - axisX = new QValueAxis(); - axisX->setLinePenColor(series->pen().color()); - - axisY = new QValueAxis(); - axisY->setLinePenColor(series->pen().color()); - - chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); - chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); - series->attachAxis(axisX); - series->attachAxis(axisY); - nameIndex++; - } - - return chart; - } -}; - -DECLARE_CHART(MultiValueAxis2); diff --git a/tests/chartviewer/charts/multiaxis/multivalueaxis3.cpp b/tests/chartviewer/charts/multiaxis/multivalueaxis3.cpp deleted file mode 100644 index 3d25169e..00000000 --- a/tests/chartviewer/charts/multiaxis/multivalueaxis3.cpp +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class MultiValueAxis3: public Chart -{ -public: - QString name() - { - return "AxisSet 3"; - } - QString category() - { - return QObject::tr("MultiAxis"); - } - QString subCategory() - { - return "MultiValueAxis"; - } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - QValueAxis *axisX; - QValueAxis *axisY; - - chart->setTitle("MultiValueAxis3"); - - QString name("Series"); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - - chart->addSeries(series); - axisX = new QValueAxis(); - axisX->setLinePenColor(series->pen().color()); - axisX->setTitleText("ValueAxis for series" + QString::number(nameIndex)); - - axisY = new QValueAxis(); - axisY->setLinePenColor(series->pen().color()); - axisY->setTitleText("ValueAxis for series" + QString::number(nameIndex)); - - chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); - chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); - series->attachAxis(axisX); - series->attachAxis(axisY); - nameIndex++; - } - - return chart; - } -}; - -DECLARE_CHART(MultiValueAxis3); diff --git a/tests/chartviewer/charts/multiaxis/multivalueaxis4.cpp b/tests/chartviewer/charts/multiaxis/multivalueaxis4.cpp deleted file mode 100644 index 5a69ec74..00000000 --- a/tests/chartviewer/charts/multiaxis/multivalueaxis4.cpp +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include - -class MultiValueAxis4: public Chart -{ -public: - QString name() - { - return "AxisSet 4"; - } - QString category() - { - return QObject::tr("MultiAxis"); - } - QString subCategory() - { - return "MultiValueAxis"; - } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - QValueAxis *axisX; - QValueAxis *axisY; - - chart->setTitle("MultiValueAxis4"); - - QString name("Series"); - int nameIndex = 1; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - - chart->addSeries(series); - axisX = new QValueAxis(); - axisX->setLinePenColor(series->pen().color()); - axisX->setTitleText("ValueAxis for series" + QString::number(nameIndex)); - axisY = new QValueAxis(); - axisY->setLinePenColor(series->pen().color()); - axisY->setTitleText("ValueAxis for series" + QString::number(nameIndex)); - - chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); - chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); - series->attachAxis(axisX); - series->attachAxis(axisY); - nameIndex++; - } - - return chart; - } -}; - -DECLARE_CHART(MultiValueAxis4); diff --git a/tests/chartviewer/charts/multiaxis/multivaluebaraxis.cpp b/tests/chartviewer/charts/multiaxis/multivaluebaraxis.cpp deleted file mode 100644 index 300a0f4b..00000000 --- a/tests/chartviewer/charts/multiaxis/multivaluebaraxis.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include -#include -#include -#include -#include - -class MultiValueBarAxis: public Chart -{ -public: - QString name() - { - return "Axis"; - } - QString category() - { - return QObject::tr("MultiAxis"); - } - QString subCategory() - { - return "MultiBarAxis"; - } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - QValueAxis *axisX; - QValueAxis *axisY; - QBarSeries *series = new QBarSeries(); - QBarCategoryAxis *barcategory = new QBarCategoryAxis(); - - chart->setTitle("MultiBarAxis"); - - QString name("Series"); - int nameIndex = 1; - for (int i(0); i < 2; i++) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, table.at(i)) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - - chart->addSeries(series); - axisX = new QValueAxis(); - axisX->setLinePenColor(series->pen().color()); - axisX->setTitleText("ValueAxis for series" + QString::number(nameIndex)); - - axisY = new QValueAxis(); - axisY->setLinePenColor(series->pen().color()); - axisY->setTitleText("ValueAxis for series" + QString::number(nameIndex)); - - chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); - chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); - series->attachAxis(axisX); - series->attachAxis(axisY); - nameIndex++; - } - - QBarSet *set = new QBarSet("Bar set "); - foreach (Data data, table.at(2)) - *set << data.first.y(); - - int count = set->count(); - for (int i = 0; i < count; i++) { - barcategory->append("BarSet " + QString::number(i)); - } - series->append(set); - chart->addSeries(series); - - barcategory->setLinePen(set->brush().color()); - barcategory->setGridLinePen(set->brush().color()); - barcategory->setTitleText("BarCategoryAxis Title"); - - chart->setAxisX(barcategory, series); - - return chart; - } -}; - - -DECLARE_CHART(MultiValueBarAxis); diff --git a/tests/chartviewer/charts/pieseries/donutchart.cpp b/tests/chartviewer/charts/pieseries/donutchart.cpp deleted file mode 100644 index 50026ecf..00000000 --- a/tests/chartviewer/charts/pieseries/donutchart.cpp +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include - -class DonutChart: public Chart -{ -public: - QString name() { return QObject::tr("DonutChart"); } - QString category() { return QObject::tr("PieSeries"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Donut chart"); - for (int i = 0, j = table.count(); i < table.count(); i++, j--) { - QPieSeries *series = new QPieSeries(chart); - foreach (Data data, table[i]) { - QPieSlice *slice = series->append(data.second, data.first.y()); - if (data == table[i].first()) - slice->setLabelVisible(); - } - series->setPieSize(j / (qreal) table.count()); - if (j > 1) - series->setHoleSize((j - 1) / (qreal) table.count() + 0.1); - series->setHorizontalPosition(0.5); - series->setVerticalPosition(0.5); - chart->addSeries(series); - } - return chart; - } -}; - -DECLARE_CHART(DonutChart) - diff --git a/tests/chartviewer/charts/pieseries/piechart.cpp b/tests/chartviewer/charts/pieseries/piechart.cpp deleted file mode 100644 index f88e4657..00000000 --- a/tests/chartviewer/charts/pieseries/piechart.cpp +++ /dev/null @@ -1,57 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include - -class PieChart: public Chart -{ -public: - QString name() { return QObject::tr("PieChart"); } - QString category() { return QObject::tr("PieSeries"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Pie chart"); - qreal pieSize = 1.0 / table.count(); - for (int i = 0; i < table.count(); i++) { - QPieSeries *series = new QPieSeries(chart); - foreach (Data data, table[i]) { - QPieSlice *slice = series->append(data.second, data.first.y()); - if (data == table[i].first()) { - slice->setLabelVisible(); - slice->setExploded(); - } - } - qreal hPos = (pieSize / 2) + (i / (qreal) table.count()); - series->setPieSize(pieSize); - series->setHorizontalPosition(hPos); - series->setVerticalPosition(0.5); - chart->addSeries(series); - } - return chart; - } -}; - -DECLARE_CHART(PieChart) - diff --git a/tests/chartviewer/charts/size/sizecharts.cpp b/tests/chartviewer/charts/size/sizecharts.cpp deleted file mode 100644 index 6be59159..00000000 --- a/tests/chartviewer/charts/size/sizecharts.cpp +++ /dev/null @@ -1,140 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class SizeChart: public Chart -{ -public: - QString name() { return QObject::tr("PlotArea"); } - QString category() { return QObject::tr("Size"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - - QChart *chart = new QChart(); - QString name("Series"); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - chart->setContentsMargins(0,0,0,0); - chart->setMargins(QMargins(0,0,0,0)); - return chart; - } -}; - -class SizeChart2: public SizeChart -{ -public: - QString name() { return QObject::tr("PA + T"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = SizeChart::createChart(table); - chart->setTitle(name()); - return chart; - } -}; - -class SizeChart3: public SizeChart2 -{ -public: - QString name() { return QObject::tr("PA+T+CM10"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = SizeChart2::createChart(table); - chart->setContentsMargins(10,10,10,10); - - return chart; - } -}; - -class SizeChart4: public SizeChart3 -{ -public: - QString name() { return QObject::tr("PA+T+CM10+M25"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = SizeChart3::createChart(table); - chart->setMargins(QMargins(30,30,30,30)); - return chart; - } -}; - -class SizeChart5: public SizeChart4 -{ -public: - QString name() { return QObject::tr("PA+T+CM10+M25+AX"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = SizeChart4::createChart(table); - chart->createDefaultAxes(); - chart->axisY()->hide(); - return chart; - } -}; - -class SizeChart6: public SizeChart4 -{ -public: - QString name() { return QObject::tr("PA+T+CM10+M25+AY"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = SizeChart4::createChart(table); - chart->createDefaultAxes(); - chart->axisX()->hide(); - return chart; - } -}; - -class SizeChart7: public SizeChart4 -{ -public: - QString name() { return QObject::tr("PA+T+CM10+M25+AX+AY"); } - - QChart *createChart(const DataTable &table) - { - QChart *chart = SizeChart4::createChart(table); - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(SizeChart) -DECLARE_CHART(SizeChart2) -DECLARE_CHART(SizeChart3) -DECLARE_CHART(SizeChart4) -DECLARE_CHART(SizeChart5) -DECLARE_CHART(SizeChart6) -DECLARE_CHART(SizeChart7) diff --git a/tests/chartviewer/charts/xyseries/areachart.cpp b/tests/chartviewer/charts/xyseries/areachart.cpp deleted file mode 100644 index dc869c3b..00000000 --- a/tests/chartviewer/charts/xyseries/areachart.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include -#include - -class AreaChart: public Chart -{ -public: - QString name() { return QObject::tr("AreaChart"); } - QString category() { return QObject::tr("XYSeries"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Area chart"); - - // The lower series initialized to zero values - QLineSeries *lowerSeries = 0; - QString name("Series "); - int nameIndex = 0; - for (int i(0); i < table.count(); i++) { - QLineSeries *upperSeries = new QLineSeries(chart); - for (int j(0); j < table[i].count(); j++) { - Data data = table[i].at(j); - if (lowerSeries) { - const QList& points = lowerSeries->points(); - upperSeries->append(QPointF(j, points[i].y() + data.first.y())); - } else { - upperSeries->append(QPointF(j, data.first.y())); - } - } - QAreaSeries *area = new QAreaSeries(upperSeries, lowerSeries); - area->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(area); - chart->createDefaultAxes(); - lowerSeries = upperSeries; - } - return chart; - } -}; - -DECLARE_CHART(AreaChart) - diff --git a/tests/chartviewer/charts/xyseries/linechart.cpp b/tests/chartviewer/charts/xyseries/linechart.cpp deleted file mode 100644 index 4ef39e4c..00000000 --- a/tests/chartviewer/charts/xyseries/linechart.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include - -class LineChart: public Chart -{ -public: - QString name() { return QObject::tr("LineChart"); } - QString category() { return QObject::tr("XYSeries"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Line chart"); - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QLineSeries *series = new QLineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(LineChart) - diff --git a/tests/chartviewer/charts/xyseries/scatterchart.cpp b/tests/chartviewer/charts/xyseries/scatterchart.cpp deleted file mode 100644 index d49e7f49..00000000 --- a/tests/chartviewer/charts/xyseries/scatterchart.cpp +++ /dev/null @@ -1,51 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include - -class ScatterChart: public Chart -{ -public: - QString name() { return QObject::tr("ScatterChart"); } - QString category() { return QObject::tr("XYSeries"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Scatter chart"); - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QScatterSeries *series = new QScatterSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(ScatterChart) diff --git a/tests/chartviewer/charts/xyseries/splinechart.cpp b/tests/chartviewer/charts/xyseries/splinechart.cpp deleted file mode 100644 index 38ffe340..00000000 --- a/tests/chartviewer/charts/xyseries/splinechart.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "charts.h" -#include -#include - -class SplineChart: public Chart -{ -public: - QString name() { return QObject::tr("SplineChart"); } - QString category() { return QObject::tr("XYSeries"); } - QString subCategory() { return QString::null; } - - QChart *createChart(const DataTable &table) - { - QChart *chart = new QChart(); - chart->setTitle("Spline chart"); - QString name("Series "); - int nameIndex = 0; - foreach (DataList list, table) { - QSplineSeries *series = new QSplineSeries(chart); - foreach (Data data, list) - series->append(data.first); - series->setName(name + QString::number(nameIndex)); - nameIndex++; - chart->addSeries(series); - } - chart->createDefaultAxes(); - return chart; - } -}; - -DECLARE_CHART(SplineChart) - diff --git a/tests/chartviewer/chartviewer.pro b/tests/chartviewer/chartviewer.pro deleted file mode 100644 index c306252a..00000000 --- a/tests/chartviewer/chartviewer.pro +++ /dev/null @@ -1,8 +0,0 @@ -!include( ../tests.pri ):error( "Couldn't find the tests.pri file!" ) -include(charts/charts.pri) -TARGET = chartviewer -QT += opengl -INCLUDEPATH += . -SOURCES += main.cpp window.cpp view.cpp grid.cpp -HEADERS += window.h view.h charts.h model.h grid.h - diff --git a/tests/chartviewer/grid.cpp b/tests/chartviewer/grid.cpp deleted file mode 100644 index f1619ab0..00000000 --- a/tests/chartviewer/grid.cpp +++ /dev/null @@ -1,301 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "grid.h" -#include "charts.h" -#include -#include -#include -#include - -Grid::Grid(int size, QGraphicsItem *parent) - : QGraphicsWidget(parent), - m_listCount(3), - m_valueMax(10), - m_valueCount(7), - m_size(size), - m_dataTable(Model::generateRandomData(m_listCount, m_valueMax, m_valueCount)), - m_state(NoState), - m_currentState(NoState), - m_rubberBand(new QGraphicsRectItem()), - m_gridLayout(new QGraphicsGridLayout()) -{ - setLayout(m_gridLayout); - m_rubberBand->setParentItem(this); - m_rubberBand->setVisible(false); - m_rubberBand->setZValue(2); -} - -Grid::~Grid() -{ - -} - -void Grid::createCharts(const QString &category) -{ - clear(); - - QChart *qchart(0); - Charts::ChartList list = Charts::chartList(); - - if (category.isEmpty()) { - for (int i = 0; i < m_size * m_size; ++i) { - QChart *chart = new QChart(); - chart->setTitle(QObject::tr("Empty")); - m_gridLayout->addItem(chart, i / m_size, i % m_size); - m_chartHash[chart] = i; - m_chartHashRev[i] = chart; - } - } else { - int j = 0; - for (int i = 0; i < list.size(); ++i) { - Chart *chart = list.at(i); - if (chart->category() == category && j < m_size * m_size) { - qchart = list.at(i)->createChart(m_dataTable); - m_gridLayout->addItem(qchart, j / m_size, j % m_size); - m_chartHash[qchart] = j; - m_chartHashRev[j] = qchart; - j++; - } - } - for (; j < m_size * m_size; ++j) { - qchart = new QChart(); - qchart->setTitle(QObject::tr("Empty")); - m_gridLayout->addItem(qchart, j / m_size, j % m_size); - m_chartHash[qchart] = j; - m_chartHashRev[j] = qchart; - } - } - m_gridLayout->activate(); -} - -void Grid::createCharts(const QString &category, const QString &subcategory, const QString &name) -{ - clear(); - - QChart *qchart(0); - Charts::ChartList list = Charts::chartList(); - Chart *chart; - - //find chart - for (int i = 0; i < list.size(); ++i) { - - chart = list.at(i); - if (chart->category() == category && - chart->subCategory() == subcategory && - chart->name() == name) { - break; - } - chart = 0; - } - - //create charts - for (int j = 0; j < m_size * m_size; ++j) { - - if(!chart){ - qchart = new QChart(); - }else{ - qchart = chart->createChart(m_dataTable); - } - qchart->setTitle(QObject::tr("Empty")); - m_gridLayout->addItem(qchart, j / m_size, j % m_size); - m_chartHash[qchart] = j; - m_chartHashRev[j] = qchart; - } - - m_gridLayout->activate(); -} - -void Grid::clear() -{ - int count = m_gridLayout->count(); - for (int i = 0; i < count; ++i) - m_gridLayout->removeAt(0); - - qDeleteAll(m_chartHash.keys()); - m_chartHash.clear(); - m_chartHashRev.clear(); -} - -QList Grid::charts() -{ - return m_chartHash.keys(); -} - -void Grid::setState(State state) -{ - m_state = state; -} - -void Grid::setSize(int size) -{ - if (m_size != size) { - - //remove old; - int count = m_gridLayout->count(); - for (int i = 0; i < count; ++i) { - m_gridLayout->removeAt(0); - } - - - QChart* qchart = 0; - int j = 0; - - for (; j < size * size; ++j) { - - qchart = m_chartHashRev[j]; - - if (!qchart){ - qchart = new QChart(); - qchart->setTitle(QObject::tr("Empty")); - } - - m_chartHash[qchart] = j; - m_chartHashRev[j] = qchart; - m_gridLayout->addItem(qchart, j / size, j % size); - } - - //delete rest - while (j < m_size * m_size) { - QChart* qchart = m_chartHashRev.take(j); - delete(qchart); - m_chartHash.remove(qchart); - j++; - } - - m_size = size; - } -} - -void Grid::setRubberPen(const QPen &pen) -{ - m_rubberBand->setPen(pen); -} - -void Grid::replaceChart(QChart *oldChart, Chart *newChart) -{ - int index = m_chartHash[oldChart]; - //not in 4.7.2 m_baseLayout->removeItem(qchart); - for (int i = 0; i < m_gridLayout->count(); ++i) { - if (m_gridLayout->itemAt(i) == oldChart) { - m_gridLayout->removeAt(i); - break; - } - } - m_chartHash.remove(oldChart); - m_chartHashRev.remove(index); - QChart *chart = newChart->createChart(m_dataTable); - m_gridLayout->addItem(chart, index / m_size, index % m_size); - m_chartHash[chart] = index; - m_chartHashRev[index] = chart; - delete oldChart; -} - -void Grid::mousePressEvent(QGraphicsSceneMouseEvent *event) -{ - if (event->button() == Qt::LeftButton) { - - m_origin = event->pos(); - m_currentState = NoState; - - foreach (QChart *chart, charts()) { - QRectF geometryRect = chart->geometry(); - QRectF plotArea = chart->plotArea(); - plotArea.translate(geometryRect.topLeft()); - if (plotArea.contains(m_origin)) { - m_currentState = m_state; - if (m_currentState == NoState) emit chartSelected(chart); - break; - } - } - if (m_currentState == ZoomState) { - m_rubberBand->setRect(QRectF(m_origin, QSize())); - m_rubberBand->setVisible(true); - } - - event->accept(); - } - - if (event->button() == Qt::RightButton) { - m_origin = event->pos(); - m_currentState = m_state; - } -} - -void Grid::mouseMoveEvent(QGraphicsSceneMouseEvent *event) -{ - if (m_currentState != NoState) { - - foreach (QChart *chart, charts()) { - QRectF geometryRect = chart->geometry(); - QRectF plotArea = chart->plotArea(); - plotArea.translate(geometryRect.topLeft()); - if (plotArea.contains(m_origin)) { - if (m_currentState == ScrollState) { - QPointF delta = m_origin - event->pos(); - chart->scroll(delta.x(), -delta.y()); - } - if (m_currentState == ZoomState && plotArea.contains(event->pos())) - m_rubberBand->setRect(QRectF(m_origin, event->pos()).normalized()); - break; - } - } - if (m_currentState == ScrollState) - m_origin = event->pos(); - event->accept(); - } -} - -void Grid::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) -{ - if (event->button() == Qt::LeftButton) { - if (m_currentState == ZoomState) { - m_rubberBand->setVisible(false); - - foreach (QChart *chart, charts()) { - QRectF geometryRect = chart->geometry(); - QRectF plotArea = chart->plotArea(); - plotArea.translate(geometryRect.topLeft()); - if (plotArea.contains(m_origin)) { - QRectF rect = m_rubberBand->rect(); - rect.translate(-geometryRect.topLeft()); - chart->zoomIn(rect); - break; - } - } - } - m_currentState = NoState; - event->accept(); - } - - if (event->button() == Qt::RightButton) { - if (m_currentState == ZoomState) { - foreach (QChart *chart, charts()) { - QRectF geometryRect = chart->geometry(); - QRectF plotArea = chart->plotArea(); - plotArea.translate(geometryRect.topLeft()); - if (plotArea.contains(m_origin)) { - chart->zoomOut(); - break; - } - } - } - } -} diff --git a/tests/chartviewer/grid.h b/tests/chartviewer/grid.h deleted file mode 100644 index a519503d..00000000 --- a/tests/chartviewer/grid.h +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef GRID_H_ -#define GRID_H_ - -#include "model.h" -#include -#include - -class QGraphicsGridLayout; -class Chart; - -QT_CHARTS_BEGIN_NAMESPACE -class QChart; -QT_CHARTS_END_NAMESPACE - -QT_CHARTS_USE_NAMESPACE - -class Grid : public QGraphicsWidget -{ - Q_OBJECT -public: - enum State { NoState = 0, ZoomState, ScrollState}; - - Grid(int size, QGraphicsItem *parent = 0); - ~Grid(); - - QList charts(); - void createCharts(const QString &category = QString()); - void createCharts(const QString &category, const QString &subcategory, const QString &name); - void replaceChart(QChart *oldChart, Chart *newChart); - void setState(State state); - State state() const { return m_state; }; - void setRubberPen(const QPen &pen); - void setSize(int size); - int size() const {return m_size;} - -Q_SIGNALS: - void chartSelected(QChart *chart); - -protected: - void mousePressEvent(QGraphicsSceneMouseEvent *event); - void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - -private: - void clear(); - -private: - int m_listCount; - int m_valueMax; - int m_valueCount; - int m_size; - DataTable m_dataTable; - QHash m_chartHash; - QHash m_chartHashRev; - State m_state; - State m_currentState; - QPointF m_origin; - QGraphicsRectItem *m_rubberBand; - QGraphicsGridLayout *m_gridLayout; -}; - -#endif /* GRID_H_ */ diff --git a/tests/chartviewer/main.cpp b/tests/chartviewer/main.cpp deleted file mode 100644 index 6a267632..00000000 --- a/tests/chartviewer/main.cpp +++ /dev/null @@ -1,85 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "window.h" -#include -#include -#include - -QVariantHash parseArgs(QStringList args) -{ - QVariantHash parameters; - - while (!args.isEmpty()) { - - QString param = args.takeFirst(); - if (param.startsWith("--")) { - param.remove(0, 2); - - if (args.isEmpty() || args.first().startsWith("--")) { - parameters[param] = true; - } else { - QString value = args.takeFirst(); - if (value == "true" || value == "on" || value == "enabled") { - parameters[param] = true; - } else if (value == "false" || value == "off" || value == "disable") { - parameters[param] = false; - } else { - if (value.endsWith('"')) - value.chop(1); - if (value.startsWith('"')) - value.remove(0, 1); - parameters[param] = value; - } - } - } - } - - return parameters; -} - -void printHelp() -{ - std::cout << "chartviewer "<< std::endl; - std::cout << " --view <1/2/3/4> - set size of charts' grid" << std::endl; - std::cout << " --chart - set template to be show " << std::endl; - std::cout << " --opengl - set opengl mode" << std::endl; - std::cout << " --theme - set theme" << std::endl; - std::cout << " --legend - set legend alignment" << std::endl; - std::cout << " --help - prints this help" << std::endl; - std::cout << "Examples: " << std::endl; - std::cout << " chartviewer --view 4 --chart Axis" << std::endl; - std::cout << " chartviewer --view 1 --chart Axis::BarCategoryAxis::Axis " << std::endl; -} - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - QVariantHash parameters = parseArgs(QApplication::arguments()); - if(parameters.contains("help")) - { - printHelp(); - return 0; - } - Window window(parameters); - window.show(); - return a.exec(); -} - diff --git a/tests/chartviewer/model.h b/tests/chartviewer/model.h deleted file mode 100644 index 0400a631..00000000 --- a/tests/chartviewer/model.h +++ /dev/null @@ -1,66 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef MODEL_H -#define MODEL_H - -#include -#include -#include -#include -#include - -typedef QPair Data; -typedef QList DataList; -typedef QList DataTable; - - -class Model -{ -private: - Model() {} - -public: - static DataTable generateRandomData(int listCount, int valueMax, int valueCount) - { - DataTable dataTable; - - // set seed for random stuff - qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime())); - - // generate random data - for (int i(0); i < listCount; i++) { - DataList dataList; - qreal yValue(0.1); - for (int j(0); j < valueCount; j++) { - yValue = yValue + (qreal)(qrand() % valueMax) / (qreal) valueCount; - QPointF value( - (j + (qreal) qrand() / (qreal) RAND_MAX) - * ((qreal) valueMax / (qreal) valueCount), yValue); - QString label = "Slice " + QString::number(i) + ":" + QString::number(j); - dataList << Data(value, label); - } - dataTable << dataList; - } - return dataTable; - } -}; - -#endif diff --git a/tests/chartviewer/view.cpp b/tests/chartviewer/view.cpp deleted file mode 100644 index 67ef7918..00000000 --- a/tests/chartviewer/view.cpp +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2014 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 Enterprise Charts Add-on. - ** - ** $QT_BEGIN_LICENSE$ - ** Licensees holding valid Qt Enterprise licenses may use this file in - ** accordance with the Qt Enterprise 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 "view.h" -#include -#include -#include - -View::View(QGraphicsScene *scene, QGraphicsWidget *form , QWidget *parent) - : QGraphicsView(scene, parent), - m_form(form) -{ - setDragMode(QGraphicsView::NoDrag); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); -} - -void View::resizeEvent(QResizeEvent *event) -{ - if (scene()) - scene()->setSceneRect(QRect(QPoint(0, 0), event->size())); - if (m_form) - m_form->resize(QSizeF(event->size())); - QGraphicsView::resizeEvent(event); -} - -void View::mouseMoveEvent(QMouseEvent *event) -{ - //BugFix somehow view always eats the mouse move event; - QGraphicsView::mouseMoveEvent(event); - event->setAccepted(false); -} - -void View::mouseReleaseEvent(QMouseEvent *event) -{ - QGraphicsView::mouseReleaseEvent(event); - //BugFix somehow view always eats the mouse release event; - event->setAccepted(false); -} diff --git a/tests/chartviewer/view.h b/tests/chartviewer/view.h deleted file mode 100644 index c9c80860..00000000 --- a/tests/chartviewer/view.h +++ /dev/null @@ -1,42 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef VIEW_H -#define VIEW_H -#include - -class QGraphicsScene; -class QResizeEvent; - -class View: public QGraphicsView -{ -public: - View(QGraphicsScene *scene, QGraphicsWidget *form , QWidget *parent = 0); - -protected: - void resizeEvent(QResizeEvent *event); - void mouseMoveEvent(QMouseEvent *event); - void mouseReleaseEvent(QMouseEvent *event); - -private: - QGraphicsWidget *m_form; -}; - -#endif diff --git a/tests/chartviewer/window.cpp b/tests/chartviewer/window.cpp deleted file mode 100644 index d535adf6..00000000 --- a/tests/chartviewer/window.cpp +++ /dev/null @@ -1,506 +0,0 @@ -/**************************************************************************** - ** - ** Copyright (C) 2014 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 Enterprise Charts Add-on. - ** - ** $QT_BEGIN_LICENSE$ - ** Licensees holding valid Qt Enterprise licenses may use this file in - ** accordance with the Qt Enterprise 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 "window.h" -#include "view.h" -#include "grid.h" -#include "charts.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -Window::Window(const QVariantHash ¶meters, QWidget *parent) - : QMainWindow(parent), - m_scene(new QGraphicsScene(this)), - m_view(0), - m_form(0), - m_themeComboBox(0), - m_antialiasCheckBox(0), - m_animatedComboBox(0), - m_legendComboBox(0), - m_templateComboBox(0), - m_viewComboBox(0), - m_openGLCheckBox(0), - m_zoomCheckBox(0), - m_scrollCheckBox(0), - m_baseLayout(new QGraphicsLinearLayout()), - m_menu(createMenu()), - m_template(0), - m_grid(new Grid(-1)) -{ - createProxyWidgets(); - // create layout - QGraphicsLinearLayout *settingsLayout = new QGraphicsLinearLayout(); - - settingsLayout->setOrientation(Qt::Vertical); - settingsLayout->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); - settingsLayout->addItem(m_widgetHash["openGLCheckBox"]); - settingsLayout->addItem(m_widgetHash["antialiasCheckBox"]); - settingsLayout->addItem(m_widgetHash["viewLabel"]); - settingsLayout->addItem(m_widgetHash["viewComboBox"]); - settingsLayout->addItem(m_widgetHash["themeLabel"]); - settingsLayout->addItem(m_widgetHash["themeComboBox"]); - settingsLayout->addItem(m_widgetHash["animationsLabel"]); - settingsLayout->addItem(m_widgetHash["animatedComboBox"]); - settingsLayout->addItem(m_widgetHash["legendLabel"]); - settingsLayout->addItem(m_widgetHash["legendComboBox"]); - settingsLayout->addItem(m_widgetHash["templateLabel"]); - settingsLayout->addItem(m_widgetHash["templateComboBox"]); - settingsLayout->addItem(m_widgetHash["scrollCheckBox"]); - settingsLayout->addItem(m_widgetHash["zoomCheckBox"]); - settingsLayout->addStretch(); - - m_baseLayout->setOrientation(Qt::Horizontal); - m_baseLayout->addItem(m_grid); - m_baseLayout->addItem(settingsLayout); - - m_form = new QGraphicsWidget(); - m_form->setLayout(m_baseLayout); - m_scene->addItem(m_form); - - m_view = new View(m_scene, m_form); - m_view->setMinimumSize(m_form->minimumSize().toSize()); - - // Set defaults - m_antialiasCheckBox->setChecked(true); - initializeFromParamaters(parameters); - updateUI(); - if(!m_category.isEmpty() && !m_subcategory.isEmpty() && !m_name.isEmpty()) - m_grid->createCharts(m_category,m_subcategory,m_name); - - - handleGeometryChanged(); - setCentralWidget(m_view); - - connectSignals(); -} - -Window::~Window() -{ -} - -void Window::connectSignals() -{ - QObject::connect(m_form, SIGNAL(geometryChanged()), this , SLOT(handleGeometryChanged())); - QObject::connect(m_viewComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); - QObject::connect(m_themeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); - QObject::connect(m_antialiasCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); - QObject::connect(m_openGLCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); - QObject::connect(m_zoomCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); - QObject::connect(m_scrollCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); - QObject::connect(m_animatedComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); - QObject::connect(m_legendComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); - QObject::connect(m_templateComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); - QObject::connect(m_grid, SIGNAL(chartSelected(QChart*)), this, SLOT(handleChartSelected(QChart*))); -} - -void Window::createProxyWidgets() -{ - m_themeComboBox = createThemeBox(); - m_viewComboBox = createViewBox(); - m_antialiasCheckBox = new QCheckBox(tr("Anti-aliasing")); - m_animatedComboBox = createAnimationBox(); - m_legendComboBox = createLegendBox(); - m_openGLCheckBox = new QCheckBox(tr("OpenGL")); - m_zoomCheckBox = new QCheckBox(tr("Zoom")); - m_scrollCheckBox = new QCheckBox(tr("Scroll")); - m_templateComboBox = createTempleteBox(); - m_widgetHash["viewLabel"] = m_scene->addWidget(new QLabel("View")); - m_widgetHash["viewComboBox"] = m_scene->addWidget(m_viewComboBox); - m_widgetHash["themeComboBox"] = m_scene->addWidget(m_themeComboBox); - m_widgetHash["antialiasCheckBox"] = m_scene->addWidget(m_antialiasCheckBox); - m_widgetHash["animatedComboBox"] = m_scene->addWidget(m_animatedComboBox); - m_widgetHash["legendComboBox"] = m_scene->addWidget(m_legendComboBox); - m_widgetHash["openGLCheckBox"] = m_scene->addWidget(m_openGLCheckBox); - m_widgetHash["themeLabel"] = m_scene->addWidget(new QLabel("Theme")); - m_widgetHash["animationsLabel"] = m_scene->addWidget(new QLabel("Animations")); - m_widgetHash["legendLabel"] = m_scene->addWidget(new QLabel("Legend")); - m_widgetHash["templateLabel"] = m_scene->addWidget(new QLabel("Chart template")); - m_widgetHash["templateComboBox"] = m_scene->addWidget(m_templateComboBox); - m_widgetHash["zoomCheckBox"] = m_scene->addWidget(m_zoomCheckBox); - m_widgetHash["scrollCheckBox"] = m_scene->addWidget(m_scrollCheckBox); -} - -QComboBox *Window::createThemeBox() -{ - QComboBox *themeComboBox = new ComboBox(this); - themeComboBox->addItem("Light", QChart::ChartThemeLight); - themeComboBox->addItem("Blue Cerulean", QChart::ChartThemeBlueCerulean); - themeComboBox->addItem("Dark", QChart::ChartThemeDark); - themeComboBox->addItem("Brown Sand", QChart::ChartThemeBrownSand); - themeComboBox->addItem("Blue NCS", QChart::ChartThemeBlueNcs); - themeComboBox->addItem("High Contrast", QChart::ChartThemeHighContrast); - themeComboBox->addItem("Blue Icy", QChart::ChartThemeBlueIcy); - themeComboBox->addItem("Qt", QChart::ChartThemeQt); - return themeComboBox; -} - -QComboBox *Window::createViewBox() -{ - QComboBox *viewComboBox = new ComboBox(this); - viewComboBox->addItem("1 chart", 1); - viewComboBox->addItem("4 charts", 2); - viewComboBox->addItem("9 charts", 3); - viewComboBox->addItem("16 charts", 4); - return viewComboBox; -} - -QComboBox *Window::createAnimationBox() -{ - QComboBox *animationComboBox = new ComboBox(this); - animationComboBox->addItem("No Animations", QChart::NoAnimation); - animationComboBox->addItem("GridAxis Animations", QChart::GridAxisAnimations); - animationComboBox->addItem("Series Animations", QChart::SeriesAnimations); - animationComboBox->addItem("All Animations", QChart::AllAnimations); - return animationComboBox; -} - -QComboBox *Window::createLegendBox() -{ - QComboBox *legendComboBox = new ComboBox(this); - legendComboBox->addItem("No Legend ", 0); - legendComboBox->addItem("Legend Top", Qt::AlignTop); - legendComboBox->addItem("Legend Bottom", Qt::AlignBottom); - legendComboBox->addItem("Legend Left", Qt::AlignLeft); - legendComboBox->addItem("Legend Right", Qt::AlignRight); - return legendComboBox; -} - -QComboBox *Window::createTempleteBox() -{ - QComboBox *templateComboBox = new ComboBox(this); - templateComboBox->addItem("No Template", 0); - - Charts::ChartList list = Charts::chartList(); - QMultiMap categoryMap; - - foreach (Chart *chart, list) - categoryMap.insertMulti(chart->category(), chart); - - foreach (const QString &category, categoryMap.uniqueKeys()) - templateComboBox->addItem(category, category); - - return templateComboBox; -} - -void Window::initializeFromParamaters(const QVariantHash ¶meters) -{ - if (parameters.contains("view")) { - int t = parameters["view"].toInt(); - for (int i = 0; i < m_viewComboBox->count(); ++i) { - if (m_viewComboBox->itemData(i).toInt() == t) { - m_viewComboBox->setCurrentIndex(i); - break; - } - } - } - - if (parameters.contains("chart")) { - QString t = parameters["chart"].toString(); - - QRegExp rx("([a-zA-Z0-9_]*)::([a-zA-Z0-9_]*)::([a-zA-Z0-9_]*)"); - int pos = rx.indexIn(t); - - if (pos > -1) { - m_category = rx.cap(1); - m_subcategory = rx.cap(2); - m_name = rx.cap(3); - m_templateComboBox->setCurrentIndex(0); - } - else { - for (int i = 0; i < m_templateComboBox->count(); ++i) { - if (m_templateComboBox->itemText(i) == t) { - m_templateComboBox->setCurrentIndex(i); - break; - } - } - } - } - if (parameters.contains("opengl")) { - bool checked = parameters["opengl"].toBool(); - m_openGLCheckBox->setChecked(checked); - } - if (parameters.contains("theme")) { - QString t = parameters["theme"].toString(); - for (int i = 0; i < m_themeComboBox->count(); ++i) { - if (m_themeComboBox->itemText(i) == t) { - m_themeComboBox->setCurrentIndex(i); - break; - } - } - } - if (parameters.contains("animation")) { - QString t = parameters["animation"].toString(); - for (int i = 0; i < m_animatedComboBox->count(); ++i) { - if (m_animatedComboBox->itemText(i) == t) { - m_animatedComboBox->setCurrentIndex(i); - break; - } - } - } - if (parameters.contains("legend")) { - QString t = parameters["legend"].toString(); - for (int i = 0; i < m_legendComboBox->count(); ++i) { - if (m_legendComboBox->itemText(i) == t) { - m_legendComboBox->setCurrentIndex(i); - break; - } - } - } -} - -void Window::updateUI() -{ - checkView(); - checkTemplate(); - checkOpenGL(); - checkTheme(); - checkAnimationOptions(); - checkLegend(); - checkState(); -} - -void Window::checkView() -{ - int count(m_viewComboBox->itemData(m_viewComboBox->currentIndex()).toInt()); - if(m_grid->size()!=count){ - m_grid->setSize(count); - m_template = 0; - } -} - -void Window::checkLegend() -{ - Qt::Alignment alignment(m_legendComboBox->itemData(m_legendComboBox->currentIndex()).toInt()); - - if (!alignment) { - foreach (QChart *chart, m_grid->charts()) - chart->legend()->hide(); - } else { - foreach (QChart *chart, m_grid->charts()) { - chart->legend()->setAlignment(alignment); - chart->legend()->show(); - } - } -} - -void Window::checkOpenGL() -{ - bool opengl = m_openGLCheckBox->isChecked(); - bool isOpengl = qobject_cast(m_view->viewport()); - if ((isOpengl && !opengl) || (!isOpengl && opengl)) { - m_view->deleteLater(); - m_view = new View(m_scene, m_form); - m_view->setViewport(!opengl ? new QWidget() : new QGLWidget()); - setCentralWidget(m_view); - } - - bool antialias = m_antialiasCheckBox->isChecked(); - - if (opengl) - m_view->setRenderHint(QPainter::HighQualityAntialiasing, antialias); - else - m_view->setRenderHint(QPainter::Antialiasing, antialias); -} - -void Window::checkAnimationOptions() -{ - QChart::AnimationOptions options( - m_animatedComboBox->itemData(m_animatedComboBox->currentIndex()).toInt()); - - QList charts = m_grid->charts(); - - if (!charts.isEmpty() && charts.at(0)->animationOptions() != options) { - foreach (QChart *chart, charts) - chart->setAnimationOptions(options); - } -} - -void Window::checkState() -{ - bool scroll = m_scrollCheckBox->isChecked(); - - - if (m_grid->state() != Grid::ScrollState && scroll) { - m_grid->setState(Grid::ScrollState); - m_zoomCheckBox->setChecked(false); - } else if (!scroll && m_grid->state() == Grid::ScrollState) { - m_grid->setState(Grid::NoState); - } - - bool zoom = m_zoomCheckBox->isChecked(); - - if (m_grid->state() != Grid::ZoomState && zoom) { - m_grid->setState(Grid::ZoomState); - m_scrollCheckBox->setChecked(false); - } else if (!zoom && m_grid->state() == Grid::ZoomState) { - m_grid->setState(Grid::NoState); - } -} - -void Window::checkTemplate() -{ - int index = m_templateComboBox->currentIndex(); - if (m_template == index || index == 0) - return; - - m_template = index; - QString category = m_templateComboBox->itemData(index).toString(); - m_grid->createCharts(category); -} - -void Window::checkTheme() -{ - QChart::ChartTheme theme = (QChart::ChartTheme) m_themeComboBox->itemData( - m_themeComboBox->currentIndex()).toInt(); - - foreach (QChart *chart, m_grid->charts()) - chart->setTheme(theme); - - QPalette pal = window()->palette(); - if (theme == QChart::ChartThemeLight) { - pal.setColor(QPalette::Window, QRgb(0xf0f0f0)); - pal.setColor(QPalette::WindowText, QRgb(0x404044)); - } else if (theme == QChart::ChartThemeDark) { - pal.setColor(QPalette::Window, QRgb(0x121218)); - pal.setColor(QPalette::WindowText, QRgb(0xd6d6d6)); - } else if (theme == QChart::ChartThemeBlueCerulean) { - pal.setColor(QPalette::Window, QRgb(0x40434a)); - pal.setColor(QPalette::WindowText, QRgb(0xd6d6d6)); - } else if (theme == QChart::ChartThemeBrownSand) { - pal.setColor(QPalette::Window, QRgb(0x9e8965)); - pal.setColor(QPalette::WindowText, QRgb(0x404044)); - } else if (theme == QChart::ChartThemeBlueNcs) { - pal.setColor(QPalette::Window, QRgb(0x018bba)); - pal.setColor(QPalette::WindowText, QRgb(0x404044)); - } else if (theme == QChart::ChartThemeHighContrast) { - pal.setColor(QPalette::Window, QRgb(0xffab03)); - pal.setColor(QPalette::WindowText, QRgb(0x181818)); - } else if (theme == QChart::ChartThemeBlueIcy) { - pal.setColor(QPalette::Window, QRgb(0xcee7f0)); - pal.setColor(QPalette::WindowText, QRgb(0x404044)); - } else if (theme == QChart::ChartThemeQt) { - pal.setColor(QPalette::Window, QRgb(0xf0f0f0)); - pal.setColor(QPalette::WindowText, QRgb(0x404044)); - } else { - pal.setColor(QPalette::Window, QRgb(0xf0f0f0)); - pal.setColor(QPalette::WindowText, QRgb(0x404044)); - } - foreach (QGraphicsProxyWidget *widget, m_widgetHash) - widget->setPalette(pal); - m_view->setBackgroundBrush(pal.color((QPalette::Window))); - m_grid->setRubberPen(pal.color((QPalette::WindowText))); -} - -void Window::comboBoxFocused(QComboBox *combobox) -{ - foreach (QGraphicsProxyWidget *widget , m_widgetHash) { - if (widget->widget() == combobox) - widget->setZValue(2.0); - else - widget->setZValue(0.0); - } -} - -void Window::handleChartSelected(QChart *qchart) -{ - if (m_templateComboBox->currentIndex() != 0) - return; - - QAction *chosen = m_menu->exec(QCursor::pos()); - - if (chosen) { - Chart *chart = (Chart *) chosen->data().value(); - m_grid->replaceChart(qchart, chart); - updateUI(); - } -} - -QMenu *Window::createMenu() -{ - Charts::ChartList list = Charts::chartList(); - QMultiMap categoryMap; - - QMenu *result = new QMenu(this); - - foreach (Chart *chart, list) - categoryMap.insertMulti(chart->category(), chart); - - foreach (const QString &category, categoryMap.uniqueKeys()) { - QMenu *menu(0); - QMultiMap subCategoryMap; - if (category.isEmpty()) { - menu = result; - } else { - menu = new QMenu(category, this); - result->addMenu(menu); - } - - foreach (Chart *chart, categoryMap.values(category)) - subCategoryMap.insert(chart->subCategory(), chart); - - foreach (const QString &subCategory, subCategoryMap.uniqueKeys()) { - QMenu *subMenu(0); - if (subCategory.isEmpty()) { - subMenu = menu; - } else { - subMenu = new QMenu(subCategory, this); - menu->addMenu(subMenu); - } - - foreach (Chart *chart, subCategoryMap.values(subCategory)) { - createMenuAction(subMenu, QIcon(), chart->name(), - qVariantFromValue((void *) chart)); - } - } - } - return result; -} - -QAction *Window::createMenuAction(QMenu *menu, const QIcon &icon, const QString &text, - const QVariant &data) -{ - QAction *action = menu->addAction(icon, text); - action->setCheckable(false); - action->setData(data); - return action; -} - -void Window::handleGeometryChanged() -{ - QSizeF size = m_baseLayout->sizeHint(Qt::MinimumSize); - m_view->scene()->setSceneRect(0, 0, this->width(), this->height()); - m_view->setMinimumSize(size.toSize()); -} diff --git a/tests/chartviewer/window.h b/tests/chartviewer/window.h deleted file mode 100644 index 94d954ee..00000000 --- a/tests/chartviewer/window.h +++ /dev/null @@ -1,117 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef WINDOW_H -#define WINDOW_H -#include -#include -#include -#include - -class QCheckBox; -class QGraphicsRectItem; -class QGraphicsScene; -class QGraphicsWidget; -class View; -class QGraphicsLinearLayout; -class Chart; -class Grid; -class QPushButton; - -QT_CHARTS_BEGIN_NAMESPACE -class QChart; -QT_CHARTS_END_NAMESPACE - -QT_CHARTS_USE_NAMESPACE - - -class Window: public QMainWindow -{ - Q_OBJECT -public: - explicit Window(const QVariantHash ¶meters, QWidget *parent = 0); - ~Window(); - -private Q_SLOTS: - void updateUI(); - void handleGeometryChanged(); - void handleChartSelected(QChart *chart); -private: - QComboBox *createViewBox(); - QComboBox *createThemeBox(); - QComboBox *createAnimationBox(); - QComboBox *createLegendBox(); - QComboBox *createTempleteBox(); - void connectSignals(); - void createProxyWidgets(); - void comboBoxFocused(QComboBox *combox); - inline void checkAnimationOptions(); - inline void checkView(); - inline void checkLegend(); - inline void checkOpenGL(); - inline void checkTheme(); - inline void checkState(); - inline void checkTemplate(); - QMenu *createMenu(); - QAction *createMenuAction(QMenu *menu, const QIcon &icon, const QString &text, const QVariant &data); - void initializeFromParamaters(const QVariantHash ¶meters); - -private: - QGraphicsScene *m_scene; - View *m_view; - QHash m_widgetHash; - - QGraphicsWidget *m_form; - QComboBox *m_themeComboBox; - QCheckBox *m_antialiasCheckBox; - QComboBox *m_animatedComboBox; - QComboBox *m_legendComboBox; - QComboBox *m_templateComboBox; - QComboBox *m_viewComboBox; - QCheckBox *m_openGLCheckBox; - QCheckBox *m_zoomCheckBox; - QCheckBox *m_scrollCheckBox; - QGraphicsLinearLayout *m_baseLayout; - QMenu *m_menu; - int m_template; - Grid *m_grid; - QString m_category; - QString m_subcategory; - QString m_name; - - friend class ComboBox; -}; - -class ComboBox: public QComboBox -{ -public: - ComboBox(Window *window, QWidget *parent = 0): QComboBox(parent), m_window(window) - {} - -protected: - void focusInEvent(QFocusEvent *e) { - QComboBox::focusInEvent(e); - m_window->comboBoxFocused(this); - } -private: - Window *m_window; -}; - -#endif diff --git a/tests/chartwidgettest/chartwidgettest.pro b/tests/chartwidgettest/chartwidgettest.pro deleted file mode 100644 index db8416ba..00000000 --- a/tests/chartwidgettest/chartwidgettest.pro +++ /dev/null @@ -1,15 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the test.pri file!" ) -} - -TEMPLATE = app - -QT += core gui opengl widgets - -SOURCES += main.cpp \ - mainwidget.cpp \ - dataseriedialog.cpp - -HEADERS += \ - mainwidget.h \ - dataseriedialog.h diff --git a/tests/chartwidgettest/dataseriedialog.cpp b/tests/chartwidgettest/dataseriedialog.cpp deleted file mode 100644 index 622e975c..00000000 --- a/tests/chartwidgettest/dataseriedialog.cpp +++ /dev/null @@ -1,189 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "dataseriedialog.h" -#include -#include -#include -#include -#include -#include -#include -#include - -DataSerieDialog::DataSerieDialog(QWidget *parent) : - QDialog(parent) -{ - QDialogButtonBox *addSeriesBox = new QDialogButtonBox(Qt::Horizontal); - QPushButton *b = addSeriesBox->addButton(QDialogButtonBox::Ok); - connect(b, SIGNAL(clicked()), this, SLOT(accept())); - b = addSeriesBox->addButton(QDialogButtonBox::Cancel); - connect(b, SIGNAL(clicked()), this, SLOT(reject())); - - QGridLayout *grid = new QGridLayout(); - - m_seriesTypeSelector = seriesTypeSelector(); - m_columnCountSelector = columnCountSelector(); - m_rowCountSelector = rowCountSelector(); - m_dataCharacteristicsSelector = dataCharacteristicsSelector(); - - grid->addWidget(m_seriesTypeSelector, 0, 0); - grid->addWidget(m_columnCountSelector, 0, 1); - grid->addWidget(m_rowCountSelector, 1, 1); - grid->addWidget(m_dataCharacteristicsSelector, 1, 0); - m_labelsSelector = new QCheckBox("Labels defined"); - m_labelsSelector->setChecked(true); - grid->addWidget(m_labelsSelector, 2, 0); - grid->addWidget(addSeriesBox, 3, 1); - - setLayout(grid); -} - -QGroupBox *DataSerieDialog::seriesTypeSelector() -{ - QVBoxLayout *layout = new QVBoxLayout(); - - QRadioButton *line = new QRadioButton("Line"); - line->setChecked(true); - layout->addWidget(line); - layout->addWidget(new QRadioButton("Area")); - layout->addWidget(new QRadioButton("Pie")); - layout->addWidget(new QRadioButton("Bar")); - layout->addWidget(new QRadioButton("Stacked bar")); - layout->addWidget(new QRadioButton("Percent bar")); - layout->addWidget(new QRadioButton("Scatter")); - layout->addWidget(new QRadioButton("Spline")); - - QGroupBox *groupBox = new QGroupBox("Series type"); - groupBox->setLayout(layout); - selectRadio(groupBox, 0); - - return groupBox; -} - -QGroupBox *DataSerieDialog::columnCountSelector() -{ - QVBoxLayout *layout = new QVBoxLayout(); - - QRadioButton *radio = new QRadioButton("1"); - radio->setChecked(true); - layout->addWidget(radio); - layout->addWidget(new QRadioButton("2")); - layout->addWidget(new QRadioButton("3")); - layout->addWidget(new QRadioButton("4")); - layout->addWidget(new QRadioButton("5")); - layout->addWidget(new QRadioButton("8")); - layout->addWidget(new QRadioButton("10")); - layout->addWidget(new QRadioButton("100")); - - QGroupBox *groupBox = new QGroupBox("Column count"); - groupBox->setLayout(layout); - selectRadio(groupBox, 0); - - return groupBox; -} - -QGroupBox *DataSerieDialog::rowCountSelector() -{ - QVBoxLayout *layout = new QVBoxLayout(); - - layout->addWidget(new QRadioButton("1")); - QRadioButton *radio = new QRadioButton("10"); - radio->setChecked(true); - layout->addWidget(radio); - layout->addWidget(new QRadioButton("50")); - layout->addWidget(new QRadioButton("100")); - layout->addWidget(new QRadioButton("1000")); - layout->addWidget(new QRadioButton("10000")); - layout->addWidget(new QRadioButton("100000")); - layout->addWidget(new QRadioButton("1000000")); - - QGroupBox *groupBox = new QGroupBox("Row count"); - groupBox->setLayout(layout); - selectRadio(groupBox, 0); - - return groupBox; -} - -QGroupBox *DataSerieDialog::dataCharacteristicsSelector() -{ - QVBoxLayout *layout = new QVBoxLayout(); - - layout->addWidget(new QRadioButton("Linear")); - layout->addWidget(new QRadioButton("Constant")); - layout->addWidget(new QRadioButton("Random")); - layout->addWidget(new QRadioButton("Sin")); - layout->addWidget(new QRadioButton("Sin + random")); - - QGroupBox *groupBox = new QGroupBox("Data Characteristics"); - groupBox->setLayout(layout); - selectRadio(groupBox, 0); - - return groupBox; -} - -void DataSerieDialog::accept() -{ - accepted(radioSelection(m_seriesTypeSelector), - radioSelection(m_columnCountSelector).toInt(), - radioSelection(m_rowCountSelector).toInt(), - radioSelection(m_dataCharacteristicsSelector), - m_labelsSelector->isChecked()); - QDialog::accept(); -} - -void DataSerieDialog::selectRadio(QGroupBox *groupBox, int defaultSelection) -{ - QVBoxLayout *layout = qobject_cast(groupBox->layout()); - Q_ASSERT(layout); - Q_ASSERT(layout->count()); - - QLayoutItem *item = 0; - if (defaultSelection == -1) { - item = layout->itemAt(0); - } else if (layout->count() > defaultSelection) { - item = layout->itemAt(defaultSelection); - } - Q_ASSERT(item); - QRadioButton *radio = qobject_cast(item->widget()); - Q_ASSERT(radio); - radio->setChecked(true); -} - -QString DataSerieDialog::radioSelection(QGroupBox *groupBox) -{ - QString selection; - QVBoxLayout *layout = qobject_cast(groupBox->layout()); - Q_ASSERT(layout); - - for (int i(0); i < layout->count(); i++) { - QLayoutItem *item = layout->itemAt(i); - Q_ASSERT(item); - QRadioButton *radio = qobject_cast(item->widget()); - Q_ASSERT(radio); - if (radio->isChecked()) { - selection = radio->text(); - break; - } - } - - qDebug() << "radioSelection: " << selection; - return selection; -} diff --git a/tests/chartwidgettest/dataseriedialog.h b/tests/chartwidgettest/dataseriedialog.h deleted file mode 100644 index 9fc8cf7c..00000000 --- a/tests/chartwidgettest/dataseriedialog.h +++ /dev/null @@ -1,55 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef DATASERIEDIALOG_H -#define DATASERIEDIALOG_H - -#include - -class QGroupBox; -class QCheckBox; - -class DataSerieDialog : public QDialog -{ - Q_OBJECT -public: - explicit DataSerieDialog(QWidget *parent = 0); - -signals: - void accepted(QString series, int columnCount, int rowCount, QString dataCharacteristics, bool labelsDefined); - -public slots: - void accept(); - -private: - QGroupBox *seriesTypeSelector(); - QGroupBox *columnCountSelector(); - QGroupBox *rowCountSelector(); - QGroupBox *dataCharacteristicsSelector(); - void selectRadio(QGroupBox *groupBox, int defaultSelection); - QString radioSelection(QGroupBox *groupBox); - QGroupBox *m_seriesTypeSelector; - QGroupBox *m_columnCountSelector; - QGroupBox *m_rowCountSelector; - QCheckBox *m_labelsSelector; - QGroupBox *m_dataCharacteristicsSelector; -}; - -#endif // DATASERIEDIALOG_H diff --git a/tests/chartwidgettest/main.cpp b/tests/chartwidgettest/main.cpp deleted file mode 100644 index 6d136669..00000000 --- a/tests/chartwidgettest/main.cpp +++ /dev/null @@ -1,34 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 -#include -#include "mainwidget.h" - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - - MainWidget w; - w.resize(1000,600); - w.show(); - - return a.exec(); -} diff --git a/tests/chartwidgettest/mainwidget.cpp b/tests/chartwidgettest/mainwidget.cpp deleted file mode 100644 index eb263f90..00000000 --- a/tests/chartwidgettest/mainwidget.cpp +++ /dev/null @@ -1,380 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "mainwidget.h" -#include "dataseriedialog.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_CHARTS_USE_NAMESPACE - -MainWidget::MainWidget(QWidget *parent) : - QWidget(parent), - m_addSerieDialog(0), - m_chart(0) -{ - m_chart = new QChart(); - - // Grid layout for the controls for configuring the chart widget - QGridLayout *grid = new QGridLayout(); - QPushButton *addSeriesButton = new QPushButton("Add series"); - connect(addSeriesButton, SIGNAL(clicked()), this, SLOT(addSeries())); - grid->addWidget(addSeriesButton, 0, 1); - initBackroundCombo(grid); - initScaleControls(grid); - initThemeCombo(grid); - initCheckboxes(grid); - - // add row with empty label to make all the other rows static - grid->addWidget(new QLabel(""), grid->rowCount(), 0); - grid->setRowStretch(grid->rowCount() - 1, 1); - - // Create chart view with the chart - m_chartView = new QChartView(m_chart, this); - m_chartView->setRubberBand(QChartView::HorizonalRubberBand); - - // Another grid layout as a main layout - QGridLayout *mainLayout = new QGridLayout(); - mainLayout->addLayout(grid, 0, 0); - mainLayout->addWidget(m_chartView, 0, 1, 3, 1); - setLayout(mainLayout); -} - -// Combo box for selecting the chart's background -void MainWidget::initBackroundCombo(QGridLayout *grid) -{ - QComboBox *backgroundCombo = new QComboBox(this); - backgroundCombo->addItem("Color"); - backgroundCombo->addItem("Gradient"); - backgroundCombo->addItem("Image"); - connect(backgroundCombo, SIGNAL(currentIndexChanged(int)), - this, SLOT(backgroundChanged(int))); - - grid->addWidget(new QLabel("Background:"), grid->rowCount(), 0); - grid->addWidget(backgroundCombo, grid->rowCount() - 1, 1); -} - -// Scale related controls (auto-scale vs. manual min-max values) -void MainWidget::initScaleControls(QGridLayout *grid) -{ - m_autoScaleCheck = new QCheckBox("Automatic scaling"); - connect(m_autoScaleCheck, SIGNAL(stateChanged(int)), this, SLOT(autoScaleChanged(int))); - // Allow setting also non-sense values (like -2147483648 and 2147483647) - m_xMinSpin = new QSpinBox(); - m_xMinSpin->setMinimum(INT_MIN); - m_xMinSpin->setMaximum(INT_MAX); - m_xMinSpin->setValue(0); - connect(m_xMinSpin, SIGNAL(valueChanged(int)), this, SLOT(xMinChanged(int))); - m_xMaxSpin = new QSpinBox(); - m_xMaxSpin->setMinimum(INT_MIN); - m_xMaxSpin->setMaximum(INT_MAX); - m_xMaxSpin->setValue(10); - connect(m_xMaxSpin, SIGNAL(valueChanged(int)), this, SLOT(xMaxChanged(int))); - m_yMinSpin = new QSpinBox(); - m_yMinSpin->setMinimum(INT_MIN); - m_yMinSpin->setMaximum(INT_MAX); - m_yMinSpin->setValue(0); - connect(m_yMinSpin, SIGNAL(valueChanged(int)), this, SLOT(yMinChanged(int))); - m_yMaxSpin = new QSpinBox(); - m_yMaxSpin->setMinimum(INT_MIN); - m_yMaxSpin->setMaximum(INT_MAX); - m_yMaxSpin->setValue(10); - connect(m_yMaxSpin, SIGNAL(valueChanged(int)), this, SLOT(yMaxChanged(int))); - - grid->addWidget(m_autoScaleCheck, grid->rowCount(), 0); - grid->addWidget(new QLabel("x min:"), grid->rowCount(), 0); - grid->addWidget(m_xMinSpin, grid->rowCount() - 1, 1); - grid->addWidget(new QLabel("x max:"), grid->rowCount(), 0); - grid->addWidget(m_xMaxSpin, grid->rowCount() - 1, 1); - grid->addWidget(new QLabel("y min:"), grid->rowCount(), 0); - grid->addWidget(m_yMinSpin, grid->rowCount() - 1, 1); - grid->addWidget(new QLabel("y max:"), grid->rowCount(), 0); - grid->addWidget(m_yMaxSpin, grid->rowCount() - 1, 1); - - m_autoScaleCheck->setChecked(true); -} - -// Combo box for selecting theme -void MainWidget::initThemeCombo(QGridLayout *grid) -{ - QComboBox *chartTheme = new QComboBox(); - chartTheme->addItem("Default"); - chartTheme->addItem("Light"); - chartTheme->addItem("Blue Cerulean"); - chartTheme->addItem("Dark"); - chartTheme->addItem("Brown Sand"); - chartTheme->addItem("Blue NCS"); - chartTheme->addItem("High Contrast"); - chartTheme->addItem("Blue Icy"); - chartTheme->addItem("Qt"); - connect(chartTheme, SIGNAL(currentIndexChanged(int)), - this, SLOT(changeChartTheme(int))); - grid->addWidget(new QLabel("Chart theme:"), 8, 0); - grid->addWidget(chartTheme, 8, 1); -} - -// Different check boxes for customizing chart -void MainWidget::initCheckboxes(QGridLayout *grid) -{ - // TODO: setZoomEnabled slot has been removed from QChartView -> Re-implement zoom on/off - QCheckBox *zoomCheckBox = new QCheckBox("Drag'n drop Zoom"); -// connect(zoomCheckBox, SIGNAL(toggled(bool)), m_chartView, SLOT(setZoomEnabled(bool))); - zoomCheckBox->setChecked(true); - grid->addWidget(zoomCheckBox, grid->rowCount(), 0); - - QCheckBox *aliasCheckBox = new QCheckBox("Anti-alias"); - connect(aliasCheckBox, SIGNAL(toggled(bool)), this, SLOT(antiAliasToggled(bool))); - aliasCheckBox->setChecked(false); - grid->addWidget(aliasCheckBox, grid->rowCount(), 0); - - QCheckBox *openGLCheckBox = new QCheckBox("Use QGLWidget"); - connect(openGLCheckBox, SIGNAL(toggled(bool)), this, SLOT(openGLToggled(bool))); - openGLCheckBox->setChecked(false); - grid->addWidget(openGLCheckBox, grid->rowCount(), 0); -} - -void MainWidget::antiAliasToggled(bool enabled) -{ - m_chartView->setRenderHint(QPainter::Antialiasing, enabled); -} - -void MainWidget::openGLToggled(bool enabled) -{ - if (enabled) { - QGLFormat f = QGLFormat::defaultFormat(); - f.setSampleBuffers(true); - f.setSamples(4); - QGLFormat::setDefaultFormat(f); - QGLWidget *g = new QGLWidget(); - m_chartView->setViewport(g); - } else { - m_chartView->setViewport(0); - } -} - -void MainWidget::addSeries() -{ - if (!m_addSerieDialog) { - m_addSerieDialog = new DataSerieDialog(this); - connect(m_addSerieDialog, SIGNAL(accepted(QString,int,int,QString,bool)), - this, SLOT(addSeries(QString,int,int,QString,bool))); - } - m_addSerieDialog->exec(); -} - -QList MainWidget::generateTestData(int columnCount, int rowCount, QString dataCharacteristics) -{ - QList testData; - for (int j(0); j < columnCount; j++) { - QList newColumn; - for (int i(0); i < rowCount; i++) { - if (dataCharacteristics == "Sin") { - newColumn.append(abs(sin(3.14159265358979 / 50 * i) * 100)); - } else if (dataCharacteristics == "Sin + random") { - newColumn.append(abs(sin(3.14159265358979 / 50 * i) * 100) + (rand() % 5)); - } else if (dataCharacteristics == "Random") { - newColumn.append(rand() % 10 + (qreal) rand() / (qreal) RAND_MAX); - } else if (dataCharacteristics == "Linear") { - //newColumn.append(i * (j + 1.0)); - // TODO: temporary hack to make pie work; prevent zero values: - newColumn.append(i * (j + 1.0) + 0.1); - } else { // "constant" - newColumn.append((j + 1.0)); - } - } - testData.append(newColumn); - } - return testData; -} - -QStringList MainWidget::generateLabels(int count) -{ - QStringList result; - for (int i(0); i < count; i++) - result.append("label" + QString::number(i)); - return result; -} - -void MainWidget::addSeries(QString seriesName, int columnCount, int rowCount, QString dataCharacteristics, bool labelsEnabled) -{ - qDebug() << "addSeries: " << seriesName - << " columnCount: " << columnCount - << " rowCount: " << rowCount - << " dataCharacteristics: " << dataCharacteristics - << " labels enabled: " << labelsEnabled; - m_defaultSeriesName = seriesName; - - QList data = generateTestData(columnCount, rowCount, dataCharacteristics); - - // Line series and scatter series use similar data - if (seriesName == "Line") { - for (int j(0); j < data.count(); j ++) { - QList column = data.at(j); - QLineSeries *series = new QLineSeries(); - series->setName("line" + QString::number(j)); - for (int i(0); i < column.count(); i++) - series->append(i, column.at(i)); - m_chart->addSeries(series); - } - } else if (seriesName == "Area") { - // TODO: lower series for the area? - for (int j(0); j < data.count(); j ++) { - QList column = data.at(j); - QLineSeries *lineSeries = new QLineSeries(); - for (int i(0); i < column.count(); i++) - lineSeries->append(i, column.at(i)); - QAreaSeries *areaSeries = new QAreaSeries(lineSeries); - areaSeries->setName("area" + QString::number(j)); - m_chart->addSeries(areaSeries); - } - } else if (seriesName == "Scatter") { - for (int j(0); j < data.count(); j++) { - QList column = data.at(j); - QScatterSeries *series = new QScatterSeries(); - series->setName("scatter" + QString::number(j)); - for (int i(0); i < column.count(); i++) - series->append(i, column.at(i)); - m_chart->addSeries(series); - } - } else if (seriesName == "Pie") { - QStringList labels = generateLabels(rowCount); - for (int j(0); j < data.count(); j++) { - QPieSeries *series = new QPieSeries(); - QList column = data.at(j); - for (int i(0); i < column.count(); i++) - series->append(labels.at(i), column.at(i)); - m_chart->addSeries(series); - } - } else if (seriesName == "Bar" - || seriesName == "Stacked bar" - || seriesName == "Percent bar") { - QStringList category; - QStringList labels = generateLabels(rowCount); - foreach (QString label, labels) - category << label; - QAbstractBarSeries* series = 0; - if (seriesName == "Bar") { - series = new QBarSeries(this); - QBarCategoryAxis* axis = new QBarCategoryAxis(); - axis->append(category); - m_chart->setAxisX(axis,series); - } else if (seriesName == "Stacked bar") { - series = new QStackedBarSeries(this); - QBarCategoryAxis* axis = new QBarCategoryAxis(); - axis->append(category); - m_chart->setAxisX(axis,series); - } else { - series = new QPercentBarSeries(this); - QBarCategoryAxis* axis = new QBarCategoryAxis(); - axis->append(category); - m_chart->setAxisX(axis,series); - } - - for (int j(0); j < data.count(); j++) { - QList column = data.at(j); - QBarSet *set = new QBarSet("set" + QString::number(j)); - for (int i(0); i < column.count(); i++) - *set << column.at(i); - series->append(set); - } - - m_chart->addSeries(series); - } else if (seriesName == "Spline") { - for (int j(0); j < data.count(); j ++) { - QList column = data.at(j); - QSplineSeries *series = new QSplineSeries(); - series->setName("spline" + QString::number(j)); - for (int i(0); i < column.count(); i++) - series->append(i, column.at(i)); - m_chart->addSeries(series); - } - } - m_chart->createDefaultAxes(); -} - -void MainWidget::backgroundChanged(int itemIndex) -{ - qDebug() << "backgroundChanged: " << itemIndex; -} - -void MainWidget::autoScaleChanged(int value) -{ - if (value) { - // TODO: enable auto scaling - } else { - // TODO: set scaling manually (and disable auto scaling) - } - - m_xMinSpin->setEnabled(!value); - m_xMaxSpin->setEnabled(!value); - m_yMinSpin->setEnabled(!value); - m_yMaxSpin->setEnabled(!value); -} - -void MainWidget::xMinChanged(int value) -{ - qDebug() << "xMinChanged: " << value; -} - -void MainWidget::xMaxChanged(int value) -{ - qDebug() << "xMaxChanged: " << value; -} - -void MainWidget::yMinChanged(int value) -{ - qDebug() << "yMinChanged: " << value; -} - -void MainWidget::yMaxChanged(int value) -{ - qDebug() << "yMaxChanged: " << value; -} - -void MainWidget::changeChartTheme(int themeIndex) -{ - qDebug() << "changeChartTheme: " << themeIndex; - if (themeIndex == 0) - m_chart->setTheme(QChart::ChartThemeLight); - else - m_chart->setTheme((QChart::ChartTheme) (themeIndex - 1)); -} diff --git a/tests/chartwidgettest/mainwidget.h b/tests/chartwidgettest/mainwidget.h deleted file mode 100644 index 4549c0d4..00000000 --- a/tests/chartwidgettest/mainwidget.h +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef MAINWIDGET_H -#define MAINWIDGET_H - -#include -#include -#include -#include - -class QSpinBox; -class QCheckBox; -class QGridLayout; - -QT_CHARTS_USE_NAMESPACE - -#define RealList QList -class DataSerieDialog; - -class MainWidget : public QWidget -{ - Q_OBJECT -public: - explicit MainWidget(QWidget *parent = 0); - -signals: - -private: - void initBackroundCombo(QGridLayout *grid); - void initScaleControls(QGridLayout *grid); - void initThemeCombo(QGridLayout *grid); - void initCheckboxes(QGridLayout *grid); - -private slots: - void addSeries(); - void addSeries(QString series, int columnCount, int rowCount, QString dataCharacteristics, bool labelsEnabled); - void backgroundChanged(int itemIndex); - void autoScaleChanged(int value); - void xMinChanged(int value); - void xMaxChanged(int value); - void yMinChanged(int value); - void yMaxChanged(int value); - void antiAliasToggled(bool enabled); - void openGLToggled(bool enabled); - void changeChartTheme(int themeIndex); - QList generateTestData(int columnCount, int rowCount, QString dataCharacteristics); - QStringList generateLabels(int count); - -private: - DataSerieDialog *m_addSerieDialog; - QChart *m_chart; - QChartView *m_chartView; - QCheckBox *m_autoScaleCheck; - QSpinBox *m_xMinSpin; - QSpinBox *m_xMaxSpin; - QSpinBox *m_yMinSpin; - QSpinBox *m_yMaxSpin; - QString m_defaultSeriesName; - QGridLayout *m_scatterLayout; -}; - -#endif // MAINWIDGET_H diff --git a/tests/manual/boxplottester/boxplottester.pro b/tests/manual/boxplottester/boxplottester.pro new file mode 100644 index 00000000..1a8681fe --- /dev/null +++ b/tests/manual/boxplottester/boxplottester.pro @@ -0,0 +1,18 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +TEMPLATE = app + +QT += charts +QT += core gui widgets + +SOURCES += main.cpp \ + mainwidget.cpp \ + customtablemodel.cpp \ + pentool.cpp + +HEADERS += \ + mainwidget.h \ + customtablemodel.h \ + pentool.h diff --git a/tests/manual/boxplottester/customtablemodel.cpp b/tests/manual/boxplottester/customtablemodel.cpp new file mode 100644 index 00000000..8724dd56 --- /dev/null +++ b/tests/manual/boxplottester/customtablemodel.cpp @@ -0,0 +1,147 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "customtablemodel.h" +#include +#include +#include +#include + +const QString categories[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Nov", "Dec"}; + +CustomTableModel::CustomTableModel(QObject *parent) : + QAbstractTableModel(parent) +{ + m_columnCount = 6; + m_rowCount = 5; + QVector* dataVec_Jan = new QVector(m_rowCount); + dataVec_Jan->insert(0, 3.0); + dataVec_Jan->insert(1, 4.0); + dataVec_Jan->insert(2, 4.4); + dataVec_Jan->insert(3, 6.0); + dataVec_Jan->insert(4, 7.0); + m_data.append(dataVec_Jan); + + QVector* dataVec_Feb = new QVector(m_rowCount); + dataVec_Feb->insert(0, 5.0); + dataVec_Feb->insert(1, 6.0); + dataVec_Feb->insert(2, 7.5); + dataVec_Feb->insert(3, 8.0); + dataVec_Feb->insert(4, 12.0); + m_data.append(dataVec_Feb); + + QVector* dataVec_Mar = new QVector(m_rowCount); + dataVec_Mar->insert(0, 3.0); + dataVec_Mar->insert(1, 4.0); + dataVec_Mar->insert(2, 5.7); + dataVec_Mar->insert(3, 8.0); + dataVec_Mar->insert(4, 9.0); + m_data.append(dataVec_Mar); + + QVector* dataVec_Apr = new QVector(m_rowCount); + dataVec_Apr->insert(0, 5.0); + dataVec_Apr->insert(1, 6.0); + dataVec_Apr->insert(2, 6.8); + dataVec_Apr->insert(3, 7.0); + dataVec_Apr->insert(4, 8.0); + m_data.append(dataVec_Apr); + + QVector* dataVec_May = new QVector(m_rowCount); + dataVec_May->insert(0, 4.0); + dataVec_May->insert(1, 5.0); + dataVec_May->insert(2, 5.2); + dataVec_May->insert(3, 6.0); + dataVec_May->insert(4, 7.0); + m_data.append(dataVec_May); + + QVector* dataVec_Jun = new QVector(m_rowCount); + dataVec_Jun->insert(0, 4.0); + dataVec_Jun->insert(1, 7.0); + dataVec_Jun->insert(2, 8.2); + dataVec_Jun->insert(3, 9.0); + dataVec_Jun->insert(4, 10.0); + m_data.append(dataVec_Jun); +} + +CustomTableModel::~CustomTableModel() +{ + qDeleteAll(m_data); +} + +int CustomTableModel::rowCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent) + return m_rowCount; +} + +int CustomTableModel::columnCount(const QModelIndex &parent) const +{ + Q_UNUSED(parent) + return m_data.count(); +} + +QVariant CustomTableModel::headerData(int section, Qt::Orientation orientation, int role) const +{ + if (role != Qt::DisplayRole) + return QVariant(); + + if (orientation == Qt::Horizontal) + return categories[section]; + else + return QString("%1").arg(section + 1); +} + +QVariant CustomTableModel::data(const QModelIndex &index, int role) const +{ + if (role == Qt::DisplayRole) { + return m_data[index.column()]->at(index.row()); + } else if (role == Qt::EditRole) { + return m_data[index.column()]->at(index.row()); + } else if (role == Qt::BackgroundRole) { + QRect rect; + foreach (rect, m_mapping) + if (rect.contains(index.column(), index.row())) + return QColor(m_mapping.key(rect)); + + // cell not mapped return white color + return QColor(Qt::white); + } + return QVariant(); +} + +bool CustomTableModel::setData(const QModelIndex &index, const QVariant &value, int role) +{ + if (index.isValid() && role == Qt::EditRole) { + m_data[index.column()]->replace(index.row(), value.toDouble()); + emit dataChanged(index, index); + return true; + } + return false; +} + +Qt::ItemFlags CustomTableModel::flags(const QModelIndex &index) const +{ + return QAbstractItemModel::flags(index) | Qt::ItemIsEditable; +} + +void CustomTableModel::addMapping(QString color, QRect area) +{ + m_mapping.insertMulti(color, area); +} diff --git a/tests/manual/boxplottester/customtablemodel.h b/tests/manual/boxplottester/customtablemodel.h new file mode 100644 index 00000000..0f1fb9df --- /dev/null +++ b/tests/manual/boxplottester/customtablemodel.h @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef CUSTOMTABLEMODEL_H +#define CUSTOMTABLEMODEL_H + +#include +#include +#include + +class CustomTableModel : public QAbstractTableModel +{ + Q_OBJECT +public: + explicit CustomTableModel(QObject *parent = 0); + virtual ~CustomTableModel(); + + int rowCount(const QModelIndex &parent = QModelIndex()) const; + int columnCount(const QModelIndex &parent = QModelIndex()) const; + QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; + QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const; + bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole); + Qt::ItemFlags flags(const QModelIndex &index) const; + + void addMapping(QString color, QRect area); + void clearMapping() { m_mapping.clear(); } + +private: + QList *> m_data; + QHash m_mapping; + int m_columnCount; + int m_rowCount; +}; + +#endif // CUSTOMTABLEMODEL_H diff --git a/tests/manual/boxplottester/main.cpp b/tests/manual/boxplottester/main.cpp new file mode 100644 index 00000000..6d136669 --- /dev/null +++ b/tests/manual/boxplottester/main.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +#include +#include "mainwidget.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + MainWidget w; + w.resize(1000,600); + w.show(); + + return a.exec(); +} diff --git a/tests/manual/boxplottester/mainwidget.cpp b/tests/manual/boxplottester/mainwidget.cpp new file mode 100644 index 00000000..784512d3 --- /dev/null +++ b/tests/manual/boxplottester/mainwidget.cpp @@ -0,0 +1,482 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "mainwidget.h" +#include "customtablemodel.h" +#include "pentool.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE + +static const QString allCategories[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; +static const int maxCategories = 12; + +MainWidget::MainWidget(QWidget *parent) : + QWidget(parent), + m_chart(0), + m_axis(0), + m_rowPos(0), + m_seriesCount(0) +{ + m_chart = new QChart(); + + m_penTool = new PenTool("Whiskers pen", this); + + // Grid layout for the controls for configuring the chart widget + QGridLayout *grid = new QGridLayout(); + + // Create add a series button + QPushButton *addSeriesButton = new QPushButton("Add a series"); + connect(addSeriesButton, SIGNAL(clicked()), this, SLOT(addSeries())); + grid->addWidget(addSeriesButton, m_rowPos++, 1); + + // Create remove a series button + QPushButton *removeSeriesButton = new QPushButton("Remove a series"); + connect(removeSeriesButton, SIGNAL(clicked()), this, SLOT(removeSeries())); + grid->addWidget(removeSeriesButton, m_rowPos++, 1); + + // Create add a single box button + QPushButton *addBoxButton = new QPushButton("Add a box"); + connect(addBoxButton, SIGNAL(clicked()), this, SLOT(addBox())); + grid->addWidget(addBoxButton, m_rowPos++, 1); + + // Create insert a box button + QPushButton *insertBoxButton = new QPushButton("Insert a box"); + connect(insertBoxButton, SIGNAL(clicked()), this, SLOT(insertBox())); + grid->addWidget(insertBoxButton, m_rowPos++, 1); + + // Create add a single box button + QPushButton *removeBoxButton = new QPushButton("Remove a box"); + connect(removeBoxButton, SIGNAL(clicked()), this, SLOT(removeBox())); + grid->addWidget(removeBoxButton, m_rowPos++, 1); + + // Create clear button + QPushButton *clearButton = new QPushButton("Clear"); + connect(clearButton, SIGNAL(clicked()), this, SLOT(clear())); + grid->addWidget(clearButton, m_rowPos++, 1); + + // Create clear button + QPushButton *clearBoxButton = new QPushButton("ClearBox"); + connect(clearBoxButton, SIGNAL(clicked()), this, SLOT(clearBox())); + grid->addWidget(clearBoxButton, m_rowPos++, 1); + + // Create set brush button + QPushButton *setBrushButton = new QPushButton("Set brush"); + connect(setBrushButton, SIGNAL(clicked()), this, SLOT(setBrush())); + grid->addWidget(setBrushButton, m_rowPos++, 1); + + // Create set whiskers pen button + QPushButton *setWhiskersButton = new QPushButton("Whiskers pen"); + connect(setWhiskersButton, SIGNAL(clicked()), m_penTool, SLOT(show())); + connect(m_penTool, SIGNAL(changed()), this, SLOT(changePen())); + grid->addWidget(setWhiskersButton, m_rowPos++, 1); + + // Box width setting + m_boxWidthSB = new QDoubleSpinBox(); + m_boxWidthSB->setMinimum(-1.0); + m_boxWidthSB->setMaximum(2.0); + m_boxWidthSB->setSingleStep(0.1); + m_boxWidthSB->setValue(0.5); + grid->addWidget(new QLabel("Box width:"), m_rowPos, 0); + grid->addWidget(m_boxWidthSB, m_rowPos++, 1); + connect(m_boxWidthSB, SIGNAL(valueChanged(double)), this, SLOT(setBoxWidth(double))); + + initThemeCombo(grid); + initCheckboxes(grid); + + QTableView *tableView = new QTableView; + m_model = new CustomTableModel(tableView); + tableView->setModel(m_model); + tableView->setMaximumWidth(200); + grid->addWidget(tableView, m_rowPos++, 0, 3, 2, Qt::AlignLeft); + tableView->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + tableView->verticalHeader()->setSectionResizeMode(QHeaderView::Stretch); + + // add row with empty label to make all the other rows static + grid->addWidget(new QLabel(""), grid->rowCount(), 0); + grid->setRowStretch(grid->rowCount() - 1, 1); + + // Create chart view with the chart + m_chartView = new QChartView(m_chart, this); + + // As a default antialiasing is off + m_chartView->setRenderHint(QPainter::Antialiasing, false); + + // Another grid layout as a main layout + QGridLayout *mainLayout = new QGridLayout(); + mainLayout->addLayout(grid, 0, 0); + mainLayout->addWidget(m_chartView, 0, 1, 3, 1); + setLayout(mainLayout); + + legendToggled(false); + animationToggled(false); +} + +// Combo box for selecting theme +void MainWidget::initThemeCombo(QGridLayout *grid) +{ + QComboBox *chartTheme = new QComboBox(); + chartTheme->addItem("Default"); + chartTheme->addItem("Light"); + chartTheme->addItem("Blue Cerulean"); + chartTheme->addItem("Dark"); + chartTheme->addItem("Brown Sand"); + chartTheme->addItem("Blue NCS"); + chartTheme->addItem("High Contrast"); + chartTheme->addItem("Blue Icy"); + chartTheme->addItem("Qt"); + connect(chartTheme, SIGNAL(currentIndexChanged(int)), + this, SLOT(changeChartTheme(int))); + grid->addWidget(new QLabel("Chart theme:"), m_rowPos, 0); + grid->addWidget(chartTheme, m_rowPos++, 1); +} + +// Different check boxes for customizing chart +void MainWidget::initCheckboxes(QGridLayout *grid) +{ + QCheckBox *animationCheckBox = new QCheckBox("Animation"); + connect(animationCheckBox, SIGNAL(toggled(bool)), this, SLOT(animationToggled(bool))); + animationCheckBox->setChecked(false); + grid->addWidget(animationCheckBox, m_rowPos++, 0); + + QCheckBox *legendCheckBox = new QCheckBox("Legend"); + connect(legendCheckBox, SIGNAL(toggled(bool)), this, SLOT(legendToggled(bool))); + legendCheckBox->setChecked(false); + grid->addWidget(legendCheckBox, m_rowPos++, 0); + + QCheckBox *titleCheckBox = new QCheckBox("Title"); + connect(titleCheckBox, SIGNAL(toggled(bool)), this, SLOT(titleToggled(bool))); + titleCheckBox->setChecked(false); + grid->addWidget(titleCheckBox, m_rowPos++, 0); + + QCheckBox *antialiasingCheckBox = new QCheckBox("Antialiasing"); + connect(antialiasingCheckBox, SIGNAL(toggled(bool)), this, SLOT(antialiasingToggled(bool))); + antialiasingCheckBox->setChecked(false); + grid->addWidget(antialiasingCheckBox, m_rowPos++, 0); + + QCheckBox *modelMapperCheckBox = new QCheckBox("Use model mapper"); + connect(modelMapperCheckBox, SIGNAL(toggled(bool)), this, SLOT(modelMapperToggled(bool))); + modelMapperCheckBox->setChecked(false); + grid->addWidget(modelMapperCheckBox, m_rowPos++, 0); + + m_boxOutlined = new QCheckBox("Box outlined"); + connect(m_boxOutlined, SIGNAL(toggled(bool)), this, SLOT(boxOutlineToggled(bool))); + m_boxOutlined->setChecked(true); + grid->addWidget(m_boxOutlined, m_rowPos++, 0); +} + +void MainWidget::updateAxis(int categoryCount) +{ + if (!m_axis) { + m_chart->createDefaultAxes(); + m_axis = new QBarCategoryAxis(); + } + QStringList categories; + for (int i = 0; i < categoryCount; i++) + categories << allCategories[i]; + m_axis->setCategories(categories); +} + +void MainWidget::addSeries() +{ + qDebug() << "BoxPlotTester::MainWidget::addSeries()"; + + if (m_seriesCount > 9) + return; + + // Initial data + QBoxSet *set0 = new QBoxSet(); + QBoxSet *set1 = new QBoxSet(); + QBoxSet *set2 = new QBoxSet(); + QBoxSet *set3 = new QBoxSet(); + QBoxSet *set4 = new QBoxSet(); + QBoxSet *set5 = new QBoxSet(); + + // low bot med top upp + *set0 << -1 << 2 << 4 << 13 << 15; + *set1 << 5 << 6 << 7.5 << 8 << 12; + *set2 << 3 << 5 << 5.7 << 8 << 9; + *set3 << 5 << 6 << 6.8 << 7 << 8; + *set4 << 4 << 5 << 5.2 << 6 << 7; + *set5 << 4 << 7 << 8.2 << 9 << 10; + + m_series[m_seriesCount] = new QBoxPlotSeries(); + m_series[m_seriesCount]->append(set0); + m_series[m_seriesCount]->append(set1); + m_series[m_seriesCount]->append(set2); + m_series[m_seriesCount]->append(set3); + m_series[m_seriesCount]->append(set4); + m_series[m_seriesCount]->append(set5); + m_series[m_seriesCount]->setName("Box & Whiskers"); + + connect(m_series[m_seriesCount], SIGNAL(clicked(QBoxSet*)), this, SLOT(boxClicked(QBoxSet*))); + connect(m_series[m_seriesCount], SIGNAL(hovered(bool, QBoxSet*)), this, SLOT(boxHovered(bool, QBoxSet*))); + connect(set1, SIGNAL(clicked()), this, SLOT(singleBoxClicked())); + connect(set2, SIGNAL(hovered(bool)), this, SLOT(singleBoxHovered(bool))); + + m_series[m_seriesCount]->setBoxOutlineVisible(m_boxOutlined->checkState()); + m_series[m_seriesCount]->setBoxWidth(m_boxWidthSB->value()); + + m_chart->addSeries(m_series[m_seriesCount]); + + updateAxis(m_series[0]->count()); + m_chart->setAxisX(m_axis, m_series[m_seriesCount]); + + m_seriesCount++; +} + +void MainWidget::removeSeries() +{ + qDebug() << "BoxPlotTester::MainWidget::removeSeries()"; + + if (m_seriesCount > 0) { + m_seriesCount--; + m_chart->removeSeries(m_series[m_seriesCount]); + delete m_series[m_seriesCount]; + m_series[m_seriesCount] = 0; + } else { + qDebug() << "Create a series first"; + } +} + +void MainWidget::addBox() +{ + qDebug() << "BoxPlotTester::MainWidget::addBox()"; + + if (m_seriesCount > 0 && m_series[0]->count() < maxCategories) { + QBoxSet *newSet = new QBoxSet(); + newSet->setValue(QBoxSet::LowerExtreme, 5.0); + newSet->setValue(QBoxSet::LowerQuartile, 6.0); + newSet->setValue(QBoxSet::Median, 6.8); + newSet->setValue(QBoxSet::UpperQuartile, 7.0); + newSet->setValue(QBoxSet::UpperExtreme, 8.0); + + updateAxis(m_series[0]->count() + 1); + + m_series[0]->append(newSet); + } +} + +void MainWidget::insertBox() +{ + qDebug() << "BoxPlotTester::MainWidget::insertBox()"; + + if (m_seriesCount > 0 && m_series[0]->count() < maxCategories) { + updateAxis(m_series[0]->count() + 1); + for (int i = 0; i < m_seriesCount; i++) { + QBoxSet *newSet = new QBoxSet(); + *newSet << 2 << 6 << 6.8 << 7 << 10; + m_series[i]->insert(1, newSet); + } + } +} + +void MainWidget::removeBox() +{ + qDebug() << "BoxPlotTester::MainWidget::removeBox"; + + if (m_seriesCount > 0) { + for (int i = 0; i < m_seriesCount; i++) { + qDebug() << "m_series[i]->count() = " << m_series[i]->count(); + if (m_series[i]->count()) { + QList sets = m_series[i]->boxSets(); + m_series[i]->remove(sets.at(m_series[i]->count() - 1)); + } + } + + updateAxis(m_series[0]->count()); + } else { + qDebug() << "Create a series first"; + } +} + +void MainWidget::clear() +{ + qDebug() << "BoxPlotTester::MainWidget::clear"; + + if (m_seriesCount > 0) + m_series[0]->clear(); + else + qDebug() << "Create a series first"; +} + +void MainWidget::clearBox() +{ + qDebug() << "BoxPlotTester::MainWidget::clearBox"; + + if (m_seriesCount > 0) { + QList sets = m_series[0]->boxSets(); + if (sets.count() > 1) + sets.at(1)->clear(); + else + qDebug() << "Create a series with at least two items first"; + } else { + qDebug() << "Create a series first"; + } +} + +void MainWidget::setBrush() +{ + qDebug() << "BoxPlotTester::MainWidget::setBrush"; + + if (m_seriesCount > 0) { + QList sets = m_series[0]->boxSets(); + if (sets.count() > 1) + sets.at(1)->setBrush(QBrush(QColor(Qt::yellow))); + else + qDebug() << "Create a series with at least two items first"; + } else { + qDebug() << "Create a series first"; + } +} + +void MainWidget::animationToggled(bool enabled) +{ + qDebug() << "BoxPlotTester::Animation toggled to " << enabled; + if (enabled) + m_chart->setAnimationOptions(QChart::SeriesAnimations); + else + m_chart->setAnimationOptions(QChart::NoAnimation); +} + +void MainWidget::legendToggled(bool enabled) +{ + qDebug() << "BoxPlotTester::Legend toggled to " << enabled; + m_chart->legend()->setVisible(enabled); + if (enabled) + m_chart->legend()->setAlignment(Qt::AlignBottom); +} + +void MainWidget::titleToggled(bool enabled) +{ + qDebug() << "BoxPlotTester::Title toggled to " << enabled; + if (enabled) + m_chart->setTitle("Simple boxplotchart example"); + else + m_chart->setTitle(""); +} + +void MainWidget::antialiasingToggled(bool enabled) +{ + qDebug() << "BoxPlotTester::antialiasingToggled toggled to " << enabled; + m_chartView->setRenderHint(QPainter::Antialiasing, enabled); +} + +void MainWidget::boxOutlineToggled(bool visible) +{ + qDebug() << "BoxPlotTester::boxOutlineToggled toggled to " << visible; + for (int i = 0; i < m_seriesCount; i++) + m_series[i]->setBoxOutlineVisible(visible); +} + +void MainWidget::modelMapperToggled(bool enabled) +{ + if (enabled) { + m_series[m_seriesCount] = new QBoxPlotSeries(); + + int first = 0; + int count = 5; + QVBoxPlotModelMapper *mapper = new QVBoxPlotModelMapper(this); + mapper->setFirstBoxSetColumn(0); + mapper->setLastBoxSetColumn(5); + mapper->setFirstRow(first); + mapper->setRowCount(count); + mapper->setSeries(m_series[m_seriesCount]); + mapper->setModel(m_model); + m_chart->addSeries(m_series[m_seriesCount]); + + m_seriesCount++; + } else { + removeSeries(); + } +} + +void MainWidget::changeChartTheme(int themeIndex) +{ + qDebug() << "BoxPlotTester::changeChartTheme: " << themeIndex; + if (themeIndex == 0) + m_chart->setTheme(QChart::ChartThemeLight); + else + m_chart->setTheme((QChart::ChartTheme) (themeIndex - 1)); +} + +void MainWidget::boxClicked(QBoxSet *set) +{ + qDebug() << "boxClicked, median = " << set->at(QBoxSet::Median); +} + +void MainWidget::boxHovered(bool state, QBoxSet *set) +{ + if (state) + qDebug() << "box median " << set->at(QBoxSet::Median) << " hover started"; + else + qDebug() << "box median " << set->at(QBoxSet::Median) << " hover ended"; +} + +void MainWidget::singleBoxClicked() +{ + qDebug() << "singleBoxClicked"; +} + +void MainWidget::singleBoxHovered(bool state) +{ + if (state) + qDebug() << "single box hover started"; + else + qDebug() << "single box hover ended"; +} + +void MainWidget::changePen() +{ + qDebug() << "changePen() = " << m_penTool->pen(); + for (int i = 0; i < m_seriesCount; i++) + m_series[i]->setPen(m_penTool->pen()); +} + +void MainWidget::setBoxWidth(double width) +{ + qDebug() << "setBoxWidth to " << width; + + for (int i = 0; i < m_seriesCount; i++) + m_series[i]->setBoxWidth(qreal(width)); +} diff --git a/tests/manual/boxplottester/mainwidget.h b/tests/manual/boxplottester/mainwidget.h new file mode 100644 index 00000000..cbb2cd38 --- /dev/null +++ b/tests/manual/boxplottester/mainwidget.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef MAINWIDGET_H +#define MAINWIDGET_H + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +class QGridLayout; +class CustomTableModel; +class PenTool; + +QT_CHARTS_USE_NAMESPACE + +class MainWidget : public QWidget +{ + Q_OBJECT +public: + explicit MainWidget(QWidget *parent = 0); + +signals: + +private: + void initThemeCombo(QGridLayout *grid); + void initCheckboxes(QGridLayout *grid); + void updateAxis(int categoryCount); + +private slots: + void addSeries(); + void removeSeries(); + void addBox(); + void insertBox(); + void removeBox(); + void clear(); + void clearBox(); + void setBrush(); + void animationToggled(bool enabled); + void legendToggled(bool enabled); + void titleToggled(bool enabled); + void modelMapperToggled(bool enabled); + void changeChartTheme(int themeIndex); + void boxClicked(QBoxSet *set); + void boxHovered(bool state, QBoxSet *set); + void singleBoxClicked(); + void singleBoxHovered(bool state); + void changePen(); + void antialiasingToggled(bool); + void boxOutlineToggled(bool); + void setBoxWidth(double width); + +private: + QChart *m_chart; + QChartView *m_chartView; + QGridLayout *m_scatterLayout; + QBarCategoryAxis *m_axis; + CustomTableModel *m_model; + PenTool *m_penTool; + int m_rowPos; + int m_seriesCount; + QBoxPlotSeries *m_series[10]; + QCheckBox *m_boxOutlined; + QDoubleSpinBox *m_boxWidthSB; +}; + +#endif // MAINWIDGET_H diff --git a/tests/manual/boxplottester/pentool.cpp b/tests/manual/boxplottester/pentool.cpp new file mode 100644 index 00000000..b827039f --- /dev/null +++ b/tests/manual/boxplottester/pentool.cpp @@ -0,0 +1,141 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "pentool.h" +#include +#include +#include +#include +#include + +PenTool::PenTool(QString title, QWidget *parent) + : QWidget(parent) +{ + setWindowTitle(title); + setWindowFlags(Qt::Tool); + + m_colorButton = new QPushButton(); + + m_widthSpinBox = new QDoubleSpinBox(); + + m_styleCombo = new QComboBox(); + m_styleCombo->addItem("NoPen"); + m_styleCombo->addItem("SolidLine"); + m_styleCombo->addItem("DashLine"); + m_styleCombo->addItem("DotLine"); + m_styleCombo->addItem("DashDotLine"); + m_styleCombo->addItem("DashDotDotLine"); + + m_capStyleCombo = new QComboBox(); + m_capStyleCombo->addItem("FlatCap", Qt::FlatCap); + m_capStyleCombo->addItem("SquareCap", Qt::SquareCap); + m_capStyleCombo->addItem("RoundCap", Qt::RoundCap); + + m_joinStyleCombo = new QComboBox(); + m_joinStyleCombo->addItem("MiterJoin", Qt::MiterJoin); + m_joinStyleCombo->addItem("BevelJoin", Qt::BevelJoin); + m_joinStyleCombo->addItem("RoundJoin", Qt::RoundJoin); + m_joinStyleCombo->addItem("SvgMiterJoin", Qt::SvgMiterJoin); + + QFormLayout *layout = new QFormLayout(); + layout->addRow("Color", m_colorButton); + layout->addRow("Width", m_widthSpinBox); + layout->addRow("Style", m_styleCombo); + layout->addRow("Cap style", m_capStyleCombo); + layout->addRow("Join style", m_joinStyleCombo); + setLayout(layout); + + connect(m_colorButton, SIGNAL(clicked()), this, SLOT(showColorDialog())); + connect(m_widthSpinBox, SIGNAL(valueChanged(double)), this, SLOT(updateWidth(double))); + connect(m_styleCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateStyle(int))); + connect(m_capStyleCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateCapStyle(int))); + connect(m_joinStyleCombo, SIGNAL(currentIndexChanged(int)), this, SLOT(updateJoinStyle(int))); +} + +void PenTool::setPen(const QPen &pen) +{ + m_pen = pen; + m_colorButton->setText(m_pen.color().name()); + m_widthSpinBox->setValue(m_pen.widthF()); + m_styleCombo->setCurrentIndex(m_pen.style()); // index matches the enum + m_capStyleCombo->setCurrentIndex(m_capStyleCombo->findData(m_pen.capStyle())); + m_joinStyleCombo->setCurrentIndex(m_joinStyleCombo->findData(m_pen.joinStyle())); +} + +QPen PenTool::pen() const +{ + return m_pen; +} + +QString PenTool::name() +{ + return name(m_pen); +} + +QString PenTool::name(const QPen &pen) +{ + return pen.color().name() + ":" + QString::number(pen.widthF()); +} + +void PenTool::showColorDialog() +{ + QColorDialog dialog(m_pen.color()); + dialog.show(); + dialog.exec(); + m_pen.setColor(dialog.selectedColor()); + m_colorButton->setText(m_pen.color().name()); + emit changed(); +} + +void PenTool::updateWidth(double width) +{ + if (!qFuzzyCompare((qreal) width, m_pen.widthF())) { + m_pen.setWidthF(width); + emit changed(); + } +} + +void PenTool::updateStyle(int style) +{ + if (m_pen.style() != style) { + m_pen.setStyle((Qt::PenStyle) style); + emit changed(); + } +} + +void PenTool::updateCapStyle(int index) +{ + Qt::PenCapStyle capStyle = (Qt::PenCapStyle) m_capStyleCombo->itemData(index).toInt(); + if (m_pen.capStyle() != capStyle) { + m_pen.setCapStyle(capStyle); + emit changed(); + } +} + +void PenTool::updateJoinStyle(int index) +{ + Qt::PenJoinStyle joinStyle = (Qt::PenJoinStyle) m_joinStyleCombo->itemData(index).toInt(); + if (m_pen.joinStyle() != joinStyle) { + m_pen.setJoinStyle(joinStyle); + emit changed(); + } +} + +#include "moc_pentool.cpp" diff --git a/tests/manual/boxplottester/pentool.h b/tests/manual/boxplottester/pentool.h new file mode 100644 index 00000000..13b4064d --- /dev/null +++ b/tests/manual/boxplottester/pentool.h @@ -0,0 +1,60 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ +#ifndef PENTOOL_H +#define PENTOOL_H + +#include +#include + +class QPushButton; +class QDoubleSpinBox; +class QComboBox; + +class PenTool : public QWidget +{ + Q_OBJECT + +public: + explicit PenTool(QString title, QWidget *parent = 0); + void setPen(const QPen &pen); + QPen pen() const; + QString name(); + static QString name(const QPen &pen); + +Q_SIGNALS: + void changed(); + +public Q_SLOTS: + void showColorDialog(); + void updateWidth(double width); + void updateStyle(int style); + void updateCapStyle(int index); + void updateJoinStyle(int index); + +private: + QPen m_pen; + QPushButton *m_colorButton; + QDoubleSpinBox *m_widthSpinBox; + QComboBox *m_styleCombo; + QComboBox *m_capStyleCombo; + QComboBox *m_joinStyleCombo; +}; + +#endif // PENTOOL_H diff --git a/tests/manual/chartdesigner/brushwidget.cpp b/tests/manual/chartdesigner/brushwidget.cpp new file mode 100644 index 00000000..6e615001 --- /dev/null +++ b/tests/manual/chartdesigner/brushwidget.cpp @@ -0,0 +1,33 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "brushwidget.h" + +BrushWidget::BrushWidget(QWidget *parent):QWidget(parent) +{ + + +} + +BrushWidget::~BrushWidget() +{ + +} + diff --git a/tests/manual/chartdesigner/brushwidget.h b/tests/manual/chartdesigner/brushwidget.h new file mode 100644 index 00000000..7f570cb5 --- /dev/null +++ b/tests/manual/chartdesigner/brushwidget.h @@ -0,0 +1,39 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef BRUSHWIDGET_H +#define BRUSHWIDGET_H + +#include + +class BrushWidget: public QWidget +{ +public: + explicit BrushWidget(QWidget *parent = 0); + ~BrushWidget(); + + QBrush brush() const { return m_brush; } + void setBrush(const QBrush &brush); + +private: + QBrush m_brush; +}; + +#endif /* BRUSHWIDGET_H */ diff --git a/tests/manual/chartdesigner/chartdesigner.pro b/tests/manual/chartdesigner/chartdesigner.pro new file mode 100644 index 00000000..0594b37f --- /dev/null +++ b/tests/manual/chartdesigner/chartdesigner.pro @@ -0,0 +1,24 @@ +!include( ../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +TEMPLATE = app +QT += core gui + +SOURCES += \ + brushwidget.cpp \ + main.cpp \ + mainwindow.cpp \ + objectinspectorwidget.cpp \ + penwidget.cpp \ + engine.cpp + + +HEADERS += \ + brushwidget.h \ + mainwindow.h \ + objectinspectorwidget.h \ + penwidget.h \ + engine.h + +!system_build:mac: QMAKE_POST_LINK += "$$MAC_POST_LINK_PREFIX $$MAC_TESTS_BIN_DIR" diff --git a/tests/manual/chartdesigner/engine.cpp b/tests/manual/chartdesigner/engine.cpp new file mode 100644 index 00000000..b7ea9e93 --- /dev/null +++ b/tests/manual/chartdesigner/engine.cpp @@ -0,0 +1,343 @@ +/**************************************************************************** + ** + ** Copyright (C) 2014 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 Enterprise Charts Add-on. + ** + ** $QT_BEGIN_LICENSE$ + ** Licensees holding valid Qt Enterprise licenses may use this file in + ** accordance with the Qt Enterprise 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 "engine.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + + +const qint32 MAGIC_NUMBER = 0x66666666; + +Engine::Engine(QObject* parent) : + QObject(parent), m_count(10), m_chart(new QChart()), m_model(0), m_selection(0) +{ + createModels(); +} + +Engine::~Engine() +{ + delete m_chart; + delete m_selection; + delete m_model; +} + +void Engine::createModels() +{ + m_model = new QStandardItemModel(m_count, m_count); + m_model->setHorizontalHeaderLabels( + QStringList() << "A" << "B" << "C" << "D" << "E" << "F" << "G" << "H" << "I" << "J"); + m_model->setVerticalHeaderLabels( + QStringList() << "1" << "2" << "3" << "4" << "5" << "6" << "7" << "8" << "9" << "10"); + m_selection = new QItemSelectionModel(m_model); + +} + +QList Engine::addSeries(QAbstractSeries::SeriesType type) +{ + const QModelIndexList& list = m_selection->selectedIndexes(); + + QMap columns; + + foreach (const QModelIndex& index, list) { + columns.insertMulti(index.column(), index); + } + + QList keys = columns.uniqueKeys(); + + QModelIndexList rows = columns.values(keys.first()); + + int minRow = m_count + 1; + int maxRow = -1; + + foreach (const QModelIndex& index, rows) { + minRow = qMin(index.row(), minRow); + maxRow = qMax(index.row(), maxRow); + } + + QList result; + QColor color; + + switch (type) { + + case QAbstractSeries::SeriesTypeLine: + { + for (int i = 1; i < keys.count(); ++i) { + QLineSeries *line = new QLineSeries(); + setupXYSeries(line, keys, i, minRow, maxRow); + result << line; + } + break; + } + case QAbstractSeries::SeriesTypeSpline: + { + for (int i = 1; i < keys.count(); ++i) { + QSplineSeries *line = new QSplineSeries(); + setupXYSeries(line, keys, i, minRow, maxRow); + result << line; + } + break; + } + case QAbstractSeries::SeriesTypeScatter: + { + for (int i = 1; i < keys.count(); ++i) { + QScatterSeries *line = new QScatterSeries(); + setupXYSeries(line, keys, i, minRow, maxRow); + result << line; + } + break; + } + case QAbstractSeries::SeriesTypeBar: + { + QBarSeries *bar = new QBarSeries(); + setupBarSeries(bar,keys,minRow,maxRow); + result << bar; + break; + } + case QAbstractSeries::SeriesTypePercentBar: + { + QPercentBarSeries *bar = new QPercentBarSeries(); + setupBarSeries(bar,keys,minRow,maxRow); + result << bar; + break; + } + case QAbstractSeries::SeriesTypeStackedBar: + { + QStackedBarSeries *bar = new QStackedBarSeries(); + setupBarSeries(bar,keys,minRow,maxRow); + result << bar; + break; + } + case QAbstractSeries::SeriesTypePie: + { + + QPieSeries *pie = new QPieSeries(); + setupPieSeries(pie,keys,minRow,maxRow); + result << pie; + break; + } + case QAbstractSeries::SeriesTypeArea: + { + QAreaSeries *area = new QAreaSeries( new QLineSeries(), new QLineSeries()); + setupAreaSeries(area,keys,minRow,maxRow); + result << area; + break; + } + } + + m_chart->createDefaultAxes(); + return result; +} + +void Engine::removeSeries(QAbstractSeries* series) +{ + m_chart->removeSeries(series); + + foreach (const QModelIndex& index, m_seriesModelIndex.value(series)) { + m_model->setData(index, QColor(Qt::white), Qt::BackgroundRole); + } +} + +void Engine::clearModels() +{ + delete m_selection; + m_selection = 0; + delete m_model; + m_model = 0; + createModels(); +} + +bool Engine::save(const QString &filename) const +{ + if (filename.isEmpty()) + return false; + + QFile file(filename); + + if (!file.open(QIODevice::WriteOnly)) { + return false; + } + + QDataStream out(&file); + out << MAGIC_NUMBER; + out.setVersion(QDataStream::Qt_4_8); + out << m_model->rowCount(); + out << m_model->columnCount(); + + for (int row = 0; row < m_model->rowCount(); ++row) { + for (int column = 0; column < m_model->columnCount(); ++column) { + QStandardItem *item = m_model->item(row, column); + if (item) { + out << row; + out << column; + out << item->data(Qt::EditRole).toString(); + } + } + } + return true; +} + +bool Engine::load(const QString &filename) +{ + clearModels(); + + if (filename.isEmpty()) + return false; + + QFile file(filename); + + if (!file.open(QIODevice::ReadOnly)) { + return false; + } + + QDataStream in(&file); + + qint32 magicNumber; + in >> magicNumber; + + if (magicNumber != MAGIC_NUMBER) + return false; + + in.setVersion(QDataStream::Qt_4_8); + + int rowCount; + in >> rowCount; + + int columnCount; + in >> columnCount; + + while (!in.atEnd()) { + int row; + int column; + QString value; + in >> row >> column >> value; + QStandardItem *item = new QStandardItem(); + bool ok; + double result = value.toDouble(&ok); + if(ok) + item->setData(result, Qt::EditRole); + else + item->setData(value, Qt::EditRole); + m_model->setItem(row, column, item); + } + + return true; +} + +void Engine::setupXYSeries(QXYSeries *xyseries, const QList& columns, int column, int minRow, int maxRow) +{ + QVXYModelMapper* mapper = new QVXYModelMapper(xyseries); + mapper->setSeries(xyseries); + mapper->setModel(m_model); + mapper->setXColumn(columns.first()); + mapper->setYColumn(columns.at(column)); + mapper->setFirstRow(minRow); + mapper->setRowCount(maxRow - minRow + 1); + m_chart->addSeries(xyseries); + xyseries->setName(QString("Series %1").arg(m_chart->series().count())); + QObject::connect(xyseries,SIGNAL(clicked(QPointF)),this,SIGNAL(selected())); + const QModelIndexList& list = m_selection->selectedIndexes(); + QModelIndexList result; + foreach (const QModelIndex& index, list) { + if (index.column() ==columns.at(column)){ + m_model->setData(index, xyseries->pen().color(), Qt::BackgroundRole); + result << index; + } + } + m_seriesModelIndex.insert(xyseries,result); +} + +void Engine::setupBarSeries(QAbstractBarSeries *bar, const QList& columns, int minRow, int maxRow) +{ + QHBarModelMapper* mapper = new QHBarModelMapper(bar); + mapper->setSeries(bar); + mapper->setModel(m_model); + mapper->setFirstColumn(minRow); + mapper->setColumnCount(maxRow - minRow + 1); + mapper->setFirstBarSetRow(columns.at(1)); + mapper->setLastBarSetRow(columns.last()); + m_chart->addSeries(bar); + bar->setName(QString("Series %1").arg(m_chart->series().count())); + + const QModelIndexList& list = m_selection->selectedIndexes(); + foreach (const QModelIndex& index, list) { + if (index.column() >= columns.at(1) && index.column()<= columns.last()) { + //m_model->setData(index, bar->barSets().at(index.column())->brush().color(), Qt::BackgroundRole); + } + } +} + +void Engine::setupPieSeries(QPieSeries *pie, const QList& columns, int minRow, int maxRow) +{ + QVPieModelMapper* mapper = new QVPieModelMapper(pie); + mapper->setSeries(pie); + mapper->setModel(m_model); + mapper->setValuesColumn(columns.at(1)); + mapper->setLabelsColumn(columns.first()); + mapper->setFirstRow(minRow); + mapper->setRowCount(maxRow - minRow + 1); + m_chart->addSeries(pie); + pie->setName(QString("Series %1").arg(m_chart->series().count())); + + const QModelIndexList& list = m_selection->selectedIndexes(); + foreach (const QModelIndex& index, list) { + // m_model->setData(index, bar->barSets()pen().color(), Qt::BackgroundRole); + } +} + +void Engine::setupAreaSeries(QAreaSeries *series, const QList& columns, int minRow, int maxRow) +{ + QVXYModelMapper* umapper = new QVXYModelMapper(series); + umapper->setSeries(series->upperSeries()); + umapper->setModel(m_model); + umapper->setXColumn(columns.first()); + umapper->setYColumn(columns.at(1)); + umapper->setFirstRow(minRow); + umapper->setRowCount(maxRow - minRow + 1); + + QVXYModelMapper* lmapper = new QVXYModelMapper(series); + lmapper->setSeries(series->lowerSeries()); + lmapper->setModel(m_model); + lmapper->setXColumn(columns.first()); + lmapper->setYColumn(columns.at(2)); + lmapper->setFirstRow(minRow); + lmapper->setRowCount(maxRow - minRow + 1); + + m_chart->addSeries(series); + series->setName(QString("Series %1").arg(m_chart->series().count())); + + const QModelIndexList& list = m_selection->selectedIndexes(); + foreach (const QModelIndex& index, list) { + //if (index.column() ==columns.at(column)) + // m_model->setData(index, xyseries->pen().color(), Qt::BackgroundRole); + } +} diff --git a/tests/manual/chartdesigner/engine.h b/tests/manual/chartdesigner/engine.h new file mode 100644 index 00000000..eef15dcf --- /dev/null +++ b/tests/manual/chartdesigner/engine.h @@ -0,0 +1,76 @@ +/**************************************************************************** + ** + ** Copyright (C) 2014 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 Enterprise Charts Add-on. + ** + ** $QT_BEGIN_LICENSE$ + ** Licensees holding valid Qt Enterprise licenses may use this file in + ** accordance with the Qt Enterprise 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$ + ** + ****************************************************************************/ + +#ifndef ENGINE_H +#define ENGINE_H + +#include +#include +#include + +class QStandardItemModel; +class QItemSelectionModel; + + +QT_CHARTS_BEGIN_NAMESPACE +class QChart; +class QXYSeries; +class QAbstractBarSeries; +class QPieSeries; +class QAreaSeries; +QT_CHARTS_END_NAMESPACE + +QT_CHARTS_USE_NAMESPACE + +class Engine : public QObject +{ + Q_OBJECT +public: + explicit Engine(QObject *parent = 0); + ~Engine(); + + int modelCount() { return m_count; } + QStandardItemModel *model() const { return m_model; } + QItemSelectionModel *selectionModel() const { return m_selection; } + QChart* chart() const { return m_chart; } + void clearModels(); + QList addSeries(QAbstractSeries::SeriesType type); + void removeSeries(QAbstractSeries* series); + bool save(const QString &filename) const; + bool load(const QString &filename); +signals: + void selected(); + +private: + void createModels(); + void setupXYSeries(QXYSeries *xyseries, const QList& columns, int column, int minRow, int maxRow); + void setupBarSeries(QAbstractBarSeries *series, const QList& columns, int minRow, int maxRow); + void setupPieSeries(QPieSeries *pie, const QList& columns, int minRow, int maxRow); + void setupAreaSeries(QAreaSeries *series, const QList& columns, int minRow, int maxRow); + +private: + int m_count; + QChart *m_chart; + QStandardItemModel *m_model; + QItemSelectionModel *m_selection; + QMap > m_seriesModelIndex; +}; + +#endif /* ENGINE_H */ diff --git a/tests/manual/chartdesigner/main.cpp b/tests/manual/chartdesigner/main.cpp new file mode 100644 index 00000000..6b47caf5 --- /dev/null +++ b/tests/manual/chartdesigner/main.cpp @@ -0,0 +1,32 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "mainwindow.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + MainWindow window; + window.resize(1000,600); + window.show(); + return a.exec(); +} diff --git a/tests/manual/chartdesigner/mainwindow.cpp b/tests/manual/chartdesigner/mainwindow.cpp new file mode 100644 index 00000000..70588459 --- /dev/null +++ b/tests/manual/chartdesigner/mainwindow.cpp @@ -0,0 +1,423 @@ +/**************************************************************************** + ** + ** Copyright (C) 2014 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 Enterprise Charts Add-on. + ** + ** $QT_BEGIN_LICENSE$ + ** Licensees holding valid Qt Enterprise licenses may use this file in + ** accordance with the Qt Enterprise 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 "mainwindow.h" +#include "objectinspectorwidget.h" +#include "penwidget.h" +#include "brushwidget.h" +#include "engine.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static const QString FILENAME_SETTING("filename"); +static const QString GEOMETRY_SETTING("geometry"); + +MainWindow::MainWindow() : + m_engine(new Engine(this)), + m_view(new QChartView(m_engine->chart())), + m_scene(m_view->scene()), + m_table(new QTableView()), + m_addSeriesMenu(0), + m_seriesMenu(0), + m_chartMenu(0), + m_themeMenu(0), + m_animationMenu(0), + m_zoomMenu(0), + m_removeAllAction(0), + m_legendAction(0), + m_antialiasingAction(0) +{ + createMenus(); + createDockWidgets(); + createTable(); + createLayout(); + + QSettings settings; + restoreGeometry(settings.value(GEOMETRY_SETTING).toByteArray()); + m_filename = settings.value(FILENAME_SETTING).toString(); + if (m_filename.isEmpty()) + m_filename = "untitled"; + + setWindowTitle(m_filename); + updateUI(); +} + +MainWindow::~MainWindow() +{ + delete m_engine; +} + +void MainWindow::createMenus() +{ + QMenu *file = menuBar()->addMenu(tr("File")); + QMenu *edit = menuBar()->addMenu(tr("Edit")); + m_seriesMenu = menuBar()->addMenu(tr("Series")); + m_chartMenu = menuBar()->addMenu(tr("Chart")); + + m_addSeriesMenu = new QMenu(tr("Add series")); + m_themeMenu = new QMenu(tr("Apply theme")); + m_animationMenu = new QMenu(tr("Animations")); + m_zoomMenu = new QMenu(tr("Zoom")); + + file->addAction(tr("New"), this, SLOT(handleNewAction())); + file->addAction(tr("Load"), this, SLOT(handleLoadAction())); + file->addAction(tr("Save"), this, SLOT(handleSaveAction())); + file->addAction(tr("Save As"), this, SLOT(handleSaveAsAction())); + + //seriesMenu + m_seriesMenu->addMenu(m_addSeriesMenu); + m_removeAllAction = new QAction(tr("Remove all series"), this); + QObject::connect(m_removeAllAction, SIGNAL(triggered()), this, SLOT(handleRemoveAllSeriesAction())); + m_seriesMenu->addAction(m_removeAllAction); + m_seriesMenu->addSeparator(); + + //seriesMenu /addSeriesMenu + { + int index = QAbstractSeries::staticMetaObject.indexOfEnumerator("SeriesType"); + QMetaEnum metaEnum = QAbstractSeries::staticMetaObject.enumerator(index); + + int count = metaEnum.keyCount(); + + for (int i = 0; i < count; ++i) { + QAction* action = new QAction(metaEnum.key(i), this); + action->setData(metaEnum.value(i)); + m_addSeriesMenu->addAction(action); + QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleAddSeriesMenu())); + } + } + + //chartMenu / themeMenu + { + m_chartMenu->addMenu(m_themeMenu); + int index = QChart::staticMetaObject.indexOfEnumerator("ChartTheme"); + QMetaEnum metaEnum = QChart::staticMetaObject.enumerator(index); + + int count = metaEnum.keyCount(); + + for (int i = 0; i < count; ++i) { + QAction* action = new QAction(metaEnum.key(i), this); + action->setData(metaEnum.value(i)); + action->setCheckable(true); + m_themeMenu->addAction(action); + QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleThemeMenu())); + } + } + + //chartMenu / animationMenu + { + m_chartMenu->addMenu(m_animationMenu); + int index = QChart::staticMetaObject.indexOfEnumerator("AnimationOption"); + QMetaEnum metaEnum = QChart::staticMetaObject.enumerator(index); + + int count = metaEnum.keyCount(); + + for (int i = 0; i < count; ++i) { + QAction* action = new QAction(metaEnum.key(i), this); + action->setData(metaEnum.value(i)); + action->setCheckable(true); + m_animationMenu->addAction(action); + QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleAnimationMenu())); + } + } + + //chartMenu / zoomMenu + { + m_chartMenu->addMenu(m_zoomMenu); + int index = QChartView::staticMetaObject.indexOfEnumerator("RubberBand"); + QMetaEnum metaEnum = QChartView::staticMetaObject.enumerator(index); + + int count = metaEnum.keyCount(); + + for (int i = 0; i < count; ++i) { + QAction* action = new QAction(metaEnum.key(i), this); + action->setData(metaEnum.value(i)); + action->setCheckable(true); + m_zoomMenu->addAction(action); + QObject::connect(action, SIGNAL(triggered()), this, SLOT(handleZoomMenu())); + } + } + + //chartMenu / legend + m_legendAction = new QAction(tr("Legend"), this); + m_legendAction->setCheckable(true); + m_chartMenu->addAction(m_legendAction); + QObject::connect(m_legendAction, SIGNAL(triggered()), this, SLOT(handleLegendAction())); + + //chartMenu / Anti-aliasing + m_antialiasingAction = new QAction(tr("Anti-aliasing"), this); + m_antialiasingAction->setCheckable(true); + m_chartMenu->addAction(m_antialiasingAction); + QObject::connect(m_antialiasingAction, SIGNAL(triggered()), this, SLOT(handleAntialiasingAction())); + +} + +void MainWindow::createDockWidgets() +{ + m_brushWidget = new BrushWidget(); + QDockWidget *brushDockWidget = new QDockWidget(tr("Brush"), this); + brushDockWidget->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); + brushDockWidget->setWidget(m_brushWidget); + addDockWidget(Qt::RightDockWidgetArea, brushDockWidget); + + m_penWidget = new PenWidget(); + QDockWidget *penDockWidget = new QDockWidget(tr("Pen"), this); + penDockWidget->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); + penDockWidget->setWidget(m_penWidget); + addDockWidget(Qt::RightDockWidgetArea, penDockWidget); + + m_inspectorWidget = new InspectorWidget(); + QDockWidget *inspectorDockWidget = new QDockWidget(tr("Object Inspector"), this); + inspectorDockWidget->setFeatures( + QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable); + inspectorDockWidget->setWidget(m_inspectorWidget); + addDockWidget(Qt::RightDockWidgetArea, inspectorDockWidget); + + setDockOptions(QMainWindow::AnimatedDocks); +} + +void MainWindow::createLayout() +{ + m_table->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + + int rowHeight = m_table->rowHeight(0); + int tableHeight = (m_engine->modelCount() * rowHeight) + m_table->horizontalHeader()->height() + 2 * m_table->frameWidth(); + + m_table->setMinimumHeight(tableHeight); + m_table->setMaximumHeight(tableHeight); + + QSplitter *splitter = new QSplitter(this); + splitter->setOrientation(Qt::Vertical); + splitter->addWidget(m_table); + splitter->addWidget(m_view); + setCentralWidget(splitter); + m_view->hide(); +} + +void MainWindow::createTable() +{ + m_table->setModel(m_engine->model()); + m_table->setSelectionModel(m_engine->selectionModel()); + QObject::connect(m_table->selectionModel(),SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this,SLOT(updateUI())); +} + +void MainWindow::updateUI() +{ + + QItemSelectionModel* selection = m_table->selectionModel(); + const QModelIndexList& list = selection->selectedIndexes(); + + QMap columns; + + foreach (const QModelIndex& index, list) { + columns.insertMulti(index.column(), index); + } + + QList keys = columns.uniqueKeys(); + + bool seriesEnabled = false; + + foreach (QAction* action, m_addSeriesMenu->actions()) { + switch (action->data().toInt()) { + case QAbstractSeries::SeriesTypeLine: + case QAbstractSeries::SeriesTypeSpline: + case QAbstractSeries::SeriesTypeScatter: + action->setEnabled(list.count() > 0 && keys.count() >= 2); + seriesEnabled |= action->isEnabled(); + break; + case QAbstractSeries::SeriesTypeBar: + case QAbstractSeries::SeriesTypePercentBar: + case QAbstractSeries::SeriesTypeStackedBar: + action->setEnabled(list.count() > 0 && keys.count() >= 2); + seriesEnabled |= action->isEnabled(); + break; + case QAbstractSeries::SeriesTypePie: + action->setEnabled(list.count() > 0 && keys.count() == 2); + seriesEnabled |= action->isEnabled(); + break; + case QAbstractSeries::SeriesTypeArea: + action->setEnabled(list.count() > 0 && keys.count() == 3); + seriesEnabled |= action->isEnabled(); + break; + } + } + + m_chartMenu->setEnabled(m_engine->chart()->series().count() > 0); + m_seriesMenu->setEnabled(seriesEnabled || m_engine->chart()->series().count() > 0); + m_removeAllAction->setEnabled(m_engine->chart()->series().count() > 0); + + int theme = m_engine->chart()->theme(); + foreach (QAction* action, m_themeMenu->actions()) { + action->setChecked(action->data().toInt() == theme); + } + + int animation = m_engine->chart()->animationOptions(); + foreach (QAction* action, m_animationMenu->actions()) { + action->setChecked(action->data().toInt() == animation); + } + + int zoom = m_view->rubberBand(); + foreach (QAction* action, m_zoomMenu->actions()) { + action->setChecked(action->data().toInt() == zoom); + } + + m_legendAction->setChecked(m_engine->chart()->legend()->isVisible()); + m_antialiasingAction->setChecked(m_view->renderHints().testFlag(QPainter::Antialiasing)); + + foreach (QAction *action, m_seriesMenu->actions()) { + //TODO: visibility handling + //if (m_series.value(action->text())) + // ; + //action->setChecked(false); + } +} + +void MainWindow::closeEvent(QCloseEvent *event) +{ + QSettings settings; + settings.setValue(GEOMETRY_SETTING, saveGeometry()); + settings.setValue(FILENAME_SETTING, m_filename); + QMainWindow::closeEvent(event); +} + +//handlers + +void MainWindow::handleNewAction() +{ + m_engine->chart()->removeAllSeries(); + m_view->hide(); + m_engine->clearModels(); + createTable(); + m_filename = "untitled"; + setWindowTitle(m_filename); + updateUI(); +} + +void MainWindow::handleAddSeriesMenu() +{ + m_view->show(); + QAction* action = qobject_cast(sender()); + QList series = m_engine->addSeries(QAbstractSeries::SeriesType(action->data().toInt())); + + foreach (QAbstractSeries* s , series) + { + QAction *newAction = new QAction(s->name(),this); + //newAction->setCheckable(true); + m_series.insert(s->name(),s); + m_seriesMenu->addAction(newAction); + } + + updateUI(); +} + +void MainWindow::handleRemoveAllSeriesAction() +{ + + foreach (QAction* action, m_seriesMenu->actions()){ + if(m_series.contains(action->text())){ + m_seriesMenu->removeAction(action); + m_engine->removeSeries(m_series.value(action->text())); + delete action; + } + } + + m_series.clear(); + + m_view->hide(); + updateUI(); +} + +void MainWindow::handleThemeMenu() +{ + QAction* action = qobject_cast(sender()); + m_engine->chart()->setTheme(QChart::ChartTheme(action->data().toInt())); + updateUI(); +} + +void MainWindow::handleAnimationMenu() +{ + QAction* action = qobject_cast(sender()); + m_engine->chart()->setAnimationOptions(QChart::AnimationOption(action->data().toInt())); + updateUI(); +} + +void MainWindow::handleZoomMenu() +{ + QAction* action = qobject_cast(sender()); + m_view->setRubberBand(QChartView::RubberBand(action->data().toInt())); + updateUI(); +} + +void MainWindow::handleAntialiasingAction() +{ + QAction* action = qobject_cast(sender()); + if (action->isChecked()) { + m_view->setRenderHint(QPainter::Antialiasing, true); + } + else { + m_view->setRenderHint(QPainter::Antialiasing, false); + } +} + +void MainWindow::handleLegendAction() +{ + QAction* action = qobject_cast(sender()); + if (action->isChecked()) { + m_engine->chart()->legend()->setVisible(true); + } + else { + m_engine->chart()->legend()->setVisible(false); + } +} + +void MainWindow::handleSaveAction() +{ + if(!m_engine->save(m_filename)) { + + QScopedPointer messageBox(new QMessageBox(this)); + messageBox->setIcon(QMessageBox::Warning); + messageBox->setWindowModality(Qt::WindowModal); + messageBox->setWindowTitle(QString(tr("Error"))); + messageBox->setText(tr("Could not write to ") + m_filename); + messageBox->exec(); + } +} + +void MainWindow::handleLoadAction() +{ + if(!m_engine->load(m_filename)) { + + QScopedPointer messageBox(new QMessageBox(this)); + messageBox->setIcon(QMessageBox::Warning); + messageBox->setWindowModality(Qt::WindowModal); + messageBox->setWindowTitle(QString(tr("Error"))); + messageBox->setText(tr("Could not open ") + m_filename); + messageBox->exec(); + + }else createTable(); +} diff --git a/tests/manual/chartdesigner/mainwindow.h b/tests/manual/chartdesigner/mainwindow.h new file mode 100644 index 00000000..d5ce5418 --- /dev/null +++ b/tests/manual/chartdesigner/mainwindow.h @@ -0,0 +1,97 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include + + +QT_CHARTS_BEGIN_NAMESPACE +class QChartView; +class QAbstractSeries; +QT_CHARTS_END_NAMESPACE + +class QGraphicsScene; +class InspectorWidget; +class BrushWidget; +class PenWidget; +class QTableView; +class Engine; + +QT_CHARTS_USE_NAMESPACE + +class MainWindow : public QMainWindow +{ + Q_OBJECT +public: + MainWindow(); + ~MainWindow(); + +private slots: + void handleNewAction(); + void handleAddSeriesMenu(); + void handleRemoveAllSeriesAction(); + void updateUI(); + void handleThemeMenu(); + void handleAnimationMenu(); + void handleZoomMenu(); + void handleAntialiasingAction(); + void handleLegendAction(); + void handleSaveAction(); + void handleLoadAction(); + +protected: + void closeEvent(QCloseEvent *event); + +private: + void createMenus(); + void createDockWidgets(); + void createModel(); + void createLayout(); + void createTable(); + +private: + Engine *m_engine; + QChartView *m_view; + QGraphicsScene *m_scene; + QTableView *m_table; + InspectorWidget *m_inspectorWidget; + PenWidget *m_penWidget; + BrushWidget *m_brushWidget; + QMenu *m_addSeriesMenu; + QMenu *m_seriesMenu; + QMenu *m_chartMenu; + QMenu *m_themeMenu; + QMenu *m_animationMenu; + QMenu *m_zoomMenu; + + QAction *m_removeAllAction; + QAction *m_legendAction; + QAction *m_antialiasingAction; + QString m_filename; + + QMap m_series; + +}; + +#endif /* MAINWINDOW_H */ diff --git a/tests/manual/chartdesigner/objectinspectorwidget.cpp b/tests/manual/chartdesigner/objectinspectorwidget.cpp new file mode 100644 index 00000000..64a89854 --- /dev/null +++ b/tests/manual/chartdesigner/objectinspectorwidget.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "objectinspectorwidget.h" +#include +#include +#include + +InspectorWidget::InspectorWidget() +{ + +} + +InspectorWidget::~InspectorWidget() +{ + +} + +QIcon InspectorWidget::getColorIcon(const QColor& color,const QSize &size) const +{ + + QString key = QString("COLOR_ICON=%1:%2x%3").arg(color.name()).arg(size.width()).arg(size.height()); + + QPixmap pixmap(size); + + if (!QPixmapCache::find(key, &pixmap)) { + pixmap.fill(Qt::white); + QPainter painter(&pixmap); + painter.fillRect(2, 2, 46, 46, color); + QPixmapCache::insert(key, pixmap); + } + + return QIcon(pixmap); +} diff --git a/tests/manual/chartdesigner/objectinspectorwidget.h b/tests/manual/chartdesigner/objectinspectorwidget.h new file mode 100644 index 00000000..ba9deed4 --- /dev/null +++ b/tests/manual/chartdesigner/objectinspectorwidget.h @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef INSPECTORWIDGET_H +#define INSPECTORWIDGET_H + +#include + +class InspectorWidget : public QWidget +{ +public: + InspectorWidget(); + ~InspectorWidget(); + +private: + QIcon getColorIcon(const QColor& color,const QSize &size) const; + +}; + +#endif diff --git a/tests/manual/chartdesigner/penwidget.cpp b/tests/manual/chartdesigner/penwidget.cpp new file mode 100644 index 00000000..e2b22f64 --- /dev/null +++ b/tests/manual/chartdesigner/penwidget.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "penwidget.h" +#include +#include +#include + +PenWidget::PenWidget(QWidget *parent):QWidget(parent), +m_colorComboBox(0), +m_lineStyleComboBox(0), +m_widthSpinBox(0) +{ + createContent(); + createLayout(); + setFixedSize(minimumSizeHint()); +} + +PenWidget::~PenWidget() +{ + +} + +void PenWidget::createContent() +{ + m_colorComboBox = new QComboBox(this); + m_lineStyleComboBox = new QComboBox(this); + m_widthSpinBox = new QSpinBox(this); +} + +void PenWidget::createLayout() +{ + QFormLayout *layout = new QFormLayout(); + layout->addRow(tr("Color"), m_colorComboBox); + layout->addRow(tr("Style"), m_lineStyleComboBox); + layout->addRow(tr("Width"), m_widthSpinBox); + setLayout(layout); +} + diff --git a/tests/manual/chartdesigner/penwidget.h b/tests/manual/chartdesigner/penwidget.h new file mode 100644 index 00000000..fe9998c0 --- /dev/null +++ b/tests/manual/chartdesigner/penwidget.h @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef PENWIDGET_H +#define PENWIDGET_H + +#include +#include + +class QComboBox; +class QSpinBox; + +class PenWidget : public QWidget +{ +public: + explicit PenWidget(QWidget* parent = 0); + ~PenWidget(); + + QPen pen() const { return m_pen; } +private: + void createContent(); + void createLayout(); + +private: + QPen m_pen; + QComboBox *m_colorComboBox; + QComboBox *m_lineStyleComboBox; + QSpinBox *m_widthSpinBox; +}; + +#endif /* PENWIDGET_H */ diff --git a/tests/manual/chartviewer/charts.h b/tests/manual/chartviewer/charts.h new file mode 100644 index 00000000..2d59a885 --- /dev/null +++ b/tests/manual/chartviewer/charts.h @@ -0,0 +1,90 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + + +#ifndef CHARTS_H +#define CHARTS_H +#include "model.h" +#include +#include +#include +#include + +QT_CHARTS_BEGIN_NAMESPACE +class QChart; +QT_CHARTS_END_NAMESPACE + +QT_CHARTS_USE_NAMESPACE + +class Chart +{ +public: + virtual ~Chart() {}; + virtual QChart *createChart(const DataTable &table) = 0; + virtual QString name() = 0; + virtual QString category() = 0; + virtual QString subCategory() = 0; + +}; + +namespace Charts +{ + + typedef QList ChartList; + + inline ChartList &chartList() + { + static ChartList list; + return list; + } + + inline bool findChart(Chart *chart) + { + ChartList &list = chartList(); + if (list.contains(chart)) + return true; + + foreach (Chart *item, list) { + if (item->name() == chart->name() && item->category() == chart->category() && item->subCategory() == chart->subCategory()) + return true; + } + return false; + } + + inline void addChart(Chart *chart) + { + ChartList &list = chartList(); + if (!findChart(chart)) + list.append(chart); + } +} + +template +class ChartWrapper +{ +public: + QSharedPointer chart; + ChartWrapper() : chart(new T) { Charts::addChart(chart.data()); } +}; + +#define DECLARE_CHART(chartType) static ChartWrapper chartType; +#define DECLARE_CHART_TEMPLATE(chartType,chartName) static ChartWrapper chartName; + +#endif diff --git a/tests/manual/chartviewer/charts/axis/barcategoryaxisx.cpp b/tests/manual/chartviewer/charts/axis/barcategoryaxisx.cpp new file mode 100644 index 00000000..250576bb --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/barcategoryaxisx.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarCategoryAxisX: public Chart +{ +public: + QString name() { return "AxisX"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return "BarCategoryAxis"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle(" BarCateogry X , Value Y"); + + QString name("Series "); + QBarSeries *series = new QBarSeries(chart); + QValueAxis *valueaxis = new QValueAxis(); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisY(valueaxis, series); + chart->setAxisX(barcategory, series); + + return chart; + } +}; + +class BarCategoryAxisXTitle: public BarCategoryAxisX +{ + QString name() { return "AxisX Title"; } + QChart *createChart(const DataTable &table) + { + QChart *chart = BarCategoryAxisX::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle(" BarCateogry X , Value Y, title"); + return chart; + } +}; + +DECLARE_CHART(BarCategoryAxisX); +DECLARE_CHART(BarCategoryAxisXTitle); diff --git a/tests/manual/chartviewer/charts/axis/barcategoryaxisxlogy.cpp b/tests/manual/chartviewer/charts/axis/barcategoryaxisxlogy.cpp new file mode 100644 index 00000000..516d0f49 --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/barcategoryaxisxlogy.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarCategoryAxisXLogY: public Chart +{ +public: + QString name() { return "AxisX"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return "BarCategoryAxis"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle(" BarCateogry X , LogValue Y"); + + QString name("Series "); + QBarSeries *series = new QBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisY(logvalueaxis, series); + chart->setAxisX(barcategory, series); + + return chart; + } +}; + +class BarCategoryAxisXLogYTitle: public BarCategoryAxisXLogY +{ + QString name() { return "AxisX Title"; } + QChart *createChart(const DataTable &table) + { + QChart *chart = BarCategoryAxisXLogY::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle(" BarCateogry X , LogValue Y, title"); + return chart; + } +}; + +DECLARE_CHART(BarCategoryAxisXLogY); +DECLARE_CHART(BarCategoryAxisXLogYTitle); diff --git a/tests/manual/chartviewer/charts/axis/barcategoryaxisy.cpp b/tests/manual/chartviewer/charts/axis/barcategoryaxisy.cpp new file mode 100644 index 00000000..d20442b2 --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/barcategoryaxisy.cpp @@ -0,0 +1,84 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarCategoryAxisY: public Chart +{ +public: + QString name() { return "AxisY"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return "BarCategoryAxis"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle(" BarCateogry Y , Value X"); + + QString name("Series "); + QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); + QValueAxis *valueaxis = new QValueAxis(); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach(Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisX(valueaxis, series); + chart->setAxisY(barcategory, series); + + return chart; + } +}; + +class BarCategoryAxisYTitle: public BarCategoryAxisY +{ +public: + QString name() + { + return "AxisY Title"; + } + + QChart *createChart(const DataTable &table) + { + QChart *chart = BarCategoryAxisY::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle(" BarCateogry Y , Value X, title"); + return chart; + } +}; + +DECLARE_CHART(BarCategoryAxisY); +DECLARE_CHART(BarCategoryAxisYTitle); diff --git a/tests/manual/chartviewer/charts/axis/barcategoryaxisylogx.cpp b/tests/manual/chartviewer/charts/axis/barcategoryaxisylogx.cpp new file mode 100644 index 00000000..f38cf931 --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/barcategoryaxisylogx.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarCategoryAxisYLogX: public Chart +{ +public: + QString name() { return "AxisY"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return "BarCategoryAxis"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle(" LogValue X , BarCateogry Y"); + + QString name("Series "); + QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisX(logvalueaxis, series); + chart->setAxisY(barcategory, series); + + return chart; + } +}; + +class BarCategoryAxisYLogXTitle: public BarCategoryAxisYLogX +{ + QString name() { return "AxisX Title"; } + QChart *createChart(const DataTable &table) + { + QChart *chart = BarCategoryAxisYLogX::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle(" LogValue X , BarCateogry Y, title"); + return chart; + } +}; + +DECLARE_CHART(BarCategoryAxisYLogX); +DECLARE_CHART(BarCategoryAxisYLogXTitle); diff --git a/tests/manual/chartviewer/charts/axis/categoryaxis.cpp b/tests/manual/chartviewer/charts/axis/categoryaxis.cpp new file mode 100644 index 00000000..dc025f6d --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/categoryaxis.cpp @@ -0,0 +1,83 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class CategoryLineChart: public Chart +{ +public: + QString name() { return QObject::tr("CategoryAxis"); } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Category X , Category Y "); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QCategoryAxis *axisX = new QCategoryAxis; + axisX->append("low", 5); + axisX->append("avg.", 12); + axisX->append("high", 19); + axisX->setRange(0, 20); + chart->setAxisX(axisX, chart->series().at(0)); + + QCategoryAxis *axisY = new QCategoryAxis; + axisY->append("cheap", 5); + axisY->append("fair", 12); + axisY->append("pricy", 20); + axisY->setRange(0, 20); + chart->setAxisY(axisY, chart->series().at(0)); + + return chart; + } +}; + +class CategoryLineChartTitle: public CategoryLineChart +{ +public: + QString name() { return QObject::tr("CategoryAxis, Title"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = CategoryLineChart::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle("Category X , Category Y,title "); + return chart; + } +}; + +DECLARE_CHART(CategoryLineChart) +DECLARE_CHART(CategoryLineChartTitle) diff --git a/tests/manual/chartviewer/charts/axis/datetimeaxisx.cpp b/tests/manual/chartviewer/charts/axis/datetimeaxisx.cpp new file mode 100644 index 00000000..99154bbc --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/datetimeaxisx.cpp @@ -0,0 +1,81 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class DateTimeAxisX: public Chart +{ +public: + QString name() { return "AxisX"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return "DateTimeAxis"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("DateTime X , Value Y"); + QValueAxis *valueaxis = new QValueAxis(); + QDateTimeAxis *datetimeaxis = new QDateTimeAxis(); + datetimeaxis->setTickCount(10); + datetimeaxis->setFormat("yyyy"); + + qreal day = 1000l * 60l * 60l * 24l; + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) { + QPointF point = data.first; + series->append(day * 365l * 30l + point.x() * day * 365l, point.y()); + } + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + chart->setAxisX(datetimeaxis, series); + chart->setAxisY(valueaxis, series); + } + + return chart; + } +}; + +class DateTimeAxisXTitle: public DateTimeAxisX +{ +public: + QString name() { return "AxisX Title"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = DateTimeAxisX::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle("DateTime X , Value Y, Title"); + return chart; + } +}; + + +DECLARE_CHART(DateTimeAxisX); +DECLARE_CHART(DateTimeAxisXTitle); diff --git a/tests/manual/chartviewer/charts/axis/datetimeaxisy.cpp b/tests/manual/chartviewer/charts/axis/datetimeaxisy.cpp new file mode 100644 index 00000000..0234eb6a --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/datetimeaxisy.cpp @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class DateTimeAxisY: public Chart +{ +public: + QString name() { return "AxisY"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return "DateTimeAxis"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Value X , DateTime Y"); + QValueAxis *valueaxis = new QValueAxis(); + QDateTimeAxis *datetimeaxis = new QDateTimeAxis(); + datetimeaxis->setTickCount(10); + datetimeaxis->setFormat("yyyy"); + + qreal day = 1000l * 60l * 60l * 24l; + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) { + QPointF point = data.first; + series->append(point.x(), day * 365l * 30l + point.y() * day * 365l); + } + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + chart->setAxisY(datetimeaxis, series); + chart->setAxisX(valueaxis, series); + } + + return chart; + } +}; + +class DateTimeAxisYTitle: public DateTimeAxisY +{ +public: + QString name() { return "AxisY Title"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = DateTimeAxisY::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle("Value X , DateTime Y, Title"); + return chart; + } +}; + +DECLARE_CHART(DateTimeAxisY); +DECLARE_CHART(DateTimeAxisYTitle); diff --git a/tests/manual/chartviewer/charts/axis/logvalueaxisx.cpp b/tests/manual/chartviewer/charts/axis/logvalueaxisx.cpp new file mode 100644 index 00000000..d60a1f18 --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/logvalueaxisx.cpp @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class LogValueAxisX: public Chart +{ +public: + QString name() { return "LogValueAxisX"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return QObject::tr("Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("LogValue X , Value Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + chart->createDefaultAxes(); + QLogValueAxis *axis = new QLogValueAxis(); + axis->setBase(1.2); + foreach (QAbstractSeries *series, chart->series()) + chart->setAxisX(axis, series); + + return chart; + } +}; + +class LogValueAxisTitleX: public LogValueAxisX +{ +public: + QString name() { return "LogValueAxisXTitle"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = LogValueAxisX::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle("Log Value X , Value Y, title"); + return chart; + } +}; + +DECLARE_CHART(LogValueAxisX); +DECLARE_CHART(LogValueAxisTitleX); diff --git a/tests/manual/chartviewer/charts/axis/logvalueaxisy.cpp b/tests/manual/chartviewer/charts/axis/logvalueaxisy.cpp new file mode 100644 index 00000000..cc631515 --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/logvalueaxisy.cpp @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class LogValueAxisY: public Chart +{ +public: + QString name() { return "LogValueAxisY"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return QObject::tr("Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Value X , LogValue Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + chart->createDefaultAxes(); + QLogValueAxis *axis = new QLogValueAxis(); + axis->setBase(2); + foreach (QAbstractSeries *series, chart->series()) + chart->setAxisY(axis, series); + + return chart; + } +}; + +class LogValueAxisTitleY: public LogValueAxisY +{ +public: + QString name() { return "LogValueAxisYTitle"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = LogValueAxisY::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle("Value X , Log Value Y, title"); + return chart; + } +}; + +DECLARE_CHART(LogValueAxisY); +DECLARE_CHART(LogValueAxisTitleY); diff --git a/tests/manual/chartviewer/charts/axis/valueaxis.cpp b/tests/manual/chartviewer/charts/axis/valueaxis.cpp new file mode 100644 index 00000000..9bbfb0c9 --- /dev/null +++ b/tests/manual/chartviewer/charts/axis/valueaxis.cpp @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class ValueAxis: public Chart +{ +public: + QString name() { return "ValueAxis"; } + QString category() { return QObject::tr("Axis"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Value X , Value Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + chart->createDefaultAxes(); + QValueAxis *axis = new QValueAxis(); + foreach (QAbstractSeries *series, chart->series()) + chart->setAxisX(axis, series); + + return chart; + } +}; + +class ValueAxisTitle: public ValueAxis +{ +public: + QString name() { return "ValueAxis Title"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = ValueAxis::createChart(table); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->setTitle("Value X , Value Y, title"); + return chart; + } +}; + +DECLARE_CHART(ValueAxis); +DECLARE_CHART(ValueAxisTitle); diff --git a/tests/manual/chartviewer/charts/barseries/horizontalbarchart.cpp b/tests/manual/chartviewer/charts/barseries/horizontalbarchart.cpp new file mode 100644 index 00000000..3cc1887e --- /dev/null +++ b/tests/manual/chartviewer/charts/barseries/horizontalbarchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class HorizontalBarChart: public Chart +{ +public: + QString name() { return QObject::tr("HorizontalBarChart"); } + QString category() { return QObject::tr("BarSeries"); } + QString subCategory() { return QObject::tr("Horizontal"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Horizontal bar chart"); + QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(HorizontalBarChart) + diff --git a/tests/manual/chartviewer/charts/barseries/horizontalpercentbarchart.cpp b/tests/manual/chartviewer/charts/barseries/horizontalpercentbarchart.cpp new file mode 100644 index 00000000..71cd14f0 --- /dev/null +++ b/tests/manual/chartviewer/charts/barseries/horizontalpercentbarchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class HorizontalPercentBarChart: public Chart +{ +public: + QString name() { return QObject::tr("HorizontalPercentBarChart"); } + QString category() { return QObject::tr("BarSeries"); } + QString subCategory() { return QObject::tr("Horizontal"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Horizontal percent chart"); + QHorizontalPercentBarSeries *series = new QHorizontalPercentBarSeries(chart); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(HorizontalPercentBarChart) + diff --git a/tests/manual/chartviewer/charts/barseries/horizontalstackedbarchart.cpp b/tests/manual/chartviewer/charts/barseries/horizontalstackedbarchart.cpp new file mode 100644 index 00000000..7dab6791 --- /dev/null +++ b/tests/manual/chartviewer/charts/barseries/horizontalstackedbarchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class HorizontalStackedBarChart: public Chart +{ +public: + QString name() { return QObject::tr("HorizontalStackedBarChart"); } + QString category() { return QObject::tr("BarSeries"); } + QString subCategory() { return QObject::tr("Horizontal"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Horizontal stacked chart"); + QHorizontalStackedBarSeries *series = new QHorizontalStackedBarSeries(chart); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(HorizontalStackedBarChart) + diff --git a/tests/manual/chartviewer/charts/barseries/verticalbarchart.cpp b/tests/manual/chartviewer/charts/barseries/verticalbarchart.cpp new file mode 100644 index 00000000..d7dbbaa0 --- /dev/null +++ b/tests/manual/chartviewer/charts/barseries/verticalbarchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class VerticalBarChart: public Chart +{ +public: + QString name() { return QObject::tr("VerticalBarChart"); } + QString category() { return QObject::tr("BarSeries"); } + QString subCategory() { return QObject::tr("Vertical"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Vertical bar chart"); + QBarSeries *series = new QBarSeries(chart); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(VerticalBarChart) + diff --git a/tests/manual/chartviewer/charts/barseries/verticalpercentbarchart.cpp b/tests/manual/chartviewer/charts/barseries/verticalpercentbarchart.cpp new file mode 100644 index 00000000..e219ebc0 --- /dev/null +++ b/tests/manual/chartviewer/charts/barseries/verticalpercentbarchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class VerticalPercentBarChart: public Chart +{ +public: + QString name() { return QObject::tr("VerticalPercentBarChart"); } + QString category() { return QObject::tr("BarSeries"); } + QString subCategory() { return QObject::tr("Vertical"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Percent bar chart"); + QPercentBarSeries *series = new QPercentBarSeries(chart); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(VerticalPercentBarChart) + diff --git a/tests/manual/chartviewer/charts/barseries/verticalstackedbarchart.cpp b/tests/manual/chartviewer/charts/barseries/verticalstackedbarchart.cpp new file mode 100644 index 00000000..84986acc --- /dev/null +++ b/tests/manual/chartviewer/charts/barseries/verticalstackedbarchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class VerticalStackedBarChart: public Chart +{ +public: + QString name() { return QObject::tr("VerticalStackedBarChart"); } + QString category() { return QObject::tr("BarSeries"); } + QString subCategory() { return QObject::tr("Vertical"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Stacked bar chart"); + QStackedBarSeries *series = new QStackedBarSeries(chart); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(VerticalStackedBarChart) + diff --git a/tests/manual/chartviewer/charts/charts.pri b/tests/manual/chartviewer/charts/charts.pri new file mode 100644 index 00000000..5bef427f --- /dev/null +++ b/tests/manual/chartviewer/charts/charts.pri @@ -0,0 +1,51 @@ +INCLUDEPATH += $$PWD +DEPENDPATH += $$PWD +SOURCES += \ + $$PWD/font/font.cpp \ + $$PWD/xyseries/linechart.cpp \ + $$PWD/xyseries/scatterchart.cpp \ + $$PWD/xyseries/splinechart.cpp \ + $$PWD/xyseries/areachart.cpp \ + $$PWD/barseries/verticalstackedbarchart.cpp \ + $$PWD/barseries/horizontalstackedbarchart.cpp \ + $$PWD/barseries/verticalbarchart.cpp \ + $$PWD/barseries/horizontalbarchart.cpp \ + $$PWD/barseries/horizontalpercentbarchart.cpp \ + $$PWD/barseries/verticalpercentbarchart.cpp \ + $$PWD/pieseries/piechart.cpp \ + $$PWD/pieseries/donutchart.cpp \ + $$PWD/axis/valueaxis.cpp \ + $$PWD/axis/logvalueaxisx.cpp \ + $$PWD/axis/logvalueaxisy.cpp \ + $$PWD/axis/categoryaxis.cpp \ + $$PWD/axis/barcategoryaxisx.cpp \ + $$PWD/axis/barcategoryaxisy.cpp \ + $$PWD/axis/barcategoryaxisxlogy.cpp \ + $$PWD/axis/barcategoryaxisylogx.cpp \ + $$PWD/multiaxis/multivalueaxis.cpp \ + $$PWD/multiaxis/multivalueaxis2.cpp \ + $$PWD/multiaxis/multivalueaxis3.cpp \ + $$PWD/multiaxis/multivalueaxis4.cpp \ + $$PWD/multiaxis/multivaluebaraxis.cpp \ + $$PWD/size/sizecharts.cpp \ + $$PWD/domain/barlogy.cpp \ + $$PWD/domain/barlogx.cpp \ + $$PWD/domain/barstackedlogy.cpp \ + $$PWD/domain/barstackedlogx.cpp \ + $$PWD/domain/barpercentlogy.cpp \ + $$PWD/domain/barpercentlogx.cpp \ + $$PWD/domain/linelogxlogy.cpp \ + $$PWD/domain/linelogxy.cpp \ + $$PWD/domain/linexlogy.cpp \ + $$PWD/domain/splinelogxlogy.cpp \ + $$PWD/domain/splinelogxy.cpp \ + $$PWD/domain/splinexlogy.cpp \ + $$PWD/domain/scatterlogxlogy.cpp \ + $$PWD/domain/scatterlogxy.cpp \ + $$PWD/domain/scatterxlogy.cpp + +!linux-arm*: { +SOURCES += \ + $$PWD/axis/datetimeaxisx.cpp \ + $$PWD/axis/datetimeaxisy.cpp +} diff --git a/tests/manual/chartviewer/charts/domain/barlogx.cpp b/tests/manual/chartviewer/charts/domain/barlogx.cpp new file mode 100644 index 00000000..32a36755 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/barlogx.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarLogX: public Chart +{ +public: + QString name() { return "Horizontal Bar"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return "Horizontal Log"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Bar: Log X, BarCateogry Y"); + + QString name("Series "); + QHorizontalBarSeries *series = new QHorizontalBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisX(logvalueaxis, series); + chart->setAxisY(barcategory, series); + + return chart; + } +}; + +DECLARE_CHART(BarLogX); diff --git a/tests/manual/chartviewer/charts/domain/barlogy.cpp b/tests/manual/chartviewer/charts/domain/barlogy.cpp new file mode 100644 index 00000000..e8c36acd --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/barlogy.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarLogY: public Chart +{ +public: + QString name() { return "Bar"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return "Vertical Log"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Bar: BarCateogry X, Log Y"); + + QString name("Series "); + QBarSeries *series = new QBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisY(logvalueaxis, series); + chart->setAxisX(barcategory, series); + + return chart; + } +}; + +DECLARE_CHART(BarLogY); diff --git a/tests/manual/chartviewer/charts/domain/barpercentlogx.cpp b/tests/manual/chartviewer/charts/domain/barpercentlogx.cpp new file mode 100644 index 00000000..ce61c5cc --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/barpercentlogx.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarPercentLogX: public Chart +{ +public: + QString name() { return "Horizontal PercentBar"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return "Horizontal Log"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("PercentBar: Log X, BarCateogry Y"); + + QString name("Series "); + QHorizontalPercentBarSeries *series = new QHorizontalPercentBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisX(logvalueaxis, series); + chart->setAxisY(barcategory, series); + + return chart; + } +}; + +DECLARE_CHART(BarPercentLogX); diff --git a/tests/manual/chartviewer/charts/domain/barpercentlogy.cpp b/tests/manual/chartviewer/charts/domain/barpercentlogy.cpp new file mode 100644 index 00000000..cf10e76c --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/barpercentlogy.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarPercentLogY: public Chart +{ +public: + QString name() { return "PercentBar"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return "Vertical Log"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("PercentBar: BarCateogry X, Log Y"); + + QString name("Series "); + QPercentBarSeries *series = new QPercentBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisY(logvalueaxis, series); + chart->setAxisX(barcategory, series); + + return chart; + } +}; + +DECLARE_CHART(BarPercentLogY); diff --git a/tests/manual/chartviewer/charts/domain/barstackedlogx.cpp b/tests/manual/chartviewer/charts/domain/barstackedlogx.cpp new file mode 100644 index 00000000..e10445f1 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/barstackedlogx.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarStackedLogX: public Chart +{ +public: + QString name() { return "Horizontal StackedBar"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return "Horizontal Log"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("StackedBar: Log X, BarCateogry Y"); + + QString name("Series "); + QHorizontalStackedBarSeries *series = new QHorizontalStackedBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisX(logvalueaxis, series); + chart->setAxisY(barcategory, series); + + return chart; + } +}; + +DECLARE_CHART(BarStackedLogX); diff --git a/tests/manual/chartviewer/charts/domain/barstackedlogy.cpp b/tests/manual/chartviewer/charts/domain/barstackedlogy.cpp new file mode 100644 index 00000000..114252d9 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/barstackedlogy.cpp @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include + +class BarStackedLogY: public Chart +{ +public: + QString name() { return "StackedBar"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return "Vertical Log"; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("StackedBar: BarCateogry X, Log Y"); + + QString name("Series "); + QStackedBarSeries *series = new QStackedBarSeries(chart); + QLogValueAxis *logvalueaxis = new QLogValueAxis(); + logvalueaxis->setBase(2); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + for (int i(0); i < table.count(); i++) { + QBarSet *set = new QBarSet("Bar set " + QString::number(i)); + foreach (Data data, table[i]) + *set << data.first.y(); + series->append(set); + } + chart->addSeries(series); + + int count = series->barSets().first()->count(); + + + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + + chart->setAxisY(logvalueaxis, series); + chart->setAxisX(barcategory, series); + + return chart; + } +}; + +DECLARE_CHART(BarStackedLogY); diff --git a/tests/manual/chartviewer/charts/domain/linelogxlogy.cpp b/tests/manual/chartviewer/charts/domain/linelogxlogy.cpp new file mode 100644 index 00000000..dea1ef04 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/linelogxlogy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class LineLogXLogY: public Chart +{ +public: + QString name() { return "Line LogX LogY"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Line: Log X, Log Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QLogValueAxis *axisX= new QLogValueAxis(); + axisX->setBase(2); + QLogValueAxis *axisY= new QLogValueAxis(); + axisY->setBase(2); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(LineLogXLogY); diff --git a/tests/manual/chartviewer/charts/domain/linelogxy.cpp b/tests/manual/chartviewer/charts/domain/linelogxy.cpp new file mode 100644 index 00000000..ca0d7cf1 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/linelogxy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class LineLogXY: public Chart +{ +public: + QString name() { return "Line LogX Y"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Line: Log X, Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QLogValueAxis *axisX= new QLogValueAxis(); + axisX->setBase(2); + QValueAxis *axisY= new QValueAxis(); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(LineLogXY); diff --git a/tests/manual/chartviewer/charts/domain/linexlogy.cpp b/tests/manual/chartviewer/charts/domain/linexlogy.cpp new file mode 100644 index 00000000..16ec254d --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/linexlogy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class LineXLogY: public Chart +{ +public: + QString name() { return "Line X LogY"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Line: X, Log Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QValueAxis *axisX= new QValueAxis(); + QLogValueAxis *axisY= new QLogValueAxis(); + axisY->setBase(2); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(LineXLogY); diff --git a/tests/manual/chartviewer/charts/domain/scatterlogxlogy.cpp b/tests/manual/chartviewer/charts/domain/scatterlogxlogy.cpp new file mode 100644 index 00000000..c87def5c --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/scatterlogxlogy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class ScatterLogXLogY: public Chart +{ +public: + QString name() { return "Scatter LogX LogY"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Scatter: Log X, Log Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QScatterSeries *series = new QScatterSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QLogValueAxis *axisX= new QLogValueAxis(); + axisX->setBase(2); + QLogValueAxis *axisY= new QLogValueAxis(); + axisY->setBase(2); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(ScatterLogXLogY); diff --git a/tests/manual/chartviewer/charts/domain/scatterlogxy.cpp b/tests/manual/chartviewer/charts/domain/scatterlogxy.cpp new file mode 100644 index 00000000..d7603616 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/scatterlogxy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class ScatterLogXY: public Chart +{ +public: + QString name() { return "Scatter LogX Y"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Scatter: Log X, Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QScatterSeries *series = new QScatterSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QLogValueAxis *axisX= new QLogValueAxis(); + axisX->setBase(2); + QValueAxis *axisY= new QValueAxis(); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(ScatterLogXY); diff --git a/tests/manual/chartviewer/charts/domain/scatterxlogy.cpp b/tests/manual/chartviewer/charts/domain/scatterxlogy.cpp new file mode 100644 index 00000000..bc09bf66 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/scatterxlogy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class ScatterXLogY: public Chart +{ +public: + QString name() { return "Scatter X LogY"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Scatter: X, Log Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QScatterSeries *series = new QScatterSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QValueAxis *axisX= new QValueAxis(); + QLogValueAxis *axisY= new QLogValueAxis(); + axisY->setBase(2); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(ScatterXLogY); diff --git a/tests/manual/chartviewer/charts/domain/splinelogxlogy.cpp b/tests/manual/chartviewer/charts/domain/splinelogxlogy.cpp new file mode 100644 index 00000000..b87a4bb7 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/splinelogxlogy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class SplineLogXLogY: public Chart +{ +public: + QString name() { return "Spline LogX LogY"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Spline: Log X, Log Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QSplineSeries *series = new QSplineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QLogValueAxis *axisX= new QLogValueAxis(); + axisX->setBase(2); + QLogValueAxis *axisY= new QLogValueAxis(); + axisY->setBase(2); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(SplineLogXLogY); diff --git a/tests/manual/chartviewer/charts/domain/splinelogxy.cpp b/tests/manual/chartviewer/charts/domain/splinelogxy.cpp new file mode 100644 index 00000000..0354aadf --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/splinelogxy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class SplineLogXY: public Chart +{ +public: + QString name() { return "Spline LogX Y"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Spline: Log X, Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QSplineSeries *series = new QSplineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QLogValueAxis *axisX= new QLogValueAxis(); + axisX->setBase(2); + QValueAxis *axisY= new QValueAxis(); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(SplineLogXY); diff --git a/tests/manual/chartviewer/charts/domain/splinexlogy.cpp b/tests/manual/chartviewer/charts/domain/splinexlogy.cpp new file mode 100644 index 00000000..6a6d8210 --- /dev/null +++ b/tests/manual/chartviewer/charts/domain/splinexlogy.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class SplineXLogY: public Chart +{ +public: + QString name() { return "Spline X LogY"; } + QString category() { return QObject::tr("Domain"); } + QString subCategory() { return QObject::tr("Both Log"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Spline: X, Log Y"); + + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QSplineSeries *series = new QSplineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + + QValueAxis *axisX= new QValueAxis(); + QLogValueAxis *axisY= new QLogValueAxis(); + axisY->setBase(2); + foreach (QAbstractSeries *series, chart->series()) { + chart->setAxisX(axisX, series); + chart->setAxisY(axisY, series); + } + + return chart; + } +}; + +DECLARE_CHART(SplineXLogY); diff --git a/tests/manual/chartviewer/charts/font/font.cpp b/tests/manual/chartviewer/charts/font/font.cpp new file mode 100644 index 00000000..b544ca94 --- /dev/null +++ b/tests/manual/chartviewer/charts/font/font.cpp @@ -0,0 +1,126 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include + +class FontChart: public Chart +{ +public: + FontChart(int fontSize): m_fontSize(fontSize) {}; + QString name() { return QObject::tr("Font") + " " + QString::number(m_fontSize); } + QString category() { return QObject::tr("Font"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Font size " + QString::number(m_fontSize)); + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + chart->createDefaultAxes(); + QFont font; + font.setPixelSize(m_fontSize); + chart->setTitleFont(font); + chart->axisX()->setLabelsFont(font); + chart->axisY()->setLabelsFont(font); + chart->axisX()->setTitleText("Axis X"); + chart->axisY()->setTitleText("Axis Y"); + chart->axisX()->setTitleFont(font); + chart->axisY()->setTitleFont(font); + return chart; + } + +private: + int m_fontSize; +}; + +class FontChart6: public FontChart +{ +public: + FontChart6(): FontChart(6) {}; +}; + +class FontChart8: public FontChart +{ +public: + FontChart8(): FontChart(8) {}; +}; + +class FontChart10: public FontChart +{ +public: + FontChart10(): FontChart(10) {}; +}; + +class FontChart14: public FontChart +{ +public: + FontChart14(): FontChart(14) {}; +}; + +class FontChart18: public FontChart +{ +public: + FontChart18(): FontChart(18) {}; +}; + +class FontChart20: public FontChart +{ +public: + FontChart20(): FontChart(20) {}; +}; + +class FontChart24: public FontChart +{ +public: + FontChart24(): FontChart(24) {}; +}; + +class FontChart28: public FontChart +{ +public: + FontChart28(): FontChart(28) {}; +}; + +class FontChart32: public FontChart +{ +public: + FontChart32(): FontChart(32) {}; +}; + +DECLARE_CHART(FontChart6); +DECLARE_CHART(FontChart8); +DECLARE_CHART(FontChart10); +DECLARE_CHART(FontChart14); +DECLARE_CHART(FontChart18); +DECLARE_CHART(FontChart20); +DECLARE_CHART(FontChart24); +DECLARE_CHART(FontChart28); +DECLARE_CHART(FontChart32); diff --git a/tests/manual/chartviewer/charts/multiaxis/multivalueaxis.cpp b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis.cpp new file mode 100644 index 00000000..960b9c6a --- /dev/null +++ b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class MultiValueAxis: public Chart +{ +public: + QString name() + { + return "AxisSet 1"; + } + QString category() + { + return QObject::tr("MultiAxis"); + } + QString subCategory() + { + return "MultiValueAxis"; + } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + QValueAxis *axisX; + QValueAxis *axisY; + + chart->setTitle("MultiValueAxis1"); + + QString name("Series"); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + + chart->addSeries(series); + axisX = new QValueAxis(); + axisX->setLinePenColor(series->pen().color()); + axisY = new QValueAxis(); + axisY->setLinePenColor(series->pen().color()); + + chart->addAxis(axisX,nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); + chart->addAxis(axisY,nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); + series->attachAxis(axisX); + series->attachAxis(axisY); + + nameIndex++; + } + + return chart; + } +}; + +DECLARE_CHART(MultiValueAxis); diff --git a/tests/manual/chartviewer/charts/multiaxis/multivalueaxis2.cpp b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis2.cpp new file mode 100644 index 00000000..91e1d7a3 --- /dev/null +++ b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis2.cpp @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class MultiValueAxis2: public Chart +{ +public: + QString name() + { + return "AxisSet 2"; + } + QString category() + { + return QObject::tr("MultiAxis"); + } + QString subCategory() + { + return "MultiValueAxis"; + } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + QValueAxis *axisX; + QValueAxis *axisY; + + chart->setTitle("MultiValueAxis2"); + + QString name("Series"); + int nameIndex = 1; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + + chart->addSeries(series); + axisX = new QValueAxis(); + axisX->setLinePenColor(series->pen().color()); + + axisY = new QValueAxis(); + axisY->setLinePenColor(series->pen().color()); + + chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); + chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); + series->attachAxis(axisX); + series->attachAxis(axisY); + nameIndex++; + } + + return chart; + } +}; + +DECLARE_CHART(MultiValueAxis2); diff --git a/tests/manual/chartviewer/charts/multiaxis/multivalueaxis3.cpp b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis3.cpp new file mode 100644 index 00000000..3d25169e --- /dev/null +++ b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis3.cpp @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class MultiValueAxis3: public Chart +{ +public: + QString name() + { + return "AxisSet 3"; + } + QString category() + { + return QObject::tr("MultiAxis"); + } + QString subCategory() + { + return "MultiValueAxis"; + } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + QValueAxis *axisX; + QValueAxis *axisY; + + chart->setTitle("MultiValueAxis3"); + + QString name("Series"); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + + chart->addSeries(series); + axisX = new QValueAxis(); + axisX->setLinePenColor(series->pen().color()); + axisX->setTitleText("ValueAxis for series" + QString::number(nameIndex)); + + axisY = new QValueAxis(); + axisY->setLinePenColor(series->pen().color()); + axisY->setTitleText("ValueAxis for series" + QString::number(nameIndex)); + + chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); + chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); + series->attachAxis(axisX); + series->attachAxis(axisY); + nameIndex++; + } + + return chart; + } +}; + +DECLARE_CHART(MultiValueAxis3); diff --git a/tests/manual/chartviewer/charts/multiaxis/multivalueaxis4.cpp b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis4.cpp new file mode 100644 index 00000000..5a69ec74 --- /dev/null +++ b/tests/manual/chartviewer/charts/multiaxis/multivalueaxis4.cpp @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include + +class MultiValueAxis4: public Chart +{ +public: + QString name() + { + return "AxisSet 4"; + } + QString category() + { + return QObject::tr("MultiAxis"); + } + QString subCategory() + { + return "MultiValueAxis"; + } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + QValueAxis *axisX; + QValueAxis *axisY; + + chart->setTitle("MultiValueAxis4"); + + QString name("Series"); + int nameIndex = 1; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + + chart->addSeries(series); + axisX = new QValueAxis(); + axisX->setLinePenColor(series->pen().color()); + axisX->setTitleText("ValueAxis for series" + QString::number(nameIndex)); + axisY = new QValueAxis(); + axisY->setLinePenColor(series->pen().color()); + axisY->setTitleText("ValueAxis for series" + QString::number(nameIndex)); + + chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); + chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); + series->attachAxis(axisX); + series->attachAxis(axisY); + nameIndex++; + } + + return chart; + } +}; + +DECLARE_CHART(MultiValueAxis4); diff --git a/tests/manual/chartviewer/charts/multiaxis/multivaluebaraxis.cpp b/tests/manual/chartviewer/charts/multiaxis/multivaluebaraxis.cpp new file mode 100644 index 00000000..300a0f4b --- /dev/null +++ b/tests/manual/chartviewer/charts/multiaxis/multivaluebaraxis.cpp @@ -0,0 +1,102 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include +#include +#include +#include +#include + +class MultiValueBarAxis: public Chart +{ +public: + QString name() + { + return "Axis"; + } + QString category() + { + return QObject::tr("MultiAxis"); + } + QString subCategory() + { + return "MultiBarAxis"; + } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + QValueAxis *axisX; + QValueAxis *axisY; + QBarSeries *series = new QBarSeries(); + QBarCategoryAxis *barcategory = new QBarCategoryAxis(); + + chart->setTitle("MultiBarAxis"); + + QString name("Series"); + int nameIndex = 1; + for (int i(0); i < 2; i++) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, table.at(i)) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + + chart->addSeries(series); + axisX = new QValueAxis(); + axisX->setLinePenColor(series->pen().color()); + axisX->setTitleText("ValueAxis for series" + QString::number(nameIndex)); + + axisY = new QValueAxis(); + axisY->setLinePenColor(series->pen().color()); + axisY->setTitleText("ValueAxis for series" + QString::number(nameIndex)); + + chart->addAxis(axisX, nameIndex % 2?Qt::AlignTop:Qt::AlignBottom); + chart->addAxis(axisY, nameIndex % 2?Qt::AlignRight:Qt::AlignLeft); + series->attachAxis(axisX); + series->attachAxis(axisY); + nameIndex++; + } + + QBarSet *set = new QBarSet("Bar set "); + foreach (Data data, table.at(2)) + *set << data.first.y(); + + int count = set->count(); + for (int i = 0; i < count; i++) { + barcategory->append("BarSet " + QString::number(i)); + } + series->append(set); + chart->addSeries(series); + + barcategory->setLinePen(set->brush().color()); + barcategory->setGridLinePen(set->brush().color()); + barcategory->setTitleText("BarCategoryAxis Title"); + + chart->setAxisX(barcategory, series); + + return chart; + } +}; + + +DECLARE_CHART(MultiValueBarAxis); diff --git a/tests/manual/chartviewer/charts/pieseries/donutchart.cpp b/tests/manual/chartviewer/charts/pieseries/donutchart.cpp new file mode 100644 index 00000000..50026ecf --- /dev/null +++ b/tests/manual/chartviewer/charts/pieseries/donutchart.cpp @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include + +class DonutChart: public Chart +{ +public: + QString name() { return QObject::tr("DonutChart"); } + QString category() { return QObject::tr("PieSeries"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Donut chart"); + for (int i = 0, j = table.count(); i < table.count(); i++, j--) { + QPieSeries *series = new QPieSeries(chart); + foreach (Data data, table[i]) { + QPieSlice *slice = series->append(data.second, data.first.y()); + if (data == table[i].first()) + slice->setLabelVisible(); + } + series->setPieSize(j / (qreal) table.count()); + if (j > 1) + series->setHoleSize((j - 1) / (qreal) table.count() + 0.1); + series->setHorizontalPosition(0.5); + series->setVerticalPosition(0.5); + chart->addSeries(series); + } + return chart; + } +}; + +DECLARE_CHART(DonutChart) + diff --git a/tests/manual/chartviewer/charts/pieseries/piechart.cpp b/tests/manual/chartviewer/charts/pieseries/piechart.cpp new file mode 100644 index 00000000..f88e4657 --- /dev/null +++ b/tests/manual/chartviewer/charts/pieseries/piechart.cpp @@ -0,0 +1,57 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include + +class PieChart: public Chart +{ +public: + QString name() { return QObject::tr("PieChart"); } + QString category() { return QObject::tr("PieSeries"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Pie chart"); + qreal pieSize = 1.0 / table.count(); + for (int i = 0; i < table.count(); i++) { + QPieSeries *series = new QPieSeries(chart); + foreach (Data data, table[i]) { + QPieSlice *slice = series->append(data.second, data.first.y()); + if (data == table[i].first()) { + slice->setLabelVisible(); + slice->setExploded(); + } + } + qreal hPos = (pieSize / 2) + (i / (qreal) table.count()); + series->setPieSize(pieSize); + series->setHorizontalPosition(hPos); + series->setVerticalPosition(0.5); + chart->addSeries(series); + } + return chart; + } +}; + +DECLARE_CHART(PieChart) + diff --git a/tests/manual/chartviewer/charts/size/sizecharts.cpp b/tests/manual/chartviewer/charts/size/sizecharts.cpp new file mode 100644 index 00000000..6be59159 --- /dev/null +++ b/tests/manual/chartviewer/charts/size/sizecharts.cpp @@ -0,0 +1,140 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class SizeChart: public Chart +{ +public: + QString name() { return QObject::tr("PlotArea"); } + QString category() { return QObject::tr("Size"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + + QChart *chart = new QChart(); + QString name("Series"); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + chart->setContentsMargins(0,0,0,0); + chart->setMargins(QMargins(0,0,0,0)); + return chart; + } +}; + +class SizeChart2: public SizeChart +{ +public: + QString name() { return QObject::tr("PA + T"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = SizeChart::createChart(table); + chart->setTitle(name()); + return chart; + } +}; + +class SizeChart3: public SizeChart2 +{ +public: + QString name() { return QObject::tr("PA+T+CM10"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = SizeChart2::createChart(table); + chart->setContentsMargins(10,10,10,10); + + return chart; + } +}; + +class SizeChart4: public SizeChart3 +{ +public: + QString name() { return QObject::tr("PA+T+CM10+M25"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = SizeChart3::createChart(table); + chart->setMargins(QMargins(30,30,30,30)); + return chart; + } +}; + +class SizeChart5: public SizeChart4 +{ +public: + QString name() { return QObject::tr("PA+T+CM10+M25+AX"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = SizeChart4::createChart(table); + chart->createDefaultAxes(); + chart->axisY()->hide(); + return chart; + } +}; + +class SizeChart6: public SizeChart4 +{ +public: + QString name() { return QObject::tr("PA+T+CM10+M25+AY"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = SizeChart4::createChart(table); + chart->createDefaultAxes(); + chart->axisX()->hide(); + return chart; + } +}; + +class SizeChart7: public SizeChart4 +{ +public: + QString name() { return QObject::tr("PA+T+CM10+M25+AX+AY"); } + + QChart *createChart(const DataTable &table) + { + QChart *chart = SizeChart4::createChart(table); + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(SizeChart) +DECLARE_CHART(SizeChart2) +DECLARE_CHART(SizeChart3) +DECLARE_CHART(SizeChart4) +DECLARE_CHART(SizeChart5) +DECLARE_CHART(SizeChart6) +DECLARE_CHART(SizeChart7) diff --git a/tests/manual/chartviewer/charts/xyseries/areachart.cpp b/tests/manual/chartviewer/charts/xyseries/areachart.cpp new file mode 100644 index 00000000..dc869c3b --- /dev/null +++ b/tests/manual/chartviewer/charts/xyseries/areachart.cpp @@ -0,0 +1,65 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include +#include + +class AreaChart: public Chart +{ +public: + QString name() { return QObject::tr("AreaChart"); } + QString category() { return QObject::tr("XYSeries"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Area chart"); + + // The lower series initialized to zero values + QLineSeries *lowerSeries = 0; + QString name("Series "); + int nameIndex = 0; + for (int i(0); i < table.count(); i++) { + QLineSeries *upperSeries = new QLineSeries(chart); + for (int j(0); j < table[i].count(); j++) { + Data data = table[i].at(j); + if (lowerSeries) { + const QList& points = lowerSeries->points(); + upperSeries->append(QPointF(j, points[i].y() + data.first.y())); + } else { + upperSeries->append(QPointF(j, data.first.y())); + } + } + QAreaSeries *area = new QAreaSeries(upperSeries, lowerSeries); + area->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(area); + chart->createDefaultAxes(); + lowerSeries = upperSeries; + } + return chart; + } +}; + +DECLARE_CHART(AreaChart) + diff --git a/tests/manual/chartviewer/charts/xyseries/linechart.cpp b/tests/manual/chartviewer/charts/xyseries/linechart.cpp new file mode 100644 index 00000000..4ef39e4c --- /dev/null +++ b/tests/manual/chartviewer/charts/xyseries/linechart.cpp @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include + +class LineChart: public Chart +{ +public: + QString name() { return QObject::tr("LineChart"); } + QString category() { return QObject::tr("XYSeries"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Line chart"); + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QLineSeries *series = new QLineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(LineChart) + diff --git a/tests/manual/chartviewer/charts/xyseries/scatterchart.cpp b/tests/manual/chartviewer/charts/xyseries/scatterchart.cpp new file mode 100644 index 00000000..d49e7f49 --- /dev/null +++ b/tests/manual/chartviewer/charts/xyseries/scatterchart.cpp @@ -0,0 +1,51 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include + +class ScatterChart: public Chart +{ +public: + QString name() { return QObject::tr("ScatterChart"); } + QString category() { return QObject::tr("XYSeries"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Scatter chart"); + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QScatterSeries *series = new QScatterSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(ScatterChart) diff --git a/tests/manual/chartviewer/charts/xyseries/splinechart.cpp b/tests/manual/chartviewer/charts/xyseries/splinechart.cpp new file mode 100644 index 00000000..38ffe340 --- /dev/null +++ b/tests/manual/chartviewer/charts/xyseries/splinechart.cpp @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "charts.h" +#include +#include + +class SplineChart: public Chart +{ +public: + QString name() { return QObject::tr("SplineChart"); } + QString category() { return QObject::tr("XYSeries"); } + QString subCategory() { return QString::null; } + + QChart *createChart(const DataTable &table) + { + QChart *chart = new QChart(); + chart->setTitle("Spline chart"); + QString name("Series "); + int nameIndex = 0; + foreach (DataList list, table) { + QSplineSeries *series = new QSplineSeries(chart); + foreach (Data data, list) + series->append(data.first); + series->setName(name + QString::number(nameIndex)); + nameIndex++; + chart->addSeries(series); + } + chart->createDefaultAxes(); + return chart; + } +}; + +DECLARE_CHART(SplineChart) + diff --git a/tests/manual/chartviewer/chartviewer.pro b/tests/manual/chartviewer/chartviewer.pro new file mode 100644 index 00000000..693c1eab --- /dev/null +++ b/tests/manual/chartviewer/chartviewer.pro @@ -0,0 +1,10 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} +include(charts/charts.pri) +TARGET = chartviewer +QT += opengl +INCLUDEPATH += . +SOURCES += main.cpp window.cpp view.cpp grid.cpp +HEADERS += window.h view.h charts.h model.h grid.h + diff --git a/tests/manual/chartviewer/grid.cpp b/tests/manual/chartviewer/grid.cpp new file mode 100644 index 00000000..f1619ab0 --- /dev/null +++ b/tests/manual/chartviewer/grid.cpp @@ -0,0 +1,301 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "grid.h" +#include "charts.h" +#include +#include +#include +#include + +Grid::Grid(int size, QGraphicsItem *parent) + : QGraphicsWidget(parent), + m_listCount(3), + m_valueMax(10), + m_valueCount(7), + m_size(size), + m_dataTable(Model::generateRandomData(m_listCount, m_valueMax, m_valueCount)), + m_state(NoState), + m_currentState(NoState), + m_rubberBand(new QGraphicsRectItem()), + m_gridLayout(new QGraphicsGridLayout()) +{ + setLayout(m_gridLayout); + m_rubberBand->setParentItem(this); + m_rubberBand->setVisible(false); + m_rubberBand->setZValue(2); +} + +Grid::~Grid() +{ + +} + +void Grid::createCharts(const QString &category) +{ + clear(); + + QChart *qchart(0); + Charts::ChartList list = Charts::chartList(); + + if (category.isEmpty()) { + for (int i = 0; i < m_size * m_size; ++i) { + QChart *chart = new QChart(); + chart->setTitle(QObject::tr("Empty")); + m_gridLayout->addItem(chart, i / m_size, i % m_size); + m_chartHash[chart] = i; + m_chartHashRev[i] = chart; + } + } else { + int j = 0; + for (int i = 0; i < list.size(); ++i) { + Chart *chart = list.at(i); + if (chart->category() == category && j < m_size * m_size) { + qchart = list.at(i)->createChart(m_dataTable); + m_gridLayout->addItem(qchart, j / m_size, j % m_size); + m_chartHash[qchart] = j; + m_chartHashRev[j] = qchart; + j++; + } + } + for (; j < m_size * m_size; ++j) { + qchart = new QChart(); + qchart->setTitle(QObject::tr("Empty")); + m_gridLayout->addItem(qchart, j / m_size, j % m_size); + m_chartHash[qchart] = j; + m_chartHashRev[j] = qchart; + } + } + m_gridLayout->activate(); +} + +void Grid::createCharts(const QString &category, const QString &subcategory, const QString &name) +{ + clear(); + + QChart *qchart(0); + Charts::ChartList list = Charts::chartList(); + Chart *chart; + + //find chart + for (int i = 0; i < list.size(); ++i) { + + chart = list.at(i); + if (chart->category() == category && + chart->subCategory() == subcategory && + chart->name() == name) { + break; + } + chart = 0; + } + + //create charts + for (int j = 0; j < m_size * m_size; ++j) { + + if(!chart){ + qchart = new QChart(); + }else{ + qchart = chart->createChart(m_dataTable); + } + qchart->setTitle(QObject::tr("Empty")); + m_gridLayout->addItem(qchart, j / m_size, j % m_size); + m_chartHash[qchart] = j; + m_chartHashRev[j] = qchart; + } + + m_gridLayout->activate(); +} + +void Grid::clear() +{ + int count = m_gridLayout->count(); + for (int i = 0; i < count; ++i) + m_gridLayout->removeAt(0); + + qDeleteAll(m_chartHash.keys()); + m_chartHash.clear(); + m_chartHashRev.clear(); +} + +QList Grid::charts() +{ + return m_chartHash.keys(); +} + +void Grid::setState(State state) +{ + m_state = state; +} + +void Grid::setSize(int size) +{ + if (m_size != size) { + + //remove old; + int count = m_gridLayout->count(); + for (int i = 0; i < count; ++i) { + m_gridLayout->removeAt(0); + } + + + QChart* qchart = 0; + int j = 0; + + for (; j < size * size; ++j) { + + qchart = m_chartHashRev[j]; + + if (!qchart){ + qchart = new QChart(); + qchart->setTitle(QObject::tr("Empty")); + } + + m_chartHash[qchart] = j; + m_chartHashRev[j] = qchart; + m_gridLayout->addItem(qchart, j / size, j % size); + } + + //delete rest + while (j < m_size * m_size) { + QChart* qchart = m_chartHashRev.take(j); + delete(qchart); + m_chartHash.remove(qchart); + j++; + } + + m_size = size; + } +} + +void Grid::setRubberPen(const QPen &pen) +{ + m_rubberBand->setPen(pen); +} + +void Grid::replaceChart(QChart *oldChart, Chart *newChart) +{ + int index = m_chartHash[oldChart]; + //not in 4.7.2 m_baseLayout->removeItem(qchart); + for (int i = 0; i < m_gridLayout->count(); ++i) { + if (m_gridLayout->itemAt(i) == oldChart) { + m_gridLayout->removeAt(i); + break; + } + } + m_chartHash.remove(oldChart); + m_chartHashRev.remove(index); + QChart *chart = newChart->createChart(m_dataTable); + m_gridLayout->addItem(chart, index / m_size, index % m_size); + m_chartHash[chart] = index; + m_chartHashRev[index] = chart; + delete oldChart; +} + +void Grid::mousePressEvent(QGraphicsSceneMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) { + + m_origin = event->pos(); + m_currentState = NoState; + + foreach (QChart *chart, charts()) { + QRectF geometryRect = chart->geometry(); + QRectF plotArea = chart->plotArea(); + plotArea.translate(geometryRect.topLeft()); + if (plotArea.contains(m_origin)) { + m_currentState = m_state; + if (m_currentState == NoState) emit chartSelected(chart); + break; + } + } + if (m_currentState == ZoomState) { + m_rubberBand->setRect(QRectF(m_origin, QSize())); + m_rubberBand->setVisible(true); + } + + event->accept(); + } + + if (event->button() == Qt::RightButton) { + m_origin = event->pos(); + m_currentState = m_state; + } +} + +void Grid::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +{ + if (m_currentState != NoState) { + + foreach (QChart *chart, charts()) { + QRectF geometryRect = chart->geometry(); + QRectF plotArea = chart->plotArea(); + plotArea.translate(geometryRect.topLeft()); + if (plotArea.contains(m_origin)) { + if (m_currentState == ScrollState) { + QPointF delta = m_origin - event->pos(); + chart->scroll(delta.x(), -delta.y()); + } + if (m_currentState == ZoomState && plotArea.contains(event->pos())) + m_rubberBand->setRect(QRectF(m_origin, event->pos()).normalized()); + break; + } + } + if (m_currentState == ScrollState) + m_origin = event->pos(); + event->accept(); + } +} + +void Grid::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +{ + if (event->button() == Qt::LeftButton) { + if (m_currentState == ZoomState) { + m_rubberBand->setVisible(false); + + foreach (QChart *chart, charts()) { + QRectF geometryRect = chart->geometry(); + QRectF plotArea = chart->plotArea(); + plotArea.translate(geometryRect.topLeft()); + if (plotArea.contains(m_origin)) { + QRectF rect = m_rubberBand->rect(); + rect.translate(-geometryRect.topLeft()); + chart->zoomIn(rect); + break; + } + } + } + m_currentState = NoState; + event->accept(); + } + + if (event->button() == Qt::RightButton) { + if (m_currentState == ZoomState) { + foreach (QChart *chart, charts()) { + QRectF geometryRect = chart->geometry(); + QRectF plotArea = chart->plotArea(); + plotArea.translate(geometryRect.topLeft()); + if (plotArea.contains(m_origin)) { + chart->zoomOut(); + break; + } + } + } + } +} diff --git a/tests/manual/chartviewer/grid.h b/tests/manual/chartviewer/grid.h new file mode 100644 index 00000000..a519503d --- /dev/null +++ b/tests/manual/chartviewer/grid.h @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef GRID_H_ +#define GRID_H_ + +#include "model.h" +#include +#include + +class QGraphicsGridLayout; +class Chart; + +QT_CHARTS_BEGIN_NAMESPACE +class QChart; +QT_CHARTS_END_NAMESPACE + +QT_CHARTS_USE_NAMESPACE + +class Grid : public QGraphicsWidget +{ + Q_OBJECT +public: + enum State { NoState = 0, ZoomState, ScrollState}; + + Grid(int size, QGraphicsItem *parent = 0); + ~Grid(); + + QList charts(); + void createCharts(const QString &category = QString()); + void createCharts(const QString &category, const QString &subcategory, const QString &name); + void replaceChart(QChart *oldChart, Chart *newChart); + void setState(State state); + State state() const { return m_state; }; + void setRubberPen(const QPen &pen); + void setSize(int size); + int size() const {return m_size;} + +Q_SIGNALS: + void chartSelected(QChart *chart); + +protected: + void mousePressEvent(QGraphicsSceneMouseEvent *event); + void mouseMoveEvent(QGraphicsSceneMouseEvent *event); + void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); + +private: + void clear(); + +private: + int m_listCount; + int m_valueMax; + int m_valueCount; + int m_size; + DataTable m_dataTable; + QHash m_chartHash; + QHash m_chartHashRev; + State m_state; + State m_currentState; + QPointF m_origin; + QGraphicsRectItem *m_rubberBand; + QGraphicsGridLayout *m_gridLayout; +}; + +#endif /* GRID_H_ */ diff --git a/tests/manual/chartviewer/main.cpp b/tests/manual/chartviewer/main.cpp new file mode 100644 index 00000000..6a267632 --- /dev/null +++ b/tests/manual/chartviewer/main.cpp @@ -0,0 +1,85 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "window.h" +#include +#include +#include + +QVariantHash parseArgs(QStringList args) +{ + QVariantHash parameters; + + while (!args.isEmpty()) { + + QString param = args.takeFirst(); + if (param.startsWith("--")) { + param.remove(0, 2); + + if (args.isEmpty() || args.first().startsWith("--")) { + parameters[param] = true; + } else { + QString value = args.takeFirst(); + if (value == "true" || value == "on" || value == "enabled") { + parameters[param] = true; + } else if (value == "false" || value == "off" || value == "disable") { + parameters[param] = false; + } else { + if (value.endsWith('"')) + value.chop(1); + if (value.startsWith('"')) + value.remove(0, 1); + parameters[param] = value; + } + } + } + } + + return parameters; +} + +void printHelp() +{ + std::cout << "chartviewer "<< std::endl; + std::cout << " --view <1/2/3/4> - set size of charts' grid" << std::endl; + std::cout << " --chart - set template to be show " << std::endl; + std::cout << " --opengl - set opengl mode" << std::endl; + std::cout << " --theme - set theme" << std::endl; + std::cout << " --legend - set legend alignment" << std::endl; + std::cout << " --help - prints this help" << std::endl; + std::cout << "Examples: " << std::endl; + std::cout << " chartviewer --view 4 --chart Axis" << std::endl; + std::cout << " chartviewer --view 1 --chart Axis::BarCategoryAxis::Axis " << std::endl; +} + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + QVariantHash parameters = parseArgs(QApplication::arguments()); + if(parameters.contains("help")) + { + printHelp(); + return 0; + } + Window window(parameters); + window.show(); + return a.exec(); +} + diff --git a/tests/manual/chartviewer/model.h b/tests/manual/chartviewer/model.h new file mode 100644 index 00000000..0400a631 --- /dev/null +++ b/tests/manual/chartviewer/model.h @@ -0,0 +1,66 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef MODEL_H +#define MODEL_H + +#include +#include +#include +#include +#include + +typedef QPair Data; +typedef QList DataList; +typedef QList DataTable; + + +class Model +{ +private: + Model() {} + +public: + static DataTable generateRandomData(int listCount, int valueMax, int valueCount) + { + DataTable dataTable; + + // set seed for random stuff + qsrand(QTime(0, 0, 0).secsTo(QTime::currentTime())); + + // generate random data + for (int i(0); i < listCount; i++) { + DataList dataList; + qreal yValue(0.1); + for (int j(0); j < valueCount; j++) { + yValue = yValue + (qreal)(qrand() % valueMax) / (qreal) valueCount; + QPointF value( + (j + (qreal) qrand() / (qreal) RAND_MAX) + * ((qreal) valueMax / (qreal) valueCount), yValue); + QString label = "Slice " + QString::number(i) + ":" + QString::number(j); + dataList << Data(value, label); + } + dataTable << dataList; + } + return dataTable; + } +}; + +#endif diff --git a/tests/manual/chartviewer/view.cpp b/tests/manual/chartviewer/view.cpp new file mode 100644 index 00000000..67ef7918 --- /dev/null +++ b/tests/manual/chartviewer/view.cpp @@ -0,0 +1,56 @@ +/**************************************************************************** + ** + ** Copyright (C) 2014 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 Enterprise Charts Add-on. + ** + ** $QT_BEGIN_LICENSE$ + ** Licensees holding valid Qt Enterprise licenses may use this file in + ** accordance with the Qt Enterprise 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 "view.h" +#include +#include +#include + +View::View(QGraphicsScene *scene, QGraphicsWidget *form , QWidget *parent) + : QGraphicsView(scene, parent), + m_form(form) +{ + setDragMode(QGraphicsView::NoDrag); + setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); +} + +void View::resizeEvent(QResizeEvent *event) +{ + if (scene()) + scene()->setSceneRect(QRect(QPoint(0, 0), event->size())); + if (m_form) + m_form->resize(QSizeF(event->size())); + QGraphicsView::resizeEvent(event); +} + +void View::mouseMoveEvent(QMouseEvent *event) +{ + //BugFix somehow view always eats the mouse move event; + QGraphicsView::mouseMoveEvent(event); + event->setAccepted(false); +} + +void View::mouseReleaseEvent(QMouseEvent *event) +{ + QGraphicsView::mouseReleaseEvent(event); + //BugFix somehow view always eats the mouse release event; + event->setAccepted(false); +} diff --git a/tests/manual/chartviewer/view.h b/tests/manual/chartviewer/view.h new file mode 100644 index 00000000..c9c80860 --- /dev/null +++ b/tests/manual/chartviewer/view.h @@ -0,0 +1,42 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef VIEW_H +#define VIEW_H +#include + +class QGraphicsScene; +class QResizeEvent; + +class View: public QGraphicsView +{ +public: + View(QGraphicsScene *scene, QGraphicsWidget *form , QWidget *parent = 0); + +protected: + void resizeEvent(QResizeEvent *event); + void mouseMoveEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); + +private: + QGraphicsWidget *m_form; +}; + +#endif diff --git a/tests/manual/chartviewer/window.cpp b/tests/manual/chartviewer/window.cpp new file mode 100644 index 00000000..d535adf6 --- /dev/null +++ b/tests/manual/chartviewer/window.cpp @@ -0,0 +1,506 @@ +/**************************************************************************** + ** + ** Copyright (C) 2014 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 Enterprise Charts Add-on. + ** + ** $QT_BEGIN_LICENSE$ + ** Licensees holding valid Qt Enterprise licenses may use this file in + ** accordance with the Qt Enterprise 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 "window.h" +#include "view.h" +#include "grid.h" +#include "charts.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +Window::Window(const QVariantHash ¶meters, QWidget *parent) + : QMainWindow(parent), + m_scene(new QGraphicsScene(this)), + m_view(0), + m_form(0), + m_themeComboBox(0), + m_antialiasCheckBox(0), + m_animatedComboBox(0), + m_legendComboBox(0), + m_templateComboBox(0), + m_viewComboBox(0), + m_openGLCheckBox(0), + m_zoomCheckBox(0), + m_scrollCheckBox(0), + m_baseLayout(new QGraphicsLinearLayout()), + m_menu(createMenu()), + m_template(0), + m_grid(new Grid(-1)) +{ + createProxyWidgets(); + // create layout + QGraphicsLinearLayout *settingsLayout = new QGraphicsLinearLayout(); + + settingsLayout->setOrientation(Qt::Vertical); + settingsLayout->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum); + settingsLayout->addItem(m_widgetHash["openGLCheckBox"]); + settingsLayout->addItem(m_widgetHash["antialiasCheckBox"]); + settingsLayout->addItem(m_widgetHash["viewLabel"]); + settingsLayout->addItem(m_widgetHash["viewComboBox"]); + settingsLayout->addItem(m_widgetHash["themeLabel"]); + settingsLayout->addItem(m_widgetHash["themeComboBox"]); + settingsLayout->addItem(m_widgetHash["animationsLabel"]); + settingsLayout->addItem(m_widgetHash["animatedComboBox"]); + settingsLayout->addItem(m_widgetHash["legendLabel"]); + settingsLayout->addItem(m_widgetHash["legendComboBox"]); + settingsLayout->addItem(m_widgetHash["templateLabel"]); + settingsLayout->addItem(m_widgetHash["templateComboBox"]); + settingsLayout->addItem(m_widgetHash["scrollCheckBox"]); + settingsLayout->addItem(m_widgetHash["zoomCheckBox"]); + settingsLayout->addStretch(); + + m_baseLayout->setOrientation(Qt::Horizontal); + m_baseLayout->addItem(m_grid); + m_baseLayout->addItem(settingsLayout); + + m_form = new QGraphicsWidget(); + m_form->setLayout(m_baseLayout); + m_scene->addItem(m_form); + + m_view = new View(m_scene, m_form); + m_view->setMinimumSize(m_form->minimumSize().toSize()); + + // Set defaults + m_antialiasCheckBox->setChecked(true); + initializeFromParamaters(parameters); + updateUI(); + if(!m_category.isEmpty() && !m_subcategory.isEmpty() && !m_name.isEmpty()) + m_grid->createCharts(m_category,m_subcategory,m_name); + + + handleGeometryChanged(); + setCentralWidget(m_view); + + connectSignals(); +} + +Window::~Window() +{ +} + +void Window::connectSignals() +{ + QObject::connect(m_form, SIGNAL(geometryChanged()), this , SLOT(handleGeometryChanged())); + QObject::connect(m_viewComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); + QObject::connect(m_themeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); + QObject::connect(m_antialiasCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); + QObject::connect(m_openGLCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); + QObject::connect(m_zoomCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); + QObject::connect(m_scrollCheckBox, SIGNAL(toggled(bool)), this, SLOT(updateUI())); + QObject::connect(m_animatedComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); + QObject::connect(m_legendComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); + QObject::connect(m_templateComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(updateUI())); + QObject::connect(m_grid, SIGNAL(chartSelected(QChart*)), this, SLOT(handleChartSelected(QChart*))); +} + +void Window::createProxyWidgets() +{ + m_themeComboBox = createThemeBox(); + m_viewComboBox = createViewBox(); + m_antialiasCheckBox = new QCheckBox(tr("Anti-aliasing")); + m_animatedComboBox = createAnimationBox(); + m_legendComboBox = createLegendBox(); + m_openGLCheckBox = new QCheckBox(tr("OpenGL")); + m_zoomCheckBox = new QCheckBox(tr("Zoom")); + m_scrollCheckBox = new QCheckBox(tr("Scroll")); + m_templateComboBox = createTempleteBox(); + m_widgetHash["viewLabel"] = m_scene->addWidget(new QLabel("View")); + m_widgetHash["viewComboBox"] = m_scene->addWidget(m_viewComboBox); + m_widgetHash["themeComboBox"] = m_scene->addWidget(m_themeComboBox); + m_widgetHash["antialiasCheckBox"] = m_scene->addWidget(m_antialiasCheckBox); + m_widgetHash["animatedComboBox"] = m_scene->addWidget(m_animatedComboBox); + m_widgetHash["legendComboBox"] = m_scene->addWidget(m_legendComboBox); + m_widgetHash["openGLCheckBox"] = m_scene->addWidget(m_openGLCheckBox); + m_widgetHash["themeLabel"] = m_scene->addWidget(new QLabel("Theme")); + m_widgetHash["animationsLabel"] = m_scene->addWidget(new QLabel("Animations")); + m_widgetHash["legendLabel"] = m_scene->addWidget(new QLabel("Legend")); + m_widgetHash["templateLabel"] = m_scene->addWidget(new QLabel("Chart template")); + m_widgetHash["templateComboBox"] = m_scene->addWidget(m_templateComboBox); + m_widgetHash["zoomCheckBox"] = m_scene->addWidget(m_zoomCheckBox); + m_widgetHash["scrollCheckBox"] = m_scene->addWidget(m_scrollCheckBox); +} + +QComboBox *Window::createThemeBox() +{ + QComboBox *themeComboBox = new ComboBox(this); + themeComboBox->addItem("Light", QChart::ChartThemeLight); + themeComboBox->addItem("Blue Cerulean", QChart::ChartThemeBlueCerulean); + themeComboBox->addItem("Dark", QChart::ChartThemeDark); + themeComboBox->addItem("Brown Sand", QChart::ChartThemeBrownSand); + themeComboBox->addItem("Blue NCS", QChart::ChartThemeBlueNcs); + themeComboBox->addItem("High Contrast", QChart::ChartThemeHighContrast); + themeComboBox->addItem("Blue Icy", QChart::ChartThemeBlueIcy); + themeComboBox->addItem("Qt", QChart::ChartThemeQt); + return themeComboBox; +} + +QComboBox *Window::createViewBox() +{ + QComboBox *viewComboBox = new ComboBox(this); + viewComboBox->addItem("1 chart", 1); + viewComboBox->addItem("4 charts", 2); + viewComboBox->addItem("9 charts", 3); + viewComboBox->addItem("16 charts", 4); + return viewComboBox; +} + +QComboBox *Window::createAnimationBox() +{ + QComboBox *animationComboBox = new ComboBox(this); + animationComboBox->addItem("No Animations", QChart::NoAnimation); + animationComboBox->addItem("GridAxis Animations", QChart::GridAxisAnimations); + animationComboBox->addItem("Series Animations", QChart::SeriesAnimations); + animationComboBox->addItem("All Animations", QChart::AllAnimations); + return animationComboBox; +} + +QComboBox *Window::createLegendBox() +{ + QComboBox *legendComboBox = new ComboBox(this); + legendComboBox->addItem("No Legend ", 0); + legendComboBox->addItem("Legend Top", Qt::AlignTop); + legendComboBox->addItem("Legend Bottom", Qt::AlignBottom); + legendComboBox->addItem("Legend Left", Qt::AlignLeft); + legendComboBox->addItem("Legend Right", Qt::AlignRight); + return legendComboBox; +} + +QComboBox *Window::createTempleteBox() +{ + QComboBox *templateComboBox = new ComboBox(this); + templateComboBox->addItem("No Template", 0); + + Charts::ChartList list = Charts::chartList(); + QMultiMap categoryMap; + + foreach (Chart *chart, list) + categoryMap.insertMulti(chart->category(), chart); + + foreach (const QString &category, categoryMap.uniqueKeys()) + templateComboBox->addItem(category, category); + + return templateComboBox; +} + +void Window::initializeFromParamaters(const QVariantHash ¶meters) +{ + if (parameters.contains("view")) { + int t = parameters["view"].toInt(); + for (int i = 0; i < m_viewComboBox->count(); ++i) { + if (m_viewComboBox->itemData(i).toInt() == t) { + m_viewComboBox->setCurrentIndex(i); + break; + } + } + } + + if (parameters.contains("chart")) { + QString t = parameters["chart"].toString(); + + QRegExp rx("([a-zA-Z0-9_]*)::([a-zA-Z0-9_]*)::([a-zA-Z0-9_]*)"); + int pos = rx.indexIn(t); + + if (pos > -1) { + m_category = rx.cap(1); + m_subcategory = rx.cap(2); + m_name = rx.cap(3); + m_templateComboBox->setCurrentIndex(0); + } + else { + for (int i = 0; i < m_templateComboBox->count(); ++i) { + if (m_templateComboBox->itemText(i) == t) { + m_templateComboBox->setCurrentIndex(i); + break; + } + } + } + } + if (parameters.contains("opengl")) { + bool checked = parameters["opengl"].toBool(); + m_openGLCheckBox->setChecked(checked); + } + if (parameters.contains("theme")) { + QString t = parameters["theme"].toString(); + for (int i = 0; i < m_themeComboBox->count(); ++i) { + if (m_themeComboBox->itemText(i) == t) { + m_themeComboBox->setCurrentIndex(i); + break; + } + } + } + if (parameters.contains("animation")) { + QString t = parameters["animation"].toString(); + for (int i = 0; i < m_animatedComboBox->count(); ++i) { + if (m_animatedComboBox->itemText(i) == t) { + m_animatedComboBox->setCurrentIndex(i); + break; + } + } + } + if (parameters.contains("legend")) { + QString t = parameters["legend"].toString(); + for (int i = 0; i < m_legendComboBox->count(); ++i) { + if (m_legendComboBox->itemText(i) == t) { + m_legendComboBox->setCurrentIndex(i); + break; + } + } + } +} + +void Window::updateUI() +{ + checkView(); + checkTemplate(); + checkOpenGL(); + checkTheme(); + checkAnimationOptions(); + checkLegend(); + checkState(); +} + +void Window::checkView() +{ + int count(m_viewComboBox->itemData(m_viewComboBox->currentIndex()).toInt()); + if(m_grid->size()!=count){ + m_grid->setSize(count); + m_template = 0; + } +} + +void Window::checkLegend() +{ + Qt::Alignment alignment(m_legendComboBox->itemData(m_legendComboBox->currentIndex()).toInt()); + + if (!alignment) { + foreach (QChart *chart, m_grid->charts()) + chart->legend()->hide(); + } else { + foreach (QChart *chart, m_grid->charts()) { + chart->legend()->setAlignment(alignment); + chart->legend()->show(); + } + } +} + +void Window::checkOpenGL() +{ + bool opengl = m_openGLCheckBox->isChecked(); + bool isOpengl = qobject_cast(m_view->viewport()); + if ((isOpengl && !opengl) || (!isOpengl && opengl)) { + m_view->deleteLater(); + m_view = new View(m_scene, m_form); + m_view->setViewport(!opengl ? new QWidget() : new QGLWidget()); + setCentralWidget(m_view); + } + + bool antialias = m_antialiasCheckBox->isChecked(); + + if (opengl) + m_view->setRenderHint(QPainter::HighQualityAntialiasing, antialias); + else + m_view->setRenderHint(QPainter::Antialiasing, antialias); +} + +void Window::checkAnimationOptions() +{ + QChart::AnimationOptions options( + m_animatedComboBox->itemData(m_animatedComboBox->currentIndex()).toInt()); + + QList charts = m_grid->charts(); + + if (!charts.isEmpty() && charts.at(0)->animationOptions() != options) { + foreach (QChart *chart, charts) + chart->setAnimationOptions(options); + } +} + +void Window::checkState() +{ + bool scroll = m_scrollCheckBox->isChecked(); + + + if (m_grid->state() != Grid::ScrollState && scroll) { + m_grid->setState(Grid::ScrollState); + m_zoomCheckBox->setChecked(false); + } else if (!scroll && m_grid->state() == Grid::ScrollState) { + m_grid->setState(Grid::NoState); + } + + bool zoom = m_zoomCheckBox->isChecked(); + + if (m_grid->state() != Grid::ZoomState && zoom) { + m_grid->setState(Grid::ZoomState); + m_scrollCheckBox->setChecked(false); + } else if (!zoom && m_grid->state() == Grid::ZoomState) { + m_grid->setState(Grid::NoState); + } +} + +void Window::checkTemplate() +{ + int index = m_templateComboBox->currentIndex(); + if (m_template == index || index == 0) + return; + + m_template = index; + QString category = m_templateComboBox->itemData(index).toString(); + m_grid->createCharts(category); +} + +void Window::checkTheme() +{ + QChart::ChartTheme theme = (QChart::ChartTheme) m_themeComboBox->itemData( + m_themeComboBox->currentIndex()).toInt(); + + foreach (QChart *chart, m_grid->charts()) + chart->setTheme(theme); + + QPalette pal = window()->palette(); + if (theme == QChart::ChartThemeLight) { + pal.setColor(QPalette::Window, QRgb(0xf0f0f0)); + pal.setColor(QPalette::WindowText, QRgb(0x404044)); + } else if (theme == QChart::ChartThemeDark) { + pal.setColor(QPalette::Window, QRgb(0x121218)); + pal.setColor(QPalette::WindowText, QRgb(0xd6d6d6)); + } else if (theme == QChart::ChartThemeBlueCerulean) { + pal.setColor(QPalette::Window, QRgb(0x40434a)); + pal.setColor(QPalette::WindowText, QRgb(0xd6d6d6)); + } else if (theme == QChart::ChartThemeBrownSand) { + pal.setColor(QPalette::Window, QRgb(0x9e8965)); + pal.setColor(QPalette::WindowText, QRgb(0x404044)); + } else if (theme == QChart::ChartThemeBlueNcs) { + pal.setColor(QPalette::Window, QRgb(0x018bba)); + pal.setColor(QPalette::WindowText, QRgb(0x404044)); + } else if (theme == QChart::ChartThemeHighContrast) { + pal.setColor(QPalette::Window, QRgb(0xffab03)); + pal.setColor(QPalette::WindowText, QRgb(0x181818)); + } else if (theme == QChart::ChartThemeBlueIcy) { + pal.setColor(QPalette::Window, QRgb(0xcee7f0)); + pal.setColor(QPalette::WindowText, QRgb(0x404044)); + } else if (theme == QChart::ChartThemeQt) { + pal.setColor(QPalette::Window, QRgb(0xf0f0f0)); + pal.setColor(QPalette::WindowText, QRgb(0x404044)); + } else { + pal.setColor(QPalette::Window, QRgb(0xf0f0f0)); + pal.setColor(QPalette::WindowText, QRgb(0x404044)); + } + foreach (QGraphicsProxyWidget *widget, m_widgetHash) + widget->setPalette(pal); + m_view->setBackgroundBrush(pal.color((QPalette::Window))); + m_grid->setRubberPen(pal.color((QPalette::WindowText))); +} + +void Window::comboBoxFocused(QComboBox *combobox) +{ + foreach (QGraphicsProxyWidget *widget , m_widgetHash) { + if (widget->widget() == combobox) + widget->setZValue(2.0); + else + widget->setZValue(0.0); + } +} + +void Window::handleChartSelected(QChart *qchart) +{ + if (m_templateComboBox->currentIndex() != 0) + return; + + QAction *chosen = m_menu->exec(QCursor::pos()); + + if (chosen) { + Chart *chart = (Chart *) chosen->data().value(); + m_grid->replaceChart(qchart, chart); + updateUI(); + } +} + +QMenu *Window::createMenu() +{ + Charts::ChartList list = Charts::chartList(); + QMultiMap categoryMap; + + QMenu *result = new QMenu(this); + + foreach (Chart *chart, list) + categoryMap.insertMulti(chart->category(), chart); + + foreach (const QString &category, categoryMap.uniqueKeys()) { + QMenu *menu(0); + QMultiMap subCategoryMap; + if (category.isEmpty()) { + menu = result; + } else { + menu = new QMenu(category, this); + result->addMenu(menu); + } + + foreach (Chart *chart, categoryMap.values(category)) + subCategoryMap.insert(chart->subCategory(), chart); + + foreach (const QString &subCategory, subCategoryMap.uniqueKeys()) { + QMenu *subMenu(0); + if (subCategory.isEmpty()) { + subMenu = menu; + } else { + subMenu = new QMenu(subCategory, this); + menu->addMenu(subMenu); + } + + foreach (Chart *chart, subCategoryMap.values(subCategory)) { + createMenuAction(subMenu, QIcon(), chart->name(), + qVariantFromValue((void *) chart)); + } + } + } + return result; +} + +QAction *Window::createMenuAction(QMenu *menu, const QIcon &icon, const QString &text, + const QVariant &data) +{ + QAction *action = menu->addAction(icon, text); + action->setCheckable(false); + action->setData(data); + return action; +} + +void Window::handleGeometryChanged() +{ + QSizeF size = m_baseLayout->sizeHint(Qt::MinimumSize); + m_view->scene()->setSceneRect(0, 0, this->width(), this->height()); + m_view->setMinimumSize(size.toSize()); +} diff --git a/tests/manual/chartviewer/window.h b/tests/manual/chartviewer/window.h new file mode 100644 index 00000000..94d954ee --- /dev/null +++ b/tests/manual/chartviewer/window.h @@ -0,0 +1,117 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef WINDOW_H +#define WINDOW_H +#include +#include +#include +#include + +class QCheckBox; +class QGraphicsRectItem; +class QGraphicsScene; +class QGraphicsWidget; +class View; +class QGraphicsLinearLayout; +class Chart; +class Grid; +class QPushButton; + +QT_CHARTS_BEGIN_NAMESPACE +class QChart; +QT_CHARTS_END_NAMESPACE + +QT_CHARTS_USE_NAMESPACE + + +class Window: public QMainWindow +{ + Q_OBJECT +public: + explicit Window(const QVariantHash ¶meters, QWidget *parent = 0); + ~Window(); + +private Q_SLOTS: + void updateUI(); + void handleGeometryChanged(); + void handleChartSelected(QChart *chart); +private: + QComboBox *createViewBox(); + QComboBox *createThemeBox(); + QComboBox *createAnimationBox(); + QComboBox *createLegendBox(); + QComboBox *createTempleteBox(); + void connectSignals(); + void createProxyWidgets(); + void comboBoxFocused(QComboBox *combox); + inline void checkAnimationOptions(); + inline void checkView(); + inline void checkLegend(); + inline void checkOpenGL(); + inline void checkTheme(); + inline void checkState(); + inline void checkTemplate(); + QMenu *createMenu(); + QAction *createMenuAction(QMenu *menu, const QIcon &icon, const QString &text, const QVariant &data); + void initializeFromParamaters(const QVariantHash ¶meters); + +private: + QGraphicsScene *m_scene; + View *m_view; + QHash m_widgetHash; + + QGraphicsWidget *m_form; + QComboBox *m_themeComboBox; + QCheckBox *m_antialiasCheckBox; + QComboBox *m_animatedComboBox; + QComboBox *m_legendComboBox; + QComboBox *m_templateComboBox; + QComboBox *m_viewComboBox; + QCheckBox *m_openGLCheckBox; + QCheckBox *m_zoomCheckBox; + QCheckBox *m_scrollCheckBox; + QGraphicsLinearLayout *m_baseLayout; + QMenu *m_menu; + int m_template; + Grid *m_grid; + QString m_category; + QString m_subcategory; + QString m_name; + + friend class ComboBox; +}; + +class ComboBox: public QComboBox +{ +public: + ComboBox(Window *window, QWidget *parent = 0): QComboBox(parent), m_window(window) + {} + +protected: + void focusInEvent(QFocusEvent *e) { + QComboBox::focusInEvent(e); + m_window->comboBoxFocused(this); + } +private: + Window *m_window; +}; + +#endif diff --git a/tests/manual/chartwidgettest/chartwidgettest.pro b/tests/manual/chartwidgettest/chartwidgettest.pro new file mode 100644 index 00000000..3f4cdbb0 --- /dev/null +++ b/tests/manual/chartwidgettest/chartwidgettest.pro @@ -0,0 +1,15 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +TEMPLATE = app + +QT += core gui opengl widgets + +SOURCES += main.cpp \ + mainwidget.cpp \ + dataseriedialog.cpp + +HEADERS += \ + mainwidget.h \ + dataseriedialog.h diff --git a/tests/manual/chartwidgettest/dataseriedialog.cpp b/tests/manual/chartwidgettest/dataseriedialog.cpp new file mode 100644 index 00000000..41ca56d9 --- /dev/null +++ b/tests/manual/chartwidgettest/dataseriedialog.cpp @@ -0,0 +1,189 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "dataseriedialog.h" +#include +#include +#include +#include +#include +#include +#include +#include + +DataSerieDialog::DataSerieDialog(QWidget *parent) : + QDialog(parent) +{ + QDialogButtonBox *addSeriesBox = new QDialogButtonBox(Qt::Horizontal); + QPushButton *b = addSeriesBox->addButton(QDialogButtonBox::Ok); + connect(b, SIGNAL(clicked()), this, SLOT(accept())); + b = addSeriesBox->addButton(QDialogButtonBox::Cancel); + connect(b, SIGNAL(clicked()), this, SLOT(reject())); + + QGridLayout *grid = new QGridLayout(); + + m_seriesTypeSelector = seriesTypeSelector(); + m_columnCountSelector = columnCountSelector(); + m_rowCountSelector = rowCountSelector(); + m_dataCharacteristicsSelector = dataCharacteristicsSelector(); + + grid->addWidget(m_seriesTypeSelector, 0, 0); + grid->addWidget(m_columnCountSelector, 0, 1); + grid->addWidget(m_rowCountSelector, 1, 1); + grid->addWidget(m_dataCharacteristicsSelector, 1, 0); + m_labelsSelector = new QCheckBox("Labels defined"); + m_labelsSelector->setChecked(true); + grid->addWidget(m_labelsSelector, 2, 0); + grid->addWidget(addSeriesBox, 3, 1); + + setLayout(grid); +} + +QGroupBox *DataSerieDialog::seriesTypeSelector() +{ + QVBoxLayout *layout = new QVBoxLayout(); + + QRadioButton *line = new QRadioButton("Line"); + line->setChecked(true); + layout->addWidget(line); + layout->addWidget(new QRadioButton("Area")); + layout->addWidget(new QRadioButton("Pie")); + layout->addWidget(new QRadioButton("Bar")); + layout->addWidget(new QRadioButton("Stacked bar")); + layout->addWidget(new QRadioButton("Percent bar")); + layout->addWidget(new QRadioButton("Scatter")); + layout->addWidget(new QRadioButton("Spline")); + + QGroupBox *groupBox = new QGroupBox("Series type"); + groupBox->setLayout(layout); + selectRadio(groupBox, 0); + + return groupBox; +} + +QGroupBox *DataSerieDialog::columnCountSelector() +{ + QVBoxLayout *layout = new QVBoxLayout(); + + QRadioButton *radio = new QRadioButton("1"); + radio->setChecked(true); + layout->addWidget(radio); + layout->addWidget(new QRadioButton("2")); + layout->addWidget(new QRadioButton("3")); + layout->addWidget(new QRadioButton("4")); + layout->addWidget(new QRadioButton("5")); + layout->addWidget(new QRadioButton("8")); + layout->addWidget(new QRadioButton("10")); + layout->addWidget(new QRadioButton("100")); + + QGroupBox *groupBox = new QGroupBox("Column count"); + groupBox->setLayout(layout); + selectRadio(groupBox, 0); + + return groupBox; +} + +QGroupBox *DataSerieDialog::rowCountSelector() +{ + QVBoxLayout *layout = new QVBoxLayout(); + + layout->addWidget(new QRadioButton("1")); + QRadioButton *radio = new QRadioButton("10"); + radio->setChecked(true); + layout->addWidget(radio); + layout->addWidget(new QRadioButton("50")); + layout->addWidget(new QRadioButton("100")); + layout->addWidget(new QRadioButton("1000")); + layout->addWidget(new QRadioButton("10000")); + layout->addWidget(new QRadioButton("100000")); + layout->addWidget(new QRadioButton("1000000")); + + QGroupBox *groupBox = new QGroupBox("Row count"); + groupBox->setLayout(layout); + selectRadio(groupBox, 0); + + return groupBox; +} + +QGroupBox *DataSerieDialog::dataCharacteristicsSelector() +{ + QVBoxLayout *layout = new QVBoxLayout(); + + layout->addWidget(new QRadioButton("Linear")); + layout->addWidget(new QRadioButton("Constant")); + layout->addWidget(new QRadioButton("Random")); + layout->addWidget(new QRadioButton("Sin")); + layout->addWidget(new QRadioButton("Sin + random")); + + QGroupBox *groupBox = new QGroupBox("Data Characteristics"); + groupBox->setLayout(layout); + selectRadio(groupBox, 0); + + return groupBox; +} + +void DataSerieDialog::accept() +{ + accepted(radioSelection(m_seriesTypeSelector), + radioSelection(m_columnCountSelector).toInt(), + radioSelection(m_rowCountSelector).toInt(), + radioSelection(m_dataCharacteristicsSelector), + m_labelsSelector->isChecked()); + QDialog::accept(); +} + +void DataSerieDialog::selectRadio(QGroupBox *groupBox, int defaultSelection) +{ + QVBoxLayout *layout = qobject_cast(groupBox->layout()); + Q_ASSERT(layout); + Q_ASSERT(layout->count()); + + QLayoutItem *item = 0; + if (defaultSelection == -1) { + item = layout->itemAt(0); + } else if (layout->count() > defaultSelection) { + item = layout->itemAt(defaultSelection); + } + Q_ASSERT(item); + QRadioButton *radio = qobject_cast(item->widget()); + Q_ASSERT(radio); + radio->setChecked(true); +} + +QString DataSerieDialog::radioSelection(QGroupBox *groupBox) +{ + QString selection; + QVBoxLayout *layout = qobject_cast(groupBox->layout()); + Q_ASSERT(layout); + + for (int i(0); i < layout->count(); i++) { + QLayoutItem *item = layout->itemAt(i); + Q_ASSERT(item); + QRadioButton *radio = qobject_cast(item->widget()); + Q_ASSERT(radio); + if (radio->isChecked()) { + selection = radio->text(); + break; + } + } + + qDebug() << "radioSelection: " << selection; + return selection; +} diff --git a/tests/manual/chartwidgettest/dataseriedialog.h b/tests/manual/chartwidgettest/dataseriedialog.h new file mode 100644 index 00000000..5c0ee483 --- /dev/null +++ b/tests/manual/chartwidgettest/dataseriedialog.h @@ -0,0 +1,55 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef DATASERIEDIALOG_H +#define DATASERIEDIALOG_H + +#include + +class QGroupBox; +class QCheckBox; + +class DataSerieDialog : public QDialog +{ + Q_OBJECT +public: + explicit DataSerieDialog(QWidget *parent = 0); + +signals: + void accepted(QString series, int columnCount, int rowCount, QString dataCharacteristics, bool labelsDefined); + +public slots: + void accept(); + +private: + QGroupBox *seriesTypeSelector(); + QGroupBox *columnCountSelector(); + QGroupBox *rowCountSelector(); + QGroupBox *dataCharacteristicsSelector(); + void selectRadio(QGroupBox *groupBox, int defaultSelection); + QString radioSelection(QGroupBox *groupBox); + QGroupBox *m_seriesTypeSelector; + QGroupBox *m_columnCountSelector; + QGroupBox *m_rowCountSelector; + QCheckBox *m_labelsSelector; + QGroupBox *m_dataCharacteristicsSelector; +}; + +#endif // DATASERIEDIALOG_H diff --git a/tests/manual/chartwidgettest/main.cpp b/tests/manual/chartwidgettest/main.cpp new file mode 100644 index 00000000..6d136669 --- /dev/null +++ b/tests/manual/chartwidgettest/main.cpp @@ -0,0 +1,34 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +#include +#include "mainwidget.h" + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + MainWidget w; + w.resize(1000,600); + w.show(); + + return a.exec(); +} diff --git a/tests/manual/chartwidgettest/mainwidget.cpp b/tests/manual/chartwidgettest/mainwidget.cpp new file mode 100644 index 00000000..97b1e792 --- /dev/null +++ b/tests/manual/chartwidgettest/mainwidget.cpp @@ -0,0 +1,380 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "mainwidget.h" +#include "dataseriedialog.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE + +MainWidget::MainWidget(QWidget *parent) : + QWidget(parent), + m_addSerieDialog(0), + m_chart(0) +{ + m_chart = new QChart(); + + // Grid layout for the controls for configuring the chart widget + QGridLayout *grid = new QGridLayout(); + QPushButton *addSeriesButton = new QPushButton("Add series"); + connect(addSeriesButton, SIGNAL(clicked()), this, SLOT(addSeries())); + grid->addWidget(addSeriesButton, 0, 1); + initBackroundCombo(grid); + initScaleControls(grid); + initThemeCombo(grid); + initCheckboxes(grid); + + // add row with empty label to make all the other rows static + grid->addWidget(new QLabel(""), grid->rowCount(), 0); + grid->setRowStretch(grid->rowCount() - 1, 1); + + // Create chart view with the chart + m_chartView = new QChartView(m_chart, this); + m_chartView->setRubberBand(QChartView::HorizonalRubberBand); + + // Another grid layout as a main layout + QGridLayout *mainLayout = new QGridLayout(); + mainLayout->addLayout(grid, 0, 0); + mainLayout->addWidget(m_chartView, 0, 1, 3, 1); + setLayout(mainLayout); +} + +// Combo box for selecting the chart's background +void MainWidget::initBackroundCombo(QGridLayout *grid) +{ + QComboBox *backgroundCombo = new QComboBox(this); + backgroundCombo->addItem("Color"); + backgroundCombo->addItem("Gradient"); + backgroundCombo->addItem("Image"); + connect(backgroundCombo, SIGNAL(currentIndexChanged(int)), + this, SLOT(backgroundChanged(int))); + + grid->addWidget(new QLabel("Background:"), grid->rowCount(), 0); + grid->addWidget(backgroundCombo, grid->rowCount() - 1, 1); +} + +// Scale related controls (auto-scale vs. manual min-max values) +void MainWidget::initScaleControls(QGridLayout *grid) +{ + m_autoScaleCheck = new QCheckBox("Automatic scaling"); + connect(m_autoScaleCheck, SIGNAL(stateChanged(int)), this, SLOT(autoScaleChanged(int))); + // Allow setting also non-sense values (like -2147483648 and 2147483647) + m_xMinSpin = new QSpinBox(); + m_xMinSpin->setMinimum(INT_MIN); + m_xMinSpin->setMaximum(INT_MAX); + m_xMinSpin->setValue(0); + connect(m_xMinSpin, SIGNAL(valueChanged(int)), this, SLOT(xMinChanged(int))); + m_xMaxSpin = new QSpinBox(); + m_xMaxSpin->setMinimum(INT_MIN); + m_xMaxSpin->setMaximum(INT_MAX); + m_xMaxSpin->setValue(10); + connect(m_xMaxSpin, SIGNAL(valueChanged(int)), this, SLOT(xMaxChanged(int))); + m_yMinSpin = new QSpinBox(); + m_yMinSpin->setMinimum(INT_MIN); + m_yMinSpin->setMaximum(INT_MAX); + m_yMinSpin->setValue(0); + connect(m_yMinSpin, SIGNAL(valueChanged(int)), this, SLOT(yMinChanged(int))); + m_yMaxSpin = new QSpinBox(); + m_yMaxSpin->setMinimum(INT_MIN); + m_yMaxSpin->setMaximum(INT_MAX); + m_yMaxSpin->setValue(10); + connect(m_yMaxSpin, SIGNAL(valueChanged(int)), this, SLOT(yMaxChanged(int))); + + grid->addWidget(m_autoScaleCheck, grid->rowCount(), 0); + grid->addWidget(new QLabel("x min:"), grid->rowCount(), 0); + grid->addWidget(m_xMinSpin, grid->rowCount() - 1, 1); + grid->addWidget(new QLabel("x max:"), grid->rowCount(), 0); + grid->addWidget(m_xMaxSpin, grid->rowCount() - 1, 1); + grid->addWidget(new QLabel("y min:"), grid->rowCount(), 0); + grid->addWidget(m_yMinSpin, grid->rowCount() - 1, 1); + grid->addWidget(new QLabel("y max:"), grid->rowCount(), 0); + grid->addWidget(m_yMaxSpin, grid->rowCount() - 1, 1); + + m_autoScaleCheck->setChecked(true); +} + +// Combo box for selecting theme +void MainWidget::initThemeCombo(QGridLayout *grid) +{ + QComboBox *chartTheme = new QComboBox(); + chartTheme->addItem("Default"); + chartTheme->addItem("Light"); + chartTheme->addItem("Blue Cerulean"); + chartTheme->addItem("Dark"); + chartTheme->addItem("Brown Sand"); + chartTheme->addItem("Blue NCS"); + chartTheme->addItem("High Contrast"); + chartTheme->addItem("Blue Icy"); + chartTheme->addItem("Qt"); + connect(chartTheme, SIGNAL(currentIndexChanged(int)), + this, SLOT(changeChartTheme(int))); + grid->addWidget(new QLabel("Chart theme:"), 8, 0); + grid->addWidget(chartTheme, 8, 1); +} + +// Different check boxes for customizing chart +void MainWidget::initCheckboxes(QGridLayout *grid) +{ + // TODO: setZoomEnabled slot has been removed from QChartView -> Re-implement zoom on/off + QCheckBox *zoomCheckBox = new QCheckBox("Drag'n drop Zoom"); +// connect(zoomCheckBox, SIGNAL(toggled(bool)), m_chartView, SLOT(setZoomEnabled(bool))); + zoomCheckBox->setChecked(true); + grid->addWidget(zoomCheckBox, grid->rowCount(), 0); + + QCheckBox *aliasCheckBox = new QCheckBox("Anti-alias"); + connect(aliasCheckBox, SIGNAL(toggled(bool)), this, SLOT(antiAliasToggled(bool))); + aliasCheckBox->setChecked(false); + grid->addWidget(aliasCheckBox, grid->rowCount(), 0); + + QCheckBox *openGLCheckBox = new QCheckBox("Use QGLWidget"); + connect(openGLCheckBox, SIGNAL(toggled(bool)), this, SLOT(openGLToggled(bool))); + openGLCheckBox->setChecked(false); + grid->addWidget(openGLCheckBox, grid->rowCount(), 0); +} + +void MainWidget::antiAliasToggled(bool enabled) +{ + m_chartView->setRenderHint(QPainter::Antialiasing, enabled); +} + +void MainWidget::openGLToggled(bool enabled) +{ + if (enabled) { + QGLFormat f = QGLFormat::defaultFormat(); + f.setSampleBuffers(true); + f.setSamples(4); + QGLFormat::setDefaultFormat(f); + QGLWidget *g = new QGLWidget(); + m_chartView->setViewport(g); + } else { + m_chartView->setViewport(0); + } +} + +void MainWidget::addSeries() +{ + if (!m_addSerieDialog) { + m_addSerieDialog = new DataSerieDialog(this); + connect(m_addSerieDialog, SIGNAL(accepted(QString,int,int,QString,bool)), + this, SLOT(addSeries(QString,int,int,QString,bool))); + } + m_addSerieDialog->exec(); +} + +QList MainWidget::generateTestData(int columnCount, int rowCount, QString dataCharacteristics) +{ + QList testData; + for (int j(0); j < columnCount; j++) { + QList newColumn; + for (int i(0); i < rowCount; i++) { + if (dataCharacteristics == "Sin") { + newColumn.append(abs(sin(3.14159265358979 / 50 * i) * 100)); + } else if (dataCharacteristics == "Sin + random") { + newColumn.append(abs(sin(3.14159265358979 / 50 * i) * 100) + (rand() % 5)); + } else if (dataCharacteristics == "Random") { + newColumn.append(rand() % 10 + (qreal) rand() / (qreal) RAND_MAX); + } else if (dataCharacteristics == "Linear") { + //newColumn.append(i * (j + 1.0)); + // TODO: temporary hack to make pie work; prevent zero values: + newColumn.append(i * (j + 1.0) + 0.1); + } else { // "constant" + newColumn.append((j + 1.0)); + } + } + testData.append(newColumn); + } + return testData; +} + +QStringList MainWidget::generateLabels(int count) +{ + QStringList result; + for (int i(0); i < count; i++) + result.append("label" + QString::number(i)); + return result; +} + +void MainWidget::addSeries(QString seriesName, int columnCount, int rowCount, QString dataCharacteristics, bool labelsEnabled) +{ + qDebug() << "addSeries: " << seriesName + << " columnCount: " << columnCount + << " rowCount: " << rowCount + << " dataCharacteristics: " << dataCharacteristics + << " labels enabled: " << labelsEnabled; + m_defaultSeriesName = seriesName; + + QList data = generateTestData(columnCount, rowCount, dataCharacteristics); + + // Line series and scatter series use similar data + if (seriesName == "Line") { + for (int j(0); j < data.count(); j ++) { + QList column = data.at(j); + QLineSeries *series = new QLineSeries(); + series->setName("line" + QString::number(j)); + for (int i(0); i < column.count(); i++) + series->append(i, column.at(i)); + m_chart->addSeries(series); + } + } else if (seriesName == "Area") { + // TODO: lower series for the area? + for (int j(0); j < data.count(); j ++) { + QList column = data.at(j); + QLineSeries *lineSeries = new QLineSeries(); + for (int i(0); i < column.count(); i++) + lineSeries->append(i, column.at(i)); + QAreaSeries *areaSeries = new QAreaSeries(lineSeries); + areaSeries->setName("area" + QString::number(j)); + m_chart->addSeries(areaSeries); + } + } else if (seriesName == "Scatter") { + for (int j(0); j < data.count(); j++) { + QList column = data.at(j); + QScatterSeries *series = new QScatterSeries(); + series->setName("scatter" + QString::number(j)); + for (int i(0); i < column.count(); i++) + series->append(i, column.at(i)); + m_chart->addSeries(series); + } + } else if (seriesName == "Pie") { + QStringList labels = generateLabels(rowCount); + for (int j(0); j < data.count(); j++) { + QPieSeries *series = new QPieSeries(); + QList column = data.at(j); + for (int i(0); i < column.count(); i++) + series->append(labels.at(i), column.at(i)); + m_chart->addSeries(series); + } + } else if (seriesName == "Bar" + || seriesName == "Stacked bar" + || seriesName == "Percent bar") { + QStringList category; + QStringList labels = generateLabels(rowCount); + foreach (QString label, labels) + category << label; + QAbstractBarSeries* series = 0; + if (seriesName == "Bar") { + series = new QBarSeries(this); + QBarCategoryAxis* axis = new QBarCategoryAxis(); + axis->append(category); + m_chart->setAxisX(axis,series); + } else if (seriesName == "Stacked bar") { + series = new QStackedBarSeries(this); + QBarCategoryAxis* axis = new QBarCategoryAxis(); + axis->append(category); + m_chart->setAxisX(axis,series); + } else { + series = new QPercentBarSeries(this); + QBarCategoryAxis* axis = new QBarCategoryAxis(); + axis->append(category); + m_chart->setAxisX(axis,series); + } + + for (int j(0); j < data.count(); j++) { + QList column = data.at(j); + QBarSet *set = new QBarSet("set" + QString::number(j)); + for (int i(0); i < column.count(); i++) + *set << column.at(i); + series->append(set); + } + + m_chart->addSeries(series); + } else if (seriesName == "Spline") { + for (int j(0); j < data.count(); j ++) { + QList column = data.at(j); + QSplineSeries *series = new QSplineSeries(); + series->setName("spline" + QString::number(j)); + for (int i(0); i < column.count(); i++) + series->append(i, column.at(i)); + m_chart->addSeries(series); + } + } + m_chart->createDefaultAxes(); +} + +void MainWidget::backgroundChanged(int itemIndex) +{ + qDebug() << "backgroundChanged: " << itemIndex; +} + +void MainWidget::autoScaleChanged(int value) +{ + if (value) { + // TODO: enable auto scaling + } else { + // TODO: set scaling manually (and disable auto scaling) + } + + m_xMinSpin->setEnabled(!value); + m_xMaxSpin->setEnabled(!value); + m_yMinSpin->setEnabled(!value); + m_yMaxSpin->setEnabled(!value); +} + +void MainWidget::xMinChanged(int value) +{ + qDebug() << "xMinChanged: " << value; +} + +void MainWidget::xMaxChanged(int value) +{ + qDebug() << "xMaxChanged: " << value; +} + +void MainWidget::yMinChanged(int value) +{ + qDebug() << "yMinChanged: " << value; +} + +void MainWidget::yMaxChanged(int value) +{ + qDebug() << "yMaxChanged: " << value; +} + +void MainWidget::changeChartTheme(int themeIndex) +{ + qDebug() << "changeChartTheme: " << themeIndex; + if (themeIndex == 0) + m_chart->setTheme(QChart::ChartThemeLight); + else + m_chart->setTheme((QChart::ChartTheme) (themeIndex - 1)); +} diff --git a/tests/manual/chartwidgettest/mainwidget.h b/tests/manual/chartwidgettest/mainwidget.h new file mode 100644 index 00000000..82a710bb --- /dev/null +++ b/tests/manual/chartwidgettest/mainwidget.h @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef MAINWIDGET_H +#define MAINWIDGET_H + +#include +#include +#include +#include + +class QSpinBox; +class QCheckBox; +class QGridLayout; + +QT_CHARTS_USE_NAMESPACE + +#define RealList QList +class DataSerieDialog; + +class MainWidget : public QWidget +{ + Q_OBJECT +public: + explicit MainWidget(QWidget *parent = 0); + +signals: + +private: + void initBackroundCombo(QGridLayout *grid); + void initScaleControls(QGridLayout *grid); + void initThemeCombo(QGridLayout *grid); + void initCheckboxes(QGridLayout *grid); + +private slots: + void addSeries(); + void addSeries(QString series, int columnCount, int rowCount, QString dataCharacteristics, bool labelsEnabled); + void backgroundChanged(int itemIndex); + void autoScaleChanged(int value); + void xMinChanged(int value); + void xMaxChanged(int value); + void yMinChanged(int value); + void yMaxChanged(int value); + void antiAliasToggled(bool enabled); + void openGLToggled(bool enabled); + void changeChartTheme(int themeIndex); + QList generateTestData(int columnCount, int rowCount, QString dataCharacteristics); + QStringList generateLabels(int count); + +private: + DataSerieDialog *m_addSerieDialog; + QChart *m_chart; + QChartView *m_chartView; + QCheckBox *m_autoScaleCheck; + QSpinBox *m_xMinSpin; + QSpinBox *m_xMaxSpin; + QSpinBox *m_yMinSpin; + QSpinBox *m_yMaxSpin; + QString m_defaultSeriesName; + QGridLayout *m_scatterLayout; +}; + +#endif // MAINWIDGET_H diff --git a/tests/manual/manual.pro b/tests/manual/manual.pro new file mode 100644 index 00000000..5f2b85b1 --- /dev/null +++ b/tests/manual/manual.pro @@ -0,0 +1,18 @@ +TEMPLATE = subdirs +SUBDIRS += \ + presenterchart \ + polarcharttest \ + boxplottester + +contains(QT_CONFIG, opengl) { + SUBDIRS += chartwidgettest \ + wavechart \ + chartviewer +} else { + message("OpenGL not available. Some test apps are disabled") +} + +qtHaveModule(quick) { + SUBDIRS += qmlchartproperties \ + qmlchartaxis +} diff --git a/tests/manual/polarcharttest/chartview.cpp b/tests/manual/polarcharttest/chartview.cpp new file mode 100644 index 00000000..37a25f8f --- /dev/null +++ b/tests/manual/polarcharttest/chartview.cpp @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "chartview.h" +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE + +ChartView::ChartView(QWidget *parent) : + QChartView(parent) +{ +} + +void ChartView::keyPressEvent(QKeyEvent *event) +{ + switch (event->key()) { + case Qt::Key_Plus: + chart()->zoomIn(); + break; + case Qt::Key_Minus: + chart()->zoomOut(); + break; + case Qt::Key_Left: + chart()->scroll(-1.0, 0); + break; + case Qt::Key_Right: + chart()->scroll(1.0, 0); + break; + case Qt::Key_Up: + chart()->scroll(0, 1.0); + break; + case Qt::Key_Down: + chart()->scroll(0, -1.0); + break; + default: + QGraphicsView::keyPressEvent(event); + break; + } +} diff --git a/tests/manual/polarcharttest/chartview.h b/tests/manual/polarcharttest/chartview.h new file mode 100644 index 00000000..fb8b4ff9 --- /dev/null +++ b/tests/manual/polarcharttest/chartview.h @@ -0,0 +1,38 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef CHARTVIEW_H +#define CHARTVIEW_H + +#include +#include + +QT_CHARTS_USE_NAMESPACE + +class ChartView : public QChartView +{ +public: + ChartView(QWidget *parent = 0); + +protected: + void keyPressEvent(QKeyEvent *event); +}; + +#endif diff --git a/tests/manual/polarcharttest/main.cpp b/tests/manual/polarcharttest/main.cpp new file mode 100644 index 00000000..28203655 --- /dev/null +++ b/tests/manual/polarcharttest/main.cpp @@ -0,0 +1,31 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "mainwindow.h" +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + MainWindow w; + w.show(); + + return a.exec(); +} diff --git a/tests/manual/polarcharttest/mainwindow.cpp b/tests/manual/polarcharttest/mainwindow.cpp new file mode 100644 index 00000000..79c8918f --- /dev/null +++ b/tests/manual/polarcharttest/mainwindow.cpp @@ -0,0 +1,1199 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "mainwindow.h" +#include "chartview.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE +#include "ui_mainwindow.h" + +MainWindow::MainWindow(QWidget *parent) : + QMainWindow(parent), + ui(new Ui::MainWindow), + m_angularTickCount(9), + m_radialTickCount(11), + m_labelsAngle(0), + m_angularMin(0.0), + m_angularMax(40000.0), + m_radialMin(0.0), + m_radialMax(30000.0), + m_angularShadesVisible(false), + m_radialShadesVisible(false), + m_labelsVisible(true), + m_titleVisible(true), + m_gridVisible(true), + m_arrowVisible(true), + m_angularShadesBrush(new QBrush(Qt::NoBrush)), + m_radialShadesBrush(new QBrush(Qt::NoBrush)), + m_labelBrush(new QBrush(Qt::black)), + m_titleBrush(new QBrush(Qt::black)), + m_backgroundBrush(new QBrush(Qt::white)), + m_plotAreaBackgroundBrush(new QBrush(Qt::NoBrush)), + m_angularShadesPen(new QPen(Qt::NoPen)), + m_radialShadesPen(new QPen(Qt::NoPen)), + m_labelPen(new QPen(Qt::NoPen)), + m_titlePen(new QPen(Qt::NoPen)), + m_gridPen(new QPen(QRgb(0x010101))), // Note: Pure black is default color, so it gets overridden by + m_arrowPen(new QPen(QRgb(0x010101))), // default theme if set to that initially. This is an example of workaround. + m_backgroundPen(new QPen(Qt::NoPen)), + m_plotAreaBackgroundPen(new QPen(Qt::NoPen)), + m_labelFormat(QString("%.2f")), + m_animationOptions(QChart::NoAnimation), + m_angularTitle(QString("Angular Title")), + m_radialTitle(QString("Radial Title")), + m_base(2.0), + m_dateFormat(QString("mm-ss-zzz")), + m_chart(0), + m_angularAxis(0), + m_radialAxis(0), + m_angularAxisMode(AxisModeNone), + m_radialAxisMode(AxisModeNone), + m_moreCategories(false), + m_series1(0), + m_series2(0), + m_series3(0), + m_series4(0), + m_series5(0), + m_series6(0), + m_series7(0) +{ + ui->setupUi(this); + + ui->angularTicksSpin->setValue(m_angularTickCount); + ui->radialTicksSpin->setValue(m_radialTickCount); + ui->anglesSpin->setValue(m_labelsAngle); + ui->radialMinSpin->setValue(m_radialMin); + ui->radialMaxSpin->setValue(m_radialMax); + ui->angularMinSpin->setValue(m_angularMin); + ui->angularMaxSpin->setValue(m_angularMax); + ui->angularShadesComboBox->setCurrentIndex(0); + ui->radialShadesComboBox->setCurrentIndex(0); + ui->labelFormatEdit->setText(m_labelFormat); + ui->dateFormatEdit->setText(m_dateFormat); + ui->moreCategoriesCheckBox->setChecked(m_moreCategories); + + ui->series1checkBox->setChecked(true); + ui->series2checkBox->setChecked(true); + ui->series3checkBox->setChecked(true); + ui->series4checkBox->setChecked(true); + ui->series5checkBox->setChecked(true); + ui->series6checkBox->setChecked(true); + ui->series7checkBox->setChecked(true); + + m_currentLabelFont.setFamily(ui->labelFontComboBox->currentFont().family()); + m_currentLabelFont.setPixelSize(15); + m_currentTitleFont.setFamily(ui->titleFontComboBox->currentFont().family()); + m_currentTitleFont.setPixelSize(30); + + ui->labelFontSizeSpin->setValue(m_currentLabelFont.pixelSize()); + ui->titleFontSizeSpin->setValue(m_currentTitleFont.pixelSize()); + + ui->logBaseSpin->setValue(m_base); + + initXYValueChart(); + setAngularAxis(AxisModeValue); + setRadialAxis(AxisModeValue); + + ui->angularAxisComboBox->setCurrentIndex(int(m_angularAxisMode)); + ui->radialAxisComboBox->setCurrentIndex(int(m_radialAxisMode)); + + connect(ui->angularTicksSpin, SIGNAL(valueChanged(int)), this, SLOT(angularTicksChanged(int))); + connect(ui->radialTicksSpin, SIGNAL(valueChanged(int)), this, SLOT(radialTicksChanged(int))); + connect(ui->anglesSpin, SIGNAL(valueChanged(int)), this, SLOT(anglesChanged(int))); + connect(ui->radialMinSpin, SIGNAL(valueChanged(double)), this, SLOT(radialMinChanged(double))); + connect(ui->radialMaxSpin, SIGNAL(valueChanged(double)), this, SLOT(radialMaxChanged(double))); + connect(ui->angularMinSpin, SIGNAL(valueChanged(double)), this, SLOT(angularMinChanged(double))); + connect(ui->angularMaxSpin, SIGNAL(valueChanged(double)), this, SLOT(angularMaxChanged(double))); + connect(ui->angularShadesComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(angularShadesIndexChanged(int))); + connect(ui->radialShadesComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(radialShadesIndexChanged(int))); + connect(ui->animationsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(animationIndexChanged(int))); + connect(ui->labelFormatEdit, SIGNAL(textEdited(QString)), this, SLOT(labelFormatEdited(QString))); + connect(ui->labelFontComboBox, SIGNAL(currentFontChanged(QFont)), this, SLOT(labelFontChanged(QFont))); + connect(ui->labelFontSizeSpin, SIGNAL(valueChanged(int)), this, SLOT(labelFontSizeChanged(int))); + connect(ui->labelComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(labelsIndexChanged(int))); + connect(ui->titleFontComboBox, SIGNAL(currentFontChanged(QFont)), this, SLOT(titleFontChanged(QFont))); + connect(ui->titleFontSizeSpin, SIGNAL(valueChanged(int)), this, SLOT(titleFontSizeChanged(int))); + connect(ui->titleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(titleIndexChanged(int))); + connect(ui->gridComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(gridIndexChanged(int))); + connect(ui->arrowComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(arrowIndexChanged(int))); + connect(ui->logBaseSpin, SIGNAL(valueChanged(double)), this, SLOT(logBaseChanged(double))); + connect(ui->angularAxisComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(angularAxisIndexChanged(int))); + connect(ui->radialAxisComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(radialAxisIndexChanged(int))); + connect(ui->niceNumbersCheckBox, SIGNAL(clicked()), this, SLOT(niceNumbersChecked())); + connect(ui->dateFormatEdit, SIGNAL(textEdited(QString)), this, SLOT(dateFormatEdited(QString))); + connect(ui->moreCategoriesCheckBox, SIGNAL(clicked()), this, SLOT(moreCategoriesChecked())); + connect(ui->series1checkBox, SIGNAL(clicked()), this, SLOT(series1CheckBoxChecked())); + connect(ui->series2checkBox, SIGNAL(clicked()), this, SLOT(series2CheckBoxChecked())); + connect(ui->series3checkBox, SIGNAL(clicked()), this, SLOT(series3CheckBoxChecked())); + connect(ui->series4checkBox, SIGNAL(clicked()), this, SLOT(series4CheckBoxChecked())); + connect(ui->series5checkBox, SIGNAL(clicked()), this, SLOT(series5CheckBoxChecked())); + connect(ui->series6checkBox, SIGNAL(clicked()), this, SLOT(series6CheckBoxChecked())); + connect(ui->series7checkBox, SIGNAL(clicked()), this, SLOT(series7CheckBoxChecked())); + connect(ui->themeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(themeIndexChanged(int))); + connect(ui->backgroundComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundIndexChanged(int))); + connect(ui->plotAreaComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(plotAreaIndexChanged(int))); + + ui->chartView->setChart(m_chart); + ui->chartView->setRenderHint(QPainter::Antialiasing); +} + +MainWindow::~MainWindow() +{ + delete ui; + delete m_angularShadesBrush; + delete m_radialShadesBrush; + delete m_angularShadesPen; + delete m_radialShadesPen; +} + +void MainWindow::initXYValueChart() +{ + qreal seriesAngularMin = 1; + qreal seriesAngularMax = 46000; + qreal seriesRadialMin = 1; + qreal seriesRadialMax = 23500; + qreal radialDimension = seriesRadialMax - seriesRadialMin; + qreal angularDimension = seriesAngularMax - seriesAngularMin; + + // Scatter series, points outside min-max ranges should not be drawn + m_series1 = new QScatterSeries(); + m_series1->setName("scatter"); + qreal scatterCount = 10; + qreal scatterAngularStep = angularDimension / scatterCount; + qreal scatterRadialStep = radialDimension / scatterCount; + for (qreal i = 0.0; i < scatterCount; i++) { + m_series1->append((i * scatterAngularStep) + seriesAngularMin, (i * scatterRadialStep) + seriesRadialMin); + //qDebug() << m_series1->points().last(); + } + m_series1->setMarkerSize(10); + *m_series1 << QPointF(50, 50) << QPointF(150, 150) << QPointF(250, 250) << QPointF(350, 350) << QPointF(450, 450); + *m_series1 << QPointF(1050, 0.50) << QPointF(1150, 0.25) << QPointF(1250, 0.12) << QPointF(1350, 0.075) << QPointF(1450, 0.036); + *m_series1 << QPointF(0.50, 2000) << QPointF(0.25, 3500) << QPointF(0.12, 5000) << QPointF(0.075, 6500) << QPointF(0.036, 8000); + + // Line series, points outside min-max ranges should not be drawn, + // but lines should be properly interpolated at chart edges + m_series2 = new QLineSeries(); + m_series2->setName("line 1"); + qreal lineCount = 100; + qreal lineAngularStep = angularDimension / lineCount; + qreal lineRadialStep = radialDimension / lineCount; + for (qreal i = 0.0; i < lineCount; i++) { + m_series2->append((i * lineAngularStep) + seriesAngularMin, (i * lineRadialStep) + seriesRadialMin); + //qDebug() << m_series2->points().last(); + } + QPen series2Pen = QPen(Qt::blue, 10); + //series2Pen.setStyle(Qt::DashDotDotLine); + m_series2->setPen(series2Pen); + + m_series3 = new QLineSeries(); + m_series3->setName("Area upper"); + lineCount = 87; + lineAngularStep = angularDimension / lineCount; + lineRadialStep = radialDimension / lineCount; + for (qreal i = 1.0; i <= lineCount; i++) { + m_series3->append((i * lineAngularStep) + seriesAngularMin, (i * lineRadialStep) + seriesRadialMin + 200.0); + //qDebug() << m_series3->points().last(); + } + + m_series4 = new QLineSeries(); + m_series4->setName("Area lower"); + lineCount = 89; + lineAngularStep = angularDimension / lineCount; + lineRadialStep = radialDimension / lineCount; + for (qreal i = 1.0; i <= lineCount; i++) { + m_series4->append((i * lineAngularStep) + seriesAngularMin + 100.0, (i * lineRadialStep) + seriesRadialMin + i * 300.0); + //qDebug() << m_series4->points().last(); + } + + m_series5 = new QAreaSeries(); + m_series5->setName("area"); + m_series5->setUpperSeries(m_series3); + m_series5->setLowerSeries(m_series4); + m_series5->setOpacity(0.5); + + m_series6 = new QSplineSeries(); + m_series6->setName("spline"); + qreal ad = angularDimension / 20; + qreal rd = radialDimension / 10; + m_series6->append(seriesAngularMin, seriesRadialMin + rd * 2); + m_series6->append(seriesAngularMin + ad, seriesRadialMin + rd * 5); + m_series6->append(seriesAngularMin + ad * 2, seriesRadialMin + rd * 4); + m_series6->append(seriesAngularMin + ad * 3, seriesRadialMin + rd * 9); + m_series6->append(seriesAngularMin + ad * 4, seriesRadialMin + rd * 11); + m_series6->append(seriesAngularMin + ad * 5, seriesRadialMin + rd * 12); + m_series6->append(seriesAngularMin + ad * 6, seriesRadialMin + rd * 9); + m_series6->append(seriesAngularMin + ad * 7, seriesRadialMin + rd * 11); + m_series6->append(seriesAngularMin + ad * 8, seriesRadialMin + rd * 12); + m_series6->append(seriesAngularMin + ad * 9, seriesRadialMin + rd * 6); + m_series6->append(seriesAngularMin + ad * 10, seriesRadialMin + rd * 4); + m_series6->append(seriesAngularMin + ad * 10, seriesRadialMin + rd * 8); + m_series6->append(seriesAngularMin + ad * 11, seriesRadialMin + rd * 9); + m_series6->append(seriesAngularMin + ad * 12, seriesRadialMin + rd * 11); + m_series6->append(seriesAngularMin + ad * 13, seriesRadialMin + rd * 12); + m_series6->append(seriesAngularMin + ad * 14, seriesRadialMin + rd * 6); + m_series6->append(seriesAngularMin + ad * 15, seriesRadialMin + rd * 3); + m_series6->append(seriesAngularMin + ad * 16, seriesRadialMin + rd * 2); + m_series6->append(seriesAngularMin + ad * 17, seriesRadialMin + rd * 6); + m_series6->append(seriesAngularMin + ad * 18, seriesRadialMin + rd * 6); + m_series6->append(seriesAngularMin + ad * 19, seriesRadialMin + rd * 6); + m_series6->append(seriesAngularMin + ad * 20, seriesRadialMin + rd * 6); + m_series6->append(seriesAngularMin + ad * 19, seriesRadialMin + rd * 2); + m_series6->append(seriesAngularMin + ad * 18, seriesRadialMin + rd * 9); + m_series6->append(seriesAngularMin + ad * 17, seriesRadialMin + rd * 7); + m_series6->append(seriesAngularMin + ad * 16, seriesRadialMin + rd * 3); + m_series6->append(seriesAngularMin + ad * 15, seriesRadialMin + rd * 1); + m_series6->append(seriesAngularMin + ad * 14, seriesRadialMin + rd * 7); + m_series6->append(seriesAngularMin + ad * 13, seriesRadialMin + rd * 5); + m_series6->append(seriesAngularMin + ad * 12, seriesRadialMin + rd * 9); + m_series6->append(seriesAngularMin + ad * 11, seriesRadialMin + rd * 1); + m_series6->append(seriesAngularMin + ad * 10, seriesRadialMin + rd * 4); + m_series6->append(seriesAngularMin + ad * 9, seriesRadialMin + rd * 1); + m_series6->append(seriesAngularMin + ad * 8, seriesRadialMin + rd * 2); + m_series6->append(seriesAngularMin + ad * 7, seriesRadialMin + rd * 4); + m_series6->append(seriesAngularMin + ad * 6, seriesRadialMin + rd * 8); + m_series6->append(seriesAngularMin + ad * 5, seriesRadialMin + rd * 12); + m_series6->append(seriesAngularMin + ad * 4, seriesRadialMin + rd * 9); + m_series6->append(seriesAngularMin + ad * 3, seriesRadialMin + rd * 8); + m_series6->append(seriesAngularMin + ad * 2, seriesRadialMin + rd * 7); + m_series6->append(seriesAngularMin + ad, seriesRadialMin + rd * 4); + m_series6->append(seriesAngularMin, seriesRadialMin + rd * 10); + + m_series6->setPointsVisible(true); + QPen series6Pen = QPen(Qt::red, 10); + //series6Pen.setStyle(Qt::DashDotDotLine); + m_series6->setPen(series6Pen); + + // m_series7 shows points at category intersections + m_series7 = new QScatterSeries(); + m_series7->setName("Category check"); + m_series7->setMarkerSize(7); + m_series7->setBrush(QColor(Qt::red)); + m_series7->setMarkerShape(QScatterSeries::MarkerShapeRectangle); + *m_series7 << QPointF(1000, 1000) + << QPointF(1000, 2000) + << QPointF(1000, 4000) + << QPointF(1000, 9000) + << QPointF(1000, 14000) + << QPointF(1000, 16500) + << QPointF(1000, 19000) + + << QPointF(4000, 1000) + << QPointF(4000, 2000) + << QPointF(4000, 4000) + << QPointF(4000, 9000) + << QPointF(4000, 14000) + << QPointF(4000, 16500) + << QPointF(4000, 19000) + + << QPointF(7000, 1000) + << QPointF(7000, 2000) + << QPointF(7000, 4000) + << QPointF(7000, 9000) + << QPointF(7000, 14000) + << QPointF(7000, 16500) + << QPointF(7000, 19000) + + << QPointF(12000, 1000) + << QPointF(12000, 2000) + << QPointF(12000, 4000) + << QPointF(12000, 9000) + << QPointF(12000, 14000) + << QPointF(12000, 16500) + << QPointF(12000, 19000) + + << QPointF(17000, 1000) + << QPointF(17000, 2000) + << QPointF(17000, 4000) + << QPointF(17000, 9000) + << QPointF(17000, 14000) + << QPointF(17000, 16500) + << QPointF(17000, 19000) + + << QPointF(22000, 1000) + << QPointF(22000, 2000) + << QPointF(22000, 4000) + << QPointF(22000, 9000) + << QPointF(22000, 14000) + << QPointF(22000, 16500) + << QPointF(22000, 19000) + + << QPointF(28000, 1000) + << QPointF(28000, 2000) + << QPointF(28000, 4000) + << QPointF(28000, 9000) + << QPointF(28000, 14000) + << QPointF(28000, 16500) + << QPointF(28000, 19000); + + m_chart = new QPolarChart(); + + m_chart->addSeries(m_series1); + m_chart->addSeries(m_series2); + m_chart->addSeries(m_series3); + m_chart->addSeries(m_series4); + m_chart->addSeries(m_series5); + m_chart->addSeries(m_series6); + m_chart->addSeries(m_series7); + + connect(m_series1, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series2, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series3, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series4, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series5, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series6, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series7, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); + connect(m_series1, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + connect(m_series2, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + connect(m_series3, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + connect(m_series4, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + connect(m_series5, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + connect(m_series6, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + connect(m_series7, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); + + m_chart->setTitle("Use arrow keys to scroll and +/- to zoom"); + m_chart->setAnimationOptions(m_animationOptions); + //m_chart->legend()->setVisible(false); + m_chart->setAcceptHoverEvents(true); + m_chart->setBackgroundBrush(*m_backgroundBrush); + m_chart->setBackgroundPen(*m_backgroundPen); + m_chart->setPlotAreaBackgroundBrush(*m_plotAreaBackgroundBrush); + m_chart->setPlotAreaBackgroundPen(*m_plotAreaBackgroundPen); +} + +void MainWindow::setAngularAxis(MainWindow::AxisMode mode) +{ + if (m_angularAxis) { + m_chart->removeAxis(m_angularAxis); + delete m_angularAxis; + m_angularAxis = 0; + } + + m_angularAxisMode = mode; + + switch (m_angularAxisMode) { + case AxisModeNone: + return; + case AxisModeValue: + m_angularAxis = new QValueAxis(); + static_cast(m_angularAxis)->setTickCount(m_angularTickCount); + static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); + break; + case AxisModeLogValue: + m_angularAxis = new QLogValueAxis(); + static_cast(m_angularAxis)->setBase(m_base); + static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); + break; + case AxisModeDateTime: + m_angularAxis = new QDateTimeAxis(); + static_cast(m_angularAxis)->setTickCount(m_angularTickCount); + static_cast(m_angularAxis)->setFormat(m_dateFormat); + break; + case AxisModeCategory: + m_angularAxis = new QCategoryAxis(); + applyCategories(); + break; + default: + qWarning() << "Unsupported AxisMode"; + break; + } + + m_angularAxis->setLabelsAngle(m_labelsAngle); + m_angularAxis->setLabelsFont(m_currentLabelFont); + m_angularAxis->setLabelsBrush(*m_labelBrush); + m_angularAxis->setLabelsPen(*m_labelPen); + m_angularAxis->setLabelsVisible(m_labelsVisible); + m_angularAxis->setShadesBrush(*m_angularShadesBrush); + m_angularAxis->setShadesPen(*m_angularShadesPen); + m_angularAxis->setShadesVisible(m_angularShadesVisible); + m_angularAxis->setTitleFont(m_currentTitleFont); + m_angularAxis->setTitleBrush(*m_titleBrush); + m_angularAxis->setTitlePen(*m_titlePen); + m_angularAxis->setTitleVisible(m_titleVisible); + m_angularAxis->setTitleText(m_angularTitle); + m_angularAxis->setGridLinePen(*m_gridPen); + m_angularAxis->setGridLineVisible(m_gridVisible); + m_angularAxis->setLinePen(*m_arrowPen); + m_angularAxis->setLineVisible(m_arrowVisible); + + m_chart->addAxis(m_angularAxis, QPolarChart::PolarOrientationAngular); + + m_series1->attachAxis(m_angularAxis); + m_series2->attachAxis(m_angularAxis); + m_series3->attachAxis(m_angularAxis); + m_series4->attachAxis(m_angularAxis); + m_series5->attachAxis(m_angularAxis); + m_series6->attachAxis(m_angularAxis); + m_series7->attachAxis(m_angularAxis); + + applyRanges(); + + //connect(m_angularAxis, SIGNAL(rangeChanged(qreal, qreal)), this, SLOT(angularRangeChanged(qreal, qreal))); +} + +void MainWindow::setRadialAxis(MainWindow::AxisMode mode) +{ + if (m_radialAxis) { + m_chart->removeAxis(m_radialAxis); + delete m_radialAxis; + m_radialAxis = 0; + } + + m_radialAxisMode = mode; + + switch (m_radialAxisMode) { + case AxisModeNone: + return; + case AxisModeValue: + m_radialAxis = new QValueAxis(); + static_cast(m_radialAxis)->setTickCount(m_radialTickCount); + static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); + break; + case AxisModeLogValue: + m_radialAxis = new QLogValueAxis(); + static_cast(m_radialAxis)->setBase(m_base); + static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); + break; + case AxisModeDateTime: + m_radialAxis = new QDateTimeAxis(); + static_cast(m_radialAxis)->setTickCount(m_radialTickCount); + static_cast(m_radialAxis)->setFormat(m_dateFormat); + break; + case AxisModeCategory: + m_radialAxis = new QCategoryAxis(); + applyCategories(); + break; + default: + qWarning() << "Unsupported AxisMode"; + break; + } + + m_radialAxis->setLabelsAngle(m_labelsAngle); + m_radialAxis->setLabelsFont(m_currentLabelFont); + m_radialAxis->setLabelsBrush(*m_labelBrush); + m_radialAxis->setLabelsPen(*m_labelPen); + m_radialAxis->setLabelsVisible(m_labelsVisible); + m_radialAxis->setShadesBrush(*m_radialShadesBrush); + m_radialAxis->setShadesPen(*m_radialShadesPen); + m_radialAxis->setShadesVisible(m_radialShadesVisible); + m_radialAxis->setTitleFont(m_currentTitleFont); + m_radialAxis->setTitleBrush(*m_titleBrush); + m_radialAxis->setTitlePen(*m_titlePen); + m_radialAxis->setTitleVisible(m_titleVisible); + m_radialAxis->setTitleText(m_radialTitle); + m_radialAxis->setGridLinePen(*m_gridPen); + m_radialAxis->setGridLineVisible(m_gridVisible); + m_radialAxis->setLinePen(*m_arrowPen); + m_radialAxis->setLineVisible(m_arrowVisible); + + m_chart->addAxis(m_radialAxis, QPolarChart::PolarOrientationRadial); + + m_series1->attachAxis(m_radialAxis); + m_series2->attachAxis(m_radialAxis); + m_series3->attachAxis(m_radialAxis); + m_series4->attachAxis(m_radialAxis); + m_series5->attachAxis(m_radialAxis); + m_series6->attachAxis(m_radialAxis); + m_series7->attachAxis(m_radialAxis); + + applyRanges(); + + series1CheckBoxChecked(); + series2CheckBoxChecked(); + series3CheckBoxChecked(); + series4CheckBoxChecked(); + series5CheckBoxChecked(); + series6CheckBoxChecked(); + series7CheckBoxChecked(); + + //connect(m_radialAxis, SIGNAL(rangeChanged(qreal, qreal)), this, SLOT(radialRangeChanged(qreal, qreal))); +} + +void MainWindow::applyRanges() +{ + if (ui->niceNumbersCheckBox->isChecked()) { + if (m_angularAxisMode == AxisModeValue) { + static_cast(m_angularAxis)->applyNiceNumbers(); + m_angularMin = static_cast(m_angularAxis)->min(); + m_angularMax = static_cast(m_angularAxis)->max(); + m_angularTickCount = static_cast(m_angularAxis)->tickCount(); + } + if (m_radialAxisMode == AxisModeValue) { + static_cast(m_radialAxis)->applyNiceNumbers(); + m_radialMin = static_cast(m_radialAxis)->min(); + m_radialMax = static_cast(m_radialAxis)->max(); + m_radialTickCount = static_cast(m_radialAxis)->tickCount(); + } + } + + if (m_angularAxis) + m_angularAxis->setRange(m_angularMin, m_angularMax); + if (m_radialAxis) + m_radialAxis->setRange(m_radialMin, m_radialMax); +} + +void MainWindow::angularTicksChanged(int value) +{ + m_angularTickCount = value; + if (m_angularAxisMode == AxisModeValue) + static_cast(m_angularAxis)->setTickCount(m_angularTickCount); + else if (m_angularAxisMode == AxisModeDateTime) + static_cast(m_angularAxis)->setTickCount(m_angularTickCount); +} + +void MainWindow::radialTicksChanged(int value) +{ + m_radialTickCount = value; + if (m_radialAxisMode == AxisModeValue) + static_cast(m_radialAxis)->setTickCount(m_radialTickCount); + else if (m_radialAxisMode == AxisModeDateTime) + static_cast(m_radialAxis)->setTickCount(m_radialTickCount); +} + +void MainWindow::anglesChanged(int value) +{ + m_labelsAngle = value; + m_radialAxis->setLabelsAngle(m_labelsAngle); + m_angularAxis->setLabelsAngle(m_labelsAngle); +} + +void MainWindow::angularMinChanged(double value) +{ + m_angularMin = value; + if (m_angularAxisMode != AxisModeDateTime) { + m_angularAxis->setMin(m_angularMin); + } else { + QDateTime dateTime; + dateTime.setMSecsSinceEpoch(qint64(m_angularMin)); + m_angularAxis->setMin(dateTime); + } +} + +void MainWindow::angularMaxChanged(double value) +{ + m_angularMax = value; + if (m_angularAxisMode != AxisModeDateTime) { + m_angularAxis->setMax(m_angularMax); + } else { + QDateTime dateTime; + dateTime.setMSecsSinceEpoch(qint64(m_angularMax)); + m_angularAxis->setMax(dateTime); + } +} + +void MainWindow::radialMinChanged(double value) +{ + m_radialMin = value; + if (m_radialAxisMode != AxisModeDateTime) { + m_radialAxis->setMin(m_radialMin); + } else { + QDateTime dateTime; + dateTime.setMSecsSinceEpoch(qint64(m_radialMin)); + m_radialAxis->setMin(dateTime); + } +} + +void MainWindow::radialMaxChanged(double value) +{ + m_radialMax = value; + if (m_radialAxisMode != AxisModeDateTime) { + m_radialAxis->setMax(m_radialMax); + } else { + QDateTime dateTime; + dateTime.setMSecsSinceEpoch(qint64(m_radialMax)); + m_radialAxis->setMax(dateTime); + } +} + +void MainWindow::angularShadesIndexChanged(int index) +{ + delete m_angularShadesBrush; + delete m_angularShadesPen; + + switch (index) { + case 0: + m_angularShadesBrush = new QBrush(Qt::NoBrush); + m_angularShadesPen = new QPen(Qt::NoPen); + m_angularShadesVisible = false; + break; + case 1: + m_angularShadesBrush = new QBrush(Qt::lightGray); + m_angularShadesPen = new QPen(Qt::NoPen); + m_angularShadesVisible = true; + break; + case 2: + m_angularShadesBrush = new QBrush(Qt::yellow); + m_angularShadesPen = new QPen(Qt::DotLine); + m_angularShadesPen->setWidth(2); + m_angularShadesVisible = true; + break; + default: + break; + } + + m_angularAxis->setShadesBrush(*m_angularShadesBrush); + m_angularAxis->setShadesPen(*m_angularShadesPen); + m_angularAxis->setShadesVisible(m_angularShadesVisible); +} + +void MainWindow::radialShadesIndexChanged(int index) +{ + delete m_radialShadesBrush; + delete m_radialShadesPen; + + switch (index) { + case 0: + m_radialShadesBrush = new QBrush(Qt::NoBrush); + m_radialShadesPen = new QPen(Qt::NoPen); + m_radialShadesVisible = false; + break; + case 1: + m_radialShadesBrush = new QBrush(Qt::green); + m_radialShadesPen = new QPen(Qt::NoPen); + m_radialShadesVisible = true; + break; + case 2: + m_radialShadesBrush = new QBrush(Qt::blue); + m_radialShadesPen = new QPen(Qt::DotLine); + m_radialShadesPen->setWidth(2); + m_radialShadesVisible = true; + break; + default: + break; + } + + m_radialAxis->setShadesBrush(*m_radialShadesBrush); + m_radialAxis->setShadesPen(*m_radialShadesPen); + m_radialAxis->setShadesVisible(m_radialShadesVisible); +} + +void MainWindow::labelFormatEdited(const QString &text) +{ + m_labelFormat = text; + if (m_angularAxisMode == AxisModeValue) + static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); + else if (m_angularAxisMode == AxisModeLogValue) + static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); + + if (m_radialAxisMode == AxisModeValue) + static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); + else if (m_radialAxisMode == AxisModeLogValue) + static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); +} + +void MainWindow::labelFontChanged(const QFont &font) +{ + m_currentLabelFont = font; + m_currentLabelFont.setPixelSize(ui->labelFontSizeSpin->value()); + m_angularAxis->setLabelsFont(m_currentLabelFont); + m_radialAxis->setLabelsFont(m_currentLabelFont); +} + +void MainWindow::labelFontSizeChanged(int value) +{ + m_currentLabelFont = ui->labelFontComboBox->currentFont(); + m_currentLabelFont.setPixelSize(value); + m_angularAxis->setLabelsFont(m_currentLabelFont); + m_radialAxis->setLabelsFont(m_currentLabelFont); +} + +void MainWindow::animationIndexChanged(int index) +{ + switch (index) { + case 0: + m_animationOptions = QChart::NoAnimation; + break; + case 1: + m_animationOptions = QChart::SeriesAnimations; + break; + case 2: + m_animationOptions = QChart::GridAxisAnimations; + break; + case 3: + m_animationOptions = QChart::AllAnimations; + break; + default: + break; + } + + m_chart->setAnimationOptions(m_animationOptions); +} + +void MainWindow::labelsIndexChanged(int index) +{ + delete m_labelBrush; + delete m_labelPen; + + switch (index) { + case 0: + m_labelBrush = new QBrush(Qt::NoBrush); + m_labelPen = new QPen(Qt::NoPen); + m_labelsVisible = false; + break; + case 1: + m_labelBrush = new QBrush(Qt::black); + m_labelPen = new QPen(Qt::NoPen); + m_labelsVisible = true; + break; + case 2: + m_labelBrush = new QBrush(Qt::white); + m_labelPen = new QPen(Qt::blue); + m_labelsVisible = true; + break; + default: + break; + } + + m_radialAxis->setLabelsBrush(*m_labelBrush); + m_radialAxis->setLabelsPen(*m_labelPen); + m_radialAxis->setLabelsVisible(m_labelsVisible); + m_angularAxis->setLabelsBrush(*m_labelBrush); + m_angularAxis->setLabelsPen(*m_labelPen); + m_angularAxis->setLabelsVisible(m_labelsVisible); +} + +void MainWindow::titleIndexChanged(int index) +{ + delete m_titleBrush; + delete m_titlePen; + + switch (index) { + case 0: + m_titleBrush = new QBrush(Qt::NoBrush); + m_titlePen = new QPen(Qt::NoPen); + m_titleVisible = false; + m_angularTitle = QString(); + m_radialTitle = QString(); + break; + case 1: + m_titleBrush = new QBrush(Qt::NoBrush); + m_titlePen = new QPen(Qt::NoPen); + m_titleVisible = true; + m_angularTitle = QString(); + m_radialTitle = QString(); + break; + case 2: + m_titleBrush = new QBrush(Qt::NoBrush); + m_titlePen = new QPen(Qt::NoPen); + m_titleVisible = false; + m_angularTitle = QString("Invisible Ang. Title!"); + m_radialTitle = QString("Invisible Rad. Title!"); + break; + case 3: + m_titleBrush = new QBrush(Qt::black); + m_titlePen = new QPen(Qt::NoPen); + m_titleVisible = true; + m_angularTitle = QString("Angular Title"); + m_radialTitle = QString("Radial Title"); + break; + case 4: + m_titleBrush = new QBrush(Qt::white); + m_titlePen = new QPen(Qt::blue); + m_titleVisible = true; + m_angularTitle = QString("Angular Blue Title"); + m_radialTitle = QString("Radial Blue Title"); + break; + default: + break; + } + + m_radialAxis->setTitleBrush(*m_titleBrush); + m_radialAxis->setTitlePen(*m_titlePen); + m_radialAxis->setTitleVisible(m_titleVisible); + m_radialAxis->setTitleText(m_radialTitle); + m_angularAxis->setTitleBrush(*m_titleBrush); + m_angularAxis->setTitlePen(*m_titlePen); + m_angularAxis->setTitleVisible(m_titleVisible); + m_angularAxis->setTitleText(m_angularTitle); +} + +void MainWindow::titleFontChanged(const QFont &font) +{ + m_currentTitleFont = font; + m_currentTitleFont.setPixelSize(ui->titleFontSizeSpin->value()); + m_angularAxis->setTitleFont(m_currentTitleFont); + m_radialAxis->setTitleFont(m_currentTitleFont); +} + +void MainWindow::titleFontSizeChanged(int value) +{ + m_currentTitleFont = ui->titleFontComboBox->currentFont(); + m_currentTitleFont.setPixelSize(value); + m_angularAxis->setTitleFont(m_currentTitleFont); + m_radialAxis->setTitleFont(m_currentTitleFont); +} + +void MainWindow::gridIndexChanged(int index) +{ + delete m_gridPen; + + switch (index) { + case 0: + m_gridPen = new QPen(Qt::NoPen); + m_gridVisible = false; + break; + case 1: + m_gridPen = new QPen(Qt::black); + m_gridVisible = true; + break; + case 2: + m_gridPen = new QPen(Qt::red); + m_gridPen->setStyle(Qt::DashDotLine); + m_gridPen->setWidth(3); + m_gridVisible = true; + break; + default: + break; + } + + m_angularAxis->setGridLinePen(*m_gridPen); + m_angularAxis->setGridLineVisible(m_gridVisible); + m_radialAxis->setGridLinePen(*m_gridPen); + m_radialAxis->setGridLineVisible(m_gridVisible); +} + +void MainWindow::arrowIndexChanged(int index) +{ + delete m_arrowPen; + + switch (index) { + case 0: + m_arrowPen = new QPen(Qt::NoPen); + m_arrowVisible = false; + break; + case 1: + m_arrowPen = new QPen(Qt::black); + m_arrowVisible = true; + break; + case 2: + m_arrowPen = new QPen(Qt::red); + m_arrowPen->setStyle(Qt::DashDotLine); + m_arrowPen->setWidth(3); + m_arrowVisible = true; + break; + default: + break; + } + + m_angularAxis->setLinePen(*m_arrowPen); + m_angularAxis->setLineVisible(m_arrowVisible); + m_radialAxis->setLinePen(*m_arrowPen); + m_radialAxis->setLineVisible(m_arrowVisible); +} + +void MainWindow::angularRangeChanged(qreal min, qreal max) +{ + if (!qFuzzyCompare(qreal(ui->angularMinSpin->value()), min)) + ui->angularMinSpin->setValue(min); + if (!qFuzzyCompare(qreal(ui->angularMaxSpin->value()), max)) + ui->angularMaxSpin->setValue(max); +} + +void MainWindow::radialRangeChanged(qreal min, qreal max) +{ + if (!qFuzzyCompare(qreal(ui->radialMinSpin->value()), min)) + ui->radialMinSpin->setValue(min); + if (!qFuzzyCompare(qreal(ui->radialMaxSpin->value()), max)) + ui->radialMaxSpin->setValue(max); +} + +void MainWindow::angularAxisIndexChanged(int index) +{ + switch (index) { + case 0: + setAngularAxis(AxisModeNone); + break; + case 1: + setAngularAxis(AxisModeValue); + break; + case 2: + setAngularAxis(AxisModeLogValue); + break; + case 3: + setAngularAxis(AxisModeDateTime); + break; + case 4: + setAngularAxis(AxisModeCategory); + break; + default: + qWarning("Invalid Index!"); + } +} + +void MainWindow::radialAxisIndexChanged(int index) +{ + switch (index) { + case 0: + setRadialAxis(AxisModeNone); + break; + case 1: + setRadialAxis(AxisModeValue); + break; + case 2: + setRadialAxis(AxisModeLogValue); + break; + case 3: + setRadialAxis(AxisModeDateTime); + break; + case 4: + setRadialAxis(AxisModeCategory); + break; + default: + qWarning("Invalid Index!"); + } +} + +void MainWindow::logBaseChanged(double value) +{ + m_base = value; + if (m_angularAxisMode == AxisModeLogValue) + static_cast(m_angularAxis)->setBase(m_base); + if (m_radialAxisMode == AxisModeLogValue) + static_cast(m_radialAxis)->setBase(m_base); +} + +void MainWindow::niceNumbersChecked() +{ + if (ui->niceNumbersCheckBox->isChecked()) + applyRanges(); +} + +void MainWindow::dateFormatEdited(const QString &text) +{ + m_dateFormat = text; + if (m_angularAxisMode == AxisModeDateTime) + static_cast(m_angularAxis)->setFormat(m_dateFormat); + if (m_radialAxisMode == AxisModeDateTime) + static_cast(m_radialAxis)->setFormat(m_dateFormat); +} + +void MainWindow::moreCategoriesChecked() +{ + applyCategories(); + m_moreCategories = ui->moreCategoriesCheckBox->isChecked(); +} + +void MainWindow::series1CheckBoxChecked() +{ + if (ui->series1checkBox->isChecked()) + m_series1->setVisible(true); + else + m_series1->setVisible(false); +} + +void MainWindow::series2CheckBoxChecked() +{ + if (ui->series2checkBox->isChecked()) + m_series2->setVisible(true); + else + m_series2->setVisible(false); +} + +void MainWindow::series3CheckBoxChecked() +{ + if (ui->series3checkBox->isChecked()) + m_series3->setVisible(true); + else + m_series3->setVisible(false); +} + +void MainWindow::series4CheckBoxChecked() +{ + if (ui->series4checkBox->isChecked()) + m_series4->setVisible(true); + else + m_series4->setVisible(false); +} + +void MainWindow::series5CheckBoxChecked() +{ + if (ui->series5checkBox->isChecked()) + m_series5->setVisible(true); + else + m_series5->setVisible(false); +} + +void MainWindow::series6CheckBoxChecked() +{ + if (ui->series6checkBox->isChecked()) + m_series6->setVisible(true); + else + m_series6->setVisible(false); +} + +void MainWindow::series7CheckBoxChecked() +{ + if (ui->series7checkBox->isChecked()) + m_series7->setVisible(true); + else + m_series7->setVisible(false); +} + +void MainWindow::themeIndexChanged(int index) +{ + m_chart->setTheme(QChart::ChartTheme(index)); +} + +void MainWindow::seriesHovered(QPointF point, bool state) +{ + QAbstractSeries *series = qobject_cast(sender()); + if (series) { + if (state) { + QString str("'%3' - %1 x %2"); + ui->hoverLabel->setText(str.arg(point.x()).arg(point.y()).arg(series->name())); + } else { + ui->hoverLabel->setText("No hover"); + } + } else { + qDebug() << "seriesHovered - invalid sender!"; + } +} + +void MainWindow::seriesClicked(const QPointF &point) +{ + QAbstractSeries *series = qobject_cast(sender()); + if (series) { + QString str("'%3' clicked at: %1 x %2"); + m_angularTitle = str.arg(point.x()).arg(point.y()).arg(series->name()); + m_angularAxis->setTitleText(m_angularTitle); + } else { + qDebug() << "seriesClicked - invalid sender!"; + } +} + +void MainWindow::backgroundIndexChanged(int index) +{ + delete m_backgroundBrush; + delete m_backgroundPen; + + switch (index) { + case 0: + m_backgroundBrush = new QBrush(Qt::white); + m_backgroundPen = new QPen(Qt::NoPen); + break; + case 1: + m_backgroundBrush = new QBrush(Qt::blue); + m_backgroundPen = new QPen(Qt::NoPen); + break; + case 2: + m_backgroundBrush = new QBrush(Qt::yellow); + m_backgroundPen = new QPen(Qt::black, 2); + break; + default: + break; + } + m_chart->setBackgroundBrush(*m_backgroundBrush); + m_chart->setBackgroundPen(*m_backgroundPen); +} + +void MainWindow::plotAreaIndexChanged(int index) +{ + delete m_plotAreaBackgroundBrush; + delete m_plotAreaBackgroundPen; + + switch (index) { + case 0: + m_plotAreaBackgroundBrush = new QBrush(Qt::green); + m_plotAreaBackgroundPen = new QPen(Qt::green); + m_chart->setPlotAreaBackgroundVisible(false); + break; + case 1: + m_plotAreaBackgroundBrush = new QBrush(Qt::magenta); + m_plotAreaBackgroundPen = new QPen(Qt::NoPen); + m_chart->setPlotAreaBackgroundVisible(true); + break; + case 2: + m_plotAreaBackgroundBrush = new QBrush(Qt::lightGray); + m_plotAreaBackgroundPen = new QPen(Qt::red, 6); + m_chart->setPlotAreaBackgroundVisible(true); + break; + default: + break; + } + m_chart->setPlotAreaBackgroundBrush(*m_plotAreaBackgroundBrush); + m_chart->setPlotAreaBackgroundPen(*m_plotAreaBackgroundPen); +} + +void MainWindow::applyCategories() +{ + // Basic layout is three categories, extended has five + if (m_angularAxisMode == AxisModeCategory) { + QCategoryAxis *angCatAxis = static_cast(m_angularAxis); + if (angCatAxis->count() == 0) { + angCatAxis->setStartValue(4000); + angCatAxis->append("Category A", 7000); + angCatAxis->append("Category B", 12000); + angCatAxis->append("Category C", 17000); + } + if (angCatAxis->count() == 3 && ui->moreCategoriesCheckBox->isChecked()) { + angCatAxis->setStartValue(1000); + angCatAxis->replaceLabel("Category A", "Cat A"); + angCatAxis->replaceLabel("Category B", "Cat B"); + angCatAxis->replaceLabel("Category C", "Cat C"); + angCatAxis->append("Cat D", 22000); + angCatAxis->append("Cat E", 28000); + } else if (angCatAxis->count() == 5 && !ui->moreCategoriesCheckBox->isChecked()) { + angCatAxis->setStartValue(4000); + angCatAxis->replaceLabel("Cat A", "Category A"); + angCatAxis->replaceLabel("Cat B", "Category B"); + angCatAxis->replaceLabel("Cat C", "Category C"); + angCatAxis->remove("Cat D"); + angCatAxis->remove("Cat E"); + } + } + + if (m_radialAxisMode == AxisModeCategory) { + QCategoryAxis *radCatAxis = static_cast(m_radialAxis); + if (radCatAxis->count() == 0) { + radCatAxis->setStartValue(2000); + radCatAxis->append("Category 1", 4000); + radCatAxis->append("Category 2", 9000); + radCatAxis->append("Category 3", 14000); + } + if (radCatAxis->count() == 3 && ui->moreCategoriesCheckBox->isChecked()) { + radCatAxis->setStartValue(1000); + radCatAxis->replaceLabel("Category 1", "Cat 1"); + radCatAxis->replaceLabel("Category 2", "Cat 2"); + radCatAxis->replaceLabel("Category 3", "Cat 3"); + radCatAxis->append("Cat 4", 16500); + radCatAxis->append("Cat 5", 19000); + } else if (radCatAxis->count() == 5 && !ui->moreCategoriesCheckBox->isChecked()) { + radCatAxis->setStartValue(2000); + radCatAxis->replaceLabel("Cat 1", "Category 1"); + radCatAxis->replaceLabel("Cat 2", "Category 2"); + radCatAxis->replaceLabel("Cat 3", "Category 3"); + radCatAxis->remove("Cat 4"); + radCatAxis->remove("Cat 5"); + } + } +} diff --git a/tests/manual/polarcharttest/mainwindow.h b/tests/manual/polarcharttest/mainwindow.h new file mode 100644 index 00000000..2257ef04 --- /dev/null +++ b/tests/manual/polarcharttest/mainwindow.h @@ -0,0 +1,161 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef MAINWINDOW_H +#define MAINWINDOW_H + +#include +#include +#include +#include +#include +#include +#include +#include + +namespace Ui { +class MainWindow; +} + +QT_CHARTS_USE_NAMESPACE + +class QBrush; +class QPen; + +class MainWindow : public QMainWindow +{ + Q_OBJECT + +public: + explicit MainWindow(QWidget *parent = 0); + ~MainWindow(); + +public slots: + void angularTicksChanged(int value); + void radialTicksChanged(int value); + void anglesChanged(int value); + void angularMinChanged(double value); + void angularMaxChanged(double value); + void radialMinChanged(double value); + void radialMaxChanged(double value); + void angularShadesIndexChanged(int index); + void radialShadesIndexChanged(int index); + void labelFormatEdited(const QString &text); + void labelFontChanged(const QFont &font); + void labelFontSizeChanged(int value); + void animationIndexChanged(int index); + void labelsIndexChanged(int index); + void titleIndexChanged(int index); + void titleFontChanged(const QFont &font); + void titleFontSizeChanged(int value); + void gridIndexChanged(int index); + void arrowIndexChanged(int index); + void angularRangeChanged(qreal min, qreal max); + void radialRangeChanged(qreal min, qreal max); + void angularAxisIndexChanged(int index); + void radialAxisIndexChanged(int index); + void logBaseChanged(double value); + void niceNumbersChecked(); + void dateFormatEdited(const QString &text); + void moreCategoriesChecked(); + void series1CheckBoxChecked(); + void series2CheckBoxChecked(); + void series3CheckBoxChecked(); + void series4CheckBoxChecked(); + void series5CheckBoxChecked(); + void series6CheckBoxChecked(); + void series7CheckBoxChecked(); + void themeIndexChanged(int index); + void seriesHovered(QPointF point, bool state); + void seriesClicked(const QPointF &point); + void backgroundIndexChanged(int index); + void plotAreaIndexChanged(int index); + +private: + enum AxisMode { + AxisModeNone, + AxisModeValue, + AxisModeLogValue, + AxisModeDateTime, + AxisModeCategory + }; + + void initXYValueChart(); + void setAngularAxis(AxisMode mode); + void setRadialAxis(AxisMode mode); + + void applyRanges(); + void applyCategories(); + + Ui::MainWindow *ui; + + int m_angularTickCount; + int m_radialTickCount; + qreal m_labelsAngle; + qreal m_angularMin; + qreal m_angularMax; + qreal m_radialMin; + qreal m_radialMax; + bool m_angularShadesVisible; + bool m_radialShadesVisible; + bool m_labelsVisible; + bool m_titleVisible; + bool m_gridVisible; + bool m_arrowVisible; + QBrush *m_angularShadesBrush; + QBrush *m_radialShadesBrush; + QBrush *m_labelBrush; + QBrush *m_titleBrush; + QBrush *m_backgroundBrush; + QBrush *m_plotAreaBackgroundBrush; + QPen *m_angularShadesPen; + QPen *m_radialShadesPen; + QPen *m_labelPen; + QPen *m_titlePen; + QPen *m_gridPen; + QPen *m_arrowPen; + QPen *m_backgroundPen; + QPen *m_plotAreaBackgroundPen; + QString m_labelFormat; + QFont m_currentLabelFont; + QFont m_currentTitleFont; + QChart::AnimationOptions m_animationOptions; + QString m_angularTitle; + QString m_radialTitle; + qreal m_base; + QString m_dateFormat; + + QPolarChart *m_chart; + QAbstractAxis *m_angularAxis; + QAbstractAxis *m_radialAxis; + AxisMode m_angularAxisMode; + AxisMode m_radialAxisMode; + bool m_moreCategories; + + QScatterSeries *m_series1; + QLineSeries *m_series2; + QLineSeries *m_series3; + QLineSeries *m_series4; + QAreaSeries *m_series5; + QSplineSeries *m_series6; + QScatterSeries *m_series7; +}; + +#endif // MAINWINDOW_H diff --git a/tests/manual/polarcharttest/mainwindow.ui b/tests/manual/polarcharttest/mainwindow.ui new file mode 100644 index 00000000..cc4b1994 --- /dev/null +++ b/tests/manual/polarcharttest/mainwindow.ui @@ -0,0 +1,1002 @@ + + + MainWindow + + + + 0 + 0 + 1193 + 956 + + + + MainWindow + + + + + + + + + + + 0 + 0 + + + + + 200 + 0 + + + + Settings + + + + + 110 + 90 + 71 + 22 + + + + + + + 10 + 90 + 101 + 16 + + + + Radial Tick count + + + + + + 10 + 120 + 101 + 16 + + + + Angular Tick count + + + + + + 110 + 120 + 71 + 22 + + + + + + + 110 + 150 + 71 + 22 + + + + -9999 + + + 9999 + + + 5 + + + + + + 10 + 150 + 101 + 16 + + + + Label angles + + + + + + 10 + 180 + 101 + 16 + + + + Angular min + + + + + + 10 + 210 + 101 + 16 + + + + Angular max + + + + + + 90 + 180 + 91 + 22 + + + + 5 + + + -999999999.000000000000000 + + + 999999999.000000000000000 + + + 10.000000000000000 + + + + + + 90 + 210 + 91 + 22 + + + + 5 + + + -999999999.000000000000000 + + + 999999999.000000000000000 + + + 10.000000000000000 + + + + + + 90 + 270 + 91 + 22 + + + + 5 + + + -999999999.000000000000000 + + + 999999999.000000000000000 + + + 10.000000000000000 + + + + + + 90 + 240 + 91 + 22 + + + + 5 + + + -999999999.000000000000000 + + + 999999999.000000000000000 + + + 10.000000000000000 + + + + + + 10 + 270 + 101 + 16 + + + + Radial max + + + + + + 10 + 240 + 101 + 16 + + + + Radial min + + + + + + 10 + 300 + 171 + 22 + + + + + No angular shades + + + + + Gray angular shades + + + + + Yellow ang. shades + custom pen + + + + + + + 10 + 330 + 171 + 22 + + + + + No radial shades + + + + + Green radial shades + + + + + Blue rad. shades + custom pen + + + + + + + 10 + 360 + 101 + 16 + + + + Label format + + + + + + 100 + 360 + 81 + 20 + + + + + + + 10 + 390 + 101 + 16 + + + + Label font size + + + + + + 10 + 420 + 171 + 22 + + + + + + + 100 + 390 + 81 + 22 + + + + -100000 + + + 100000 + + + + + + 10 + 480 + 171 + 22 + + + + + No animations + + + + + Series animation + + + + + Grid animation + + + + + All animations + + + + + + + 10 + 450 + 171 + 22 + + + + 1 + + + + No labels + + + + + Black label + + + + + White label + blue pen + + + + + + + 100 + 510 + 81 + 22 + + + + -100000 + + + 100000 + + + + + + 10 + 570 + 171 + 22 + + + + + 0 + 0 + + + + 3 + + + + Invisible empty title + + + + + Visible empty title + + + + + Invisible title + + + + + Black title + + + + + White title + blue pen + + + + + + + 10 + 540 + 171 + 22 + + + + + + + 10 + 510 + 101 + 16 + + + + Title font size + + + + + + 10 + 600 + 171 + 22 + + + + + 0 + 0 + + + + 1 + + + + Invisible grid + + + + + Black grid + + + + + Custom grid pen + + + + + + + 10 + 630 + 171 + 22 + + + + + 0 + 0 + + + + 1 + + + + Invisible arrow + + + + + Black arrow + + + + + Custom arrow pen + + + + + + + 10 + 20 + 171 + 22 + + + + 1 + + + + No Angular Axis + + + + + Angular Value Axis + + + + + Angular Log Axis + + + + + Angular DateTime Axis + + + + + Angular Category Axis + + + + + + + 10 + 50 + 171 + 22 + + + + 1 + + + + No Radial Axis + + + + + Radial Value Axis + + + + + Radial Log Axis + + + + + Radial DateTime Axis + + + + + Radial Category Axis + + + + + + + 10 + 660 + 101 + 16 + + + + Log Base + + + + + + 90 + 660 + 91 + 22 + + + + 5 + + + -999999999.000000000000000 + + + 999999999.000000000000000 + + + 8.000000000000000 + + + + + + 10 + 690 + 91 + 16 + + + + Nice Numbers + + + + + + 100 + 710 + 81 + 20 + + + + + + + 10 + 710 + 101 + 16 + + + + DateTime format + + + + + + 100 + 690 + 141 + 16 + + + + More Categories + + + + + + 10 + 730 + 31 + 16 + + + + 1 + + + + + + 40 + 730 + 31 + 16 + + + + 2 + + + + + + 70 + 730 + 31 + 16 + + + + 3 + + + + + + 10 + 750 + 31 + 16 + + + + 4 + + + + + + 40 + 750 + 31 + 16 + + + + 5 + + + + + + 70 + 750 + 31 + 16 + + + + 6 + + + + + + 100 + 740 + 31 + 16 + + + + 7 + + + + + + 10 + 770 + 171 + 22 + + + + + 0 + 0 + + + + 0 + + + + Theme: Light + + + + + Theme: Blue Cerulean + + + + + Theme: Dark + + + + + Theme: Brown Sand + + + + + Theme: Blue Ncs + + + + + Theme: High Contrast + + + + + Theme: Blue Icy + + + + + Theme: Qt + + + + + + + 10 + 800 + 171 + 16 + + + + Hover coordinates here! + + + + + + 10 + 820 + 171 + 22 + + + + + 0 + 0 + + + + 0 + + + + Background: White + + + + + Background: Blue + + + + + Background: Yellow + Black Border + + + + + + + 10 + 850 + 171 + 22 + + + + + 0 + 0 + + + + 0 + + + + PlotArea: Transparent + + + + + PlotArea: Magenta + + + + + PlotArea: Gray + Red Border + + + + + + + + + + + 0 + 0 + 1193 + 21 + + + + + + TopToolBarArea + + + false + + + + + + + + ChartView + QGraphicsView +
chartview.h
+
+
+ + +
diff --git a/tests/manual/polarcharttest/polarcharttest.pro b/tests/manual/polarcharttest/polarcharttest.pro new file mode 100644 index 00000000..a8409769 --- /dev/null +++ b/tests/manual/polarcharttest/polarcharttest.pro @@ -0,0 +1,19 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +QT += core gui widgets + +TARGET = polarcharttest +TEMPLATE = app +INCLUDEPATH += . + + +SOURCES += main.cpp \ + mainwindow.cpp \ + chartview.cpp + +HEADERS += mainwindow.h \ + chartview.h + +FORMS += mainwindow.ui diff --git a/tests/manual/presenterchart/chartview.cpp b/tests/manual/presenterchart/chartview.cpp new file mode 100644 index 00000000..be01933c --- /dev/null +++ b/tests/manual/presenterchart/chartview.cpp @@ -0,0 +1,100 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "chartview.h" +#include +#include +#include +#include +#include + +ChartView::ChartView(QChart *chart, QWidget *parent) + : QChartView(chart, parent), + m_index(-1), + m_chart(chart) +{ + m_chart->setTitle("Charts presenter"); + m_chart->setDropShadowEnabled(false); + QObject::connect(&m_timer, SIGNAL(timeout()), this, SLOT(handleTimeout())); + m_timer.setInterval(3000); + + //![1] + QLineSeries *series0 = new QLineSeries(); + series0->setName("line"); + + QScatterSeries *series1 = new QScatterSeries(); + series1->setName("scatter"); + + QSplineSeries *series2 = new QSplineSeries(); + series2->setName("spline"); + + QAreaSeries *series3 = new QAreaSeries(series0); + series3->setName("area"); + //![1] + + //![2] + int numPoints = 10; + + for (int x = 0; x <= numPoints; ++x) { + qreal y = qrand() % 100; + series0->append(x, y); + series1->append(x, y); + series2->append(x, y); + } + //![2] + + //![3] + m_series << series0; + m_titles << m_chart->title() + ": LineChart"; + m_series << series1; + m_titles << m_chart->title() + ": ScatterChart"; + m_series << series2; + m_titles << m_chart->title() + ": SplineChart"; + m_series << series3; + m_titles << m_chart->title() + ": AreaChart"; + //![3] + + m_timer.start(); + handleTimeout(); +} + +ChartView::~ChartView() +{ + if (m_series.size() == 0) + return; + m_chart->removeSeries(m_series.at(m_index)); + m_series.removeLast(); //remove QAreaSeries instance since they will be deleted when QLineSeries instance is gone + qDeleteAll(m_series); +} + +//![4] +void ChartView::handleTimeout() +{ + if (m_series.size() == 0) + return; + if (m_index >= 0) + m_chart->removeSeries(m_series.at(m_index)); + m_index++; + m_index = m_index % m_series.size(); + m_chart->addSeries(m_series.at(m_index)); + m_chart->setTitle(m_titles.at(m_index)); + m_chart->createDefaultAxes(); +} +//![4] diff --git a/tests/manual/presenterchart/chartview.h b/tests/manual/presenterchart/chartview.h new file mode 100644 index 00000000..99d8c65a --- /dev/null +++ b/tests/manual/presenterchart/chartview.h @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef CHARTVIEW_H +#define CHARTVIEW_H + +#include +#include + +QT_CHARTS_USE_NAMESPACE + +//![1] +class ChartView: public QChartView +{ + Q_OBJECT +public: + ChartView(QChart *chart, QWidget *parent = 0); + virtual ~ChartView(); + +public slots: + void handleTimeout(); + +private: + QTimer m_timer; + QList m_series; + QStringList m_titles; + int m_index; + QChart *m_chart; +}; +//![1] + +#endif /* CHARTVIEW_H */ diff --git a/tests/manual/presenterchart/main.cpp b/tests/manual/presenterchart/main.cpp new file mode 100644 index 00000000..22a45025 --- /dev/null +++ b/tests/manual/presenterchart/main.cpp @@ -0,0 +1,37 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "chartview.h" +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + QMainWindow window; + QChart *chart = new QChart(); + ChartView chartView(chart, &window); + chartView.setRenderHint(QPainter::Antialiasing); + chart->setAnimationOptions(QChart::SeriesAnimations); + window.setCentralWidget(&chartView); + window.resize(400, 300); + window.show(); + return a.exec(); +} diff --git a/tests/manual/presenterchart/presenterchart.pro b/tests/manual/presenterchart/presenterchart.pro new file mode 100644 index 00000000..0269c6e7 --- /dev/null +++ b/tests/manual/presenterchart/presenterchart.pro @@ -0,0 +1,9 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +TARGET = presenterchart +HEADERS += chartview.h +SOURCES += main.cpp chartview.cpp + +QT += widgets diff --git a/tests/manual/qmlchartaxis/main.cpp b/tests/manual/qmlchartaxis/main.cpp new file mode 100644 index 00000000..5c5923c7 --- /dev/null +++ b/tests/manual/qmlchartaxis/main.cpp @@ -0,0 +1,48 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +#include +#include +#include + +int main(int argc, char *argv[]) +{ + // Qt Charts uses Qt Graphics View Framework for drawing, therefore QApplication must be used. + QApplication app(argc, argv); + + QQuickView viewer; + + // The following are needed to make examples run without having to install the module + // in desktop environments. +#ifdef Q_OS_WIN + QString extraImportPath(QStringLiteral("%1/../../../../%2")); +#else + QString extraImportPath(QStringLiteral("%1/../../../%2")); +#endif + viewer.engine()->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(), + QString::fromLatin1("qml"))); + QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close); + + viewer.setSource(QUrl("qrc:/qml/qmlchartaxis/main.qml")); + viewer.show(); + + return app.exec(); +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/Button.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/Button.qml new file mode 100644 index 00000000..61df081d --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/Button.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Rectangle { + id: button + height: 25 + width: 140 + color: unpressedColor + radius: 5 + property color unpressedColor: "#afafaf" + + property string text: "button" + signal clicked + + Text { + id: buttonText + anchors.centerIn: parent + text: button.text + } + + MouseArea { + anchors.fill: parent + onClicked: { + button.clicked(); + } + onPressedChanged: { + if (pressed) { + button.color = "#efefef"; + } else { + button.color = unpressedColor; + } + } + onPressAndHold: { + repeatTimer.start(); + } + onReleased: { + repeatTimer.stop(); + } + } + + Timer { + id: repeatTimer + interval: 140 + repeat: true + triggeredOnStart: false + running: false + onTriggered: { + button.clicked(); + } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml new file mode 100644 index 00000000..69250a39 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "chart axes" + + // TODO: Do we need a property for orientation or properties "axisX" and "axisY" on ChartView + // to make an axis the default axis for all series with no other axes defined...? +// ValueAxis { +// orientation: ValueAxis.AxisX +// min: 0 +// max: 10 +// } +// axisX: ValueAxis { +// min: 0 +// max: 10 +// } + // ...Now that we don't have this implementation, the following axes won't have any affect: + ValueAxis { + min: 0 + max: 10 + } + ValueAxis { + min: 0 + max: 5 + } + + LineSeries { + name: "line series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + name: "scatter series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + +// Component.onCompleted: { +// // You can also set the axes dynamically +// chartView.setAxisX(axisX, scatter); +// } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml new file mode 100644 index 00000000..524e3314 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml @@ -0,0 +1,58 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "chart axes reverted" + + ValueAxis { + min: 0 + max: 10 + } + ValueAxis { + min: 0 + max: 5 + } + + ScatterSeries { + name: "scatter series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + LineSeries { + name: "line series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml new file mode 100644 index 00000000..9e24b47b --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml @@ -0,0 +1,74 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "configuring dynamically" + id: chartView + property int index: 0 + + Timer { + interval: 1000 + repeat: true + running: true + onTriggered: { + switch (index) { + case 0: + lineSeries.axisX.max = 6; + lineSeries.axisY.max = 6; + break; + case 1: + scatterSeries.axisX.max = 10; + scatterSeries.axisY.max = 10; + break; + default: + chartView.axisX().max = 4; + chartView.axisY().max = 4; + } + index = (index + 1) % 3; + } + } + + LineSeries { + id: lineSeries + name: "line series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + id: scatterSeries + name: "scatter series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml new file mode 100644 index 00000000..209ef372 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml @@ -0,0 +1,68 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "creating dyn. new series" + property int index: 0 + + Timer { + interval: 1000 + repeat: true + running: true + onTriggered: { + switch (index) { + case 0: + var count = chartView.count; + var line = chartView.createSeries(ChartView.SeriesTypeLine, "line"); + line.append(0, 0); + line.append(1, 1); + line.append(2, 2); + line.append(3, 3); + line.append(4, 4); + break; + case 1: + chartView.axisX().min = 0; + chartView.axisX().max = 4.5; + chartView.axisY().min = 0; + chartView.axisY().max = 4.5; + break; + case 2: + var scatter = chartView.createSeries(ChartView.SeriesTypeScatter, "scatter"); + scatter.append(0, 0); + scatter.append(0.5, 1); + scatter.append(1, 2); + scatter.append(1.5, 3); + scatter.append(2, 4); + scatter.append(1, 1); + scatter.append(2, 2); + scatter.append(3, 3); + scatter.append(4, 4); + break; + default: + chartView.removeAllSeries(); + } + index = (index + 1) % 4; + } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml new file mode 100644 index 00000000..2cab44fd --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "default + user defined" + + ValueAxis { + id: axisX + min: 0 + max: 6 + } + + ValueAxis { + id: axisY + min: 0 + max: 6 + } + + LineSeries { + name: "line series 1" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + name: "scatter series" + axisX: axisX + axisY: axisY + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + LineSeries { + name: "line series 2" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml new file mode 100644 index 00000000..f06dd7cf --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "default axes" + + LineSeries { + name: "line series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + name: "scatter series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml new file mode 100644 index 00000000..67685082 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "default axes" + + ScatterSeries { + name: "scatter series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + LineSeries { + name: "line series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/Legacy.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/Legacy.qml new file mode 100644 index 00000000..caafabb7 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/Legacy.qml @@ -0,0 +1,56 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "Deprecated code" + property int index: 0 + + Component.onCompleted: { + // Calling createDefaultAxes in onCompleted is now deprecated. It needs to be tested, + // though, because some application may still use it + chartView.createDefaultAxes(); + } + + LineSeries { + name: "line series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + name: "scatter series" + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml new file mode 100644 index 00000000..c9ac5d92 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml @@ -0,0 +1,82 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "series specific dynamic axes" + id: chartView + property int index: 0 + + Timer { + interval: 1000 + repeat: true + running: true + onTriggered: { + switch (index) { + case 0: + lineAxisX.max = 6; + lineAxisY.max = 6; + scatterAxisX.max = 10; + scatterAxisY.max = 10; + break; + case 1: + lineAxisX.max = 10; + lineAxisY.max = 10; + scatterAxisX.max = 6; + scatterAxisY.max = 6; + break; + default: + chartView.axisX().max = 4; + chartView.axisY().max = 4; + } + index = (index + 1) % 3; + } + } + + LineSeries { + id: lineSeries + name: "line series" + axisX: ValueAxis { id: lineAxisX } + axisY: ValueAxis { id: lineAxisY } + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + id: scatterSeries + name: "scatter series" + axisX: ValueAxis { id: scatterAxisX } + axisY: ValueAxis { id: scatterAxisY } + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml new file mode 100644 index 00000000..db11c9ee --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml @@ -0,0 +1,71 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "switching axes dynamically" + + Timer { + interval: 1000 + repeat: true + running: true + onTriggered: { + //console.log("current axisX: " + lineSeries.axisX + " 1: " + valueAxis1 + " 2: " +valueAxis2); + + // Note: an axis is destroyed if it is not used anymore + if (lineSeries.axisX == valueAxis1) + lineSeries.axisX = valueAxis2; + else if (lineSeries.axisX == valueAxis2) + lineSeries.axisX = valueAxis3; + } + } + + ValueAxis { + id: valueAxis1 + min: 0 + max: 5 + } + + ValueAxis { + id: valueAxis2 + min: 1 + max: 6 + } + + ValueAxis { + id: valueAxis3 + min: 2 + max: 7 + } + + LineSeries { + id: lineSeries + name: "line series" + axisX: valueAxis1 + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml new file mode 100644 index 00000000..f87c18cb --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "user defined" + + ValueAxis { + id: axisX + min: 0 + max: 6 + } + + ValueAxis { + id: axisY + min: 0 + max: 6 + } + + LineSeries { + name: "line series" + axisX: axisX + axisY: axisY + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + ScatterSeries { + name: "scatter series" + axisX: axisX + axisY: axisY + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml new file mode 100644 index 00000000..ea625c22 --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "user defined reverted" + + ValueAxis { + id: axisX + min: 0 + max: 6 + } + + ValueAxis { + id: axisY + min: 0 + max: 6 + } + + ScatterSeries { + name: "scatter series" + axisX: axisX + axisY: axisY + XYPoint { x: 0; y: 0 } + XYPoint { x: 0.5; y: 1 } + XYPoint { x: 1; y: 2 } + XYPoint { x: 1.5; y: 3 } + XYPoint { x: 2; y: 4 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } + + LineSeries { + name: "line series" + axisX: axisX + axisY: axisY + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 2 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 4 } + } +} diff --git a/tests/manual/qmlchartaxis/qml/qmlchartaxis/main.qml b/tests/manual/qmlchartaxis/qml/qmlchartaxis/main.qml new file mode 100644 index 00000000..f973bf7a --- /dev/null +++ b/tests/manual/qmlchartaxis/qml/qmlchartaxis/main.qml @@ -0,0 +1,96 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Rectangle { + id: main + width: 500 + height: 400 + property string viewName: "DefaultAxes" + + Row { + anchors.fill: parent + anchors.topMargin: 10 + + Loader { + id: chartLoader + width: parent.width - buttonColumn.width + height: parent.height + source: viewName + ".qml" + } + + Column { + id: buttonColumn + width: 150 + height: parent.height + spacing: 5 + + Button { + text: "Default axes" + onClicked: viewName = "DefaultAxes"; + } + Button { + text: "Default axes reverted" + onClicked: viewName = "DefaultAxesRevert"; + } + Button { + text: "User defined" + onClicked: viewName = "UserDefined"; + } + Button { + text: "User defined reverted" + onClicked: viewName = "UserDefinedRevert"; + } + Button { + text: "Chart axes" + onClicked: viewName = "ChartAxes"; + } + Button { + text: "Chart axes reverted" + onClicked: viewName = "ChartAxesRevert"; + } + Button { + text: "Configuring dynamically" + onClicked: viewName = "ConfiguringDynamically"; + } + Button { + text: "Series specific dynamic" + onClicked: viewName = "SeriesSpecificDynamic"; + } + Button { + text: "Creating dynamically" + onClicked: viewName = "CreatingDynamically"; + } + Button { + text: "Switching dynamically" + onClicked: viewName = "SwitchingDynamically"; + } + Button { + text: "Default + User defined" + onClicked: viewName = "DefaultAndUserDefined"; + } + Button { + text: "Legacy" + onClicked: viewName = "Legacy"; + } + } + } +} diff --git a/tests/manual/qmlchartaxis/qmlchartaxis.pro b/tests/manual/qmlchartaxis/qmlchartaxis.pro new file mode 100644 index 00000000..aaf2a7a0 --- /dev/null +++ b/tests/manual/qmlchartaxis/qmlchartaxis.pro @@ -0,0 +1,8 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +RESOURCES += resources.qrc +SOURCES += main.cpp +OTHER_FILES += qml/qmlchartaxis/* + diff --git a/tests/manual/qmlchartaxis/resources.qrc b/tests/manual/qmlchartaxis/resources.qrc new file mode 100644 index 00000000..2f9f4b67 --- /dev/null +++ b/tests/manual/qmlchartaxis/resources.qrc @@ -0,0 +1,18 @@ + + + qml/qmlchartaxis/main.qml + qml/qmlchartaxis/Button.qml + qml/qmlchartaxis/DefaultAxes.qml + qml/qmlchartaxis/DefaultAxesRevert.qml + qml/qmlchartaxis/UserDefined.qml + qml/qmlchartaxis/UserDefinedRevert.qml + qml/qmlchartaxis/ChartAxes.qml + qml/qmlchartaxis/ChartAxesRevert.qml + qml/qmlchartaxis/ConfiguringDynamically.qml + qml/qmlchartaxis/SeriesSpecificDynamic.qml + qml/qmlchartaxis/CreatingDynamically.qml + qml/qmlchartaxis/SwitchingDynamically.qml + qml/qmlchartaxis/DefaultAndUserDefined.qml + qml/qmlchartaxis/Legacy.qml + + diff --git a/tests/manual/qmlchartproperties/main.cpp b/tests/manual/qmlchartproperties/main.cpp new file mode 100644 index 00000000..752724be --- /dev/null +++ b/tests/manual/qmlchartproperties/main.cpp @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 +#include +#include +#include + +int main(int argc, char *argv[]) +{ + // Qt Charts uses Qt Graphics View Framework for drawing, therefore QApplication must be used. + QApplication app(argc, argv); + + QQuickView viewer; + + // The following are needed to make examples run without having to install the module + // in desktop environments. +#ifdef Q_OS_WIN + QString extraImportPath(QStringLiteral("%1/../../../../%2")); +#else + QString extraImportPath(QStringLiteral("%1/../../../%2")); +#endif + viewer.engine()->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(), + QString::fromLatin1("qml"))); + QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close); + + viewer.setSource(QUrl("qrc:/qml/qmlchartproperties/main.qml")); + viewer.setResizeMode(QQuickView::SizeRootObjectToView); + viewer.show(); + + return app.exec(); +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml new file mode 100644 index 00000000..069e17de --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "area series" + anchors.fill: parent + animationOptions: ChartView.SeriesAnimations + + property variant series: areaSeries + + AreaSeries { + id: areaSeries + name: "area 1" + + upperSeries: LineSeries { + XYPoint { x: 0; y: 1 } + XYPoint { x: 1; y: 1 } + XYPoint { x: 2; y: 3 } + XYPoint { x: 3; y: 3 } + XYPoint { x: 4; y: 2 } + XYPoint { x: 5; y: 0 } + XYPoint { x: 6; y: 2 } + XYPoint { x: 7; y: 1 } + XYPoint { x: 8; y: 2 } + XYPoint { x: 9; y: 1 } + XYPoint { x: 10; y: 3 } + XYPoint { x: 11; y: 3 } + } + lowerSeries: LineSeries { + XYPoint { x: 0; y: 0 } + XYPoint { x: 1; y: 0 } + XYPoint { x: 2; y: 0 } + XYPoint { x: 3; y: 0 } + XYPoint { x: 4; y: 0 } + XYPoint { x: 5; y: 0 } + XYPoint { x: 6; y: 0 } + XYPoint { x: 7; y: 0 } + XYPoint { x: 8; y: 0 } + XYPoint { x: 9; y: 0 } + XYPoint { x: 10; y: 0 } + XYPoint { x: 11; y: 0 } + } + + pointLabelsFormat: "@xPoint, @yPoint"; + + onNameChanged: console.log(name + ".onNameChanged: " + name); + onVisibleChanged: console.log(name + ".onVisibleChanged: " + visible); + onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onSelected: console.log(name + ".onSelected"); + onColorChanged: console.log(name + ".onColorChanged: " + color); + onBorderColorChanged: console.log(name + ".onBorderColorChanged: " + borderColor); + onBorderWidthChanged: console.log(name + ".onBorderChanged: " + borderWidth); +// onCountChanged: console.log(name + ".onCountChanged: " + count); + onHovered: console.log("lineSeries.onHovered:" + point.x + "," + point.y + " " + state); + onPointLabelsVisibilityChanged: console.log(name + ".onPointLabelsVisibilityChanged: " + + visible); + onPointLabelsFormatChanged: console.log(name + ".onPointLabelsFormatChanged: " + + format); + onPointLabelsFontChanged: console.log(name + ".onPointLabelsFontChanged: " + + font.family); + onPointLabelsColorChanged: console.log(name + ".onPointLabelsColorChanged: " + + color); + } + + AreaSeries { + name: "area 2" + + upperSeries: LineSeries { + XYPoint { x: 0; y: 0.5 } + XYPoint { x: 1; y: 1.5 } + XYPoint { x: 2; y: 0.3 } + XYPoint { x: 3; y: 1.5 } + XYPoint { x: 4; y: 0.1 } + XYPoint { x: 5; y: 0.3 } + XYPoint { x: 6; y: 1.2 } + XYPoint { x: 7; y: 1.3 } + XYPoint { x: 8; y: 0.2 } + XYPoint { x: 9; y: 0.1 } + XYPoint { x: 10; y: 3.2 } + XYPoint { x: 11; y: 4.6 } + } + + onNameChanged: console.log(name + ".onNameChanged: " + name); + onVisibleChanged: console.log(name + ".onVisibleChanged: " + visible); + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onSelected: console.log(name + ".onSelected"); + onColorChanged: console.log(name + ".onColorChanged: " + color); + onBorderColorChanged: console.log(name + ".onBorderColorChanged: " + borderColor); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml new file mode 100644 index 00000000..168dc957 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Flow { + id: flow + spacing: 5 + flow: Flow.TopToBottom + property variant series + + Button { + text: "visible" + onClicked: series.visible = !series.visible; + } + Button { + text: "opacity +" + onClicked: series.opacity += 0.1; + } + Button { + text: "opacity -" + onClicked: series.opacity -= 0.1; + } + Button { + text: "color" + onClicked: series.color = main.nextColor(); + } + Button { + text: "borderColor" + onClicked: series.borderColor = main.nextColor(); + } + Button { + text: series != undefined ? "borderWidth + (" + series.borderWidth + ")" : "" + onClicked: series.borderWidth += 0.5; + } + Button { + text: series != undefined ? "borderWidth - (" + series.borderWidth + ")" : "" + onClicked: series.borderWidth -= 0.5; + } + Button { + text: "point labels visible" + onClicked: series.pointLabelsVisible = !series.pointLabelsVisible; + } + Button { + text: "point labels format" + onClicked: { + if (series.pointLabelsFormat === "@xPoint, @yPoint") + series.pointLabelsFormat = "(@xPoint)" + else + series.pointLabelsFormat = "@xPoint, @yPoint" + } + } + Button { + text: "point labels font" + onClicked: { + if (series.pointLabelsFont.family === "Times") + series.pointLabelsFont.family = "Courier"; + else + series.pointLabelsFont.family = "Times"; + } + } + Button { + text: "point labels color" + onClicked: series.pointLabelsColor = main.nextColor(); + } + Button { + id: upperButton + text: "upper series" + unpressedColor: "#79bd8f" + onClicked: { + lineEditor.visible = true; + color = "#00a388"; + lowerButton.color = "#79bd8f"; + lineEditor.series = series.upperSeries; + } + } + Button { + id: lowerButton + text: "lower series" + unpressedColor: "#79bd8f" + onClicked: { + lineEditor.visible = true; + color = "#00a388"; + upperButton.color = "#79bd8f"; + lineEditor.series = series.lowerSeries; + } + } + LineEditor { + id: lineEditor + visible: false + } + + onSeriesChanged: lineEditor.series = series.upperSeries; +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/BarChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/BarChart.qml new file mode 100644 index 00000000..ad088646 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/BarChart.qml @@ -0,0 +1,76 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "Bar series" + anchors.fill: parent + theme: ChartView.ChartThemeLight + legend.alignment: Qt.AlignBottom + animationOptions: ChartView.SeriesAnimations + + property variant series: mySeries + + + BarSeries { + id: mySeries + name: "bar" + labelsFormat: "@value"; + axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } + BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] + onClicked: console.log("barset.onClicked: " + index); + onHovered: console.log("barset.onHovered: " + status + " " + index); + onPenChanged: console.log("barset.onPenChanged: " + pen); + onBrushChanged: console.log("barset.onBrushChanged: " + brush); + onLabelChanged: console.log("barset.onLabelChanged: " + label); + onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); + onColorChanged: console.log("barset.onColorChanged: " + color); + onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); + onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); + onCountChanged: console.log("barset.onCountChanged: " + count); + onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); + onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); + onValueChanged: console.log("barset.onValuesChanged: " + index); + } + BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } + BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } + + onNameChanged: console.log("barSeries.onNameChanged: " + series.name); + onVisibleChanged: console.log("barSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("barSeries.onOpacityChanged: " + opacity); + onClicked: console.log("barSeries.onClicked: " + barset + " " + index); + onHovered: console.log("barSeries.onHovered: " + barset + " " + status + + " " + index); + onLabelsVisibleChanged: console.log("barSeries.onLabelsVisibleChanged: " + series.labelsVisible); + onCountChanged: console.log("barSeries.onCountChanged: " + count); + onLabelsFormatChanged: console.log("barSeries.onLabelsFormatChanged: " + format); + onLabelsPositionChanged: console.log("barSeries.onLabelsPositionChanged: " + series.labelsPosition); + + function changeLabelsPosition() { + if (labelsPosition === BarSeries.LabelsCenter) + labelsPosition = BarSeries.LabelsInsideEnd; + else + labelsPosition = BarSeries.LabelsCenter; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml new file mode 100644 index 00000000..cdd847a5 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml @@ -0,0 +1,199 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Row { + anchors.fill: parent + spacing: 5 + property variant series + + // buttons for selecting the edited object: series, barset or label + Flow { + spacing: 5 + flow: Flow.TopToBottom + Button { + id: seriesButton + text: "series" + unpressedColor: "#79bd8f" + onClicked: { + seriesFlow.visible = true; + setFlow.visible = false; + labelsFlow.visible = false; + color = "#00a388"; + setButton.color = "#79bd8f"; + labelButton.color = "#79bd8f"; + } + } + Button { + id: setButton + text: "BarSet" + unpressedColor: "#79bd8f" + onClicked: { + seriesFlow.visible = false; + setFlow.visible = true; + labelsFlow.visible = false; + color = "#00a388"; + seriesButton.color = "#79bd8f"; + labelButton.color = "#79bd8f"; + } + } + Button { + id: labelButton + text: "label" + unpressedColor: "#79bd8f" + onClicked: { + seriesFlow.visible = false; + setFlow.visible = false; + labelsFlow.visible = true; + color = "#00a388"; + seriesButton.color = "#79bd8f"; + setButton.color = "#79bd8f"; + } + } + } + + // Buttons for editing series + Flow { + id: seriesFlow + spacing: 5 + flow: Flow.TopToBottom + visible: false + + Button { + text: "visible" + onClicked: series.visible = !series.visible; + } + Button { + text: "opacity +" + onClicked: series.opacity += 0.1; + } + Button { + text: "opacity -" + onClicked: series.opacity -= 0.1; + } + Button { + text: "bar width +" + onClicked: series.barWidth += 0.1; + } + Button { + text: "bar width -" + onClicked: series.barWidth -= 0.1; + } + } + + // Buttons for editing sets + Flow { + id: setFlow + spacing: 5 + flow: Flow.TopToBottom + visible: false + + Button { + text: "append set" + onClicked: { + var count = series.count; + series.append("set" + count, [0, 0.1 * count, 0.2 * count, 0.3 * count, 0.4 * count, 0.5 * count, 0.6 * count]); + } + } + Button { + text: "insert set" + onClicked: { + var count = series.count; + series.insert(count - 1, "set" + count, [0, 0.1 * count, 0.2 * count, 0.3 * count, 0.4 * count, 0.5 * count, 0.6 * count]); + } + } + Button { + text: "remove set" + onClicked: series.remove(series.at(series.count - 1)); + } + Button { + text: "clear sets" + onClicked: series.clear(); + } + + Button { + text: "set 1 append" + onClicked: series.at(0).append(series.at(0).count + 1); + } + Button { + text: "set 1 replace" + onClicked: series.at(0).replace(series.at(0).count - 1, series.at(0).at(series.at(0).count - 1) + 1.5); + } + Button { + text: "set 1 remove" + onClicked: series.at(0).remove(series.at(0).count - 1); + } + + Button { + text: "set 1 color" + onClicked: series.at(0).color = main.nextColor(); + } + Button { + text: "set 1 border color" + onClicked: series.at(0).borderColor = main.nextColor(); + } + Button { + text: "set 1 borderWidth +" + onClicked: series.at(0).borderWidth += 0.5; + } + Button { + text: "set 1 borderWidth -" + onClicked: series.at(0).borderWidth -= 0.5; + } + } + + + Flow { + id: labelsFlow + spacing: 5 + flow: Flow.TopToBottom + visible: false + + Button { + text: "labels visible" + onClicked: series.labelsVisible = !series.labelsVisible; + } + Button { + text: "labels format" + onClicked: { + if (series.labelsFormat === "@value") + series.labelsFormat = "@value%" + else + series.labelsFormat = "@value" + } + } + Button { + text: "labels position" + onClicked: series.changeLabelsPosition(); + } + Button { + text: "set 1 label color" + onClicked: series.at(0).labelColor = main.nextColor(); + } + FontEditor { + id: fontEditor + fontDescription: "label" + function editedFont() { + return series.at(0).labelFont; + } + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/Button.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/Button.qml new file mode 100644 index 00000000..61df081d --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/Button.qml @@ -0,0 +1,70 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Rectangle { + id: button + height: 25 + width: 140 + color: unpressedColor + radius: 5 + property color unpressedColor: "#afafaf" + + property string text: "button" + signal clicked + + Text { + id: buttonText + anchors.centerIn: parent + text: button.text + } + + MouseArea { + anchors.fill: parent + onClicked: { + button.clicked(); + } + onPressedChanged: { + if (pressed) { + button.color = "#efefef"; + } else { + button.color = unpressedColor; + } + } + onPressAndHold: { + repeatTimer.start(); + } + onReleased: { + repeatTimer.stop(); + } + } + + Timer { + id: repeatTimer + interval: 140 + repeat: true + triggeredOnStart: false + running: false + onTriggered: { + button.clicked(); + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/Chart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/Chart.qml new file mode 100644 index 00000000..3f30ea44 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/Chart.qml @@ -0,0 +1,110 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chartView + title: "Chart Title" + anchors.fill: parent + property variant chart: chartView + + LineSeries { + name: "line" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1.1; y: 2.1 } + XYPoint { x: 1.9; y: 3.3 } + XYPoint { x: 2.1; y: 2.1 } + XYPoint { x: 2.9; y: 4.9 } + XYPoint { x: 3.4; y: 3.0 } + XYPoint { x: 4.1; y: 3.3 } + } + + onVisibleChanged: console.log("chart.onVisibleChanged: " + visible); + onTitleColorChanged: console.log("chart.onTitleColorChanged: " + color); + onBackgroundColorChanged: console.log("chart.onBackgroundColorChanged: " + chart.backgroundColor); + onDropShadowEnabledChanged: console.log("chart.onDropShadowEnabledChanged: " + enabled); + onBackgroundRoundnessChanged: console.log("chart.onBackgroundRoundnessChanged: " + diameter); + onSeriesAdded: console.log("chart.onSeriesAdded: " + series.name); + onSeriesRemoved: console.log("chart.onSeriesRemoved: " + series.name); + onPlotAreaColorChanged: console.log("chart.plotAreaColorChanged: " + chart.plotAreaColor); + + legend.onVisibleChanged: console.log("legend.onVisibleChanged: " + chart.legend.visible); + legend.onBackgroundVisibleChanged: console.log("legend.onBackgroundVisibleChanged: " + visible); + legend.onColorChanged: console.log("legend.onColorChanged: " + color); + legend.onBorderColorChanged: console.log("legend.onBorderColorChanged: " + color); + legend.onLabelColorChanged: console.log("legend.onLabelColorChanged: " + color); + legend.onReverseMarkersChanged: console.log("legend.onReverseMarkersChanged: " + + chart.legend.reverseMarkers) + margins.onTopChanged: console.log("chart.margins.onTopChanged: " + top ); + margins.onBottomChanged: console.log("chart.margins.onBottomChanged: " + bottom); + margins.onLeftChanged: console.log("chart.margins.onLeftChanged: " + left); + margins.onRightChanged: console.log("chart.margins.onRightChanged: " + right); + onPlotAreaChanged: { + console.log("chart.onPlotAreaChanged, width: " + chartView.plotArea.width + + " height: " + chartView.plotArea.height + + " y: " + chartView.plotArea.y + + " x: " + chartView.plotArea.x); + marginVisualizer.opacity = 1.0; + } + + ValueAxis{ + onColorChanged: console.log("axisX.onColorChanged: " + color); + onLabelsVisibleChanged: console.log("axisX.onLabelsVisibleChanged: " + visible); + onLabelsColorChanged: console.log("axisX.onLabelsColorChanged: " + color); + onVisibleChanged: console.log("axisX.onVisibleChanged: " + visible); + onGridVisibleChanged: console.log("axisX.onGridVisibleChanged: " + visible); + onShadesVisibleChanged: console.log("axisX.onShadesVisibleChanged: " + visible); + onShadesColorChanged: console.log("axisX.onShadesColorChanged: " + color); + onShadesBorderColorChanged: console.log("axisX.onShadesBorderColorChanged: " + color); + onMinChanged: console.log("axisX.onMinChanged: " + min); + onMaxChanged: console.log("axisX.onMaxChanged: " + max); + } + + ValueAxis{ + onColorChanged: console.log("axisY.onColorChanged: " + color); + onLabelsVisibleChanged: console.log("axisY.onLabelsVisibleChanged: " + visible); + onLabelsColorChanged: console.log("axisY.onLabelsColorChanged: " + color); + onVisibleChanged: console.log("axisY.onVisibleChanged: " + visible); + onGridVisibleChanged: console.log("axisY.onGridVisibleChanged: " + visible); + onShadesVisibleChanged: console.log("axisY.onShadesVisibleChanged: " + visible); + onShadesColorChanged: console.log("axisY.onShadesColorChanged: " + color); + onShadesBorderColorChanged: console.log("axisY.onShadesBorderColorChanged: " + color); + onMinChanged: console.log("axisY.onMinChanged: " + min); + onMaxChanged: console.log("axisY.onMaxChanged: " + max); + } + + Rectangle { + id: marginVisualizer + color: "transparent" + border.color: "red" + anchors.fill: parent + anchors.topMargin: chartView.minimumMargins.top + anchors.bottomMargin: chartView.minimumMargins.bottom + anchors.leftMargin: chartView.minimumMargins.left + anchors.rightMargin: chartView.minimumMargins.right + opacity: 0.0 + onOpacityChanged: if (opacity > 0.9) opacity = 0.0; + Behavior on opacity { + NumberAnimation { duration: 800 } + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml new file mode 100644 index 00000000..87139f35 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml @@ -0,0 +1,119 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Item { + id: chartEditor + property variant chart + onChartChanged: { + if (loader.item != undefined) + loader.item.chart = chart; + } + + function selectButton(button) { + chartButton.color = "#79bd8f"; + titleButton.color = "#79bd8f"; + legendButton.color = "#79bd8f"; + axisXButton.color = "#79bd8f"; + axisYButton.color = "#79bd8f"; + seriesButton.color = "#79bd8f"; + button.color = "#00a388"; + } + + Flow { + id: selectorFlow + anchors.top: parent.top + height: 90 + anchors.left: parent.left + anchors.right: parent.right + spacing: 5 + flow: Flow.TopToBottom + + Button { + id: chartButton + text: "Chart properties" + unpressedColor: "#79bd8f" + onClicked: { + selectButton(chartButton); + loader.source = "ChartEditorProperties.qml"; + loader.item.chart = chart; + } + } + Button { + id: titleButton + text: "Title properties" + unpressedColor: "#79bd8f" + onClicked: { + selectButton(titleButton); + loader.source = "ChartEditorTitle.qml"; + loader.item.chart = chart; + } + } + Button { + id: legendButton + text: "Legend properties" + unpressedColor: "#79bd8f" + onClicked: { + selectButton(legendButton); + loader.source = "ChartEditorLegend.qml"; + loader.item.chartLegend = chart.legend; + } + } + Button { + id: axisXButton + text: "Axis X properties" + unpressedColor: "#79bd8f" + onClicked: { + selectButton(axisXButton); + loader.source = "ChartEditorAxis.qml"; + loader.item.axis = chart.axisX(); + } + } + Button { + id: axisYButton + text: "Axis Y properties" + unpressedColor: "#79bd8f" + onClicked: { + selectButton(axisYButton); + loader.source = "ChartEditorAxis.qml"; + loader.item.axis = chart.axisY(); + } + } + Button { + id: seriesButton + text: "Series" + unpressedColor: "#79bd8f" + onClicked: { + selectButton(seriesButton); + loader.source = "ChartEditorSeries.qml"; + loader.item.chart = chart; + } + } + } + + Loader { + id: loader + anchors.top: selectorFlow.bottom + anchors.bottom: parent.bottom + anchors.left: parent.left + anchors.right: parent.right + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml new file mode 100644 index 00000000..0c6d8dce --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml @@ -0,0 +1,131 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Row { + anchors.fill: parent + spacing: 5 + property variant axis + + Flow { + spacing: 5 + flow: Flow.TopToBottom + height: parent.height + + Button { + text: "axis visible" + onClicked: axis.visible = !axis.visible; + } + Button { + text: "axis line visible" + onClicked: axis.lineVisible = !axis.lineVisible; + } + Button { + text: "axis color" + onClicked: axis.color = main.nextColor(); + } + Button { + text: "axis labels visible" + onClicked: axis.labelsVisible = !axis.labelsVisible; + } + Button { + text: "axis labels angle +" + onClicked: axis.labelsAngle += 5; + } + Button { + text: "axis labels angle -" + onClicked: axis.labelsAngle -= 5; + } + Button { + text: "axis labels color" + onClicked: axis.labelsColor = main.nextColor(); + } + Button { + text: "axis grid visible" + onClicked: axis.gridVisible = !axis.gridVisible; + } + Button { + text: "axis shades visible" + onClicked: axis.shadesVisible = !axis.shadesVisible; + } + Button { + text: "axis shades color" + onClicked: axis.shadesColor = main.nextColor(); + } + Button { + text: "axis shades bcolor" + onClicked: axis.shadesBorderColor = main.nextColor(); + } + Button { + text: "axis title text" + onClicked: axis.titleText = axis.titleText + "X"; + } + Button { + text: "axis title visible" + onClicked: axis.titleVisible = !axis.titleVisible; + } + Button { + text: "axis max +" + onClicked: axis.max += 0.1; + } + Button { + text: "axis max -" + onClicked: axis.max -= 0.1; + } + Button { + text: "axis min +" + onClicked: axis.min += 0.1; + } + Button { + text: "axis min -" + onClicked: axis.min -= 0.1; + } + Button { + text: "axis tick count +" + onClicked: axis.tickCount++; + } + Button { + text: "axis tick count -" + + onClicked: axis.tickCount--; + } + Button { + text: "axis nice nmb" + onClicked: axis.niceNumbersEnabled = !axis.niceNumbersEnabled; + } + + FontEditor { + id: fontEditor + fontDescription: "axis" + function editedFont() { + return axis.labelsFont; + } + } + + FontEditor { + id: titleFontEditor + fontDescription: "title" + function editedFont() { + return axis.titleFont; + } + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml new file mode 100644 index 00000000..24ffd9ef --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml @@ -0,0 +1,80 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Row { + anchors.fill: parent + spacing: 5 + property variant chartLegend + + Flow { + spacing: 5 + flow: Flow.TopToBottom + + Button { + text: "legend visible" + onClicked: chartLegend.visible = !chartLegend.visible; + } + Button { + text: "legend bckgrd visible" + onClicked: chartLegend.backgroundVisible = !chartLegend.backgroundVisible; + } + Button { + text: "legend color" + onClicked: chartLegend.color = main.nextColor(); + } + Button { + text: "legend border color" + onClicked: chartLegend.borderColor = main.nextColor(); + } + Button { + text: "legend label color" + onClicked: chartLegend.labelColor = main.nextColor(); + } + Button { + text: "legend top" + onClicked: chartLegend.alignment = Qt.AlignTop; + } + Button { + text: "legend bottom" + onClicked: chartLegend.alignment = Qt.AlignBottom; + } + Button { + text: "legend left" + onClicked: chartLegend.alignment = Qt.AlignLeft; + } + Button { + text: "legend right" + onClicked: chartLegend.alignment = Qt.AlignRight; + } + Button { + text: "legend use reverse order" + onClicked: chartLegend.reverseMarkers = !chartLegend.reverseMarkers; + } + } + + FontEditor { + fontDescription: "legend" + function editedFont() { + return chartLegend.font; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml new file mode 100644 index 00000000..d172e4d8 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml @@ -0,0 +1,124 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Flow { + anchors.fill: parent + property variant chart + flow: Flow.TopToBottom + spacing: 5 + Button { + text: "visible" + onClicked: chart.visible = !chart.visible; + } + Button { + text: "theme +" + onClicked: chart.theme++; + } + Button { + text: "theme -" + onClicked: chart.theme--; + } + Button { + text: "animation opt +" + onClicked: chart.animationOptions++; + } + Button { + text: "animation opt -" + onClicked: chart.animationOptions--; + } + Button { + text: "background color" + onClicked: chart.backgroundColor = main.nextColor(); + } + Button { + text: "plot area color" + onClicked: chart.plotAreaColor = main.nextColor(); + } + Button { + text: "drop shadow enabled" + onClicked: chart.dropShadowEnabled = !chart.dropShadowEnabled; + } + Button { + text: "roundness" + onClicked: chart.backgroundRoundness++; + } + Button { + text: "zoom +" + onClicked: chart.zoom(2); + } + Button { + text: "zoom -" + onClicked: chart.zoom(0.5); + } + Button { + text: "scroll left" + onClicked: chart.scrollLeft(10); + } + Button { + text: "scroll right" + onClicked: chart.scrollRight(10); + } + Button { + text: "scroll up" + onClicked: chart.scrollUp(10); + } + Button { + text: "scroll down" + onClicked: chart.scrollDown(10); + } + Button { + text: "title color" + onClicked: chart.titleColor = main.nextColor(); + } + Button { + text: "top margin +" + onClicked: chart.margins.top += 5; + } + Button { + text: "top margin -" + onClicked: chart.margins.top -= 5; + } + Button { + text: "bottom margin +" + onClicked: chart.margins.bottom += 5; + } + Button { + text: "bottom margin -" + onClicked: chart.margins.bottom -= 5; + } + Button { + text: "left margin +" + onClicked: chart.margins.left += 5; + } + Button { + text: "left margin -" + onClicked: chart.margins.left -= 5; + } + Button { + text: "right margin +" + onClicked: chart.margins.right += 5; + } + Button { + text: "right margin -" + onClicked: chart.margins.right -= 5; + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml new file mode 100644 index 00000000..e7efc222 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +Flow { + anchors.fill: parent + property variant chart + flow: Flow.TopToBottom + spacing: 5 + + Button { + text: "add line" + onClicked: addXYSeries(ChartView.SeriesTypeLine, "line"); + } + Button { + text: "add spline" + onClicked: addXYSeries(ChartView.SeriesTypeSpline, "spline"); + } + Button { + text: "add scatter" + onClicked: addXYSeries(ChartView.SeriesTypeScatter, "scatter"); + } + Button { + text: "remove last" + onClicked: { + if (chart.count > 0) + chart.removeSeries(chart.series(chart.count - 1)); + else + chart.removeSeries(0); + } + } + Button { + text: "remove all" + onClicked: chart.removeAllSeries(); + } + + function addXYSeries(type, name) { + var series = chart.createSeries(type, name + " " + chart.count); + for (var i = chart.axisX().min; i < chart.axisX().max; i++) { + var y = Math.random() * (chart.axisY().max - chart.axisY().min) + chart.axisY().min; + var x = Math.random() + i; + series.append(x, y); + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml new file mode 100644 index 00000000..61b4365f --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml @@ -0,0 +1,35 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Flow { + property variant chart + anchors.fill: parent + flow: Flow.TopToBottom + spacing: 5 + + FontEditor { + fontDescription: "title" + function editedFont() { + return chart.titleFont; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml new file mode 100644 index 00000000..3531597f --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml @@ -0,0 +1,92 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Flow { + flow: Flow.TopToBottom + spacing: 5 + property string fontDescription: "" + + Button { + text: fontDescription + " bold" + onClicked: editedFont().bold = !editedFont().bold; + } + Button { + text: fontDescription + " capitalization" + onClicked: editedFont().capitalization++; + } + Button { + text: fontDescription + " font family" + onClicked: editedFont().family = "courier"; + } + Button { + text: fontDescription + " font italic" + onClicked: editedFont().italic = !editedFont().italic; + } + Button { + text: fontDescription + " letterSpacing +" + onClicked: editedFont().letterSpacing++; + } + Button { + text: fontDescription + " letterSpacing -" + onClicked: editedFont().letterSpacing--; + } + Button { + text: fontDescription + " pixelSize +" + onClicked: editedFont().pixelSize++; + } + Button { + text: fontDescription + " pixelSize -" + onClicked: editedFont().pixelSize--; + } + Button { + text: fontDescription + " pointSize +" + onClicked: editedFont().pointSize++; + } + Button { + text: fontDescription + " pointSize -" + onClicked: editedFont().pointSize--; + } + Button { + text: fontDescription + " strikeout" + onClicked: editedFont().strikeout = !editedFont().strikeout; + } + Button { + text: fontDescription + " underline" + onClicked: editedFont().underline = !editedFont().underline; + } + Button { + text: fontDescription + " weight +" + onClicked: editedFont().weight++; + } + Button { + text: fontDescription + " weight -" + onClicked: editedFont().weight--; + } + Button { + text: fontDescription + " wordSpacing +" + onClicked: editedFont().wordSpacing++; + } + Button { + text: fontDescription + " wordSpacing -" + onClicked: editedFont().wordSpacing--; + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml new file mode 100644 index 00000000..aedb26cb --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "Bar series" + anchors.fill: parent + theme: ChartView.ChartThemeLight + legend.alignment: Qt.AlignBottom + animationOptions: ChartView.SeriesAnimations + + property variant series: mySeries + + HorizontalBarSeries { + id: mySeries + name: "bar" + labelsFormat: "@value"; + axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } + BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] + onClicked: console.log("barset.onClicked: " + index); + onHovered: console.log("barset.onHovered: " + status + " " + index); + onPenChanged: console.log("barset.onPenChanged: " + pen); + onBrushChanged: console.log("barset.onBrushChanged: " + brush); + onLabelChanged: console.log("barset.onLabelChanged: " + label); + onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); + onColorChanged: console.log("barset.onColorChanged: " + color); + onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); + onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); + onCountChanged: console.log("barset.onCountChanged: " + count); + onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); + onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); + onValueChanged: console.log("barset.onValuesChanged: " + index); + } + BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } + BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } + + onNameChanged: console.log("horizontalBarSeries.onNameChanged: " + series.name); + onVisibleChanged: console.log("horizontalBarSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("horizontalBarSeries.onOpacityChanged: " + opacity); + onClicked: console.log("horizontalBarSeries.onClicked: " + barset + " " + index); + onHovered: console.log("horizontalBarSeries.onHovered: " + barset + " " + + status + " " + index); + onLabelsVisibleChanged: console.log("horizontalBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); + onCountChanged: console.log("horizontalBarSeries.onCountChanged: " + count); + onLabelsFormatChanged: console.log("horizontalBarSeries.onLabelsFormatChanged: " + + format); + onLabelsPositionChanged: console.log("horizontalBarSeries.onLabelsPositionChanged: " + + series.labelsPosition); + + function changeLabelsPosition() { + if (labelsPosition === BarSeries.LabelsCenter) + labelsPosition = BarSeries.LabelsInsideEnd; + else + labelsPosition = BarSeries.LabelsCenter; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml new file mode 100644 index 00000000..c0d1b443 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "Percent bar series" + anchors.fill: parent + theme: ChartView.ChartThemeLight + legend.alignment: Qt.AlignBottom + animationOptions: ChartView.SeriesAnimations + + property variant series: mySeries + + HorizontalPercentBarSeries { + id: mySeries + name: "bar" + labelsFormat: "@value"; + axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } + BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] + onClicked: console.log("barset.onClicked: " + index); + onHovered: console.log("barset.onHovered: " + status + " " + index); + onPenChanged: console.log("barset.onPenChanged: " + pen); + onBrushChanged: console.log("barset.onBrushChanged: " + brush); + onLabelChanged: console.log("barset.onLabelChanged: " + label); + onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); + onColorChanged: console.log("barset.onColorChanged: " + color); + onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); + onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); + onCountChanged: console.log("barset.onCountChanged: " + count); + onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); + onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); + onValueChanged: console.log("barset.onValuesChanged: " + index); + } + BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } + BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } + + onNameChanged: console.log("horizontalPercentBarSeries.onNameChanged: " + series.name); + onVisibleChanged: console.log("horizontalPercentBarSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("horizontalPercentBarSeries.onOpacityChanged: " + opacity); + onClicked: console.log("horizontalPercentBarSeries.onClicked: " + barset + " " + index); + onHovered: console.log("horizontalPercentBarSeries.onHovered: " + barset + + " " + status + " " + index); + onLabelsVisibleChanged: console.log("horizontalPercentBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); + onCountChanged: console.log("horizontalPercentBarSeries.onCountChanged: " + count); + onLabelsFormatChanged: console.log( + "horizontalPercentBarSeries.onLabelsFormatChanged: " + + format); + onLabelsPositionChanged: console.log( + "horizontalPercentBarSeries.onLabelsPositionChanged: " + + series.labelsPosition); + + function changeLabelsPosition() { + if (labelsPosition === BarSeries.LabelsCenter) + labelsPosition = BarSeries.LabelsInsideEnd; + else + labelsPosition = BarSeries.LabelsCenter; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml new file mode 100644 index 00000000..3b94e89d --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml @@ -0,0 +1,79 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "Stacked bar series" + anchors.fill: parent + theme: ChartView.ChartThemeLight + legend.alignment: Qt.AlignBottom + animationOptions: ChartView.SeriesAnimations + + property variant series: mySeries + + HorizontalStackedBarSeries { + id: mySeries + name: "bar" + labelsFormat: "@value"; + axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } + BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] + onClicked: console.log("barset.onClicked: " + index); + onHovered: console.log("barset.onHovered: " + status + " " + index); + onPenChanged: console.log("barset.onPenChanged: " + pen); + onBrushChanged: console.log("barset.onBrushChanged: " + brush); + onLabelChanged: console.log("barset.onLabelChanged: " + label); + onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); + onColorChanged: console.log("barset.onColorChanged: " + color); + onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); + onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); + onCountChanged: console.log("barset.onCountChanged: " + count); + onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); + onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); + onValueChanged: console.log("barset.onValuesChanged: " + index); + } + BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } + BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } + + onNameChanged: console.log("horizontalStackedBarSeries.onNameChanged: " + series.name); + onVisibleChanged: console.log("horizontalStackedBarSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("horizontalStackedBarSeries.onOpacityChanged: " + opacity); + onClicked: console.log("horizontalStackedBarSeries.onClicked: " + barset + " " + index); + onHovered: console.log("horizontalStackedBarSeries.onHovered: " + barset + + " " + status + " " + index); + onLabelsVisibleChanged: console.log("horizontalStackedBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); + onCountChanged: console.log("horizontalStackedBarSeries.onCountChanged: " + count); + onLabelsFormatChanged: console.log( + "horizontalStackedBarSeries.onLabelsFormatChanged: " + + format); + onLabelsPositionChanged: console.log( + "horizontalStackedBarSeries.onLabelsPositionChanged: " + + series.labelsPosition); + + function changeLabelsPosition() { + if (labelsPosition === BarSeries.LabelsCenter) + labelsPosition = BarSeries.LabelsInsideEnd; + else + labelsPosition = BarSeries.LabelsCenter; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/LineChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/LineChart.qml new file mode 100644 index 00000000..de3134a8 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/LineChart.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + property variant series: lineSeries + + title: "line series" + anchors.fill: parent + animationOptions: ChartView.SeriesAnimations + + LineSeries { + id: lineSeries + name: "line 1" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1.1; y: 2.1 } + XYPoint { x: 1.9; y: 3.3 } + XYPoint { x: 2.1; y: 2.1 } + XYPoint { x: 2.9; y: 4.9 } + XYPoint { x: 3.4; y: 3.0 } + XYPoint { x: 4.1; y: 3.3 } + + pointLabelsFormat: "@xPoint, @yPoint"; + + onNameChanged: console.log("lineSeries.onNameChanged: " + name); + onVisibleChanged: console.log("lineSeries.onVisibleChanged: " + visible); + onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onPointReplaced: console.log("lineSeries.onPointReplaced: " + index); + onPointRemoved: console.log("lineSeries.onPointRemoved: " + index); + onPointAdded: console.log("lineSeries.onPointAdded: " + series.at(index).x + ", " + series.at(index).y); + onColorChanged: console.log("lineSeries.onColorChanged: " + color); + onWidthChanged: console.log("lineSeries.onWidthChanged: " + width); + onStyleChanged: console.log("lineSeries.onStyleChanged: " + style); + onCapStyleChanged: console.log("lineSeries.onCapStyleChanged: " + capStyle); + onCountChanged: console.log("lineSeries.onCountChanged: " + count); + onHovered: console.log("lineSeries.onHovered:" + point.x + "," + point.y + " " + state); + onPointLabelsVisibilityChanged: console.log("lineSeries.onPointLabelsVisibilityChanged: " + + visible); + onPointLabelsFormatChanged: console.log("lineSeries.onPointLabelsFormatChanged: " + + format); + onPointLabelsFontChanged: console.log("lineSeries.onPointLabelsFontChanged: " + + font.family); + onPointLabelsColorChanged: console.log("lineSeries.onPointLabelsColorChanged: " + + color); + } + + LineSeries { + name: "line 2" + XYPoint { x: 1.1; y: 1.1 } + XYPoint { x: 1.9; y: 2.3 } + XYPoint { x: 2.1; y: 1.1 } + XYPoint { x: 2.9; y: 3.9 } + XYPoint { x: 3.4; y: 2.0 } + XYPoint { x: 4.1; y: 2.3 } + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml new file mode 100644 index 00000000..7960b4a1 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml @@ -0,0 +1,123 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + + +Flow { + id: flow + spacing: 5 + flow: Flow.TopToBottom + property variant series + + Button { + text: "visible" + onClicked: series.visible = !series.visible; + } + Button { + text: "opacity +" + onClicked: series.opacity += 0.1; + } + Button { + text: "opacity -" + onClicked: series.opacity -= 0.1; + } + Button { + text: "color" + onClicked: series.color = main.nextColor(); + } + Button { + text: series != undefined ? "width + (" + series.width + ")" : "" + onClicked: series.width += 0.5; + } + Button { + text: series != undefined ? "width - (" + series.width + ")" : "" + onClicked: series.width -= 0.5; + } + Button { + text: series != undefined ? "style + (" + series.style + ")" : "" + onClicked: series.style++; + } + Button { + text: series != undefined ? "style - (" + series.style + ")" : "" + onClicked: series.style--; + } + Button { + text: series != undefined ? "cap style + (" + series.capStyle + ")" : "" + onClicked: series.capStyle++; + } + Button { + text: series != undefined ? "cap style - (" +series.capStyle + ")" : "" + onClicked: series.capStyle--; + } + Button { + text: "points visible" + onClicked: series.pointsVisible = !series.pointsVisible; + } + Button { + text: "point labels visible" + onClicked: series.pointLabelsVisible = !series.pointLabelsVisible; + } + Button { + text: "point labels format" + onClicked: { + if (series.pointLabelsFormat === "@xPoint, @yPoint") + series.pointLabelsFormat = "(@xPoint)" + else + series.pointLabelsFormat = "@xPoint, @yPoint" + } + } + Button { + text: "point labels font" + onClicked: { + if (series.pointLabelsFont.family === "Times") + series.pointLabelsFont.family = "Courier"; + else + series.pointLabelsFont.family = "Times"; + } + } + Button { + text: "point labels color" + onClicked: series.pointLabelsColor = main.nextColor(); + } + Button { + text: "append point" + onClicked: series.append(series.count - 1, series.count - 1); + } + Button { + text: "replace point" + onClicked: { + var xyPoint = series.at(series.count - 1); + series.replace(series.count - 1, xyPoint.x, xyPoint.y + 0.1); + } + } + Button { + text: "remove point" + onClicked: series.remove(series.count - 1); + } + Button { + text: "insert point" + onClicked: series.insert(series.count - 2, series.count - 2, series.count - 2); + } + Button { + text: "clear" + onClicked: series.clear(); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml new file mode 100644 index 00000000..74c9b88f --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml @@ -0,0 +1,78 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "Percent bar series" + anchors.fill: parent + theme: ChartView.ChartThemeLight + legend.alignment: Qt.AlignBottom + animationOptions: ChartView.SeriesAnimations + + property variant series: mySeries + + PercentBarSeries { + id: mySeries + name: "bar" + labelsFormat: "@value"; + axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } + + BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] + onClicked: console.log("barset.onClicked: " + index); + onHovered: console.log("barset.onHovered: " + status + " " + index); + onPenChanged: console.log("barset.onPenChanged: " + pen); + onBrushChanged: console.log("barset.onBrushChanged: " + brush); + onLabelChanged: console.log("barset.onLabelChanged: " + label); + onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); + onColorChanged: console.log("barset.onColorChanged: " + color); + onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); + onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); + onCountChanged: console.log("barset.onCountChanged: " + count); + onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); + onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); + onValueChanged: console.log("barset.onValuesChanged: " + index); + } + BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } + BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } + + onNameChanged: console.log("percentBarSeries.onNameChanged: " + series.name); + onVisibleChanged: console.log("percentBarSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("percentBarSeries.onOpacityChanged: " + opacity); + onClicked: console.log("percentBarSeries.onClicked: " + barset + " " + index); + onHovered: console.log("percentBarSeries.onHovered: " + barset + + " " + status + " " + index); + onLabelsVisibleChanged: console.log("percentBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); + onCountChanged: console.log("percentBarSeries.onCountChanged: " + count); + onLabelsFormatChanged: console.log("percentBarSeries.onLabelsFormatChanged: " + + format); + onLabelsPositionChanged: console.log("percentBarSeries.onLabelsPositionChanged: " + + series.labelsPosition); + + function changeLabelsPosition() { + if (labelsPosition === BarSeries.LabelsCenter) + labelsPosition = BarSeries.LabelsInsideEnd; + else + labelsPosition = BarSeries.LabelsCenter; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/PieChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/PieChart.qml new file mode 100644 index 00000000..37a321ae --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/PieChart.qml @@ -0,0 +1,67 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + id: chart + title: "pie series" + animationOptions: ChartView.SeriesAnimations + + property variant series: pieSeries + + PieSeries { + id: pieSeries + name: "pie" + PieSlice { label: "slice1"; value: 11; + onValueChanged: console.log("slice.onValueChanged: " + value); + onLabelVisibleChanged: console.log("slice.onLabelVisibleChanged: " + labelVisible); + onPenChanged: console.log("slice.onPenChanged: " + pen); + onBorderColorChanged: console.log("slice.onBorderColorChanged: " + borderColor); + onBorderWidthChanged: console.log("slice.onBorderWidthChanged: " + borderWidth); + onBrushChanged: console.log("slice.onBrushChanged: " + brush); + onColorChanged: console.log("slice.onColorChanged: " + color); + onLabelColorChanged: console.log("slice.onLabelColorChanged: " + labelColor); + onLabelBrushChanged: console.log("slice.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("slice.onLabelFontChanged: " + labelFont); + onPercentageChanged: console.log("slice.onPercentageChanged: " + percentage); + onStartAngleChanged: console.log("slice.onStartAngleChanged: " + startAngle); + onAngleSpanChanged: console.log("slice.onAngleSpanChanged: " + angleSpan); + onClicked: console.log("slice.onClicked: " + label); + onHovered: console.log("slice.onHovered: " + state); + } + PieSlice { label: "slice2"; value: 22 } + PieSlice { label: "slice3"; value: 33 } + PieSlice { label: "slice4"; value: 44 } + + onNameChanged: console.log("pieSeries.onNameChanged: " + name); + onVisibleChanged: console.log("pieSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("pieSeries.onOpacityChanged: " + opacity); + onClicked: console.log("pieSeries.onClicked: " + slice.label); + onHovered: console.log("pieSeries.onHovered: " + slice.label); + onAdded: console.log("pieSeries.onAdded: " + slices); + onSliceAdded: console.log("pieSeries.onSliceAdded: " + slice.label); + onRemoved: console.log("pieSeries.onRemoved: " + slices); + onSliceRemoved: console.log("pieSeries.onSliceRemoved: " + slice.label); + onCountChanged: console.log("pieSeries.onCountChanged: " + count); + onSumChanged: console.log("pieSeries.onSumChanged: " + sum); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml new file mode 100644 index 00000000..91eb0343 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml @@ -0,0 +1,228 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +Row { + anchors.fill: parent + spacing: 5 + property variant series + property int sliceIndex: 0 + + // buttons for selecting the edited object: series, slice or label + Flow { + spacing: 5 + flow: Flow.TopToBottom + Button { + id: seriesButton + text: "series" + unpressedColor: "#79bd8f" + onClicked: { + seriesFlow.visible = true; + slicesFlow.visible = false; + labelsFlow.visible = false; + color = "#00a388"; + sliceButton.color = "#79bd8f"; + labelButton.color = "#79bd8f"; + } + } + Button { + id: sliceButton + text: "slice" + unpressedColor: "#79bd8f" + onClicked: { + seriesFlow.visible = false; + slicesFlow.visible = true; + labelsFlow.visible = false; + color = "#00a388"; + seriesButton.color = "#79bd8f"; + labelButton.color = "#79bd8f"; + } + } + Button { + id: labelButton + text: "label" + unpressedColor: "#79bd8f" + onClicked: { + seriesFlow.visible = false; + slicesFlow.visible = false; + labelsFlow.visible = true; + color = "#00a388"; + seriesButton.color = "#79bd8f"; + sliceButton.color = "#79bd8f"; + } + } + } + + // Buttons for editing series + Flow { + id: seriesFlow + spacing: 5 + flow: Flow.TopToBottom + visible: false + Button { + text: "visible" + onClicked: series.visible = !series.visible; + } + Button { + text: "series opacity +" + onClicked: series.opacity += 0.1; + } + Button { + text: "series opacity -" + onClicked: series.opacity -= 0.1; + } + Button { + text: "series hpos +" + onClicked: series.horizontalPosition += 0.1; + } + Button { + text: "series hpos -" + onClicked: series.horizontalPosition -= 0.1; + } + Button { + text: "series vpos +" + onClicked: series.verticalPosition += 0.1; + } + Button { + text: "series vpos -" + onClicked: series.verticalPosition -= 0.1; + } + Button { + text: "series size +" + onClicked: series.size += 0.1; + } + Button { + text: "series size -" + onClicked: series.size -= 0.1; + } + Button { + text: "series start angle +" + onClicked: series.startAngle += 1.1; + } + Button { + text: "series start angle -" + onClicked: series.startAngle -= 1.1; + } + Button { + text: "series end angle +" + onClicked: series.endAngle += 1.1; + } + Button { + text: "series end angle -" + onClicked: series.endAngle -= 1.1; + } + } + + // Buttons for editing slices + Flow { + id: slicesFlow + spacing: 5 + flow: Flow.TopToBottom + visible: false + + Button { + text: "append slice" + onClicked: series.append("slice" + (series.count + 1), 3.0); + } + Button { + text: "remove slice" + onClicked: series.remove(series.at(series.count - 1)); + } + Button { + text: "slice color" + onClicked: series.at(sliceIndex).color = main.nextColor(); + } + Button { + text: "slice border color" + onClicked: series.at(sliceIndex).borderColor = main.nextColor(); + } + Button { + text: "slice border width +" + onClicked: series.at(sliceIndex).borderWidth++; + } + Button { + text: "slice border width -" + onClicked: series.at(sliceIndex).borderWidth--; + } + Button { + text: "slice exploded" + onClicked: series.at(sliceIndex).exploded = !series.at(sliceIndex).exploded; + } + Button { + text: "slice explode dist +" + onClicked: series.at(sliceIndex).explodeDistanceFactor += 0.1; + } + Button { + text: "slice explode dist -" + onClicked: series.at(sliceIndex).explodeDistanceFactor -= 0.1; + } + } + + // Buttons for editing labels + Flow { + id: labelsFlow + spacing: 5 + flow: Flow.TopToBottom + visible: false + + Button { + text: "label visible" + onClicked: series.at(sliceIndex).labelVisible = !series.at(sliceIndex).labelVisible; + } + Button { + text: "LabelInsideNormal" + onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelInsideNormal; + } + Button { + text: "LabelInsideHorizontal" + onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelInsideHorizontal; + } + Button { + text: "LabelInsideTangential" + onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelInsideTangential; + } + Button { + text: "LabelOutside" + onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelOutside; + } + Button { + text: "label arm len +" + onClicked: series.at(sliceIndex).labelArmLengthFactor += 0.1; + } + Button { + text: "label arm len -" + onClicked: series.at(sliceIndex).labelArmLengthFactor -= 0.1; + } + Button { + text: "slice label color" + onClicked: series.at(sliceIndex).labelColor = main.nextColor(); + } + + FontEditor { + id: fontEditor + fontDescription: "label" + function editedFont() { + return series.at(sliceIndex).labelFont; + } + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml new file mode 100644 index 00000000..d531ac32 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml @@ -0,0 +1,75 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "scatter series" + property variant series: scatterSeries + animationOptions: ChartView.SeriesAnimations + + ScatterSeries { + id: scatterSeries + name: "scatter 1" + XYPoint { x: 1.5; y: 1.5 } + XYPoint { x: 1.5; y: 1.6 } + XYPoint { x: 1.57; y: 1.55 } + XYPoint { x: 1.8; y: 1.8 } + XYPoint { x: 1.9; y: 1.6 } + XYPoint { x: 2.1; y: 1.3 } + XYPoint { x: 2.5; y: 2.1 } + + pointLabelsFormat: "@xPoint, @yPoint"; + + onNameChanged: console.log("scatterSeries.onNameChanged: " + name); + onVisibleChanged: console.log("scatterSeries.onVisibleChanged: " + visible); + onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); + onPointReplaced: console.log("scatterSeries.onPointReplaced: " + index); + onPointRemoved: console.log("scatterSeries.onPointRemoved: " + index); + onPointAdded: console.log("scatterSeries.onPointAdded: " + series.at(index).x + ", " + series.at(index).y); + onColorChanged: console.log("scatterSeries.onColorChanged: " + color); + onBorderColorChanged: console.log("scatterSeries.onBorderColorChanged: " + borderColor); + onBorderWidthChanged: console.log("scatterSeries.onBorderChanged: " + borderWidth); + onCountChanged: console.log("scatterSeries.onCountChanged: " + count); + onPointLabelsVisibilityChanged: console.log("lineSeries.onPointLabelsVisibilityChanged: " + + visible); + onPointLabelsFormatChanged: console.log("lineSeries.onPointLabelsFormatChanged: " + + format); + onPointLabelsFontChanged: console.log("lineSeries.onPointLabelsFontChanged: " + + font.family); + onPointLabelsColorChanged: console.log("lineSeries.onPointLabelsColorChanged: " + + color); + } + + ScatterSeries { + name: "scatter2" + XYPoint { x: 2.0; y: 2.0 } + XYPoint { x: 2.0; y: 2.1 } + XYPoint { x: 2.07; y: 2.05 } + XYPoint { x: 2.2; y: 2.9 } + XYPoint { x: 2.4; y: 2.7 } + XYPoint { x: 2.67; y: 2.65 } + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml new file mode 100644 index 00000000..23afdb75 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Flow { + id: flow + spacing: 5 + flow: Flow.TopToBottom + property variant series + + Button { + text: "visible" + onClicked: series.visible = !series.visible; + } + Button { + text: "opacity +" + onClicked: series.opacity += 0.1; + } + Button { + text: "opacity -" + onClicked: series.opacity -= 0.1; + } + Button { + text: "color" + onClicked: series.color = main.nextColor(); + } + Button { + text: "borderColor" + onClicked: series.borderColor = main.nextColor(); + } + Button { + text: series != undefined ? "borderWidth + (" + series.borderWidth + ")" : "" + onClicked: series.borderWidth += 0.5; + } + Button { + text: series != undefined ? "borderWidth - (" + series.borderWidth + ")" : "" + onClicked: series.borderWidth -= 0.5; + } + Button { + text: "markerSize +" + onClicked: series.markerSize += 1.0; + } + Button { + text: "markerSize -" + onClicked: series.markerSize -= 1.0; + } + Button { + text: "markerShape" + onClicked: series.markerShape = ((series.markerShape + 1) % 2); + } + Button { + text: "point labels visible" + onClicked: series.pointLabelsVisible = !series.pointLabelsVisible; + } + Button { + text: "point labels format" + onClicked: { + if (series.pointLabelsFormat === "@xPoint, @yPoint") + series.pointLabelsFormat = "(@xPoint)" + else + series.pointLabelsFormat = "@xPoint, @yPoint" + } + } + Button { + text: "point labels font" + onClicked: { + if (series.pointLabelsFont.family === "Times") + series.pointLabelsFont.family = "Courier"; + else + series.pointLabelsFont.family = "Times"; + } + } + Button { + text: "point labels color" + onClicked: series.pointLabelsColor = main.nextColor(); + } + Button { + text: "append point" + onClicked: series.append(series.count - 1, series.count - 1); + } + Button { + text: "replace point" + onClicked: { + var xyPoint = series.at(series.count - 1); + series.replace(series.count - 1, xyPoint.x, xyPoint.y + 0.1); + } + } + Button { + text: "remove point" + onClicked: series.remove(series.count - 1); + } + Button { + text: "insert point" + onClicked: series.insert(series.count - 2, series.count - 2, series.count - 2); + } + Button { + text: "clear" + onClicked: series.clear(); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml new file mode 100644 index 00000000..3a182d19 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "spline series" + anchors.fill: parent + property variant series: splineSeries + animationOptions: ChartView.SeriesAnimations + + SplineSeries { + id: splineSeries + name: "spline 1" + XYPoint { x: 0; y: 0 } + XYPoint { x: 1.1; y: 2.1 } + XYPoint { x: 1.9; y: 3.3 } + XYPoint { x: 2.1; y: 2.1 } + XYPoint { x: 2.9; y: 4.9 } + XYPoint { x: 3.4; y: 3.0 } + XYPoint { x: 4.1; y: 3.3 } + + pointLabelsFormat: "@xPoint, @yPoint"; + + onNameChanged: console.log("splineSeries.onNameChanged: " + name); + onVisibleChanged: console.log("splineSeries.onVisibleChanged: " + visible); + onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); + onPointReplaced: console.log("splineSeries.onPointReplaced: " + index); + onPointRemoved: console.log("splineSeries.onPointRemoved: " + index); + onPointAdded: console.log("splineSeries.onPointAdded: " + series.at(index).x + ", " + series.at(index).y); + onColorChanged: console.log("splineSeries.onColorChanged: " + color); + onWidthChanged: console.log("splineSeries.onWidthChanged: " + width); + onStyleChanged: console.log("splineSeries.onStyleChanged: " + style); + onCapStyleChanged: console.log("splineSeries.onCapStyleChanged: " + capStyle); + onCountChanged: console.log("splineSeries.onCountChanged: " + count); + onPointLabelsVisibilityChanged: console.log("splineSeries.onPointLabelsVisibilityChanged: " + + visible); + onPointLabelsFormatChanged: console.log("splineSeries.onPointLabelsFormatChanged: " + + format); + onPointLabelsFontChanged: console.log("splineSeries.onPointLabelsFontChanged: " + + font.family); + onPointLabelsColorChanged: console.log("splineSeries.onPointLabelsColorChanged: " + + color); + } + + SplineSeries { + name: "spline 2" + XYPoint { x: 1.1; y: 1.1 } + XYPoint { x: 1.9; y: 2.3 } + XYPoint { x: 2.1; y: 1.1 } + XYPoint { x: 2.9; y: 3.9 } + XYPoint { x: 3.4; y: 2.0 } + XYPoint { x: 4.1; y: 2.3 } + onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); + onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml new file mode 100644 index 00000000..a59f0e12 --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml @@ -0,0 +1,77 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 +import QtCharts 2.0 + +ChartView { + title: "Stacked bar series" + anchors.fill: parent + theme: ChartView.ChartThemeLight + legend.alignment: Qt.AlignBottom + animationOptions: ChartView.SeriesAnimations + + property variant series: mySeries + + StackedBarSeries { + id: mySeries + name: "bar" + labelsFormat: "@value"; + axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } + BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] + onClicked: console.log("barset.onClicked: " + index); + onHovered: console.log("barset.onHovered: " + status + " " + index); + onPenChanged: console.log("barset.onPenChanged: " + pen); + onBrushChanged: console.log("barset.onBrushChanged: " + brush); + onLabelChanged: console.log("barset.onLabelChanged: " + label); + onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); + onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); + onColorChanged: console.log("barset.onColorChanged: " + color); + onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); + onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); + onCountChanged: console.log("barset.onCountChanged: " + count); + onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); + onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); + onValueChanged: console.log("barset.onValuesChanged: " + index); + } + BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } + BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } + + onNameChanged: console.log("stackedBarSeries.onNameChanged: " + series.name); + onVisibleChanged: console.log("stackedBarSeries.onVisibleChanged: " + series.visible); + onOpacityChanged: console.log("stackedBarSeries.onOpacityChanged: " + opacity); + onClicked: console.log("stackedBarSeries.onClicked: " + barset + " " + index); + onHovered: console.log("stackedBarSeries.onHovered: " + barset + + " " + status + " " + index); + onLabelsVisibleChanged: console.log("stackedBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); + onCountChanged: console.log("stackedBarSeries.onCountChanged: " + count); + onLabelsFormatChanged: console.log("stackedBarSeries.onLabelsFormatChanged: " + + format); + onLabelsPositionChanged: console.log("stackedBarSeries.onLabelsPositionChanged: " + + series.labelsPosition); + + function changeLabelsPosition() { + if (labelsPosition === BarSeries.LabelsCenter) + labelsPosition = BarSeries.LabelsInsideEnd; + else + labelsPosition = BarSeries.LabelsCenter; + } + } +} diff --git a/tests/manual/qmlchartproperties/qml/qmlchartproperties/main.qml b/tests/manual/qmlchartproperties/qml/qmlchartproperties/main.qml new file mode 100644 index 00000000..8265e1ae --- /dev/null +++ b/tests/manual/qmlchartproperties/qml/qmlchartproperties/main.qml @@ -0,0 +1,179 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +import QtQuick 2.0 + +Rectangle { + id: main + width: 800 + height: 600 + property int viewCount: 9 + property variant colors: ["#637D74", "#403D3A", "#8C3B3B", "#AB6937", "#D4A960"] + property int colorIndex: 0 + property int buttonWidth: 42 + + function nextColor() { + colorIndex++; + return colors[colorIndex % colors.length]; + } + + Row { + anchors.top: parent.top + anchors.bottom: buttonRow.top + anchors.bottomMargin: 10 + anchors.left: parent.left + anchors.right: parent.right + + Loader { + id: chartLoader + width: main.width - editorLoader.width + height: parent.height + source: "Chart.qml" + onStatusChanged: { + if (status == Loader.Ready && editorLoader.status == Loader.Ready && chartLoader.item) { + if (source.toString().search("/Chart.qml") > 0) + editorLoader.item.chart = chartLoader.item.chart; + else + editorLoader.item.series = chartLoader.item.series; + } + } + } + + Loader { + id: editorLoader + width: 280 + height: parent.height + source: "ChartEditor.qml" + onStatusChanged: { + if (status == Loader.Ready && chartLoader.status == Loader.Ready && chartLoader.item) { + if (source.toString().search("/ChartEditor.qml") > 0) + editorLoader.item.chart = chartLoader.item.chart; + else + editorLoader.item.series = chartLoader.item.series; + } + } + } + } + + Row { + id: buttonRow + height: 40 + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + spacing: 10 + + Button { + text: "chart" + width: buttonWidth + onClicked: { + chartLoader.source = "Chart.qml"; + editorLoader.source = "ChartEditor.qml"; + } + } + Button { + text: "pie" + width: buttonWidth + onClicked: { + chartLoader.source = "PieChart.qml"; + editorLoader.source = "PieEditor.qml"; + } + } + Button { + text: "line" + width: buttonWidth + onClicked: { + chartLoader.source = "LineChart.qml"; + editorLoader.source = "LineEditor.qml"; + } + } + Button { + text: "spline" + width: buttonWidth + onClicked: { + chartLoader.source = "SplineChart.qml"; + editorLoader.source = "LineEditor.qml"; + } + } + Button { + text: "scatter" + width: buttonWidth + onClicked: { + chartLoader.source = "ScatterChart.qml"; + editorLoader.source = "ScatterEditor.qml"; + } + } + Button { + text: "area" + width: buttonWidth + onClicked: { + chartLoader.source = "AreaChart.qml"; + editorLoader.source = "AreaEditor.qml"; + } + } + Button { + text: "bar" + width: buttonWidth + onClicked: { + chartLoader.source = "BarChart.qml"; + editorLoader.source = "BarEditor.qml"; + } + } + Button { + text: "sbar" + width: buttonWidth + onClicked: { + chartLoader.source = "StackedBarChart.qml"; + editorLoader.source = "BarEditor.qml"; + } + } + Button { + text: "pbar" + width: buttonWidth + onClicked: { + chartLoader.source = "PercentBarChart.qml"; + editorLoader.source = "BarEditor.qml"; + } + } + Button { + text: "hbar" + width: buttonWidth + onClicked: { + chartLoader.source = "HorizontalBarChart.qml"; + editorLoader.source = "BarEditor.qml"; + } + } + Button { + text: "hsbar" + width: buttonWidth + onClicked: { + chartLoader.source = "HorizontalStackedBarChart.qml"; + editorLoader.source = "BarEditor.qml"; + } + } + Button { + text: "hpbar" + width: buttonWidth + onClicked: { + chartLoader.source = "HorizontalPercentBarChart.qml"; + editorLoader.source = "BarEditor.qml"; + } + } + } +} diff --git a/tests/manual/qmlchartproperties/qmlchartproperties.pro b/tests/manual/qmlchartproperties/qmlchartproperties.pro new file mode 100644 index 00000000..78c19300 --- /dev/null +++ b/tests/manual/qmlchartproperties/qmlchartproperties.pro @@ -0,0 +1,8 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +RESOURCES += resources.qrc +SOURCES += main.cpp +OTHER_FILES += qml/qmlchartproperties/* + diff --git a/tests/manual/qmlchartproperties/resources.qrc b/tests/manual/qmlchartproperties/resources.qrc new file mode 100644 index 00000000..e93f369e --- /dev/null +++ b/tests/manual/qmlchartproperties/resources.qrc @@ -0,0 +1,30 @@ + + + qml/qmlchartproperties/main.qml + qml/qmlchartproperties/Button.qml + qml/qmlchartproperties/PieChart.qml + qml/qmlchartproperties/PieEditor.qml + qml/qmlchartproperties/LineChart.qml + qml/qmlchartproperties/LineEditor.qml + qml/qmlchartproperties/SplineChart.qml + qml/qmlchartproperties/ScatterChart.qml + qml/qmlchartproperties/AreaChart.qml + qml/qmlchartproperties/BarChart.qml + qml/qmlchartproperties/BarEditor.qml + qml/qmlchartproperties/ScatterEditor.qml + qml/qmlchartproperties/AreaEditor.qml + qml/qmlchartproperties/StackedBarChart.qml + qml/qmlchartproperties/PercentBarChart.qml + qml/qmlchartproperties/Chart.qml + qml/qmlchartproperties/ChartEditor.qml + qml/qmlchartproperties/FontEditor.qml + qml/qmlchartproperties/HorizontalBarChart.qml + qml/qmlchartproperties/HorizontalPercentBarChart.qml + qml/qmlchartproperties/HorizontalStackedBarChart.qml + qml/qmlchartproperties/ChartEditorAxis.qml + qml/qmlchartproperties/ChartEditorLegend.qml + qml/qmlchartproperties/ChartEditorProperties.qml + qml/qmlchartproperties/ChartEditorTitle.qml + qml/qmlchartproperties/ChartEditorSeries.qml + + diff --git a/tests/manual/wavechart/main.cpp b/tests/manual/wavechart/main.cpp new file mode 100644 index 00000000..58423319 --- /dev/null +++ b/tests/manual/wavechart/main.cpp @@ -0,0 +1,44 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "wavechart.h" +#include +#include +#include + +int main(int argc, char *argv[]) +{ + QApplication a(argc, argv); + + QMainWindow window; + QChart *chart = new QChart(); + WaveChart *waveChart = new WaveChart(chart,&window); + + waveChart->setViewport( new QGLWidget() ); + waveChart->setRenderHint(QPainter::Antialiasing); + chart->setAnimationOptions(QChart::AllAnimations); + chart->setTitle("This is wave generator."); + + window.setCentralWidget(waveChart); + window.resize(400, 300); + window.show(); + + return a.exec(); +} diff --git a/tests/manual/wavechart/wavechart.cpp b/tests/manual/wavechart/wavechart.cpp new file mode 100644 index 00000000..dc05d073 --- /dev/null +++ b/tests/manual/wavechart/wavechart.cpp @@ -0,0 +1,69 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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 "wavechart.h" +#include + +QT_CHARTS_USE_NAMESPACE + +#define PI 3.14159265358979 +static const int numPoints =100; + +WaveChart::WaveChart(QChart* chart, QWidget* parent) : + QChartView(chart, parent), + m_series(new QLineSeries()), + m_wave(0), + m_step(2 * PI / numPoints) +{ + QPen blue(Qt::blue); + blue.setWidth(3); + m_series->setPen(blue); + + chart->legend()->setVisible(false); + + QTime now = QTime::currentTime(); + qsrand((uint) now.msec()); + + int fluctuate = 100; + + for (qreal x = 0; x <= 2 * PI; x += m_step) { + m_series->append(x, fabs(sin(x) * fluctuate)); + } + + chart->addSeries(m_series); + chart->createDefaultAxes(); + + QObject::connect(&m_timer, SIGNAL(timeout()), this, SLOT(update())); + m_timer.setInterval(5000); + m_timer.start(); +} + +void WaveChart::update() +{ + + int fluctuate; + const QList& points = m_series->points(); + for (qreal i = 0, x = 0; x <= 2 * PI; x += m_step, i++) { + fluctuate = qrand() % 100; + m_series->replace(x,points[i].y(),x,fabs(sin(x) * fluctuate)); + + } + +} diff --git a/tests/manual/wavechart/wavechart.h b/tests/manual/wavechart/wavechart.h new file mode 100644 index 00000000..95978861 --- /dev/null +++ b/tests/manual/wavechart/wavechart.h @@ -0,0 +1,49 @@ +/**************************************************************************** +** +** Copyright (C) 2014 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 Enterprise Charts Add-on. +** +** $QT_BEGIN_LICENSE$ +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise 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$ +** +****************************************************************************/ + +#ifndef WAVECHART_H +#define WAVECHART_H + +#include +#include +#include +#include +#include + +QT_CHARTS_USE_NAMESPACE + +class WaveChart: public QChartView +{ + Q_OBJECT + +public: + WaveChart(QChart* chart, QWidget* parent); + +private slots: + void update(); + +private: + QLineSeries* m_series; + int m_wave; + qreal m_step; + QTimer m_timer; +}; + +#endif diff --git a/tests/manual/wavechart/wavechart.pro b/tests/manual/wavechart/wavechart.pro new file mode 100644 index 00000000..0da16ed4 --- /dev/null +++ b/tests/manual/wavechart/wavechart.pro @@ -0,0 +1,8 @@ +!include( ../../tests.pri ) { + error( "Couldn't find the test.pri file!" ) +} + +QT+=opengl +TARGET = wavechart +SOURCES += main.cpp wavechart.cpp +HEADERS += wavechart.h diff --git a/tests/polarcharttest/chartview.cpp b/tests/polarcharttest/chartview.cpp deleted file mode 100644 index 37a25f8f..00000000 --- a/tests/polarcharttest/chartview.cpp +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "chartview.h" -#include -#include -#include - -QT_CHARTS_USE_NAMESPACE - -ChartView::ChartView(QWidget *parent) : - QChartView(parent) -{ -} - -void ChartView::keyPressEvent(QKeyEvent *event) -{ - switch (event->key()) { - case Qt::Key_Plus: - chart()->zoomIn(); - break; - case Qt::Key_Minus: - chart()->zoomOut(); - break; - case Qt::Key_Left: - chart()->scroll(-1.0, 0); - break; - case Qt::Key_Right: - chart()->scroll(1.0, 0); - break; - case Qt::Key_Up: - chart()->scroll(0, 1.0); - break; - case Qt::Key_Down: - chart()->scroll(0, -1.0); - break; - default: - QGraphicsView::keyPressEvent(event); - break; - } -} diff --git a/tests/polarcharttest/chartview.h b/tests/polarcharttest/chartview.h deleted file mode 100644 index fb8b4ff9..00000000 --- a/tests/polarcharttest/chartview.h +++ /dev/null @@ -1,38 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef CHARTVIEW_H -#define CHARTVIEW_H - -#include -#include - -QT_CHARTS_USE_NAMESPACE - -class ChartView : public QChartView -{ -public: - ChartView(QWidget *parent = 0); - -protected: - void keyPressEvent(QKeyEvent *event); -}; - -#endif diff --git a/tests/polarcharttest/main.cpp b/tests/polarcharttest/main.cpp deleted file mode 100644 index 28203655..00000000 --- a/tests/polarcharttest/main.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "mainwindow.h" -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - MainWindow w; - w.show(); - - return a.exec(); -} diff --git a/tests/polarcharttest/mainwindow.cpp b/tests/polarcharttest/mainwindow.cpp deleted file mode 100644 index 79c8918f..00000000 --- a/tests/polarcharttest/mainwindow.cpp +++ /dev/null @@ -1,1199 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "mainwindow.h" -#include "chartview.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -QT_CHARTS_USE_NAMESPACE -#include "ui_mainwindow.h" - -MainWindow::MainWindow(QWidget *parent) : - QMainWindow(parent), - ui(new Ui::MainWindow), - m_angularTickCount(9), - m_radialTickCount(11), - m_labelsAngle(0), - m_angularMin(0.0), - m_angularMax(40000.0), - m_radialMin(0.0), - m_radialMax(30000.0), - m_angularShadesVisible(false), - m_radialShadesVisible(false), - m_labelsVisible(true), - m_titleVisible(true), - m_gridVisible(true), - m_arrowVisible(true), - m_angularShadesBrush(new QBrush(Qt::NoBrush)), - m_radialShadesBrush(new QBrush(Qt::NoBrush)), - m_labelBrush(new QBrush(Qt::black)), - m_titleBrush(new QBrush(Qt::black)), - m_backgroundBrush(new QBrush(Qt::white)), - m_plotAreaBackgroundBrush(new QBrush(Qt::NoBrush)), - m_angularShadesPen(new QPen(Qt::NoPen)), - m_radialShadesPen(new QPen(Qt::NoPen)), - m_labelPen(new QPen(Qt::NoPen)), - m_titlePen(new QPen(Qt::NoPen)), - m_gridPen(new QPen(QRgb(0x010101))), // Note: Pure black is default color, so it gets overridden by - m_arrowPen(new QPen(QRgb(0x010101))), // default theme if set to that initially. This is an example of workaround. - m_backgroundPen(new QPen(Qt::NoPen)), - m_plotAreaBackgroundPen(new QPen(Qt::NoPen)), - m_labelFormat(QString("%.2f")), - m_animationOptions(QChart::NoAnimation), - m_angularTitle(QString("Angular Title")), - m_radialTitle(QString("Radial Title")), - m_base(2.0), - m_dateFormat(QString("mm-ss-zzz")), - m_chart(0), - m_angularAxis(0), - m_radialAxis(0), - m_angularAxisMode(AxisModeNone), - m_radialAxisMode(AxisModeNone), - m_moreCategories(false), - m_series1(0), - m_series2(0), - m_series3(0), - m_series4(0), - m_series5(0), - m_series6(0), - m_series7(0) -{ - ui->setupUi(this); - - ui->angularTicksSpin->setValue(m_angularTickCount); - ui->radialTicksSpin->setValue(m_radialTickCount); - ui->anglesSpin->setValue(m_labelsAngle); - ui->radialMinSpin->setValue(m_radialMin); - ui->radialMaxSpin->setValue(m_radialMax); - ui->angularMinSpin->setValue(m_angularMin); - ui->angularMaxSpin->setValue(m_angularMax); - ui->angularShadesComboBox->setCurrentIndex(0); - ui->radialShadesComboBox->setCurrentIndex(0); - ui->labelFormatEdit->setText(m_labelFormat); - ui->dateFormatEdit->setText(m_dateFormat); - ui->moreCategoriesCheckBox->setChecked(m_moreCategories); - - ui->series1checkBox->setChecked(true); - ui->series2checkBox->setChecked(true); - ui->series3checkBox->setChecked(true); - ui->series4checkBox->setChecked(true); - ui->series5checkBox->setChecked(true); - ui->series6checkBox->setChecked(true); - ui->series7checkBox->setChecked(true); - - m_currentLabelFont.setFamily(ui->labelFontComboBox->currentFont().family()); - m_currentLabelFont.setPixelSize(15); - m_currentTitleFont.setFamily(ui->titleFontComboBox->currentFont().family()); - m_currentTitleFont.setPixelSize(30); - - ui->labelFontSizeSpin->setValue(m_currentLabelFont.pixelSize()); - ui->titleFontSizeSpin->setValue(m_currentTitleFont.pixelSize()); - - ui->logBaseSpin->setValue(m_base); - - initXYValueChart(); - setAngularAxis(AxisModeValue); - setRadialAxis(AxisModeValue); - - ui->angularAxisComboBox->setCurrentIndex(int(m_angularAxisMode)); - ui->radialAxisComboBox->setCurrentIndex(int(m_radialAxisMode)); - - connect(ui->angularTicksSpin, SIGNAL(valueChanged(int)), this, SLOT(angularTicksChanged(int))); - connect(ui->radialTicksSpin, SIGNAL(valueChanged(int)), this, SLOT(radialTicksChanged(int))); - connect(ui->anglesSpin, SIGNAL(valueChanged(int)), this, SLOT(anglesChanged(int))); - connect(ui->radialMinSpin, SIGNAL(valueChanged(double)), this, SLOT(radialMinChanged(double))); - connect(ui->radialMaxSpin, SIGNAL(valueChanged(double)), this, SLOT(radialMaxChanged(double))); - connect(ui->angularMinSpin, SIGNAL(valueChanged(double)), this, SLOT(angularMinChanged(double))); - connect(ui->angularMaxSpin, SIGNAL(valueChanged(double)), this, SLOT(angularMaxChanged(double))); - connect(ui->angularShadesComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(angularShadesIndexChanged(int))); - connect(ui->radialShadesComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(radialShadesIndexChanged(int))); - connect(ui->animationsComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(animationIndexChanged(int))); - connect(ui->labelFormatEdit, SIGNAL(textEdited(QString)), this, SLOT(labelFormatEdited(QString))); - connect(ui->labelFontComboBox, SIGNAL(currentFontChanged(QFont)), this, SLOT(labelFontChanged(QFont))); - connect(ui->labelFontSizeSpin, SIGNAL(valueChanged(int)), this, SLOT(labelFontSizeChanged(int))); - connect(ui->labelComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(labelsIndexChanged(int))); - connect(ui->titleFontComboBox, SIGNAL(currentFontChanged(QFont)), this, SLOT(titleFontChanged(QFont))); - connect(ui->titleFontSizeSpin, SIGNAL(valueChanged(int)), this, SLOT(titleFontSizeChanged(int))); - connect(ui->titleComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(titleIndexChanged(int))); - connect(ui->gridComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(gridIndexChanged(int))); - connect(ui->arrowComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(arrowIndexChanged(int))); - connect(ui->logBaseSpin, SIGNAL(valueChanged(double)), this, SLOT(logBaseChanged(double))); - connect(ui->angularAxisComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(angularAxisIndexChanged(int))); - connect(ui->radialAxisComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(radialAxisIndexChanged(int))); - connect(ui->niceNumbersCheckBox, SIGNAL(clicked()), this, SLOT(niceNumbersChecked())); - connect(ui->dateFormatEdit, SIGNAL(textEdited(QString)), this, SLOT(dateFormatEdited(QString))); - connect(ui->moreCategoriesCheckBox, SIGNAL(clicked()), this, SLOT(moreCategoriesChecked())); - connect(ui->series1checkBox, SIGNAL(clicked()), this, SLOT(series1CheckBoxChecked())); - connect(ui->series2checkBox, SIGNAL(clicked()), this, SLOT(series2CheckBoxChecked())); - connect(ui->series3checkBox, SIGNAL(clicked()), this, SLOT(series3CheckBoxChecked())); - connect(ui->series4checkBox, SIGNAL(clicked()), this, SLOT(series4CheckBoxChecked())); - connect(ui->series5checkBox, SIGNAL(clicked()), this, SLOT(series5CheckBoxChecked())); - connect(ui->series6checkBox, SIGNAL(clicked()), this, SLOT(series6CheckBoxChecked())); - connect(ui->series7checkBox, SIGNAL(clicked()), this, SLOT(series7CheckBoxChecked())); - connect(ui->themeComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(themeIndexChanged(int))); - connect(ui->backgroundComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(backgroundIndexChanged(int))); - connect(ui->plotAreaComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(plotAreaIndexChanged(int))); - - ui->chartView->setChart(m_chart); - ui->chartView->setRenderHint(QPainter::Antialiasing); -} - -MainWindow::~MainWindow() -{ - delete ui; - delete m_angularShadesBrush; - delete m_radialShadesBrush; - delete m_angularShadesPen; - delete m_radialShadesPen; -} - -void MainWindow::initXYValueChart() -{ - qreal seriesAngularMin = 1; - qreal seriesAngularMax = 46000; - qreal seriesRadialMin = 1; - qreal seriesRadialMax = 23500; - qreal radialDimension = seriesRadialMax - seriesRadialMin; - qreal angularDimension = seriesAngularMax - seriesAngularMin; - - // Scatter series, points outside min-max ranges should not be drawn - m_series1 = new QScatterSeries(); - m_series1->setName("scatter"); - qreal scatterCount = 10; - qreal scatterAngularStep = angularDimension / scatterCount; - qreal scatterRadialStep = radialDimension / scatterCount; - for (qreal i = 0.0; i < scatterCount; i++) { - m_series1->append((i * scatterAngularStep) + seriesAngularMin, (i * scatterRadialStep) + seriesRadialMin); - //qDebug() << m_series1->points().last(); - } - m_series1->setMarkerSize(10); - *m_series1 << QPointF(50, 50) << QPointF(150, 150) << QPointF(250, 250) << QPointF(350, 350) << QPointF(450, 450); - *m_series1 << QPointF(1050, 0.50) << QPointF(1150, 0.25) << QPointF(1250, 0.12) << QPointF(1350, 0.075) << QPointF(1450, 0.036); - *m_series1 << QPointF(0.50, 2000) << QPointF(0.25, 3500) << QPointF(0.12, 5000) << QPointF(0.075, 6500) << QPointF(0.036, 8000); - - // Line series, points outside min-max ranges should not be drawn, - // but lines should be properly interpolated at chart edges - m_series2 = new QLineSeries(); - m_series2->setName("line 1"); - qreal lineCount = 100; - qreal lineAngularStep = angularDimension / lineCount; - qreal lineRadialStep = radialDimension / lineCount; - for (qreal i = 0.0; i < lineCount; i++) { - m_series2->append((i * lineAngularStep) + seriesAngularMin, (i * lineRadialStep) + seriesRadialMin); - //qDebug() << m_series2->points().last(); - } - QPen series2Pen = QPen(Qt::blue, 10); - //series2Pen.setStyle(Qt::DashDotDotLine); - m_series2->setPen(series2Pen); - - m_series3 = new QLineSeries(); - m_series3->setName("Area upper"); - lineCount = 87; - lineAngularStep = angularDimension / lineCount; - lineRadialStep = radialDimension / lineCount; - for (qreal i = 1.0; i <= lineCount; i++) { - m_series3->append((i * lineAngularStep) + seriesAngularMin, (i * lineRadialStep) + seriesRadialMin + 200.0); - //qDebug() << m_series3->points().last(); - } - - m_series4 = new QLineSeries(); - m_series4->setName("Area lower"); - lineCount = 89; - lineAngularStep = angularDimension / lineCount; - lineRadialStep = radialDimension / lineCount; - for (qreal i = 1.0; i <= lineCount; i++) { - m_series4->append((i * lineAngularStep) + seriesAngularMin + 100.0, (i * lineRadialStep) + seriesRadialMin + i * 300.0); - //qDebug() << m_series4->points().last(); - } - - m_series5 = new QAreaSeries(); - m_series5->setName("area"); - m_series5->setUpperSeries(m_series3); - m_series5->setLowerSeries(m_series4); - m_series5->setOpacity(0.5); - - m_series6 = new QSplineSeries(); - m_series6->setName("spline"); - qreal ad = angularDimension / 20; - qreal rd = radialDimension / 10; - m_series6->append(seriesAngularMin, seriesRadialMin + rd * 2); - m_series6->append(seriesAngularMin + ad, seriesRadialMin + rd * 5); - m_series6->append(seriesAngularMin + ad * 2, seriesRadialMin + rd * 4); - m_series6->append(seriesAngularMin + ad * 3, seriesRadialMin + rd * 9); - m_series6->append(seriesAngularMin + ad * 4, seriesRadialMin + rd * 11); - m_series6->append(seriesAngularMin + ad * 5, seriesRadialMin + rd * 12); - m_series6->append(seriesAngularMin + ad * 6, seriesRadialMin + rd * 9); - m_series6->append(seriesAngularMin + ad * 7, seriesRadialMin + rd * 11); - m_series6->append(seriesAngularMin + ad * 8, seriesRadialMin + rd * 12); - m_series6->append(seriesAngularMin + ad * 9, seriesRadialMin + rd * 6); - m_series6->append(seriesAngularMin + ad * 10, seriesRadialMin + rd * 4); - m_series6->append(seriesAngularMin + ad * 10, seriesRadialMin + rd * 8); - m_series6->append(seriesAngularMin + ad * 11, seriesRadialMin + rd * 9); - m_series6->append(seriesAngularMin + ad * 12, seriesRadialMin + rd * 11); - m_series6->append(seriesAngularMin + ad * 13, seriesRadialMin + rd * 12); - m_series6->append(seriesAngularMin + ad * 14, seriesRadialMin + rd * 6); - m_series6->append(seriesAngularMin + ad * 15, seriesRadialMin + rd * 3); - m_series6->append(seriesAngularMin + ad * 16, seriesRadialMin + rd * 2); - m_series6->append(seriesAngularMin + ad * 17, seriesRadialMin + rd * 6); - m_series6->append(seriesAngularMin + ad * 18, seriesRadialMin + rd * 6); - m_series6->append(seriesAngularMin + ad * 19, seriesRadialMin + rd * 6); - m_series6->append(seriesAngularMin + ad * 20, seriesRadialMin + rd * 6); - m_series6->append(seriesAngularMin + ad * 19, seriesRadialMin + rd * 2); - m_series6->append(seriesAngularMin + ad * 18, seriesRadialMin + rd * 9); - m_series6->append(seriesAngularMin + ad * 17, seriesRadialMin + rd * 7); - m_series6->append(seriesAngularMin + ad * 16, seriesRadialMin + rd * 3); - m_series6->append(seriesAngularMin + ad * 15, seriesRadialMin + rd * 1); - m_series6->append(seriesAngularMin + ad * 14, seriesRadialMin + rd * 7); - m_series6->append(seriesAngularMin + ad * 13, seriesRadialMin + rd * 5); - m_series6->append(seriesAngularMin + ad * 12, seriesRadialMin + rd * 9); - m_series6->append(seriesAngularMin + ad * 11, seriesRadialMin + rd * 1); - m_series6->append(seriesAngularMin + ad * 10, seriesRadialMin + rd * 4); - m_series6->append(seriesAngularMin + ad * 9, seriesRadialMin + rd * 1); - m_series6->append(seriesAngularMin + ad * 8, seriesRadialMin + rd * 2); - m_series6->append(seriesAngularMin + ad * 7, seriesRadialMin + rd * 4); - m_series6->append(seriesAngularMin + ad * 6, seriesRadialMin + rd * 8); - m_series6->append(seriesAngularMin + ad * 5, seriesRadialMin + rd * 12); - m_series6->append(seriesAngularMin + ad * 4, seriesRadialMin + rd * 9); - m_series6->append(seriesAngularMin + ad * 3, seriesRadialMin + rd * 8); - m_series6->append(seriesAngularMin + ad * 2, seriesRadialMin + rd * 7); - m_series6->append(seriesAngularMin + ad, seriesRadialMin + rd * 4); - m_series6->append(seriesAngularMin, seriesRadialMin + rd * 10); - - m_series6->setPointsVisible(true); - QPen series6Pen = QPen(Qt::red, 10); - //series6Pen.setStyle(Qt::DashDotDotLine); - m_series6->setPen(series6Pen); - - // m_series7 shows points at category intersections - m_series7 = new QScatterSeries(); - m_series7->setName("Category check"); - m_series7->setMarkerSize(7); - m_series7->setBrush(QColor(Qt::red)); - m_series7->setMarkerShape(QScatterSeries::MarkerShapeRectangle); - *m_series7 << QPointF(1000, 1000) - << QPointF(1000, 2000) - << QPointF(1000, 4000) - << QPointF(1000, 9000) - << QPointF(1000, 14000) - << QPointF(1000, 16500) - << QPointF(1000, 19000) - - << QPointF(4000, 1000) - << QPointF(4000, 2000) - << QPointF(4000, 4000) - << QPointF(4000, 9000) - << QPointF(4000, 14000) - << QPointF(4000, 16500) - << QPointF(4000, 19000) - - << QPointF(7000, 1000) - << QPointF(7000, 2000) - << QPointF(7000, 4000) - << QPointF(7000, 9000) - << QPointF(7000, 14000) - << QPointF(7000, 16500) - << QPointF(7000, 19000) - - << QPointF(12000, 1000) - << QPointF(12000, 2000) - << QPointF(12000, 4000) - << QPointF(12000, 9000) - << QPointF(12000, 14000) - << QPointF(12000, 16500) - << QPointF(12000, 19000) - - << QPointF(17000, 1000) - << QPointF(17000, 2000) - << QPointF(17000, 4000) - << QPointF(17000, 9000) - << QPointF(17000, 14000) - << QPointF(17000, 16500) - << QPointF(17000, 19000) - - << QPointF(22000, 1000) - << QPointF(22000, 2000) - << QPointF(22000, 4000) - << QPointF(22000, 9000) - << QPointF(22000, 14000) - << QPointF(22000, 16500) - << QPointF(22000, 19000) - - << QPointF(28000, 1000) - << QPointF(28000, 2000) - << QPointF(28000, 4000) - << QPointF(28000, 9000) - << QPointF(28000, 14000) - << QPointF(28000, 16500) - << QPointF(28000, 19000); - - m_chart = new QPolarChart(); - - m_chart->addSeries(m_series1); - m_chart->addSeries(m_series2); - m_chart->addSeries(m_series3); - m_chart->addSeries(m_series4); - m_chart->addSeries(m_series5); - m_chart->addSeries(m_series6); - m_chart->addSeries(m_series7); - - connect(m_series1, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series2, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series3, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series4, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series5, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series6, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series7, SIGNAL(clicked(QPointF)), this, SLOT(seriesClicked(QPointF))); - connect(m_series1, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - connect(m_series2, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - connect(m_series3, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - connect(m_series4, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - connect(m_series5, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - connect(m_series6, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - connect(m_series7, SIGNAL(hovered(QPointF, bool)), this, SLOT(seriesHovered(QPointF, bool))); - - m_chart->setTitle("Use arrow keys to scroll and +/- to zoom"); - m_chart->setAnimationOptions(m_animationOptions); - //m_chart->legend()->setVisible(false); - m_chart->setAcceptHoverEvents(true); - m_chart->setBackgroundBrush(*m_backgroundBrush); - m_chart->setBackgroundPen(*m_backgroundPen); - m_chart->setPlotAreaBackgroundBrush(*m_plotAreaBackgroundBrush); - m_chart->setPlotAreaBackgroundPen(*m_plotAreaBackgroundPen); -} - -void MainWindow::setAngularAxis(MainWindow::AxisMode mode) -{ - if (m_angularAxis) { - m_chart->removeAxis(m_angularAxis); - delete m_angularAxis; - m_angularAxis = 0; - } - - m_angularAxisMode = mode; - - switch (m_angularAxisMode) { - case AxisModeNone: - return; - case AxisModeValue: - m_angularAxis = new QValueAxis(); - static_cast(m_angularAxis)->setTickCount(m_angularTickCount); - static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); - break; - case AxisModeLogValue: - m_angularAxis = new QLogValueAxis(); - static_cast(m_angularAxis)->setBase(m_base); - static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); - break; - case AxisModeDateTime: - m_angularAxis = new QDateTimeAxis(); - static_cast(m_angularAxis)->setTickCount(m_angularTickCount); - static_cast(m_angularAxis)->setFormat(m_dateFormat); - break; - case AxisModeCategory: - m_angularAxis = new QCategoryAxis(); - applyCategories(); - break; - default: - qWarning() << "Unsupported AxisMode"; - break; - } - - m_angularAxis->setLabelsAngle(m_labelsAngle); - m_angularAxis->setLabelsFont(m_currentLabelFont); - m_angularAxis->setLabelsBrush(*m_labelBrush); - m_angularAxis->setLabelsPen(*m_labelPen); - m_angularAxis->setLabelsVisible(m_labelsVisible); - m_angularAxis->setShadesBrush(*m_angularShadesBrush); - m_angularAxis->setShadesPen(*m_angularShadesPen); - m_angularAxis->setShadesVisible(m_angularShadesVisible); - m_angularAxis->setTitleFont(m_currentTitleFont); - m_angularAxis->setTitleBrush(*m_titleBrush); - m_angularAxis->setTitlePen(*m_titlePen); - m_angularAxis->setTitleVisible(m_titleVisible); - m_angularAxis->setTitleText(m_angularTitle); - m_angularAxis->setGridLinePen(*m_gridPen); - m_angularAxis->setGridLineVisible(m_gridVisible); - m_angularAxis->setLinePen(*m_arrowPen); - m_angularAxis->setLineVisible(m_arrowVisible); - - m_chart->addAxis(m_angularAxis, QPolarChart::PolarOrientationAngular); - - m_series1->attachAxis(m_angularAxis); - m_series2->attachAxis(m_angularAxis); - m_series3->attachAxis(m_angularAxis); - m_series4->attachAxis(m_angularAxis); - m_series5->attachAxis(m_angularAxis); - m_series6->attachAxis(m_angularAxis); - m_series7->attachAxis(m_angularAxis); - - applyRanges(); - - //connect(m_angularAxis, SIGNAL(rangeChanged(qreal, qreal)), this, SLOT(angularRangeChanged(qreal, qreal))); -} - -void MainWindow::setRadialAxis(MainWindow::AxisMode mode) -{ - if (m_radialAxis) { - m_chart->removeAxis(m_radialAxis); - delete m_radialAxis; - m_radialAxis = 0; - } - - m_radialAxisMode = mode; - - switch (m_radialAxisMode) { - case AxisModeNone: - return; - case AxisModeValue: - m_radialAxis = new QValueAxis(); - static_cast(m_radialAxis)->setTickCount(m_radialTickCount); - static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); - break; - case AxisModeLogValue: - m_radialAxis = new QLogValueAxis(); - static_cast(m_radialAxis)->setBase(m_base); - static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); - break; - case AxisModeDateTime: - m_radialAxis = new QDateTimeAxis(); - static_cast(m_radialAxis)->setTickCount(m_radialTickCount); - static_cast(m_radialAxis)->setFormat(m_dateFormat); - break; - case AxisModeCategory: - m_radialAxis = new QCategoryAxis(); - applyCategories(); - break; - default: - qWarning() << "Unsupported AxisMode"; - break; - } - - m_radialAxis->setLabelsAngle(m_labelsAngle); - m_radialAxis->setLabelsFont(m_currentLabelFont); - m_radialAxis->setLabelsBrush(*m_labelBrush); - m_radialAxis->setLabelsPen(*m_labelPen); - m_radialAxis->setLabelsVisible(m_labelsVisible); - m_radialAxis->setShadesBrush(*m_radialShadesBrush); - m_radialAxis->setShadesPen(*m_radialShadesPen); - m_radialAxis->setShadesVisible(m_radialShadesVisible); - m_radialAxis->setTitleFont(m_currentTitleFont); - m_radialAxis->setTitleBrush(*m_titleBrush); - m_radialAxis->setTitlePen(*m_titlePen); - m_radialAxis->setTitleVisible(m_titleVisible); - m_radialAxis->setTitleText(m_radialTitle); - m_radialAxis->setGridLinePen(*m_gridPen); - m_radialAxis->setGridLineVisible(m_gridVisible); - m_radialAxis->setLinePen(*m_arrowPen); - m_radialAxis->setLineVisible(m_arrowVisible); - - m_chart->addAxis(m_radialAxis, QPolarChart::PolarOrientationRadial); - - m_series1->attachAxis(m_radialAxis); - m_series2->attachAxis(m_radialAxis); - m_series3->attachAxis(m_radialAxis); - m_series4->attachAxis(m_radialAxis); - m_series5->attachAxis(m_radialAxis); - m_series6->attachAxis(m_radialAxis); - m_series7->attachAxis(m_radialAxis); - - applyRanges(); - - series1CheckBoxChecked(); - series2CheckBoxChecked(); - series3CheckBoxChecked(); - series4CheckBoxChecked(); - series5CheckBoxChecked(); - series6CheckBoxChecked(); - series7CheckBoxChecked(); - - //connect(m_radialAxis, SIGNAL(rangeChanged(qreal, qreal)), this, SLOT(radialRangeChanged(qreal, qreal))); -} - -void MainWindow::applyRanges() -{ - if (ui->niceNumbersCheckBox->isChecked()) { - if (m_angularAxisMode == AxisModeValue) { - static_cast(m_angularAxis)->applyNiceNumbers(); - m_angularMin = static_cast(m_angularAxis)->min(); - m_angularMax = static_cast(m_angularAxis)->max(); - m_angularTickCount = static_cast(m_angularAxis)->tickCount(); - } - if (m_radialAxisMode == AxisModeValue) { - static_cast(m_radialAxis)->applyNiceNumbers(); - m_radialMin = static_cast(m_radialAxis)->min(); - m_radialMax = static_cast(m_radialAxis)->max(); - m_radialTickCount = static_cast(m_radialAxis)->tickCount(); - } - } - - if (m_angularAxis) - m_angularAxis->setRange(m_angularMin, m_angularMax); - if (m_radialAxis) - m_radialAxis->setRange(m_radialMin, m_radialMax); -} - -void MainWindow::angularTicksChanged(int value) -{ - m_angularTickCount = value; - if (m_angularAxisMode == AxisModeValue) - static_cast(m_angularAxis)->setTickCount(m_angularTickCount); - else if (m_angularAxisMode == AxisModeDateTime) - static_cast(m_angularAxis)->setTickCount(m_angularTickCount); -} - -void MainWindow::radialTicksChanged(int value) -{ - m_radialTickCount = value; - if (m_radialAxisMode == AxisModeValue) - static_cast(m_radialAxis)->setTickCount(m_radialTickCount); - else if (m_radialAxisMode == AxisModeDateTime) - static_cast(m_radialAxis)->setTickCount(m_radialTickCount); -} - -void MainWindow::anglesChanged(int value) -{ - m_labelsAngle = value; - m_radialAxis->setLabelsAngle(m_labelsAngle); - m_angularAxis->setLabelsAngle(m_labelsAngle); -} - -void MainWindow::angularMinChanged(double value) -{ - m_angularMin = value; - if (m_angularAxisMode != AxisModeDateTime) { - m_angularAxis->setMin(m_angularMin); - } else { - QDateTime dateTime; - dateTime.setMSecsSinceEpoch(qint64(m_angularMin)); - m_angularAxis->setMin(dateTime); - } -} - -void MainWindow::angularMaxChanged(double value) -{ - m_angularMax = value; - if (m_angularAxisMode != AxisModeDateTime) { - m_angularAxis->setMax(m_angularMax); - } else { - QDateTime dateTime; - dateTime.setMSecsSinceEpoch(qint64(m_angularMax)); - m_angularAxis->setMax(dateTime); - } -} - -void MainWindow::radialMinChanged(double value) -{ - m_radialMin = value; - if (m_radialAxisMode != AxisModeDateTime) { - m_radialAxis->setMin(m_radialMin); - } else { - QDateTime dateTime; - dateTime.setMSecsSinceEpoch(qint64(m_radialMin)); - m_radialAxis->setMin(dateTime); - } -} - -void MainWindow::radialMaxChanged(double value) -{ - m_radialMax = value; - if (m_radialAxisMode != AxisModeDateTime) { - m_radialAxis->setMax(m_radialMax); - } else { - QDateTime dateTime; - dateTime.setMSecsSinceEpoch(qint64(m_radialMax)); - m_radialAxis->setMax(dateTime); - } -} - -void MainWindow::angularShadesIndexChanged(int index) -{ - delete m_angularShadesBrush; - delete m_angularShadesPen; - - switch (index) { - case 0: - m_angularShadesBrush = new QBrush(Qt::NoBrush); - m_angularShadesPen = new QPen(Qt::NoPen); - m_angularShadesVisible = false; - break; - case 1: - m_angularShadesBrush = new QBrush(Qt::lightGray); - m_angularShadesPen = new QPen(Qt::NoPen); - m_angularShadesVisible = true; - break; - case 2: - m_angularShadesBrush = new QBrush(Qt::yellow); - m_angularShadesPen = new QPen(Qt::DotLine); - m_angularShadesPen->setWidth(2); - m_angularShadesVisible = true; - break; - default: - break; - } - - m_angularAxis->setShadesBrush(*m_angularShadesBrush); - m_angularAxis->setShadesPen(*m_angularShadesPen); - m_angularAxis->setShadesVisible(m_angularShadesVisible); -} - -void MainWindow::radialShadesIndexChanged(int index) -{ - delete m_radialShadesBrush; - delete m_radialShadesPen; - - switch (index) { - case 0: - m_radialShadesBrush = new QBrush(Qt::NoBrush); - m_radialShadesPen = new QPen(Qt::NoPen); - m_radialShadesVisible = false; - break; - case 1: - m_radialShadesBrush = new QBrush(Qt::green); - m_radialShadesPen = new QPen(Qt::NoPen); - m_radialShadesVisible = true; - break; - case 2: - m_radialShadesBrush = new QBrush(Qt::blue); - m_radialShadesPen = new QPen(Qt::DotLine); - m_radialShadesPen->setWidth(2); - m_radialShadesVisible = true; - break; - default: - break; - } - - m_radialAxis->setShadesBrush(*m_radialShadesBrush); - m_radialAxis->setShadesPen(*m_radialShadesPen); - m_radialAxis->setShadesVisible(m_radialShadesVisible); -} - -void MainWindow::labelFormatEdited(const QString &text) -{ - m_labelFormat = text; - if (m_angularAxisMode == AxisModeValue) - static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); - else if (m_angularAxisMode == AxisModeLogValue) - static_cast(m_angularAxis)->setLabelFormat(m_labelFormat); - - if (m_radialAxisMode == AxisModeValue) - static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); - else if (m_radialAxisMode == AxisModeLogValue) - static_cast(m_radialAxis)->setLabelFormat(m_labelFormat); -} - -void MainWindow::labelFontChanged(const QFont &font) -{ - m_currentLabelFont = font; - m_currentLabelFont.setPixelSize(ui->labelFontSizeSpin->value()); - m_angularAxis->setLabelsFont(m_currentLabelFont); - m_radialAxis->setLabelsFont(m_currentLabelFont); -} - -void MainWindow::labelFontSizeChanged(int value) -{ - m_currentLabelFont = ui->labelFontComboBox->currentFont(); - m_currentLabelFont.setPixelSize(value); - m_angularAxis->setLabelsFont(m_currentLabelFont); - m_radialAxis->setLabelsFont(m_currentLabelFont); -} - -void MainWindow::animationIndexChanged(int index) -{ - switch (index) { - case 0: - m_animationOptions = QChart::NoAnimation; - break; - case 1: - m_animationOptions = QChart::SeriesAnimations; - break; - case 2: - m_animationOptions = QChart::GridAxisAnimations; - break; - case 3: - m_animationOptions = QChart::AllAnimations; - break; - default: - break; - } - - m_chart->setAnimationOptions(m_animationOptions); -} - -void MainWindow::labelsIndexChanged(int index) -{ - delete m_labelBrush; - delete m_labelPen; - - switch (index) { - case 0: - m_labelBrush = new QBrush(Qt::NoBrush); - m_labelPen = new QPen(Qt::NoPen); - m_labelsVisible = false; - break; - case 1: - m_labelBrush = new QBrush(Qt::black); - m_labelPen = new QPen(Qt::NoPen); - m_labelsVisible = true; - break; - case 2: - m_labelBrush = new QBrush(Qt::white); - m_labelPen = new QPen(Qt::blue); - m_labelsVisible = true; - break; - default: - break; - } - - m_radialAxis->setLabelsBrush(*m_labelBrush); - m_radialAxis->setLabelsPen(*m_labelPen); - m_radialAxis->setLabelsVisible(m_labelsVisible); - m_angularAxis->setLabelsBrush(*m_labelBrush); - m_angularAxis->setLabelsPen(*m_labelPen); - m_angularAxis->setLabelsVisible(m_labelsVisible); -} - -void MainWindow::titleIndexChanged(int index) -{ - delete m_titleBrush; - delete m_titlePen; - - switch (index) { - case 0: - m_titleBrush = new QBrush(Qt::NoBrush); - m_titlePen = new QPen(Qt::NoPen); - m_titleVisible = false; - m_angularTitle = QString(); - m_radialTitle = QString(); - break; - case 1: - m_titleBrush = new QBrush(Qt::NoBrush); - m_titlePen = new QPen(Qt::NoPen); - m_titleVisible = true; - m_angularTitle = QString(); - m_radialTitle = QString(); - break; - case 2: - m_titleBrush = new QBrush(Qt::NoBrush); - m_titlePen = new QPen(Qt::NoPen); - m_titleVisible = false; - m_angularTitle = QString("Invisible Ang. Title!"); - m_radialTitle = QString("Invisible Rad. Title!"); - break; - case 3: - m_titleBrush = new QBrush(Qt::black); - m_titlePen = new QPen(Qt::NoPen); - m_titleVisible = true; - m_angularTitle = QString("Angular Title"); - m_radialTitle = QString("Radial Title"); - break; - case 4: - m_titleBrush = new QBrush(Qt::white); - m_titlePen = new QPen(Qt::blue); - m_titleVisible = true; - m_angularTitle = QString("Angular Blue Title"); - m_radialTitle = QString("Radial Blue Title"); - break; - default: - break; - } - - m_radialAxis->setTitleBrush(*m_titleBrush); - m_radialAxis->setTitlePen(*m_titlePen); - m_radialAxis->setTitleVisible(m_titleVisible); - m_radialAxis->setTitleText(m_radialTitle); - m_angularAxis->setTitleBrush(*m_titleBrush); - m_angularAxis->setTitlePen(*m_titlePen); - m_angularAxis->setTitleVisible(m_titleVisible); - m_angularAxis->setTitleText(m_angularTitle); -} - -void MainWindow::titleFontChanged(const QFont &font) -{ - m_currentTitleFont = font; - m_currentTitleFont.setPixelSize(ui->titleFontSizeSpin->value()); - m_angularAxis->setTitleFont(m_currentTitleFont); - m_radialAxis->setTitleFont(m_currentTitleFont); -} - -void MainWindow::titleFontSizeChanged(int value) -{ - m_currentTitleFont = ui->titleFontComboBox->currentFont(); - m_currentTitleFont.setPixelSize(value); - m_angularAxis->setTitleFont(m_currentTitleFont); - m_radialAxis->setTitleFont(m_currentTitleFont); -} - -void MainWindow::gridIndexChanged(int index) -{ - delete m_gridPen; - - switch (index) { - case 0: - m_gridPen = new QPen(Qt::NoPen); - m_gridVisible = false; - break; - case 1: - m_gridPen = new QPen(Qt::black); - m_gridVisible = true; - break; - case 2: - m_gridPen = new QPen(Qt::red); - m_gridPen->setStyle(Qt::DashDotLine); - m_gridPen->setWidth(3); - m_gridVisible = true; - break; - default: - break; - } - - m_angularAxis->setGridLinePen(*m_gridPen); - m_angularAxis->setGridLineVisible(m_gridVisible); - m_radialAxis->setGridLinePen(*m_gridPen); - m_radialAxis->setGridLineVisible(m_gridVisible); -} - -void MainWindow::arrowIndexChanged(int index) -{ - delete m_arrowPen; - - switch (index) { - case 0: - m_arrowPen = new QPen(Qt::NoPen); - m_arrowVisible = false; - break; - case 1: - m_arrowPen = new QPen(Qt::black); - m_arrowVisible = true; - break; - case 2: - m_arrowPen = new QPen(Qt::red); - m_arrowPen->setStyle(Qt::DashDotLine); - m_arrowPen->setWidth(3); - m_arrowVisible = true; - break; - default: - break; - } - - m_angularAxis->setLinePen(*m_arrowPen); - m_angularAxis->setLineVisible(m_arrowVisible); - m_radialAxis->setLinePen(*m_arrowPen); - m_radialAxis->setLineVisible(m_arrowVisible); -} - -void MainWindow::angularRangeChanged(qreal min, qreal max) -{ - if (!qFuzzyCompare(qreal(ui->angularMinSpin->value()), min)) - ui->angularMinSpin->setValue(min); - if (!qFuzzyCompare(qreal(ui->angularMaxSpin->value()), max)) - ui->angularMaxSpin->setValue(max); -} - -void MainWindow::radialRangeChanged(qreal min, qreal max) -{ - if (!qFuzzyCompare(qreal(ui->radialMinSpin->value()), min)) - ui->radialMinSpin->setValue(min); - if (!qFuzzyCompare(qreal(ui->radialMaxSpin->value()), max)) - ui->radialMaxSpin->setValue(max); -} - -void MainWindow::angularAxisIndexChanged(int index) -{ - switch (index) { - case 0: - setAngularAxis(AxisModeNone); - break; - case 1: - setAngularAxis(AxisModeValue); - break; - case 2: - setAngularAxis(AxisModeLogValue); - break; - case 3: - setAngularAxis(AxisModeDateTime); - break; - case 4: - setAngularAxis(AxisModeCategory); - break; - default: - qWarning("Invalid Index!"); - } -} - -void MainWindow::radialAxisIndexChanged(int index) -{ - switch (index) { - case 0: - setRadialAxis(AxisModeNone); - break; - case 1: - setRadialAxis(AxisModeValue); - break; - case 2: - setRadialAxis(AxisModeLogValue); - break; - case 3: - setRadialAxis(AxisModeDateTime); - break; - case 4: - setRadialAxis(AxisModeCategory); - break; - default: - qWarning("Invalid Index!"); - } -} - -void MainWindow::logBaseChanged(double value) -{ - m_base = value; - if (m_angularAxisMode == AxisModeLogValue) - static_cast(m_angularAxis)->setBase(m_base); - if (m_radialAxisMode == AxisModeLogValue) - static_cast(m_radialAxis)->setBase(m_base); -} - -void MainWindow::niceNumbersChecked() -{ - if (ui->niceNumbersCheckBox->isChecked()) - applyRanges(); -} - -void MainWindow::dateFormatEdited(const QString &text) -{ - m_dateFormat = text; - if (m_angularAxisMode == AxisModeDateTime) - static_cast(m_angularAxis)->setFormat(m_dateFormat); - if (m_radialAxisMode == AxisModeDateTime) - static_cast(m_radialAxis)->setFormat(m_dateFormat); -} - -void MainWindow::moreCategoriesChecked() -{ - applyCategories(); - m_moreCategories = ui->moreCategoriesCheckBox->isChecked(); -} - -void MainWindow::series1CheckBoxChecked() -{ - if (ui->series1checkBox->isChecked()) - m_series1->setVisible(true); - else - m_series1->setVisible(false); -} - -void MainWindow::series2CheckBoxChecked() -{ - if (ui->series2checkBox->isChecked()) - m_series2->setVisible(true); - else - m_series2->setVisible(false); -} - -void MainWindow::series3CheckBoxChecked() -{ - if (ui->series3checkBox->isChecked()) - m_series3->setVisible(true); - else - m_series3->setVisible(false); -} - -void MainWindow::series4CheckBoxChecked() -{ - if (ui->series4checkBox->isChecked()) - m_series4->setVisible(true); - else - m_series4->setVisible(false); -} - -void MainWindow::series5CheckBoxChecked() -{ - if (ui->series5checkBox->isChecked()) - m_series5->setVisible(true); - else - m_series5->setVisible(false); -} - -void MainWindow::series6CheckBoxChecked() -{ - if (ui->series6checkBox->isChecked()) - m_series6->setVisible(true); - else - m_series6->setVisible(false); -} - -void MainWindow::series7CheckBoxChecked() -{ - if (ui->series7checkBox->isChecked()) - m_series7->setVisible(true); - else - m_series7->setVisible(false); -} - -void MainWindow::themeIndexChanged(int index) -{ - m_chart->setTheme(QChart::ChartTheme(index)); -} - -void MainWindow::seriesHovered(QPointF point, bool state) -{ - QAbstractSeries *series = qobject_cast(sender()); - if (series) { - if (state) { - QString str("'%3' - %1 x %2"); - ui->hoverLabel->setText(str.arg(point.x()).arg(point.y()).arg(series->name())); - } else { - ui->hoverLabel->setText("No hover"); - } - } else { - qDebug() << "seriesHovered - invalid sender!"; - } -} - -void MainWindow::seriesClicked(const QPointF &point) -{ - QAbstractSeries *series = qobject_cast(sender()); - if (series) { - QString str("'%3' clicked at: %1 x %2"); - m_angularTitle = str.arg(point.x()).arg(point.y()).arg(series->name()); - m_angularAxis->setTitleText(m_angularTitle); - } else { - qDebug() << "seriesClicked - invalid sender!"; - } -} - -void MainWindow::backgroundIndexChanged(int index) -{ - delete m_backgroundBrush; - delete m_backgroundPen; - - switch (index) { - case 0: - m_backgroundBrush = new QBrush(Qt::white); - m_backgroundPen = new QPen(Qt::NoPen); - break; - case 1: - m_backgroundBrush = new QBrush(Qt::blue); - m_backgroundPen = new QPen(Qt::NoPen); - break; - case 2: - m_backgroundBrush = new QBrush(Qt::yellow); - m_backgroundPen = new QPen(Qt::black, 2); - break; - default: - break; - } - m_chart->setBackgroundBrush(*m_backgroundBrush); - m_chart->setBackgroundPen(*m_backgroundPen); -} - -void MainWindow::plotAreaIndexChanged(int index) -{ - delete m_plotAreaBackgroundBrush; - delete m_plotAreaBackgroundPen; - - switch (index) { - case 0: - m_plotAreaBackgroundBrush = new QBrush(Qt::green); - m_plotAreaBackgroundPen = new QPen(Qt::green); - m_chart->setPlotAreaBackgroundVisible(false); - break; - case 1: - m_plotAreaBackgroundBrush = new QBrush(Qt::magenta); - m_plotAreaBackgroundPen = new QPen(Qt::NoPen); - m_chart->setPlotAreaBackgroundVisible(true); - break; - case 2: - m_plotAreaBackgroundBrush = new QBrush(Qt::lightGray); - m_plotAreaBackgroundPen = new QPen(Qt::red, 6); - m_chart->setPlotAreaBackgroundVisible(true); - break; - default: - break; - } - m_chart->setPlotAreaBackgroundBrush(*m_plotAreaBackgroundBrush); - m_chart->setPlotAreaBackgroundPen(*m_plotAreaBackgroundPen); -} - -void MainWindow::applyCategories() -{ - // Basic layout is three categories, extended has five - if (m_angularAxisMode == AxisModeCategory) { - QCategoryAxis *angCatAxis = static_cast(m_angularAxis); - if (angCatAxis->count() == 0) { - angCatAxis->setStartValue(4000); - angCatAxis->append("Category A", 7000); - angCatAxis->append("Category B", 12000); - angCatAxis->append("Category C", 17000); - } - if (angCatAxis->count() == 3 && ui->moreCategoriesCheckBox->isChecked()) { - angCatAxis->setStartValue(1000); - angCatAxis->replaceLabel("Category A", "Cat A"); - angCatAxis->replaceLabel("Category B", "Cat B"); - angCatAxis->replaceLabel("Category C", "Cat C"); - angCatAxis->append("Cat D", 22000); - angCatAxis->append("Cat E", 28000); - } else if (angCatAxis->count() == 5 && !ui->moreCategoriesCheckBox->isChecked()) { - angCatAxis->setStartValue(4000); - angCatAxis->replaceLabel("Cat A", "Category A"); - angCatAxis->replaceLabel("Cat B", "Category B"); - angCatAxis->replaceLabel("Cat C", "Category C"); - angCatAxis->remove("Cat D"); - angCatAxis->remove("Cat E"); - } - } - - if (m_radialAxisMode == AxisModeCategory) { - QCategoryAxis *radCatAxis = static_cast(m_radialAxis); - if (radCatAxis->count() == 0) { - radCatAxis->setStartValue(2000); - radCatAxis->append("Category 1", 4000); - radCatAxis->append("Category 2", 9000); - radCatAxis->append("Category 3", 14000); - } - if (radCatAxis->count() == 3 && ui->moreCategoriesCheckBox->isChecked()) { - radCatAxis->setStartValue(1000); - radCatAxis->replaceLabel("Category 1", "Cat 1"); - radCatAxis->replaceLabel("Category 2", "Cat 2"); - radCatAxis->replaceLabel("Category 3", "Cat 3"); - radCatAxis->append("Cat 4", 16500); - radCatAxis->append("Cat 5", 19000); - } else if (radCatAxis->count() == 5 && !ui->moreCategoriesCheckBox->isChecked()) { - radCatAxis->setStartValue(2000); - radCatAxis->replaceLabel("Cat 1", "Category 1"); - radCatAxis->replaceLabel("Cat 2", "Category 2"); - radCatAxis->replaceLabel("Cat 3", "Category 3"); - radCatAxis->remove("Cat 4"); - radCatAxis->remove("Cat 5"); - } - } -} diff --git a/tests/polarcharttest/mainwindow.h b/tests/polarcharttest/mainwindow.h deleted file mode 100644 index 2257ef04..00000000 --- a/tests/polarcharttest/mainwindow.h +++ /dev/null @@ -1,161 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef MAINWINDOW_H -#define MAINWINDOW_H - -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Ui { -class MainWindow; -} - -QT_CHARTS_USE_NAMESPACE - -class QBrush; -class QPen; - -class MainWindow : public QMainWindow -{ - Q_OBJECT - -public: - explicit MainWindow(QWidget *parent = 0); - ~MainWindow(); - -public slots: - void angularTicksChanged(int value); - void radialTicksChanged(int value); - void anglesChanged(int value); - void angularMinChanged(double value); - void angularMaxChanged(double value); - void radialMinChanged(double value); - void radialMaxChanged(double value); - void angularShadesIndexChanged(int index); - void radialShadesIndexChanged(int index); - void labelFormatEdited(const QString &text); - void labelFontChanged(const QFont &font); - void labelFontSizeChanged(int value); - void animationIndexChanged(int index); - void labelsIndexChanged(int index); - void titleIndexChanged(int index); - void titleFontChanged(const QFont &font); - void titleFontSizeChanged(int value); - void gridIndexChanged(int index); - void arrowIndexChanged(int index); - void angularRangeChanged(qreal min, qreal max); - void radialRangeChanged(qreal min, qreal max); - void angularAxisIndexChanged(int index); - void radialAxisIndexChanged(int index); - void logBaseChanged(double value); - void niceNumbersChecked(); - void dateFormatEdited(const QString &text); - void moreCategoriesChecked(); - void series1CheckBoxChecked(); - void series2CheckBoxChecked(); - void series3CheckBoxChecked(); - void series4CheckBoxChecked(); - void series5CheckBoxChecked(); - void series6CheckBoxChecked(); - void series7CheckBoxChecked(); - void themeIndexChanged(int index); - void seriesHovered(QPointF point, bool state); - void seriesClicked(const QPointF &point); - void backgroundIndexChanged(int index); - void plotAreaIndexChanged(int index); - -private: - enum AxisMode { - AxisModeNone, - AxisModeValue, - AxisModeLogValue, - AxisModeDateTime, - AxisModeCategory - }; - - void initXYValueChart(); - void setAngularAxis(AxisMode mode); - void setRadialAxis(AxisMode mode); - - void applyRanges(); - void applyCategories(); - - Ui::MainWindow *ui; - - int m_angularTickCount; - int m_radialTickCount; - qreal m_labelsAngle; - qreal m_angularMin; - qreal m_angularMax; - qreal m_radialMin; - qreal m_radialMax; - bool m_angularShadesVisible; - bool m_radialShadesVisible; - bool m_labelsVisible; - bool m_titleVisible; - bool m_gridVisible; - bool m_arrowVisible; - QBrush *m_angularShadesBrush; - QBrush *m_radialShadesBrush; - QBrush *m_labelBrush; - QBrush *m_titleBrush; - QBrush *m_backgroundBrush; - QBrush *m_plotAreaBackgroundBrush; - QPen *m_angularShadesPen; - QPen *m_radialShadesPen; - QPen *m_labelPen; - QPen *m_titlePen; - QPen *m_gridPen; - QPen *m_arrowPen; - QPen *m_backgroundPen; - QPen *m_plotAreaBackgroundPen; - QString m_labelFormat; - QFont m_currentLabelFont; - QFont m_currentTitleFont; - QChart::AnimationOptions m_animationOptions; - QString m_angularTitle; - QString m_radialTitle; - qreal m_base; - QString m_dateFormat; - - QPolarChart *m_chart; - QAbstractAxis *m_angularAxis; - QAbstractAxis *m_radialAxis; - AxisMode m_angularAxisMode; - AxisMode m_radialAxisMode; - bool m_moreCategories; - - QScatterSeries *m_series1; - QLineSeries *m_series2; - QLineSeries *m_series3; - QLineSeries *m_series4; - QAreaSeries *m_series5; - QSplineSeries *m_series6; - QScatterSeries *m_series7; -}; - -#endif // MAINWINDOW_H diff --git a/tests/polarcharttest/mainwindow.ui b/tests/polarcharttest/mainwindow.ui deleted file mode 100644 index cc4b1994..00000000 --- a/tests/polarcharttest/mainwindow.ui +++ /dev/null @@ -1,1002 +0,0 @@ - - - MainWindow - - - - 0 - 0 - 1193 - 956 - - - - MainWindow - - - - - - - - - - - 0 - 0 - - - - - 200 - 0 - - - - Settings - - - - - 110 - 90 - 71 - 22 - - - - - - - 10 - 90 - 101 - 16 - - - - Radial Tick count - - - - - - 10 - 120 - 101 - 16 - - - - Angular Tick count - - - - - - 110 - 120 - 71 - 22 - - - - - - - 110 - 150 - 71 - 22 - - - - -9999 - - - 9999 - - - 5 - - - - - - 10 - 150 - 101 - 16 - - - - Label angles - - - - - - 10 - 180 - 101 - 16 - - - - Angular min - - - - - - 10 - 210 - 101 - 16 - - - - Angular max - - - - - - 90 - 180 - 91 - 22 - - - - 5 - - - -999999999.000000000000000 - - - 999999999.000000000000000 - - - 10.000000000000000 - - - - - - 90 - 210 - 91 - 22 - - - - 5 - - - -999999999.000000000000000 - - - 999999999.000000000000000 - - - 10.000000000000000 - - - - - - 90 - 270 - 91 - 22 - - - - 5 - - - -999999999.000000000000000 - - - 999999999.000000000000000 - - - 10.000000000000000 - - - - - - 90 - 240 - 91 - 22 - - - - 5 - - - -999999999.000000000000000 - - - 999999999.000000000000000 - - - 10.000000000000000 - - - - - - 10 - 270 - 101 - 16 - - - - Radial max - - - - - - 10 - 240 - 101 - 16 - - - - Radial min - - - - - - 10 - 300 - 171 - 22 - - - - - No angular shades - - - - - Gray angular shades - - - - - Yellow ang. shades + custom pen - - - - - - - 10 - 330 - 171 - 22 - - - - - No radial shades - - - - - Green radial shades - - - - - Blue rad. shades + custom pen - - - - - - - 10 - 360 - 101 - 16 - - - - Label format - - - - - - 100 - 360 - 81 - 20 - - - - - - - 10 - 390 - 101 - 16 - - - - Label font size - - - - - - 10 - 420 - 171 - 22 - - - - - - - 100 - 390 - 81 - 22 - - - - -100000 - - - 100000 - - - - - - 10 - 480 - 171 - 22 - - - - - No animations - - - - - Series animation - - - - - Grid animation - - - - - All animations - - - - - - - 10 - 450 - 171 - 22 - - - - 1 - - - - No labels - - - - - Black label - - - - - White label + blue pen - - - - - - - 100 - 510 - 81 - 22 - - - - -100000 - - - 100000 - - - - - - 10 - 570 - 171 - 22 - - - - - 0 - 0 - - - - 3 - - - - Invisible empty title - - - - - Visible empty title - - - - - Invisible title - - - - - Black title - - - - - White title + blue pen - - - - - - - 10 - 540 - 171 - 22 - - - - - - - 10 - 510 - 101 - 16 - - - - Title font size - - - - - - 10 - 600 - 171 - 22 - - - - - 0 - 0 - - - - 1 - - - - Invisible grid - - - - - Black grid - - - - - Custom grid pen - - - - - - - 10 - 630 - 171 - 22 - - - - - 0 - 0 - - - - 1 - - - - Invisible arrow - - - - - Black arrow - - - - - Custom arrow pen - - - - - - - 10 - 20 - 171 - 22 - - - - 1 - - - - No Angular Axis - - - - - Angular Value Axis - - - - - Angular Log Axis - - - - - Angular DateTime Axis - - - - - Angular Category Axis - - - - - - - 10 - 50 - 171 - 22 - - - - 1 - - - - No Radial Axis - - - - - Radial Value Axis - - - - - Radial Log Axis - - - - - Radial DateTime Axis - - - - - Radial Category Axis - - - - - - - 10 - 660 - 101 - 16 - - - - Log Base - - - - - - 90 - 660 - 91 - 22 - - - - 5 - - - -999999999.000000000000000 - - - 999999999.000000000000000 - - - 8.000000000000000 - - - - - - 10 - 690 - 91 - 16 - - - - Nice Numbers - - - - - - 100 - 710 - 81 - 20 - - - - - - - 10 - 710 - 101 - 16 - - - - DateTime format - - - - - - 100 - 690 - 141 - 16 - - - - More Categories - - - - - - 10 - 730 - 31 - 16 - - - - 1 - - - - - - 40 - 730 - 31 - 16 - - - - 2 - - - - - - 70 - 730 - 31 - 16 - - - - 3 - - - - - - 10 - 750 - 31 - 16 - - - - 4 - - - - - - 40 - 750 - 31 - 16 - - - - 5 - - - - - - 70 - 750 - 31 - 16 - - - - 6 - - - - - - 100 - 740 - 31 - 16 - - - - 7 - - - - - - 10 - 770 - 171 - 22 - - - - - 0 - 0 - - - - 0 - - - - Theme: Light - - - - - Theme: Blue Cerulean - - - - - Theme: Dark - - - - - Theme: Brown Sand - - - - - Theme: Blue Ncs - - - - - Theme: High Contrast - - - - - Theme: Blue Icy - - - - - Theme: Qt - - - - - - - 10 - 800 - 171 - 16 - - - - Hover coordinates here! - - - - - - 10 - 820 - 171 - 22 - - - - - 0 - 0 - - - - 0 - - - - Background: White - - - - - Background: Blue - - - - - Background: Yellow + Black Border - - - - - - - 10 - 850 - 171 - 22 - - - - - 0 - 0 - - - - 0 - - - - PlotArea: Transparent - - - - - PlotArea: Magenta - - - - - PlotArea: Gray + Red Border - - - - - - - - - - - 0 - 0 - 1193 - 21 - - - - - - TopToolBarArea - - - false - - - - - - - - ChartView - QGraphicsView -
chartview.h
-
-
- - -
diff --git a/tests/polarcharttest/polarcharttest.pro b/tests/polarcharttest/polarcharttest.pro deleted file mode 100644 index 0c892c84..00000000 --- a/tests/polarcharttest/polarcharttest.pro +++ /dev/null @@ -1,19 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the test.pri file!" ) -} - -QT += core gui widgets - -TARGET = polarcharttest -TEMPLATE = app -INCLUDEPATH += . - - -SOURCES += main.cpp \ - mainwindow.cpp \ - chartview.cpp - -HEADERS += mainwindow.h \ - chartview.h - -FORMS += mainwindow.ui diff --git a/tests/presenterchart/chartview.cpp b/tests/presenterchart/chartview.cpp deleted file mode 100644 index be01933c..00000000 --- a/tests/presenterchart/chartview.cpp +++ /dev/null @@ -1,100 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "chartview.h" -#include -#include -#include -#include -#include - -ChartView::ChartView(QChart *chart, QWidget *parent) - : QChartView(chart, parent), - m_index(-1), - m_chart(chart) -{ - m_chart->setTitle("Charts presenter"); - m_chart->setDropShadowEnabled(false); - QObject::connect(&m_timer, SIGNAL(timeout()), this, SLOT(handleTimeout())); - m_timer.setInterval(3000); - - //![1] - QLineSeries *series0 = new QLineSeries(); - series0->setName("line"); - - QScatterSeries *series1 = new QScatterSeries(); - series1->setName("scatter"); - - QSplineSeries *series2 = new QSplineSeries(); - series2->setName("spline"); - - QAreaSeries *series3 = new QAreaSeries(series0); - series3->setName("area"); - //![1] - - //![2] - int numPoints = 10; - - for (int x = 0; x <= numPoints; ++x) { - qreal y = qrand() % 100; - series0->append(x, y); - series1->append(x, y); - series2->append(x, y); - } - //![2] - - //![3] - m_series << series0; - m_titles << m_chart->title() + ": LineChart"; - m_series << series1; - m_titles << m_chart->title() + ": ScatterChart"; - m_series << series2; - m_titles << m_chart->title() + ": SplineChart"; - m_series << series3; - m_titles << m_chart->title() + ": AreaChart"; - //![3] - - m_timer.start(); - handleTimeout(); -} - -ChartView::~ChartView() -{ - if (m_series.size() == 0) - return; - m_chart->removeSeries(m_series.at(m_index)); - m_series.removeLast(); //remove QAreaSeries instance since they will be deleted when QLineSeries instance is gone - qDeleteAll(m_series); -} - -//![4] -void ChartView::handleTimeout() -{ - if (m_series.size() == 0) - return; - if (m_index >= 0) - m_chart->removeSeries(m_series.at(m_index)); - m_index++; - m_index = m_index % m_series.size(); - m_chart->addSeries(m_series.at(m_index)); - m_chart->setTitle(m_titles.at(m_index)); - m_chart->createDefaultAxes(); -} -//![4] diff --git a/tests/presenterchart/chartview.h b/tests/presenterchart/chartview.h deleted file mode 100644 index 99d8c65a..00000000 --- a/tests/presenterchart/chartview.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef CHARTVIEW_H -#define CHARTVIEW_H - -#include -#include - -QT_CHARTS_USE_NAMESPACE - -//![1] -class ChartView: public QChartView -{ - Q_OBJECT -public: - ChartView(QChart *chart, QWidget *parent = 0); - virtual ~ChartView(); - -public slots: - void handleTimeout(); - -private: - QTimer m_timer; - QList m_series; - QStringList m_titles; - int m_index; - QChart *m_chart; -}; -//![1] - -#endif /* CHARTVIEW_H */ diff --git a/tests/presenterchart/main.cpp b/tests/presenterchart/main.cpp deleted file mode 100644 index 22a45025..00000000 --- a/tests/presenterchart/main.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "chartview.h" -#include -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - QMainWindow window; - QChart *chart = new QChart(); - ChartView chartView(chart, &window); - chartView.setRenderHint(QPainter::Antialiasing); - chart->setAnimationOptions(QChart::SeriesAnimations); - window.setCentralWidget(&chartView); - window.resize(400, 300); - window.show(); - return a.exec(); -} diff --git a/tests/presenterchart/presenterchart.pro b/tests/presenterchart/presenterchart.pro deleted file mode 100644 index bd3367d5..00000000 --- a/tests/presenterchart/presenterchart.pro +++ /dev/null @@ -1,8 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the examples.pri file!" ) -} -TARGET = presenterchart -HEADERS += chartview.h -SOURCES += main.cpp chartview.cpp - -QT += widgets diff --git a/tests/qmlchartaxis/main.cpp b/tests/qmlchartaxis/main.cpp deleted file mode 100644 index 5c5923c7..00000000 --- a/tests/qmlchartaxis/main.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 -#include -#include -#include - -int main(int argc, char *argv[]) -{ - // Qt Charts uses Qt Graphics View Framework for drawing, therefore QApplication must be used. - QApplication app(argc, argv); - - QQuickView viewer; - - // The following are needed to make examples run without having to install the module - // in desktop environments. -#ifdef Q_OS_WIN - QString extraImportPath(QStringLiteral("%1/../../../../%2")); -#else - QString extraImportPath(QStringLiteral("%1/../../../%2")); -#endif - viewer.engine()->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(), - QString::fromLatin1("qml"))); - QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close); - - viewer.setSource(QUrl("qrc:/qml/qmlchartaxis/main.qml")); - viewer.show(); - - return app.exec(); -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/Button.qml b/tests/qmlchartaxis/qml/qmlchartaxis/Button.qml deleted file mode 100644 index 61df081d..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/Button.qml +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - id: button - height: 25 - width: 140 - color: unpressedColor - radius: 5 - property color unpressedColor: "#afafaf" - - property string text: "button" - signal clicked - - Text { - id: buttonText - anchors.centerIn: parent - text: button.text - } - - MouseArea { - anchors.fill: parent - onClicked: { - button.clicked(); - } - onPressedChanged: { - if (pressed) { - button.color = "#efefef"; - } else { - button.color = unpressedColor; - } - } - onPressAndHold: { - repeatTimer.start(); - } - onReleased: { - repeatTimer.stop(); - } - } - - Timer { - id: repeatTimer - interval: 140 - repeat: true - triggeredOnStart: false - running: false - onTriggered: { - button.clicked(); - } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml b/tests/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml deleted file mode 100644 index 69250a39..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/ChartAxes.qml +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "chart axes" - - // TODO: Do we need a property for orientation or properties "axisX" and "axisY" on ChartView - // to make an axis the default axis for all series with no other axes defined...? -// ValueAxis { -// orientation: ValueAxis.AxisX -// min: 0 -// max: 10 -// } -// axisX: ValueAxis { -// min: 0 -// max: 10 -// } - // ...Now that we don't have this implementation, the following axes won't have any affect: - ValueAxis { - min: 0 - max: 10 - } - ValueAxis { - min: 0 - max: 5 - } - - LineSeries { - name: "line series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - name: "scatter series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - -// Component.onCompleted: { -// // You can also set the axes dynamically -// chartView.setAxisX(axisX, scatter); -// } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml b/tests/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml deleted file mode 100644 index 524e3314..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/ChartAxesRevert.qml +++ /dev/null @@ -1,58 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "chart axes reverted" - - ValueAxis { - min: 0 - max: 10 - } - ValueAxis { - min: 0 - max: 5 - } - - ScatterSeries { - name: "scatter series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - LineSeries { - name: "line series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml b/tests/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml deleted file mode 100644 index 9e24b47b..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/ConfiguringDynamically.qml +++ /dev/null @@ -1,74 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "configuring dynamically" - id: chartView - property int index: 0 - - Timer { - interval: 1000 - repeat: true - running: true - onTriggered: { - switch (index) { - case 0: - lineSeries.axisX.max = 6; - lineSeries.axisY.max = 6; - break; - case 1: - scatterSeries.axisX.max = 10; - scatterSeries.axisY.max = 10; - break; - default: - chartView.axisX().max = 4; - chartView.axisY().max = 4; - } - index = (index + 1) % 3; - } - } - - LineSeries { - id: lineSeries - name: "line series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - id: scatterSeries - name: "scatter series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml b/tests/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml deleted file mode 100644 index 209ef372..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/CreatingDynamically.qml +++ /dev/null @@ -1,68 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "creating dyn. new series" - property int index: 0 - - Timer { - interval: 1000 - repeat: true - running: true - onTriggered: { - switch (index) { - case 0: - var count = chartView.count; - var line = chartView.createSeries(ChartView.SeriesTypeLine, "line"); - line.append(0, 0); - line.append(1, 1); - line.append(2, 2); - line.append(3, 3); - line.append(4, 4); - break; - case 1: - chartView.axisX().min = 0; - chartView.axisX().max = 4.5; - chartView.axisY().min = 0; - chartView.axisY().max = 4.5; - break; - case 2: - var scatter = chartView.createSeries(ChartView.SeriesTypeScatter, "scatter"); - scatter.append(0, 0); - scatter.append(0.5, 1); - scatter.append(1, 2); - scatter.append(1.5, 3); - scatter.append(2, 4); - scatter.append(1, 1); - scatter.append(2, 2); - scatter.append(3, 3); - scatter.append(4, 4); - break; - default: - chartView.removeAllSeries(); - } - index = (index + 1) % 4; - } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml b/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml deleted file mode 100644 index 2cab44fd..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAndUserDefined.qml +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "default + user defined" - - ValueAxis { - id: axisX - min: 0 - max: 6 - } - - ValueAxis { - id: axisY - min: 0 - max: 6 - } - - LineSeries { - name: "line series 1" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - name: "scatter series" - axisX: axisX - axisY: axisY - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - LineSeries { - name: "line series 2" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml b/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml deleted file mode 100644 index f06dd7cf..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxes.qml +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "default axes" - - LineSeries { - name: "line series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - name: "scatter series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml b/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml deleted file mode 100644 index 67685082..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/DefaultAxesRevert.qml +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "default axes" - - ScatterSeries { - name: "scatter series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - LineSeries { - name: "line series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/Legacy.qml b/tests/qmlchartaxis/qml/qmlchartaxis/Legacy.qml deleted file mode 100644 index caafabb7..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/Legacy.qml +++ /dev/null @@ -1,56 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "Deprecated code" - property int index: 0 - - Component.onCompleted: { - // Calling createDefaultAxes in onCompleted is now deprecated. It needs to be tested, - // though, because some application may still use it - chartView.createDefaultAxes(); - } - - LineSeries { - name: "line series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - name: "scatter series" - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml b/tests/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml deleted file mode 100644 index c9ac5d92..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/SeriesSpecificDynamic.qml +++ /dev/null @@ -1,82 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "series specific dynamic axes" - id: chartView - property int index: 0 - - Timer { - interval: 1000 - repeat: true - running: true - onTriggered: { - switch (index) { - case 0: - lineAxisX.max = 6; - lineAxisY.max = 6; - scatterAxisX.max = 10; - scatterAxisY.max = 10; - break; - case 1: - lineAxisX.max = 10; - lineAxisY.max = 10; - scatterAxisX.max = 6; - scatterAxisY.max = 6; - break; - default: - chartView.axisX().max = 4; - chartView.axisY().max = 4; - } - index = (index + 1) % 3; - } - } - - LineSeries { - id: lineSeries - name: "line series" - axisX: ValueAxis { id: lineAxisX } - axisY: ValueAxis { id: lineAxisY } - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - id: scatterSeries - name: "scatter series" - axisX: ValueAxis { id: scatterAxisX } - axisY: ValueAxis { id: scatterAxisY } - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml b/tests/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml deleted file mode 100644 index db11c9ee..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/SwitchingDynamically.qml +++ /dev/null @@ -1,71 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "switching axes dynamically" - - Timer { - interval: 1000 - repeat: true - running: true - onTriggered: { - //console.log("current axisX: " + lineSeries.axisX + " 1: " + valueAxis1 + " 2: " +valueAxis2); - - // Note: an axis is destroyed if it is not used anymore - if (lineSeries.axisX == valueAxis1) - lineSeries.axisX = valueAxis2; - else if (lineSeries.axisX == valueAxis2) - lineSeries.axisX = valueAxis3; - } - } - - ValueAxis { - id: valueAxis1 - min: 0 - max: 5 - } - - ValueAxis { - id: valueAxis2 - min: 1 - max: 6 - } - - ValueAxis { - id: valueAxis3 - min: 2 - max: 7 - } - - LineSeries { - id: lineSeries - name: "line series" - axisX: valueAxis1 - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml b/tests/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml deleted file mode 100644 index f87c18cb..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/UserDefined.qml +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "user defined" - - ValueAxis { - id: axisX - min: 0 - max: 6 - } - - ValueAxis { - id: axisY - min: 0 - max: 6 - } - - LineSeries { - name: "line series" - axisX: axisX - axisY: axisY - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - ScatterSeries { - name: "scatter series" - axisX: axisX - axisY: axisY - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml b/tests/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml deleted file mode 100644 index ea625c22..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/UserDefinedRevert.qml +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "user defined reverted" - - ValueAxis { - id: axisX - min: 0 - max: 6 - } - - ValueAxis { - id: axisY - min: 0 - max: 6 - } - - ScatterSeries { - name: "scatter series" - axisX: axisX - axisY: axisY - XYPoint { x: 0; y: 0 } - XYPoint { x: 0.5; y: 1 } - XYPoint { x: 1; y: 2 } - XYPoint { x: 1.5; y: 3 } - XYPoint { x: 2; y: 4 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } - - LineSeries { - name: "line series" - axisX: axisX - axisY: axisY - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 2 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 4 } - } -} diff --git a/tests/qmlchartaxis/qml/qmlchartaxis/main.qml b/tests/qmlchartaxis/qml/qmlchartaxis/main.qml deleted file mode 100644 index f973bf7a..00000000 --- a/tests/qmlchartaxis/qml/qmlchartaxis/main.qml +++ /dev/null @@ -1,96 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - id: main - width: 500 - height: 400 - property string viewName: "DefaultAxes" - - Row { - anchors.fill: parent - anchors.topMargin: 10 - - Loader { - id: chartLoader - width: parent.width - buttonColumn.width - height: parent.height - source: viewName + ".qml" - } - - Column { - id: buttonColumn - width: 150 - height: parent.height - spacing: 5 - - Button { - text: "Default axes" - onClicked: viewName = "DefaultAxes"; - } - Button { - text: "Default axes reverted" - onClicked: viewName = "DefaultAxesRevert"; - } - Button { - text: "User defined" - onClicked: viewName = "UserDefined"; - } - Button { - text: "User defined reverted" - onClicked: viewName = "UserDefinedRevert"; - } - Button { - text: "Chart axes" - onClicked: viewName = "ChartAxes"; - } - Button { - text: "Chart axes reverted" - onClicked: viewName = "ChartAxesRevert"; - } - Button { - text: "Configuring dynamically" - onClicked: viewName = "ConfiguringDynamically"; - } - Button { - text: "Series specific dynamic" - onClicked: viewName = "SeriesSpecificDynamic"; - } - Button { - text: "Creating dynamically" - onClicked: viewName = "CreatingDynamically"; - } - Button { - text: "Switching dynamically" - onClicked: viewName = "SwitchingDynamically"; - } - Button { - text: "Default + User defined" - onClicked: viewName = "DefaultAndUserDefined"; - } - Button { - text: "Legacy" - onClicked: viewName = "Legacy"; - } - } - } -} diff --git a/tests/qmlchartaxis/qmlchartaxis.pro b/tests/qmlchartaxis/qmlchartaxis.pro deleted file mode 100644 index 0abc1d4a..00000000 --- a/tests/qmlchartaxis/qmlchartaxis.pro +++ /dev/null @@ -1,8 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the test.pri file!" ) -} - -RESOURCES += resources.qrc -SOURCES += main.cpp -OTHER_FILES += qml/qmlchartaxis/* - diff --git a/tests/qmlchartaxis/resources.qrc b/tests/qmlchartaxis/resources.qrc deleted file mode 100644 index 2f9f4b67..00000000 --- a/tests/qmlchartaxis/resources.qrc +++ /dev/null @@ -1,18 +0,0 @@ - - - qml/qmlchartaxis/main.qml - qml/qmlchartaxis/Button.qml - qml/qmlchartaxis/DefaultAxes.qml - qml/qmlchartaxis/DefaultAxesRevert.qml - qml/qmlchartaxis/UserDefined.qml - qml/qmlchartaxis/UserDefinedRevert.qml - qml/qmlchartaxis/ChartAxes.qml - qml/qmlchartaxis/ChartAxesRevert.qml - qml/qmlchartaxis/ConfiguringDynamically.qml - qml/qmlchartaxis/SeriesSpecificDynamic.qml - qml/qmlchartaxis/CreatingDynamically.qml - qml/qmlchartaxis/SwitchingDynamically.qml - qml/qmlchartaxis/DefaultAndUserDefined.qml - qml/qmlchartaxis/Legacy.qml - - diff --git a/tests/qmlchartproperties/main.cpp b/tests/qmlchartproperties/main.cpp deleted file mode 100644 index 752724be..00000000 --- a/tests/qmlchartproperties/main.cpp +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 -#include -#include -#include - -int main(int argc, char *argv[]) -{ - // Qt Charts uses Qt Graphics View Framework for drawing, therefore QApplication must be used. - QApplication app(argc, argv); - - QQuickView viewer; - - // The following are needed to make examples run without having to install the module - // in desktop environments. -#ifdef Q_OS_WIN - QString extraImportPath(QStringLiteral("%1/../../../../%2")); -#else - QString extraImportPath(QStringLiteral("%1/../../../%2")); -#endif - viewer.engine()->addImportPath(extraImportPath.arg(QGuiApplication::applicationDirPath(), - QString::fromLatin1("qml"))); - QObject::connect(viewer.engine(), &QQmlEngine::quit, &viewer, &QWindow::close); - - viewer.setSource(QUrl("qrc:/qml/qmlchartproperties/main.qml")); - viewer.setResizeMode(QQuickView::SizeRootObjectToView); - viewer.show(); - - return app.exec(); -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml deleted file mode 100644 index 069e17de..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/AreaChart.qml +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "area series" - anchors.fill: parent - animationOptions: ChartView.SeriesAnimations - - property variant series: areaSeries - - AreaSeries { - id: areaSeries - name: "area 1" - - upperSeries: LineSeries { - XYPoint { x: 0; y: 1 } - XYPoint { x: 1; y: 1 } - XYPoint { x: 2; y: 3 } - XYPoint { x: 3; y: 3 } - XYPoint { x: 4; y: 2 } - XYPoint { x: 5; y: 0 } - XYPoint { x: 6; y: 2 } - XYPoint { x: 7; y: 1 } - XYPoint { x: 8; y: 2 } - XYPoint { x: 9; y: 1 } - XYPoint { x: 10; y: 3 } - XYPoint { x: 11; y: 3 } - } - lowerSeries: LineSeries { - XYPoint { x: 0; y: 0 } - XYPoint { x: 1; y: 0 } - XYPoint { x: 2; y: 0 } - XYPoint { x: 3; y: 0 } - XYPoint { x: 4; y: 0 } - XYPoint { x: 5; y: 0 } - XYPoint { x: 6; y: 0 } - XYPoint { x: 7; y: 0 } - XYPoint { x: 8; y: 0 } - XYPoint { x: 9; y: 0 } - XYPoint { x: 10; y: 0 } - XYPoint { x: 11; y: 0 } - } - - pointLabelsFormat: "@xPoint, @yPoint"; - - onNameChanged: console.log(name + ".onNameChanged: " + name); - onVisibleChanged: console.log(name + ".onVisibleChanged: " + visible); - onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onSelected: console.log(name + ".onSelected"); - onColorChanged: console.log(name + ".onColorChanged: " + color); - onBorderColorChanged: console.log(name + ".onBorderColorChanged: " + borderColor); - onBorderWidthChanged: console.log(name + ".onBorderChanged: " + borderWidth); -// onCountChanged: console.log(name + ".onCountChanged: " + count); - onHovered: console.log("lineSeries.onHovered:" + point.x + "," + point.y + " " + state); - onPointLabelsVisibilityChanged: console.log(name + ".onPointLabelsVisibilityChanged: " - + visible); - onPointLabelsFormatChanged: console.log(name + ".onPointLabelsFormatChanged: " - + format); - onPointLabelsFontChanged: console.log(name + ".onPointLabelsFontChanged: " - + font.family); - onPointLabelsColorChanged: console.log(name + ".onPointLabelsColorChanged: " - + color); - } - - AreaSeries { - name: "area 2" - - upperSeries: LineSeries { - XYPoint { x: 0; y: 0.5 } - XYPoint { x: 1; y: 1.5 } - XYPoint { x: 2; y: 0.3 } - XYPoint { x: 3; y: 1.5 } - XYPoint { x: 4; y: 0.1 } - XYPoint { x: 5; y: 0.3 } - XYPoint { x: 6; y: 1.2 } - XYPoint { x: 7; y: 1.3 } - XYPoint { x: 8; y: 0.2 } - XYPoint { x: 9; y: 0.1 } - XYPoint { x: 10; y: 3.2 } - XYPoint { x: 11; y: 4.6 } - } - - onNameChanged: console.log(name + ".onNameChanged: " + name); - onVisibleChanged: console.log(name + ".onVisibleChanged: " + visible); - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onSelected: console.log(name + ".onSelected"); - onColorChanged: console.log(name + ".onColorChanged: " + color); - onBorderColorChanged: console.log(name + ".onBorderColorChanged: " + borderColor); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml deleted file mode 100644 index 168dc957..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/AreaEditor.qml +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Flow { - id: flow - spacing: 5 - flow: Flow.TopToBottom - property variant series - - Button { - text: "visible" - onClicked: series.visible = !series.visible; - } - Button { - text: "opacity +" - onClicked: series.opacity += 0.1; - } - Button { - text: "opacity -" - onClicked: series.opacity -= 0.1; - } - Button { - text: "color" - onClicked: series.color = main.nextColor(); - } - Button { - text: "borderColor" - onClicked: series.borderColor = main.nextColor(); - } - Button { - text: series != undefined ? "borderWidth + (" + series.borderWidth + ")" : "" - onClicked: series.borderWidth += 0.5; - } - Button { - text: series != undefined ? "borderWidth - (" + series.borderWidth + ")" : "" - onClicked: series.borderWidth -= 0.5; - } - Button { - text: "point labels visible" - onClicked: series.pointLabelsVisible = !series.pointLabelsVisible; - } - Button { - text: "point labels format" - onClicked: { - if (series.pointLabelsFormat === "@xPoint, @yPoint") - series.pointLabelsFormat = "(@xPoint)" - else - series.pointLabelsFormat = "@xPoint, @yPoint" - } - } - Button { - text: "point labels font" - onClicked: { - if (series.pointLabelsFont.family === "Times") - series.pointLabelsFont.family = "Courier"; - else - series.pointLabelsFont.family = "Times"; - } - } - Button { - text: "point labels color" - onClicked: series.pointLabelsColor = main.nextColor(); - } - Button { - id: upperButton - text: "upper series" - unpressedColor: "#79bd8f" - onClicked: { - lineEditor.visible = true; - color = "#00a388"; - lowerButton.color = "#79bd8f"; - lineEditor.series = series.upperSeries; - } - } - Button { - id: lowerButton - text: "lower series" - unpressedColor: "#79bd8f" - onClicked: { - lineEditor.visible = true; - color = "#00a388"; - upperButton.color = "#79bd8f"; - lineEditor.series = series.lowerSeries; - } - } - LineEditor { - id: lineEditor - visible: false - } - - onSeriesChanged: lineEditor.series = series.upperSeries; -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/BarChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/BarChart.qml deleted file mode 100644 index ad088646..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/BarChart.qml +++ /dev/null @@ -1,76 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "Bar series" - anchors.fill: parent - theme: ChartView.ChartThemeLight - legend.alignment: Qt.AlignBottom - animationOptions: ChartView.SeriesAnimations - - property variant series: mySeries - - - BarSeries { - id: mySeries - name: "bar" - labelsFormat: "@value"; - axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } - BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] - onClicked: console.log("barset.onClicked: " + index); - onHovered: console.log("barset.onHovered: " + status + " " + index); - onPenChanged: console.log("barset.onPenChanged: " + pen); - onBrushChanged: console.log("barset.onBrushChanged: " + brush); - onLabelChanged: console.log("barset.onLabelChanged: " + label); - onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); - onColorChanged: console.log("barset.onColorChanged: " + color); - onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); - onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); - onCountChanged: console.log("barset.onCountChanged: " + count); - onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); - onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); - onValueChanged: console.log("barset.onValuesChanged: " + index); - } - BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } - BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } - - onNameChanged: console.log("barSeries.onNameChanged: " + series.name); - onVisibleChanged: console.log("barSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("barSeries.onOpacityChanged: " + opacity); - onClicked: console.log("barSeries.onClicked: " + barset + " " + index); - onHovered: console.log("barSeries.onHovered: " + barset + " " + status - + " " + index); - onLabelsVisibleChanged: console.log("barSeries.onLabelsVisibleChanged: " + series.labelsVisible); - onCountChanged: console.log("barSeries.onCountChanged: " + count); - onLabelsFormatChanged: console.log("barSeries.onLabelsFormatChanged: " + format); - onLabelsPositionChanged: console.log("barSeries.onLabelsPositionChanged: " + series.labelsPosition); - - function changeLabelsPosition() { - if (labelsPosition === BarSeries.LabelsCenter) - labelsPosition = BarSeries.LabelsInsideEnd; - else - labelsPosition = BarSeries.LabelsCenter; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml deleted file mode 100644 index cdd847a5..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/BarEditor.qml +++ /dev/null @@ -1,199 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Row { - anchors.fill: parent - spacing: 5 - property variant series - - // buttons for selecting the edited object: series, barset or label - Flow { - spacing: 5 - flow: Flow.TopToBottom - Button { - id: seriesButton - text: "series" - unpressedColor: "#79bd8f" - onClicked: { - seriesFlow.visible = true; - setFlow.visible = false; - labelsFlow.visible = false; - color = "#00a388"; - setButton.color = "#79bd8f"; - labelButton.color = "#79bd8f"; - } - } - Button { - id: setButton - text: "BarSet" - unpressedColor: "#79bd8f" - onClicked: { - seriesFlow.visible = false; - setFlow.visible = true; - labelsFlow.visible = false; - color = "#00a388"; - seriesButton.color = "#79bd8f"; - labelButton.color = "#79bd8f"; - } - } - Button { - id: labelButton - text: "label" - unpressedColor: "#79bd8f" - onClicked: { - seriesFlow.visible = false; - setFlow.visible = false; - labelsFlow.visible = true; - color = "#00a388"; - seriesButton.color = "#79bd8f"; - setButton.color = "#79bd8f"; - } - } - } - - // Buttons for editing series - Flow { - id: seriesFlow - spacing: 5 - flow: Flow.TopToBottom - visible: false - - Button { - text: "visible" - onClicked: series.visible = !series.visible; - } - Button { - text: "opacity +" - onClicked: series.opacity += 0.1; - } - Button { - text: "opacity -" - onClicked: series.opacity -= 0.1; - } - Button { - text: "bar width +" - onClicked: series.barWidth += 0.1; - } - Button { - text: "bar width -" - onClicked: series.barWidth -= 0.1; - } - } - - // Buttons for editing sets - Flow { - id: setFlow - spacing: 5 - flow: Flow.TopToBottom - visible: false - - Button { - text: "append set" - onClicked: { - var count = series.count; - series.append("set" + count, [0, 0.1 * count, 0.2 * count, 0.3 * count, 0.4 * count, 0.5 * count, 0.6 * count]); - } - } - Button { - text: "insert set" - onClicked: { - var count = series.count; - series.insert(count - 1, "set" + count, [0, 0.1 * count, 0.2 * count, 0.3 * count, 0.4 * count, 0.5 * count, 0.6 * count]); - } - } - Button { - text: "remove set" - onClicked: series.remove(series.at(series.count - 1)); - } - Button { - text: "clear sets" - onClicked: series.clear(); - } - - Button { - text: "set 1 append" - onClicked: series.at(0).append(series.at(0).count + 1); - } - Button { - text: "set 1 replace" - onClicked: series.at(0).replace(series.at(0).count - 1, series.at(0).at(series.at(0).count - 1) + 1.5); - } - Button { - text: "set 1 remove" - onClicked: series.at(0).remove(series.at(0).count - 1); - } - - Button { - text: "set 1 color" - onClicked: series.at(0).color = main.nextColor(); - } - Button { - text: "set 1 border color" - onClicked: series.at(0).borderColor = main.nextColor(); - } - Button { - text: "set 1 borderWidth +" - onClicked: series.at(0).borderWidth += 0.5; - } - Button { - text: "set 1 borderWidth -" - onClicked: series.at(0).borderWidth -= 0.5; - } - } - - - Flow { - id: labelsFlow - spacing: 5 - flow: Flow.TopToBottom - visible: false - - Button { - text: "labels visible" - onClicked: series.labelsVisible = !series.labelsVisible; - } - Button { - text: "labels format" - onClicked: { - if (series.labelsFormat === "@value") - series.labelsFormat = "@value%" - else - series.labelsFormat = "@value" - } - } - Button { - text: "labels position" - onClicked: series.changeLabelsPosition(); - } - Button { - text: "set 1 label color" - onClicked: series.at(0).labelColor = main.nextColor(); - } - FontEditor { - id: fontEditor - fontDescription: "label" - function editedFont() { - return series.at(0).labelFont; - } - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/Button.qml b/tests/qmlchartproperties/qml/qmlchartproperties/Button.qml deleted file mode 100644 index 61df081d..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/Button.qml +++ /dev/null @@ -1,70 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - id: button - height: 25 - width: 140 - color: unpressedColor - radius: 5 - property color unpressedColor: "#afafaf" - - property string text: "button" - signal clicked - - Text { - id: buttonText - anchors.centerIn: parent - text: button.text - } - - MouseArea { - anchors.fill: parent - onClicked: { - button.clicked(); - } - onPressedChanged: { - if (pressed) { - button.color = "#efefef"; - } else { - button.color = unpressedColor; - } - } - onPressAndHold: { - repeatTimer.start(); - } - onReleased: { - repeatTimer.stop(); - } - } - - Timer { - id: repeatTimer - interval: 140 - repeat: true - triggeredOnStart: false - running: false - onTriggered: { - button.clicked(); - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/Chart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/Chart.qml deleted file mode 100644 index 3f30ea44..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/Chart.qml +++ /dev/null @@ -1,110 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chartView - title: "Chart Title" - anchors.fill: parent - property variant chart: chartView - - LineSeries { - name: "line" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1.1; y: 2.1 } - XYPoint { x: 1.9; y: 3.3 } - XYPoint { x: 2.1; y: 2.1 } - XYPoint { x: 2.9; y: 4.9 } - XYPoint { x: 3.4; y: 3.0 } - XYPoint { x: 4.1; y: 3.3 } - } - - onVisibleChanged: console.log("chart.onVisibleChanged: " + visible); - onTitleColorChanged: console.log("chart.onTitleColorChanged: " + color); - onBackgroundColorChanged: console.log("chart.onBackgroundColorChanged: " + chart.backgroundColor); - onDropShadowEnabledChanged: console.log("chart.onDropShadowEnabledChanged: " + enabled); - onBackgroundRoundnessChanged: console.log("chart.onBackgroundRoundnessChanged: " + diameter); - onSeriesAdded: console.log("chart.onSeriesAdded: " + series.name); - onSeriesRemoved: console.log("chart.onSeriesRemoved: " + series.name); - onPlotAreaColorChanged: console.log("chart.plotAreaColorChanged: " + chart.plotAreaColor); - - legend.onVisibleChanged: console.log("legend.onVisibleChanged: " + chart.legend.visible); - legend.onBackgroundVisibleChanged: console.log("legend.onBackgroundVisibleChanged: " + visible); - legend.onColorChanged: console.log("legend.onColorChanged: " + color); - legend.onBorderColorChanged: console.log("legend.onBorderColorChanged: " + color); - legend.onLabelColorChanged: console.log("legend.onLabelColorChanged: " + color); - legend.onReverseMarkersChanged: console.log("legend.onReverseMarkersChanged: " - + chart.legend.reverseMarkers) - margins.onTopChanged: console.log("chart.margins.onTopChanged: " + top ); - margins.onBottomChanged: console.log("chart.margins.onBottomChanged: " + bottom); - margins.onLeftChanged: console.log("chart.margins.onLeftChanged: " + left); - margins.onRightChanged: console.log("chart.margins.onRightChanged: " + right); - onPlotAreaChanged: { - console.log("chart.onPlotAreaChanged, width: " + chartView.plotArea.width - + " height: " + chartView.plotArea.height - + " y: " + chartView.plotArea.y - + " x: " + chartView.plotArea.x); - marginVisualizer.opacity = 1.0; - } - - ValueAxis{ - onColorChanged: console.log("axisX.onColorChanged: " + color); - onLabelsVisibleChanged: console.log("axisX.onLabelsVisibleChanged: " + visible); - onLabelsColorChanged: console.log("axisX.onLabelsColorChanged: " + color); - onVisibleChanged: console.log("axisX.onVisibleChanged: " + visible); - onGridVisibleChanged: console.log("axisX.onGridVisibleChanged: " + visible); - onShadesVisibleChanged: console.log("axisX.onShadesVisibleChanged: " + visible); - onShadesColorChanged: console.log("axisX.onShadesColorChanged: " + color); - onShadesBorderColorChanged: console.log("axisX.onShadesBorderColorChanged: " + color); - onMinChanged: console.log("axisX.onMinChanged: " + min); - onMaxChanged: console.log("axisX.onMaxChanged: " + max); - } - - ValueAxis{ - onColorChanged: console.log("axisY.onColorChanged: " + color); - onLabelsVisibleChanged: console.log("axisY.onLabelsVisibleChanged: " + visible); - onLabelsColorChanged: console.log("axisY.onLabelsColorChanged: " + color); - onVisibleChanged: console.log("axisY.onVisibleChanged: " + visible); - onGridVisibleChanged: console.log("axisY.onGridVisibleChanged: " + visible); - onShadesVisibleChanged: console.log("axisY.onShadesVisibleChanged: " + visible); - onShadesColorChanged: console.log("axisY.onShadesColorChanged: " + color); - onShadesBorderColorChanged: console.log("axisY.onShadesBorderColorChanged: " + color); - onMinChanged: console.log("axisY.onMinChanged: " + min); - onMaxChanged: console.log("axisY.onMaxChanged: " + max); - } - - Rectangle { - id: marginVisualizer - color: "transparent" - border.color: "red" - anchors.fill: parent - anchors.topMargin: chartView.minimumMargins.top - anchors.bottomMargin: chartView.minimumMargins.bottom - anchors.leftMargin: chartView.minimumMargins.left - anchors.rightMargin: chartView.minimumMargins.right - opacity: 0.0 - onOpacityChanged: if (opacity > 0.9) opacity = 0.0; - Behavior on opacity { - NumberAnimation { duration: 800 } - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml deleted file mode 100644 index 87139f35..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditor.qml +++ /dev/null @@ -1,119 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Item { - id: chartEditor - property variant chart - onChartChanged: { - if (loader.item != undefined) - loader.item.chart = chart; - } - - function selectButton(button) { - chartButton.color = "#79bd8f"; - titleButton.color = "#79bd8f"; - legendButton.color = "#79bd8f"; - axisXButton.color = "#79bd8f"; - axisYButton.color = "#79bd8f"; - seriesButton.color = "#79bd8f"; - button.color = "#00a388"; - } - - Flow { - id: selectorFlow - anchors.top: parent.top - height: 90 - anchors.left: parent.left - anchors.right: parent.right - spacing: 5 - flow: Flow.TopToBottom - - Button { - id: chartButton - text: "Chart properties" - unpressedColor: "#79bd8f" - onClicked: { - selectButton(chartButton); - loader.source = "ChartEditorProperties.qml"; - loader.item.chart = chart; - } - } - Button { - id: titleButton - text: "Title properties" - unpressedColor: "#79bd8f" - onClicked: { - selectButton(titleButton); - loader.source = "ChartEditorTitle.qml"; - loader.item.chart = chart; - } - } - Button { - id: legendButton - text: "Legend properties" - unpressedColor: "#79bd8f" - onClicked: { - selectButton(legendButton); - loader.source = "ChartEditorLegend.qml"; - loader.item.chartLegend = chart.legend; - } - } - Button { - id: axisXButton - text: "Axis X properties" - unpressedColor: "#79bd8f" - onClicked: { - selectButton(axisXButton); - loader.source = "ChartEditorAxis.qml"; - loader.item.axis = chart.axisX(); - } - } - Button { - id: axisYButton - text: "Axis Y properties" - unpressedColor: "#79bd8f" - onClicked: { - selectButton(axisYButton); - loader.source = "ChartEditorAxis.qml"; - loader.item.axis = chart.axisY(); - } - } - Button { - id: seriesButton - text: "Series" - unpressedColor: "#79bd8f" - onClicked: { - selectButton(seriesButton); - loader.source = "ChartEditorSeries.qml"; - loader.item.chart = chart; - } - } - } - - Loader { - id: loader - anchors.top: selectorFlow.bottom - anchors.bottom: parent.bottom - anchors.left: parent.left - anchors.right: parent.right - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml deleted file mode 100644 index 0c6d8dce..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorAxis.qml +++ /dev/null @@ -1,131 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Row { - anchors.fill: parent - spacing: 5 - property variant axis - - Flow { - spacing: 5 - flow: Flow.TopToBottom - height: parent.height - - Button { - text: "axis visible" - onClicked: axis.visible = !axis.visible; - } - Button { - text: "axis line visible" - onClicked: axis.lineVisible = !axis.lineVisible; - } - Button { - text: "axis color" - onClicked: axis.color = main.nextColor(); - } - Button { - text: "axis labels visible" - onClicked: axis.labelsVisible = !axis.labelsVisible; - } - Button { - text: "axis labels angle +" - onClicked: axis.labelsAngle += 5; - } - Button { - text: "axis labels angle -" - onClicked: axis.labelsAngle -= 5; - } - Button { - text: "axis labels color" - onClicked: axis.labelsColor = main.nextColor(); - } - Button { - text: "axis grid visible" - onClicked: axis.gridVisible = !axis.gridVisible; - } - Button { - text: "axis shades visible" - onClicked: axis.shadesVisible = !axis.shadesVisible; - } - Button { - text: "axis shades color" - onClicked: axis.shadesColor = main.nextColor(); - } - Button { - text: "axis shades bcolor" - onClicked: axis.shadesBorderColor = main.nextColor(); - } - Button { - text: "axis title text" - onClicked: axis.titleText = axis.titleText + "X"; - } - Button { - text: "axis title visible" - onClicked: axis.titleVisible = !axis.titleVisible; - } - Button { - text: "axis max +" - onClicked: axis.max += 0.1; - } - Button { - text: "axis max -" - onClicked: axis.max -= 0.1; - } - Button { - text: "axis min +" - onClicked: axis.min += 0.1; - } - Button { - text: "axis min -" - onClicked: axis.min -= 0.1; - } - Button { - text: "axis tick count +" - onClicked: axis.tickCount++; - } - Button { - text: "axis tick count -" - - onClicked: axis.tickCount--; - } - Button { - text: "axis nice nmb" - onClicked: axis.niceNumbersEnabled = !axis.niceNumbersEnabled; - } - - FontEditor { - id: fontEditor - fontDescription: "axis" - function editedFont() { - return axis.labelsFont; - } - } - - FontEditor { - id: titleFontEditor - fontDescription: "title" - function editedFont() { - return axis.titleFont; - } - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml deleted file mode 100644 index 24ffd9ef..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorLegend.qml +++ /dev/null @@ -1,80 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Row { - anchors.fill: parent - spacing: 5 - property variant chartLegend - - Flow { - spacing: 5 - flow: Flow.TopToBottom - - Button { - text: "legend visible" - onClicked: chartLegend.visible = !chartLegend.visible; - } - Button { - text: "legend bckgrd visible" - onClicked: chartLegend.backgroundVisible = !chartLegend.backgroundVisible; - } - Button { - text: "legend color" - onClicked: chartLegend.color = main.nextColor(); - } - Button { - text: "legend border color" - onClicked: chartLegend.borderColor = main.nextColor(); - } - Button { - text: "legend label color" - onClicked: chartLegend.labelColor = main.nextColor(); - } - Button { - text: "legend top" - onClicked: chartLegend.alignment = Qt.AlignTop; - } - Button { - text: "legend bottom" - onClicked: chartLegend.alignment = Qt.AlignBottom; - } - Button { - text: "legend left" - onClicked: chartLegend.alignment = Qt.AlignLeft; - } - Button { - text: "legend right" - onClicked: chartLegend.alignment = Qt.AlignRight; - } - Button { - text: "legend use reverse order" - onClicked: chartLegend.reverseMarkers = !chartLegend.reverseMarkers; - } - } - - FontEditor { - fontDescription: "legend" - function editedFont() { - return chartLegend.font; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml deleted file mode 100644 index d172e4d8..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorProperties.qml +++ /dev/null @@ -1,124 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Flow { - anchors.fill: parent - property variant chart - flow: Flow.TopToBottom - spacing: 5 - Button { - text: "visible" - onClicked: chart.visible = !chart.visible; - } - Button { - text: "theme +" - onClicked: chart.theme++; - } - Button { - text: "theme -" - onClicked: chart.theme--; - } - Button { - text: "animation opt +" - onClicked: chart.animationOptions++; - } - Button { - text: "animation opt -" - onClicked: chart.animationOptions--; - } - Button { - text: "background color" - onClicked: chart.backgroundColor = main.nextColor(); - } - Button { - text: "plot area color" - onClicked: chart.plotAreaColor = main.nextColor(); - } - Button { - text: "drop shadow enabled" - onClicked: chart.dropShadowEnabled = !chart.dropShadowEnabled; - } - Button { - text: "roundness" - onClicked: chart.backgroundRoundness++; - } - Button { - text: "zoom +" - onClicked: chart.zoom(2); - } - Button { - text: "zoom -" - onClicked: chart.zoom(0.5); - } - Button { - text: "scroll left" - onClicked: chart.scrollLeft(10); - } - Button { - text: "scroll right" - onClicked: chart.scrollRight(10); - } - Button { - text: "scroll up" - onClicked: chart.scrollUp(10); - } - Button { - text: "scroll down" - onClicked: chart.scrollDown(10); - } - Button { - text: "title color" - onClicked: chart.titleColor = main.nextColor(); - } - Button { - text: "top margin +" - onClicked: chart.margins.top += 5; - } - Button { - text: "top margin -" - onClicked: chart.margins.top -= 5; - } - Button { - text: "bottom margin +" - onClicked: chart.margins.bottom += 5; - } - Button { - text: "bottom margin -" - onClicked: chart.margins.bottom -= 5; - } - Button { - text: "left margin +" - onClicked: chart.margins.left += 5; - } - Button { - text: "left margin -" - onClicked: chart.margins.left -= 5; - } - Button { - text: "right margin +" - onClicked: chart.margins.right += 5; - } - Button { - text: "right margin -" - onClicked: chart.margins.right -= 5; - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml deleted file mode 100644 index e7efc222..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorSeries.qml +++ /dev/null @@ -1,64 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -Flow { - anchors.fill: parent - property variant chart - flow: Flow.TopToBottom - spacing: 5 - - Button { - text: "add line" - onClicked: addXYSeries(ChartView.SeriesTypeLine, "line"); - } - Button { - text: "add spline" - onClicked: addXYSeries(ChartView.SeriesTypeSpline, "spline"); - } - Button { - text: "add scatter" - onClicked: addXYSeries(ChartView.SeriesTypeScatter, "scatter"); - } - Button { - text: "remove last" - onClicked: { - if (chart.count > 0) - chart.removeSeries(chart.series(chart.count - 1)); - else - chart.removeSeries(0); - } - } - Button { - text: "remove all" - onClicked: chart.removeAllSeries(); - } - - function addXYSeries(type, name) { - var series = chart.createSeries(type, name + " " + chart.count); - for (var i = chart.axisX().min; i < chart.axisX().max; i++) { - var y = Math.random() * (chart.axisY().max - chart.axisY().min) + chart.axisY().min; - var x = Math.random() + i; - series.append(x, y); - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml deleted file mode 100644 index 61b4365f..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ChartEditorTitle.qml +++ /dev/null @@ -1,35 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Flow { - property variant chart - anchors.fill: parent - flow: Flow.TopToBottom - spacing: 5 - - FontEditor { - fontDescription: "title" - function editedFont() { - return chart.titleFont; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml deleted file mode 100644 index 3531597f..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/FontEditor.qml +++ /dev/null @@ -1,92 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Flow { - flow: Flow.TopToBottom - spacing: 5 - property string fontDescription: "" - - Button { - text: fontDescription + " bold" - onClicked: editedFont().bold = !editedFont().bold; - } - Button { - text: fontDescription + " capitalization" - onClicked: editedFont().capitalization++; - } - Button { - text: fontDescription + " font family" - onClicked: editedFont().family = "courier"; - } - Button { - text: fontDescription + " font italic" - onClicked: editedFont().italic = !editedFont().italic; - } - Button { - text: fontDescription + " letterSpacing +" - onClicked: editedFont().letterSpacing++; - } - Button { - text: fontDescription + " letterSpacing -" - onClicked: editedFont().letterSpacing--; - } - Button { - text: fontDescription + " pixelSize +" - onClicked: editedFont().pixelSize++; - } - Button { - text: fontDescription + " pixelSize -" - onClicked: editedFont().pixelSize--; - } - Button { - text: fontDescription + " pointSize +" - onClicked: editedFont().pointSize++; - } - Button { - text: fontDescription + " pointSize -" - onClicked: editedFont().pointSize--; - } - Button { - text: fontDescription + " strikeout" - onClicked: editedFont().strikeout = !editedFont().strikeout; - } - Button { - text: fontDescription + " underline" - onClicked: editedFont().underline = !editedFont().underline; - } - Button { - text: fontDescription + " weight +" - onClicked: editedFont().weight++; - } - Button { - text: fontDescription + " weight -" - onClicked: editedFont().weight--; - } - Button { - text: fontDescription + " wordSpacing +" - onClicked: editedFont().wordSpacing++; - } - Button { - text: fontDescription + " wordSpacing -" - onClicked: editedFont().wordSpacing--; - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml deleted file mode 100644 index aedb26cb..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalBarChart.qml +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "Bar series" - anchors.fill: parent - theme: ChartView.ChartThemeLight - legend.alignment: Qt.AlignBottom - animationOptions: ChartView.SeriesAnimations - - property variant series: mySeries - - HorizontalBarSeries { - id: mySeries - name: "bar" - labelsFormat: "@value"; - axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } - BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] - onClicked: console.log("barset.onClicked: " + index); - onHovered: console.log("barset.onHovered: " + status + " " + index); - onPenChanged: console.log("barset.onPenChanged: " + pen); - onBrushChanged: console.log("barset.onBrushChanged: " + brush); - onLabelChanged: console.log("barset.onLabelChanged: " + label); - onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); - onColorChanged: console.log("barset.onColorChanged: " + color); - onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); - onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); - onCountChanged: console.log("barset.onCountChanged: " + count); - onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); - onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); - onValueChanged: console.log("barset.onValuesChanged: " + index); - } - BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } - BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } - - onNameChanged: console.log("horizontalBarSeries.onNameChanged: " + series.name); - onVisibleChanged: console.log("horizontalBarSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("horizontalBarSeries.onOpacityChanged: " + opacity); - onClicked: console.log("horizontalBarSeries.onClicked: " + barset + " " + index); - onHovered: console.log("horizontalBarSeries.onHovered: " + barset + " " - + status + " " + index); - onLabelsVisibleChanged: console.log("horizontalBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); - onCountChanged: console.log("horizontalBarSeries.onCountChanged: " + count); - onLabelsFormatChanged: console.log("horizontalBarSeries.onLabelsFormatChanged: " - + format); - onLabelsPositionChanged: console.log("horizontalBarSeries.onLabelsPositionChanged: " - + series.labelsPosition); - - function changeLabelsPosition() { - if (labelsPosition === BarSeries.LabelsCenter) - labelsPosition = BarSeries.LabelsInsideEnd; - else - labelsPosition = BarSeries.LabelsCenter; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml deleted file mode 100644 index c0d1b443..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalPercentBarChart.qml +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "Percent bar series" - anchors.fill: parent - theme: ChartView.ChartThemeLight - legend.alignment: Qt.AlignBottom - animationOptions: ChartView.SeriesAnimations - - property variant series: mySeries - - HorizontalPercentBarSeries { - id: mySeries - name: "bar" - labelsFormat: "@value"; - axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } - BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] - onClicked: console.log("barset.onClicked: " + index); - onHovered: console.log("barset.onHovered: " + status + " " + index); - onPenChanged: console.log("barset.onPenChanged: " + pen); - onBrushChanged: console.log("barset.onBrushChanged: " + brush); - onLabelChanged: console.log("barset.onLabelChanged: " + label); - onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); - onColorChanged: console.log("barset.onColorChanged: " + color); - onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); - onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); - onCountChanged: console.log("barset.onCountChanged: " + count); - onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); - onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); - onValueChanged: console.log("barset.onValuesChanged: " + index); - } - BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } - BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } - - onNameChanged: console.log("horizontalPercentBarSeries.onNameChanged: " + series.name); - onVisibleChanged: console.log("horizontalPercentBarSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("horizontalPercentBarSeries.onOpacityChanged: " + opacity); - onClicked: console.log("horizontalPercentBarSeries.onClicked: " + barset + " " + index); - onHovered: console.log("horizontalPercentBarSeries.onHovered: " + barset - + " " + status + " " + index); - onLabelsVisibleChanged: console.log("horizontalPercentBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); - onCountChanged: console.log("horizontalPercentBarSeries.onCountChanged: " + count); - onLabelsFormatChanged: console.log( - "horizontalPercentBarSeries.onLabelsFormatChanged: " - + format); - onLabelsPositionChanged: console.log( - "horizontalPercentBarSeries.onLabelsPositionChanged: " - + series.labelsPosition); - - function changeLabelsPosition() { - if (labelsPosition === BarSeries.LabelsCenter) - labelsPosition = BarSeries.LabelsInsideEnd; - else - labelsPosition = BarSeries.LabelsCenter; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml deleted file mode 100644 index 3b94e89d..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/HorizontalStackedBarChart.qml +++ /dev/null @@ -1,79 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "Stacked bar series" - anchors.fill: parent - theme: ChartView.ChartThemeLight - legend.alignment: Qt.AlignBottom - animationOptions: ChartView.SeriesAnimations - - property variant series: mySeries - - HorizontalStackedBarSeries { - id: mySeries - name: "bar" - labelsFormat: "@value"; - axisY: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } - BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] - onClicked: console.log("barset.onClicked: " + index); - onHovered: console.log("barset.onHovered: " + status + " " + index); - onPenChanged: console.log("barset.onPenChanged: " + pen); - onBrushChanged: console.log("barset.onBrushChanged: " + brush); - onLabelChanged: console.log("barset.onLabelChanged: " + label); - onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); - onColorChanged: console.log("barset.onColorChanged: " + color); - onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); - onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); - onCountChanged: console.log("barset.onCountChanged: " + count); - onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); - onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); - onValueChanged: console.log("barset.onValuesChanged: " + index); - } - BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } - BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } - - onNameChanged: console.log("horizontalStackedBarSeries.onNameChanged: " + series.name); - onVisibleChanged: console.log("horizontalStackedBarSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("horizontalStackedBarSeries.onOpacityChanged: " + opacity); - onClicked: console.log("horizontalStackedBarSeries.onClicked: " + barset + " " + index); - onHovered: console.log("horizontalStackedBarSeries.onHovered: " + barset - + " " + status + " " + index); - onLabelsVisibleChanged: console.log("horizontalStackedBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); - onCountChanged: console.log("horizontalStackedBarSeries.onCountChanged: " + count); - onLabelsFormatChanged: console.log( - "horizontalStackedBarSeries.onLabelsFormatChanged: " - + format); - onLabelsPositionChanged: console.log( - "horizontalStackedBarSeries.onLabelsPositionChanged: " - + series.labelsPosition); - - function changeLabelsPosition() { - if (labelsPosition === BarSeries.LabelsCenter) - labelsPosition = BarSeries.LabelsInsideEnd; - else - labelsPosition = BarSeries.LabelsCenter; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/LineChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/LineChart.qml deleted file mode 100644 index de3134a8..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/LineChart.qml +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - property variant series: lineSeries - - title: "line series" - anchors.fill: parent - animationOptions: ChartView.SeriesAnimations - - LineSeries { - id: lineSeries - name: "line 1" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1.1; y: 2.1 } - XYPoint { x: 1.9; y: 3.3 } - XYPoint { x: 2.1; y: 2.1 } - XYPoint { x: 2.9; y: 4.9 } - XYPoint { x: 3.4; y: 3.0 } - XYPoint { x: 4.1; y: 3.3 } - - pointLabelsFormat: "@xPoint, @yPoint"; - - onNameChanged: console.log("lineSeries.onNameChanged: " + name); - onVisibleChanged: console.log("lineSeries.onVisibleChanged: " + visible); - onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onPointReplaced: console.log("lineSeries.onPointReplaced: " + index); - onPointRemoved: console.log("lineSeries.onPointRemoved: " + index); - onPointAdded: console.log("lineSeries.onPointAdded: " + series.at(index).x + ", " + series.at(index).y); - onColorChanged: console.log("lineSeries.onColorChanged: " + color); - onWidthChanged: console.log("lineSeries.onWidthChanged: " + width); - onStyleChanged: console.log("lineSeries.onStyleChanged: " + style); - onCapStyleChanged: console.log("lineSeries.onCapStyleChanged: " + capStyle); - onCountChanged: console.log("lineSeries.onCountChanged: " + count); - onHovered: console.log("lineSeries.onHovered:" + point.x + "," + point.y + " " + state); - onPointLabelsVisibilityChanged: console.log("lineSeries.onPointLabelsVisibilityChanged: " - + visible); - onPointLabelsFormatChanged: console.log("lineSeries.onPointLabelsFormatChanged: " - + format); - onPointLabelsFontChanged: console.log("lineSeries.onPointLabelsFontChanged: " - + font.family); - onPointLabelsColorChanged: console.log("lineSeries.onPointLabelsColorChanged: " - + color); - } - - LineSeries { - name: "line 2" - XYPoint { x: 1.1; y: 1.1 } - XYPoint { x: 1.9; y: 2.3 } - XYPoint { x: 2.1; y: 1.1 } - XYPoint { x: 2.9; y: 3.9 } - XYPoint { x: 3.4; y: 2.0 } - XYPoint { x: 4.1; y: 2.3 } - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml deleted file mode 100644 index 7960b4a1..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/LineEditor.qml +++ /dev/null @@ -1,123 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - - -Flow { - id: flow - spacing: 5 - flow: Flow.TopToBottom - property variant series - - Button { - text: "visible" - onClicked: series.visible = !series.visible; - } - Button { - text: "opacity +" - onClicked: series.opacity += 0.1; - } - Button { - text: "opacity -" - onClicked: series.opacity -= 0.1; - } - Button { - text: "color" - onClicked: series.color = main.nextColor(); - } - Button { - text: series != undefined ? "width + (" + series.width + ")" : "" - onClicked: series.width += 0.5; - } - Button { - text: series != undefined ? "width - (" + series.width + ")" : "" - onClicked: series.width -= 0.5; - } - Button { - text: series != undefined ? "style + (" + series.style + ")" : "" - onClicked: series.style++; - } - Button { - text: series != undefined ? "style - (" + series.style + ")" : "" - onClicked: series.style--; - } - Button { - text: series != undefined ? "cap style + (" + series.capStyle + ")" : "" - onClicked: series.capStyle++; - } - Button { - text: series != undefined ? "cap style - (" +series.capStyle + ")" : "" - onClicked: series.capStyle--; - } - Button { - text: "points visible" - onClicked: series.pointsVisible = !series.pointsVisible; - } - Button { - text: "point labels visible" - onClicked: series.pointLabelsVisible = !series.pointLabelsVisible; - } - Button { - text: "point labels format" - onClicked: { - if (series.pointLabelsFormat === "@xPoint, @yPoint") - series.pointLabelsFormat = "(@xPoint)" - else - series.pointLabelsFormat = "@xPoint, @yPoint" - } - } - Button { - text: "point labels font" - onClicked: { - if (series.pointLabelsFont.family === "Times") - series.pointLabelsFont.family = "Courier"; - else - series.pointLabelsFont.family = "Times"; - } - } - Button { - text: "point labels color" - onClicked: series.pointLabelsColor = main.nextColor(); - } - Button { - text: "append point" - onClicked: series.append(series.count - 1, series.count - 1); - } - Button { - text: "replace point" - onClicked: { - var xyPoint = series.at(series.count - 1); - series.replace(series.count - 1, xyPoint.x, xyPoint.y + 0.1); - } - } - Button { - text: "remove point" - onClicked: series.remove(series.count - 1); - } - Button { - text: "insert point" - onClicked: series.insert(series.count - 2, series.count - 2, series.count - 2); - } - Button { - text: "clear" - onClicked: series.clear(); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml deleted file mode 100644 index 74c9b88f..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/PercentBarChart.qml +++ /dev/null @@ -1,78 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "Percent bar series" - anchors.fill: parent - theme: ChartView.ChartThemeLight - legend.alignment: Qt.AlignBottom - animationOptions: ChartView.SeriesAnimations - - property variant series: mySeries - - PercentBarSeries { - id: mySeries - name: "bar" - labelsFormat: "@value"; - axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } - - BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] - onClicked: console.log("barset.onClicked: " + index); - onHovered: console.log("barset.onHovered: " + status + " " + index); - onPenChanged: console.log("barset.onPenChanged: " + pen); - onBrushChanged: console.log("barset.onBrushChanged: " + brush); - onLabelChanged: console.log("barset.onLabelChanged: " + label); - onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); - onColorChanged: console.log("barset.onColorChanged: " + color); - onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); - onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); - onCountChanged: console.log("barset.onCountChanged: " + count); - onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); - onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); - onValueChanged: console.log("barset.onValuesChanged: " + index); - } - BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } - BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } - - onNameChanged: console.log("percentBarSeries.onNameChanged: " + series.name); - onVisibleChanged: console.log("percentBarSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("percentBarSeries.onOpacityChanged: " + opacity); - onClicked: console.log("percentBarSeries.onClicked: " + barset + " " + index); - onHovered: console.log("percentBarSeries.onHovered: " + barset - + " " + status + " " + index); - onLabelsVisibleChanged: console.log("percentBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); - onCountChanged: console.log("percentBarSeries.onCountChanged: " + count); - onLabelsFormatChanged: console.log("percentBarSeries.onLabelsFormatChanged: " - + format); - onLabelsPositionChanged: console.log("percentBarSeries.onLabelsPositionChanged: " - + series.labelsPosition); - - function changeLabelsPosition() { - if (labelsPosition === BarSeries.LabelsCenter) - labelsPosition = BarSeries.LabelsInsideEnd; - else - labelsPosition = BarSeries.LabelsCenter; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/PieChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/PieChart.qml deleted file mode 100644 index 37a321ae..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/PieChart.qml +++ /dev/null @@ -1,67 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - id: chart - title: "pie series" - animationOptions: ChartView.SeriesAnimations - - property variant series: pieSeries - - PieSeries { - id: pieSeries - name: "pie" - PieSlice { label: "slice1"; value: 11; - onValueChanged: console.log("slice.onValueChanged: " + value); - onLabelVisibleChanged: console.log("slice.onLabelVisibleChanged: " + labelVisible); - onPenChanged: console.log("slice.onPenChanged: " + pen); - onBorderColorChanged: console.log("slice.onBorderColorChanged: " + borderColor); - onBorderWidthChanged: console.log("slice.onBorderWidthChanged: " + borderWidth); - onBrushChanged: console.log("slice.onBrushChanged: " + brush); - onColorChanged: console.log("slice.onColorChanged: " + color); - onLabelColorChanged: console.log("slice.onLabelColorChanged: " + labelColor); - onLabelBrushChanged: console.log("slice.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("slice.onLabelFontChanged: " + labelFont); - onPercentageChanged: console.log("slice.onPercentageChanged: " + percentage); - onStartAngleChanged: console.log("slice.onStartAngleChanged: " + startAngle); - onAngleSpanChanged: console.log("slice.onAngleSpanChanged: " + angleSpan); - onClicked: console.log("slice.onClicked: " + label); - onHovered: console.log("slice.onHovered: " + state); - } - PieSlice { label: "slice2"; value: 22 } - PieSlice { label: "slice3"; value: 33 } - PieSlice { label: "slice4"; value: 44 } - - onNameChanged: console.log("pieSeries.onNameChanged: " + name); - onVisibleChanged: console.log("pieSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("pieSeries.onOpacityChanged: " + opacity); - onClicked: console.log("pieSeries.onClicked: " + slice.label); - onHovered: console.log("pieSeries.onHovered: " + slice.label); - onAdded: console.log("pieSeries.onAdded: " + slices); - onSliceAdded: console.log("pieSeries.onSliceAdded: " + slice.label); - onRemoved: console.log("pieSeries.onRemoved: " + slices); - onSliceRemoved: console.log("pieSeries.onSliceRemoved: " + slice.label); - onCountChanged: console.log("pieSeries.onCountChanged: " + count); - onSumChanged: console.log("pieSeries.onSumChanged: " + sum); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml deleted file mode 100644 index 91eb0343..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/PieEditor.qml +++ /dev/null @@ -1,228 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -Row { - anchors.fill: parent - spacing: 5 - property variant series - property int sliceIndex: 0 - - // buttons for selecting the edited object: series, slice or label - Flow { - spacing: 5 - flow: Flow.TopToBottom - Button { - id: seriesButton - text: "series" - unpressedColor: "#79bd8f" - onClicked: { - seriesFlow.visible = true; - slicesFlow.visible = false; - labelsFlow.visible = false; - color = "#00a388"; - sliceButton.color = "#79bd8f"; - labelButton.color = "#79bd8f"; - } - } - Button { - id: sliceButton - text: "slice" - unpressedColor: "#79bd8f" - onClicked: { - seriesFlow.visible = false; - slicesFlow.visible = true; - labelsFlow.visible = false; - color = "#00a388"; - seriesButton.color = "#79bd8f"; - labelButton.color = "#79bd8f"; - } - } - Button { - id: labelButton - text: "label" - unpressedColor: "#79bd8f" - onClicked: { - seriesFlow.visible = false; - slicesFlow.visible = false; - labelsFlow.visible = true; - color = "#00a388"; - seriesButton.color = "#79bd8f"; - sliceButton.color = "#79bd8f"; - } - } - } - - // Buttons for editing series - Flow { - id: seriesFlow - spacing: 5 - flow: Flow.TopToBottom - visible: false - Button { - text: "visible" - onClicked: series.visible = !series.visible; - } - Button { - text: "series opacity +" - onClicked: series.opacity += 0.1; - } - Button { - text: "series opacity -" - onClicked: series.opacity -= 0.1; - } - Button { - text: "series hpos +" - onClicked: series.horizontalPosition += 0.1; - } - Button { - text: "series hpos -" - onClicked: series.horizontalPosition -= 0.1; - } - Button { - text: "series vpos +" - onClicked: series.verticalPosition += 0.1; - } - Button { - text: "series vpos -" - onClicked: series.verticalPosition -= 0.1; - } - Button { - text: "series size +" - onClicked: series.size += 0.1; - } - Button { - text: "series size -" - onClicked: series.size -= 0.1; - } - Button { - text: "series start angle +" - onClicked: series.startAngle += 1.1; - } - Button { - text: "series start angle -" - onClicked: series.startAngle -= 1.1; - } - Button { - text: "series end angle +" - onClicked: series.endAngle += 1.1; - } - Button { - text: "series end angle -" - onClicked: series.endAngle -= 1.1; - } - } - - // Buttons for editing slices - Flow { - id: slicesFlow - spacing: 5 - flow: Flow.TopToBottom - visible: false - - Button { - text: "append slice" - onClicked: series.append("slice" + (series.count + 1), 3.0); - } - Button { - text: "remove slice" - onClicked: series.remove(series.at(series.count - 1)); - } - Button { - text: "slice color" - onClicked: series.at(sliceIndex).color = main.nextColor(); - } - Button { - text: "slice border color" - onClicked: series.at(sliceIndex).borderColor = main.nextColor(); - } - Button { - text: "slice border width +" - onClicked: series.at(sliceIndex).borderWidth++; - } - Button { - text: "slice border width -" - onClicked: series.at(sliceIndex).borderWidth--; - } - Button { - text: "slice exploded" - onClicked: series.at(sliceIndex).exploded = !series.at(sliceIndex).exploded; - } - Button { - text: "slice explode dist +" - onClicked: series.at(sliceIndex).explodeDistanceFactor += 0.1; - } - Button { - text: "slice explode dist -" - onClicked: series.at(sliceIndex).explodeDistanceFactor -= 0.1; - } - } - - // Buttons for editing labels - Flow { - id: labelsFlow - spacing: 5 - flow: Flow.TopToBottom - visible: false - - Button { - text: "label visible" - onClicked: series.at(sliceIndex).labelVisible = !series.at(sliceIndex).labelVisible; - } - Button { - text: "LabelInsideNormal" - onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelInsideNormal; - } - Button { - text: "LabelInsideHorizontal" - onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelInsideHorizontal; - } - Button { - text: "LabelInsideTangential" - onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelInsideTangential; - } - Button { - text: "LabelOutside" - onClicked: series.at(sliceIndex).labelPosition = PieSlice.LabelOutside; - } - Button { - text: "label arm len +" - onClicked: series.at(sliceIndex).labelArmLengthFactor += 0.1; - } - Button { - text: "label arm len -" - onClicked: series.at(sliceIndex).labelArmLengthFactor -= 0.1; - } - Button { - text: "slice label color" - onClicked: series.at(sliceIndex).labelColor = main.nextColor(); - } - - FontEditor { - id: fontEditor - fontDescription: "label" - function editedFont() { - return series.at(sliceIndex).labelFont; - } - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml deleted file mode 100644 index d531ac32..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ScatterChart.qml +++ /dev/null @@ -1,75 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "scatter series" - property variant series: scatterSeries - animationOptions: ChartView.SeriesAnimations - - ScatterSeries { - id: scatterSeries - name: "scatter 1" - XYPoint { x: 1.5; y: 1.5 } - XYPoint { x: 1.5; y: 1.6 } - XYPoint { x: 1.57; y: 1.55 } - XYPoint { x: 1.8; y: 1.8 } - XYPoint { x: 1.9; y: 1.6 } - XYPoint { x: 2.1; y: 1.3 } - XYPoint { x: 2.5; y: 2.1 } - - pointLabelsFormat: "@xPoint, @yPoint"; - - onNameChanged: console.log("scatterSeries.onNameChanged: " + name); - onVisibleChanged: console.log("scatterSeries.onVisibleChanged: " + visible); - onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); - onPointReplaced: console.log("scatterSeries.onPointReplaced: " + index); - onPointRemoved: console.log("scatterSeries.onPointRemoved: " + index); - onPointAdded: console.log("scatterSeries.onPointAdded: " + series.at(index).x + ", " + series.at(index).y); - onColorChanged: console.log("scatterSeries.onColorChanged: " + color); - onBorderColorChanged: console.log("scatterSeries.onBorderColorChanged: " + borderColor); - onBorderWidthChanged: console.log("scatterSeries.onBorderChanged: " + borderWidth); - onCountChanged: console.log("scatterSeries.onCountChanged: " + count); - onPointLabelsVisibilityChanged: console.log("lineSeries.onPointLabelsVisibilityChanged: " - + visible); - onPointLabelsFormatChanged: console.log("lineSeries.onPointLabelsFormatChanged: " - + format); - onPointLabelsFontChanged: console.log("lineSeries.onPointLabelsFontChanged: " - + font.family); - onPointLabelsColorChanged: console.log("lineSeries.onPointLabelsColorChanged: " - + color); - } - - ScatterSeries { - name: "scatter2" - XYPoint { x: 2.0; y: 2.0 } - XYPoint { x: 2.0; y: 2.1 } - XYPoint { x: 2.07; y: 2.05 } - XYPoint { x: 2.2; y: 2.9 } - XYPoint { x: 2.4; y: 2.7 } - XYPoint { x: 2.67; y: 2.65 } - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml b/tests/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml deleted file mode 100644 index 23afdb75..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/ScatterEditor.qml +++ /dev/null @@ -1,118 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Flow { - id: flow - spacing: 5 - flow: Flow.TopToBottom - property variant series - - Button { - text: "visible" - onClicked: series.visible = !series.visible; - } - Button { - text: "opacity +" - onClicked: series.opacity += 0.1; - } - Button { - text: "opacity -" - onClicked: series.opacity -= 0.1; - } - Button { - text: "color" - onClicked: series.color = main.nextColor(); - } - Button { - text: "borderColor" - onClicked: series.borderColor = main.nextColor(); - } - Button { - text: series != undefined ? "borderWidth + (" + series.borderWidth + ")" : "" - onClicked: series.borderWidth += 0.5; - } - Button { - text: series != undefined ? "borderWidth - (" + series.borderWidth + ")" : "" - onClicked: series.borderWidth -= 0.5; - } - Button { - text: "markerSize +" - onClicked: series.markerSize += 1.0; - } - Button { - text: "markerSize -" - onClicked: series.markerSize -= 1.0; - } - Button { - text: "markerShape" - onClicked: series.markerShape = ((series.markerShape + 1) % 2); - } - Button { - text: "point labels visible" - onClicked: series.pointLabelsVisible = !series.pointLabelsVisible; - } - Button { - text: "point labels format" - onClicked: { - if (series.pointLabelsFormat === "@xPoint, @yPoint") - series.pointLabelsFormat = "(@xPoint)" - else - series.pointLabelsFormat = "@xPoint, @yPoint" - } - } - Button { - text: "point labels font" - onClicked: { - if (series.pointLabelsFont.family === "Times") - series.pointLabelsFont.family = "Courier"; - else - series.pointLabelsFont.family = "Times"; - } - } - Button { - text: "point labels color" - onClicked: series.pointLabelsColor = main.nextColor(); - } - Button { - text: "append point" - onClicked: series.append(series.count - 1, series.count - 1); - } - Button { - text: "replace point" - onClicked: { - var xyPoint = series.at(series.count - 1); - series.replace(series.count - 1, xyPoint.x, xyPoint.y + 0.1); - } - } - Button { - text: "remove point" - onClicked: series.remove(series.count - 1); - } - Button { - text: "insert point" - onClicked: series.insert(series.count - 2, series.count - 2, series.count - 2); - } - Button { - text: "clear" - onClicked: series.clear(); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml deleted file mode 100644 index 3a182d19..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/SplineChart.qml +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "spline series" - anchors.fill: parent - property variant series: splineSeries - animationOptions: ChartView.SeriesAnimations - - SplineSeries { - id: splineSeries - name: "spline 1" - XYPoint { x: 0; y: 0 } - XYPoint { x: 1.1; y: 2.1 } - XYPoint { x: 1.9; y: 3.3 } - XYPoint { x: 2.1; y: 2.1 } - XYPoint { x: 2.9; y: 4.9 } - XYPoint { x: 3.4; y: 3.0 } - XYPoint { x: 4.1; y: 3.3 } - - pointLabelsFormat: "@xPoint, @yPoint"; - - onNameChanged: console.log("splineSeries.onNameChanged: " + name); - onVisibleChanged: console.log("splineSeries.onVisibleChanged: " + visible); - onOpacityChanged: console.log(name + ".onOpacityChanged: " + opacity); - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); - onPointReplaced: console.log("splineSeries.onPointReplaced: " + index); - onPointRemoved: console.log("splineSeries.onPointRemoved: " + index); - onPointAdded: console.log("splineSeries.onPointAdded: " + series.at(index).x + ", " + series.at(index).y); - onColorChanged: console.log("splineSeries.onColorChanged: " + color); - onWidthChanged: console.log("splineSeries.onWidthChanged: " + width); - onStyleChanged: console.log("splineSeries.onStyleChanged: " + style); - onCapStyleChanged: console.log("splineSeries.onCapStyleChanged: " + capStyle); - onCountChanged: console.log("splineSeries.onCountChanged: " + count); - onPointLabelsVisibilityChanged: console.log("splineSeries.onPointLabelsVisibilityChanged: " - + visible); - onPointLabelsFormatChanged: console.log("splineSeries.onPointLabelsFormatChanged: " - + format); - onPointLabelsFontChanged: console.log("splineSeries.onPointLabelsFontChanged: " - + font.family); - onPointLabelsColorChanged: console.log("splineSeries.onPointLabelsColorChanged: " - + color); - } - - SplineSeries { - name: "spline 2" - XYPoint { x: 1.1; y: 1.1 } - XYPoint { x: 1.9; y: 2.3 } - XYPoint { x: 2.1; y: 1.1 } - XYPoint { x: 2.9; y: 3.9 } - XYPoint { x: 3.4; y: 2.0 } - XYPoint { x: 4.1; y: 2.3 } - onClicked: console.log(name + ".onClicked: " + point.x + ", " + point.y); - onHovered: console.log(name + ".onHovered: " + point.x + ", " + point.y); - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml b/tests/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml deleted file mode 100644 index a59f0e12..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/StackedBarChart.qml +++ /dev/null @@ -1,77 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtCharts 2.0 - -ChartView { - title: "Stacked bar series" - anchors.fill: parent - theme: ChartView.ChartThemeLight - legend.alignment: Qt.AlignBottom - animationOptions: ChartView.SeriesAnimations - - property variant series: mySeries - - StackedBarSeries { - id: mySeries - name: "bar" - labelsFormat: "@value"; - axisX: BarCategoryAxis { categories: ["2007", "2008", "2009", "2010", "2011", "2012" ] } - BarSet { label: "Bob"; values: [2, 2, 3, 4, 5, 6] - onClicked: console.log("barset.onClicked: " + index); - onHovered: console.log("barset.onHovered: " + status + " " + index); - onPenChanged: console.log("barset.onPenChanged: " + pen); - onBrushChanged: console.log("barset.onBrushChanged: " + brush); - onLabelChanged: console.log("barset.onLabelChanged: " + label); - onLabelBrushChanged: console.log("barset.onLabelBrushChanged: " + labelBrush); - onLabelFontChanged: console.log("barset.onLabelFontChanged: " + labelFont); - onColorChanged: console.log("barset.onColorChanged: " + color); - onBorderColorChanged: console.log("barset.onBorderColorChanged: " + color); - onLabelColorChanged: console.log("barset.onLabelColorChanged: " + color); - onCountChanged: console.log("barset.onCountChanged: " + count); - onValuesAdded: console.log("barset.onValuesAdded: " + index + ", " + count); - onValuesRemoved: console.log("barset.onValuesRemoved: " + index + ", " + count); - onValueChanged: console.log("barset.onValuesChanged: " + index); - } - BarSet { label: "Susan"; values: [5, 1, 2, 4, 1, 7] } - BarSet { label: "James"; values: [3, 5, 8, 13, 5, 8] } - - onNameChanged: console.log("stackedBarSeries.onNameChanged: " + series.name); - onVisibleChanged: console.log("stackedBarSeries.onVisibleChanged: " + series.visible); - onOpacityChanged: console.log("stackedBarSeries.onOpacityChanged: " + opacity); - onClicked: console.log("stackedBarSeries.onClicked: " + barset + " " + index); - onHovered: console.log("stackedBarSeries.onHovered: " + barset - + " " + status + " " + index); - onLabelsVisibleChanged: console.log("stackedBarSeries.onLabelsVisibleChanged: " + series.labelsVisible); - onCountChanged: console.log("stackedBarSeries.onCountChanged: " + count); - onLabelsFormatChanged: console.log("stackedBarSeries.onLabelsFormatChanged: " - + format); - onLabelsPositionChanged: console.log("stackedBarSeries.onLabelsPositionChanged: " - + series.labelsPosition); - - function changeLabelsPosition() { - if (labelsPosition === BarSeries.LabelsCenter) - labelsPosition = BarSeries.LabelsInsideEnd; - else - labelsPosition = BarSeries.LabelsCenter; - } - } -} diff --git a/tests/qmlchartproperties/qml/qmlchartproperties/main.qml b/tests/qmlchartproperties/qml/qmlchartproperties/main.qml deleted file mode 100644 index 8265e1ae..00000000 --- a/tests/qmlchartproperties/qml/qmlchartproperties/main.qml +++ /dev/null @@ -1,179 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - id: main - width: 800 - height: 600 - property int viewCount: 9 - property variant colors: ["#637D74", "#403D3A", "#8C3B3B", "#AB6937", "#D4A960"] - property int colorIndex: 0 - property int buttonWidth: 42 - - function nextColor() { - colorIndex++; - return colors[colorIndex % colors.length]; - } - - Row { - anchors.top: parent.top - anchors.bottom: buttonRow.top - anchors.bottomMargin: 10 - anchors.left: parent.left - anchors.right: parent.right - - Loader { - id: chartLoader - width: main.width - editorLoader.width - height: parent.height - source: "Chart.qml" - onStatusChanged: { - if (status == Loader.Ready && editorLoader.status == Loader.Ready && chartLoader.item) { - if (source.toString().search("/Chart.qml") > 0) - editorLoader.item.chart = chartLoader.item.chart; - else - editorLoader.item.series = chartLoader.item.series; - } - } - } - - Loader { - id: editorLoader - width: 280 - height: parent.height - source: "ChartEditor.qml" - onStatusChanged: { - if (status == Loader.Ready && chartLoader.status == Loader.Ready && chartLoader.item) { - if (source.toString().search("/ChartEditor.qml") > 0) - editorLoader.item.chart = chartLoader.item.chart; - else - editorLoader.item.series = chartLoader.item.series; - } - } - } - } - - Row { - id: buttonRow - height: 40 - anchors.bottom: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - spacing: 10 - - Button { - text: "chart" - width: buttonWidth - onClicked: { - chartLoader.source = "Chart.qml"; - editorLoader.source = "ChartEditor.qml"; - } - } - Button { - text: "pie" - width: buttonWidth - onClicked: { - chartLoader.source = "PieChart.qml"; - editorLoader.source = "PieEditor.qml"; - } - } - Button { - text: "line" - width: buttonWidth - onClicked: { - chartLoader.source = "LineChart.qml"; - editorLoader.source = "LineEditor.qml"; - } - } - Button { - text: "spline" - width: buttonWidth - onClicked: { - chartLoader.source = "SplineChart.qml"; - editorLoader.source = "LineEditor.qml"; - } - } - Button { - text: "scatter" - width: buttonWidth - onClicked: { - chartLoader.source = "ScatterChart.qml"; - editorLoader.source = "ScatterEditor.qml"; - } - } - Button { - text: "area" - width: buttonWidth - onClicked: { - chartLoader.source = "AreaChart.qml"; - editorLoader.source = "AreaEditor.qml"; - } - } - Button { - text: "bar" - width: buttonWidth - onClicked: { - chartLoader.source = "BarChart.qml"; - editorLoader.source = "BarEditor.qml"; - } - } - Button { - text: "sbar" - width: buttonWidth - onClicked: { - chartLoader.source = "StackedBarChart.qml"; - editorLoader.source = "BarEditor.qml"; - } - } - Button { - text: "pbar" - width: buttonWidth - onClicked: { - chartLoader.source = "PercentBarChart.qml"; - editorLoader.source = "BarEditor.qml"; - } - } - Button { - text: "hbar" - width: buttonWidth - onClicked: { - chartLoader.source = "HorizontalBarChart.qml"; - editorLoader.source = "BarEditor.qml"; - } - } - Button { - text: "hsbar" - width: buttonWidth - onClicked: { - chartLoader.source = "HorizontalStackedBarChart.qml"; - editorLoader.source = "BarEditor.qml"; - } - } - Button { - text: "hpbar" - width: buttonWidth - onClicked: { - chartLoader.source = "HorizontalPercentBarChart.qml"; - editorLoader.source = "BarEditor.qml"; - } - } - } -} diff --git a/tests/qmlchartproperties/qmlchartproperties.pro b/tests/qmlchartproperties/qmlchartproperties.pro deleted file mode 100644 index 6d148e8b..00000000 --- a/tests/qmlchartproperties/qmlchartproperties.pro +++ /dev/null @@ -1,8 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the test.pri file!" ) -} - -RESOURCES += resources.qrc -SOURCES += main.cpp -OTHER_FILES += qml/qmlchartproperties/* - diff --git a/tests/qmlchartproperties/resources.qrc b/tests/qmlchartproperties/resources.qrc deleted file mode 100644 index e93f369e..00000000 --- a/tests/qmlchartproperties/resources.qrc +++ /dev/null @@ -1,30 +0,0 @@ - - - qml/qmlchartproperties/main.qml - qml/qmlchartproperties/Button.qml - qml/qmlchartproperties/PieChart.qml - qml/qmlchartproperties/PieEditor.qml - qml/qmlchartproperties/LineChart.qml - qml/qmlchartproperties/LineEditor.qml - qml/qmlchartproperties/SplineChart.qml - qml/qmlchartproperties/ScatterChart.qml - qml/qmlchartproperties/AreaChart.qml - qml/qmlchartproperties/BarChart.qml - qml/qmlchartproperties/BarEditor.qml - qml/qmlchartproperties/ScatterEditor.qml - qml/qmlchartproperties/AreaEditor.qml - qml/qmlchartproperties/StackedBarChart.qml - qml/qmlchartproperties/PercentBarChart.qml - qml/qmlchartproperties/Chart.qml - qml/qmlchartproperties/ChartEditor.qml - qml/qmlchartproperties/FontEditor.qml - qml/qmlchartproperties/HorizontalBarChart.qml - qml/qmlchartproperties/HorizontalPercentBarChart.qml - qml/qmlchartproperties/HorizontalStackedBarChart.qml - qml/qmlchartproperties/ChartEditorAxis.qml - qml/qmlchartproperties/ChartEditorLegend.qml - qml/qmlchartproperties/ChartEditorProperties.qml - qml/qmlchartproperties/ChartEditorTitle.qml - qml/qmlchartproperties/ChartEditorSeries.qml - - diff --git a/tests/tests.pro b/tests/tests.pro index e6aa3561..ce8428e4 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -1,19 +1,3 @@ TEMPLATE = subdirs -SUBDIRS += \ - auto \ - presenterchart \ - polarcharttest \ - boxplottester - -contains(QT_CONFIG, opengl) { - SUBDIRS += chartwidgettest \ - wavechart \ - chartviewer -} else { - message("OpenGL not available. Some test apps are disabled") -} - -qtHaveModule(quick) { - SUBDIRS += qmlchartproperties \ - qmlchartaxis -} +SUBDIRS += auto +exists(manual): SUBDIRS += manual diff --git a/tests/wavechart/main.cpp b/tests/wavechart/main.cpp deleted file mode 100644 index 58423319..00000000 --- a/tests/wavechart/main.cpp +++ /dev/null @@ -1,44 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "wavechart.h" -#include -#include -#include - -int main(int argc, char *argv[]) -{ - QApplication a(argc, argv); - - QMainWindow window; - QChart *chart = new QChart(); - WaveChart *waveChart = new WaveChart(chart,&window); - - waveChart->setViewport( new QGLWidget() ); - waveChart->setRenderHint(QPainter::Antialiasing); - chart->setAnimationOptions(QChart::AllAnimations); - chart->setTitle("This is wave generator."); - - window.setCentralWidget(waveChart); - window.resize(400, 300); - window.show(); - - return a.exec(); -} diff --git a/tests/wavechart/wavechart.cpp b/tests/wavechart/wavechart.cpp deleted file mode 100644 index dc05d073..00000000 --- a/tests/wavechart/wavechart.cpp +++ /dev/null @@ -1,69 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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 "wavechart.h" -#include - -QT_CHARTS_USE_NAMESPACE - -#define PI 3.14159265358979 -static const int numPoints =100; - -WaveChart::WaveChart(QChart* chart, QWidget* parent) : - QChartView(chart, parent), - m_series(new QLineSeries()), - m_wave(0), - m_step(2 * PI / numPoints) -{ - QPen blue(Qt::blue); - blue.setWidth(3); - m_series->setPen(blue); - - chart->legend()->setVisible(false); - - QTime now = QTime::currentTime(); - qsrand((uint) now.msec()); - - int fluctuate = 100; - - for (qreal x = 0; x <= 2 * PI; x += m_step) { - m_series->append(x, fabs(sin(x) * fluctuate)); - } - - chart->addSeries(m_series); - chart->createDefaultAxes(); - - QObject::connect(&m_timer, SIGNAL(timeout()), this, SLOT(update())); - m_timer.setInterval(5000); - m_timer.start(); -} - -void WaveChart::update() -{ - - int fluctuate; - const QList& points = m_series->points(); - for (qreal i = 0, x = 0; x <= 2 * PI; x += m_step, i++) { - fluctuate = qrand() % 100; - m_series->replace(x,points[i].y(),x,fabs(sin(x) * fluctuate)); - - } - -} diff --git a/tests/wavechart/wavechart.h b/tests/wavechart/wavechart.h deleted file mode 100644 index 95978861..00000000 --- a/tests/wavechart/wavechart.h +++ /dev/null @@ -1,49 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2014 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 Enterprise Charts Add-on. -** -** $QT_BEGIN_LICENSE$ -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise 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$ -** -****************************************************************************/ - -#ifndef WAVECHART_H -#define WAVECHART_H - -#include -#include -#include -#include -#include - -QT_CHARTS_USE_NAMESPACE - -class WaveChart: public QChartView -{ - Q_OBJECT - -public: - WaveChart(QChart* chart, QWidget* parent); - -private slots: - void update(); - -private: - QLineSeries* m_series; - int m_wave; - qreal m_step; - QTimer m_timer; -}; - -#endif diff --git a/tests/wavechart/wavechart.pro b/tests/wavechart/wavechart.pro deleted file mode 100644 index aed0c39d..00000000 --- a/tests/wavechart/wavechart.pro +++ /dev/null @@ -1,7 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the examples.pri file!" ) -} -QT+=opengl -TARGET = wavechart -SOURCES += main.cpp wavechart.cpp -HEADERS += wavechart.h -- cgit v1.2.3