diff --git a/examples/datetimeaxis/main.cpp b/examples/datetimeaxis/main.cpp index 3f540ef..0de258a 100644 --- a/examples/datetimeaxis/main.cpp +++ b/examples/datetimeaxis/main.cpp @@ -38,11 +38,11 @@ int main(int argc, char *argv[]) //![2] QDateTime momentInTime; - for (int i = 0; i < 100; i++) { + for (int i = 0; i < 200; i++) { momentInTime.setDate(QDate(2012, 1 , (1 + i / 9) % 28)); momentInTime.setTime(QTime(9 + i % 9, 0)); if (i > 0) - series->append(momentInTime.toMSecsSinceEpoch(), series->points().at(i - 1).y() * (0.95 + (qrand() % 11) / 100.0)); + series->append(momentInTime.toMSecsSinceEpoch(), series->points().at(i - 1).y() * (0.99 + (qrand() % 3) / 100.0)); else series->append(momentInTime.toMSecsSinceEpoch(), 45); } @@ -54,13 +54,7 @@ int main(int argc, char *argv[]) chart->addSeries(series); chart->createDefaultAxes(); QDateTimeAxis *axisX = new QDateTimeAxis; - axisX->setTicksCount(20); - momentInTime.setDate(QDate(2012,1,1)); - momentInTime.setTime(QTime(6, 0)); - axisX->setMin(momentInTime); - momentInTime.setDate(QDate(2012,1,7)); - momentInTime.setTime(QTime(18, 0)); - axisX->setMax(momentInTime); +// axisX->setTicksCount(10); chart->setAxisX(axisX, series); chart->setTitle("Date and Time axis chart example"); //![3] diff --git a/src/piechart/qpieseries.cpp b/src/piechart/qpieseries.cpp index eca6a06..150718d 100644 --- a/src/piechart/qpieseries.cpp +++ b/src/piechart/qpieseries.cpp @@ -132,6 +132,8 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE \o 1.0 is the maximum size that can fit the chart. \endlist + When setting this property the donutInnerSize property is adjusted if necessary, to ensure that the inner size is not greater than the outer size. + Default value is 0.7. */ @@ -177,7 +179,8 @@ QTCOMMERCIALCHART_BEGIN_NAMESPACE \o 1.0 is the maximum size that can fit the chart. (donut has no width) \endlist - The value is never greater then size property. + When setting this property the size property is adjusted if necessary, to ensure that the inner size is not greater than the outer size. + Default value is 0.5. */ @@ -582,15 +585,8 @@ bool QPieSeries::donut() const void QPieSeries::setDonutInnerSize(qreal innerSize) { Q_D(QPieSeries); - - if (innerSize < 0.0) - innerSize = 0.0; - if (innerSize > d->m_pieRelativeSize) - innerSize = d->m_pieRelativeSize; - - d->m_donutRelativeInnerSize = innerSize; - d->updateDerivativeData(); - emit d->pieSizeChanged(); + innerSize = qBound(0.0, innerSize, 1.0); + d->setSizes(innerSize, qMax(d->m_pieRelativeSize, innerSize)); } qreal QPieSeries::donutInnerSize() const @@ -644,16 +640,9 @@ qreal QPieSeries::verticalPosition() const void QPieSeries::setPieSize(qreal relativeSize) { Q_D(QPieSeries); + relativeSize = qBound(0.0, relativeSize, 1.0); + d->setSizes(qMin(d->m_donutRelativeInnerSize, relativeSize), relativeSize); - if (relativeSize < 0.0) - relativeSize = 0.0; - if (relativeSize > 1.0) - relativeSize = 1.0; - - if (!qFuzzyIsNull(d->m_pieRelativeSize - relativeSize)) { - d->m_pieRelativeSize = relativeSize; - emit d->pieSizeChanged(); - } } qreal QPieSeries::pieSize() const @@ -785,6 +774,24 @@ void QPieSeriesPrivate::updateDerivativeData() emit calculatedDataChanged(); } +void QPieSeriesPrivate::setSizes(qreal innerSize, qreal outerSize) +{ + bool changed = false; + + if (!qFuzzyIsNull(m_donutRelativeInnerSize - innerSize)) { + m_donutRelativeInnerSize = innerSize; + changed = true; + } + + if (!qFuzzyIsNull(m_pieRelativeSize - outerSize)) { + m_pieRelativeSize = outerSize; + changed = true; + } + + if (changed) + emit pieSizeChanged(); +} + QPieSeriesPrivate* QPieSeriesPrivate::fromSeries(QPieSeries *series) { return series->d_func(); diff --git a/src/piechart/qpieseries_p.h b/src/piechart/qpieseries_p.h index 479b07d..eb2316a 100644 --- a/src/piechart/qpieseries_p.h +++ b/src/piechart/qpieseries_p.h @@ -51,6 +51,7 @@ public: QAbstractAxis::AxisType defaultAxisType(Qt::Orientation orientation) const; void updateDerivativeData(); + void setSizes(qreal innerSize, qreal outerSize); static QPieSeriesPrivate* fromSeries(QPieSeries *series); diff --git a/src/piechart/qpieslice.h b/src/piechart/qpieslice.h index e579006..b5293b2 100644 --- a/src/piechart/qpieslice.h +++ b/src/piechart/qpieslice.h @@ -58,8 +58,8 @@ public: enum LabelPosition { LabelOutside, LabelInside, - LabelInsideTangential, - LabelInsideNormal + LabelInsideTangential, // better name needed + LabelInsideNormal // better name needed }; public: