Warning, file /frameworks/kquickcharts/src/datasource/ArraySource.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  * This file is part of KQuickCharts
0003  * SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0006  */
0007 
0008 #include "ArraySource.h"
0009 
0010 ArraySource::ArraySource(QObject *parent)
0011     : ChartDataSource(parent)
0012 {
0013 }
0014 
0015 int ArraySource::itemCount() const
0016 {
0017     return m_array.count();
0018 }
0019 
0020 QVariant ArraySource::item(int index) const
0021 {
0022     if (!m_wrap && (index < 0 || index > m_array.count() - 1)) {
0023         return {};
0024     }
0025 
0026     return m_array.at(index % m_array.count());
0027 }
0028 
0029 QVariant ArraySource::minimum() const
0030 {
0031     auto itr = std::min_element(m_array.cbegin(), m_array.cend(), variantCompare);
0032     if (itr != m_array.cend()) {
0033         return *itr;
0034     }
0035     return QVariant{};
0036 }
0037 
0038 QVariant ArraySource::maximum() const
0039 {
0040     auto itr = std::max_element(m_array.cbegin(), m_array.cend(), variantCompare);
0041     if (itr != m_array.cend()) {
0042         return *itr;
0043     }
0044     return QVariant{};
0045 }
0046 
0047 QVariantList ArraySource::array() const
0048 {
0049     return m_array;
0050 }
0051 
0052 bool ArraySource::wrap() const
0053 {
0054     return m_wrap;
0055 }
0056 
0057 void ArraySource::setArray(const QVariantList &array)
0058 {
0059     if (m_array == array) {
0060         return;
0061     }
0062 
0063     m_array = array;
0064     Q_EMIT dataChanged();
0065 }
0066 
0067 void ArraySource::setWrap(bool wrap)
0068 {
0069     if (m_wrap == wrap) {
0070         return;
0071     }
0072 
0073     m_wrap = wrap;
0074     Q_EMIT dataChanged();
0075 }
0076 
0077 #include "moc_ArraySource.cpp"