// Copyright (C) 2023 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #ifndef THEMEWIDGET_H #define THEMEWIDGET_H #include "contentwidget.h" QT_FORWARD_DECLARE_CLASS(QChart) QT_FORWARD_DECLARE_CLASS(QChartView) QT_FORWARD_DECLARE_CLASS(Ui_ThemeWidgetForm); typedef QPair Data; typedef QList DataList; typedef QList DataTable; class ThemeWidget: public ContentWidget { Q_OBJECT public: explicit ThemeWidget(QWidget *parent = nullptr); ~ThemeWidget(); private slots: void updateUI(); private: DataTable generateRandomData(int listCount, int valueMax, int valueCount) const; void populateThemeBox(); void populateAnimationBox(); void populateLegendBox(); void connectSignals(); QChart *createAreaChart() const; QChart *createBarChart(int valueCount) const; QChart *createPieChart() const; QChart *createLineChart() const; QChart *createSplineChart() const; QChart *createScatterChart() const; private: int m_listCount; int m_valueMax; int m_valueCount; QList m_charts; DataTable m_dataTable; Ui_ThemeWidgetForm *m_ui; }; #endif