diff options
29 files changed, 213 insertions, 44 deletions
diff --git a/.qmake.conf b/.qmake.conf index de5c3ff9..8a33647d 100644 --- a/.qmake.conf +++ b/.qmake.conf @@ -2,6 +2,6 @@ load(qt_build_config) DEFINES += QT_NO_JAVA_STYLE_ITERATORS QT_NO_LINKED_LIST -MODULE_VERSION = 5.14.0 +MODULE_VERSION = 5.15.13 CONFIG += warning_clean CMAKE_MODULE_TESTS=- diff --git a/dist/changes-5.12.10 b/dist/changes-5.12.10 new file mode 100644 index 00000000..c9b97b2a --- /dev/null +++ b/dist/changes-5.12.10 @@ -0,0 +1,28 @@ +Qt 5.12.10 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.12.9. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + https://doc.qt.io/qt-5.12/index.html + +The Qt version 5.12 series is binary compatible with the 5.11.x series. +Applications compiled for 5.11 will continue to run with 5.12. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + +**************************************************************************** +* Library * +**************************************************************************** + + diff --git a/dist/changes-5.14.0 b/dist/changes-5.14.0 new file mode 100644 index 00000000..29a2c83b --- /dev/null +++ b/dist/changes-5.14.0 @@ -0,0 +1,18 @@ +Qt 5.14 introduces many new features and improvements as well as bugfixes +over the 5.13.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + - This release contains only minor code improvements. diff --git a/dist/changes-5.14.1 b/dist/changes-5.14.1 new file mode 100644 index 00000000..d0086381 --- /dev/null +++ b/dist/changes-5.14.1 @@ -0,0 +1,20 @@ +Qt 5.14.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.14.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + - This release contains only minor code improvements. diff --git a/dist/changes-5.14.2 b/dist/changes-5.14.2 new file mode 100644 index 00000000..68a00517 --- /dev/null +++ b/dist/changes-5.14.2 @@ -0,0 +1,20 @@ +Qt 5.14.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.14.0 through 5.14.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.14 series is binary compatible with the 5.13.x series. +Applications compiled for 5.13 will continue to run with 5.14. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + - This release contains only minor code improvements. diff --git a/dist/changes-5.15.0 b/dist/changes-5.15.0 new file mode 100644 index 00000000..40076ce8 --- /dev/null +++ b/dist/changes-5.15.0 @@ -0,0 +1,18 @@ +Qt 5.15 introduces many new features and improvements as well as bugfixes +over the 5.14.x series. For more details, refer to the online documentation +included in this distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + - This release contains only minor code improvements. diff --git a/dist/changes-5.15.1 b/dist/changes-5.15.1 new file mode 100644 index 00000000..332ee9d1 --- /dev/null +++ b/dist/changes-5.15.1 @@ -0,0 +1,20 @@ +Qt 5.15.1 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.15.0. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + +https://doc.qt.io/qt-5/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + +https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + + - This release contains only minor code improvements. diff --git a/dist/changes-5.15.2 b/dist/changes-5.15.2 new file mode 100644 index 00000000..3f584aec --- /dev/null +++ b/dist/changes-5.15.2 @@ -0,0 +1,28 @@ +Qt 5.15.2 is a bug-fix release. It maintains both forward and backward +compatibility (source and binary) with Qt 5.15.1. + +For more details, refer to the online documentation included in this +distribution. The documentation is also available online: + + https://doc.qt.io/qt-5.15/index.html + +The Qt version 5.15 series is binary compatible with the 5.14.x series. +Applications compiled for 5.14 will continue to run with 5.15. + +Some of the changes listed in this file include issue tracking numbers +corresponding to tasks in the Qt Bug Tracker: + + https://bugreports.qt.io/ + +Each of these identifiers can be entered in the bug tracker to obtain more +information about a particular change. + +**************************************************************************** +* Important Behavior Changes * +**************************************************************************** + +**************************************************************************** +* Library * +**************************************************************************** + + diff --git a/examples/datavisualization/custominput/scatterdatamodifier.cpp b/examples/datavisualization/custominput/scatterdatamodifier.cpp index 1224b168..759f6f2a 100644 --- a/examples/datavisualization/custominput/scatterdatamodifier.cpp +++ b/examples/datavisualization/custominput/scatterdatamodifier.cpp @@ -129,7 +129,7 @@ void ScatterDataModifier::addData() QString line = stream.readLine(); if (line.startsWith("#")) // Ignore comments continue; - QStringList strList = line.split(",", QString::SkipEmptyParts); + QStringList strList = line.split(",", Qt::SkipEmptyParts); // Each line has three data items: xPos, yPos and zPos value if (strList.size() < 3) { qWarning() << "Invalid row read from data:" << line; diff --git a/examples/datavisualization/customproxy/rainfallgraph.cpp b/examples/datavisualization/customproxy/rainfallgraph.cpp index 64db0b22..73cb5bee 100644 --- a/examples/datavisualization/customproxy/rainfallgraph.cpp +++ b/examples/datavisualization/customproxy/rainfallgraph.cpp @@ -138,7 +138,7 @@ void RainfallGraph::addDataSet() QString line = stream.readLine(); if (line.startsWith("#")) // Ignore comments continue; - QStringList strList = line.split(",", QString::SkipEmptyParts); + QStringList strList = line.split(",", Qt::SkipEmptyParts); // Each line has three data items: Year, month, and rainfall value if (strList.size() < 3) { qWarning() << "Invalid row read from data:" << line; diff --git a/examples/datavisualization/qmlaxisformatter/customformatter.cpp b/examples/datavisualization/qmlaxisformatter/customformatter.cpp index e4fa2dd3..6074b778 100644 --- a/examples/datavisualization/qmlaxisformatter/customformatter.cpp +++ b/examples/datavisualization/qmlaxisformatter/customformatter.cpp @@ -164,6 +164,6 @@ void CustomFormatter::setSelectionFormat(const QString &format) //! [0] QDateTime CustomFormatter::valueToDateTime(qreal value) const { - return QDateTime(m_originDate).addMSecs(qint64(oneDayMs * value)); + return m_originDate.startOfDay().addMSecs(qint64(oneDayMs * value)); } //! [0] diff --git a/src/datavisualization/data/qsurfacedataproxy.cpp b/src/datavisualization/data/qsurfacedataproxy.cpp index 1c61084c..d176238a 100644 --- a/src/datavisualization/data/qsurfacedataproxy.cpp +++ b/src/datavisualization/data/qsurfacedataproxy.cpp @@ -475,7 +475,8 @@ void QSurfaceDataProxyPrivate::setItem(int rowIndex, int columnIndex, const QSur int QSurfaceDataProxyPrivate::addRow(QSurfaceDataRow *row) { - Q_ASSERT(m_dataArray->at(0)->size() == row->size()); + Q_ASSERT(m_dataArray->isEmpty() + || m_dataArray->at(0)->size() == row->size()); int currentSize = m_dataArray->size(); m_dataArray->append(row); return currentSize; @@ -485,7 +486,8 @@ int QSurfaceDataProxyPrivate::addRows(const QSurfaceDataArray &rows) { int currentSize = m_dataArray->size(); for (int i = 0; i < rows.size(); i++) { - Q_ASSERT(m_dataArray->at(0)->size() == rows.at(i)->size()); + Q_ASSERT(m_dataArray->isEmpty() + || m_dataArray->at(0)->size() == rows.at(i)->size()); m_dataArray->append(rows.at(i)); } return currentSize; @@ -494,7 +496,8 @@ int QSurfaceDataProxyPrivate::addRows(const QSurfaceDataArray &rows) void QSurfaceDataProxyPrivate::insertRow(int rowIndex, QSurfaceDataRow *row) { Q_ASSERT(rowIndex >= 0 && rowIndex <= m_dataArray->size()); - Q_ASSERT(m_dataArray->at(0)->size() == row->size()); + Q_ASSERT(m_dataArray->isEmpty() + || m_dataArray->at(0)->size() == row->size()); m_dataArray->insert(rowIndex, row); } @@ -503,7 +506,8 @@ void QSurfaceDataProxyPrivate::insertRows(int rowIndex, const QSurfaceDataArray Q_ASSERT(rowIndex >= 0 && rowIndex <= m_dataArray->size()); for (int i = 0; i < rows.size(); i++) { - Q_ASSERT(m_dataArray->at(0)->size() == rows.at(i)->size()); + Q_ASSERT(m_dataArray->isEmpty() + || m_dataArray->at(0)->size() == rows.at(i)->size()); m_dataArray->insert(rowIndex++, rows.at(i)); } } diff --git a/src/datavisualization/doc/src/qtdatavisualization.qdoc b/src/datavisualization/doc/src/qtdatavisualization.qdoc index 5ee8cd87..ec378b98 100644 --- a/src/datavisualization/doc/src/qtdatavisualization.qdoc +++ b/src/datavisualization/doc/src/qtdatavisualization.qdoc @@ -38,6 +38,8 @@ \module QtDataVisualization \title Qt Data Visualization C++ Classes \ingroup modules + \qtcmakepackage DataVisualization + \qtvariable datavisualization \brief C++ classes for the Qt Data Visualization API. diff --git a/src/datavisualization/engine/bars3drenderer.cpp b/src/datavisualization/engine/bars3drenderer.cpp index c57339db..c04ef78c 100644 --- a/src/datavisualization/engine/bars3drenderer.cpp +++ b/src/datavisualization/engine/bars3drenderer.cpp @@ -2051,10 +2051,14 @@ void Bars3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCamer glEnable(GL_POLYGON_OFFSET_FILL); + // If camera x rotation is 180, side labels face wrong direction + float activeCameraXRotation = (activeCamera->xRotation() >= 180.0f) ? -180.0f + : activeCamera->xRotation(); + float labelAutoAngle = m_axisCacheY.labelAutoRotation(); float labelAngleFraction = labelAutoAngle / 90.0f; float fractionCamY = activeCamera->yRotation() * labelAngleFraction; - float fractionCamX = activeCamera->xRotation() * labelAngleFraction; + float fractionCamX = activeCameraXRotation * labelAngleFraction; float labelsMaxWidth = 0.0f; int startIndex; @@ -2168,7 +2172,7 @@ void Bars3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCamer labelAutoAngle = m_axisCacheZ.labelAutoRotation(); labelAngleFraction = labelAutoAngle / 90.0f; fractionCamY = activeCamera->yRotation() * labelAngleFraction; - fractionCamX = activeCamera->xRotation() * labelAngleFraction; + fractionCamX = activeCameraXRotation * labelAngleFraction; GLfloat labelYAdjustment = 0.005f; GLfloat colPosValue = m_scaleXWithBackground + labelMargin; GLfloat rowPosValue = m_scaleZWithBackground + labelMargin; @@ -2293,7 +2297,7 @@ void Bars3DRenderer::drawLabels(bool drawSelection, const Q3DCamera *activeCamer labelAutoAngle = m_axisCacheX.labelAutoRotation(); labelAngleFraction = labelAutoAngle / 90.0f; fractionCamY = activeCamera->yRotation() * labelAngleFraction; - fractionCamX = activeCamera->xRotation() * labelAngleFraction; + fractionCamX = activeCameraXRotation * labelAngleFraction; alignment = (m_xFlipped != m_zFlipped) ? Qt::AlignLeft : Qt::AlignRight; if (labelAutoAngle == 0.0f) { labelRotation = QVector3D(-90.0f, 90.0f, 0.0f); diff --git a/src/datavisualization/engine/q3dbars.cpp b/src/datavisualization/engine/q3dbars.cpp index daeedf3c..2f2cf63b 100644 --- a/src/datavisualization/engine/q3dbars.cpp +++ b/src/datavisualization/engine/q3dbars.cpp @@ -157,7 +157,7 @@ QBar3DSeries *Q3DBars::primarySeries() const * to the axes. If the newly added series has specified a selected bar, it will be highlighted and * any existing selection will be cleared. Only one added series can have an active selection. * - * /sa seriesList(), primarySeries + * \sa seriesList(), primarySeries */ void Q3DBars::addSeries(QBar3DSeries *series) { diff --git a/src/datavisualization/engine/qabstract3dgraph.cpp b/src/datavisualization/engine/qabstract3dgraph.cpp index 284ab408..20460bba 100644 --- a/src/datavisualization/engine/qabstract3dgraph.cpp +++ b/src/datavisualization/engine/qabstract3dgraph.cpp @@ -656,11 +656,6 @@ qreal QAbstract3DGraph::currentFps() const * * \brief Whether orthographic projection is used for displaying the graph. * - * If \c {true}, ortographic projection is used to create 2D graphs by replacing - * the default input handler with one that does not allow rotating the graph and - * by setting the camera to view the graph - * directly from the side or from the top. Also, axis labels typically need to be rotated when - * viewing the graph from the sides. * Defaults to \c{false}. * \note Shadows will be disabled when set to \c{true}. * diff --git a/src/datavisualization/theme/thememanager.cpp b/src/datavisualization/theme/thememanager.cpp index 01c7c10b..fb06b11c 100644 --- a/src/datavisualization/theme/thememanager.cpp +++ b/src/datavisualization/theme/thememanager.cpp @@ -101,7 +101,8 @@ void ThemeManager::setActiveTheme(Q3DTheme *theme) m_activeTheme = theme; // Reset all bits to dirty for sync - m_activeTheme->d_ptr->resetDirtyBits(); + if (theme->d_ptr->isForcePredefinedType()) + m_activeTheme->d_ptr->resetDirtyBits(); // Connect signals from new one connectThemeSignals(); diff --git a/src/datavisualization/utils/scatterobjectbufferhelper.cpp b/src/datavisualization/utils/scatterobjectbufferhelper.cpp index 579eff98..b0858149 100644 --- a/src/datavisualization/utils/scatterobjectbufferhelper.cpp +++ b/src/datavisualization/utils/scatterobjectbufferhelper.cpp @@ -48,7 +48,6 @@ ScatterObjectBufferHelper::~ScatterObjectBufferHelper() void ScatterObjectBufferHelper::fullLoad(ScatterSeriesRenderCache *cache, qreal dotScale) { - m_meshDataLoaded = false; m_indexCount = 0; ObjectHelper *dotObj = cache->object(); @@ -71,6 +70,7 @@ void ScatterObjectBufferHelper::fullLoad(ScatterSeriesRenderCache *cache, qreal m_uvbuffer = 0; m_normalbuffer = 0; m_elementbuffer = 0; + m_meshDataLoaded = false; } // Index vertices diff --git a/src/datavisualization/utils/scatterpointbufferhelper.cpp b/src/datavisualization/utils/scatterpointbufferhelper.cpp index 860a2b88..9a9eafec 100644 --- a/src/datavisualization/utils/scatterpointbufferhelper.cpp +++ b/src/datavisualization/utils/scatterpointbufferhelper.cpp @@ -97,6 +97,7 @@ void ScatterPointBufferHelper::load(ScatterSeriesRenderCache *cache) m_bufferedPoints.clear(); m_pointbuffer = 0; m_uvbuffer = 0; + m_meshDataLoaded = false; } bool itemsVisible = false; diff --git a/src/datavisualization/utils/surfaceobject.cpp b/src/datavisualization/utils/surfaceobject.cpp index 6e15d081..f9e4181e 100644 --- a/src/datavisualization/utils/surfaceobject.cpp +++ b/src/datavisualization/utils/surfaceobject.cpp @@ -35,17 +35,10 @@ QT_BEGIN_NAMESPACE_DATAVISUALIZATION SurfaceObject::SurfaceObject(Surface3DRenderer *renderer) - : m_surfaceType(Undefined), - m_columns(0), - m_rows(0), - m_gridIndexCount(0), - m_axisCacheX(renderer->m_axisCacheX), + : m_axisCacheX(renderer->m_axisCacheX), m_axisCacheY(renderer->m_axisCacheY), m_axisCacheZ(renderer->m_axisCacheZ), - m_renderer(renderer), - m_returnTextureBuffer(false), - m_dataDimension(0), - m_oldDataDimension(-1) + m_renderer(renderer) { glGenBuffers(1, &m_vertexbuffer); glGenBuffers(1, &m_normalbuffer); diff --git a/src/datavisualization/utils/surfaceobject_p.h b/src/datavisualization/utils/surfaceobject_p.h index a42fe244..41b6ad5f 100644 --- a/src/datavisualization/utils/surfaceobject_p.h +++ b/src/datavisualization/utils/surfaceobject_p.h @@ -111,11 +111,11 @@ private: bool flipXZ); private: - SurfaceType m_surfaceType; - int m_columns; - int m_rows; + SurfaceType m_surfaceType = Undefined; + int m_columns = 0; + int m_rows = 0; GLuint m_gridElementbuffer; - GLuint m_gridIndexCount; + GLuint m_gridIndexCount = 0; QVector<QVector3D> m_vertices; QVector<QVector3D> m_normals; // Caches are not owned @@ -126,9 +126,9 @@ private: float m_minY; float m_maxY; GLuint m_uvTextureBuffer; - bool m_returnTextureBuffer; + bool m_returnTextureBuffer = false; SurfaceObject::DataDimensions m_dataDimension; - SurfaceObject::DataDimensions m_oldDataDimension; + SurfaceObject::DataDimensions m_oldDataDimension = DataDimensions(-1); }; QT_END_NAMESPACE_DATAVISUALIZATION diff --git a/src/datavisualizationqml2/abstractdeclarative.cpp b/src/datavisualizationqml2/abstractdeclarative.cpp index 03d1f41d..4cec3bc8 100644 --- a/src/datavisualizationqml2/abstractdeclarative.cpp +++ b/src/datavisualizationqml2/abstractdeclarative.cpp @@ -678,7 +678,7 @@ void AbstractDeclarative::checkWindowList(QQuickWindow *window) } if (oldWindow && !windowList.contains(oldWindow) - && windowClearList.values(oldWindow).size() != 0) { + && windowClearList.contains(oldWindow)) { // Return window clear value oldWindow->setClearBeforeRendering(windowClearList.value(oldWindow)); windowClearList.remove(oldWindow); @@ -691,7 +691,7 @@ void AbstractDeclarative::checkWindowList(QQuickWindow *window) if ((m_renderMode == RenderDirectToBackground || m_renderMode == RenderDirectToBackground_NoClear) - && windowClearList.values(window).size() == 0) { + && !windowClearList.contains(window)) { // Save old clear value windowClearList[window] = window->clearBeforeRendering(); // Disable clearing of the window as we render underneath diff --git a/src/datavisualizationqml2/colorgradient.cpp b/src/datavisualizationqml2/colorgradient.cpp index 125b9545..edcca2ec 100644 --- a/src/datavisualizationqml2/colorgradient.cpp +++ b/src/datavisualizationqml2/colorgradient.cpp @@ -77,7 +77,7 @@ ColorGradient::~ColorGradient() QQmlListProperty<ColorGradientStop> ColorGradient::stops() { - return QQmlListProperty<ColorGradientStop>(this, m_stops); + return QQmlListProperty<ColorGradientStop>(this, &m_stops); } void ColorGradient::doUpdate() diff --git a/src/datavisualizationqml2/declarativerendernode.cpp b/src/datavisualizationqml2/declarativerendernode.cpp index 1e3c3542..eac1a36b 100644 --- a/src/datavisualizationqml2/declarativerendernode.cpp +++ b/src/datavisualizationqml2/declarativerendernode.cpp @@ -113,7 +113,10 @@ void DeclarativeRenderNode::updateFBO() QRectF(0, 1, 1, -1)); delete m_texture; - m_texture = m_window->createTextureFromId(m_fbo->texture(), m_size); + const uint id = m_fbo->texture(); + m_texture = + m_window->createTextureFromNativeObject(QQuickWindow::NativeObjectTexture, + &id, 0 /* nativeLayout */, m_size); m_material.setTexture(m_texture); m_materialO.setTexture(m_texture); diff --git a/tests/auto/cpptest/q3dbars-modelproxy/tst_proxy.cpp b/tests/auto/cpptest/q3dbars-modelproxy/tst_proxy.cpp index dfeee506..18fa0296 100644 --- a/tests/auto/cpptest/q3dbars-modelproxy/tst_proxy.cpp +++ b/tests/auto/cpptest/q3dbars-modelproxy/tst_proxy.cpp @@ -258,7 +258,9 @@ void tst_proxy::multiMatch() graph.addSeries(series); - QCoreApplication::processEvents(); + QSignalSpy spy(graph.valueAxis(), SIGNAL(maxChanged(float))); + spy.wait(1000); + QCOMPARE(graph.valueAxis()->max(), 6.5f); m_proxy->setMultiMatchBehavior(QItemModelBarDataProxy::MMBFirst); QCoreApplication::processEvents(); diff --git a/tests/auto/cpptest/q3dscatter-modelproxy/tst_proxy.cpp b/tests/auto/cpptest/q3dscatter-modelproxy/tst_proxy.cpp index 8e17f6bb..ecb4e8c2 100644 --- a/tests/auto/cpptest/q3dscatter-modelproxy/tst_proxy.cpp +++ b/tests/auto/cpptest/q3dscatter-modelproxy/tst_proxy.cpp @@ -192,9 +192,9 @@ void tst_proxy::addModel() m_proxy->setZPosRoleReplace(QStringLiteral("\\1")); QScatter3DSeries *series = new QScatter3DSeries(m_proxy); - Q_UNUSED(series) - QCoreApplication::processEvents(); + QSignalSpy spy(series, SIGNAL(dataProxyChanged(QScatterDataProxy *))); + spy.wait(1000); QCOMPARE(m_proxy->itemCount(), 2); QVERIFY(m_proxy->series()); diff --git a/tests/auto/cpptest/q3dsurface-heightproxy/tst_proxy.cpp b/tests/auto/cpptest/q3dsurface-heightproxy/tst_proxy.cpp index e031688c..99b30af9 100644 --- a/tests/auto/cpptest/q3dsurface-heightproxy/tst_proxy.cpp +++ b/tests/auto/cpptest/q3dsurface-heightproxy/tst_proxy.cpp @@ -80,15 +80,16 @@ void tst_proxy::construct() QImage image(QSize(10, 10), QImage::Format_ARGB32); image.fill(0); proxy = new QHeightMapSurfaceDataProxy(image); + QSignalSpy spy(proxy, SIGNAL(columnCountChanged(int))); QVERIFY(proxy); - QCoreApplication::processEvents(); + spy.wait(1000); QCOMPARE(proxy->columnCount(), 10); QCOMPARE(proxy->rowCount(), 10); delete proxy; proxy = new QHeightMapSurfaceDataProxy(":/customtexture.jpg"); QVERIFY(proxy); - QCoreApplication::processEvents(); + spy.wait(1000); QCOMPARE(proxy->columnCount(), 24); QCOMPARE(proxy->rowCount(), 24); delete proxy; diff --git a/tests/auto/cpptest/q3dsurface-modelproxy/tst_proxy.cpp b/tests/auto/cpptest/q3dsurface-modelproxy/tst_proxy.cpp index eb984c1a..c1039c85 100644 --- a/tests/auto/cpptest/q3dsurface-modelproxy/tst_proxy.cpp +++ b/tests/auto/cpptest/q3dsurface-modelproxy/tst_proxy.cpp @@ -274,8 +274,9 @@ void tst_proxy::multiMatch() QSurface3DSeries *series = new QSurface3DSeries(m_proxy); graph.addSeries(series); + QSignalSpy spy(graph.axisY(), SIGNAL(maxChanged(float))); + spy.wait(1000); - QCoreApplication::processEvents(); QCOMPARE(graph.axisY()->max(), 10.5f); m_proxy->setMultiMatchBehavior(QItemModelSurfaceDataProxy::MMBFirst); QCoreApplication::processEvents(); diff --git a/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp b/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp index cda6bcce..1516e67d 100644 --- a/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp +++ b/tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp @@ -47,6 +47,7 @@ private slots: void initialProperties(); void initializeProperties(); + void initialRow(); private: QSurfaceDataProxy *m_proxy; @@ -105,5 +106,14 @@ void tst_proxy::initializeProperties() QCOMPARE(m_proxy->rowCount(), 2); } +void tst_proxy::initialRow() +{ + QSurfaceDataProxy proxy; + QSurfaceDataRow row{QSurfaceDataItem{QVector3D{0, 0, 0}}, + QSurfaceDataItem{QVector3D{1, 1, 1}}}; + proxy.addRow(new QSurfaceDataRow(row)); + proxy.addRow(new QSurfaceDataRow(row)); +} + QTEST_MAIN(tst_proxy) #include "tst_proxy.moc" |