diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2021-01-03 16:57:59 -0800 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2021-01-03 16:58:01 -0800 |
commit | 1f1d82b1b3fa1feb76f86eaf3bee3dfef9d62dbe (patch) | |
tree | b5bf89a2c907f2f0ee599f3870f9fe6475e0b9f8 /stats/statsview.cpp | |
parent | 6a6dd0888ad91ff85a580c12d469afff1789788e (diff) | |
download | subsurface-1f1d82b1b3fa1feb76f86eaf3bee3dfef9d62dbe.tar.gz |
statistics: don't crash if the QCharts QML modules aren't found
We don't really give a user visible error message which is kind of a problem,
but at least we don't crash anymore.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'stats/statsview.cpp')
-rw-r--r-- | stats/statsview.cpp | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/stats/statsview.cpp b/stats/statsview.cpp index 490e37385..6dd858e96 100644 --- a/stats/statsview.cpp +++ b/stats/statsview.cpp @@ -65,14 +65,18 @@ StatsView::StatsView(QWidget *parent) : QQuickWidget(parent), eventFilter(this) { setResizeMode(QQuickWidget::SizeRootObjectToView); + // if we get a failure to load the QML file (e.g., when the QtCharts QML modules aren't found) + // the chart will be null setSource(urlStatsView); chart = getChart(rootObject()); - connect(chart, &QtCharts::QChart::plotAreaChanged, this, &StatsView::plotAreaChanged); - connect(&diveListNotifier, &DiveListNotifier::numShownChanged, this, &StatsView::replotIfVisible); + if (chart) { + connect(chart, &QtCharts::QChart::plotAreaChanged, this, &StatsView::plotAreaChanged); + connect(&diveListNotifier, &DiveListNotifier::numShownChanged, this, &StatsView::replotIfVisible); - chart->installEventFilter(&eventFilter); - chart->setAcceptHoverEvents(true); - chart->legend()->setVisible(false); + chart->installEventFilter(&eventFilter); + chart->setAcceptHoverEvents(true); + chart->legend()->setVisible(false); + } } StatsView::~StatsView() |