diff options
author | Mika Salmela <mika.salmela@digia.com> | 2013-12-18 11:50:03 +0200 |
---|---|---|
committer | Mika Salmela <mika.salmela@digia.com> | 2013-12-18 11:51:20 +0200 |
commit | 07aba602fc82ac31684988f8e8e22521d2b3c982 (patch) | |
tree | 7ae1da139e8661bf157f996fe71844031d2995f4 /src/datavisualizationqml2/declarativetheme_p.h | |
parent | cf0cf6ca67aec8ae480bb705443ea17f5ab9f9e2 (diff) | |
parent | ea0442bc81ae034d22c5742b6075dee993fdd54d (diff) |
Merge branch 'develop' into mergebranch
Conflicts:
examples/qmlbars/qml/qmlbars/main.qml
examples/qmlscatter/qml/qmlscatter/main.qml
examples/qmlsurface/qml/qmlsurface/main.qml
src/datavisualization/data/qitemmodelbardatamapping.cpp
src/datavisualization/data/qitemmodelscatterdatamapping.cpp
src/datavisualization/data/qitemmodelsurfacedatamapping.cpp
src/datavisualization/engine/drawer.cpp
Change-Id: I731ebdb2cc5cee8f2cb32becee96d1fc1b3e5de1
Diffstat (limited to 'src/datavisualizationqml2/declarativetheme_p.h')
-rw-r--r-- | src/datavisualizationqml2/declarativetheme_p.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/datavisualizationqml2/declarativetheme_p.h b/src/datavisualizationqml2/declarativetheme_p.h new file mode 100644 index 00000000..79c1f5c9 --- /dev/null +++ b/src/datavisualizationqml2/declarativetheme_p.h @@ -0,0 +1,118 @@ +/**************************************************************************** +** +** 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 +** +****************************************************************************/ + +// +// W A R N I N G +// ------------- +// +// This file is not part of the QtDataVisualization API. It exists purely as an +// implementation detail. This header file may change from version to +// version without notice, or even be removed. +// +// We mean it. + +#ifndef DECLARATIVETHEME_P_H +#define DECLARATIVETHEME_P_H + +#include "datavisualizationglobal_p.h" +#include "declarativecolor_p.h" +#include "colorgradient_p.h" +#include "q3dtheme.h" + +QT_DATAVISUALIZATION_BEGIN_NAMESPACE + +class DeclarativeTheme3D : public Q3DTheme +{ + Q_OBJECT + Q_PROPERTY(QQmlListProperty<QObject> seriesChildren READ seriesChildren) + Q_PROPERTY(QQmlListProperty<DeclarativeColor> baseColors READ baseColors) + Q_PROPERTY(QQmlListProperty<ColorGradient> baseGradients READ baseGradients) + Q_PROPERTY(ColorGradient *singleHighlightGradient READ singleHighlightGradient WRITE setSingleHighlightGradient NOTIFY singleHighlightGradientChanged) + Q_PROPERTY(ColorGradient *multiHighlightGradient READ multiHighlightGradient WRITE setMultiHighlightGradient NOTIFY multiHighlightGradientChanged) + Q_CLASSINFO("DefaultProperty", "seriesChildren") + +public: + DeclarativeTheme3D(QObject *parent = 0); + virtual ~DeclarativeTheme3D(); + + QQmlListProperty<QObject> seriesChildren(); + static void appendSeriesChildren(QQmlListProperty<QObject> *list, QObject *element); + + QQmlListProperty<DeclarativeColor> baseColors(); + static void appendBaseColorsFunc(QQmlListProperty<DeclarativeColor> *list, + DeclarativeColor *color); + static int countBaseColorsFunc(QQmlListProperty<DeclarativeColor> *list); + static DeclarativeColor *atBaseColorsFunc(QQmlListProperty<DeclarativeColor> *list, int index); + static void clearBaseColorsFunc(QQmlListProperty<DeclarativeColor> *list); + + QQmlListProperty<ColorGradient> baseGradients(); + static void appendBaseGradientsFunc(QQmlListProperty<ColorGradient> *list, + ColorGradient *gradient); + static int countBaseGradientsFunc(QQmlListProperty<ColorGradient> *list); + static ColorGradient *atBaseGradientsFunc(QQmlListProperty<ColorGradient> *list, int index); + static void clearBaseGradientsFunc(QQmlListProperty<ColorGradient> *list); + + void setSingleHighlightGradient(ColorGradient *gradient); + ColorGradient *singleHighlightGradient() const; + + void setMultiHighlightGradient(ColorGradient *gradient); + ColorGradient *multiHighlightGradient() const; + +signals: + void singleHighlightGradientChanged(ColorGradient *gradient); + void multiHighlightGradientChanged(ColorGradient *gradient); + +protected: + void handleBaseColorUpdate(); + void handleBaseGradientUpdate(); + void handleSingleHLGradientUpdate(); + void handleMultiHLGradientUpdate(); + + enum GradientType { + GradientTypeBase = 0, + GradientTypeSingleHL, + GradientTypeMultiHL + }; + +private: + void addColor(DeclarativeColor *color); + QList<DeclarativeColor *> colorList(); + void clearColors(); + void clearDummyColors(); + + void addGradient(ColorGradient *gradient); + QList<ColorGradient *> gradientList(); + void clearGradients(); + void clearDummyGradients(); + + void setThemeGradient(ColorGradient *gradient, GradientType type); + QLinearGradient convertGradient(ColorGradient *gradient); + ColorGradient *convertGradient(const QLinearGradient &gradient); + + QList<DeclarativeColor *> m_colors; // Not owned + QList<ColorGradient *> m_gradients; // Not owned + ColorGradient *m_singleHLGradient; // Not owned + ColorGradient *m_multiHLGradient; // Not owned + + bool m_dummyGradients; + bool m_dummyColors; +}; + +QT_DATAVISUALIZATION_END_NAMESPACE + +#endif |