diff options
author | Berthold Stoeger <bstoeger@mail.tuwien.ac.at> | 2020-05-27 23:09:30 +0200 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2020-09-29 16:13:03 -0700 |
commit | 581eb1f563df9e7fa72371d936521e0bd55d9f18 (patch) | |
tree | b269b6566f85aadcc0951fc8d40a0cbd2cdbf7e5 /desktop-widgets/simplewidgets.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/simplewidgets.cpp')
-rw-r--r-- | desktop-widgets/simplewidgets.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/desktop-widgets/simplewidgets.cpp b/desktop-widgets/simplewidgets.cpp index b18c43bf5..153d3239e 100644 --- a/desktop-widgets/simplewidgets.cpp +++ b/desktop-widgets/simplewidgets.cpp @@ -12,6 +12,7 @@ #include <QClipboard> #include "core/file.h" +#include "core/filterpreset.h" #include "core/divesite.h" #include "desktop-widgets/mainwindow.h" #include "core/qthelper.h" @@ -478,6 +479,31 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button) } } +AddFilterPresetDialog::AddFilterPresetDialog(QWidget *parent) +{ + ui.setupUi(this); + connect(ui.name, &QLineEdit::textChanged, this, &AddFilterPresetDialog::nameChanged); + connect(ui.buttonBox, &QDialogButtonBox::accepted, this, &AddFilterPresetDialog::accept); + connect(ui.buttonBox, &QDialogButtonBox::rejected, this, &AddFilterPresetDialog::reject); + nameChanged(ui.name->text()); +} + +void AddFilterPresetDialog::nameChanged(const QString &text) +{ + QString trimmed = text.trimmed(); + bool isEmpty = trimmed.isEmpty(); + bool exists = !isEmpty && filter_preset_id(trimmed) >= 0; + ui.duplicateWarning->setVisible(exists); + ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!isEmpty); +} + +QString AddFilterPresetDialog::doit() +{ + if (exec() == QDialog::Accepted) + return ui.name->text().trimmed(); + return QString(); +} + TextHyperlinkEventFilter::TextHyperlinkEventFilter(QTextEdit *txtEdit) : QObject(txtEdit), textEdit(txtEdit), scrollView(textEdit->viewport()) |