diff options
| author | 2020-05-27 23:09:30 +0200 | |
|---|---|---|
| committer | 2020-09-29 16:13:03 -0700 | |
| commit | 581eb1f563df9e7fa72371d936521e0bd55d9f18 (patch) | |
| tree | b269b6566f85aadcc0951fc8d40a0cbd2cdbf7e5 /desktop-widgets/filterwidget2.cpp | |
| parent | 2f5223035a9d43b933b0baf64823dab84b5d8cea (diff) | |
| download | subsurface-581eb1f563df9e7fa72371d936521e0bd55d9f18.tar.gz | |
filter: create a primitive "create filter preset" dialog
The dialog asks the user for a name and warns if the name
already exists, i.e. an old filter preset will be overwritten.
Possibly, this should contain an auto-completion facility in
the case that the user wants to overwrite old presets.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Diffstat (limited to 'desktop-widgets/filterwidget2.cpp')
| -rw-r--r-- | desktop-widgets/filterwidget2.cpp | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/desktop-widgets/filterwidget2.cpp b/desktop-widgets/filterwidget2.cpp index f1cd3263d..490892cc1 100644 --- a/desktop-widgets/filterwidget2.cpp +++ b/desktop-widgets/filterwidget2.cpp @@ -2,9 +2,11 @@ #include "desktop-widgets/filterconstraintwidget.h" #include "desktop-widgets/simplewidgets.h" #include "desktop-widgets/mainwindow.h" +#include "commands/command.h" #include "core/qthelper.h" #include "core/divelist.h" #include "core/settings/qPrefUnit.h" +#include "core/filterpreset.h" #include <QDoubleSpinBox> @@ -100,19 +102,38 @@ void FilterWidget2::closeFilter() MainWindow::instance()->setApplicationState(ApplicationState::Default); } -void FilterWidget2::updateFilter() +FilterData FilterWidget2::createFilterData() const { - if (ignoreSignal) - return; - FilterData filterData; filterData.fulltextStringMode = (StringFilterMode)ui.fulltextStringMode->currentIndex(); filterData.fullText = ui.fullText->text(); filterData.constraints = constraintModel.getConstraints(); + return filterData; +} + +void FilterWidget2::updateFilter() +{ + if (ignoreSignal) + return; + + FilterData filterData = createFilterData(); validFilter = filterData.validFilter(); DiveFilter::instance()->setFilter(filterData); } +void FilterWidget2::on_addSetButton_clicked() +{ + AddFilterPresetDialog dialog(this); + QString name = dialog.doit(); + if (name.isEmpty()) + return; + int idx = filter_preset_id(name); + if (idx >= 0) + Command::editFilterPreset(idx, createFilterData()); + else + Command::createFilterPreset(name, createFilterData()); +} + void FilterWidget2::showEvent(QShowEvent *event) { QWidget::showEvent(event); |