aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets
diff options
context:
space:
mode:
Diffstat (limited to 'desktop-widgets')
-rw-r--r--desktop-widgets/statswidget.cpp29
-rw-r--r--desktop-widgets/statswidget.h3
-rw-r--r--desktop-widgets/statswidget.ui26
3 files changed, 58 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();
+}
diff --git a/desktop-widgets/statswidget.h b/desktop-widgets/statswidget.h
index 51b94ac87..4ae86a015 100644
--- a/desktop-widgets/statswidget.h
+++ b/desktop-widgets/statswidget.h
@@ -25,11 +25,14 @@ slots:
void var2BinnerChanged(int);
void var2OperationChanged(int);
void featureChanged(int, bool);
+ void restrict();
+ void unrestrict();
private:
Ui::StatsWidget ui;
StatsState state;
StatsView *view;
void updateUi();
+ void updateRestrictionLabel();
std::vector<std::unique_ptr<QCheckBox>> features;
ChartListModel charts;
diff --git a/desktop-widgets/statswidget.ui b/desktop-widgets/statswidget.ui
index a20fb4a8f..27a10ffd3 100644
--- a/desktop-widgets/statswidget.ui
+++ b/desktop-widgets/statswidget.ui
@@ -96,6 +96,32 @@
</widget>
</item>
<item>
+ <widget class="QGroupBox" name="restrictionGroup">
+ <property name="title">
+ <string>Restriction</string>
+ </property>
+ <layout class="QVBoxLayout" name="chartLayout">
+ <item>
+ <widget class="QLabel" name="restrictionLabel" />
+ </item>
+ <item>
+ <widget class="QToolButton" name="restrictButton">
+ <property name="text">
+ <string>Restrict to selection</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QToolButton" name="unrestrictButton">
+ <property name="text">
+ <string>Reset restriction</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>