KQuickCharts

ArraySource.cpp
1/*
2 * This file is part of KQuickCharts
3 * SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl>
4 *
5 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
6 */
7
8#include "ArraySource.h"
9
11 : ChartDataSource(parent)
12{
13}
14
15int ArraySource::itemCount() const
16{
17 return m_array.count();
18}
19
20QVariant ArraySource::item(int index) const
21{
22 if (!m_wrap && (index < 0 || index > m_array.count() - 1)) {
23 return {};
24 }
25
26 return m_array.at(index % m_array.count());
27}
28
29QVariant ArraySource::minimum() const
30{
31 auto itr = std::min_element(m_array.cbegin(), m_array.cend(), variantCompare);
32 if (itr != m_array.cend()) {
33 return *itr;
34 }
35 return QVariant{};
36}
37
38QVariant ArraySource::maximum() const
39{
40 auto itr = std::max_element(m_array.cbegin(), m_array.cend(), variantCompare);
41 if (itr != m_array.cend()) {
42 return *itr;
43 }
44 return QVariant{};
45}
46
47QVariantList ArraySource::array() const
48{
49 return m_array;
50}
51
52bool ArraySource::wrap() const
53{
54 return m_wrap;
55}
56
57void ArraySource::setArray(const QVariantList &array)
58{
59 if (m_array == array) {
60 return;
61 }
62
63 m_array = array;
64 Q_EMIT dataChanged();
65}
66
67void ArraySource::setWrap(bool wrap)
68{
69 if (m_wrap == wrap) {
70 return;
71 }
72
73 m_wrap = wrap;
74 Q_EMIT dataChanged();
75}
76
77#include "moc_ArraySource.cpp"
ArraySource(QObject *parent=nullptr)
Constructor.
Abstract base class for data sources.
Q_EMITQ_EMIT
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:13:57 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.