From aa842c39480aa5b95f704c97b8b3acc821144883 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 20 Dec 2013 10:56:59 +0200 Subject: Fix theme ownership Theme ownership now uses similar model as axis and inputhandler ownership: Graph can own multiple themes, but only one is active at the time. Task-number: QTRD-2623 Change-Id: I7134384df6f8cc465cc28fbebb454b7d2e254f83 Reviewed-by: Miikka Heikkinen --- tests/barstest/chart.cpp | 92 +++++++++++++++++++++---------------- tests/barstest/chart.h | 1 + tests/multigraphs/data.cpp | 26 +++++++---- tests/scattertest/scatterchart.cpp | 23 ++++++---- tests/spectrum/spectrumapp/main.cpp | 2 +- tests/surfacetest/graphmodifier.cpp | 9 ++-- tests/surfacetest/main.cpp | 2 +- 7 files changed, 92 insertions(+), 63 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 8bef7479..5c36607e 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -63,7 +63,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_currentAxis(m_fixedRangeAxis), m_negativeValuesOn(false), m_useNullInputHandler(false), - m_defaultInputHandler(0) + m_defaultInputHandler(0), + m_ownTheme(0) { // Generate generic labels QStringList genericColumnLabels; @@ -116,7 +117,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_graph->addAxis(m_genericRowAxis); m_graph->addAxis(m_genericColumnAxis); - m_graph->setTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + m_graph->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); m_graph->setShadowQuality(QDataVis::ShadowQualitySoftMedium); m_temperatureData->setItemLabelFormat(QStringLiteral("1: @valueTitle for @colLabel @rowLabel: @valueLabel")); @@ -166,7 +167,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_temperatureData->setSingleHighlightGradient(singleHighlightGradient); m_temperatureData->setMultiHighlightGradient(multiHighlightGradient); - m_graph->theme()->setFont(QFont("Times Roman", 20)); + m_graph->activeTheme()->setFont(QFont("Times Roman", 20)); // Release and store the default input handler. m_defaultInputHandler = m_graph->activeInputHandler(); @@ -576,7 +577,12 @@ void GraphModifier::changeTheme() { static int theme = Q3DTheme::ThemeQt; - m_graph->setTheme(new Q3DTheme((Q3DTheme::Theme)theme)); + Q3DTheme *currentTheme = m_graph->activeTheme(); + if (currentTheme != m_ownTheme) { + m_graph->releaseTheme(currentTheme); + delete currentTheme; + } + m_graph->setActiveTheme(new Q3DTheme((Q3DTheme::Theme)theme)); switch (theme) { case Q3DTheme::ThemeQt: @@ -614,7 +620,7 @@ void GraphModifier::changeTheme() void GraphModifier::changeLabelStyle() { - m_graph->theme()->setLabelBackgroundEnabled(!m_graph->theme()->isLabelBackgroundEnabled()); + m_graph->activeTheme()->setLabelBackgroundEnabled(!m_graph->activeTheme()->isLabelBackgroundEnabled()); } void GraphModifier::changeSelectionMode() @@ -631,15 +637,15 @@ void GraphModifier::changeFont(const QFont &font) { QFont newFont = font; newFont.setPointSize(m_fontSize); - m_graph->theme()->setFont(newFont); + m_graph->activeTheme()->setFont(newFont); } void GraphModifier::changeFontSize(int fontsize) { m_fontSize = fontsize; - QFont font = m_graph->theme()->font(); + QFont font = m_graph->activeTheme()->font(); font.setPointSize(m_fontSize); - m_graph->theme()->setFont(font); + m_graph->activeTheme()->setFont(font); } void GraphModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) @@ -737,12 +743,12 @@ QBarDataArray *GraphModifier::makeDummyData() void GraphModifier::setBackgroundEnabled(int enabled) { - m_graph->theme()->setBackgroundEnabled(bool(enabled)); + m_graph->activeTheme()->setBackgroundEnabled(bool(enabled)); } void GraphModifier::setGridEnabled(int enabled) { - m_graph->theme()->setGridEnabled(bool(enabled)); + m_graph->activeTheme()->setGridEnabled(bool(enabled)); } void GraphModifier::rotateX(int rotation) @@ -811,38 +817,46 @@ void GraphModifier::setMaxY(int max) void GraphModifier::changeColorStyle() { - int style = m_graph->theme()->colorStyle(); + int style = m_graph->activeTheme()->colorStyle(); if (++style > Q3DTheme::ColorStyleRangeGradient) style = Q3DTheme::ColorStyleUniform; - m_graph->theme()->setColorStyle(Q3DTheme::ColorStyle(style)); + m_graph->activeTheme()->setColorStyle(Q3DTheme::ColorStyle(style)); } void GraphModifier::useOwnTheme() { - Q3DTheme *theme = new Q3DTheme(); - theme->setBackgroundEnabled(true); - theme->setGridEnabled(true); - theme->setAmbientLightStrength(0.3f); - theme->setBackgroundColor(QColor(QRgb(0x99ca53))); - QList colors; - colors.append(QColor(QRgb(0x209fdf))); - theme->setBaseColors(colors); - theme->setColorStyle(Q3DTheme::ColorStyleUniform); - theme->setGridLineColor(QColor(QRgb(0x99ca53))); - theme->setHighlightLightStrength(7.0f); - theme->setLabelBackgroundEnabled(true); - theme->setLabelBorderEnabled(true); - theme->setLightColor(Qt::white); - theme->setLightStrength(6.0f); - theme->setMultiHighlightColor(QColor(QRgb(0x6d5fd5))); - theme->setSingleHighlightColor(QColor(QRgb(0xf6a625))); - theme->setLabelBackgroundColor(QColor(0xf6, 0xa6, 0x25, 0xa0)); - theme->setLabelTextColor(QColor(QRgb(0x404044))); - theme->setWindowColor(QColor(QRgb(0xffffff))); - - m_graph->setTheme(theme); + // Own theme is persistent, any changes to it via UI will be remembered + if (!m_ownTheme) { + m_ownTheme = new Q3DTheme(); + m_ownTheme->setBackgroundEnabled(true); + m_ownTheme->setGridEnabled(true); + m_ownTheme->setAmbientLightStrength(0.3f); + m_ownTheme->setBackgroundColor(QColor(QRgb(0x99ca53))); + QList colors; + colors.append(QColor(QRgb(0x209fdf))); + m_ownTheme->setBaseColors(colors); + m_ownTheme->setColorStyle(Q3DTheme::ColorStyleUniform); + m_ownTheme->setGridLineColor(QColor(QRgb(0x99ca53))); + m_ownTheme->setHighlightLightStrength(7.0f); + m_ownTheme->setLabelBackgroundEnabled(true); + m_ownTheme->setLabelBorderEnabled(true); + m_ownTheme->setLightColor(Qt::white); + m_ownTheme->setLightStrength(6.0f); + m_ownTheme->setMultiHighlightColor(QColor(QRgb(0x6d5fd5))); + m_ownTheme->setSingleHighlightColor(QColor(QRgb(0xf6a625))); + m_ownTheme->setLabelBackgroundColor(QColor(0xf6, 0xa6, 0x25, 0xa0)); + m_ownTheme->setLabelTextColor(QColor(QRgb(0x404044))); + m_ownTheme->setWindowColor(QColor(QRgb(0xffffff))); + } + + Q3DTheme *currentTheme = m_graph->activeTheme(); + if (currentTheme != m_ownTheme) { + m_graph->releaseTheme(currentTheme); + delete currentTheme; + } + m_graph->setActiveTheme(m_ownTheme); m_colorDialog->open(); } @@ -852,7 +866,7 @@ void GraphModifier::changeBaseColor(const QColor &color) qDebug() << "base color changed to" << color; QList colors; colors.append(color); - m_graph->theme()->setBaseColors(colors); + m_graph->activeTheme()->setBaseColors(colors); } void GraphModifier::setGradient() @@ -883,9 +897,9 @@ void GraphModifier::setGradient() QList barGradients; barGradients.append(barGradient); - m_graph->theme()->setBaseGradients(barGradients); - m_graph->theme()->setSingleHighlightGradient(singleHighlightGradient); - m_graph->theme()->setMultiHighlightGradient(multiHighlightGradient); + m_graph->activeTheme()->setBaseGradients(barGradients); + m_graph->activeTheme()->setSingleHighlightGradient(singleHighlightGradient); + m_graph->activeTheme()->setMultiHighlightGradient(multiHighlightGradient); - m_graph->theme()->setColorStyle(Q3DTheme::ColorStyleObjectGradient); + m_graph->activeTheme()->setColorStyle(Q3DTheme::ColorStyleObjectGradient); } diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 96038b9f..3948ca8f 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -129,6 +129,7 @@ private: bool m_negativeValuesOn; bool m_useNullInputHandler; QAbstract3DInputHandler *m_defaultInputHandler; + Q3DTheme *m_ownTheme; }; #endif diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 99354caf..177d86b7 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -45,15 +45,15 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_started(false) { // Initialize surface - m_surface->setTheme(new Q3DTheme(Q3DTheme::ThemeIsabelle)); + m_surface->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeIsabelle)); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::black); gradient.setColorAt(0.33, Qt::blue); gradient.setColorAt(0.67, Qt::red); gradient.setColorAt(1.0, Qt::yellow); m_surface->setSelectionMode(QDataVis::SelectionNone); - m_surface->theme()->setGridEnabled(false); - m_surface->theme()->setBackgroundEnabled(false); + m_surface->activeTheme()->setGridEnabled(false); + m_surface->activeTheme()->setBackgroundEnabled(false); m_surface->scene()->activeCamera()->setCameraPosition(0.0, 90.0, 150); QSurface3DSeries *series1 = new QSurface3DSeries(new QHeightMapSurfaceDataProxy()); series1->setFlatShadingEnabled(true); @@ -63,9 +63,9 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_surface->addSeries(series1); // Initialize scatter - m_scatter->setTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + m_scatter->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); m_scatter->setSelectionMode(QDataVis::SelectionNone); - m_scatter->theme()->setGridEnabled(false); + m_scatter->activeTheme()->setGridEnabled(false); m_scatter->setShadowQuality(QDataVis::ShadowQualitySoftLow); m_scatter->scene()->activeCamera()->setCameraPosition(0.0, 85.0, 150); QScatter3DSeries *series2 = new QScatter3DSeries; @@ -73,9 +73,9 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_scatter->addSeries(series2); // Initialize bars - m_bars->setTheme(new Q3DTheme(Q3DTheme::ThemeQt)); + m_bars->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeQt)); m_bars->setSelectionMode(QDataVis::SelectionItemAndRow | QDataVis::SelectionSlice); - m_bars->theme()->setGridEnabled(false); + m_bars->activeTheme()->setGridEnabled(false); m_bars->setShadowQuality(QDataVis::ShadowQualityLow); m_bars->setBarSpacing(QSizeF(0.0, 0.0)); m_bars->scene()->activeCamera()->setCameraPosition(0.0, 75.0, 150); @@ -185,24 +185,32 @@ void Data::scrollDown() void Data::useGradientOne() { - m_surface->setTheme(new Q3DTheme(Q3DTheme::ThemeIsabelle)); + Q3DTheme *currentTheme = m_surface->activeTheme(); + m_surface->releaseTheme(currentTheme); + delete currentTheme; + m_surface->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeIsabelle)); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::black); gradient.setColorAt(0.33, Qt::blue); gradient.setColorAt(0.67, Qt::red); gradient.setColorAt(1.0, Qt::yellow); m_surface->seriesList().at(0)->setBaseGradient(gradient); + m_surface->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleRangeGradient); m_statusArea->append(QStringLiteral("Colors: Thermal image imitation")); } void Data::useGradientTwo() { - m_surface->setTheme(new Q3DTheme(Q3DTheme::ThemeQt)); + Q3DTheme *currentTheme = m_surface->activeTheme(); + m_surface->releaseTheme(currentTheme); + delete currentTheme; + m_surface->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeQt)); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::white); gradient.setColorAt(0.8, Qt::red); gradient.setColorAt(1.0, Qt::green); m_surface->seriesList().at(0)->setBaseGradient(gradient); + m_surface->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleRangeGradient); m_statusArea->append(QStringLiteral("Colors: Highlight foreground")); } diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index b1df526a..10f48465 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -37,10 +37,10 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) m_selectedItem(-1), m_targetSeries(0) { - m_chart->setTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); - QFont font = m_chart->theme()->font(); + m_chart->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + QFont font = m_chart->activeTheme()->font(); font.setPointSize(m_fontSize); - m_chart->theme()->setFont(font); + m_chart->activeTheme()->setFont(font); m_chart->setShadowQuality(QDataVis::ShadowQualityNone); m_chart->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); m_chart->setAxisX(new Q3DValueAxis); @@ -161,7 +161,10 @@ void ScatterDataModifier::changeTheme() { static int theme = Q3DTheme::ThemeQt; - m_chart->setTheme(new Q3DTheme(Q3DTheme::Theme(theme))); + Q3DTheme *currentTheme = m_chart->activeTheme(); + m_chart->releaseTheme(currentTheme); + delete currentTheme; + m_chart->setActiveTheme(new Q3DTheme(Q3DTheme::Theme(theme))); if (++theme > Q3DTheme::ThemeIsabelle) theme = Q3DTheme::ThemeQt; @@ -169,22 +172,22 @@ void ScatterDataModifier::changeTheme() void ScatterDataModifier::changeLabelStyle() { - m_chart->theme()->setLabelBackgroundEnabled(!m_chart->theme()->isLabelBackgroundEnabled()); + m_chart->activeTheme()->setLabelBackgroundEnabled(!m_chart->activeTheme()->isLabelBackgroundEnabled()); } void ScatterDataModifier::changeFont(const QFont &font) { QFont newFont = font; newFont.setPointSizeF(m_fontSize); - m_chart->theme()->setFont(newFont); + m_chart->activeTheme()->setFont(newFont); } void ScatterDataModifier::changeFontSize(int fontSize) { m_fontSize = fontSize; - QFont font = m_chart->theme()->font(); + QFont font = m_chart->activeTheme()->font(); font.setPointSize(m_fontSize); - m_chart->theme()->setFont(font); + m_chart->activeTheme()->setFont(font); } void ScatterDataModifier::changePointSize(int pointSize) @@ -470,12 +473,12 @@ void ScatterDataModifier::changeShadowQuality(int quality) void ScatterDataModifier::setBackgroundEnabled(int enabled) { - m_chart->theme()->setBackgroundEnabled((bool)enabled); + m_chart->activeTheme()->setBackgroundEnabled((bool)enabled); } void ScatterDataModifier::setGridEnabled(int enabled) { - m_chart->theme()->setGridEnabled((bool)enabled); + m_chart->activeTheme()->setGridEnabled((bool)enabled); } QVector3D ScatterDataModifier::randVector() diff --git a/tests/spectrum/spectrumapp/main.cpp b/tests/spectrum/spectrumapp/main.cpp index 311de719..92965c1c 100644 --- a/tests/spectrum/spectrumapp/main.cpp +++ b/tests/spectrum/spectrumapp/main.cpp @@ -74,7 +74,7 @@ MainApp::MainApp(Q3DBars *window) m_chart->rowAxis()->setMax(SpectrumNumBands * 2); m_chart->columnAxis()->setMax(SpectrumNumBands - 1); // Disable grid - m_chart->theme()->setGridEnabled(false); + m_chart->activeTheme()->setGridEnabled(false); // Disable auto-scaling of height by defining explicit range m_chart->valueAxis()->setRange(0.0f, 1.0f); // Disable shadows diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 3474b67f..749b1c69 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -338,12 +338,12 @@ void GraphModifier::changeFont(const QFont &font) { QFont newFont = font; newFont.setPointSizeF(m_fontSize); - m_graph->theme()->setFont(newFont); + m_graph->activeTheme()->setFont(newFont); } void GraphModifier::changeStyle() { - m_graph->theme()->setLabelBackgroundEnabled(!m_graph->theme()->isLabelBackgroundEnabled()); + m_graph->activeTheme()->setLabelBackgroundEnabled(!m_graph->activeTheme()->isLabelBackgroundEnabled()); } void GraphModifier::selectButtonClicked() @@ -363,7 +363,10 @@ void GraphModifier::selectedPointChanged(const QPoint &point) void GraphModifier::changeTheme(int theme) { - m_graph->setTheme(new Q3DTheme(Q3DTheme::Theme(theme))); + Q3DTheme *currentTheme = m_graph->activeTheme(); + m_graph->releaseTheme(currentTheme); + delete currentTheme; + m_graph->setActiveTheme(new Q3DTheme(Q3DTheme::Theme(theme))); } diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index c25c5b89..5a26c7ce 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -52,7 +52,7 @@ int main(int argc, char *argv[]) QSize screenSize = surfaceGraph->screen()->size(); // Set to default, should be same as the initial on themeList - surfaceGraph->setTheme(new Q3DTheme(Q3DTheme::Theme(initialTheme))); + surfaceGraph->setActiveTheme(new Q3DTheme(Q3DTheme::Theme(initialTheme))); QWidget *container = QWidget::createWindowContainer(surfaceGraph); container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2)); -- cgit v1.2.3 From 8566d712a87d9e3a78be15b6bd3498c2cf8afe57 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 7 Jan 2014 10:46:26 +0200 Subject: Fix setting theme type Now reset the theme properties immediately to new theme type, instead of waiting for the theme activation. Also make changing theme type later work consistently. Task-number: QTRD-2750 Change-Id: I970d69587623119df33ad2a825fbc12367804eae Reviewed-by: Mika Salmela --- tests/barstest/chart.cpp | 18 ++++++------------ tests/barstest/chart.h | 1 + tests/multigraphs/data.cpp | 16 +++++----------- tests/scattertest/scatterchart.cpp | 7 ++----- tests/surfacetest/graphmodifier.cpp | 5 +---- tests/surfacetest/main.cpp | 2 +- 6 files changed, 16 insertions(+), 33 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 5c36607e..73f0074c 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -64,7 +64,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_negativeValuesOn(false), m_useNullInputHandler(false), m_defaultInputHandler(0), - m_ownTheme(0) + m_ownTheme(0), + m_builtinTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)) { // Generate generic labels QStringList genericColumnLabels; @@ -117,7 +118,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_graph->addAxis(m_genericRowAxis); m_graph->addAxis(m_genericColumnAxis); - m_graph->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + m_graph->setActiveTheme(m_builtinTheme); m_graph->setShadowQuality(QDataVis::ShadowQualitySoftMedium); m_temperatureData->setItemLabelFormat(QStringLiteral("1: @valueTitle for @colLabel @rowLabel: @valueLabel")); @@ -578,11 +579,9 @@ void GraphModifier::changeTheme() static int theme = Q3DTheme::ThemeQt; Q3DTheme *currentTheme = m_graph->activeTheme(); - if (currentTheme != m_ownTheme) { - m_graph->releaseTheme(currentTheme); - delete currentTheme; - } - m_graph->setActiveTheme(new Q3DTheme((Q3DTheme::Theme)theme)); + m_builtinTheme->setType(Q3DTheme::Theme(theme)); + if (currentTheme == m_ownTheme) + m_graph->setActiveTheme(m_builtinTheme); switch (theme) { case Q3DTheme::ThemeQt: @@ -851,11 +850,6 @@ void GraphModifier::useOwnTheme() m_ownTheme->setWindowColor(QColor(QRgb(0xffffff))); } - Q3DTheme *currentTheme = m_graph->activeTheme(); - if (currentTheme != m_ownTheme) { - m_graph->releaseTheme(currentTheme); - delete currentTheme; - } m_graph->setActiveTheme(m_ownTheme); m_colorDialog->open(); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 3948ca8f..77b10093 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -130,6 +130,7 @@ private: bool m_useNullInputHandler; QAbstract3DInputHandler *m_defaultInputHandler; Q3DTheme *m_ownTheme; + Q3DTheme *m_builtinTheme; }; #endif diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 177d86b7..7ba5685f 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -45,7 +45,7 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_started(false) { // Initialize surface - m_surface->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeIsabelle)); + m_surface->activeTheme()->setType(Q3DTheme::ThemeIsabelle); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::black); gradient.setColorAt(0.33, Qt::blue); @@ -63,7 +63,7 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_surface->addSeries(series1); // Initialize scatter - m_scatter->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + m_scatter->activeTheme()->setType(Q3DTheme::ThemeStoneMoss); m_scatter->setSelectionMode(QDataVis::SelectionNone); m_scatter->activeTheme()->setGridEnabled(false); m_scatter->setShadowQuality(QDataVis::ShadowQualitySoftLow); @@ -73,7 +73,7 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_scatter->addSeries(series2); // Initialize bars - m_bars->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeQt)); + m_bars->activeTheme()->setType(Q3DTheme::ThemeQt); m_bars->setSelectionMode(QDataVis::SelectionItemAndRow | QDataVis::SelectionSlice); m_bars->activeTheme()->setGridEnabled(false); m_bars->setShadowQuality(QDataVis::ShadowQualityLow); @@ -185,10 +185,7 @@ void Data::scrollDown() void Data::useGradientOne() { - Q3DTheme *currentTheme = m_surface->activeTheme(); - m_surface->releaseTheme(currentTheme); - delete currentTheme; - m_surface->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeIsabelle)); + m_surface->activeTheme()->setType(Q3DTheme::ThemeIsabelle); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::black); gradient.setColorAt(0.33, Qt::blue); @@ -201,10 +198,7 @@ void Data::useGradientOne() void Data::useGradientTwo() { - Q3DTheme *currentTheme = m_surface->activeTheme(); - m_surface->releaseTheme(currentTheme); - delete currentTheme; - m_surface->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeQt)); + m_surface->activeTheme()->setType(Q3DTheme::ThemeQt); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::white); gradient.setColorAt(0.8, Qt::red); diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 10f48465..2277ca3f 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -37,7 +37,7 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) m_selectedItem(-1), m_targetSeries(0) { - m_chart->setActiveTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)); + m_chart->activeTheme()->setType(Q3DTheme::ThemeStoneMoss); QFont font = m_chart->activeTheme()->font(); font.setPointSize(m_fontSize); m_chart->activeTheme()->setFont(font); @@ -161,10 +161,7 @@ void ScatterDataModifier::changeTheme() { static int theme = Q3DTheme::ThemeQt; - Q3DTheme *currentTheme = m_chart->activeTheme(); - m_chart->releaseTheme(currentTheme); - delete currentTheme; - m_chart->setActiveTheme(new Q3DTheme(Q3DTheme::Theme(theme))); + m_chart->activeTheme()->setType(Q3DTheme::Theme(theme)); if (++theme > Q3DTheme::ThemeIsabelle) theme = Q3DTheme::ThemeQt; diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 749b1c69..be96a696 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -363,10 +363,7 @@ void GraphModifier::selectedPointChanged(const QPoint &point) void GraphModifier::changeTheme(int theme) { - Q3DTheme *currentTheme = m_graph->activeTheme(); - m_graph->releaseTheme(currentTheme); - delete currentTheme; - m_graph->setActiveTheme(new Q3DTheme(Q3DTheme::Theme(theme))); + m_graph->activeTheme()->setType(Q3DTheme::Theme(theme)); } diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 5a26c7ce..54c27981 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -52,7 +52,7 @@ int main(int argc, char *argv[]) QSize screenSize = surfaceGraph->screen()->size(); // Set to default, should be same as the initial on themeList - surfaceGraph->setActiveTheme(new Q3DTheme(Q3DTheme::Theme(initialTheme))); + surfaceGraph->activeTheme()->setType(Q3DTheme::Theme(initialTheme)); QWidget *container = QWidget::createWindowContainer(surfaceGraph); container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 2)); -- cgit v1.2.3 From 467e729eabece018cd42eeee0160f932983561b0 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 7 Jan 2014 13:11:34 +0200 Subject: Rename axis classes Moved the '3D' in axis class names so that the classes would be in line with other '3D' classes. Task-number: QTRD-2674 Change-Id: Ie4f8a10babe3bf1b0b30b366863f55ed02ec66ba Reviewed-by: Mika Salmela --- tests/barstest/chart.cpp | 18 +++++++++--------- tests/barstest/chart.h | 16 ++++++++-------- tests/kinectsurface/surfacedata.cpp | 2 +- tests/multigraphs/data.cpp | 2 +- tests/scattertest/scatterchart.cpp | 14 +++++++------- tests/spectrum/spectrumapp/main.cpp | 4 ++-- tests/surfacetest/graphmodifier.cpp | 8 ++++---- 7 files changed, 32 insertions(+), 32 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 73f0074c..24fe1b52 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -17,8 +17,8 @@ ****************************************************************************/ #include "chart.h" -#include -#include +#include +#include #include #include #include @@ -45,13 +45,13 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_minval(-16.0f), m_maxval(20.0f), m_selectedBar(-1, -1), - m_autoAdjustingAxis(new Q3DValueAxis), - m_fixedRangeAxis(new Q3DValueAxis), - m_temperatureAxis(new Q3DValueAxis), - m_yearAxis(new Q3DCategoryAxis), - m_monthAxis(new Q3DCategoryAxis), - m_genericRowAxis(new Q3DCategoryAxis), - m_genericColumnAxis(new Q3DCategoryAxis), + m_autoAdjustingAxis(new QValue3DAxis), + m_fixedRangeAxis(new QValue3DAxis), + m_temperatureAxis(new QValue3DAxis), + m_yearAxis(new QCategory3DAxis), + m_monthAxis(new QCategory3DAxis), + m_genericRowAxis(new QCategory3DAxis), + m_genericColumnAxis(new QCategory3DAxis), m_temperatureData(new QBar3DSeries), m_temperatureData2(new QBar3DSeries), m_genericData(new QBar3DSeries), diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 77b10093..c75e5024 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -110,13 +110,13 @@ private: QStringList m_months; QStringList m_years; QPoint m_selectedBar; - Q3DValueAxis *m_autoAdjustingAxis; - Q3DValueAxis *m_fixedRangeAxis; - Q3DValueAxis *m_temperatureAxis; - Q3DCategoryAxis *m_yearAxis; - Q3DCategoryAxis *m_monthAxis; - Q3DCategoryAxis *m_genericRowAxis; - Q3DCategoryAxis *m_genericColumnAxis; + QValue3DAxis *m_autoAdjustingAxis; + QValue3DAxis *m_fixedRangeAxis; + QValue3DAxis *m_temperatureAxis; + QCategory3DAxis *m_yearAxis; + QCategory3DAxis *m_monthAxis; + QCategory3DAxis *m_genericRowAxis; + QCategory3DAxis *m_genericColumnAxis; QBar3DSeries *m_temperatureData; QBar3DSeries *m_temperatureData2; QBar3DSeries *m_genericData; @@ -125,7 +125,7 @@ private: QBar3DSeries *m_dummyData3; QBar3DSeries *m_dummyData4; QBar3DSeries *m_dummyData5; - Q3DValueAxis *m_currentAxis; + QValue3DAxis *m_currentAxis; bool m_negativeValuesOn; bool m_useNullInputHandler; QAbstract3DInputHandler *m_defaultInputHandler; diff --git a/tests/kinectsurface/surfacedata.cpp b/tests/kinectsurface/surfacedata.cpp index fe94519a..c0fb4a04 100644 --- a/tests/kinectsurface/surfacedata.cpp +++ b/tests/kinectsurface/surfacedata.cpp @@ -20,7 +20,7 @@ #include "surfacedata.h" #include "QKinectWrapper.h" -#include +#include #include #include #include diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 7ba5685f..9e8a5196 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -19,7 +19,7 @@ #define NOMINMAX #include "data.h" -#include +#include #include #include #include diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 2277ca3f..58add6ec 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -19,7 +19,7 @@ #include "scatterchart.h" #include #include -#include +#include #include #include #include @@ -43,9 +43,9 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) m_chart->activeTheme()->setFont(font); m_chart->setShadowQuality(QDataVis::ShadowQualityNone); m_chart->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); - m_chart->setAxisX(new Q3DValueAxis); - m_chart->setAxisY(new Q3DValueAxis); - m_chart->setAxisZ(new Q3DValueAxis); + m_chart->setAxisX(new QValue3DAxis); + m_chart->setAxisY(new QValue3DAxis); + m_chart->setAxisZ(new QValue3DAxis); createAndAddSeries(); createAndAddSeries(); @@ -217,9 +217,9 @@ void ScatterDataModifier::resetAxes() m_chart->releaseAxis(m_chart->axisY()); m_chart->releaseAxis(m_chart->axisZ()); - m_chart->setAxisX(new Q3DValueAxis); - m_chart->setAxisY(new Q3DValueAxis); - m_chart->setAxisZ(new Q3DValueAxis); + m_chart->setAxisX(new QValue3DAxis); + m_chart->setAxisY(new QValue3DAxis); + m_chart->setAxisZ(new QValue3DAxis); m_chart->axisX()->setSegmentCount(5); m_chart->axisY()->setSegmentCount(5); m_chart->axisZ()->setSegmentCount(5); diff --git a/tests/spectrum/spectrumapp/main.cpp b/tests/spectrum/spectrumapp/main.cpp index 92965c1c..c4fe111d 100644 --- a/tests/spectrum/spectrumapp/main.cpp +++ b/tests/spectrum/spectrumapp/main.cpp @@ -21,8 +21,8 @@ #include #include -#include -#include +#include +#include #include #include #include diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index be96a696..bd44c1dc 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -17,7 +17,7 @@ ****************************************************************************/ #include "graphmodifier.h" -#include +#include #include #include #include @@ -55,9 +55,9 @@ GraphModifier::GraphModifier(Q3DSurface *graph) m_theSeries(new QSurface3DSeries), m_drawMode(QSurface3DSeries::DrawSurfaceAndWireframe) { - m_graph->setAxisX(new Q3DValueAxis); - m_graph->setAxisY(new Q3DValueAxis); - m_graph->setAxisZ(new Q3DValueAxis); + m_graph->setAxisX(new QValue3DAxis); + m_graph->setAxisY(new QValue3DAxis); + m_graph->setAxisZ(new QValue3DAxis); m_graph->axisX()->setRange(m_minX, m_minX + m_rangeX); m_graph->axisZ()->setRange(m_minZ, m_minZ + m_rangeZ); m_graph->addSeries(m_theSeries); -- cgit v1.2.3 From 0144b397eff1340497ac2e599f7d9238bf99609c Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 8 Jan 2014 11:32:33 +0200 Subject: Enable showing multiple graphs in QML MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit + other minor fixes Task-number: QTRD-2749 Change-Id: I654d41fd4124d6596f9df3ace7019706452d8bfa Reviewed-by: Pasi Keränen --- tests/qmldynamicdata/qmldynamicdata.pro | 2 +- tests/qmlmultigraph/main.cpp | 54 +++++++ tests/qmlmultigraph/qml/qmlmultigraph/main.qml | 162 +++++++++++++++++++ .../qmlmultigraph/qml/qmlmultigraph/newbutton.qml | 52 ++++++ tests/qmlmultigraph/qmlmultigraph.pro | 25 +++ tests/qmlmultigraph/qmlmultigraph.qrc | 6 + .../qtquick2applicationviewer.cpp | 81 ++++++++++ .../qtquick2applicationviewer.h | 33 ++++ .../qtquick2applicationviewer.pri | 180 +++++++++++++++++++++ tests/tests.pro | 3 +- 10 files changed, 596 insertions(+), 2 deletions(-) create mode 100644 tests/qmlmultigraph/main.cpp create mode 100644 tests/qmlmultigraph/qml/qmlmultigraph/main.qml create mode 100644 tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml create mode 100644 tests/qmlmultigraph/qmlmultigraph.pro create mode 100644 tests/qmlmultigraph/qmlmultigraph.qrc create mode 100644 tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp create mode 100644 tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h create mode 100644 tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri (limited to 'tests') diff --git a/tests/qmldynamicdata/qmldynamicdata.pro b/tests/qmldynamicdata/qmldynamicdata.pro index da987ff0..b95f1577 100644 --- a/tests/qmldynamicdata/qmldynamicdata.pro +++ b/tests/qmldynamicdata/qmldynamicdata.pro @@ -1,5 +1,5 @@ !include( ../tests.pri ) { - error( "Couldn't find the examples.pri file!" ) + error( "Couldn't find the tests.pri file!" ) } QT += widgets diff --git a/tests/qmlmultigraph/main.cpp b/tests/qmlmultigraph/main.cpp new file mode 100644 index 00000000..d4fb669f --- /dev/null +++ b/tests/qmlmultigraph/main.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include +#include "qtquick2applicationviewer.h" +#ifdef Q_OS_ANDROID +#include +#include +#endif +#include + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QtQuick2ApplicationViewer viewer; + +#if !defined(QT_OPENGL_ES_2) + // Enable antialiasing + QSurfaceFormat surfaceFormat; + surfaceFormat.setDepthBufferSize(24); + surfaceFormat.setSamples(8); + surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL); + surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer); + viewer.setFormat(surfaceFormat); +#endif + +#ifdef Q_OS_ANDROID + viewer.addImportPath(QString::fromLatin1("assets:/qml")); + viewer.engine()->addPluginPath(QString::fromLatin1("%1/../%2").arg(QDir::homePath(), + QString::fromLatin1("lib"))); +#endif + viewer.setTitle(QStringLiteral("QML multigraph test")); + viewer.setSource(QUrl("qrc:/qml/main.qml")); + viewer.setResizeMode(QQuickView::SizeRootObjectToView); + viewer.showMaximized(); + + return app.exec(); +} diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml new file mode 100644 index 00000000..fdc49132 --- /dev/null +++ b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml @@ -0,0 +1,162 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Layouts 1.0 +import QtDataVisualization 1.0 +import "." + +Item { + id: mainView + + Bars3D { + id: barGraph + width: parent.width / 3 + anchors.top: emptySpace.bottom + anchors.bottom: parent.bottom + theme: Theme3D { type: Theme3D.ThemeIsabelle } + //clearWindowBeforeRendering: false + + Bar3DSeries { + itemLabelFormat: "@colLabel, @rowLabel: @valueLabel" + + ItemModelBarDataProxy { + itemModel: barDataModel + // Mapping model roles to bar series rows, columns, and values. + rowRole: "year" + columnRole: "city" + valueRole: "expenses" + } + } + } + + ListModel { + id: barDataModel + ListElement{ year: "2012"; city: "Oulu"; expenses: "4200"; } + ListElement{ year: "2012"; city: "Rauma"; expenses: "2100"; } + ListElement{ year: "2012"; city: "Helsinki"; expenses: "7040"; } + ListElement{ year: "2012"; city: "Tampere"; expenses: "4330"; } + ListElement{ year: "2013"; city: "Oulu"; expenses: "3960"; } + ListElement{ year: "2013"; city: "Rauma"; expenses: "1990"; } + ListElement{ year: "2013"; city: "Helsinki"; expenses: "7230"; } + ListElement{ year: "2013"; city: "Tampere"; expenses: "4650"; } + } + + Scatter3D { + id: scatterGraph + width: parent.width / 3 + anchors.left: barGraph.right + anchors.top: emptySpace.bottom + anchors.bottom: parent.bottom + theme: Theme3D { type: Theme3D.ThemeIsabelle } + //clearWindowBeforeRendering: false + + Scatter3DSeries { + ItemModelScatterDataProxy { + itemModel: scatterDataModel + // Mapping model roles to scatter series item coordinates. + xPosRole: "xPos" + yPosRole: "yPos" + zPosRole: "zPos" + } + } + } + + ListModel { + id: scatterDataModel + ListElement{ xPos: "2.754"; yPos: "1.455"; zPos: "3.362"; } + ListElement{ xPos: "3.164"; yPos: "2.022"; zPos: "4.348"; } + ListElement{ xPos: "4.564"; yPos: "1.865"; zPos: "1.346"; } + ListElement{ xPos: "1.068"; yPos: "1.224"; zPos: "2.983"; } + ListElement{ xPos: "2.323"; yPos: "2.502"; zPos: "3.133"; } + } + + Surface3D { + id: surfaceGraph + width: parent.width / 3 + anchors.left: scatterGraph.right + anchors.top: emptySpace.bottom + anchors.bottom: parent.bottom + theme: Theme3D { type: Theme3D.ThemeIsabelle } + //clearWindowBeforeRendering: false + + Surface3DSeries { + itemLabelFormat: "Pop density at (@xLabel N, @zLabel E): @yLabel" + ItemModelSurfaceDataProxy { + itemModel: surfaceDataModel + // Mapping model roles to surface series rows, columns, and values. + rowRole: "longitude" + columnRole: "latitude" + valueRole: "pop_density" + } + } + } + ListModel { + id: surfaceDataModel + ListElement{ longitude: "20"; latitude: "10"; pop_density: "4.75"; } + ListElement{ longitude: "21"; latitude: "10"; pop_density: "3.00"; } + ListElement{ longitude: "22"; latitude: "10"; pop_density: "1.24"; } + ListElement{ longitude: "23"; latitude: "10"; pop_density: "2.53"; } + ListElement{ longitude: "20"; latitude: "11"; pop_density: "2.55"; } + ListElement{ longitude: "21"; latitude: "11"; pop_density: "2.03"; } + ListElement{ longitude: "22"; latitude: "11"; pop_density: "3.46"; } + ListElement{ longitude: "23"; latitude: "11"; pop_density: "5.12"; } + ListElement{ longitude: "20"; latitude: "12"; pop_density: "1.37"; } + ListElement{ longitude: "21"; latitude: "12"; pop_density: "2.98"; } + ListElement{ longitude: "22"; latitude: "12"; pop_density: "3.33"; } + ListElement{ longitude: "23"; latitude: "12"; pop_density: "3.23"; } + ListElement{ longitude: "20"; latitude: "13"; pop_density: "4.34"; } + ListElement{ longitude: "21"; latitude: "13"; pop_density: "3.54"; } + ListElement{ longitude: "22"; latitude: "13"; pop_density: "1.65"; } + ListElement{ longitude: "23"; latitude: "13"; pop_density: "2.67"; } + } + + RowLayout { + id: buttonLayout + Layout.minimumHeight: exitButton.height + width: parent.width + anchors.left: parent.left + anchors.top: parent.top + spacing: 0 + + NewButton { + id: exitButton + Layout.fillHeight: true + Layout.fillWidth: true + text: "Quit" + onClicked: Qt.quit(0); + } + } + + Rectangle { + id: emptySpace + width: parent.width / 2 + height: parent.height / 8 + anchors.top: buttonLayout.bottom + anchors.left: parent.left + color: "#55555500" + } + + Item { + id: emptySpace2 + width: emptySpace.width + height: emptySpace.height + anchors.top: buttonLayout.bottom + anchors.left: emptySpace.right + } +} diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml b/tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml new file mode 100644 index 00000000..e44c9d1a --- /dev/null +++ b/tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml @@ -0,0 +1,52 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +import QtQuick 2.1 +import QtQuick.Controls 1.0 +import QtQuick.Controls.Styles 1.0 + +Item { + id: newbutton + + property alias text: buttonText.text + + signal clicked + + implicitWidth: buttonText.implicitWidth + 5 + implicitHeight: buttonText.implicitHeight + 10 + + Button { + id: buttonText + width: parent.width + height: parent.height + + style: ButtonStyle { + label: Component { + Text { + text: buttonText.text + clip: true + wrapMode: Text.WordWrap + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + anchors.fill: parent + } + } + } + onClicked: newbutton.clicked() + } +} diff --git a/tests/qmlmultigraph/qmlmultigraph.pro b/tests/qmlmultigraph/qmlmultigraph.pro new file mode 100644 index 00000000..1aca51c0 --- /dev/null +++ b/tests/qmlmultigraph/qmlmultigraph.pro @@ -0,0 +1,25 @@ +!include( ../tests.pri ) { + error( "Couldn't find the tests.pri file!" ) +} + +QT += widgets + +# Add more folders to ship with the application, here +folder_01.source = qml/qmlmultigraph +folder_01.target = qml +DEPLOYMENTFOLDERS = folder_01 + +# Additional import path used to resolve QML modules in Creator's code model +QML_IMPORT_PATH = + +# The .cpp file which was generated for your project. Feel free to hack it. +SOURCES += main.cpp + +# Please do not modify the following two lines. Required for deployment. +include(qtquick2applicationviewer/qtquick2applicationviewer.pri) +qtcAddDeployment() + +RESOURCES += qmlmultigraph.qrc + +OTHER_FILES += doc/src/* \ + doc/images/* diff --git a/tests/qmlmultigraph/qmlmultigraph.qrc b/tests/qmlmultigraph/qmlmultigraph.qrc new file mode 100644 index 00000000..78a5f993 --- /dev/null +++ b/tests/qmlmultigraph/qmlmultigraph.qrc @@ -0,0 +1,6 @@ + + + qml/qmlmultigraph/main.qml + qml/qmlmultigraph/newbutton.qml + + diff --git a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp new file mode 100644 index 00000000..10709d7a --- /dev/null +++ b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp @@ -0,0 +1,81 @@ +// checksum 0x4f6f version 0x90005 +/* + This file was generated by the Qt Quick 2 Application wizard of Qt Creator. + QtQuick2ApplicationViewer is a convenience class containing mobile device specific + code such as screen orientation handling. Also QML paths and debugging are + handled here. + It is recommended not to modify this file, since newer versions of Qt Creator + may offer an updated version of it. +*/ + +#include "qtquick2applicationviewer.h" + +#include +#include +#include + +class QtQuick2ApplicationViewerPrivate +{ + QString mainQmlFile; + friend class QtQuick2ApplicationViewer; + static QString adjustPath(const QString &path); +}; + +QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path) +{ +#if defined(Q_OS_MAC) + if (!QDir::isAbsolutePath(path)) + return QString::fromLatin1("%1/../Resources/%2") + .arg(QCoreApplication::applicationDirPath(), path); +#elif defined(Q_OS_BLACKBERRY) + if (!QDir::isAbsolutePath(path)) + return QString::fromLatin1("app/native/%1").arg(path); +#elif !defined(Q_OS_ANDROID) + QString pathInInstallDir = + QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path); + if (QFileInfo(pathInInstallDir).exists()) + return pathInInstallDir; + pathInInstallDir = + QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path); + if (QFileInfo(pathInInstallDir).exists()) + return pathInInstallDir; +#endif + return path; +} + +QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent) + : QQuickView(parent) + , d(new QtQuick2ApplicationViewerPrivate()) +{ + connect(engine(), SIGNAL(quit()), SLOT(close())); + setResizeMode(QQuickView::SizeRootObjectToView); +} + +QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer() +{ + delete d; +} + +void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file) +{ + d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file); +#ifdef Q_OS_ANDROID + setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile)); +#else + setSource(QUrl::fromLocalFile(d->mainQmlFile)); +#endif +} + +void QtQuick2ApplicationViewer::addImportPath(const QString &path) +{ + engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path)); +} + +void QtQuick2ApplicationViewer::showExpanded() +{ +#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX) + showFullScreen(); +#else + show(); +#endif +} diff --git a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h new file mode 100644 index 00000000..cf66f140 --- /dev/null +++ b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h @@ -0,0 +1,33 @@ +// checksum 0xfde6 version 0x90005 +/* + This file was generated by the Qt Quick 2 Application wizard of Qt Creator. + QtQuick2ApplicationViewer is a convenience class containing mobile device specific + code such as screen orientation handling. Also QML paths and debugging are + handled here. + It is recommended not to modify this file, since newer versions of Qt Creator + may offer an updated version of it. +*/ + +#ifndef QTQUICK2APPLICATIONVIEWER_H +#define QTQUICK2APPLICATIONVIEWER_H + +#include + +class QtQuick2ApplicationViewer : public QQuickView +{ + Q_OBJECT + +public: + explicit QtQuick2ApplicationViewer(QWindow *parent = 0); + virtual ~QtQuick2ApplicationViewer(); + + void setMainQmlFile(const QString &file); + void addImportPath(const QString &path); + + void showExpanded(); + +private: + class QtQuick2ApplicationViewerPrivate *d; +}; + +#endif // QTQUICK2APPLICATIONVIEWER_H diff --git a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri new file mode 100644 index 00000000..e5f7990f --- /dev/null +++ b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri @@ -0,0 +1,180 @@ +# checksum 0x7b0d version 0x90005 +# This file was generated by the Qt Quick 2 Application wizard of Qt Creator. +# The code below adds the QtQuick2ApplicationViewer to the project and handles +# the activation of QML debugging. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +QT += qml quick + +SOURCES += $$PWD/qtquick2applicationviewer.cpp +HEADERS += $$PWD/qtquick2applicationviewer.h +INCLUDEPATH += $$PWD +# This file was generated by an application wizard of Qt Creator. +# The code below handles deployment to Android and Maemo, aswell as copying +# of the application data to shadow build directories on desktop. +# It is recommended not to modify this file, since newer versions of Qt Creator +# may offer an updated version of it. + +defineTest(qtcAddDeployment) { +for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + greaterThan(QT_MAJOR_VERSION, 4) { + itemsources = $${item}.files + } else { + itemsources = $${item}.sources + } + $$itemsources = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath= $$eval($${deploymentfolder}.target) + export($$itemsources) + export($$itempath) + DEPLOYMENT += $$item +} + +MAINPROFILEPWD = $$PWD + +android-no-sdk { + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = /data/user/qt/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + target.path = /data/user/qt + + export(target.path) + INSTALLS += target +} else:android { + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = /assets/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + x86 { + target.path = /libs/x86 + } else: armeabi-v7a { + target.path = /libs/armeabi-v7a + } else { + target.path = /libs/armeabi + } + + export(target.path) + INSTALLS += target +} else:win32 { + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, /, \\) + sourcePathSegments = $$split(source, \\) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments) + target = $$replace(target, /, \\) + target ~= s,\\\\\\.?\\\\,\\, + !isEqual(source,$$target) { + !isEmpty(copyCommand):copyCommand += && + isEqual(QMAKE_DIR_SEP, \\) { + copyCommand += $(COPY_DIR) \"$$source\" \"$$target\" + } else { + source = $$replace(source, \\\\, /) + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + target = $$replace(target, \\\\, /) + copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\" + } + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } +} else:unix { + maemo5 { + desktopfile.files = $${TARGET}.desktop + desktopfile.path = /usr/share/applications/hildon + icon.files = $${TARGET}64.png + icon.path = /usr/share/icons/hicolor/64x64/apps + } else:!isEmpty(MEEGO_VERSION_MAJOR) { + desktopfile.files = $${TARGET}_harmattan.desktop + desktopfile.path = /usr/share/applications + icon.files = $${TARGET}80.png + icon.path = /usr/share/icons/hicolor/80x80/apps + } else { # Assumed to be a Desktop Unix + copyCommand = + for(deploymentfolder, DEPLOYMENTFOLDERS) { + source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) + source = $$replace(source, \\\\, /) + macx { + target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target) + } else { + target = $$OUT_PWD/$$eval($${deploymentfolder}.target) + } + target = $$replace(target, \\\\, /) + sourcePathSegments = $$split(source, /) + targetFullPath = $$target/$$last(sourcePathSegments) + targetFullPath ~= s,/\\.?/,/, + !isEqual(source,$$targetFullPath) { + !isEmpty(copyCommand):copyCommand += && + copyCommand += $(MKDIR) \"$$target\" + copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\" + } + } + !isEmpty(copyCommand) { + copyCommand = @echo Copying application data... && $$copyCommand + copydeploymentfolders.commands = $$copyCommand + first.depends = $(first) copydeploymentfolders + export(first.depends) + export(copydeploymentfolders.commands) + QMAKE_EXTRA_TARGETS += first copydeploymentfolders + } + } + !isEmpty(target.path) { + installPrefix = $${target.path} + } else { + installPrefix = /opt/$${TARGET} + } + for(deploymentfolder, DEPLOYMENTFOLDERS) { + item = item$${deploymentfolder} + itemfiles = $${item}.files + $$itemfiles = $$eval($${deploymentfolder}.source) + itempath = $${item}.path + $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target) + export($$itemfiles) + export($$itempath) + INSTALLS += $$item + } + + !isEmpty(desktopfile.path) { + export(icon.files) + export(icon.path) + export(desktopfile.files) + export(desktopfile.path) + INSTALLS += icon desktopfile + } + + isEmpty(target.path) { + target.path = $${installPrefix}/bin + export(target.path) + } + INSTALLS += target +} + +export (ICON) +export (INSTALLS) +export (DEPLOYMENT) +export (LIBS) +export (QMAKE_EXTRA_TARGETS) +} diff --git a/tests/tests.pro b/tests/tests.pro index 01b0f109..f2445c70 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -12,7 +12,8 @@ SUBDIRS += barstest \ surfacetest \ qmlcamera \ qmldynamicdata \ - multigraphs + multigraphs \ + qmlmultigraph #SUBDIRS += kinectsurface -- cgit v1.2.3 From 450dc3e6d74ffe93a761a5e2491458935ecac7b7 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 9 Jan 2014 09:55:52 +0200 Subject: Make active axes properties in C++ Also provide axis changed signals both C++ and QML. Some other minor fixes, too. Task-number: QTRD-2669 Change-Id: Ib797bffd6720382cf26359a9059e1809efdf58da Reviewed-by: Mika Salmela --- tests/barstest/chart.cpp | 21 +++++++++++ tests/barstest/chart.h | 4 +++ tests/multigraphs/data.cpp | 2 ++ tests/qmlmultigraph/qml/qmlmultigraph/main.qml | 48 ++++++++++++++++++++++++++ tests/scattertest/scatterchart.cpp | 22 ++++++++++++ tests/scattertest/scatterchart.h | 4 +++ tests/surfacetest/graphmodifier.cpp | 22 ++++++++++++ tests/surfacetest/graphmodifier.h | 4 +++ 8 files changed, 127 insertions(+) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 24fe1b52..4048e807 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -184,6 +184,13 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) QObject::connect(m_genericData, &QBar3DSeries::selectedBarChanged, this, &GraphModifier::handleSelectionChange); + QObject::connect(m_graph, &Q3DBars::rowAxisChanged, this, + &GraphModifier::handleRowAxisChanged); + QObject::connect(m_graph, &Q3DBars::columnAxisChanged, this, + &GraphModifier::handleColumnAxisChanged); + QObject::connect(m_graph, &Q3DBars::valueAxisChanged, this, + &GraphModifier::handleValueAxisChanged); + m_graph->addSeries(m_temperatureData); m_graph->addSeries(m_temperatureData2); @@ -681,6 +688,20 @@ void GraphModifier::setUseNullInputHandler(bool useNull) m_graph->setActiveInputHandler(m_defaultInputHandler); } +void GraphModifier::handleRowAxisChanged(QCategory3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->rowAxis()); +} + +void GraphModifier::handleColumnAxisChanged(QCategory3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->columnAxis()); +} + +void GraphModifier::handleValueAxisChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->valueAxis()); +} void GraphModifier::changeShadowQuality(int quality) { diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index c75e5024..f617a348 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -89,6 +89,10 @@ public slots: void handleSelectionChange(const QPoint &position); void setUseNullInputHandler(bool useNull); + void handleRowAxisChanged(QCategory3DAxis *axis); + void handleColumnAxisChanged(QCategory3DAxis *axis); + void handleValueAxisChanged(QValue3DAxis *axis); + signals: void shadowQualityChanged(int quality); diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 9e8a5196..70fcbad4 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -42,6 +42,8 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, m_resolution(QSize(300, 300)), m_resolutionLevel(0), m_mode(Surface), + m_scatterDataArray(0), + m_barDataArray(0), m_started(false) { // Initialize surface diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml index fdc49132..11c4ab2d 100644 --- a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml +++ b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml @@ -43,6 +43,16 @@ Item { valueRole: "expenses" } } + + onRowAxisChanged: { + console.log("Bars: Row axis changed.") + } + onColumnAxisChanged: { + console.log("Bars: column axis changed.") + } + onValueAxisChanged: { + console.log("Bars: Value axis changed.") + } } ListModel { @@ -75,6 +85,16 @@ Item { zPosRole: "zPos" } } + + onAxisXChanged: { + console.log("Scatter: axis X changed.") + } + onAxisYChanged: { + console.log("Scatter: axis Y changed.") + } + onAxisZChanged: { + console.log("Scatter: axis Z changed.") + } } ListModel { @@ -105,6 +125,16 @@ Item { valueRole: "pop_density" } } + + onAxisXChanged: { + console.log("Surface: axis X changed.") + } + onAxisYChanged: { + console.log("Surface: axis Y changed.") + } + onAxisZChanged: { + console.log("Surface: axis Z changed.") + } } ListModel { id: surfaceDataModel @@ -141,6 +171,24 @@ Item { text: "Quit" onClicked: Qt.quit(0); } + + NewButton { + id: resetAxesButton + Layout.fillHeight: true + Layout.fillWidth: true + text: "Reset axes" + onClicked: { + barGraph.rowAxis = null + barGraph.columnAxis = null + barGraph.valueAxis = null + scatterGraph.axisX = null + scatterGraph.axisY = null + scatterGraph.axisZ = null + surfaceGraph.axisX = null + surfaceGraph.axisY = null + surfaceGraph.axisZ = null + } + } } Rectangle { diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 58add6ec..97562861 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -55,6 +55,13 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) QObject::connect(&m_timer, &QTimer::timeout, this, &ScatterDataModifier::timeout); QObject::connect(m_chart, &Q3DScatter::shadowQualityChanged, this, &ScatterDataModifier::shadowQualityUpdatedByVisual); + + QObject::connect(m_chart, &Q3DScatter::axisXChanged, this, + &ScatterDataModifier::handleAxisXChanged); + QObject::connect(m_chart, &Q3DScatter::axisYChanged, this, + &ScatterDataModifier::handleAxisYChanged); + QObject::connect(m_chart, &Q3DScatter::axisZChanged, this, + &ScatterDataModifier::handleAxisZChanged); } ScatterDataModifier::~ScatterDataModifier() @@ -461,6 +468,21 @@ void ScatterDataModifier::removeSeries() } } +void ScatterDataModifier::handleAxisXChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisX()); +} + +void ScatterDataModifier::handleAxisYChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisY()); +} + +void ScatterDataModifier::handleAxisZChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisZ()); +} + void ScatterDataModifier::changeShadowQuality(int quality) { QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 5524929e..903c6fc0 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -68,6 +68,10 @@ public slots: void addSeries(); void removeSeries(); + void handleAxisXChanged(QValue3DAxis *axis); + void handleAxisYChanged(QValue3DAxis *axis); + void handleAxisZChanged(QValue3DAxis *axis); + signals: void shadowQualityChanged(int quality); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index bd44c1dc..58aee4cd 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -65,6 +65,13 @@ GraphModifier::GraphModifier(Q3DSurface *graph) connect(&m_timer, &QTimer::timeout, this, &GraphModifier::timeout); connect(m_theSeries, &QSurface3DSeries::selectedPointChanged, this, &GraphModifier::selectedPointChanged); + + QObject::connect(m_graph, &Q3DSurface::axisXChanged, this, + &GraphModifier::handleAxisXChanged); + QObject::connect(m_graph, &Q3DSurface::axisYChanged, this, + &GraphModifier::handleAxisYChanged); + QObject::connect(m_graph, &Q3DSurface::axisZChanged, this, + &GraphModifier::handleAxisZChanged); } GraphModifier::~GraphModifier() @@ -393,6 +400,21 @@ void GraphModifier::timeout() m_theSeries->dataProxy()->resetArray(m_planeArray); } +void GraphModifier::handleAxisXChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisX()); +} + +void GraphModifier::handleAxisYChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisY()); +} + +void GraphModifier::handleAxisZChanged(QValue3DAxis *axis) +{ + qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->axisZ()); +} + void GraphModifier::resetArrayAndSliders(QSurfaceDataArray *array, float minZ, float maxZ, float minX, float maxX) { m_axisMinSliderX->setValue(minX); diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index f0b5cce7..e3c11b5d 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -87,6 +87,10 @@ public slots: void changeSelectionMode(int mode); void timeout(); + void handleAxisXChanged(QValue3DAxis *axis); + void handleAxisYChanged(QValue3DAxis *axis); + void handleAxisZChanged(QValue3DAxis *axis); + private: void resetArrayAndSliders(QSurfaceDataArray *array, float minZ, float maxZ, float minX, float maxX); -- cgit v1.2.3 From 2203491ab2b639f3def805ea9cecbab1add32105 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 9 Jan 2014 12:47:06 +0200 Subject: Enable using custom surface format for c++ graphs Main benefit is to be able to opt out of antialiasing. Task-number: QTRD-2734 Change-Id: Ic0681356f93d55e87535910a533be3f845703044 Reviewed-by: Mika Salmela --- tests/barstest/main.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index e18aaed1..9147735e 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -42,7 +42,14 @@ int main(int argc, char **argv) QVBoxLayout *vLayout = new QVBoxLayout(); QVBoxLayout *vLayout2 = new QVBoxLayout(); - Q3DBars *widgetchart = new Q3DBars(); + // For testing custom surface format + QSurfaceFormat surfaceFormat; + surfaceFormat.setDepthBufferSize(24); +#if !defined(QT_OPENGL_ES_2) + surfaceFormat.setSamples(8); +#endif + + Q3DBars *widgetchart = new Q3DBars(&surfaceFormat); QSize screenSize = widgetchart->screen()->size(); QWidget *container = QWidget::createWindowContainer(widgetchart); -- cgit v1.2.3 From 2a4cff24ce61a830f7a119f33cb94c4eff78772e Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 9 Jan 2014 14:02:34 +0200 Subject: Implement public utility function for AA setup MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit qDefaultSurfaceFormat() can be used to set up antialiasing for QML apps in just two lines: ... viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); Task-number: QTRD-2734 Change-Id: I3f7ba728cef6310d794256e1dc4c28cc33b2f9a3 Reviewed-by: Pasi Keränen --- tests/qmlcamera/main.cpp | 10 ++-------- tests/qmldynamicdata/main.cpp | 10 ++-------- tests/qmlmultigraph/main.cpp | 10 ++-------- 3 files changed, 6 insertions(+), 24 deletions(-) (limited to 'tests') diff --git a/tests/qmlcamera/main.cpp b/tests/qmlcamera/main.cpp index f35e9fc8..ca5a7088 100644 --- a/tests/qmlcamera/main.cpp +++ b/tests/qmlcamera/main.cpp @@ -16,6 +16,7 @@ ** ****************************************************************************/ +#include #include #include "qtquick2applicationviewer.h" @@ -25,15 +26,8 @@ int main(int argc, char *argv[]) QtQuick2ApplicationViewer viewer; -#if !defined(QT_OPENGL_ES_2) // Enable antialiasing - QSurfaceFormat surfaceFormat; - surfaceFormat.setDepthBufferSize(24); - surfaceFormat.setSamples(8); - surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL); - surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer); - viewer.setFormat(surfaceFormat); -#endif + viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); #ifdef Q_OS_ANDROID viewer.addImportPath(QString::fromLatin1("assets:/qml")); diff --git a/tests/qmldynamicdata/main.cpp b/tests/qmldynamicdata/main.cpp index aedc026e..c2f52252 100644 --- a/tests/qmldynamicdata/main.cpp +++ b/tests/qmldynamicdata/main.cpp @@ -16,6 +16,7 @@ ** ****************************************************************************/ +#include #include #include "qtquick2applicationviewer.h" #ifdef Q_OS_ANDROID @@ -30,15 +31,8 @@ int main(int argc, char *argv[]) QtQuick2ApplicationViewer viewer; -#if !defined(QT_OPENGL_ES_2) // Enable antialiasing - QSurfaceFormat surfaceFormat; - surfaceFormat.setDepthBufferSize(24); - surfaceFormat.setSamples(8); - surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL); - surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer); - viewer.setFormat(surfaceFormat); -#endif + viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); #ifdef Q_OS_ANDROID viewer.addImportPath(QString::fromLatin1("assets:/qml")); diff --git a/tests/qmlmultigraph/main.cpp b/tests/qmlmultigraph/main.cpp index d4fb669f..9d9e5d8a 100644 --- a/tests/qmlmultigraph/main.cpp +++ b/tests/qmlmultigraph/main.cpp @@ -16,6 +16,7 @@ ** ****************************************************************************/ +#include #include #include "qtquick2applicationviewer.h" #ifdef Q_OS_ANDROID @@ -30,15 +31,8 @@ int main(int argc, char *argv[]) QtQuick2ApplicationViewer viewer; -#if !defined(QT_OPENGL_ES_2) // Enable antialiasing - QSurfaceFormat surfaceFormat; - surfaceFormat.setDepthBufferSize(24); - surfaceFormat.setSamples(8); - surfaceFormat.setRenderableType(QSurfaceFormat::OpenGL); - surfaceFormat.setSwapBehavior(QSurfaceFormat::DoubleBuffer); - viewer.setFormat(surfaceFormat); -#endif + viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); #ifdef Q_OS_ANDROID viewer.addImportPath(QString::fromLatin1("assets:/qml")); -- cgit v1.2.3 From b0fa490532581411a63796c9fed5d27e157ba5e8 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 10 Jan 2014 07:58:19 +0200 Subject: Remove hacky delete from multigraph Change-Id: I2969a3e30dc4f83801837b6ffa0897749364b361 Reviewed-by: Miikka Heikkinen --- tests/multigraphs/data.cpp | 19 ++++--------------- 1 file changed, 4 insertions(+), 15 deletions(-) (limited to 'tests') diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 70fcbad4..e70a01df 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -90,21 +90,10 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, } Data::~Data() -{ // HACK: The current context needs to be destroyed last - // TODO: Fix properly in datavis code somehow - if (m_mode == Surface) { - delete m_scatter; - delete m_bars; - delete m_surface; - } else if (m_mode == Bars) { - delete m_scatter; - delete m_surface; - delete m_bars; - } else { - delete m_bars; - delete m_surface; - delete m_scatter; - } +{ + delete m_bars; + delete m_surface; + delete m_scatter; delete m_widget; delete m_scatterDataArray; // only portion of this array is set to graph } -- cgit v1.2.3 From 9a8ef3afd23bfe1ab7f4669a470b38b7927a8b0f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 10 Jan 2014 09:41:52 +0200 Subject: Cache scatter series item size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTRD-2689 Change-Id: I8cd73a74f1ede49ce35c742712fbf3a5357f152e Reviewed-by: Pasi Keränen --- tests/scattertest/scatterchart.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests') diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 97562861..6b7fd910 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -112,6 +112,8 @@ void ScatterDataModifier::addData() m_chart->seriesList().at(0)->dataProxy()->resetArray(dataArray); m_chart->seriesList().at(1)->dataProxy()->resetArray(dataArray2); + m_chart->seriesList().at(0)->setItemSize(0.0f); + m_chart->seriesList().at(1)->setItemSize(0.0f); } void ScatterDataModifier::changeStyle() @@ -522,6 +524,7 @@ QScatter3DSeries *ScatterDataModifier::createAndAddSeries() series->setMesh(QAbstract3DSeries::MeshSphere); series->setMeshSmooth(true); series->setBaseColor(QColor(rand() % 256, rand() % 256, rand() % 256)); + series->setItemSize(float(rand() % 90 + 10) / 100.0f); QObject::connect(series, &QScatter3DSeries::selectedItemChanged, this, &ScatterDataModifier::handleSelectionChange); -- cgit v1.2.3 From b05e4498bdb82a32ba9d82fd6fc65727b99e745d Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 10 Jan 2014 09:55:21 +0200 Subject: Remove spectrum test from static builds, it doesn't compile Change-Id: I80e1c9665712c658f0162b0fca21fe5049d8c43a Reviewed-by: Miikka Heikkinen --- tests/tests.pro | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/tests.pro b/tests/tests.pro index f2445c70..7c3ce14c 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -17,10 +17,9 @@ SUBDIRS += barstest \ #SUBDIRS += kinectsurface -qtHaveModule(multimedia):!android: SUBDIRS += spectrum +qtHaveModule(multimedia):!android:!static: SUBDIRS += spectrum # For testing code snippets of minimal applications SUBDIRS += minimalbars \ minimalscatter \ minimalsurface - -- cgit v1.2.3 From 99d7cbbb8887382ea17dcbeb90a8d768bb9ebdb5 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 10 Jan 2014 15:08:47 +0200 Subject: Improve static build support. Now qml plugin can also be built statically. Change-Id: Id37f565ab9e02529fafaffa024acd69560b3703a Reviewed-by: Mika Salmela --- tests/tests.pri | 65 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 15 deletions(-) (limited to 'tests') diff --git a/tests/tests.pri b/tests/tests.pri index fd17b360..d374ea3b 100644 --- a/tests/tests.pri +++ b/tests/tests.pri @@ -19,6 +19,15 @@ TEMPLATE = app QT += datavisualization +!static:android { + # Add Qt library to be loaded in shared android build + vis_lib_name = DataVisualization + vis_src_lib = lib$${vis_lib_name}.so + vis_lib_dir = $$OUT_PWD/../../lib/$$vis_src_lib + vis_lib_formatted = $$replace(vis_lib_dir, /, $$QMAKE_DIR_SEP) + ANDROID_EXTRA_LIBS = $$vis_lib_formatted +} + contains(TARGET, qml.*) { uri = QtDataVisualization lib_name = datavisualizationqml2 @@ -29,46 +38,72 @@ contains(TARGET, qml.*) { make_qmldir_target = \"$$replace(make_qmldir_path, /, $$QMAKE_DIR_SEP)\" system($$QMAKE_MKDIR $$make_qmldir_target) } - copy_qmldir_examples.target = $$make_qmldir_path/qmldir - copy_qmldir_examples.depends = $$_PRO_FILE_PWD_/../../src/$$lib_name/qmldir - copy_qmldir_examples.commands = $(COPY_FILE) \"$$replace(copy_qmldir_examples.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir_examples.target, /, $$QMAKE_DIR_SEP)\" - QMAKE_EXTRA_TARGETS += copy_qmldir_examples - PRE_TARGETDEPS += $$copy_qmldir_examples.target + copy_qmldir.target = $$make_qmldir_path/qmldir + copy_qmldir.depends = $$_PRO_FILE_PWD_/../../src/$$lib_name/qmldir + copy_qmldir_formatted = \"$$replace(copy_qmldir.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_qmldir.target, /, $$QMAKE_DIR_SEP)\" + copy_qmldir.commands = $(COPY_FILE) $$copy_qmldir_formatted + QMAKE_EXTRA_TARGETS += copy_qmldir + PRE_TARGETDEPS += $$copy_qmldir.target + + static:contains(QT_CONFIG, static) { + # Make import scan find our copied qmldir & statically built qml lib + LIB_EXTENSION = lib + QMLPATHS += $$DESTDIR + # We need to copy the qmldir & lib already at qmake run stage as import scan is done then + exists($$copy_qmldir.depends): system($$QMAKE_COPY $$copy_qmldir_formatted) + } else { + win32 { + LIB_EXTENSION = dll + } else { + mac { + LIB_EXTENSION = dylib + } else { + LIB_EXTENSION = so + } + } + } win32 { CONFIG(debug, release|debug) { src_dir = debug - src_lib = $${lib_name}d.dll + src_lib = $${lib_name}d.$$LIB_EXTENSION } CONFIG(release, release|debug){ src_dir = release - src_lib = $${lib_name}.dll + src_lib = $${lib_name}.$$LIB_EXTENSION } } else { src_dir = . mac { CONFIG(debug, release|debug) { - src_lib = lib$${lib_name}_debug.dylib + src_lib = lib$${lib_name}_debug.$$LIB_EXTENSION } CONFIG(release, release|debug){ - src_lib = lib$${lib_name}.dylib + src_lib = lib$${lib_name}.$$LIB_EXTENSION } } else { # linux, android - src_lib = lib$${lib_name}.so + src_lib = lib$${lib_name}.$$LIB_EXTENSION } } copy_lib.target = $$make_qmldir_path/$$src_lib copy_lib.depends = $$OUT_PWD/../../src/$$lib_name/$$src_dir/$$src_lib - copy_lib.commands = $(COPY_FILE) \"$$replace(copy_lib.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_lib.target, /, $$QMAKE_DIR_SEP)\" + copy_lib_formatted = \"$$replace(copy_lib.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_lib.target, /, $$QMAKE_DIR_SEP)\" + copy_lib.commands = $(COPY_FILE) $$copy_lib_formatted QMAKE_EXTRA_TARGETS += copy_lib PRE_TARGETDEPS += $$copy_lib.target android { - android_qmldir.files = $$copy_qmldir_examples.target + system($$QMAKE_COPY $$copy_qmldir_formatted) + android_qmldir.files = $$copy_qmldir.target android_qmldir.path = /assets/qml/$$uri_replaced - android_qmlplugin.files = $$copy_lib.target - android_qmlplugin.path = $$target.path - INSTALLS += android_qmldir android_qmlplugin + INSTALLS += android_qmldir + # No need to do custom install for qml plugin lib when it is statically built into app + !static|!contains(QT_CONFIG, static) { + system($$QMAKE_COPY $$copy_lib_formatted) + android_qmlplugin.files = $$copy_lib.target + android_qmlplugin.path = $$target.path + INSTALLS += android_qmlplugin + } } } -- cgit v1.2.3 From 02f950176d3a0488875d451d3da0fc8b2312bec0 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 13 Jan 2014 10:22:43 +0200 Subject: Fix axis range autoadjustment relating to series visibility No need to recalc ranges when a change targets non-visible series. Change-Id: Ifd80b876ba279917a5bded8240721d00d66a6f05 Reviewed-by: Mika Salmela --- tests/scattertest/main.cpp | 6 ++++++ tests/scattertest/scatterchart.cpp | 6 ++++++ tests/scattertest/scatterchart.h | 1 + 3 files changed, 13 insertions(+) (limited to 'tests') diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 26f30beb..d4a6c108 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -106,6 +106,9 @@ int main(int argc, char **argv) QPushButton *removeSeriesButton = new QPushButton(widget); removeSeriesButton->setText(QStringLiteral("Remove Series")); + QPushButton *toggleSeriesVisibilityButton = new QPushButton(widget); + toggleSeriesVisibilityButton->setText(QStringLiteral("Toggle visibility")); + QPushButton *startTimerButton = new QPushButton(widget); startTimerButton->setText(QStringLiteral("Start/stop timer")); @@ -172,6 +175,7 @@ int main(int argc, char **argv) vLayout->addWidget(setSelectedItemButton, 0, Qt::AlignTop); vLayout->addWidget(addSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(removeSeriesButton, 0, Qt::AlignTop); + vLayout->addWidget(toggleSeriesVisibilityButton, 0, Qt::AlignTop); vLayout->addWidget(startTimerButton, 0, Qt::AlignTop); vLayout->addWidget(gradientBtoYPB, 0, Qt::AlignTop); vLayout->addWidget(backgroundCheckBox); @@ -224,6 +228,8 @@ int main(int argc, char **argv) &ScatterDataModifier::addSeries); QObject::connect(removeSeriesButton, &QPushButton::clicked, modifier, &ScatterDataModifier::removeSeries); + QObject::connect(toggleSeriesVisibilityButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::toggleSeriesVisibility); QObject::connect(startTimerButton, &QPushButton::clicked, modifier, &ScatterDataModifier::startStopTimer); QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 6b7fd910..58f5b355 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -470,6 +470,12 @@ void ScatterDataModifier::removeSeries() } } +void ScatterDataModifier::toggleSeriesVisibility() +{ + if (m_targetSeries) + m_targetSeries->setVisible(!m_targetSeries->isVisible()); +} + void ScatterDataModifier::handleAxisXChanged(QValue3DAxis *axis) { qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisX()); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 903c6fc0..7906eac0 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -67,6 +67,7 @@ public slots: void setGradient(); void addSeries(); void removeSeries(); + void toggleSeriesVisibility(); void handleAxisXChanged(QValue3DAxis *axis); void handleAxisYChanged(QValue3DAxis *axis); -- cgit v1.2.3 From 06dd7be52f2bcd23b9a622a17d3d0e8963a7dd17 Mon Sep 17 00:00:00 2001 From: Mika Salmela Date: Mon, 13 Jan 2014 14:51:10 +0200 Subject: Direction for scatter items Task-number: QTRD-2654 Change-Id: Ib21e6d75fa43de45387ad6225973aa8a11ffc0c9 Reviewed-by: Miikka Heikkinen --- tests/directional/directional.pro | 10 ++ tests/directional/main.cpp | 164 +++++++++++++++++++++++++++ tests/directional/scatterdatamodifier.cpp | 181 ++++++++++++++++++++++++++++++ tests/directional/scatterdatamodifier.h | 64 +++++++++++ 4 files changed, 419 insertions(+) create mode 100644 tests/directional/directional.pro create mode 100644 tests/directional/main.cpp create mode 100644 tests/directional/scatterdatamodifier.cpp create mode 100644 tests/directional/scatterdatamodifier.h (limited to 'tests') diff --git a/tests/directional/directional.pro b/tests/directional/directional.pro new file mode 100644 index 00000000..7138e1f2 --- /dev/null +++ b/tests/directional/directional.pro @@ -0,0 +1,10 @@ +!include( ../tests.pri ) { + error( "Couldn't find the tests.pri file!" ) +} + +SOURCES += main.cpp scatterdatamodifier.cpp +HEADERS += scatterdatamodifier.h + +QT += widgets + +INSTALLS += target diff --git a/tests/directional/main.cpp b/tests/directional/main.cpp new file mode 100644 index 00000000..359868cc --- /dev/null +++ b/tests/directional/main.cpp @@ -0,0 +1,164 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include "scatterdatamodifier.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int main(int argc, char **argv) +{ + //! [0] + QApplication app(argc, argv); + Q3DScatter *graph = new Q3DScatter(); + QWidget *container = QWidget::createWindowContainer(graph); + //! [0] + + QSize screenSize = graph->screen()->size(); + container->setMinimumSize(QSize(screenSize.width() / 2, screenSize.height() / 1.5)); + container->setMaximumSize(screenSize); + container->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); + container->setFocusPolicy(Qt::StrongFocus); + + //! [1] + QWidget *widget = new QWidget; + QHBoxLayout *hLayout = new QHBoxLayout(widget); + QVBoxLayout *vLayout = new QVBoxLayout(); + hLayout->addWidget(container, 1); + hLayout->addLayout(vLayout); + //! [1] + + widget->setWindowTitle(QStringLiteral("Directional scatter")); + + //! [4] + QComboBox *themeList = new QComboBox(widget); + themeList->addItem(QStringLiteral("Qt")); + themeList->addItem(QStringLiteral("Primary Colors")); + themeList->addItem(QStringLiteral("Digia")); + themeList->addItem(QStringLiteral("Stone Moss")); + themeList->addItem(QStringLiteral("Army Blue")); + themeList->addItem(QStringLiteral("Retro")); + themeList->addItem(QStringLiteral("Ebony")); + themeList->addItem(QStringLiteral("Isabelle")); + themeList->setCurrentIndex(6); + + QPushButton *labelButton = new QPushButton(widget); + labelButton->setText(QStringLiteral("Change label style")); + + QComboBox *itemStyleList = new QComboBox(widget); + itemStyleList->addItem(QStringLiteral("Arrow"), int(QAbstract3DSeries::MeshArrow)); + itemStyleList->addItem(QStringLiteral("Cube"), int(QAbstract3DSeries::MeshCube)); + itemStyleList->addItem(QStringLiteral("Minimal"), int(QAbstract3DSeries::MeshMinimal)); + itemStyleList->setCurrentIndex(-1); + + QPushButton *cameraButton = new QPushButton(widget); + cameraButton->setText(QStringLiteral("Change camera preset")); + + QCheckBox *backgroundCheckBox = new QCheckBox(widget); + backgroundCheckBox->setText(QStringLiteral("Show background")); + backgroundCheckBox->setChecked(true); + + QCheckBox *gridCheckBox = new QCheckBox(widget); + gridCheckBox->setText(QStringLiteral("Show grid")); + gridCheckBox->setChecked(true); + + QComboBox *shadowQuality = new QComboBox(widget); + shadowQuality->addItem(QStringLiteral("None")); + shadowQuality->addItem(QStringLiteral("Low")); + shadowQuality->addItem(QStringLiteral("Medium")); + shadowQuality->addItem(QStringLiteral("High")); + shadowQuality->addItem(QStringLiteral("Low Soft")); + shadowQuality->addItem(QStringLiteral("Medium Soft")); + shadowQuality->addItem(QStringLiteral("High Soft")); + shadowQuality->setCurrentIndex(4); + + QFontComboBox *fontList = new QFontComboBox(widget); + fontList->setCurrentFont(QFont("Arial")); + //! [4] + + //! [5] + vLayout->addWidget(labelButton, 0, Qt::AlignTop); + vLayout->addWidget(cameraButton, 0, Qt::AlignTop); + vLayout->addWidget(backgroundCheckBox); + vLayout->addWidget(gridCheckBox); + vLayout->addWidget(new QLabel(QStringLiteral("Change dot style"))); + vLayout->addWidget(itemStyleList); + vLayout->addWidget(new QLabel(QStringLiteral("Change theme"))); + vLayout->addWidget(themeList); + vLayout->addWidget(new QLabel(QStringLiteral("Adjust shadow quality"))); + vLayout->addWidget(shadowQuality); + vLayout->addWidget(new QLabel(QStringLiteral("Change font"))); + vLayout->addWidget(fontList, 1, Qt::AlignTop); + //! [5] + + //! [2] + ScatterDataModifier *modifier = new ScatterDataModifier(graph); + //! [2] + + //! [6] + QObject::connect(cameraButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::changePresetCamera); + QObject::connect(labelButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::changeLabelStyle); + + QObject::connect(backgroundCheckBox, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::setBackgroundEnabled); + QObject::connect(gridCheckBox, &QCheckBox::stateChanged, modifier, + &ScatterDataModifier::setGridEnabled); + + QObject::connect(modifier, &ScatterDataModifier::backgroundEnabledChanged, + backgroundCheckBox, &QCheckBox::setChecked); + QObject::connect(modifier, &ScatterDataModifier::gridEnabledChanged, + gridCheckBox, &QCheckBox::setChecked); + QObject::connect(itemStyleList, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeStyle(int))); + + QObject::connect(themeList, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeTheme(int))); + + QObject::connect(shadowQuality, SIGNAL(currentIndexChanged(int)), modifier, + SLOT(changeShadowQuality(int))); + + QObject::connect(modifier, &ScatterDataModifier::shadowQualityChanged, shadowQuality, + &QComboBox::setCurrentIndex); + QObject::connect(graph, &Q3DScatter::shadowQualityChanged, modifier, + &ScatterDataModifier::shadowQualityUpdatedByVisual); + + QObject::connect(fontList, &QFontComboBox::currentFontChanged, modifier, + &ScatterDataModifier::changeFont); + + QObject::connect(modifier, &ScatterDataModifier::fontChanged, fontList, + &QFontComboBox::setCurrentFont); + //! [6] + + itemStyleList->setCurrentIndex(0); + + //! [3] + widget->show(); + return app.exec(); + //! [3] +} diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp new file mode 100644 index 00000000..065d9a89 --- /dev/null +++ b/tests/directional/scatterdatamodifier.cpp @@ -0,0 +1,181 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include "scatterdatamodifier.h" +#include +#include +#include +#include +#include +#include +#include +#include + +using namespace QtDataVisualization; + +const int numberOfCols = 8; +const int numberOfRows = 8; +const float limit = 8.0f; +const float PI = 3.14159f; +//#define HEDGEHOG + +ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) + : m_graph(scatter), + m_fontSize(40.0f), + m_style(QAbstract3DSeries::MeshUserDefined), + m_smooth(true) +{ + m_graph->activeTheme()->setType(Q3DTheme::ThemeEbony); + QFont font = m_graph->activeTheme()->font(); + font.setPointSize(m_fontSize); + m_graph->activeTheme()->setFont(font); + m_graph->setShadowQuality(QDataVis::ShadowQualitySoftLow); + m_graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); + + m_graph->setAxisX(new QValue3DAxis); + m_graph->setAxisY(new QValue3DAxis); + m_graph->setAxisZ(new QValue3DAxis); + + QScatterDataProxy *proxy = new QScatterDataProxy; + QScatter3DSeries *series = new QScatter3DSeries(proxy); + series->setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel"); + m_graph->addSeries(series); + + addData(); +} + +ScatterDataModifier::~ScatterDataModifier() +{ + delete m_graph; +} + +void ScatterDataModifier::addData() +{ + // Configure the axes according to the data + m_graph->axisX()->setTitle("X"); + m_graph->axisY()->setTitle("Y"); + m_graph->axisZ()->setTitle("Z"); + m_graph->axisX()->setRange(-limit, limit); + m_graph->axisY()->setRange(-1.0f, 1.0f); + m_graph->axisZ()->setRange(-limit, limit); + + QScatterDataArray *dataArray = new QScatterDataArray; + dataArray->resize(numberOfCols * numberOfRows); + QScatterDataItem *ptrToDataArray = &dataArray->first(); + + float angleStep = 360.0f / float(numberOfCols); + float latAngleStep = 100.0f / float(numberOfRows); + + for (float i = 0; i < numberOfRows; i++) { + float latAngle = float(i) * latAngleStep + 40.0f; + float radius = qSin(latAngle * PI / 180.0f) * limit; + float y = qCos(latAngle * PI / 180.0f) * 1.0f; +#ifdef HEDGEHOG + float angleZ = (qAtan((y * limit / 2.0f) / radius) * 180.0f / PI); + QQuaternion rotationZ = QQuaternion::fromAxisAndAngle(QVector3D(0.0f, 0.0f, 1.0f), angleZ - 90.0f); +#endif + for (float j = 0; j < numberOfCols; j++) { + float angle = float(j) * angleStep; + float x = qCos(angle * PI / 180.0f) * radius; + float z = qSin(angle * PI / 180.0f) * radius; + + float angleY = (qAtan(z / x) * 180.0f / PI); + if (x < 0) + angleY = 180.0f + angleY; + if (x > 0 && z < 0) + angleY = 360.0f + angleY; +#ifdef HEDGEHOG + QQuaternion rotationY = QQuaternion::fromAxisAndAngle(QVector3D(0.0f, 1.0f, 0.0f), angleY); + QQuaternion rotation = rotationY * rotationZ; +#else + QQuaternion rotation = QQuaternion::fromAxisAndAngle(QVector3D(0.0f, 1.0f, 0.0f), angleY) * + QQuaternion::fromAxisAndAngle(QVector3D(1.0f, 0.0f, 0.0f), -90.0f); +#endif + + ptrToDataArray->setPosition(QVector3D(x, y, z)); + ptrToDataArray->setRotation(rotation); + ptrToDataArray++; + } + } + + m_graph->seriesList().at(0)->dataProxy()->resetArray(dataArray); +} + +//! [8] +void ScatterDataModifier::changeStyle(int style) +{ + QComboBox *comboBox = qobject_cast(sender()); + if (comboBox) { + m_style = QAbstract3DSeries::Mesh(comboBox->itemData(style).toInt()); + if (m_graph->seriesList().size()) + m_graph->seriesList().at(0)->setMesh(m_style); + } +} + +void ScatterDataModifier::changeTheme(int theme) +{ + Q3DTheme *currentTheme = m_graph->activeTheme(); + currentTheme->setType(Q3DTheme::Theme(theme)); + emit backgroundEnabledChanged(currentTheme->isBackgroundEnabled()); + emit gridEnabledChanged(currentTheme->isGridEnabled()); + emit fontChanged(currentTheme->font()); +} + +void ScatterDataModifier::changePresetCamera() +{ + static int preset = Q3DCamera::CameraPresetFrontLow; + + m_graph->scene()->activeCamera()->setCameraPreset((Q3DCamera::CameraPreset)preset); + + if (++preset > Q3DCamera::CameraPresetDirectlyBelow) + preset = Q3DCamera::CameraPresetFrontLow; +} + +void ScatterDataModifier::changeLabelStyle() +{ + m_graph->activeTheme()->setLabelBackgroundEnabled(!m_graph->activeTheme()->isLabelBackgroundEnabled()); +} + +void ScatterDataModifier::changeFont(const QFont &font) +{ + QFont newFont = font; + newFont.setPointSizeF(m_fontSize); + m_graph->activeTheme()->setFont(newFont); +} + +void ScatterDataModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) +{ + int quality = int(sq); + emit shadowQualityChanged(quality); // connected to a checkbox in main.cpp +} + +void ScatterDataModifier::changeShadowQuality(int quality) +{ + QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); + m_graph->setShadowQuality(sq); +} + +void ScatterDataModifier::setBackgroundEnabled(int enabled) +{ + m_graph->activeTheme()->setBackgroundEnabled((bool)enabled); +} + +void ScatterDataModifier::setGridEnabled(int enabled) +{ + m_graph->activeTheme()->setGridEnabled((bool)enabled); +} diff --git a/tests/directional/scatterdatamodifier.h b/tests/directional/scatterdatamodifier.h new file mode 100644 index 00000000..fbb92e86 --- /dev/null +++ b/tests/directional/scatterdatamodifier.h @@ -0,0 +1,64 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef SCATTERDATAMODIFIER_H +#define SCATTERDATAMODIFIER_H + +#include +#include +#include + +using namespace QtDataVisualization; + +class ScatterDataModifier : public QObject +{ + Q_OBJECT +public: + explicit ScatterDataModifier(Q3DScatter *scatter); + ~ScatterDataModifier(); + + void addData(); + void changeStyle(); + void changePresetCamera(); + void changeLabelStyle(); + void changeFont(const QFont &font); + void changeFontSize(int fontsize); + void setBackgroundEnabled(int enabled); + void setGridEnabled(int enabled); + void start(); + +public slots: + void changeStyle(int style); + void changeTheme(int theme); + void changeShadowQuality(int quality); + void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); + +signals: + void backgroundEnabledChanged(bool enabled); + void gridEnabledChanged(bool enabled); + void shadowQualityChanged(int quality); + void fontChanged(QFont font); + +private: + Q3DScatter *m_graph; + int m_fontSize; + QAbstract3DSeries::Mesh m_style; + bool m_smooth; +}; + +#endif -- cgit v1.2.3 From 2d31d2416643598b15664c766326f18c5b698c79 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 14 Jan 2014 10:08:28 +0200 Subject: Add series name property MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +Don't call updateScene for every render cycle +Fixed item label update when format or name changes +Misc cosmetic fixes Task-number: QTRD-2736 Task-number: QTRD-2571 Change-Id: I43aa6b8e3202b09529b17a22bb24d05fcb545609 Reviewed-by: Tomi Korpipää --- tests/barstest/chart.cpp | 10 +++++++--- tests/scattertest/main.cpp | 6 ++++++ tests/scattertest/scatterchart.cpp | 9 ++++++++- tests/scattertest/scatterchart.h | 1 + tests/surfacetest/graphmodifier.cpp | 11 +++++++++++ 5 files changed, 33 insertions(+), 4 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 4048e807..c83a9389 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -121,9 +121,13 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_graph->setActiveTheme(m_builtinTheme); m_graph->setShadowQuality(QDataVis::ShadowQualitySoftMedium); - m_temperatureData->setItemLabelFormat(QStringLiteral("1: @valueTitle for @colLabel @rowLabel: @valueLabel")); - m_temperatureData2->setItemLabelFormat(QStringLiteral("2: @valueTitle for @colLabel @rowLabel: @valueLabel")); - m_genericData->setItemLabelFormat(QStringLiteral("3: @valueTitle for (@rowIdx, @colIdx): @valueLabel")); + m_temperatureData->setName("Oulu"); + m_temperatureData2->setName("Helsinki"); + m_genericData->setName("Generic series"); + + m_temperatureData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel")); + m_temperatureData2->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel")); + m_genericData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for (@rowIdx, @colIdx): @valueLabel")); m_genericData->dataProxy()->setColumnLabels(genericColumnLabels); m_temperatureData->setBaseColor(Qt::red); diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index d4a6c108..92c8d526 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -109,6 +109,9 @@ int main(int argc, char **argv) QPushButton *toggleSeriesVisibilityButton = new QPushButton(widget); toggleSeriesVisibilityButton->setText(QStringLiteral("Toggle visibility")); + QPushButton *changeSeriesNameButton = new QPushButton(widget); + changeSeriesNameButton->setText(QStringLiteral("Series name")); + QPushButton *startTimerButton = new QPushButton(widget); startTimerButton->setText(QStringLiteral("Start/stop timer")); @@ -176,6 +179,7 @@ int main(int argc, char **argv) vLayout->addWidget(addSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(removeSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(toggleSeriesVisibilityButton, 0, Qt::AlignTop); + vLayout->addWidget(changeSeriesNameButton, 0, Qt::AlignTop); vLayout->addWidget(startTimerButton, 0, Qt::AlignTop); vLayout->addWidget(gradientBtoYPB, 0, Qt::AlignTop); vLayout->addWidget(backgroundCheckBox); @@ -230,6 +234,8 @@ int main(int argc, char **argv) &ScatterDataModifier::removeSeries); QObject::connect(toggleSeriesVisibilityButton, &QPushButton::clicked, modifier, &ScatterDataModifier::toggleSeriesVisibility); + QObject::connect(changeSeriesNameButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::changeSeriesName); QObject::connect(startTimerButton, &QPushButton::clicked, modifier, &ScatterDataModifier::startStopTimer); QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 58f5b355..9482ee18 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -476,6 +476,12 @@ void ScatterDataModifier::toggleSeriesVisibility() m_targetSeries->setVisible(!m_targetSeries->isVisible()); } +void ScatterDataModifier::changeSeriesName() +{ + if (m_targetSeries) + m_targetSeries->setName(m_targetSeries->name().append("-").append(QString::number(qrand() % 10))); +} + void ScatterDataModifier::handleAxisXChanged(QValue3DAxis *axis) { qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_chart->axisX()); @@ -526,7 +532,8 @@ QScatter3DSeries *ScatterDataModifier::createAndAddSeries() m_targetSeries = series; m_chart->addSeries(series); - series->setItemLabelFormat(QString("%1: @xLabel - @yLabel - @zLabel").arg(counter++)); + series->setName(QString("Series %1").arg(counter++)); + series->setItemLabelFormat(QStringLiteral("@seriesName: @xLabel - @yLabel - @zLabel")); series->setMesh(QAbstract3DSeries::MeshSphere); series->setMeshSmooth(true); series->setBaseColor(QColor(rand() % 256, rand() % 256, rand() % 256)); diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index 7906eac0..ce6c2073 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -68,6 +68,7 @@ public slots: void addSeries(); void removeSeries(); void toggleSeriesVisibility(); + void changeSeriesName(); void handleAxisXChanged(QValue3DAxis *axis); void handleAxisYChanged(QValue3DAxis *axis); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 58aee4cd..1c177219 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -61,8 +61,11 @@ GraphModifier::GraphModifier(Q3DSurface *graph) m_graph->axisX()->setRange(m_minX, m_minX + m_rangeX); m_graph->axisZ()->setRange(m_minZ, m_minZ + m_rangeZ); m_graph->addSeries(m_theSeries); + changeStyle(); + m_theSeries->setItemLabelFormat(QStringLiteral("@seriesName: (@xLabel, @zLabel): @yLabel")); + connect(&m_timer, &QTimer::timeout, this, &GraphModifier::timeout); connect(m_theSeries, &QSurface3DSeries::selectedPointChanged, this, &GraphModifier::selectedPointChanged); @@ -144,6 +147,8 @@ void GraphModifier::toggleSqrtSin(bool enable) m_graph->axisX()->setLabelFormat("%.2f"); m_graph->axisZ()->setLabelFormat("%.2f"); + m_theSeries->setName("Sqrt & Sin"); + resetArrayAndSliders(dataArray, minZ, maxZ, minX, maxX); m_activeSample = GraphModifier::SqrtSin; @@ -196,6 +201,8 @@ void GraphModifier::togglePlane(bool enable) *m_planeArray << newRow; } + m_theSeries->setName("Wonky Plane"); + resetArrayAndSliders(m_planeArray, minZ, maxZ + add, minX, m_xCount * maxStepX + minX); #else for (float i = 0; i < m_zCount; i++) { @@ -216,6 +223,8 @@ void GraphModifier::togglePlane(bool enable) *m_planeArray << newRow; } + m_theSeries->setName("Plane"); + resetArrayAndSliders(m_planeArray, minZ, maxZ, minX, maxX); #endif @@ -260,6 +269,8 @@ void GraphModifier::setHeightMapData(bool enable) m_graph->axisX()->setLabelFormat("%.1f N"); m_graph->axisZ()->setLabelFormat("%.1f E"); + m_theSeries->setName("Height Map"); + resetArrayAndSliders(dataArray, minZ, maxZ, minX, maxX); m_activeSample = GraphModifier::Map; -- cgit v1.2.3 From e1100bf239f630665b6e2074b9a84cd53bc0c83f Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 14 Jan 2014 10:28:31 +0200 Subject: Add direction test to tests.pro Change-Id: I58d02febb97f6aa9b889393380cbf969727a98e7 Reviewed-by: Miikka Heikkinen --- tests/tests.pro | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/tests.pro b/tests/tests.pro index 7c3ce14c..41c0bee9 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -13,7 +13,8 @@ SUBDIRS += barstest \ qmlcamera \ qmldynamicdata \ multigraphs \ - qmlmultigraph + qmlmultigraph \ + directional #SUBDIRS += kinectsurface -- cgit v1.2.3 From 64d6b482bfb9dbacd548b72cb9c073513f6aa56f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Wed, 15 Jan 2014 11:34:59 +0200 Subject: Removed QDataVis and namespace macros - docs will be fixed in QTRD-2594 Task-number: QTRD-2699 Task-number: QTRD-2700 Change-Id: Ia89d365c2de5d9254b165feb4f0a54ec099084be Reviewed-by: Miikka Heikkinen --- tests/barstest/chart.cpp | 16 ++++++++-------- tests/barstest/chart.h | 2 +- tests/directional/scatterdatamodifier.cpp | 6 +++--- tests/directional/scatterdatamodifier.h | 2 +- tests/multigraphs/data.cpp | 12 ++++++------ tests/scattertest/scatterchart.cpp | 8 ++++---- tests/scattertest/scatterchart.h | 2 +- tests/spectrum/spectrumapp/main.cpp | 6 +++--- tests/surfacetest/graphmodifier.cpp | 6 +++--- tests/surfacetest/main.cpp | 24 ++++++++++++------------ 10 files changed, 42 insertions(+), 42 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index c83a9389..f162cbff 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -25,7 +25,7 @@ #include #include -QT_DATAVISUALIZATION_USE_NAMESPACE +using namespace QtDataVisualization; const QString celsiusString = QString(QChar(0xB0)) + "C"; @@ -119,7 +119,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_graph->addAxis(m_genericColumnAxis); m_graph->setActiveTheme(m_builtinTheme); - m_graph->setShadowQuality(QDataVis::ShadowQualitySoftMedium); + m_graph->setShadowQuality(QAbstract3DGraph::ShadowQualitySoftMedium); m_temperatureData->setName("Oulu"); m_temperatureData2->setName("Helsinki"); @@ -637,10 +637,10 @@ void GraphModifier::changeSelectionMode() { static int selectionMode = m_graph->selectionMode(); - if (++selectionMode > (QDataVis::SelectionItemAndColumn | QDataVis::SelectionSlice | QDataVis::SelectionMultiSeries)) - selectionMode = QDataVis::SelectionNone; + if (++selectionMode > (QAbstract3DGraph::SelectionItemAndColumn | QAbstract3DGraph::SelectionSlice | QAbstract3DGraph::SelectionMultiSeries)) + selectionMode = QAbstract3DGraph::SelectionNone; - m_graph->setSelectionMode((QDataVis::SelectionFlag)selectionMode); + m_graph->setSelectionMode((QAbstract3DGraph::SelectionFlag)selectionMode); } void GraphModifier::changeFont(const QFont &font) @@ -658,7 +658,7 @@ void GraphModifier::changeFontSize(int fontsize) m_graph->activeTheme()->setFont(font); } -void GraphModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) +void GraphModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality sq) { int quality = int(sq); // Updates the UI component to show correct shadow quality @@ -709,7 +709,7 @@ void GraphModifier::handleValueAxisChanged(QValue3DAxis *axis) void GraphModifier::changeShadowQuality(int quality) { - QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); + QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); m_graph->setShadowQuality(sq); emit shadowQualityChanged(quality); } @@ -718,7 +718,7 @@ void GraphModifier::showFiveSeries() { releaseProxies(); releaseAxes(); - m_graph->setSelectionMode(QDataVis::SelectionItemRowAndColumn | QDataVis::SelectionMultiSeries); + m_graph->setSelectionMode(QAbstract3DGraph::SelectionItemRowAndColumn | QAbstract3DGraph::SelectionMultiSeries); m_dummyData->dataProxy()->resetArray(makeDummyData(), QStringList(), QStringList()); m_dummyData2->dataProxy()->resetArray(makeDummyData(), QStringList(), QStringList()); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index f617a348..9c14e5cd 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -85,7 +85,7 @@ public slots: void flipViews(); void setGradient(); void changeShadowQuality(int quality); - void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); + void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality); void handleSelectionChange(const QPoint &position); void setUseNullInputHandler(bool useNull); diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp index 065d9a89..f7089ae4 100644 --- a/tests/directional/scatterdatamodifier.cpp +++ b/tests/directional/scatterdatamodifier.cpp @@ -44,7 +44,7 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) QFont font = m_graph->activeTheme()->font(); font.setPointSize(m_fontSize); m_graph->activeTheme()->setFont(font); - m_graph->setShadowQuality(QDataVis::ShadowQualitySoftLow); + m_graph->setShadowQuality(QAbstract3DGraph::ShadowQualitySoftLow); m_graph->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); m_graph->setAxisX(new QValue3DAxis); @@ -158,7 +158,7 @@ void ScatterDataModifier::changeFont(const QFont &font) m_graph->activeTheme()->setFont(newFont); } -void ScatterDataModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) +void ScatterDataModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality sq) { int quality = int(sq); emit shadowQualityChanged(quality); // connected to a checkbox in main.cpp @@ -166,7 +166,7 @@ void ScatterDataModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality s void ScatterDataModifier::changeShadowQuality(int quality) { - QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); + QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); m_graph->setShadowQuality(sq); } diff --git a/tests/directional/scatterdatamodifier.h b/tests/directional/scatterdatamodifier.h index fbb92e86..e3979818 100644 --- a/tests/directional/scatterdatamodifier.h +++ b/tests/directional/scatterdatamodifier.h @@ -46,7 +46,7 @@ public slots: void changeStyle(int style); void changeTheme(int theme); void changeShadowQuality(int quality); - void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); + void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality); signals: void backgroundEnabledChanged(bool enabled); diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index e70a01df..9df5e668 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -29,7 +29,7 @@ #include #include -QT_DATAVISUALIZATION_USE_NAMESPACE +using namespace QtDataVisualization; Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, QTextEdit *statusArea, QWidget *widget) : @@ -53,7 +53,7 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, gradient.setColorAt(0.33, Qt::blue); gradient.setColorAt(0.67, Qt::red); gradient.setColorAt(1.0, Qt::yellow); - m_surface->setSelectionMode(QDataVis::SelectionNone); + m_surface->setSelectionMode(QAbstract3DGraph::SelectionNone); m_surface->activeTheme()->setGridEnabled(false); m_surface->activeTheme()->setBackgroundEnabled(false); m_surface->scene()->activeCamera()->setCameraPosition(0.0, 90.0, 150); @@ -66,9 +66,9 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, // Initialize scatter m_scatter->activeTheme()->setType(Q3DTheme::ThemeStoneMoss); - m_scatter->setSelectionMode(QDataVis::SelectionNone); + m_scatter->setSelectionMode(QAbstract3DGraph::SelectionNone); m_scatter->activeTheme()->setGridEnabled(false); - m_scatter->setShadowQuality(QDataVis::ShadowQualitySoftLow); + m_scatter->setShadowQuality(QAbstract3DGraph::ShadowQualitySoftLow); m_scatter->scene()->activeCamera()->setCameraPosition(0.0, 85.0, 150); QScatter3DSeries *series2 = new QScatter3DSeries; series2->setMesh(QAbstract3DSeries::MeshPoint); @@ -76,9 +76,9 @@ Data::Data(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, // Initialize bars m_bars->activeTheme()->setType(Q3DTheme::ThemeQt); - m_bars->setSelectionMode(QDataVis::SelectionItemAndRow | QDataVis::SelectionSlice); + m_bars->setSelectionMode(QAbstract3DGraph::SelectionItemAndRow | QAbstract3DGraph::SelectionSlice); m_bars->activeTheme()->setGridEnabled(false); - m_bars->setShadowQuality(QDataVis::ShadowQualityLow); + m_bars->setShadowQuality(QAbstract3DGraph::ShadowQualityLow); m_bars->setBarSpacing(QSizeF(0.0, 0.0)); m_bars->scene()->activeCamera()->setCameraPosition(0.0, 75.0, 150); QBar3DSeries *series3 = new QBar3DSeries; diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index 9482ee18..bcc0a4ab 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -41,7 +41,7 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) QFont font = m_chart->activeTheme()->font(); font.setPointSize(m_fontSize); m_chart->activeTheme()->setFont(font); - m_chart->setShadowQuality(QDataVis::ShadowQualityNone); + m_chart->setShadowQuality(QAbstract3DGraph::ShadowQualityNone); m_chart->scene()->activeCamera()->setCameraPreset(Q3DCamera::CameraPresetFront); m_chart->setAxisX(new QValue3DAxis); m_chart->setAxisY(new QValue3DAxis); @@ -50,7 +50,7 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) createAndAddSeries(); createAndAddSeries(); - m_chart->setSelectionMode(QDataVis::SelectionItem); + m_chart->setSelectionMode(QAbstract3DGraph::SelectionItem); QObject::connect(&m_timer, &QTimer::timeout, this, &ScatterDataModifier::timeout); QObject::connect(m_chart, &Q3DScatter::shadowQualityChanged, this, @@ -201,7 +201,7 @@ void ScatterDataModifier::changePointSize(int pointSize) m_targetSeries->setItemSize(0.01f * float(pointSize)); } -void ScatterDataModifier::shadowQualityUpdatedByVisual(QDataVis::ShadowQuality sq) +void ScatterDataModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality sq) { int quality = int(sq); // Updates the UI component to show correct shadow quality @@ -499,7 +499,7 @@ void ScatterDataModifier::handleAxisZChanged(QValue3DAxis *axis) void ScatterDataModifier::changeShadowQuality(int quality) { - QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); + QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); m_chart->setShadowQuality(sq); emit shadowQualityChanged(quality); } diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index ce6c2073..d4908023 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -49,7 +49,7 @@ public: public slots: void changeShadowQuality(int quality); - void shadowQualityUpdatedByVisual(QDataVis::ShadowQuality shadowQuality); + void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality); void clear(); void resetAxes(); void addOne(); diff --git a/tests/spectrum/spectrumapp/main.cpp b/tests/spectrum/spectrumapp/main.cpp index c4fe111d..b1bcb358 100644 --- a/tests/spectrum/spectrumapp/main.cpp +++ b/tests/spectrum/spectrumapp/main.cpp @@ -78,14 +78,14 @@ MainApp::MainApp(Q3DBars *window) // Disable auto-scaling of height by defining explicit range m_chart->valueAxis()->setRange(0.0f, 1.0f); // Disable shadows - m_chart->setShadowQuality(QDataVis::ShadowQualityNone); + m_chart->setShadowQuality(QAbstract3DGraph::ShadowQualityNone); #if USE_CONES // Set bar specifications; make them a bit wider than deep and make them be drawn 75% // inside each other m_chart->setBarThickness(1.25); m_chart->setBarSpacing(QSizeF(0.2, -0.75)); // Set bar type, smooth cones - m_chart->setBarType(QDataVis::MeshCones, true); + m_chart->setBarType(QAbstract3DGraph::MeshCones, true); // Adjust zoom manually; automatic zoom level calculation does not work well with negative // spacings (in setBarSpacing) m_chart->setCameraPosition(10.0f, 5.0f, 70.0f); @@ -98,7 +98,7 @@ MainApp::MainApp(Q3DBars *window) m_chart->scene()->activeCamera()->setCameraPosition(10.0f, 7.5f, 75.0f); #endif // Disable selection - m_chart->setSelectionMode(QDataVis::SelectionNone); + m_chart->setSelectionMode(QAbstract3DGraph::SelectionNone); QObject::connect(m_engine, &Engine::changedSpectrum, this, &MainApp::spectrumChanged); QObject::connect(m_engine, &Engine::stateChanged, this, &MainApp::stateChanged); m_restartTimer->setSingleShot(true); diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 1c177219..04a41cfe 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -27,7 +27,7 @@ #include #include -QT_DATAVISUALIZATION_USE_NAMESPACE +using namespace QtDataVisualization; //#define JITTER_PLANE //#define WONKY_PLANE @@ -438,7 +438,7 @@ void GraphModifier::resetArrayAndSliders(QSurfaceDataArray *array, float minZ, f void GraphModifier::changeShadowQuality(int quality) { - QDataVis::ShadowQuality sq = QDataVis::ShadowQuality(quality); + QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); m_graph->setShadowQuality(sq); } @@ -447,7 +447,7 @@ void GraphModifier::changeSelectionMode(int mode) QComboBox *comboBox = qobject_cast(sender()); if (comboBox) { int flags = comboBox->itemData(mode).toInt(); - m_graph->setSelectionMode(QDataVis::SelectionFlags(flags)); + m_graph->setSelectionMode(QAbstract3DGraph::SelectionFlags(flags)); } } diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 54c27981..7279b27a 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -184,29 +184,29 @@ int main(int argc, char *argv[]) QComboBox *selectionMode = new QComboBox(widget); selectionMode->addItem(QStringLiteral("None"), - int(QDataVis::SelectionNone)); + int(QAbstract3DGraph::SelectionNone)); selectionMode->addItem(QStringLiteral("Item"), - int(QDataVis::SelectionItem)); + int(QAbstract3DGraph::SelectionItem)); selectionMode->addItem(QStringLiteral("Row"), - int(QDataVis::SelectionRow)); + int(QAbstract3DGraph::SelectionRow)); selectionMode->addItem(QStringLiteral("Item and Row"), - int(QDataVis::SelectionItemAndRow)); + int(QAbstract3DGraph::SelectionItemAndRow)); selectionMode->addItem(QStringLiteral("Column"), - int(QDataVis::SelectionColumn)); + int(QAbstract3DGraph::SelectionColumn)); selectionMode->addItem(QStringLiteral("Item and Column"), - int(QDataVis::SelectionItemAndColumn)); + int(QAbstract3DGraph::SelectionItemAndColumn)); selectionMode->addItem(QStringLiteral("Row and Column"), - int(QDataVis::SelectionRowAndColumn)); + int(QAbstract3DGraph::SelectionRowAndColumn)); selectionMode->addItem(QStringLiteral("Item, Row and Column"), - int(QDataVis::SelectionItemRowAndColumn)); + int(QAbstract3DGraph::SelectionItemRowAndColumn)); selectionMode->addItem(QStringLiteral("Slice into Row"), - int(QDataVis::SelectionSlice | QDataVis::SelectionRow)); + int(QAbstract3DGraph::SelectionSlice | QAbstract3DGraph::SelectionRow)); selectionMode->addItem(QStringLiteral("Slice into Row and Item"), - int(QDataVis::SelectionSlice | QDataVis::SelectionItemAndRow)); + int(QAbstract3DGraph::SelectionSlice | QAbstract3DGraph::SelectionItemAndRow)); selectionMode->addItem(QStringLiteral("Slice into Column"), - int(QDataVis::SelectionSlice | QDataVis::SelectionColumn)); + int(QAbstract3DGraph::SelectionSlice | QAbstract3DGraph::SelectionColumn)); selectionMode->addItem(QStringLiteral("Slice into Column and Item"), - int(QDataVis::SelectionSlice | QDataVis::SelectionItemAndColumn)); + int(QAbstract3DGraph::SelectionSlice | QAbstract3DGraph::SelectionItemAndColumn)); selectionMode->setCurrentIndex(1); QPushButton *selectButton = new QPushButton(widget); -- cgit v1.2.3 From de93a42512e58c598427178373f0e3e59b04dec7 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Wed, 15 Jan 2014 09:43:29 +0200 Subject: Better control of series ordering and 'primary' series for bars MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTRD-2578 Change-Id: Icbd945596334afb03d81f3b1d6a72399077455db Reviewed-by: Tomi Korpipää --- tests/barstest/chart.cpp | 229 +++++++++++++++++++++++++++++++++++++++++++++++ tests/barstest/chart.h | 2 + tests/barstest/main.cpp | 7 ++ 3 files changed, 238 insertions(+) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index f162cbff..cbae8a6c 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -67,6 +67,15 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_ownTheme(0), m_builtinTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)) { + m_temperatureData->setObjectName("m_temperatureData"); + m_temperatureData2->setObjectName("m_temperatureData2"); + m_genericData->setObjectName("m_genericData"); + m_dummyData->setObjectName("m_dummyData"); + m_dummyData2->setObjectName("m_dummyData2"); + m_dummyData3->setObjectName("m_dummyData3"); + m_dummyData4->setObjectName("m_dummyData4"); + m_dummyData5->setObjectName("m_dummyData5"); + // Generate generic labels QStringList genericColumnLabels; for (int i = 0; i < 400; i++) { @@ -124,10 +133,22 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_temperatureData->setName("Oulu"); m_temperatureData2->setName("Helsinki"); m_genericData->setName("Generic series"); + m_dummyData->setName("Dummy 1"); + m_dummyData2->setName("Dummy 2"); + m_dummyData3->setName("Dummy 3"); + m_dummyData4->setName("Dummy 4"); + m_dummyData5->setName("Dummy 5"); m_temperatureData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel")); m_temperatureData2->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for @colLabel @rowLabel: @valueLabel")); m_genericData->setItemLabelFormat(QStringLiteral("@seriesName: @valueTitle for (@rowIdx, @colIdx): @valueLabel")); + + m_dummyData->setItemLabelFormat(QStringLiteral("@seriesName: @valueLabel")); + m_dummyData2->setItemLabelFormat(QStringLiteral("@seriesName: @valueLabel")); + m_dummyData3->setItemLabelFormat(QStringLiteral("@seriesName: @valueLabel")); + m_dummyData4->setItemLabelFormat(QStringLiteral("@seriesName: @valueLabel")); + m_dummyData5->setItemLabelFormat(QStringLiteral("@seriesName: @valueLabel")); + m_genericData->dataProxy()->setColumnLabels(genericColumnLabels); m_temperatureData->setBaseColor(Qt::red); @@ -194,6 +215,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) &GraphModifier::handleColumnAxisChanged); QObject::connect(m_graph, &Q3DBars::valueAxisChanged, this, &GraphModifier::handleValueAxisChanged); + QObject::connect(m_graph, &Q3DBars::primarySeriesChanged, this, + &GraphModifier::handlePrimarySeriesChanged); m_graph->addSeries(m_temperatureData); m_graph->addSeries(m_temperatureData2); @@ -707,6 +730,11 @@ void GraphModifier::handleValueAxisChanged(QValue3DAxis *axis) qDebug() << __FUNCTION__ << axis << axis->orientation() << (axis == m_graph->valueAxis()); } +void GraphModifier::handlePrimarySeriesChanged(QBar3DSeries *series) +{ + qDebug() << __FUNCTION__ << series; +} + void GraphModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); @@ -765,6 +793,207 @@ QBarDataArray *GraphModifier::makeDummyData() return dataSet; } +// Executes one step of the primary series test +void GraphModifier::primarySeriesTest() +{ + static int nextStep = 0; + + QStringList testLabels; + QStringList testLabels2; + QStringList testLabels3; + QStringList testLabels5; + testLabels << "1" << "2" << "3" << "4"; + testLabels2 << "11" << "22" << "33" << "44"; + testLabels3 << "111" << "222" << "333" << "444"; + testLabels5 << "11111" << "22222" << "33333" << "44444"; + + switch (nextStep++) { + case 0: { + qDebug() << "Step 0 - Init:"; + m_graph->addSeries(m_dummyData); // Add one series to enforce release in releaseProxies() + releaseProxies(); + releaseAxes(); + m_dummyData->dataProxy()->resetArray(makeDummyData(), + testLabels, + QStringList() << "A" << "B" << "C" << "D"); + m_dummyData2->dataProxy()->resetArray(makeDummyData(), + testLabels2, + QStringList() << "AA" << "BB" << "CC" << "DD"); + m_dummyData3->dataProxy()->resetArray(makeDummyData(), + testLabels3, + QStringList() << "AAA" << "BBB" << "CCC" << "DDD"); + m_dummyData4->dataProxy()->resetArray(makeDummyData(), + QStringList() << "1111" << "2222" << "3333" << "4444", + QStringList() << "AAAA" << "BBBB" << "CCCC" << "DDDD"); + m_dummyData5->dataProxy()->resetArray(makeDummyData(), + testLabels5, + QStringList() << "AAAAA" << "BBBBB" << "CCCCC" << "DDDDD"); + + m_graph->addSeries(m_dummyData); + m_graph->addSeries(m_dummyData2); + m_graph->addSeries(m_dummyData3); + + m_dummyData->setBaseColor(Qt::black); + m_dummyData2->setBaseColor(Qt::white); + m_dummyData3->setBaseColor(Qt::red); + m_dummyData4->setBaseColor(Qt::blue); + m_dummyData5->setBaseColor(Qt::green); + + if (m_graph->primarySeries() == m_dummyData) + if (m_graph->rowAxis()->labels() == testLabels) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData, actual: " << m_graph->primarySeries(); + break; + } + case 1: { + qDebug() << "Step 1 - Set another series as primary:"; + m_graph->setPrimarySeries(m_dummyData3); + if (m_graph->primarySeries() == m_dummyData3) { + if (m_graph->rowAxis()->labels() == testLabels3) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + } else { + qDebug() << "--> FAIL!!! Primary should be m_dummyData3, actual: " << m_graph->primarySeries(); + } + break; + } + case 2: { + qDebug() << "Step 2 - Add new series:"; + m_graph->addSeries(m_dummyData4); + if (m_graph->primarySeries() == m_dummyData3) + if (m_graph->rowAxis()->labels() == testLabels3) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData3, actual: " << m_graph->primarySeries(); + break; + } + case 3: { + qDebug() << "Step 3 - Reset primary series:"; + m_graph->setPrimarySeries(0); + if (m_graph->primarySeries() == m_dummyData) + if (m_graph->rowAxis()->labels() == testLabels) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData, actual: " << m_graph->primarySeries(); + break; + } + case 4: { + qDebug() << "Step 4 - Set new series at primary:"; + m_graph->setPrimarySeries(m_dummyData5); + if (m_graph->primarySeries() == m_dummyData5) + if (m_graph->rowAxis()->labels() == testLabels5) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData5, actual: " << m_graph->primarySeries(); + break; + } + case 5: { + qDebug() << "Step 5 - Remove nonexistent series:"; + m_graph->removeSeries(0); + if (m_graph->primarySeries() == m_dummyData5) + if (m_graph->rowAxis()->labels() == testLabels5) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData5, actual: " << m_graph->primarySeries(); + break; + } + case 6: { + qDebug() << "Step 6 - Remove non-primary series:"; + m_graph->removeSeries(m_dummyData); + if (m_graph->primarySeries() == m_dummyData5) + if (m_graph->rowAxis()->labels() == testLabels5) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData5, actual: " << m_graph->primarySeries(); + break; + } + case 7: { + qDebug() << "Step 7 - Remove primary series:"; + m_graph->removeSeries(m_dummyData5); + if (m_graph->primarySeries() == m_dummyData2) // first series removed, second should be first now + if (m_graph->rowAxis()->labels() == testLabels2) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData3, actual: " << m_graph->primarySeries(); + break; + } + case 8: { + qDebug() << "Step 8 - move a series (m_dummyData2) forward to a different position"; + m_graph->insertSeries(3, m_dummyData2); + if (m_graph->primarySeries() == m_dummyData2) + if (m_graph->seriesList().at(2) == m_dummyData2) // moving series forward, index decrements + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Moved to incorrect index, index 2 has:" << m_graph->seriesList().at(2); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData3, actual: " << m_graph->primarySeries(); + break; + } + case 9: { + qDebug() << "Step 9 - move a series (m_dummyData4) backward to a different position"; + m_graph->insertSeries(0, m_dummyData4); + if (m_graph->primarySeries() == m_dummyData2) + if (m_graph->seriesList().at(0) == m_dummyData4) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Moved to incorrect index, index 0 has:" << m_graph->seriesList().at(0); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData3, actual: " << m_graph->primarySeries(); + break; + } + case 10: { + qDebug() << "Step 10 - Insert a series (m_dummyData) series to position 2"; + m_graph->insertSeries(2, m_dummyData); + if (m_graph->primarySeries() == m_dummyData2) + if (m_graph->seriesList().at(2) == m_dummyData) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Moved to incorrect index, index 2 has:" << m_graph->seriesList().at(2); + else + qDebug() << "--> FAIL!!! Primary should be m_dummyData3, actual: " << m_graph->primarySeries(); + break; + } + case 11: { + qDebug() << "Step 11 - Remove everything"; + m_graph->removeSeries(m_dummyData); + m_graph->removeSeries(m_dummyData2); + m_graph->removeSeries(m_dummyData3); + m_graph->removeSeries(m_dummyData4); + m_graph->removeSeries(m_dummyData5); + if (m_graph->primarySeries() == 0) + if (m_graph->rowAxis()->labels() == QStringList()) + qDebug() << "--> SUCCESS"; + else + qDebug() << "--> FAIL!!! Row labels incorrect: " << m_graph->rowAxis()->labels(); + else + qDebug() << "--> FAIL!!! Primary should be null, actual: " << m_graph->primarySeries(); + break; + } + default: + qDebug() << "-- Restarting test sequence --"; + nextStep = 0; + break; + } + + +} + void GraphModifier::setBackgroundEnabled(int enabled) { m_graph->activeTheme()->setBackgroundEnabled(bool(enabled)); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 9c14e5cd..703f53e5 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -80,6 +80,7 @@ public: void changeColorStyle(); void showFiveSeries(); QBarDataArray *makeDummyData(); + void primarySeriesTest(); public slots: void flipViews(); @@ -92,6 +93,7 @@ public slots: void handleRowAxisChanged(QCategory3DAxis *axis); void handleColumnAxisChanged(QCategory3DAxis *axis); void handleValueAxisChanged(QValue3DAxis *axis); + void handlePrimarySeriesChanged(QBar3DSeries *series); signals: void shadowQualityChanged(int quality); diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index 9147735e..f582301b 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -150,6 +150,10 @@ int main(int argc, char **argv) ownThemeButton->setText(QStringLiteral("Use own theme")); ownThemeButton->setEnabled(true); + QPushButton *primarySeriesTestsButton = new QPushButton(widget); + primarySeriesTestsButton->setText(QStringLiteral("Test primary series")); + primarySeriesTestsButton->setEnabled(true); + QColorDialog *colorDialog = new QColorDialog(widget); QLinearGradient grBtoY(0, 0, 100, 0); @@ -294,6 +298,7 @@ int main(int argc, char **argv) vLayout->addWidget(flipViewsButton, 0, Qt::AlignTop); vLayout->addWidget(changeColorStyleButton, 0, Qt::AlignTop); vLayout->addWidget(ownThemeButton, 0, Qt::AlignTop); + vLayout->addWidget(primarySeriesTestsButton, 0, Qt::AlignTop); vLayout->addWidget(gradientBtoYPB, 1, Qt::AlignTop); vLayout2->addWidget(staticCheckBox, 0, Qt::AlignTop); @@ -391,6 +396,8 @@ int main(int argc, char **argv) &GraphModifier::changeColorStyle); QObject::connect(ownThemeButton, &QPushButton::clicked, modifier, &GraphModifier::useOwnTheme); + QObject::connect(primarySeriesTestsButton, &QPushButton::clicked, modifier, + &GraphModifier::primarySeriesTest); QObject::connect(colorDialog, &QColorDialog::currentColorChanged, modifier, &GraphModifier::changeBaseColor); QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, -- cgit v1.2.3 From d2c37e276d17fb91163188878988894df993e69b Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 16 Jan 2014 10:48:47 +0200 Subject: Implement generic clearSelection() method for graphs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also fixed scene sync related bug on selection. Task-number: QTRD-2606 Task-number: QTRD-2773 Change-Id: I057fd83ae5bf5ee94e413287fb2b3cefa455b156 Reviewed-by: Tomi Korpipää --- tests/qmlmultigraph/qml/qmlmultigraph/main.qml | 40 ++++++++++++++++++++------ 1 file changed, 32 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml index 11c4ab2d..4f2f2052 100644 --- a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml +++ b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml @@ -44,6 +44,18 @@ Item { } } + Bar3DSeries { + itemLabelFormat: "@colLabel, @rowLabel: @valueLabel" + + ItemModelBarDataProxy { + itemModel: barDataModel + // Mapping model roles to bar series rows, columns, and values. + rowRole: "year" + columnRole: "city" + valueRole: "income" + } + } + onRowAxisChanged: { console.log("Bars: Row axis changed.") } @@ -57,14 +69,14 @@ Item { ListModel { id: barDataModel - ListElement{ year: "2012"; city: "Oulu"; expenses: "4200"; } - ListElement{ year: "2012"; city: "Rauma"; expenses: "2100"; } - ListElement{ year: "2012"; city: "Helsinki"; expenses: "7040"; } - ListElement{ year: "2012"; city: "Tampere"; expenses: "4330"; } - ListElement{ year: "2013"; city: "Oulu"; expenses: "3960"; } - ListElement{ year: "2013"; city: "Rauma"; expenses: "1990"; } - ListElement{ year: "2013"; city: "Helsinki"; expenses: "7230"; } - ListElement{ year: "2013"; city: "Tampere"; expenses: "4650"; } + ListElement{ year: "2012"; city: "Oulu"; expenses: "4200"; income: "8300"; } + ListElement{ year: "2012"; city: "Rauma"; expenses: "2100"; income: "6500"; } + ListElement{ year: "2012"; city: "Helsinki"; expenses: "7040"; income: "7500"; } + ListElement{ year: "2012"; city: "Tampere"; expenses: "4330"; income: "5800"; } + ListElement{ year: "2013"; city: "Oulu"; expenses: "3960"; income: "9000"; } + ListElement{ year: "2013"; city: "Rauma"; expenses: "1990"; income: "3000"; } + ListElement{ year: "2013"; city: "Helsinki"; expenses: "7230"; income: "9900"; } + ListElement{ year: "2013"; city: "Tampere"; expenses: "4650"; income: "7600"; } } Scatter3D { @@ -189,6 +201,18 @@ Item { surfaceGraph.axisZ = null } } + + NewButton { + id: clearSelectionsButton + Layout.fillHeight: true + Layout.fillWidth: true + text: "Clear Selections" + onClicked: { + barGraph.clearSelection() + scatterGraph.clearSelection() + surfaceGraph.clearSelection() + } + } } Rectangle { -- cgit v1.2.3 From cc80770a30f3dfa43b29e14f83bf47deb5b50a92 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 17 Jan 2014 09:57:00 +0200 Subject: Adjust selection in item removal and insert MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements item 1) in QTRD-2645 Task-number: QTRD-2645 Change-Id: I5c1cec438089520592a3526e1ff6095cc30afd34 Reviewed-by: Tomi Korpipää --- tests/barstest/chart.cpp | 2 +- tests/barstest/main.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index cbae8a6c..7f049645 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -543,7 +543,7 @@ void GraphModifier::removeRows() // TODO Needs to be changed to account for data window offset once it is implemented. int row = m_selectedBar.x(); if (row >= 0) { - int startRow = qMax(row - 2, 0); + int startRow = qMax(row - 3, 0); m_genericData->dataProxy()->removeRows(startRow, 3); } } diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index f582301b..a0f9d783 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -97,7 +97,7 @@ int main(int argc, char **argv) removeRowButton->setEnabled(false); QPushButton *removeRowsButton = new QPushButton(widget); - removeRowsButton->setText(QStringLiteral("Remove three rows from selected")); + removeRowsButton->setText(QStringLiteral("Remove three rows before selected")); removeRowsButton->setEnabled(false); QPushButton *massiveArrayButton = new QPushButton(widget); -- cgit v1.2.3 From 177f9d385c8cd062c4bad78cf6b794a96fa025ad Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Tue, 21 Jan 2014 08:55:03 +0200 Subject: Selection correction for scatter when data changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements item 3) in QTRD-2645 Task-number: QTRD-264 Change-Id: Ibe758bbfb3b4a74b55589a410b402bbdf07ea64f Reviewed-by: Tomi Korpipää --- tests/barstest/barstest.pro | 4 +- tests/barstest/chart.cpp | 74 +++++++++++++++++++++++- tests/barstest/chart.h | 10 ++++ tests/barstest/custominputhandler.cpp | 54 +++++++++++++++++ tests/barstest/custominputhandler.h | 36 ++++++++++++ tests/barstest/main.cpp | 7 +++ tests/qmldynamicdata/qml/qmldynamicdata/main.qml | 22 ++++++- 7 files changed, 202 insertions(+), 5 deletions(-) create mode 100644 tests/barstest/custominputhandler.cpp create mode 100644 tests/barstest/custominputhandler.h (limited to 'tests') diff --git a/tests/barstest/barstest.pro b/tests/barstest/barstest.pro index 55fbefbd..108f8aa7 100644 --- a/tests/barstest/barstest.pro +++ b/tests/barstest/barstest.pro @@ -2,8 +2,8 @@ error( "Couldn't find the tests.pri file!" ) } -SOURCES += main.cpp chart.cpp -HEADERS += chart.h +SOURCES += main.cpp chart.cpp custominputhandler.cpp +HEADERS += chart.h custominputhandler.h QT += widgets diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 7f049645..abbf2a59 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -17,12 +17,14 @@ ****************************************************************************/ #include "chart.h" +#include "custominputhandler.h" #include #include #include #include #include #include +#include #include using namespace QtDataVisualization; @@ -65,7 +67,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_useNullInputHandler(false), m_defaultInputHandler(0), m_ownTheme(0), - m_builtinTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)) + m_builtinTheme(new Q3DTheme(Q3DTheme::ThemeStoneMoss)), + m_customInputHandler(new CustomInputHandler) { m_temperatureData->setObjectName("m_temperatureData"); m_temperatureData2->setObjectName("m_temperatureData2"); @@ -218,9 +221,15 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) QObject::connect(m_graph, &Q3DBars::primarySeriesChanged, this, &GraphModifier::handlePrimarySeriesChanged); + QObject::connect(&m_insertRemoveTimer, &QTimer::timeout, this, + &GraphModifier::insertRemoveTimerTimeout); + m_graph->addSeries(m_temperatureData); m_graph->addSeries(m_temperatureData2); + QObject::connect(&m_selectionTimer, &QTimer::timeout, this, + &GraphModifier::triggerSelection); + resetTemperatureData(); } @@ -994,6 +1003,69 @@ void GraphModifier::primarySeriesTest() } +void GraphModifier::insertRemoveTestToggle() +{ + if (m_insertRemoveTimer.isActive()) { + m_insertRemoveTimer.stop(); + m_selectionTimer.stop(); + m_graph->removeSeries(m_dummyData); + m_graph->removeSeries(m_dummyData2); + releaseProxies(); + releaseAxes(); + m_graph->setActiveInputHandler(m_defaultInputHandler); + } else { + releaseProxies(); + releaseAxes(); + m_graph->rowAxis()->setRange(0, 32); + m_graph->columnAxis()->setRange(0, 10); + m_graph->setActiveInputHandler(m_customInputHandler); + m_graph->addSeries(m_dummyData); + m_graph->addSeries(m_dummyData2); + m_insertRemoveStep = 0; + m_insertRemoveTimer.start(100); + m_selectionTimer.start(10); + } +} + +void GraphModifier::insertRemoveTimerTimeout() +{ + if (m_insertRemoveStep < 32) { + for (int k = 0; k < 1; k++) { + QBarDataRow *dataRow = new QBarDataRow(10); + for (float i = 0; i < 10; i++) + (*dataRow)[i].setValue(((i + 1) / 10.0f) * (float)(rand() % 100)); + + QString label = QStringLiteral("Insert %1").arg(insertCounter++); + m_dummyData->dataProxy()->insertRow(0, dataRow, label); + } + } else { + for (int k = 0; k < 1; k++) + m_dummyData->dataProxy()->removeRows(0, 1); + } + + if (m_insertRemoveStep < 16 || (m_insertRemoveStep > 31 && m_insertRemoveStep < 48)) { + for (int k = 0; k < 2; k++) { + QBarDataRow *dataRow = new QBarDataRow(10); + for (float i = 0; i < 10; i++) + (*dataRow)[i].setValue(((i + 1) / 10.0f) * (float)(rand() % 100)); + + QString label = QStringLiteral("Insert %1").arg(insertCounter++); + m_dummyData2->dataProxy()->insertRow(0, dataRow, label); + } + } else { + for (int k = 0; k < 2; k++) + m_dummyData2->dataProxy()->removeRows(0, 1); + } + + if (m_insertRemoveStep++ > 63) + m_insertRemoveStep = 0; +} + +void GraphModifier::triggerSelection() +{ + m_graph->scene()->setSelectionQueryPosition(m_customInputHandler->inputPosition()); +} + void GraphModifier::setBackgroundEnabled(int enabled) { m_graph->activeTheme()->setBackgroundEnabled(bool(enabled)); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 703f53e5..425af521 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -22,11 +22,13 @@ #include #include #include +#include #include #include #include #include #include +#include using namespace QtDataVisualization; @@ -81,6 +83,7 @@ public: void showFiveSeries(); QBarDataArray *makeDummyData(); void primarySeriesTest(); + void insertRemoveTestToggle(); public slots: void flipViews(); @@ -95,6 +98,9 @@ public slots: void handleValueAxisChanged(QValue3DAxis *axis); void handlePrimarySeriesChanged(QBar3DSeries *series); + void insertRemoveTimerTimeout(); + void triggerSelection(); + signals: void shadowQualityChanged(int quality); @@ -137,6 +143,10 @@ private: QAbstract3DInputHandler *m_defaultInputHandler; Q3DTheme *m_ownTheme; Q3DTheme *m_builtinTheme; + QTimer m_insertRemoveTimer; + int m_insertRemoveStep; + QAbstract3DInputHandler *m_customInputHandler; + QTimer m_selectionTimer; }; #endif diff --git a/tests/barstest/custominputhandler.cpp b/tests/barstest/custominputhandler.cpp new file mode 100644 index 00000000..3b050fda --- /dev/null +++ b/tests/barstest/custominputhandler.cpp @@ -0,0 +1,54 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#include "custominputhandler.h" + +#include + +CustomInputHandler::CustomInputHandler(QObject *parent) : + QAbstract3DInputHandler(parent) +{ +} + +//! [0] +void CustomInputHandler::mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos) +{ + Q_UNUSED(event) + setInputPosition(mousePos); +} +//! [0] + +//! [1] +void CustomInputHandler::wheelEvent(QWheelEvent *event) +{ + // Adjust zoom level based on what zoom range we're in. + int zoomLevel = scene()->activeCamera()->zoomLevel(); + if (zoomLevel > 100) + zoomLevel += event->angleDelta().y() / 12; + else if (zoomLevel > 50) + zoomLevel += event->angleDelta().y() / 60; + else + zoomLevel += event->angleDelta().y() / 120; + if (zoomLevel > 500) + zoomLevel = 500; + else if (zoomLevel < 10) + zoomLevel = 10; + + scene()->activeCamera()->setZoomLevel(zoomLevel); +} +//! [1] diff --git a/tests/barstest/custominputhandler.h b/tests/barstest/custominputhandler.h new file mode 100644 index 00000000..1fecb8d8 --- /dev/null +++ b/tests/barstest/custominputhandler.h @@ -0,0 +1,36 @@ +/**************************************************************************** +** +** Copyright (C) 2013 Digia Plc +** All rights reserved. +** For any questions to Digia, please use contact form at http://qt.digia.com +** +** This file is part of the QtDataVisualization module. +** +** Licensees holding valid Qt Enterprise licenses may use this file in +** accordance with the Qt Enterprise License Agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and Digia. +** +** If you have questions regarding the use of this file, please use +** contact form at http://qt.digia.com +** +****************************************************************************/ + +#ifndef CUSTOMINPUTHANDLER_H +#define CUSTOMINPUTHANDLER_H + +#include + +using namespace QtDataVisualization; + +class CustomInputHandler : public QAbstract3DInputHandler +{ + Q_OBJECT +public: + explicit CustomInputHandler(QObject *parent = 0); + + virtual void mouseMoveEvent(QMouseEvent *event, const QPoint &mousePos); + virtual void wheelEvent(QWheelEvent *event); +}; + +#endif diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index a0f9d783..a0e1bfc3 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -126,6 +126,10 @@ int main(int argc, char **argv) swapAxisButton->setText(QStringLiteral("Swap value axis")); swapAxisButton->setEnabled(false); + QPushButton *insertRemoveTestButton = new QPushButton(widget); + insertRemoveTestButton->setText(QStringLiteral("Toggle insert/remove cycle")); + insertRemoveTestButton->setEnabled(true); + QPushButton *releaseAxesButton = new QPushButton(widget); releaseAxesButton->setText(QStringLiteral("Release all axes")); releaseAxesButton->setEnabled(true); @@ -293,6 +297,7 @@ int main(int argc, char **argv) vLayout->addWidget(selectionButton, 0, Qt::AlignTop); vLayout->addWidget(setSelectedBarButton, 0, Qt::AlignTop); vLayout->addWidget(swapAxisButton, 0, Qt::AlignTop); + vLayout->addWidget(insertRemoveTestButton, 0, Qt::AlignTop); vLayout->addWidget(releaseAxesButton, 0, Qt::AlignTop); vLayout->addWidget(releaseProxiesButton, 1, Qt::AlignTop); vLayout->addWidget(flipViewsButton, 0, Qt::AlignTop); @@ -385,6 +390,8 @@ int main(int argc, char **argv) &GraphModifier::selectBar); QObject::connect(swapAxisButton, &QPushButton::clicked, modifier, &GraphModifier::swapAxis); + QObject::connect(insertRemoveTestButton, &QPushButton::clicked, modifier, + &GraphModifier::insertRemoveTestToggle); QObject::connect(releaseAxesButton, &QPushButton::clicked, modifier, &GraphModifier::releaseAxes); QObject::connect(releaseProxiesButton, &QPushButton::clicked, modifier, diff --git a/tests/qmldynamicdata/qml/qmldynamicdata/main.qml b/tests/qmldynamicdata/qml/qmldynamicdata/main.qml index 4ed3b8ae..3ad454d0 100644 --- a/tests/qmldynamicdata/qml/qmldynamicdata/main.qml +++ b/tests/qmldynamicdata/qml/qmldynamicdata/main.qml @@ -34,7 +34,7 @@ Item { Timer { id: dataTimer - interval: 20 + interval: 1 running: true repeat: true property bool isIncreasing: true @@ -42,7 +42,16 @@ Item { onTriggered: { if (isIncreasing) { graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); - if (graphModel.count == 500) { + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + graphModel.append({"xPos": Math.random(), "yPos": Math.random(), "zPos": Math.random()}); + if (graphModel.count > 5000) { scatterGraph.theme.type = Theme3D.ThemeIsabelle; isIncreasing = false; } @@ -50,6 +59,15 @@ Item { // TODO: Once QTRD-2645 is fixed, change this to remove from // random index to add coverage. graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); + graphModel.remove(2); if (graphModel.count == 2) { scatterGraph.theme.type = Theme3D.ThemeDigia; isIncreasing = true; -- cgit v1.2.3 From a49f618d541d646a91cf5700ed10b1c62bd25f04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Thu, 23 Jan 2014 06:45:11 +0200 Subject: Mac compilation fix for minimal examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I5a157dee3942841b05622f67addabea2cd711171 Reviewed-by: Tomi Korpipää --- tests/minimalbars/minimalbars.pro | 6 +++++- tests/minimalscatter/minimalscatter.pro | 6 +++++- tests/minimalsurface/minimalsurface.pro | 6 +++++- 3 files changed, 15 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/minimalbars/minimalbars.pro b/tests/minimalbars/minimalbars.pro index b948a31f..bfb48f68 100644 --- a/tests/minimalbars/minimalbars.pro +++ b/tests/minimalbars/minimalbars.pro @@ -1,4 +1,8 @@ -QT += core gui datavisualization +!include( ../tests.pri ) { + error( "Couldn't find the tests.pri file!" ) +} + +QT += core gui datavisualization TARGET = MinimalBars TEMPLATE = app diff --git a/tests/minimalscatter/minimalscatter.pro b/tests/minimalscatter/minimalscatter.pro index 6fd9913d..27147be6 100644 --- a/tests/minimalscatter/minimalscatter.pro +++ b/tests/minimalscatter/minimalscatter.pro @@ -1,4 +1,8 @@ -QT += core gui datavisualization +!include( ../tests.pri ) { + error( "Couldn't find the tests.pri file!" ) +} + +QT += core gui datavisualization TARGET = MinimalScatter TEMPLATE = app diff --git a/tests/minimalsurface/minimalsurface.pro b/tests/minimalsurface/minimalsurface.pro index 4ff9b485..b70d4f76 100644 --- a/tests/minimalsurface/minimalsurface.pro +++ b/tests/minimalsurface/minimalsurface.pro @@ -1,4 +1,8 @@ -QT += core gui datavisualization +!include( ../tests.pri ) { + error( "Couldn't find the tests.pri file!" ) +} + +QT += core gui datavisualization TARGET = minimalSurface TEMPLATE = app -- cgit v1.2.3 From 44df7a357fc3d9f977ed36b4199d996869a396e9 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Thu, 23 Jan 2014 11:04:58 +0200 Subject: Move qmlmultigraphs to examples MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit +Fix Q3DScene::isPointInPrimarySubView +Fix Q3DScene::isPointInSecondarySubView +Remove some unnecessary imports from examples Task-number: QTRD-2800 Change-Id: I5a9bc737c5ee92edbb514e76054adbb54076aef8 Reviewed-by: Tomi Korpipää --- tests/qmlmultigraph/main.cpp | 48 ----- tests/qmlmultigraph/qml/qmlmultigraph/main.qml | 234 --------------------- .../qmlmultigraph/qml/qmlmultigraph/newbutton.qml | 52 ----- tests/qmlmultigraph/qmlmultigraph.pro | 25 --- tests/qmlmultigraph/qmlmultigraph.qrc | 6 - .../qtquick2applicationviewer.cpp | 81 ------- .../qtquick2applicationviewer.h | 33 --- .../qtquick2applicationviewer.pri | 180 ---------------- tests/tests.pro | 1 - 9 files changed, 660 deletions(-) delete mode 100644 tests/qmlmultigraph/main.cpp delete mode 100644 tests/qmlmultigraph/qml/qmlmultigraph/main.qml delete mode 100644 tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml delete mode 100644 tests/qmlmultigraph/qmlmultigraph.pro delete mode 100644 tests/qmlmultigraph/qmlmultigraph.qrc delete mode 100644 tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp delete mode 100644 tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h delete mode 100644 tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri (limited to 'tests') diff --git a/tests/qmlmultigraph/main.cpp b/tests/qmlmultigraph/main.cpp deleted file mode 100644 index 9d9e5d8a..00000000 --- a/tests/qmlmultigraph/main.cpp +++ /dev/null @@ -1,48 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVisualization module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** contact form at http://qt.digia.com -** -****************************************************************************/ - -#include -#include -#include "qtquick2applicationviewer.h" -#ifdef Q_OS_ANDROID -#include -#include -#endif -#include - -int main(int argc, char *argv[]) -{ - QGuiApplication app(argc, argv); - - QtQuick2ApplicationViewer viewer; - - // Enable antialiasing - viewer.setFormat(QtDataVisualization::qDefaultSurfaceFormat()); - -#ifdef Q_OS_ANDROID - viewer.addImportPath(QString::fromLatin1("assets:/qml")); - viewer.engine()->addPluginPath(QString::fromLatin1("%1/../%2").arg(QDir::homePath(), - QString::fromLatin1("lib"))); -#endif - viewer.setTitle(QStringLiteral("QML multigraph test")); - viewer.setSource(QUrl("qrc:/qml/main.qml")); - viewer.setResizeMode(QQuickView::SizeRootObjectToView); - viewer.showMaximized(); - - return app.exec(); -} diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml b/tests/qmlmultigraph/qml/qmlmultigraph/main.qml deleted file mode 100644 index 4f2f2052..00000000 --- a/tests/qmlmultigraph/qml/qmlmultigraph/main.qml +++ /dev/null @@ -1,234 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVisualization module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** contact form at http://qt.digia.com -** -****************************************************************************/ - -import QtQuick 2.1 -import QtQuick.Layouts 1.0 -import QtDataVisualization 1.0 -import "." - -Item { - id: mainView - - Bars3D { - id: barGraph - width: parent.width / 3 - anchors.top: emptySpace.bottom - anchors.bottom: parent.bottom - theme: Theme3D { type: Theme3D.ThemeIsabelle } - //clearWindowBeforeRendering: false - - Bar3DSeries { - itemLabelFormat: "@colLabel, @rowLabel: @valueLabel" - - ItemModelBarDataProxy { - itemModel: barDataModel - // Mapping model roles to bar series rows, columns, and values. - rowRole: "year" - columnRole: "city" - valueRole: "expenses" - } - } - - Bar3DSeries { - itemLabelFormat: "@colLabel, @rowLabel: @valueLabel" - - ItemModelBarDataProxy { - itemModel: barDataModel - // Mapping model roles to bar series rows, columns, and values. - rowRole: "year" - columnRole: "city" - valueRole: "income" - } - } - - onRowAxisChanged: { - console.log("Bars: Row axis changed.") - } - onColumnAxisChanged: { - console.log("Bars: column axis changed.") - } - onValueAxisChanged: { - console.log("Bars: Value axis changed.") - } - } - - ListModel { - id: barDataModel - ListElement{ year: "2012"; city: "Oulu"; expenses: "4200"; income: "8300"; } - ListElement{ year: "2012"; city: "Rauma"; expenses: "2100"; income: "6500"; } - ListElement{ year: "2012"; city: "Helsinki"; expenses: "7040"; income: "7500"; } - ListElement{ year: "2012"; city: "Tampere"; expenses: "4330"; income: "5800"; } - ListElement{ year: "2013"; city: "Oulu"; expenses: "3960"; income: "9000"; } - ListElement{ year: "2013"; city: "Rauma"; expenses: "1990"; income: "3000"; } - ListElement{ year: "2013"; city: "Helsinki"; expenses: "7230"; income: "9900"; } - ListElement{ year: "2013"; city: "Tampere"; expenses: "4650"; income: "7600"; } - } - - Scatter3D { - id: scatterGraph - width: parent.width / 3 - anchors.left: barGraph.right - anchors.top: emptySpace.bottom - anchors.bottom: parent.bottom - theme: Theme3D { type: Theme3D.ThemeIsabelle } - //clearWindowBeforeRendering: false - - Scatter3DSeries { - ItemModelScatterDataProxy { - itemModel: scatterDataModel - // Mapping model roles to scatter series item coordinates. - xPosRole: "xPos" - yPosRole: "yPos" - zPosRole: "zPos" - } - } - - onAxisXChanged: { - console.log("Scatter: axis X changed.") - } - onAxisYChanged: { - console.log("Scatter: axis Y changed.") - } - onAxisZChanged: { - console.log("Scatter: axis Z changed.") - } - } - - ListModel { - id: scatterDataModel - ListElement{ xPos: "2.754"; yPos: "1.455"; zPos: "3.362"; } - ListElement{ xPos: "3.164"; yPos: "2.022"; zPos: "4.348"; } - ListElement{ xPos: "4.564"; yPos: "1.865"; zPos: "1.346"; } - ListElement{ xPos: "1.068"; yPos: "1.224"; zPos: "2.983"; } - ListElement{ xPos: "2.323"; yPos: "2.502"; zPos: "3.133"; } - } - - Surface3D { - id: surfaceGraph - width: parent.width / 3 - anchors.left: scatterGraph.right - anchors.top: emptySpace.bottom - anchors.bottom: parent.bottom - theme: Theme3D { type: Theme3D.ThemeIsabelle } - //clearWindowBeforeRendering: false - - Surface3DSeries { - itemLabelFormat: "Pop density at (@xLabel N, @zLabel E): @yLabel" - ItemModelSurfaceDataProxy { - itemModel: surfaceDataModel - // Mapping model roles to surface series rows, columns, and values. - rowRole: "longitude" - columnRole: "latitude" - valueRole: "pop_density" - } - } - - onAxisXChanged: { - console.log("Surface: axis X changed.") - } - onAxisYChanged: { - console.log("Surface: axis Y changed.") - } - onAxisZChanged: { - console.log("Surface: axis Z changed.") - } - } - ListModel { - id: surfaceDataModel - ListElement{ longitude: "20"; latitude: "10"; pop_density: "4.75"; } - ListElement{ longitude: "21"; latitude: "10"; pop_density: "3.00"; } - ListElement{ longitude: "22"; latitude: "10"; pop_density: "1.24"; } - ListElement{ longitude: "23"; latitude: "10"; pop_density: "2.53"; } - ListElement{ longitude: "20"; latitude: "11"; pop_density: "2.55"; } - ListElement{ longitude: "21"; latitude: "11"; pop_density: "2.03"; } - ListElement{ longitude: "22"; latitude: "11"; pop_density: "3.46"; } - ListElement{ longitude: "23"; latitude: "11"; pop_density: "5.12"; } - ListElement{ longitude: "20"; latitude: "12"; pop_density: "1.37"; } - ListElement{ longitude: "21"; latitude: "12"; pop_density: "2.98"; } - ListElement{ longitude: "22"; latitude: "12"; pop_density: "3.33"; } - ListElement{ longitude: "23"; latitude: "12"; pop_density: "3.23"; } - ListElement{ longitude: "20"; latitude: "13"; pop_density: "4.34"; } - ListElement{ longitude: "21"; latitude: "13"; pop_density: "3.54"; } - ListElement{ longitude: "22"; latitude: "13"; pop_density: "1.65"; } - ListElement{ longitude: "23"; latitude: "13"; pop_density: "2.67"; } - } - - RowLayout { - id: buttonLayout - Layout.minimumHeight: exitButton.height - width: parent.width - anchors.left: parent.left - anchors.top: parent.top - spacing: 0 - - NewButton { - id: exitButton - Layout.fillHeight: true - Layout.fillWidth: true - text: "Quit" - onClicked: Qt.quit(0); - } - - NewButton { - id: resetAxesButton - Layout.fillHeight: true - Layout.fillWidth: true - text: "Reset axes" - onClicked: { - barGraph.rowAxis = null - barGraph.columnAxis = null - barGraph.valueAxis = null - scatterGraph.axisX = null - scatterGraph.axisY = null - scatterGraph.axisZ = null - surfaceGraph.axisX = null - surfaceGraph.axisY = null - surfaceGraph.axisZ = null - } - } - - NewButton { - id: clearSelectionsButton - Layout.fillHeight: true - Layout.fillWidth: true - text: "Clear Selections" - onClicked: { - barGraph.clearSelection() - scatterGraph.clearSelection() - surfaceGraph.clearSelection() - } - } - } - - Rectangle { - id: emptySpace - width: parent.width / 2 - height: parent.height / 8 - anchors.top: buttonLayout.bottom - anchors.left: parent.left - color: "#55555500" - } - - Item { - id: emptySpace2 - width: emptySpace.width - height: emptySpace.height - anchors.top: buttonLayout.bottom - anchors.left: emptySpace.right - } -} diff --git a/tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml b/tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml deleted file mode 100644 index e44c9d1a..00000000 --- a/tests/qmlmultigraph/qml/qmlmultigraph/newbutton.qml +++ /dev/null @@ -1,52 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2013 Digia Plc -** All rights reserved. -** For any questions to Digia, please use contact form at http://qt.digia.com -** -** This file is part of the QtDataVisualization module. -** -** Licensees holding valid Qt Enterprise licenses may use this file in -** accordance with the Qt Enterprise License Agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and Digia. -** -** If you have questions regarding the use of this file, please use -** contact form at http://qt.digia.com -** -****************************************************************************/ - -import QtQuick 2.1 -import QtQuick.Controls 1.0 -import QtQuick.Controls.Styles 1.0 - -Item { - id: newbutton - - property alias text: buttonText.text - - signal clicked - - implicitWidth: buttonText.implicitWidth + 5 - implicitHeight: buttonText.implicitHeight + 10 - - Button { - id: buttonText - width: parent.width - height: parent.height - - style: ButtonStyle { - label: Component { - Text { - text: buttonText.text - clip: true - wrapMode: Text.WordWrap - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - anchors.fill: parent - } - } - } - onClicked: newbutton.clicked() - } -} diff --git a/tests/qmlmultigraph/qmlmultigraph.pro b/tests/qmlmultigraph/qmlmultigraph.pro deleted file mode 100644 index 1aca51c0..00000000 --- a/tests/qmlmultigraph/qmlmultigraph.pro +++ /dev/null @@ -1,25 +0,0 @@ -!include( ../tests.pri ) { - error( "Couldn't find the tests.pri file!" ) -} - -QT += widgets - -# Add more folders to ship with the application, here -folder_01.source = qml/qmlmultigraph -folder_01.target = qml -DEPLOYMENTFOLDERS = folder_01 - -# Additional import path used to resolve QML modules in Creator's code model -QML_IMPORT_PATH = - -# The .cpp file which was generated for your project. Feel free to hack it. -SOURCES += main.cpp - -# Please do not modify the following two lines. Required for deployment. -include(qtquick2applicationviewer/qtquick2applicationviewer.pri) -qtcAddDeployment() - -RESOURCES += qmlmultigraph.qrc - -OTHER_FILES += doc/src/* \ - doc/images/* diff --git a/tests/qmlmultigraph/qmlmultigraph.qrc b/tests/qmlmultigraph/qmlmultigraph.qrc deleted file mode 100644 index 78a5f993..00000000 --- a/tests/qmlmultigraph/qmlmultigraph.qrc +++ /dev/null @@ -1,6 +0,0 @@ - - - qml/qmlmultigraph/main.qml - qml/qmlmultigraph/newbutton.qml - - diff --git a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp deleted file mode 100644 index 10709d7a..00000000 --- a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.cpp +++ /dev/null @@ -1,81 +0,0 @@ -// checksum 0x4f6f version 0x90005 -/* - This file was generated by the Qt Quick 2 Application wizard of Qt Creator. - QtQuick2ApplicationViewer is a convenience class containing mobile device specific - code such as screen orientation handling. Also QML paths and debugging are - handled here. - It is recommended not to modify this file, since newer versions of Qt Creator - may offer an updated version of it. -*/ - -#include "qtquick2applicationviewer.h" - -#include -#include -#include - -class QtQuick2ApplicationViewerPrivate -{ - QString mainQmlFile; - friend class QtQuick2ApplicationViewer; - static QString adjustPath(const QString &path); -}; - -QString QtQuick2ApplicationViewerPrivate::adjustPath(const QString &path) -{ -#if defined(Q_OS_MAC) - if (!QDir::isAbsolutePath(path)) - return QString::fromLatin1("%1/../Resources/%2") - .arg(QCoreApplication::applicationDirPath(), path); -#elif defined(Q_OS_BLACKBERRY) - if (!QDir::isAbsolutePath(path)) - return QString::fromLatin1("app/native/%1").arg(path); -#elif !defined(Q_OS_ANDROID) - QString pathInInstallDir = - QString::fromLatin1("%1/../%2").arg(QCoreApplication::applicationDirPath(), path); - if (QFileInfo(pathInInstallDir).exists()) - return pathInInstallDir; - pathInInstallDir = - QString::fromLatin1("%1/%2").arg(QCoreApplication::applicationDirPath(), path); - if (QFileInfo(pathInInstallDir).exists()) - return pathInInstallDir; -#endif - return path; -} - -QtQuick2ApplicationViewer::QtQuick2ApplicationViewer(QWindow *parent) - : QQuickView(parent) - , d(new QtQuick2ApplicationViewerPrivate()) -{ - connect(engine(), SIGNAL(quit()), SLOT(close())); - setResizeMode(QQuickView::SizeRootObjectToView); -} - -QtQuick2ApplicationViewer::~QtQuick2ApplicationViewer() -{ - delete d; -} - -void QtQuick2ApplicationViewer::setMainQmlFile(const QString &file) -{ - d->mainQmlFile = QtQuick2ApplicationViewerPrivate::adjustPath(file); -#ifdef Q_OS_ANDROID - setSource(QUrl(QLatin1String("assets:/")+d->mainQmlFile)); -#else - setSource(QUrl::fromLocalFile(d->mainQmlFile)); -#endif -} - -void QtQuick2ApplicationViewer::addImportPath(const QString &path) -{ - engine()->addImportPath(QtQuick2ApplicationViewerPrivate::adjustPath(path)); -} - -void QtQuick2ApplicationViewer::showExpanded() -{ -#if defined(Q_WS_SIMULATOR) || defined(Q_OS_QNX) - showFullScreen(); -#else - show(); -#endif -} diff --git a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h deleted file mode 100644 index cf66f140..00000000 --- a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.h +++ /dev/null @@ -1,33 +0,0 @@ -// checksum 0xfde6 version 0x90005 -/* - This file was generated by the Qt Quick 2 Application wizard of Qt Creator. - QtQuick2ApplicationViewer is a convenience class containing mobile device specific - code such as screen orientation handling. Also QML paths and debugging are - handled here. - It is recommended not to modify this file, since newer versions of Qt Creator - may offer an updated version of it. -*/ - -#ifndef QTQUICK2APPLICATIONVIEWER_H -#define QTQUICK2APPLICATIONVIEWER_H - -#include - -class QtQuick2ApplicationViewer : public QQuickView -{ - Q_OBJECT - -public: - explicit QtQuick2ApplicationViewer(QWindow *parent = 0); - virtual ~QtQuick2ApplicationViewer(); - - void setMainQmlFile(const QString &file); - void addImportPath(const QString &path); - - void showExpanded(); - -private: - class QtQuick2ApplicationViewerPrivate *d; -}; - -#endif // QTQUICK2APPLICATIONVIEWER_H diff --git a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri b/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri deleted file mode 100644 index e5f7990f..00000000 --- a/tests/qmlmultigraph/qtquick2applicationviewer/qtquick2applicationviewer.pri +++ /dev/null @@ -1,180 +0,0 @@ -# checksum 0x7b0d version 0x90005 -# This file was generated by the Qt Quick 2 Application wizard of Qt Creator. -# The code below adds the QtQuick2ApplicationViewer to the project and handles -# the activation of QML debugging. -# It is recommended not to modify this file, since newer versions of Qt Creator -# may offer an updated version of it. - -QT += qml quick - -SOURCES += $$PWD/qtquick2applicationviewer.cpp -HEADERS += $$PWD/qtquick2applicationviewer.h -INCLUDEPATH += $$PWD -# This file was generated by an application wizard of Qt Creator. -# The code below handles deployment to Android and Maemo, aswell as copying -# of the application data to shadow build directories on desktop. -# It is recommended not to modify this file, since newer versions of Qt Creator -# may offer an updated version of it. - -defineTest(qtcAddDeployment) { -for(deploymentfolder, DEPLOYMENTFOLDERS) { - item = item$${deploymentfolder} - greaterThan(QT_MAJOR_VERSION, 4) { - itemsources = $${item}.files - } else { - itemsources = $${item}.sources - } - $$itemsources = $$eval($${deploymentfolder}.source) - itempath = $${item}.path - $$itempath= $$eval($${deploymentfolder}.target) - export($$itemsources) - export($$itempath) - DEPLOYMENT += $$item -} - -MAINPROFILEPWD = $$PWD - -android-no-sdk { - for(deploymentfolder, DEPLOYMENTFOLDERS) { - item = item$${deploymentfolder} - itemfiles = $${item}.files - $$itemfiles = $$eval($${deploymentfolder}.source) - itempath = $${item}.path - $$itempath = /data/user/qt/$$eval($${deploymentfolder}.target) - export($$itemfiles) - export($$itempath) - INSTALLS += $$item - } - - target.path = /data/user/qt - - export(target.path) - INSTALLS += target -} else:android { - for(deploymentfolder, DEPLOYMENTFOLDERS) { - item = item$${deploymentfolder} - itemfiles = $${item}.files - $$itemfiles = $$eval($${deploymentfolder}.source) - itempath = $${item}.path - $$itempath = /assets/$$eval($${deploymentfolder}.target) - export($$itemfiles) - export($$itempath) - INSTALLS += $$item - } - - x86 { - target.path = /libs/x86 - } else: armeabi-v7a { - target.path = /libs/armeabi-v7a - } else { - target.path = /libs/armeabi - } - - export(target.path) - INSTALLS += target -} else:win32 { - copyCommand = - for(deploymentfolder, DEPLOYMENTFOLDERS) { - source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) - source = $$replace(source, /, \\) - sourcePathSegments = $$split(source, \\) - target = $$OUT_PWD/$$eval($${deploymentfolder}.target)/$$last(sourcePathSegments) - target = $$replace(target, /, \\) - target ~= s,\\\\\\.?\\\\,\\, - !isEqual(source,$$target) { - !isEmpty(copyCommand):copyCommand += && - isEqual(QMAKE_DIR_SEP, \\) { - copyCommand += $(COPY_DIR) \"$$source\" \"$$target\" - } else { - source = $$replace(source, \\\\, /) - target = $$OUT_PWD/$$eval($${deploymentfolder}.target) - target = $$replace(target, \\\\, /) - copyCommand += test -d \"$$target\" || mkdir -p \"$$target\" && cp -r \"$$source\" \"$$target\" - } - } - } - !isEmpty(copyCommand) { - copyCommand = @echo Copying application data... && $$copyCommand - copydeploymentfolders.commands = $$copyCommand - first.depends = $(first) copydeploymentfolders - export(first.depends) - export(copydeploymentfolders.commands) - QMAKE_EXTRA_TARGETS += first copydeploymentfolders - } -} else:unix { - maemo5 { - desktopfile.files = $${TARGET}.desktop - desktopfile.path = /usr/share/applications/hildon - icon.files = $${TARGET}64.png - icon.path = /usr/share/icons/hicolor/64x64/apps - } else:!isEmpty(MEEGO_VERSION_MAJOR) { - desktopfile.files = $${TARGET}_harmattan.desktop - desktopfile.path = /usr/share/applications - icon.files = $${TARGET}80.png - icon.path = /usr/share/icons/hicolor/80x80/apps - } else { # Assumed to be a Desktop Unix - copyCommand = - for(deploymentfolder, DEPLOYMENTFOLDERS) { - source = $$MAINPROFILEPWD/$$eval($${deploymentfolder}.source) - source = $$replace(source, \\\\, /) - macx { - target = $$OUT_PWD/$${TARGET}.app/Contents/Resources/$$eval($${deploymentfolder}.target) - } else { - target = $$OUT_PWD/$$eval($${deploymentfolder}.target) - } - target = $$replace(target, \\\\, /) - sourcePathSegments = $$split(source, /) - targetFullPath = $$target/$$last(sourcePathSegments) - targetFullPath ~= s,/\\.?/,/, - !isEqual(source,$$targetFullPath) { - !isEmpty(copyCommand):copyCommand += && - copyCommand += $(MKDIR) \"$$target\" - copyCommand += && $(COPY_DIR) \"$$source\" \"$$target\" - } - } - !isEmpty(copyCommand) { - copyCommand = @echo Copying application data... && $$copyCommand - copydeploymentfolders.commands = $$copyCommand - first.depends = $(first) copydeploymentfolders - export(first.depends) - export(copydeploymentfolders.commands) - QMAKE_EXTRA_TARGETS += first copydeploymentfolders - } - } - !isEmpty(target.path) { - installPrefix = $${target.path} - } else { - installPrefix = /opt/$${TARGET} - } - for(deploymentfolder, DEPLOYMENTFOLDERS) { - item = item$${deploymentfolder} - itemfiles = $${item}.files - $$itemfiles = $$eval($${deploymentfolder}.source) - itempath = $${item}.path - $$itempath = $${installPrefix}/$$eval($${deploymentfolder}.target) - export($$itemfiles) - export($$itempath) - INSTALLS += $$item - } - - !isEmpty(desktopfile.path) { - export(icon.files) - export(icon.path) - export(desktopfile.files) - export(desktopfile.path) - INSTALLS += icon desktopfile - } - - isEmpty(target.path) { - target.path = $${installPrefix}/bin - export(target.path) - } - INSTALLS += target -} - -export (ICON) -export (INSTALLS) -export (DEPLOYMENT) -export (LIBS) -export (QMAKE_EXTRA_TARGETS) -} diff --git a/tests/tests.pro b/tests/tests.pro index 41c0bee9..ec28d997 100644 --- a/tests/tests.pro +++ b/tests/tests.pro @@ -13,7 +13,6 @@ SUBDIRS += barstest \ qmlcamera \ qmldynamicdata \ multigraphs \ - qmlmultigraph \ directional #SUBDIRS += kinectsurface -- cgit v1.2.3 From f5a67847b72cf372f076657405769b024d5f6756 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Thu, 23 Jan 2014 13:07:28 +0200 Subject: Kinectsurface test fixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Compiles ok, but not tested. Change-Id: I3762ff027e4afe74a2f74cbfb5f5f1be36190a72 Change-Id: I3762ff027e4afe74a2f74cbfb5f5f1be36190a72 Reviewed-by: Tomi Korpipää --- tests/kinectsurface/surfacedata.cpp | 101 ++++++++++++++++++------------------ 1 file changed, 51 insertions(+), 50 deletions(-) (limited to 'tests') diff --git a/tests/kinectsurface/surfacedata.cpp b/tests/kinectsurface/surfacedata.cpp index c0fb4a04..8caa7793 100644 --- a/tests/kinectsurface/surfacedata.cpp +++ b/tests/kinectsurface/surfacedata.cpp @@ -21,11 +21,16 @@ #include "surfacedata.h" #include "QKinectWrapper.h" #include +#include +#include +#include +#include +#include #include #include #include -QT_DATAVISUALIZATION_USE_NAMESPACE +using namespace QtDataVisualization; SurfaceData::SurfaceData(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars, QTextEdit *statusArea) : @@ -39,29 +44,33 @@ SurfaceData::SurfaceData(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars m_mode(Surface) { // Initialize surface - m_surface->setTheme(QDataVis::ThemeIsabelle); + m_surface->activeTheme()->setType(Q3DTheme::ThemeIsabelle); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::black); gradient.setColorAt(0.33, Qt::blue); gradient.setColorAt(0.67, Qt::red); gradient.setColorAt(1.0, Qt::yellow); - m_surface->setSelectionMode(QDataVis::SelectionNone); - m_surface->setGridVisible(false); - m_surface->setGradient(gradient); + m_surface->setSelectionMode(QAbstract3DGraph::SelectionNone); + m_surface->activeTheme()->setGridEnabled(false); + m_surface->activeTheme()->setBackgroundEnabled(false); + m_surface->scene()->activeCamera()->setCameraPosition(0.0, 90.0, 150); m_surface->axisY()->setMax(255); - m_surface->setSurfaceGridEnabled(false); - m_surface->setBackgroundVisible(false); - m_surface->setFlatShadingEnabled(true); - m_surface->setActiveDataProxy(new QHeightMapSurfaceDataProxy()); - m_surface->setCameraPosition(0.0, 90.0, 105); + QSurface3DSeries *series1 = new QSurface3DSeries(new QHeightMapSurfaceDataProxy()); + series1->setFlatShadingEnabled(true); + series1->setDrawMode(QSurface3DSeries::DrawSurface); + series1->setColorStyle(Q3DTheme::ColorStyleRangeGradient); + series1->setBaseGradient(gradient); + m_surface->addSeries(series1); // Initialize scatter - m_scatter->setTheme(QDataVis::ThemeStoneMoss); - m_scatter->setSelectionMode(QDataVis::SelectionNone); - m_scatter->setGridVisible(false); - m_scatter->setObjectType(QDataVis::MeshDots, false); - m_scatter->setShadowQuality(QDataVis::ShadowQualitySoftLow); - m_scatter->setCameraPosition(0.0, 85.0, 110); + m_scatter->activeTheme()->setType(Q3DTheme::ThemeStoneMoss); + m_scatter->setSelectionMode(QAbstract3DGraph::SelectionNone); + m_scatter->activeTheme()->setGridEnabled(false); + m_scatter->setShadowQuality(QAbstract3DGraph::ShadowQualitySoftLow); + m_scatter->scene()->activeCamera()->setCameraPosition(0.0, 85.0, 150); + QScatter3DSeries *series2 = new QScatter3DSeries; + series2->setMesh(QAbstract3DSeries::MeshPoint); + m_scatter->addSeries(series2); m_scatter->axisY()->setMin(-128); m_scatter->axisY()->setMax(128); m_scatter->axisX()->setMin(-m_resolution.width() / 2); @@ -70,16 +79,16 @@ SurfaceData::SurfaceData(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars m_scatter->axisZ()->setMax(m_resolution.height() / 2); // Initialize bars - m_bars->setTheme(QDataVis::ThemeQt); - m_bars->setSelectionMode(QDataVis::SelectionNone); - m_bars->setGridVisible(false); - m_bars->setBarType(QDataVis::MeshBars, true); -#if 1 - m_bars->setShadowQuality(QDataVis::ShadowQualityLow); -#else + m_bars->activeTheme()->setType(Q3DTheme::ThemeQt); + m_bars->setSelectionMode(QAbstract3DGraph::SelectionNone); + m_bars->activeTheme()->setGridEnabled(false); + m_bars->setShadowQuality(QAbstract3DGraph::ShadowQualityLow); m_bars->setBarSpacing(QSizeF(0.0, 0.0)); -#endif - m_bars->setCameraPosition(0.0, 75.0); + m_bars->scene()->activeCamera()->setCameraPosition(0.0, 75.0, 150); + QBar3DSeries *series3 = new QBar3DSeries; + series3->setMesh(QAbstract3DSeries::MeshBar); + series3->setMeshSmooth(true); + m_bars->addSeries(series3); m_bars->valueAxis()->setMax(255); // Hide scroll bar @@ -92,21 +101,10 @@ SurfaceData::SurfaceData(Q3DSurface *surface, Q3DScatter *scatter, Q3DBars *bars } SurfaceData::~SurfaceData() -{ // HACK: The current context needs to be destroyed last - // TODO: Fix properly in datavis code somehow - if (m_mode == Surface) { - delete m_scatter; - delete m_bars; - delete m_surface; - } else if (m_mode == MeshBars) { - delete m_scatter; - delete m_surface; - delete m_bars; - } else { - delete m_bars; - delete m_surface; - delete m_scatter; - } +{ + delete m_bars; + delete m_surface; + delete m_scatter; } void SurfaceData::updateData() @@ -114,11 +112,12 @@ void SurfaceData::updateData() QImage depthMap = m_kinect.getDepth(); if (m_resize) // Resize for better performance depthMap = depthMap.scaled(m_resolution); - if (m_mode != Surface) + if (m_mode != Surface) { setData(depthMap); - else - static_cast(m_surface->activeDataProxy())->setHeightMap( + } else { + static_cast(m_surface->seriesList().at(0)->dataProxy())->setHeightMap( depthMap); + } } void SurfaceData::updateStatus(QKinect::KinectStatus status) @@ -164,7 +163,7 @@ void SurfaceData::stop() void SurfaceData::setDistance(int distance) { - m_kinect.setMaxDist(unsigned int(distance * 100)); + m_kinect.setMaxDist((unsigned int)(distance * 100)); } void SurfaceData::setResolution(int selection) @@ -226,24 +225,26 @@ void SurfaceData::scrollDown() void SurfaceData::useGradientOne() { - m_surface->setTheme(QDataVis::ThemeIsabelle); + m_surface->activeTheme()->setType(Q3DTheme::ThemeIsabelle); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::black); gradient.setColorAt(0.33, Qt::blue); gradient.setColorAt(0.67, Qt::red); gradient.setColorAt(1.0, Qt::yellow); - m_surface->setGradient(gradient); + m_surface->seriesList().at(0)->setBaseGradient(gradient); + m_surface->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleRangeGradient); m_statusArea->append(QStringLiteral("Colors: Thermal image imitation")); } void SurfaceData::useGradientTwo() { - m_surface->setTheme(QDataVis::ThemeQt); + m_surface->activeTheme()->setType(Q3DTheme::ThemeQt); QLinearGradient gradient; gradient.setColorAt(0.0, Qt::white); gradient.setColorAt(0.8, Qt::red); gradient.setColorAt(1.0, Qt::green); - m_surface->setGradient(gradient); + m_surface->seriesList().at(0)->setBaseGradient(gradient); + m_surface->seriesList().at(0)->setColorStyle(Q3DTheme::ColorStyleRangeGradient); m_statusArea->append(QStringLiteral("Colors: Highlight foreground")); } @@ -278,7 +279,7 @@ void SurfaceData::setData(const QImage &image) } QScatterDataArray *dataArray = new QScatterDataArray(m_scatterDataArray->mid(0, count)); - static_cast(m_scatter->activeDataProxy())->resetArray(dataArray); + m_scatter->seriesList().at(0)->dataProxy()->resetArray(dataArray); } else { QBarDataArray *dataArray = m_barDataArray; for (int i = 0; i < imageHeight; i++, bitCount -= widthBits) { @@ -287,7 +288,7 @@ void SurfaceData::setData(const QImage &image) newRow[j] = qreal(bits[bitCount + (j * 4)]); } - static_cast(m_bars->activeDataProxy())->resetArray(dataArray); + m_bars->seriesList().at(0)->dataProxy()->resetArray(dataArray); } } -- cgit v1.2.3 From 8802cf50ef296ce8cc56a2ba97fa237237f62d15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Fri, 24 Jan 2014 08:26:09 +0200 Subject: Multiseries bars uniform scaling support added Task-number: QTRD-2805 Change-Id: I7172662b2bed0a222ceb7560718450bcabd2879d Reviewed-by: Miikka Heikkinen --- tests/barstest/chart.cpp | 5 +++++ tests/barstest/chart.h | 1 + tests/barstest/main.cpp | 6 ++++++ 3 files changed, 12 insertions(+) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index abbf2a59..6b0345ad 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -1223,3 +1223,8 @@ void GraphModifier::setGradient() m_graph->activeTheme()->setColorStyle(Q3DTheme::ColorStyleObjectGradient); } + +void GraphModifier::toggleMultiseriesScaling() +{ + m_graph->setMultiSeriesUniform(!m_graph->isMultiSeriesUniform()); +} diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 425af521..8e3271cc 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -88,6 +88,7 @@ public: public slots: void flipViews(); void setGradient(); + void toggleMultiseriesScaling(); void changeShadowQuality(int quality); void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality); void handleSelectionChange(const QPoint &position); diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index a0e1bfc3..52d79468 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -110,6 +110,9 @@ int main(int argc, char **argv) QPushButton *labelButton = new QPushButton(widget); labelButton->setText(QStringLiteral("Change label style")); + QPushButton *multiScaleButton = new QPushButton(widget); + multiScaleButton->setText(QStringLiteral("Change multiseries scaling")); + QPushButton *styleButton = new QPushButton(widget); styleButton->setText(QStringLiteral("Change bar style")); @@ -292,6 +295,7 @@ int main(int argc, char **argv) vLayout->addWidget(showFiveSeriesButton, 0, Qt::AlignTop); vLayout->addWidget(themeButton, 0, Qt::AlignTop); vLayout->addWidget(labelButton, 0, Qt::AlignTop); + vLayout->addWidget(multiScaleButton, 0, Qt::AlignTop); vLayout->addWidget(styleButton, 0, Qt::AlignTop); vLayout->addWidget(cameraButton, 0, Qt::AlignTop); vLayout->addWidget(selectionButton, 0, Qt::AlignTop); @@ -367,6 +371,8 @@ int main(int argc, char **argv) QObject::connect(fontSizeSlider, &QSlider::valueChanged, modifier, &GraphModifier::changeFontSize); + QObject::connect(multiScaleButton, &QPushButton::clicked, modifier, + &GraphModifier::toggleMultiseriesScaling); QObject::connect(styleButton, &QPushButton::clicked, modifier, &GraphModifier::changeStyle); QObject::connect(cameraButton, &QPushButton::clicked, modifier, &GraphModifier::changePresetCamera); -- cgit v1.2.3 From 289584f6e4434577abea050855fb59ef84417070 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Fri, 24 Jan 2014 09:55:54 +0200 Subject: iOS fix for qml examples Change-Id: Ia8e70005c467746bccc9cc6023b2cb485d5a8e7e Reviewed-by: Miikka Heikkinen --- tests/tests.pri | 37 +++++++++++++++++++++++-------------- 1 file changed, 23 insertions(+), 14 deletions(-) (limited to 'tests') diff --git a/tests/tests.pri b/tests/tests.pri index d374ea3b..13ba2c7a 100644 --- a/tests/tests.pri +++ b/tests/tests.pri @@ -47,7 +47,11 @@ contains(TARGET, qml.*) { static:contains(QT_CONFIG, static) { # Make import scan find our copied qmldir & statically built qml lib - LIB_EXTENSION = lib + !win32 { + LIB_EXTENSION = a + } else { + LIB_EXTENSION = lib + } QMLPATHS += $$DESTDIR # We need to copy the qmldir & lib already at qmake run stage as import scan is done then exists($$copy_qmldir.depends): system($$QMAKE_COPY $$copy_qmldir_formatted) @@ -55,7 +59,7 @@ contains(TARGET, qml.*) { win32 { LIB_EXTENSION = dll } else { - mac { + mac|ios { LIB_EXTENSION = dylib } else { LIB_EXTENSION = so @@ -65,16 +69,16 @@ contains(TARGET, qml.*) { win32 { CONFIG(debug, release|debug) { - src_dir = debug + src_dir = /debug src_lib = $${lib_name}d.$$LIB_EXTENSION } CONFIG(release, release|debug){ - src_dir = release + src_dir = /release src_lib = $${lib_name}.$$LIB_EXTENSION } } else { - src_dir = . - mac { + src_dir = + mac|ios { CONFIG(debug, release|debug) { src_lib = lib$${lib_name}_debug.$$LIB_EXTENSION } @@ -87,7 +91,7 @@ contains(TARGET, qml.*) { } } copy_lib.target = $$make_qmldir_path/$$src_lib - copy_lib.depends = $$OUT_PWD/../../src/$$lib_name/$$src_dir/$$src_lib + copy_lib.depends = $$OUT_PWD/../../src/$$lib_name$$src_dir/$$src_lib copy_lib_formatted = \"$$replace(copy_lib.depends, /, $$QMAKE_DIR_SEP)\" \"$$replace(copy_lib.target, /, $$QMAKE_DIR_SEP)\" copy_lib.commands = $(COPY_FILE) $$copy_lib_formatted QMAKE_EXTRA_TARGETS += copy_lib @@ -98,12 +102,17 @@ contains(TARGET, qml.*) { android_qmldir.files = $$copy_qmldir.target android_qmldir.path = /assets/qml/$$uri_replaced INSTALLS += android_qmldir - # No need to do custom install for qml plugin lib when it is statically built into app - !static|!contains(QT_CONFIG, static) { - system($$QMAKE_COPY $$copy_lib_formatted) - android_qmlplugin.files = $$copy_lib.target - android_qmlplugin.path = $$target.path - INSTALLS += android_qmlplugin - } + } + ios { + system($$QMAKE_COPY $$copy_qmldir_formatted) + ios_qmldir.files = $$copy_qmldir.target + ios_qmldir.path = /TODO/$$uri_replaced + INSTALLS += ios_qmldir + } + android|ios { + system($$QMAKE_COPY $$copy_lib_formatted) + android_qmlplugin.files = $$copy_lib.target + android_qmlplugin.path = $$target.path + INSTALLS += android_qmlplugin } } -- cgit v1.2.3 From 8178f10769f7f7d84d4d1180994d0232e5fc8f93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tomi=20Korpip=C3=A4=C3=A4?= Date: Mon, 27 Jan 2014 07:31:49 +0200 Subject: iOS changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removed unnecessary lines from examples and tests project includes Task-number: QTRD-2802 Change-Id: Ie4f546f432babce0c3a96abf5b35012f730102a2 Reviewed-by: Tomi Korpipää --- tests/tests.pri | 6 ------ 1 file changed, 6 deletions(-) (limited to 'tests') diff --git a/tests/tests.pri b/tests/tests.pri index 13ba2c7a..59253152 100644 --- a/tests/tests.pri +++ b/tests/tests.pri @@ -103,12 +103,6 @@ contains(TARGET, qml.*) { android_qmldir.path = /assets/qml/$$uri_replaced INSTALLS += android_qmldir } - ios { - system($$QMAKE_COPY $$copy_qmldir_formatted) - ios_qmldir.files = $$copy_qmldir.target - ios_qmldir.path = /TODO/$$uri_replaced - INSTALLS += ios_qmldir - } android|ios { system($$QMAKE_COPY $$copy_lib_formatted) android_qmlplugin.files = $$copy_lib.target -- cgit v1.2.3 From 71b501d31ae7c5d3aab987b54acccecce1136896 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Fri, 24 Jan 2014 13:45:18 +0200 Subject: Added series rotation and bar item rotation support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Task-number: QTRD-2654 Change-Id: I864d33bc173b35b8680eddb402bdf1817ecb031f Reviewed-by: Tomi Korpipää --- tests/barstest/chart.cpp | 38 ++++++++++++++++++++++++++++++- tests/barstest/chart.h | 4 ++++ tests/barstest/main.cpp | 7 ++++++ tests/directional/main.cpp | 6 +++++ tests/directional/scatterdatamodifier.cpp | 29 +++++++++++++++++++++++ tests/directional/scatterdatamodifier.h | 4 ++++ 6 files changed, 87 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 6b0345ad..187f4886 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -47,6 +47,7 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) m_minval(-16.0f), m_maxval(20.0f), m_selectedBar(-1, -1), + m_selectedSeries(0), m_autoAdjustingAxis(new QValue3DAxis), m_fixedRangeAxis(new QValue3DAxis), m_temperatureAxis(new QValue3DAxis), @@ -229,6 +230,8 @@ GraphModifier::GraphModifier(Q3DBars *barchart, QColorDialog *colorDialog) QObject::connect(&m_selectionTimer, &QTimer::timeout, this, &GraphModifier::triggerSelection); + QObject::connect(&m_rotationTimer, &QTimer::timeout, this, + &GraphModifier::triggerRotation); resetTemperatureData(); } @@ -702,11 +705,17 @@ void GraphModifier::handleSelectionChange(const QPoint &position) m_selectedBar = position; int index = 0; foreach (QBar3DSeries *series, m_graph->seriesList()) { - if (series == sender()) + if (series == sender()) { + if (series->selectedBar() != QBar3DSeries::invalidSelectionPosition()) + m_selectedSeries = series; break; + } index++; } + if (m_selectedSeries->selectedBar() == QBar3DSeries::invalidSelectionPosition()) + m_selectedSeries = 0; + qDebug() << "Selected bar position:" << position << "series:" << index; } @@ -1027,6 +1036,14 @@ void GraphModifier::insertRemoveTestToggle() } } +void GraphModifier::toggleRotation() +{ + if (m_rotationTimer.isActive()) + m_rotationTimer.stop(); + else + m_rotationTimer.start(20); +} + void GraphModifier::insertRemoveTimerTimeout() { if (m_insertRemoveStep < 32) { @@ -1066,6 +1083,25 @@ void GraphModifier::triggerSelection() m_graph->scene()->setSelectionQueryPosition(m_customInputHandler->inputPosition()); } +void GraphModifier::triggerRotation() +{ + if (m_selectedSeries) { + QPoint selectedBar = m_selectedSeries->selectedBar(); + if (selectedBar != QBar3DSeries::invalidSelectionPosition()) { + QBarDataItem item(*(m_selectedSeries->dataProxy()->itemAt(selectedBar.x(), selectedBar.y()))); + item.setRotation(item.rotation() + 1.0f); + m_selectedSeries->dataProxy()->setItem(selectedBar.x(), selectedBar.y(), item); + } + } else { + // Rotate the first series instead + static float seriesAngle = 0.0f; + if (m_graph->seriesList().size()) { + QQuaternion rotation = QQuaternion::fromAxisAndAngle(0.0f, 1.0f, 0.0f, seriesAngle++); + m_graph->seriesList().at(0)->setMeshRotation(rotation); + } + } +} + void GraphModifier::setBackgroundEnabled(int enabled) { m_graph->activeTheme()->setBackgroundEnabled(bool(enabled)); diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index 8e3271cc..c9d2ca9e 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -84,6 +84,7 @@ public: QBarDataArray *makeDummyData(); void primarySeriesTest(); void insertRemoveTestToggle(); + void toggleRotation(); public slots: void flipViews(); @@ -101,6 +102,7 @@ public slots: void insertRemoveTimerTimeout(); void triggerSelection(); + void triggerRotation(); signals: void shadowQualityChanged(int quality); @@ -123,6 +125,7 @@ private: QStringList m_months; QStringList m_years; QPoint m_selectedBar; + QBar3DSeries *m_selectedSeries; QValue3DAxis *m_autoAdjustingAxis; QValue3DAxis *m_fixedRangeAxis; QValue3DAxis *m_temperatureAxis; @@ -148,6 +151,7 @@ private: int m_insertRemoveStep; QAbstract3DInputHandler *m_customInputHandler; QTimer m_selectionTimer; + QTimer m_rotationTimer; }; #endif diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index 52d79468..a57d4aca 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -161,6 +161,10 @@ int main(int argc, char **argv) primarySeriesTestsButton->setText(QStringLiteral("Test primary series")); primarySeriesTestsButton->setEnabled(true); + QPushButton *toggleRotationButton = new QPushButton(widget); + toggleRotationButton->setText(QStringLiteral("Toggle rotation")); + toggleRotationButton->setEnabled(true); + QColorDialog *colorDialog = new QColorDialog(widget); QLinearGradient grBtoY(0, 0, 100, 0); @@ -308,6 +312,7 @@ int main(int argc, char **argv) vLayout->addWidget(changeColorStyleButton, 0, Qt::AlignTop); vLayout->addWidget(ownThemeButton, 0, Qt::AlignTop); vLayout->addWidget(primarySeriesTestsButton, 0, Qt::AlignTop); + vLayout->addWidget(toggleRotationButton, 0, Qt::AlignTop); vLayout->addWidget(gradientBtoYPB, 1, Qt::AlignTop); vLayout2->addWidget(staticCheckBox, 0, Qt::AlignTop); @@ -411,6 +416,8 @@ int main(int argc, char **argv) &GraphModifier::useOwnTheme); QObject::connect(primarySeriesTestsButton, &QPushButton::clicked, modifier, &GraphModifier::primarySeriesTest); + QObject::connect(toggleRotationButton, &QPushButton::clicked, modifier, + &GraphModifier::toggleRotation); QObject::connect(colorDialog, &QColorDialog::currentColorChanged, modifier, &GraphModifier::changeBaseColor); QObject::connect(gradientBtoYPB, &QPushButton::clicked, modifier, diff --git a/tests/directional/main.cpp b/tests/directional/main.cpp index 359868cc..34d2e4a1 100644 --- a/tests/directional/main.cpp +++ b/tests/directional/main.cpp @@ -78,6 +78,9 @@ int main(int argc, char **argv) QPushButton *cameraButton = new QPushButton(widget); cameraButton->setText(QStringLiteral("Change camera preset")); + QPushButton *toggleRotationButton = new QPushButton(widget); + toggleRotationButton->setText(QStringLiteral("Toggle rotation")); + QCheckBox *backgroundCheckBox = new QCheckBox(widget); backgroundCheckBox->setText(QStringLiteral("Show background")); backgroundCheckBox->setChecked(true); @@ -103,6 +106,7 @@ int main(int argc, char **argv) //! [5] vLayout->addWidget(labelButton, 0, Qt::AlignTop); vLayout->addWidget(cameraButton, 0, Qt::AlignTop); + vLayout->addWidget(toggleRotationButton, 0, Qt::AlignTop); vLayout->addWidget(backgroundCheckBox); vLayout->addWidget(gridCheckBox); vLayout->addWidget(new QLabel(QStringLiteral("Change dot style"))); @@ -122,6 +126,8 @@ int main(int argc, char **argv) //! [6] QObject::connect(cameraButton, &QPushButton::clicked, modifier, &ScatterDataModifier::changePresetCamera); + QObject::connect(toggleRotationButton, &QPushButton::clicked, modifier, + &ScatterDataModifier::toggleRotation); QObject::connect(labelButton, &QPushButton::clicked, modifier, &ScatterDataModifier::changeLabelStyle); diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp index f7089ae4..5da48483 100644 --- a/tests/directional/scatterdatamodifier.cpp +++ b/tests/directional/scatterdatamodifier.cpp @@ -56,6 +56,9 @@ ScatterDataModifier::ScatterDataModifier(Q3DScatter *scatter) series->setItemLabelFormat("@xTitle: @xLabel @yTitle: @yLabel @zTitle: @zLabel"); m_graph->addSeries(series); + QObject::connect(&m_rotationTimer, &QTimer::timeout, this, + &ScatterDataModifier::triggerRotation); + addData(); } @@ -164,6 +167,24 @@ void ScatterDataModifier::shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQ emit shadowQualityChanged(quality); // connected to a checkbox in main.cpp } +void ScatterDataModifier::triggerRotation() +{ + if (m_graph->seriesList().size()) { + int selectedIndex = m_graph->seriesList().at(0)->selectedItem(); + if (selectedIndex != QScatter3DSeries::invalidSelectionIndex()) { + static float itemAngle = 0.0f; + QScatterDataItem item(*(m_graph->seriesList().at(0)->dataProxy()->itemAt(selectedIndex))); + QQuaternion itemRotation = QQuaternion::fromAxisAndAngle(0.0f, 0.0f, 1.0f, itemAngle++); + item.setRotation(itemRotation); + m_graph->seriesList().at(0)->dataProxy()->setItem(selectedIndex, item); + } else { + static float seriesAngle = 0.0f; + QQuaternion rotation = QQuaternion::fromAxisAndAngle(1.0f, 1.0f, 1.0f, seriesAngle++); + m_graph->seriesList().at(0)->setMeshRotation(rotation); + } + } +} + void ScatterDataModifier::changeShadowQuality(int quality) { QAbstract3DGraph::ShadowQuality sq = QAbstract3DGraph::ShadowQuality(quality); @@ -179,3 +200,11 @@ void ScatterDataModifier::setGridEnabled(int enabled) { m_graph->activeTheme()->setGridEnabled((bool)enabled); } + +void ScatterDataModifier::toggleRotation() +{ + if (m_rotationTimer.isActive()) + m_rotationTimer.stop(); + else + m_rotationTimer.start(20); +} diff --git a/tests/directional/scatterdatamodifier.h b/tests/directional/scatterdatamodifier.h index e3979818..f920d43f 100644 --- a/tests/directional/scatterdatamodifier.h +++ b/tests/directional/scatterdatamodifier.h @@ -22,6 +22,7 @@ #include #include #include +#include using namespace QtDataVisualization; @@ -40,6 +41,7 @@ public: void changeFontSize(int fontsize); void setBackgroundEnabled(int enabled); void setGridEnabled(int enabled); + void toggleRotation(); void start(); public slots: @@ -47,6 +49,7 @@ public slots: void changeTheme(int theme); void changeShadowQuality(int quality); void shadowQualityUpdatedByVisual(QAbstract3DGraph::ShadowQuality shadowQuality); + void triggerRotation(); signals: void backgroundEnabledChanged(bool enabled); @@ -59,6 +62,7 @@ private: int m_fontSize; QAbstract3DSeries::Mesh m_style; bool m_smooth; + QTimer m_rotationTimer; }; #endif -- cgit v1.2.3 From 3b57eb8aaef9886a9975b7b861f31bdf8ed15fdb Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 27 Jan 2014 08:18:03 +0200 Subject: Fix copyright year Task-number: QTRD-2803 Change-Id: If670633f52519741a096abe901d55fd084ddc9c5 Reviewed-by: Miikka Heikkinen --- tests/barstest/chart.cpp | 2 +- tests/barstest/chart.h | 2 +- tests/barstest/custominputhandler.cpp | 2 +- tests/barstest/custominputhandler.h | 2 +- tests/barstest/main.cpp | 2 +- tests/directional/main.cpp | 2 +- tests/directional/scatterdatamodifier.cpp | 2 +- tests/directional/scatterdatamodifier.h | 2 +- tests/kinectsurface/main.cpp | 2 +- tests/kinectsurface/surfacedata.cpp | 2 +- tests/kinectsurface/surfacedata.h | 2 +- tests/multigraphs/data.cpp | 2 +- tests/multigraphs/data.h | 2 +- tests/multigraphs/main.cpp | 2 +- tests/qmlcamera/main.cpp | 2 +- tests/qmlcamera/qml/qmlcamera/Axes.qml | 2 +- tests/qmlcamera/qml/qmlcamera/ControlSurface.qml | 2 +- tests/qmlcamera/qml/qmlcamera/Data.qml | 2 +- tests/qmlcamera/qml/qmlcamera/main.qml | 2 +- tests/qmldynamicdata/main.cpp | 2 +- tests/qmldynamicdata/qml/qmldynamicdata/main.qml | 2 +- tests/qmldynamicdata/qml/qmldynamicdata/newbutton.qml | 2 +- tests/scattertest/main.cpp | 2 +- tests/scattertest/scatterchart.cpp | 2 +- tests/scattertest/scatterchart.h | 2 +- tests/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp | 2 +- tests/spectrum/3rdparty/fftreal/fftreal_wrapper.h | 2 +- tests/spectrum/spectrumapp/engine.cpp | 2 +- tests/spectrum/spectrumapp/engine.h | 2 +- tests/spectrum/spectrumapp/frequencyspectrum.cpp | 2 +- tests/spectrum/spectrumapp/frequencyspectrum.h | 2 +- tests/spectrum/spectrumapp/main.cpp | 2 +- tests/spectrum/spectrumapp/spectrum.h | 2 +- tests/spectrum/spectrumapp/spectrumanalyser.cpp | 2 +- tests/spectrum/spectrumapp/spectrumanalyser.h | 2 +- tests/spectrum/spectrumapp/utils.cpp | 2 +- tests/spectrum/spectrumapp/utils.h | 2 +- tests/spectrum/spectrumapp/wavfile.cpp | 2 +- tests/spectrum/spectrumapp/wavfile.h | 2 +- tests/surfacetest/graphmodifier.cpp | 2 +- tests/surfacetest/graphmodifier.h | 2 +- tests/surfacetest/main.cpp | 2 +- 42 files changed, 42 insertions(+), 42 deletions(-) (limited to 'tests') diff --git a/tests/barstest/chart.cpp b/tests/barstest/chart.cpp index 187f4886..8ab619ec 100644 --- a/tests/barstest/chart.cpp +++ b/tests/barstest/chart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/barstest/chart.h b/tests/barstest/chart.h index c9d2ca9e..5758262c 100644 --- a/tests/barstest/chart.h +++ b/tests/barstest/chart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/barstest/custominputhandler.cpp b/tests/barstest/custominputhandler.cpp index 3b050fda..a5734e16 100644 --- a/tests/barstest/custominputhandler.cpp +++ b/tests/barstest/custominputhandler.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/barstest/custominputhandler.h b/tests/barstest/custominputhandler.h index 1fecb8d8..60c88ef7 100644 --- a/tests/barstest/custominputhandler.h +++ b/tests/barstest/custominputhandler.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/barstest/main.cpp b/tests/barstest/main.cpp index a57d4aca..8189f917 100644 --- a/tests/barstest/main.cpp +++ b/tests/barstest/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/directional/main.cpp b/tests/directional/main.cpp index 34d2e4a1..f4871a70 100644 --- a/tests/directional/main.cpp +++ b/tests/directional/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/directional/scatterdatamodifier.cpp b/tests/directional/scatterdatamodifier.cpp index 5da48483..96a7b975 100644 --- a/tests/directional/scatterdatamodifier.cpp +++ b/tests/directional/scatterdatamodifier.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/directional/scatterdatamodifier.h b/tests/directional/scatterdatamodifier.h index f920d43f..b87fa89f 100644 --- a/tests/directional/scatterdatamodifier.h +++ b/tests/directional/scatterdatamodifier.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/kinectsurface/main.cpp b/tests/kinectsurface/main.cpp index 04bfc207..1e7fe118 100644 --- a/tests/kinectsurface/main.cpp +++ b/tests/kinectsurface/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/kinectsurface/surfacedata.cpp b/tests/kinectsurface/surfacedata.cpp index 8caa7793..85d048a5 100644 --- a/tests/kinectsurface/surfacedata.cpp +++ b/tests/kinectsurface/surfacedata.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/kinectsurface/surfacedata.h b/tests/kinectsurface/surfacedata.h index fcae03b4..7193e446 100644 --- a/tests/kinectsurface/surfacedata.h +++ b/tests/kinectsurface/surfacedata.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/multigraphs/data.cpp b/tests/multigraphs/data.cpp index 9df5e668..1164a2f1 100644 --- a/tests/multigraphs/data.cpp +++ b/tests/multigraphs/data.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/multigraphs/data.h b/tests/multigraphs/data.h index 91e68334..98d34432 100644 --- a/tests/multigraphs/data.h +++ b/tests/multigraphs/data.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/multigraphs/main.cpp b/tests/multigraphs/main.cpp index a959641d..84840a43 100644 --- a/tests/multigraphs/main.cpp +++ b/tests/multigraphs/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmlcamera/main.cpp b/tests/qmlcamera/main.cpp index ca5a7088..c93502f7 100644 --- a/tests/qmlcamera/main.cpp +++ b/tests/qmlcamera/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmlcamera/qml/qmlcamera/Axes.qml b/tests/qmlcamera/qml/qmlcamera/Axes.qml index 0506d9ee..a6b8d4de 100644 --- a/tests/qmlcamera/qml/qmlcamera/Axes.qml +++ b/tests/qmlcamera/qml/qmlcamera/Axes.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmlcamera/qml/qmlcamera/ControlSurface.qml b/tests/qmlcamera/qml/qmlcamera/ControlSurface.qml index c655e016..1e780f4a 100644 --- a/tests/qmlcamera/qml/qmlcamera/ControlSurface.qml +++ b/tests/qmlcamera/qml/qmlcamera/ControlSurface.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmlcamera/qml/qmlcamera/Data.qml b/tests/qmlcamera/qml/qmlcamera/Data.qml index f7b71c7a..3c787186 100644 --- a/tests/qmlcamera/qml/qmlcamera/Data.qml +++ b/tests/qmlcamera/qml/qmlcamera/Data.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmlcamera/qml/qmlcamera/main.qml b/tests/qmlcamera/qml/qmlcamera/main.qml index c1266b41..a5176553 100644 --- a/tests/qmlcamera/qml/qmlcamera/main.qml +++ b/tests/qmlcamera/qml/qmlcamera/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmldynamicdata/main.cpp b/tests/qmldynamicdata/main.cpp index c2f52252..7c9bcf86 100644 --- a/tests/qmldynamicdata/main.cpp +++ b/tests/qmldynamicdata/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmldynamicdata/qml/qmldynamicdata/main.qml b/tests/qmldynamicdata/qml/qmldynamicdata/main.qml index 3ad454d0..6f0032ac 100644 --- a/tests/qmldynamicdata/qml/qmldynamicdata/main.qml +++ b/tests/qmldynamicdata/qml/qmldynamicdata/main.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/qmldynamicdata/qml/qmldynamicdata/newbutton.qml b/tests/qmldynamicdata/qml/qmldynamicdata/newbutton.qml index 895db183..0b792dbf 100644 --- a/tests/qmldynamicdata/qml/qmldynamicdata/newbutton.qml +++ b/tests/qmldynamicdata/qml/qmldynamicdata/newbutton.qml @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/scattertest/main.cpp b/tests/scattertest/main.cpp index 92c8d526..30382ca5 100644 --- a/tests/scattertest/main.cpp +++ b/tests/scattertest/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/scattertest/scatterchart.cpp b/tests/scattertest/scatterchart.cpp index bcc0a4ab..6ee7711e 100644 --- a/tests/scattertest/scatterchart.cpp +++ b/tests/scattertest/scatterchart.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/scattertest/scatterchart.h b/tests/scattertest/scatterchart.h index d4908023..21357d62 100644 --- a/tests/scattertest/scatterchart.h +++ b/tests/scattertest/scatterchart.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp b/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp index f6fc37e0..618709f7 100644 --- a/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp +++ b/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.cpp @@ -1,6 +1,6 @@ /*************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of QtDataVisualization. diff --git a/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.h b/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.h index 4cfa580b..92ee5728 100644 --- a/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.h +++ b/tests/spectrum/3rdparty/fftreal/fftreal_wrapper.h @@ -1,6 +1,6 @@ /*************************************************************************** ** -** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +** Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ** Contact: http://www.qt-project.org/legal ** ** This file is part of the examples of QtDataVisualization. diff --git a/tests/spectrum/spectrumapp/engine.cpp b/tests/spectrum/spectrumapp/engine.cpp index 9d049384..9ddc2ab6 100644 --- a/tests/spectrum/spectrumapp/engine.cpp +++ b/tests/spectrum/spectrumapp/engine.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/engine.h b/tests/spectrum/spectrumapp/engine.h index 1ad86065..a65179e0 100644 --- a/tests/spectrum/spectrumapp/engine.h +++ b/tests/spectrum/spectrumapp/engine.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/frequencyspectrum.cpp b/tests/spectrum/spectrumapp/frequencyspectrum.cpp index c5f62cef..26fa745f 100644 --- a/tests/spectrum/spectrumapp/frequencyspectrum.cpp +++ b/tests/spectrum/spectrumapp/frequencyspectrum.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/frequencyspectrum.h b/tests/spectrum/spectrumapp/frequencyspectrum.h index 0008985f..83c64d1c 100644 --- a/tests/spectrum/spectrumapp/frequencyspectrum.h +++ b/tests/spectrum/spectrumapp/frequencyspectrum.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/main.cpp b/tests/spectrum/spectrumapp/main.cpp index b1bcb358..6be1aae0 100644 --- a/tests/spectrum/spectrumapp/main.cpp +++ b/tests/spectrum/spectrumapp/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/spectrum.h b/tests/spectrum/spectrumapp/spectrum.h index 97096b1c..7a83b91c 100644 --- a/tests/spectrum/spectrumapp/spectrum.h +++ b/tests/spectrum/spectrumapp/spectrum.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/spectrumanalyser.cpp b/tests/spectrum/spectrumapp/spectrumanalyser.cpp index b86a851c..6e353d96 100644 --- a/tests/spectrum/spectrumapp/spectrumanalyser.cpp +++ b/tests/spectrum/spectrumapp/spectrumanalyser.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/spectrumanalyser.h b/tests/spectrum/spectrumapp/spectrumanalyser.h index 0e40fe66..3343888d 100644 --- a/tests/spectrum/spectrumapp/spectrumanalyser.h +++ b/tests/spectrum/spectrumapp/spectrumanalyser.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/utils.cpp b/tests/spectrum/spectrumapp/utils.cpp index f007959c..8fef6051 100644 --- a/tests/spectrum/spectrumapp/utils.cpp +++ b/tests/spectrum/spectrumapp/utils.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/utils.h b/tests/spectrum/spectrumapp/utils.h index 009f895b..fd6a3c12 100644 --- a/tests/spectrum/spectrumapp/utils.h +++ b/tests/spectrum/spectrumapp/utils.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/wavfile.cpp b/tests/spectrum/spectrumapp/wavfile.cpp index 56dd340e..acf35588 100644 --- a/tests/spectrum/spectrumapp/wavfile.cpp +++ b/tests/spectrum/spectrumapp/wavfile.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/spectrum/spectrumapp/wavfile.h b/tests/spectrum/spectrumapp/wavfile.h index 25673630..b24cf60e 100644 --- a/tests/spectrum/spectrumapp/wavfile.h +++ b/tests/spectrum/spectrumapp/wavfile.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/surfacetest/graphmodifier.cpp b/tests/surfacetest/graphmodifier.cpp index 04a41cfe..528a803b 100644 --- a/tests/surfacetest/graphmodifier.cpp +++ b/tests/surfacetest/graphmodifier.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/surfacetest/graphmodifier.h b/tests/surfacetest/graphmodifier.h index e3c11b5d..8ccff62f 100644 --- a/tests/surfacetest/graphmodifier.h +++ b/tests/surfacetest/graphmodifier.h @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** diff --git a/tests/surfacetest/main.cpp b/tests/surfacetest/main.cpp index 7279b27a..b31586b0 100644 --- a/tests/surfacetest/main.cpp +++ b/tests/surfacetest/main.cpp @@ -1,6 +1,6 @@ /**************************************************************************** ** -** Copyright (C) 2013 Digia Plc +** Copyright (C) 2014 Digia Plc ** All rights reserved. ** For any questions to Digia, please use contact form at http://qt.digia.com ** -- cgit v1.2.3