diff options
author | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-31 12:25:00 +0200 |
---|---|---|
committer | Miikka Heikkinen <miikka.heikkinen@digia.com> | 2013-10-31 13:34:06 +0200 |
commit | 3f2dd48dbbb2a67ffc00ddab36b44c0449455126 (patch) | |
tree | 3999ef41197f8861a867cb5ec95361e5dd77e297 /src/datavisualization/engine/abstract3drenderer.cpp | |
parent | b44b030ec0c74649daee92160c73cbd2fe93d7c1 (diff) |
Cleaning controller callbacks from renderers, part 2
Removed m_controller from renderers so it won't accidentally be
used again. Replaced the remaining callbacks with queued signals.
Task-number: QTRD-2216
Change-Id: Ib10bc661bcdc3d810baa8b2513f5e6dd67f7207e
Reviewed-by: Tomi Korpipää <tomi.korpipaa@digia.com>
Diffstat (limited to 'src/datavisualization/engine/abstract3drenderer.cpp')
-rw-r--r-- | src/datavisualization/engine/abstract3drenderer.cpp | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/src/datavisualization/engine/abstract3drenderer.cpp b/src/datavisualization/engine/abstract3drenderer.cpp index 27820067..7aec8adf 100644 --- a/src/datavisualization/engine/abstract3drenderer.cpp +++ b/src/datavisualization/engine/abstract3drenderer.cpp @@ -26,9 +26,10 @@ QT_DATAVISUALIZATION_BEGIN_NAMESPACE +Q_DECLARE_METATYPE(QDataVis::ShadowQuality) + Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller) : QObject(0), - m_controller(controller), m_hasNegativeValues(false), m_cachedTheme(), m_cachedFont(QFont(QStringLiteral("Arial"))), @@ -50,8 +51,10 @@ Abstract3DRenderer::Abstract3DRenderer(Abstract3DController *controller) { QObject::connect(m_drawer, &Drawer::drawerChanged, this, &Abstract3DRenderer::updateTextures); - QObject::connect(this, &Abstract3DRenderer::needRender, m_controller, + QObject::connect(this, &Abstract3DRenderer::needRender, controller, &Abstract3DController::needRender, Qt::QueuedConnection); + QObject::connect(this, &Abstract3DRenderer::requestShadowQuality, controller, + &Abstract3DController::handleRequestShadowQuality, Qt::QueuedConnection); } Abstract3DRenderer::~Abstract3DRenderer() @@ -322,5 +325,43 @@ AxisRenderCache &Abstract3DRenderer::axisCacheForOrientation(Q3DAbstractAxis::Ax } } +void Abstract3DRenderer::lowerShadowQuality() +{ + QDataVis::ShadowQuality newQuality = QDataVis::ShadowQualityNone; + + switch (m_cachedShadowQuality) { + case QDataVis::ShadowQualityHigh: + qWarning("Creating high quality shadows failed. Changing to medium quality."); + newQuality = QDataVis::ShadowQualityMedium; + break; + case QDataVis::ShadowQualityMedium: + qWarning("Creating medium quality shadows failed. Changing to low quality."); + newQuality = QDataVis::ShadowQualityLow; + break; + case QDataVis::ShadowQualityLow: + qWarning("Creating low quality shadows failed. Switching shadows off."); + newQuality = QDataVis::ShadowQualityNone; + break; + case QDataVis::ShadowQualitySoftHigh: + qWarning("Creating soft high quality shadows failed. Changing to soft medium quality."); + newQuality = QDataVis::ShadowQualitySoftMedium; + break; + case QDataVis::ShadowQualitySoftMedium: + qWarning("Creating soft medium quality shadows failed. Changing to soft low quality."); + newQuality = QDataVis::ShadowQualitySoftLow; + break; + case QDataVis::ShadowQualitySoftLow: + qWarning("Creating soft low quality shadows failed. Switching shadows off."); + newQuality = QDataVis::ShadowQualityNone; + break; + default: + // You'll never get here + break; + } + + emit requestShadowQuality(newQuality); + updateShadowQuality(newQuality); +} + QT_DATAVISUALIZATION_END_NAMESPACE |