aboutsummaryrefslogtreecommitdiffstats
path: root/desktop-widgets/simplewidgets.cpp
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-05-27 23:09:30 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-09-29 16:13:03 -0700
commit581eb1f563df9e7fa72371d936521e0bd55d9f18 (patch)
treeb269b6566f85aadcc0951fc8d40a0cbd2cdbf7e5 /desktop-widgets/simplewidgets.cpp
parent2f5223035a9d43b933b0baf64823dab84b5d8cea (diff)
downloadsubsurface-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.cpp26
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())