Graphs: rename VisibleMode to LabelVisibility

Based on API review: Rename the VisibleMode enum to LabelVisibility
to specifically state that it controls label visibility in pie series.

Task-number: QTBUG-137478
Change-Id: If7834e180a3be90c8a5f69807ac9763b7e4ac853
Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io>
(cherry picked from commit 8a24be6330)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Kwanghyo Park 2025-07-17 13:11:11 +03:00 committed by Qt Cherry-pick Bot
parent 30d9763c31
commit 74f76ec3d3
6 changed files with 53 additions and 53 deletions

View File

@ -309,11 +309,11 @@ QT_BEGIN_NAMESPACE
\brief The angle span limit for label visibility. \brief The angle span limit for label visibility.
The angle span that will be used as the visibility limit for a slice label. A slice with The angle span that will be used as the visibility limit for a slice label. A slice with
angle span under this value will change its visibility based on the \l angleSpanVisibleMode angle span under this value will change its visibility based on the \l angleSpanLabelVisibility
set to the series. The default value is \c {0}, which means no slices will be hidden set to the series. The default value is \c {0}, which means no slices will be hidden
regardless of the \l {angleSpanVisibleMode}. regardless of the \l {angleSpanLabelVisibility}.
\sa QPieSeries::angleSpanVisibleMode \sa QPieSeries::angleSpanLabelVisibility
*/ */
/*! /*!
@ -323,15 +323,15 @@ QT_BEGIN_NAMESPACE
The angle span limit for label visibility. The angle span limit for label visibility.
The angle span that will be used as the visibility limit for a slice label. A slice with The angle span that will be used as the visibility limit for a slice label. A slice with
angle span under this value will change its visibility based on the \l angleSpanVisibleMode angle span under this value will change its visibility based on the \l angleSpanLabelVisibility
set to the series. The default value is \c {0}, which means no slices will be hidden set to the series. The default value is \c {0}, which means no slices will be hidden
regardless of the \l {angleSpanVisibleMode}. regardless of the \l {angleSpanLabelVisibility}.
\sa angleSpanVisibleMode \sa angleSpanLabelVisibility
*/ */
/*! /*!
\property QPieSeries::angleSpanVisibleMode \property QPieSeries::angleSpanLabelVisibility
\since 6.10 \since 6.10
\brief The mode for label visibility. \brief The mode for label visibility.
@ -344,7 +344,7 @@ QT_BEGIN_NAMESPACE
*/ */
/*! /*!
\qmlproperty enumeration PieSeries::angleSpanVisibleMode \qmlproperty enumeration PieSeries::angleSpanLabelVisibility
\since 6.10 \since 6.10
The mode for label visibility. The mode for label visibility.
@ -353,16 +353,16 @@ QT_BEGIN_NAMESPACE
set with \l {angleSpanVisibleLimit}. Has no effect if \l angleSpanVisibleLimit has not been set with \l {angleSpanVisibleLimit}. Has no effect if \l angleSpanVisibleLimit has not been
set. set.
\value PieSeries.VisibleMode.None \value PieSeries.LabelVisibility.None
All of the labels of slices with smaller angle span than the \l angleSpanVisibleLimit All of the labels of slices with smaller angle span than the \l angleSpanVisibleLimit
will be hidden. will be hidden.
\value PieSeries.VisibleMode.First \value PieSeries.LabelVisibility.First
All except the first label of consecutive slices with smaller angle span than All except the first label of consecutive slices with smaller angle span than
the \l angleSpanVisibleLimit will be hidden. This is the default value. the \l angleSpanVisibleLimit will be hidden. This is the default value.
\value PieSeries.VisibleMode.Even \value PieSeries.LabelVisibility.Even
Every other label of consecutive slices with smaller angle span than Every other label of consecutive slices with smaller angle span than
the \l angleSpanVisibleLimit will be hidden, starting from the second one. the \l angleSpanVisibleLimit will be hidden, starting from the second one.
\value PieSeries.VisibleMode.Odd \value PieSeries.LabelVisibility.Odd
Every other label of consecutive slices with smaller angle span than Every other label of consecutive slices with smaller angle span than
the \l angleSpanVisibleLimit will be hidden, starting from the first one. the \l angleSpanVisibleLimit will be hidden, starting from the first one.
@ -370,7 +370,7 @@ QT_BEGIN_NAMESPACE
*/ */
/*! /*!
\enum QPieSeries::VisibleMode \enum QPieSeries::LabelVisibility
\since 6.10 \since 6.10
The mode for label visibility. The mode for label visibility.
@ -514,7 +514,7 @@ QT_BEGIN_NAMESPACE
*/ */
/*! /*!
\qmlsignal PieSeries::angleSpanVisibleModeChanged() \qmlsignal PieSeries::angleSpanLabelVisibilityChanged()
\since 6.10 \since 6.10
This signal is emitted when the angle span limit visible mode has been changed. This signal is emitted when the angle span limit visible mode has been changed.
*/ */
@ -1176,23 +1176,23 @@ void QPieSeries::setAngleSpanVisibleLimit(qreal newAngleSpanVisibleLimit)
emit angleSpanVisibleLimitChanged(); emit angleSpanVisibleLimitChanged();
} }
QPieSeries::VisibleMode QPieSeries::angleSpanVisibleMode() const QPieSeries::LabelVisibility QPieSeries::angleSpanLabelVisibility() const
{ {
Q_D(const QPieSeries); Q_D(const QPieSeries);
return d->m_angleSpanVisibleMode; return d->m_angleSpanVisibleMode;
} }
void QPieSeries::setAngleSpanVisibleMode(QPieSeries::VisibleMode newAngleSpanVisibleMode) void QPieSeries::setAngleSpanLabelVisibility(QPieSeries::LabelVisibility newAngleSpanVisibleMode)
{ {
Q_D(QPieSeries); Q_D(QPieSeries);
if (d->m_angleSpanVisibleMode == newAngleSpanVisibleMode) { if (d->m_angleSpanVisibleMode == newAngleSpanVisibleMode) {
qCDebug(lcProperties2D) << "QPieSeries::setAngleSpanVisibleMode. Mode is already set to: " qCDebug(lcProperties2D) << "QPieSeries::setAngleSpanLabelVisibility. Property is already set to: "
<< newAngleSpanVisibleMode; << newAngleSpanVisibleMode;
return; return;
} }
d->m_angleSpanVisibleMode = newAngleSpanVisibleMode; d->m_angleSpanVisibleMode = newAngleSpanVisibleMode;
d->updateData(true); d->updateData(true);
emit angleSpanVisibleModeChanged(); emit angleSpanLabelVisibilityChanged();
} }
QPieSeriesPrivate::QPieSeriesPrivate() QPieSeriesPrivate::QPieSeriesPrivate()
@ -1204,7 +1204,7 @@ QPieSeriesPrivate::QPieSeriesPrivate()
, m_sum(0) , m_sum(0)
, m_holeRelativeSize(.0) , m_holeRelativeSize(.0)
, m_angleSpanVisibleLimit(.0) , m_angleSpanVisibleLimit(.0)
, m_angleSpanVisibleMode(QPieSeries::VisibleMode::First) , m_angleSpanVisibleMode(QPieSeries::LabelVisibility::First)
{} {}
@ -1229,7 +1229,7 @@ void QPieSeriesPrivate::updateData(bool clearHidden)
// update slice attributes // update slice attributes
qreal sliceAngle = m_pieStartAngle; qreal sliceAngle = m_pieStartAngle;
qreal pieSpan = m_pieEndAngle - m_pieStartAngle; qreal pieSpan = m_pieEndAngle - m_pieStartAngle;
auto hideMode = q->angleSpanVisibleMode(); auto hideMode = q->angleSpanLabelVisibility();
bool hideNextSmallSlice = false; bool hideNextSmallSlice = false;
for (QPieSlice *s : std::as_const(m_slices)) { for (QPieSlice *s : std::as_const(m_slices)) {
QPieSlicePrivate *d = s->d_func(); QPieSlicePrivate *d = s->d_func();
@ -1245,14 +1245,14 @@ void QPieSeriesPrivate::updateData(bool clearHidden)
// Check if current slice is small, and if the previous slice was also small // Check if current slice is small, and if the previous slice was also small
// Hide the label on this one if the mode matches // Hide the label on this one if the mode matches
if (d->m_angleSpan < m_angleSpanVisibleLimit if (d->m_angleSpan < m_angleSpanVisibleLimit
&& ((!hideNextSmallSlice && hideMode == QPieSeries::VisibleMode::Even) && ((!hideNextSmallSlice && hideMode == QPieSeries::LabelVisibility::Even)
|| (hideNextSmallSlice || (hideNextSmallSlice
&& (hideMode == QPieSeries::VisibleMode::Odd && (hideMode == QPieSeries::LabelVisibility::Odd
|| hideMode == QPieSeries::VisibleMode::First)) || hideMode == QPieSeries::LabelVisibility::First))
|| hideMode == QPieSeries::VisibleMode::None)) { || hideMode == QPieSeries::LabelVisibility::None)) {
d->setLabelVisible(false, true); d->setLabelVisible(false, true);
} }
if (hideMode == QPieSeries::VisibleMode::First) { if (hideMode == QPieSeries::LabelVisibility::First) {
// Hide every other small slice label after the first shown one // Hide every other small slice label after the first shown one
hideNextSmallSlice = d->m_angleSpan < m_angleSpanVisibleLimit; hideNextSmallSlice = d->m_angleSpan < m_angleSpanVisibleLimit;
} else { } else {

View File

@ -28,18 +28,18 @@ class Q_GRAPHS_EXPORT QPieSeries : public QAbstractSeries
Q_PROPERTY(qreal holeSize READ holeSize WRITE setHoleSize NOTIFY holeSizeChanged FINAL) Q_PROPERTY(qreal holeSize READ holeSize WRITE setHoleSize NOTIFY holeSizeChanged FINAL)
Q_PROPERTY(qreal angleSpanVisibleLimit READ angleSpanVisibleLimit WRITE setAngleSpanVisibleLimit Q_PROPERTY(qreal angleSpanVisibleLimit READ angleSpanVisibleLimit WRITE setAngleSpanVisibleLimit
NOTIFY angleSpanVisibleLimitChanged REVISION(6, 10)) NOTIFY angleSpanVisibleLimitChanged REVISION(6, 10))
Q_PROPERTY(VisibleMode angleSpanVisibleMode READ angleSpanVisibleMode WRITE setAngleSpanVisibleMode Q_PROPERTY(LabelVisibility angleSpanLabelVisibility READ angleSpanLabelVisibility
NOTIFY angleSpanVisibleModeChanged REVISION(6, 10)) WRITE setAngleSpanLabelVisibility NOTIFY angleSpanLabelVisibilityChanged REVISION(6, 10))
QML_NAMED_ELEMENT(PieSeries) QML_NAMED_ELEMENT(PieSeries)
public: public:
enum class VisibleMode { enum class LabelVisibility {
None, None,
First, First,
Even, Even,
Odd, Odd,
}; };
Q_ENUM(VisibleMode) Q_ENUM(LabelVisibility)
explicit QPieSeries(QObject *parent = nullptr); explicit QPieSeries(QObject *parent = nullptr);
~QPieSeries() override; ~QPieSeries() override;
@ -92,8 +92,8 @@ public:
qreal angleSpanVisibleLimit() const; qreal angleSpanVisibleLimit() const;
void setAngleSpanVisibleLimit(qreal newAngleSpanVisibleLimit); void setAngleSpanVisibleLimit(qreal newAngleSpanVisibleLimit);
VisibleMode angleSpanVisibleMode() const; LabelVisibility angleSpanLabelVisibility() const;
void setAngleSpanVisibleMode(VisibleMode newAngleSpanVisibleMode); void setAngleSpanLabelVisibility(LabelVisibility newAngleSpanVisibleMode);
public Q_SLOTS: public Q_SLOTS:
void handleSliceChange(); void handleSliceChange();
@ -121,7 +121,7 @@ Q_SIGNALS:
Q_REVISION(6, 9) void released(QPieSlice *slice); Q_REVISION(6, 9) void released(QPieSlice *slice);
Q_REVISION(6, 10) void angleSpanVisibleLimitChanged(); Q_REVISION(6, 10) void angleSpanVisibleLimitChanged();
Q_REVISION(6, 10) void angleSpanVisibleModeChanged(); Q_REVISION(6, 10) void angleSpanLabelVisibilityChanged();
private: private:
friend class PieRenderer; friend class PieRenderer;

View File

@ -38,7 +38,7 @@ private:
qreal m_sum; qreal m_sum;
qreal m_holeRelativeSize; qreal m_holeRelativeSize;
qreal m_angleSpanVisibleLimit; qreal m_angleSpanVisibleLimit;
QPieSeries::VisibleMode m_angleSpanVisibleMode; QPieSeries::LabelVisibility m_angleSpanVisibleMode;
Q_DECLARE_PUBLIC(QPieSeries) Q_DECLARE_PUBLIC(QPieSeries)
}; };

View File

@ -64,7 +64,7 @@ void tst_qgpieseries::properties()
QSignalSpy opacitySpy(m_series, SIGNAL(opacityChanged())); QSignalSpy opacitySpy(m_series, SIGNAL(opacityChanged()));
QSignalSpy valuesMultiplierSpy(m_series, SIGNAL(valuesMultiplierChanged())); QSignalSpy valuesMultiplierSpy(m_series, SIGNAL(valuesMultiplierChanged()));
QSignalSpy angleSpanVisibleLimitSpy(m_series, SIGNAL(angleSpanVisibleLimitChanged())); QSignalSpy angleSpanVisibleLimitSpy(m_series, SIGNAL(angleSpanVisibleLimitChanged()));
QSignalSpy angleSpanVisibleModeSpy(m_series, SIGNAL(angleSpanVisibleModeChanged())); QSignalSpy angleSpanLabelVisibilitySpy(m_series, SIGNAL(angleSpanLabelVisibilityChanged()));
QVERIFY(m_series->type() == QAbstractSeries::SeriesType::Pie); QVERIFY(m_series->type() == QAbstractSeries::SeriesType::Pie);
QVERIFY(m_series->count() == 0); QVERIFY(m_series->count() == 0);
@ -78,7 +78,7 @@ void tst_qgpieseries::properties()
QCOMPARE(m_series->opacity(), 1.0); QCOMPARE(m_series->opacity(), 1.0);
QCOMPARE(m_series->valuesMultiplier(), 1.0); QCOMPARE(m_series->valuesMultiplier(), 1.0);
QCOMPARE(m_series->angleSpanVisibleLimit(), 0.0); QCOMPARE(m_series->angleSpanVisibleLimit(), 0.0);
QCOMPARE(m_series->angleSpanVisibleMode(), QPieSeries::VisibleMode::First); QCOMPARE(m_series->angleSpanLabelVisibility(), QPieSeries::LabelVisibility::First);
m_series->append("s1", 1); m_series->append("s1", 1);
m_series->append("s2", 1); m_series->append("s2", 1);
@ -164,12 +164,12 @@ void tst_qgpieseries::properties()
QCOMPARE(m_series->angleSpanVisibleLimit(), 10.0); QCOMPARE(m_series->angleSpanVisibleLimit(), 10.0);
QCOMPARE(angleSpanVisibleLimitSpy.size(), 2); QCOMPARE(angleSpanVisibleLimitSpy.size(), 2);
m_series->setAngleSpanVisibleMode(QPieSeries::VisibleMode::None); m_series->setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::None);
QCOMPARE(m_series->angleSpanVisibleMode(), QPieSeries::VisibleMode::None); QCOMPARE(m_series->angleSpanLabelVisibility(), QPieSeries::LabelVisibility::None);
QCOMPARE(angleSpanVisibleModeSpy.size(), 1); QCOMPARE(angleSpanLabelVisibilitySpy.size(), 1);
m_series->setAngleSpanVisibleMode(QPieSeries::VisibleMode::Even); m_series->setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::Even);
QCOMPARE(m_series->angleSpanVisibleMode(), QPieSeries::VisibleMode::Even); QCOMPARE(m_series->angleSpanLabelVisibility(), QPieSeries::LabelVisibility::Even);
QCOMPARE(angleSpanVisibleModeSpy.size(), 2); QCOMPARE(angleSpanLabelVisibilitySpy.size(), 2);
} }
void tst_qgpieseries::append() void tst_qgpieseries::append()
@ -622,7 +622,7 @@ void tst_qgpieseries::adjust_limits_and_mode()
} }
// Every slice label under the limit should be hidden // Every slice label under the limit should be hidden
series.setAngleSpanVisibleMode(QPieSeries::VisibleMode::None); series.setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::None);
series.setAngleSpanVisibleLimit(35); series.setAngleSpanVisibleLimit(35);
for (const QPieSlice *slice : series.slices()) { for (const QPieSlice *slice : series.slices()) {
if (slice->angleSpan() < series.angleSpanVisibleLimit()) if (slice->angleSpan() < series.angleSpanVisibleLimit())
@ -645,7 +645,7 @@ void tst_qgpieseries::adjust_limits_and_mode()
QCOMPARE(visiblecount, 7); QCOMPARE(visiblecount, 7);
// Only the first label of slices under the limit should be visible // Only the first label of slices under the limit should be visible
series.setAngleSpanVisibleMode(QPieSeries::VisibleMode::First); series.setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::First);
series.setAngleSpanVisibleLimit(36); // mid-point; half of the labels plus one should be visible series.setAngleSpanVisibleLimit(36); // mid-point; half of the labels plus one should be visible
visiblecount = 0; visiblecount = 0;
for (const QPieSlice *slice : series.slices()) for (const QPieSlice *slice : series.slices())
@ -659,7 +659,7 @@ void tst_qgpieseries::adjust_limits_and_mode()
QCOMPARE(visiblecount, 1); QCOMPARE(visiblecount, 1);
// Every other label of slices under the limit should be visible // Every other label of slices under the limit should be visible
series.setAngleSpanVisibleMode(QPieSeries::VisibleMode::Odd); series.setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::Odd);
series.setAngleSpanVisibleLimit(36); series.setAngleSpanVisibleLimit(36);
visiblecount = 0; visiblecount = 0;
for (const QPieSlice *slice : series.slices()) for (const QPieSlice *slice : series.slices())

View File

@ -41,7 +41,7 @@ Item {
SignalSpy { SignalSpy {
id: modeChangedSpy id: modeChangedSpy
target: pieSeries target: pieSeries
signalName: "angleSpanVisibleModeChanged" signalName: "angleSpanLabelVisibilityChanged"
} }
} }
@ -57,7 +57,7 @@ Item {
compare(pieSeries.sum, 0) compare(pieSeries.sum, 0)
compare(pieSeries.verticalPosition, 0.5) compare(pieSeries.verticalPosition, 0.5)
compare(pieSeries.angleSpanVisibleLimit, 0) compare(pieSeries.angleSpanVisibleLimit, 0)
compare(pieSeries.angleSpanVisibleMode, PieSeries.VisibleMode.First) compare(pieSeries.angleSpanLabelVisibility, PieSeries.LabelVisibility.First)
pieSeries.clear() pieSeries.clear()
} }
@ -162,7 +162,7 @@ Item {
for (let i = 0; i < count; i++) for (let i = 0; i < count; i++)
pieSeries.append("slice" + i, i + 0.1) // Produces angle span range from ~0.8 to ~71.2 pieSeries.append("slice" + i, i + 0.1) // Produces angle span range from ~0.8 to ~71.2
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.None pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.None
compare(modeChangedSpy.count, 1) compare(modeChangedSpy.count, 1)
pieSeries.angleSpanVisibleLimit = 20 pieSeries.angleSpanVisibleLimit = 20
@ -181,7 +181,7 @@ Item {
visiblecount += pieSeries.at(i).labelVisible visiblecount += pieSeries.at(i).labelVisible
compare(visiblecount, 5) compare(visiblecount, 5)
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.First pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.First
compare(modeChangedSpy.count, 2) compare(modeChangedSpy.count, 2)
pieSeries.angleSpanVisibleLimit = 75 // This covers all the slices pieSeries.angleSpanVisibleLimit = 75 // This covers all the slices
@ -192,7 +192,7 @@ Item {
visiblecount += pieSeries.at(i).labelVisible visiblecount += pieSeries.at(i).labelVisible
compare(visiblecount, 1) compare(visiblecount, 1)
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.Even pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.Even
compare(modeChangedSpy.count, 3) compare(modeChangedSpy.count, 3)
visiblecount = 0 visiblecount = 0

View File

@ -86,19 +86,19 @@ Item {
onCurrentIndexChanged: { onCurrentIndexChanged: {
switch (currentIndex) { switch (currentIndex) {
case 0: { case 0: {
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.None pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.None
break break
} }
case 1: { case 1: {
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.First pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.First
break break
} }
case 2: { case 2: {
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.Odd pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.Odd
break break
} }
case 3: { case 3: {
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.Even pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.Even
break break
} }
} }