mirror of https://github.com/qt/qtcharts.git
Cleaning up declarative implementation
This commit is contained in:
parent
ff2cf2e63a
commit
c8b3f0fb84
|
@ -96,7 +96,7 @@ Rectangle {
|
|||
}
|
||||
|
||||
AreaSeries {
|
||||
name: "Swedish"
|
||||
name: "Finnish"
|
||||
upperSeries: LineSeries {
|
||||
XyPoint { x: 0; y: 0 }
|
||||
XyPoint { x: 1; y: 0 }
|
||||
|
|
|
@ -30,10 +30,10 @@ Rectangle {
|
|||
theme: ChartView.ChartThemeLight
|
||||
legend: ChartView.LegendBottom
|
||||
// TODO: labels defined by x-axis, not by bar series
|
||||
// axisXLabels: ["0", "2008", "1", "2009", "2", "2010", "3", "2012"]
|
||||
axisXLabels: ["0", "2008", "1", "2009", "2", "2010", "3", "2012"]
|
||||
axisX.max: 10
|
||||
|
||||
BarSeries {
|
||||
GroupedBarSeries {
|
||||
barCategories: [ "2008", "2009", "2010", "2011", "2012" ]
|
||||
BarSet { name: "Bob"; values: [2, 2, 3, 4, 5, 6] }
|
||||
BarSet { name: "Susan"; values: [5, 1, 2, 4, 1, 7] }
|
||||
|
|
|
@ -90,12 +90,54 @@ DeclarativeTableModel *DeclarativeBarSeries::declarativeModel()
|
|||
return qobject_cast<DeclarativeTableModel *>(model());
|
||||
}
|
||||
|
||||
void DeclarativeBarSeries::setBarCategories(QStringList categories)
|
||||
DeclarativeGroupedBarSeries::DeclarativeGroupedBarSeries(QDeclarativeItem *parent) :
|
||||
QGroupedBarSeries(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void DeclarativeGroupedBarSeries::classBegin()
|
||||
{
|
||||
}
|
||||
|
||||
void DeclarativeGroupedBarSeries::componentComplete()
|
||||
{
|
||||
foreach(QObject *child, children()) {
|
||||
if (qobject_cast<QBarSet *>(child)) {
|
||||
QBarSeries::append(qobject_cast<QBarSet *>(child));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QDeclarativeListProperty<DeclarativeBarSet> DeclarativeGroupedBarSeries::initialBarSets()
|
||||
{
|
||||
return QDeclarativeListProperty<DeclarativeBarSet>(this, 0, &DeclarativeGroupedBarSeries::appendInitialBarSets);
|
||||
}
|
||||
|
||||
bool DeclarativeGroupedBarSeries::setDeclarativeModel(DeclarativeTableModel *model)
|
||||
{
|
||||
QAbstractItemModel *m = qobject_cast<QAbstractItemModel *>(model);
|
||||
bool value(false);
|
||||
if (m) {
|
||||
setModel(m);
|
||||
//setModelMapping(int categories, int bottomBoundary, int topBoundary, Qt::Orientation orientation = Qt::Vertical);
|
||||
// setModelMapping(0, 1, 1, Qt::Vertical);
|
||||
} else {
|
||||
qWarning("DeclarativeGroupedBarSeries: Illegal model");
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
DeclarativeTableModel *DeclarativeGroupedBarSeries::declarativeModel()
|
||||
{
|
||||
return qobject_cast<DeclarativeTableModel *>(model());
|
||||
}
|
||||
|
||||
void DeclarativeGroupedBarSeries::setBarCategories(QStringList categories)
|
||||
{
|
||||
setCategories(categories);
|
||||
}
|
||||
|
||||
QStringList DeclarativeBarSeries::barCategories()
|
||||
QStringList DeclarativeGroupedBarSeries::barCategories()
|
||||
{
|
||||
return categories();
|
||||
}
|
||||
|
|
|
@ -48,7 +48,6 @@ class DeclarativeBarSeries : public QGroupedBarSeries, public QDeclarativeParser
|
|||
Q_OBJECT
|
||||
Q_INTERFACES(QDeclarativeParserStatus)
|
||||
Q_PROPERTY(DeclarativeTableModel *model READ declarativeModel WRITE setDeclarativeModel)
|
||||
Q_PROPERTY(QStringList barCategories READ barCategories WRITE setBarCategories)
|
||||
Q_PROPERTY(QDeclarativeListProperty<DeclarativeBarSet> initialBarSets READ initialBarSets)
|
||||
Q_CLASSINFO("DefaultProperty", "initialBarSets")
|
||||
|
||||
|
@ -63,8 +62,33 @@ public: // from QDeclarativeParserStatus
|
|||
public:
|
||||
bool setDeclarativeModel(DeclarativeTableModel *model);
|
||||
DeclarativeTableModel *declarativeModel();
|
||||
|
||||
public Q_SLOTS:
|
||||
static void appendInitialBarSets(QDeclarativeListProperty<DeclarativeBarSet> */*list*/, DeclarativeBarSet */*element*/) {}
|
||||
};
|
||||
|
||||
class DeclarativeGroupedBarSeries : public QGroupedBarSeries, public QDeclarativeParserStatus
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_INTERFACES(QDeclarativeParserStatus)
|
||||
Q_PROPERTY(DeclarativeTableModel *model READ declarativeModel WRITE setDeclarativeModel)
|
||||
Q_PROPERTY(QStringList barCategories READ barCategories WRITE setBarCategories)
|
||||
Q_PROPERTY(QDeclarativeListProperty<DeclarativeBarSet> initialBarSets READ initialBarSets)
|
||||
Q_CLASSINFO("DefaultProperty", "initialBarSets")
|
||||
|
||||
public:
|
||||
explicit DeclarativeGroupedBarSeries(QDeclarativeItem *parent = 0);
|
||||
QDeclarativeListProperty<DeclarativeBarSet> initialBarSets();
|
||||
|
||||
public: // from QDeclarativeParserStatus
|
||||
void classBegin();
|
||||
void componentComplete();
|
||||
|
||||
public:
|
||||
void setBarCategories(QStringList categories);
|
||||
QStringList barCategories();
|
||||
bool setDeclarativeModel(DeclarativeTableModel *model);
|
||||
DeclarativeTableModel *declarativeModel();
|
||||
|
||||
public Q_SLOTS:
|
||||
static void appendInitialBarSets(QDeclarativeListProperty<DeclarativeBarSet> */*list*/, DeclarativeBarSet */*element*/) {}
|
||||
|
|
|
@ -39,10 +39,8 @@ void DeclarativeLineSeries::appendDeclarativeChildren(QDeclarativeListProperty<Q
|
|||
{
|
||||
QXYSeries *series = qobject_cast<QXYSeries*>(list->object);
|
||||
DeclarativeXyPoint *point = qobject_cast<DeclarativeXyPoint *>(element);
|
||||
if (series && point) {
|
||||
qDebug() << "DeclarativeScatterSeries::appendDeclarativeChildren:" << *point;
|
||||
if (series && point)
|
||||
series->append(*point);
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_declarativelineseries.cpp"
|
||||
|
|
|
@ -38,11 +38,10 @@ void DeclarativeSplineSeries::appendDeclarativeChildren(QDeclarativeListProperty
|
|||
{
|
||||
QXYSeries *series = qobject_cast<QXYSeries*>(list->object);
|
||||
DeclarativeXyPoint *point = qobject_cast<DeclarativeXyPoint *>(element);
|
||||
if (series && point) {
|
||||
qDebug() << "DeclarativeScatterSeries::appendDeclarativeChildren:" << *point;
|
||||
if (series && point)
|
||||
series->append(*point);
|
||||
}
|
||||
}
|
||||
|
||||
#include "moc_declarativesplineseries.cpp"
|
||||
|
||||
QTCOMMERCIALCHART_END_NAMESPACE
|
||||
|
|
|
@ -47,23 +47,21 @@ public:
|
|||
qmlRegisterType<DeclarativeChart>(uri, 1, 0, "ChartView");
|
||||
qmlRegisterUncreatableType<QAxis>(uri, 1, 0, "Axis",
|
||||
QLatin1String("Trying to create uncreatable: Axis."));
|
||||
//qmlRegisterType<DeclarativeAxisCategory>(uri, 1, 0, "AxisCategory");
|
||||
qmlRegisterType<DeclarativeXyPoint>(uri, 1, 0, "XyPoint");
|
||||
qmlRegisterType<DeclarativeScatterSeries>(uri, 1, 0, "ScatterSeries");
|
||||
qmlRegisterType<DeclarativeLineSeries>(uri, 1, 0, "LineSeries");
|
||||
qmlRegisterType<DeclarativeSplineSeries>(uri, 1, 0, "SplineSeries");
|
||||
qmlRegisterType<DeclarativeAreaSeries>(uri, 1, 0, "AreaSeries");
|
||||
qmlRegisterType<DeclarativeBarSeries>(uri, 1, 0, "BarSeries");
|
||||
qmlRegisterType<DeclarativeGroupedBarSeries>(uri, 1, 0, "GroupedBarSeries");
|
||||
qmlRegisterType<DeclarativePieSeries>(uri, 1, 0, "PieSeries");
|
||||
qmlRegisterType<QPieSlice>(uri, 1, 0, "PieSlice");
|
||||
qmlRegisterType<DeclarativeTableModel>(uri, 1, 0, "ChartModel");
|
||||
qmlRegisterType<DeclarativeTableModelElement>(uri, 1, 0, "ChartModelElement");
|
||||
//qmlRegisterType<DeclarativePieMapping>(uri, 1, 0, "PieMapping");
|
||||
//qmlRegisterType<QPieModelMapper>(uri, 1, 0, "PieModelMapper");
|
||||
qmlRegisterUncreatableType<QPieModelMapper>(uri, 1, 0, "PieModelMapper",
|
||||
QLatin1String("Trying to create uncreatable: PieModelMapper."));
|
||||
qmlRegisterUncreatableType<QXYModelMapper>(uri, 1, 0, "XYModelMapper",
|
||||
QLatin1String("Trying to create uncreatable: PieModelMapper."));
|
||||
QLatin1String("Trying to create uncreatable: XYModelMapper."));
|
||||
qmlRegisterType<DeclarativeBarSet>(uri, 1, 0, "BarSet");
|
||||
}
|
||||
};
|
||||
|
|
|
@ -353,9 +353,6 @@ QColor ChartTheme::colorAt(const QGradient &gradient, qreal pos)
|
|||
{
|
||||
Q_ASSERT(pos >= 0 && pos <= 1.0);
|
||||
|
||||
// another possibility:
|
||||
// http://stackoverflow.com/questions/3306786/get-intermediate-color-from-a-gradient
|
||||
|
||||
QGradientStops stops = gradient.stops();
|
||||
int count = stops.count();
|
||||
|
||||
|
|
Loading…
Reference in New Issue