summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--dist/changes-5.15.228
-rw-r--r--src/datavisualization/data/qsurfacedataproxy.cpp12
-rw-r--r--src/datavisualization/doc/src/qtdatavisualization.qdoc2
-rw-r--r--src/datavisualization/engine/bars3drenderer.cpp10
-rw-r--r--src/datavisualization/engine/qabstract3dgraph.cpp5
-rw-r--r--src/datavisualization/theme/thememanager.cpp3
-rw-r--r--src/datavisualization/utils/scatterobjectbufferhelper.cpp2
-rw-r--r--src/datavisualization/utils/scatterpointbufferhelper.cpp1
-rw-r--r--tests/auto/cpptest/q3dbars-modelproxy/tst_proxy.cpp4
-rw-r--r--tests/auto/cpptest/q3dscatter-modelproxy/tst_proxy.cpp4
-rw-r--r--tests/auto/cpptest/q3dsurface-heightproxy/tst_proxy.cpp5
-rw-r--r--tests/auto/cpptest/q3dsurface-modelproxy/tst_proxy.cpp3
-rw-r--r--tests/auto/cpptest/q3dsurface-proxy/tst_proxy.cpp10
14 files changed, 70 insertions, 21 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 13d3ec1d..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.15.3
+MODULE_VERSION = 5.15.13
CONFIG += warning_clean
CMAKE_MODULE_TESTS=-
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/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/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/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"