##// END OF EJS Templates
Renamed the "factor" stuff from pie series API.
Jani Honkonen -
r498:597882065a5e
parent child
Show More
@@ -45,8 +45,8 MainWindow::MainWindow(QWidget *parent)
45 m_pie->add(1.1, "1");
45 m_pie->add(1.1, "1");
46 m_pie->add(2.1, "2");
46 m_pie->add(2.1, "2");
47 m_pie->add(3.0, "3");
47 m_pie->add(3.0, "3");
48 m_pie->setPositionFactors(0.7, 0.7);
48 m_pie->setPiePosition(0.7, 0.7);
49 m_pie->setSizeFactor(0.5);
49 m_pie->setPieSize(0.5);
50 m_chartView->addSeries(m_pie);
50 m_chartView->addSeries(m_pie);
51
51
52 connect(&m_timer, SIGNAL(timeout()), this, SLOT(customize()));
52 connect(&m_timer, SIGNAL(timeout()), this, SLOT(customize()));
@@ -70,30 +70,30 public:
70 m_hPosition->setMinimum(0.0);
70 m_hPosition->setMinimum(0.0);
71 m_hPosition->setMaximum(1.0);
71 m_hPosition->setMaximum(1.0);
72 m_hPosition->setSingleStep(0.1);
72 m_hPosition->setSingleStep(0.1);
73 m_hPosition->setValue(m_series->horizontalPositionFactor());
73 m_hPosition->setValue(m_series->pieHorizontalPosition());
74
74
75 m_vPosition = new QDoubleSpinBox();
75 m_vPosition = new QDoubleSpinBox();
76 m_vPosition->setMinimum(0.0);
76 m_vPosition->setMinimum(0.0);
77 m_vPosition->setMaximum(1.0);
77 m_vPosition->setMaximum(1.0);
78 m_vPosition->setSingleStep(0.1);
78 m_vPosition->setSingleStep(0.1);
79 m_vPosition->setValue(m_series->verticalPositionFactor());
79 m_vPosition->setValue(m_series->pieVerticalPosition());
80
80
81 m_sizeFactor = new QDoubleSpinBox();
81 m_sizeFactor = new QDoubleSpinBox();
82 m_sizeFactor->setMinimum(0.0);
82 m_sizeFactor->setMinimum(0.0);
83 m_sizeFactor->setMaximum(1.0);
83 m_sizeFactor->setMaximum(1.0);
84 m_sizeFactor->setSingleStep(0.1);
84 m_sizeFactor->setSingleStep(0.1);
85 m_sizeFactor->setValue(m_series->sizeFactor());
85 m_sizeFactor->setValue(m_series->pieSize());
86
86
87 m_startAngle = new QDoubleSpinBox();
87 m_startAngle = new QDoubleSpinBox();
88 m_startAngle->setMinimum(0.0);
88 m_startAngle->setMinimum(0.0);
89 m_startAngle->setMaximum(360);
89 m_startAngle->setMaximum(360);
90 m_startAngle->setValue(m_series->startAngle());
90 m_startAngle->setValue(m_series->pieStartAngle());
91 m_startAngle->setSingleStep(1);
91 m_startAngle->setSingleStep(1);
92
92
93 m_endAngle = new QDoubleSpinBox();
93 m_endAngle = new QDoubleSpinBox();
94 m_endAngle->setMinimum(0.0);
94 m_endAngle->setMinimum(0.0);
95 m_endAngle->setMaximum(360);
95 m_endAngle->setMaximum(360);
96 m_endAngle->setValue(m_series->endAngle());
96 m_endAngle->setValue(m_series->pieEndAngle());
97 m_endAngle->setSingleStep(1);
97 m_endAngle->setSingleStep(1);
98
98
99 QFormLayout* seriesSettingsLayout = new QFormLayout();
99 QFormLayout* seriesSettingsLayout = new QFormLayout();
@@ -153,12 +153,10 public Q_SLOTS:
153
153
154 void updateSerieSettings()
154 void updateSerieSettings()
155 {
155 {
156 m_series->setPositionFactors(m_vPosition->value(), m_hPosition->value());
156 m_series->setPiePosition(m_vPosition->value(), m_hPosition->value());
157
157 m_series->setPieSize(m_sizeFactor->value());
158 m_series->setSizeFactor(m_sizeFactor->value());
158 m_series->setPieStartAngle(m_startAngle->value());
159
159 m_series->setPieEndAngle(m_endAngle->value());
160 m_series->setStartAngle(m_startAngle->value());
161 m_series->setEndAngle(m_endAngle->value());
162 }
160 }
163
161
164 void updateSliceSettings()
162 void updateSliceSettings()
@@ -15,8 +15,8 PiePresenter::PiePresenter(QGraphicsItem *parent, QPieSeries *series)
15 {
15 {
16 Q_ASSERT(series);
16 Q_ASSERT(series);
17 connect(series, SIGNAL(changed(const QPieSeries::ChangeSet&)), this, SLOT(handleSeriesChanged(const QPieSeries::ChangeSet&)));
17 connect(series, SIGNAL(changed(const QPieSeries::ChangeSet&)), this, SLOT(handleSeriesChanged(const QPieSeries::ChangeSet&)));
18 connect(series, SIGNAL(sizeFactorChanged()), this, SLOT(updateGeometry()));
18 connect(series, SIGNAL(piePositionChanged()), this, SLOT(updateGeometry()));
19 connect(series, SIGNAL(positionChanged()), this, SLOT(updateGeometry()));
19 connect(series, SIGNAL(pieSizeChanged()), this, SLOT(updateGeometry()));
20
20
21 if (m_series->count()) {
21 if (m_series->count()) {
22 QPieSeries::ChangeSet changeSet;
22 QPieSeries::ChangeSet changeSet;
@@ -80,8 +80,8 void PiePresenter::updateGeometry()
80
80
81 // find pie center coordinates
81 // find pie center coordinates
82 QPointF center;
82 QPointF center;
83 center.setX(m_rect.left() + (m_rect.width() * m_series->m_hPositionFactor));
83 center.setX(m_rect.left() + (m_rect.width() * m_series->pieHorizontalPosition()));
84 center.setY(m_rect.top() + (m_rect.height() * m_series->m_vPositionFactor));
84 center.setY(m_rect.top() + (m_rect.height() * m_series->pieVerticalPosition()));
85
85
86 // find maximum radius for pie
86 // find maximum radius for pie
87 qreal radius = m_rect.height() / 2;
87 qreal radius = m_rect.height() / 2;
@@ -89,7 +89,7 void PiePresenter::updateGeometry()
89 radius = m_rect.width() / 2;
89 radius = m_rect.width() / 2;
90
90
91 // apply size factor
91 // apply size factor
92 radius *= m_series->m_pieSizeFactor;
92 radius *= m_series->pieSize();
93
93
94 // update slices
94 // update slices
95 if (m_pieCenter != center || m_pieRadius != radius) {
95 if (m_pieCenter != center || m_pieRadius != radius) {
@@ -105,9 +105,9 bool QPieSeries::ChangeSet::isEmpty() const
105 */
105 */
106 QPieSeries::QPieSeries(QObject *parent) :
106 QPieSeries::QPieSeries(QObject *parent) :
107 QSeries(parent),
107 QSeries(parent),
108 m_hPositionFactor(0.5),
108 m_pieRelativeHorPos(0.5),
109 m_vPositionFactor(0.5),
109 m_pieRelativeVerPos(0.5),
110 m_pieSizeFactor(0.7),
110 m_pieRelativeSize(0.7),
111 m_pieStartAngle(0),
111 m_pieStartAngle(0),
112 m_pieEndAngle(360),
112 m_pieEndAngle(360),
113 m_total(0)
113 m_total(0)
@@ -254,97 +254,98 QList<QPieSlice*> QPieSeries::slices() const
254 }
254 }
255
255
256 /*!
256 /*!
257 Sets the center position of the pie by \a horizontalFactor and \a verticalFactor.
257 Sets the center position of the pie by \a relativeHorizontalPosition and \a relativeVerticalPosition.
258
258
259 The factors are relative to the chart rectangle where:
259 The factors are relative to the chart rectangle where:
260
260
261 \a horizontalFactor 0.0 means the absolute left.
261 \a relativeHorizontalPosition 0.0 means the absolute left.
262 \a horizontalFactor 1.0 means the absolute right.
262 \a relativeHorizontalPosition 1.0 means the absolute right.
263 \a verticalFactor 0.0 means the absolute top.
263 \a relativeVerticalPosition 0.0 means the absolute top.
264 \a verticalFactor 1.0 means the absolute bottom.
264 \a relativeVerticalPosition 1.0 means the absolute bottom.
265
265
266 By default \a horizontalFactor and \a verticalFactor are 0.5 which puts the pie in the middle of the chart rectangle.
266 By default both values are 0.5 which puts the pie in the middle of the chart rectangle.
267
267
268 \sa horizontalPositionFactor(), verticalPositionFactor(), setSizeFactor()
268 \sa pieHorizontalPosition(), pieVerticalPosition(), setPieSize()
269 */
269 */
270 void QPieSeries::setPositionFactors(qreal horizontalFactor, qreal verticalFactor)
270 void QPieSeries::setPiePosition(qreal relativeHorizontalPosition, qreal relativeVerticalPosition)
271 {
271 {
272 if (horizontalFactor < 0.0 || horizontalFactor > 1.0 || verticalFactor < 0.0 || verticalFactor > 1.0)
272 if (relativeHorizontalPosition < 0.0 || relativeHorizontalPosition > 1.0 ||
273 relativeVerticalPosition < 0.0 || relativeVerticalPosition > 1.0)
273 return;
274 return;
274
275
275 if (m_hPositionFactor != horizontalFactor || m_vPositionFactor != verticalFactor) {
276 if (m_pieRelativeHorPos != relativeHorizontalPosition || m_pieRelativeVerPos != relativeVerticalPosition) {
276 m_hPositionFactor = horizontalFactor;
277 m_pieRelativeHorPos = relativeHorizontalPosition;
277 m_vPositionFactor = verticalFactor;
278 m_pieRelativeVerPos = relativeVerticalPosition;
278 emit positionChanged();
279 emit piePositionChanged();
279 }
280 }
280 }
281 }
281
282
282 /*!
283 /*!
283 Gets the horizontal position factor of the pie.
284 Gets the horizontal position of the pie.
284
285
285 The factors are relative to the chart rectangle where:
286 The returned value is relative to the chart rectangle where:
286
287
287 Horizontal factor 0.0 means the absolute left.
288 0.0 means the absolute left.
288 Horizontal factor 1.0 means the absolute right.
289 1.0 means the absolute right.
289
290
290 By default horizontal factor is 0.5 which puts the pie in the horizontal middle of the chart rectangle.
291 By default it is 0.5 which puts the pie in the horizontal middle of the chart rectangle.
291
292
292 \sa setPositionFactors(), verticalPositionFactor(), setSizeFactor()
293 \sa setPiePosition(), pieVerticalPosition(), setPieSize()
293 */
294 */
294 qreal QPieSeries::horizontalPositionFactor() const
295 qreal QPieSeries::pieHorizontalPosition() const
295 {
296 {
296 return m_hPositionFactor;
297 return m_pieRelativeHorPos;
297 }
298 }
298
299
299 /*!
300 /*!
300 Gets the vertical position factor of the pie.
301 Gets the vertical position position of the pie.
301
302
302 The factors are relative to the chart rectangle where:
303 The returned value is relative to the chart rectangle where:
303
304
304 Vertical factor 0.0 means the absolute top.
305 0.0 means the absolute top.
305 Vertical factor 1.0 means the absolute bottom.
306 1.0 means the absolute bottom.
306
307
307 By default vertical factor is 0.5 which puts the pie in the vertical middle of the chart rectangle.
308 By default it is 0.5 which puts the pie in the vertical middle of the chart rectangle.
308
309
309 \sa setPositionFactors(), horizontalPositionFactor(), setSizeFactor()
310 \sa setPiePosition(), pieHorizontalPosition(), setPieSize()
310 */
311 */
311 qreal QPieSeries::verticalPositionFactor() const
312 qreal QPieSeries::pieVerticalPosition() const
312 {
313 {
313 return m_vPositionFactor;
314 return m_pieRelativeVerPos;
314 }
315 }
315
316
316 /*!
317 /*!
317 Sets the size \a sizeFactor of the pie.
318 Sets the relative size of the pie.
318
319
319 The size factor is defined so that the 1.0 is the maximum that can fit the given chart rectangle.
320 The \a relativeSize is defined so that the 1.0 is the maximum that can fit the given chart rectangle.
320
321
321 Default value is 0.7.
322 Default value is 0.7.
322
323
323 \sa sizeFactor(), setPositionFactors(), verticalPositionFactor(), horizontalPositionFactor()
324 \sa pieSize(), setPiePosition(), pieVerticalPosition(), pieHorizontalPosition()
324 */
325 */
325 void QPieSeries::setSizeFactor(qreal sizeFactor)
326 void QPieSeries::setPieSize(qreal relativeSize)
326 {
327 {
327 if (sizeFactor < 0.0)
328 if (relativeSize < 0.0 || relativeSize > 1.0)
328 return;
329 return;
329
330
330 if (m_pieSizeFactor != sizeFactor) {
331 if (m_pieRelativeSize != relativeSize) {
331 m_pieSizeFactor = sizeFactor;
332 m_pieRelativeSize = relativeSize;
332 emit sizeFactorChanged();
333 emit pieSizeChanged();
333 }
334 }
334 }
335 }
335
336
336 /*!
337 /*!
337 Gets the size factor of the pie.
338 Gets the relative size of the pie.
338
339
339 The size factor is defined so that the 1.0 is the maximum that can fit the given chart rectangle.
340 The size is defined so that the 1.0 is the maximum that can fit the given chart rectangle.
340
341
341 Default value is 0.7.
342 Default value is 0.7.
342
343
343 \sa setSizeFactor(), setPositionFactors(), verticalPositionFactor(), horizontalPositionFactor()
344 \sa setPieSize(), setPiePosition(), pieVerticalPosition(), pieHorizontalPosition()
344 */
345 */
345 qreal QPieSeries::sizeFactor() const
346 qreal QPieSeries::pieSize() const
346 {
347 {
347 return m_pieSizeFactor;
348 return m_pieRelativeSize;
348 }
349 }
349
350
350
351
@@ -353,14 +354,14 qreal QPieSeries::sizeFactor() const
353
354
354 Full pie is 360 degrees where 0 degrees is at 12 a'clock.
355 Full pie is 360 degrees where 0 degrees is at 12 a'clock.
355
356
356 \a startAngle must be less than end angle. Default value is 0.
357 \a angle must be less than pie end angle. Default value is 0.
357
358
358 \sa startAngle(), endAngle(), setEndAngle()
359 \sa pieStartAngle(), pieEndAngle(), setPieEndAngle()
359 */
360 */
360 void QPieSeries::setStartAngle(qreal startAngle)
361 void QPieSeries::setPieStartAngle(qreal angle)
361 {
362 {
362 if (startAngle >= 0 && startAngle <= 360 && startAngle != m_pieStartAngle && startAngle <= m_pieEndAngle) {
363 if (angle >= 0 && angle <= 360 && angle != m_pieStartAngle && angle <= m_pieEndAngle) {
363 m_pieStartAngle = startAngle;
364 m_pieStartAngle = angle;
364 updateDerivativeData();
365 updateDerivativeData();
365 }
366 }
366 }
367 }
@@ -370,9 +371,9 void QPieSeries::setStartAngle(qreal startAngle)
370
371
371 Full pie is 360 degrees where 0 degrees is at 12 a'clock. Default value is 360.
372 Full pie is 360 degrees where 0 degrees is at 12 a'clock. Default value is 360.
372
373
373 \sa setStartAngle(), endAngle(), setEndAngle()
374 \sa setPieStartAngle(), pieEndAngle(), setPieEndAngle()
374 */
375 */
375 qreal QPieSeries::startAngle() const
376 qreal QPieSeries::pieStartAngle() const
376 {
377 {
377 return m_pieStartAngle;
378 return m_pieStartAngle;
378 }
379 }
@@ -382,14 +383,14 qreal QPieSeries::startAngle() const
382
383
383 Full pie is 360 degrees where 0 degrees is at 12 a'clock.
384 Full pie is 360 degrees where 0 degrees is at 12 a'clock.
384
385
385 \a endAngle must be greater than start angle.
386 \a angle must be greater than start angle.
386
387
387 \sa endAngle(), startAngle(), setStartAngle()
388 \sa pieEndAngle(), pieStartAngle(), setPieStartAngle()
388 */
389 */
389 void QPieSeries::setEndAngle(qreal endAngle)
390 void QPieSeries::setPieEndAngle(qreal angle)
390 {
391 {
391 if (endAngle >= 0 && endAngle <= 360 && endAngle != m_pieEndAngle && endAngle >= m_pieStartAngle) {
392 if (angle >= 0 && angle <= 360 && angle != m_pieEndAngle && angle >= m_pieStartAngle) {
392 m_pieEndAngle = endAngle;
393 m_pieEndAngle = angle;
393 updateDerivativeData();
394 updateDerivativeData();
394 }
395 }
395 }
396 }
@@ -399,9 +400,9 void QPieSeries::setEndAngle(qreal endAngle)
399
400
400 Full pie is 360 degrees where 0 degrees is at 12 a'clock.
401 Full pie is 360 degrees where 0 degrees is at 12 a'clock.
401
402
402 \sa setEndAngle(), startAngle(), setStartAngle()
403 \sa setPieEndAngle(), pieStartAngle(), setPieStartAngle()
403 */
404 */
404 qreal QPieSeries::endAngle() const
405 qreal QPieSeries::pieEndAngle() const
405 {
406 {
406 return m_pieEndAngle;
407 return m_pieEndAngle;
407 }
408 }
@@ -461,19 +462,19 qreal QPieSeries::total() const
461 */
462 */
462
463
463 /*!
464 /*!
464 \fn void QPieSeries::sizeFactorChanged()
465 \fn void QPieSeries::pieSizeChanged()
465
466
466 This signal is emitted when size factor has been changed.
467 This signal is emitted when size factor has been changed.
467
468
468 \sa sizeFactor(), setSizeFactor()
469 \sa pieSize(), setPieSize()
469 */
470 */
470
471
471 /*!
472 /*!
472 \fn void QPieSeries::positionChanged()
473 \fn void QPieSeries::piePositionChanged()
473
474
474 This signal is emitted when position of the pie has been changed.
475 This signal is emitted when position of the pie has been changed.
475
476
476 \sa horizontalPositionFactor(), verticalPositionFactor(), setPositionFactors()
477 \sa pieHorizontalPosition(), pieVerticalPosition(), setPiePosition()
477 */
478 */
478
479
479 void QPieSeries::sliceChanged()
480 void QPieSeries::sliceChanged()
@@ -67,15 +67,15 public:
67 qreal total() const;
67 qreal total() const;
68
68
69 // pie customization
69 // pie customization
70 void setPositionFactors(qreal horizontalFactor, qreal verticalFactor);
70 void setPiePosition(qreal relativeHorizontalPosition, qreal relativeVerticalPosition);
71 qreal horizontalPositionFactor() const;
71 qreal pieHorizontalPosition() const;
72 qreal verticalPositionFactor() const;
72 qreal pieVerticalPosition() const;
73 void setSizeFactor(qreal sizeFactor);
73 void setPieSize(qreal relativeSize);
74 qreal sizeFactor() const;
74 qreal pieSize() const;
75 void setStartAngle(qreal startAngle);
75 void setPieStartAngle(qreal startAngle);
76 qreal startAngle() const;
76 qreal pieStartAngle() const;
77 void setEndAngle(qreal endAngle);
77 void setPieEndAngle(qreal endAngle);
78 qreal endAngle() const;
78 qreal pieEndAngle() const;
79
79
80 // convenience function
80 // convenience function
81 QPieSeries& operator << (QPieSlice* slice);
81 QPieSeries& operator << (QPieSlice* slice);
@@ -94,15 +94,14 public:
94 // setDropShadows
94 // setDropShadows
95
95
96 Q_SIGNALS:
96 Q_SIGNALS:
97
98 void changed(const QPieSeries::ChangeSet& changeSet);
99
100 void clicked(QPieSlice* slice);
97 void clicked(QPieSlice* slice);
101 void hoverEnter(QPieSlice* slice);
98 void hoverEnter(QPieSlice* slice);
102 void hoverLeave(QPieSlice* slice);
99 void hoverLeave(QPieSlice* slice);
103
100
104 void sizeFactorChanged();
101 void pieSizeChanged();
105 void positionChanged();
102 void piePositionChanged();
103
104 void changed(const QPieSeries::ChangeSet& changeSet); // TODO: hide this in PIMPL
106
105
107 private Q_SLOTS: // TODO: should be private and not visible in the interface at all
106 private Q_SLOTS: // TODO: should be private and not visible in the interface at all
108 void sliceChanged();
107 void sliceChanged();
@@ -121,9 +120,9 private:
121 friend class PieSlice;
120 friend class PieSlice;
122
121
123 QList<QPieSlice*> m_slices;
122 QList<QPieSlice*> m_slices;
124 qreal m_hPositionFactor;
123 qreal m_pieRelativeHorPos;
125 qreal m_vPositionFactor;
124 qreal m_pieRelativeVerPos;
126 qreal m_pieSizeFactor;
125 qreal m_pieRelativeSize;
127 qreal m_pieStartAngle;
126 qreal m_pieStartAngle;
128 qreal m_pieEndAngle;
127 qreal m_pieEndAngle;
129 qreal m_total;
128 qreal m_total;
General Comments 0
You need to be logged in to leave comments. Login now