diff --git a/src/charts/chartpresenter.cpp b/src/charts/chartpresenter.cpp index 97652fa..e6d38db 100644 --- a/src/charts/chartpresenter.cpp +++ b/src/charts/chartpresenter.cpp @@ -557,7 +557,7 @@ QString ChartPresenter::numberToString(int value) return QString::number(value); } -void ChartPresenter::ensureGLWidget() +void ChartPresenter::updateGLWidget() { #ifndef QT_NO_OPENGL // GLWidget pointer is wrapped in QPointer as its parent is not in our control, and therefore @@ -574,6 +574,9 @@ void ChartPresenter::ensureGLWidget() m_glWidget->show(); } } + // Make sure we update the widget in a timely manner + if (!m_glWidget.isNull()) + m_glWidget->update(); #endif } diff --git a/src/charts/chartpresenter_p.h b/src/charts/chartpresenter_p.h index 556a3c5..5b71379 100644 --- a/src/charts/chartpresenter_p.h +++ b/src/charts/chartpresenter_p.h @@ -174,7 +174,7 @@ public: QString numberToString(double value, char f = 'g', int prec = 6); QString numberToString(int value); - void ensureGLWidget(); + void updateGLWidget(); void glSetUseWidget(bool enable) { m_glUseWidget = enable; } private: diff --git a/src/charts/xychart/xychart.cpp b/src/charts/xychart/xychart.cpp index 700a670..28553d5 100644 --- a/src/charts/xychart/xychart.cpp +++ b/src/charts/xychart/xychart.cpp @@ -121,8 +121,8 @@ void XYChart::updateChart(QVector &oldPoints, QVector &newPoin void XYChart::updateGlChart() { - presenter()->ensureGLWidget(); dataSet()->glXYSeriesDataManager()->setPoints(m_series, domain()); + presenter()->updateGLWidget(); updateGeometry(); } diff --git a/src/chartsqml2/declarativechart.cpp b/src/chartsqml2/declarativechart.cpp index 3362daf..596c138 100644 --- a/src/chartsqml2/declarativechart.cpp +++ b/src/chartsqml2/declarativechart.cpp @@ -598,7 +598,9 @@ void DeclarativeChart::renderScene() QSize chartSize = m_chart->size().toSize(); if (!m_sceneImage || chartSize != m_sceneImage->size()) { delete m_sceneImage; - m_sceneImage = new QImage(chartSize, QImage::Format_ARGB32); + qreal dpr = window() ? window()->devicePixelRatio() : 1.0; + m_sceneImage = new QImage(chartSize * dpr, QImage::Format_ARGB32); + m_sceneImage->setDevicePixelRatio(dpr); m_sceneImageNeedsClear = true; } diff --git a/sync.profile b/sync.profile index b288cc4..c9b8233 100644 --- a/sync.profile +++ b/sync.profile @@ -13,6 +13,6 @@ # - any git symbolic ref resolvable from the module's repository (e.g. "refs/heads/master" to track master branch) # %dependencies = ( - "qtbase" => "refs/heads/dev", - "qtdeclarative" => "refs/heads/dev", + "qtbase" => "", + "qtdeclarative" => "", );