File indexing completed on 2023-09-24 08:38:42
0001 /* 0002 * Copyright 2014 Sebastian Gottfried <sebastiangottfried@web.de> 0003 * 0004 * This library is free software; you can redistribute it and/or 0005 * modify it under the terms of the GNU Lesser General Public 0006 * License as published by the Free Software Foundation; either 0007 * version 2.1 of the License, or (at your option) version 3, or any 0008 * later version accepted by the membership of KDE e.V. (or its 0009 * successor approved by the membership of KDE e.V.), which shall 0010 * act as a proxy defined in Section 6 of version 3 of the license. 0011 * 0012 * This library is distributed in the hope that it will be useful, 0013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 0015 * Lesser General Public License for more details. 0016 * 0017 * You should have received a copy of the GNU Lesser General Public 0018 */ 0019 0020 #ifndef LINECHARTPOINT_H 0021 #define LINECHARTPOINT_H 0022 0023 #include <QQuickPaintedItem> 0024 0025 class LineChartCore; 0026 class LineChartBackgroundPainter; 0027 0028 class LineChartPoint : public QQuickPaintedItem 0029 { 0030 Q_OBJECT 0031 Q_PROPERTY(LineChartCore* lineChartCore READ lineChartCore WRITE setLineChartCore NOTIFY lineChartCoreChanged) 0032 Q_PROPERTY(LineChartBackgroundPainter* backgroundPainter READ backgroundPainter WRITE setBackgroundPainter NOTIFY backgroundPainterChanged) 0033 Q_PROPERTY(int dimension READ dimension WRITE setDimension NOTIFY dimensionChanged) 0034 Q_PROPERTY(int row READ row WRITE setRow NOTIFY rowChanged) 0035 Q_PROPERTY(QString text READ text NOTIFY textChanged) 0036 public: 0037 explicit LineChartPoint(QQuickItem* parent = nullptr); 0038 LineChartCore* lineChartCore() const; 0039 void setLineChartCore(LineChartCore* lineChartCore); 0040 LineChartBackgroundPainter* backgroundPainter() const; 0041 void setBackgroundPainter(LineChartBackgroundPainter* backgroundPainter); 0042 int dimension() const; 0043 void setDimension(int dimension); 0044 int row() const; 0045 void setRow(int row); 0046 QString text() const; 0047 void paint(QPainter* painter) override; 0048 Q_SIGNALS: 0049 void lineChartCoreChanged(); 0050 void backgroundPainterChanged(); 0051 void dimensionChanged(); 0052 void rowChanged(); 0053 void textChanged(); 0054 void maxYChanged(); 0055 private Q_SLOTS: 0056 void triggerUpdate(); 0057 private: 0058 void updateGeometry(); 0059 bool valid() const; 0060 LineChartCore* m_lineChartCore; 0061 LineChartBackgroundPainter* m_backgroundPainter; 0062 int m_dimension; 0063 int m_row; 0064 }; 0065 0066 #endif // LINECHARTPOINT_H