File indexing completed on 2024-05-19 05:55:48
0001 /* 0002 * SPDX-FileCopyrightText: 2020 Han Young <hanyoung@protonmail.com> 0003 * SPDX-FileCopyrightText: 2020 Devin Lin <espidev@gmail.com> 0004 * SPDX-FileCopyrightText: 2021 Nicolas Fella <nicolas.fella@gmx.de> 0005 * 0006 * SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #pragma once 0010 0011 #include <KWeatherCore/DailyWeatherForecast> 0012 0013 #include <QtGlobal> 0014 #include <qqmlregistration.h> 0015 0016 class QAbstractSeries; 0017 class QSplineSeries; 0018 class QDateTimeAxis; 0019 class QValueAxis; 0020 0021 class TemperatureChartData : public QObject 0022 { 0023 Q_OBJECT 0024 QML_ELEMENT 0025 Q_PROPERTY(QVariantList weatherData READ weatherData WRITE setWeatherData NOTIFY weatherDataChanged) 0026 Q_PROPERTY(double maxTempLimit READ maxTempLimit NOTIFY maxTempLimitChanged) 0027 Q_PROPERTY(double minTempLimit READ minTempLimit NOTIFY minTempLimitChanged) 0028 0029 public: 0030 QVariantList weatherData() const; 0031 void setWeatherData(const QVariantList &weatherData); 0032 0033 double maxTempLimit() const; 0034 double minTempLimit() const; 0035 0036 Q_INVOKABLE void initSeries(QAbstractSeries *series); 0037 Q_INVOKABLE void initAxes(QObject *axisX, QObject *axisY); 0038 0039 Q_SIGNALS: 0040 void weatherDataChanged(); 0041 void maxTempLimitChanged(); 0042 void minTempLimitChanged(); 0043 0044 private: 0045 void updateData(); 0046 0047 QVariantList m_weatherData; 0048 double m_maxTempLimit = 100; 0049 double m_minTempLimit = 0; 0050 0051 QSplineSeries *m_series = nullptr; 0052 QDateTimeAxis *m_axisX = nullptr; 0053 QValueAxis *m_axisY = nullptr; 0054 };