summaryrefslogtreecommitdiffstats
path: root/desktop-widgets/statswidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets/statswidget.cpp')
-rw-r--r--desktop-widgets/statswidget.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/desktop-widgets/statswidget.cpp b/desktop-widgets/statswidget.cpp
index 33174778d..b74a26863 100644
--- a/desktop-widgets/statswidget.cpp
+++ b/desktop-widgets/statswidget.cpp
@@ -84,6 +84,8 @@ StatsWidget::StatsWidget(QWidget *parent) : QWidget(parent)
connect(ui.var1Binner, QOverload<int>::of(&QComboBox::activated), this, &StatsWidget::var1BinnerChanged);
connect(ui.var2Binner, QOverload<int>::of(&QComboBox::activated), this, &StatsWidget::var2BinnerChanged);
connect(ui.var2Operation, QOverload<int>::of(&QComboBox::activated), this, &StatsWidget::var2OperationChanged);
+ connect(ui.restrictButton, &QToolButton::clicked, this, &StatsWidget::restrict);
+ connect(ui.unrestrictButton, &QToolButton::clicked, this, &StatsWidget::unrestrict);
ui.stats->setSource(urlStatsView);
ui.stats->setResizeMode(QQuickWidget::SizeRootObjectToView);
@@ -141,6 +143,18 @@ void StatsWidget::updateUi()
view->plot(state);
}
+void StatsWidget::updateRestrictionLabel()
+{
+ if (!view)
+ return;
+ int num = view->restrictionCount();
+ if (num < 0)
+ ui.restrictionLabel->setText(tr("Analyzing all dives"));
+ else
+ ui.restrictionLabel->setText(tr("Analyzing subset (%L1) dives").arg(num));
+ ui.unrestrictButton->setEnabled(num > 0);
+}
+
void StatsWidget::closeStats()
{
MainWindow::instance()->setApplicationState(ApplicationState::Default);
@@ -192,6 +206,21 @@ void StatsWidget::featureChanged(int idx, bool status)
void StatsWidget::showEvent(QShowEvent *e)
{
+ unrestrict();
updateUi();
QWidget::showEvent(e);
}
+
+void StatsWidget::restrict()
+{
+ if (view)
+ view->restrictToSelection();
+ updateRestrictionLabel();
+}
+
+void StatsWidget::unrestrict()
+{
+ if (view)
+ view->unrestrict();
+ updateRestrictionLabel();
+}