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.
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
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 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
regardless of the \l {angleSpanVisibleMode}.
regardless of the \l {angleSpanLabelVisibility}.
\sa angleSpanVisibleMode
\sa angleSpanLabelVisibility
*/
/*!
\property QPieSeries::angleSpanVisibleMode
\property QPieSeries::angleSpanLabelVisibility
\since 6.10
\brief The mode for label visibility.
@ -344,7 +344,7 @@ QT_BEGIN_NAMESPACE
*/
/*!
\qmlproperty enumeration PieSeries::angleSpanVisibleMode
\qmlproperty enumeration PieSeries::angleSpanLabelVisibility
\since 6.10
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.
\value PieSeries.VisibleMode.None
\value PieSeries.LabelVisibility.None
All of the labels of slices with smaller angle span than the \l angleSpanVisibleLimit
will be hidden.
\value PieSeries.VisibleMode.First
\value PieSeries.LabelVisibility.First
All except the first label of consecutive slices with smaller angle span than
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
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
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
The mode for label visibility.
@ -514,7 +514,7 @@ QT_BEGIN_NAMESPACE
*/
/*!
\qmlsignal PieSeries::angleSpanVisibleModeChanged()
\qmlsignal PieSeries::angleSpanLabelVisibilityChanged()
\since 6.10
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();
}
QPieSeries::VisibleMode QPieSeries::angleSpanVisibleMode() const
QPieSeries::LabelVisibility QPieSeries::angleSpanLabelVisibility() const
{
Q_D(const QPieSeries);
return d->m_angleSpanVisibleMode;
}
void QPieSeries::setAngleSpanVisibleMode(QPieSeries::VisibleMode newAngleSpanVisibleMode)
void QPieSeries::setAngleSpanLabelVisibility(QPieSeries::LabelVisibility newAngleSpanVisibleMode)
{
Q_D(QPieSeries);
if (d->m_angleSpanVisibleMode == newAngleSpanVisibleMode) {
qCDebug(lcProperties2D) << "QPieSeries::setAngleSpanVisibleMode. Mode is already set to: "
qCDebug(lcProperties2D) << "QPieSeries::setAngleSpanLabelVisibility. Property is already set to: "
<< newAngleSpanVisibleMode;
return;
}
d->m_angleSpanVisibleMode = newAngleSpanVisibleMode;
d->updateData(true);
emit angleSpanVisibleModeChanged();
emit angleSpanLabelVisibilityChanged();
}
QPieSeriesPrivate::QPieSeriesPrivate()
@ -1204,7 +1204,7 @@ QPieSeriesPrivate::QPieSeriesPrivate()
, m_sum(0)
, m_holeRelativeSize(.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
qreal sliceAngle = m_pieStartAngle;
qreal pieSpan = m_pieEndAngle - m_pieStartAngle;
auto hideMode = q->angleSpanVisibleMode();
auto hideMode = q->angleSpanLabelVisibility();
bool hideNextSmallSlice = false;
for (QPieSlice *s : std::as_const(m_slices)) {
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
// Hide the label on this one if the mode matches
if (d->m_angleSpan < m_angleSpanVisibleLimit
&& ((!hideNextSmallSlice && hideMode == QPieSeries::VisibleMode::Even)
&& ((!hideNextSmallSlice && hideMode == QPieSeries::LabelVisibility::Even)
|| (hideNextSmallSlice
&& (hideMode == QPieSeries::VisibleMode::Odd
|| hideMode == QPieSeries::VisibleMode::First))
|| hideMode == QPieSeries::VisibleMode::None)) {
&& (hideMode == QPieSeries::LabelVisibility::Odd
|| hideMode == QPieSeries::LabelVisibility::First))
|| hideMode == QPieSeries::LabelVisibility::None)) {
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
hideNextSmallSlice = d->m_angleSpan < m_angleSpanVisibleLimit;
} 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 angleSpanVisibleLimit READ angleSpanVisibleLimit WRITE setAngleSpanVisibleLimit
NOTIFY angleSpanVisibleLimitChanged REVISION(6, 10))
Q_PROPERTY(VisibleMode angleSpanVisibleMode READ angleSpanVisibleMode WRITE setAngleSpanVisibleMode
NOTIFY angleSpanVisibleModeChanged REVISION(6, 10))
Q_PROPERTY(LabelVisibility angleSpanLabelVisibility READ angleSpanLabelVisibility
WRITE setAngleSpanLabelVisibility NOTIFY angleSpanLabelVisibilityChanged REVISION(6, 10))
QML_NAMED_ELEMENT(PieSeries)
public:
enum class VisibleMode {
enum class LabelVisibility {
None,
First,
Even,
Odd,
};
Q_ENUM(VisibleMode)
Q_ENUM(LabelVisibility)
explicit QPieSeries(QObject *parent = nullptr);
~QPieSeries() override;
@ -92,8 +92,8 @@ public:
qreal angleSpanVisibleLimit() const;
void setAngleSpanVisibleLimit(qreal newAngleSpanVisibleLimit);
VisibleMode angleSpanVisibleMode() const;
void setAngleSpanVisibleMode(VisibleMode newAngleSpanVisibleMode);
LabelVisibility angleSpanLabelVisibility() const;
void setAngleSpanLabelVisibility(LabelVisibility newAngleSpanVisibleMode);
public Q_SLOTS:
void handleSliceChange();
@ -121,7 +121,7 @@ Q_SIGNALS:
Q_REVISION(6, 9) void released(QPieSlice *slice);
Q_REVISION(6, 10) void angleSpanVisibleLimitChanged();
Q_REVISION(6, 10) void angleSpanVisibleModeChanged();
Q_REVISION(6, 10) void angleSpanLabelVisibilityChanged();
private:
friend class PieRenderer;

View File

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

View File

@ -64,7 +64,7 @@ void tst_qgpieseries::properties()
QSignalSpy opacitySpy(m_series, SIGNAL(opacityChanged()));
QSignalSpy valuesMultiplierSpy(m_series, SIGNAL(valuesMultiplierChanged()));
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->count() == 0);
@ -78,7 +78,7 @@ void tst_qgpieseries::properties()
QCOMPARE(m_series->opacity(), 1.0);
QCOMPARE(m_series->valuesMultiplier(), 1.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("s2", 1);
@ -164,12 +164,12 @@ void tst_qgpieseries::properties()
QCOMPARE(m_series->angleSpanVisibleLimit(), 10.0);
QCOMPARE(angleSpanVisibleLimitSpy.size(), 2);
m_series->setAngleSpanVisibleMode(QPieSeries::VisibleMode::None);
QCOMPARE(m_series->angleSpanVisibleMode(), QPieSeries::VisibleMode::None);
QCOMPARE(angleSpanVisibleModeSpy.size(), 1);
m_series->setAngleSpanVisibleMode(QPieSeries::VisibleMode::Even);
QCOMPARE(m_series->angleSpanVisibleMode(), QPieSeries::VisibleMode::Even);
QCOMPARE(angleSpanVisibleModeSpy.size(), 2);
m_series->setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::None);
QCOMPARE(m_series->angleSpanLabelVisibility(), QPieSeries::LabelVisibility::None);
QCOMPARE(angleSpanLabelVisibilitySpy.size(), 1);
m_series->setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::Even);
QCOMPARE(m_series->angleSpanLabelVisibility(), QPieSeries::LabelVisibility::Even);
QCOMPARE(angleSpanLabelVisibilitySpy.size(), 2);
}
void tst_qgpieseries::append()
@ -622,7 +622,7 @@ void tst_qgpieseries::adjust_limits_and_mode()
}
// Every slice label under the limit should be hidden
series.setAngleSpanVisibleMode(QPieSeries::VisibleMode::None);
series.setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::None);
series.setAngleSpanVisibleLimit(35);
for (const QPieSlice *slice : series.slices()) {
if (slice->angleSpan() < series.angleSpanVisibleLimit())
@ -645,7 +645,7 @@ void tst_qgpieseries::adjust_limits_and_mode()
QCOMPARE(visiblecount, 7);
// 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
visiblecount = 0;
for (const QPieSlice *slice : series.slices())
@ -659,7 +659,7 @@ void tst_qgpieseries::adjust_limits_and_mode()
QCOMPARE(visiblecount, 1);
// Every other label of slices under the limit should be visible
series.setAngleSpanVisibleMode(QPieSeries::VisibleMode::Odd);
series.setAngleSpanLabelVisibility(QPieSeries::LabelVisibility::Odd);
series.setAngleSpanVisibleLimit(36);
visiblecount = 0;
for (const QPieSlice *slice : series.slices())

View File

@ -41,7 +41,7 @@ Item {
SignalSpy {
id: modeChangedSpy
target: pieSeries
signalName: "angleSpanVisibleModeChanged"
signalName: "angleSpanLabelVisibilityChanged"
}
}
@ -57,7 +57,7 @@ Item {
compare(pieSeries.sum, 0)
compare(pieSeries.verticalPosition, 0.5)
compare(pieSeries.angleSpanVisibleLimit, 0)
compare(pieSeries.angleSpanVisibleMode, PieSeries.VisibleMode.First)
compare(pieSeries.angleSpanLabelVisibility, PieSeries.LabelVisibility.First)
pieSeries.clear()
}
@ -162,7 +162,7 @@ Item {
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.angleSpanVisibleMode = PieSeries.VisibleMode.None
pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.None
compare(modeChangedSpy.count, 1)
pieSeries.angleSpanVisibleLimit = 20
@ -181,7 +181,7 @@ Item {
visiblecount += pieSeries.at(i).labelVisible
compare(visiblecount, 5)
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.First
pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.First
compare(modeChangedSpy.count, 2)
pieSeries.angleSpanVisibleLimit = 75 // This covers all the slices
@ -192,7 +192,7 @@ Item {
visiblecount += pieSeries.at(i).labelVisible
compare(visiblecount, 1)
pieSeries.angleSpanVisibleMode = PieSeries.VisibleMode.Even
pieSeries.angleSpanLabelVisibility = PieSeries.LabelVisibility.Even
compare(modeChangedSpy.count, 3)
visiblecount = 0

View File

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