summaryrefslogtreecommitdiffstats
path: root/examples/charts/chartsgallery/piedrilldownslice.cpp
blob: a8612cde0ebe6e38514a08e0c348e4a12b7e70ea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only

#include "piedrilldownslice.h"

PieDrilldownSlice::PieDrilldownSlice(qreal value, const QString &prefix, QAbstractSeries *drilldownSeries)
    : m_drilldownSeries(drilldownSeries),
      m_prefix(prefix)
{
    setValue(value);
    updateLabel();
    setLabelFont(QFont("Arial", 8));
    connect(this, &PieDrilldownSlice::percentageChanged, this, &PieDrilldownSlice::updateLabel);
    connect(this, &PieDrilldownSlice::hovered, this, &PieDrilldownSlice::showHighlight);
}

QAbstractSeries *PieDrilldownSlice::drilldownSeries() const
{
    return m_drilldownSeries;
}

void PieDrilldownSlice::updateLabel()
{
    setLabel(QStringLiteral("%1 $%2, %3%").arg(m_prefix,
                                               QString::number(value()),
                                               QString::number(percentage() * 100, 'f', 1)));
}

void PieDrilldownSlice::showHighlight(bool show)
{
    setLabelVisible(show);
    setExploded(show);
}