aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Berthold Stoeger <bstoeger@mail.tuwien.ac.at>2020-09-06 23:53:31 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2020-09-29 16:13:03 -0700
commitd064f786088ff2aeb44a5b82b3d9743d0d978fc0 (patch)
tree3d25397db4fe68383c2acce2bced057b739c0264
parent8f898477cbaf3a1c8972ef4ad67321e27d543f5c (diff)
downloadsubsurface-d064f786088ff2aeb44a5b82b3d9743d0d978fc0.tar.gz
filter: when a filter preset is selected, suggest its name on save
The goal here is to let the user edit already existing sets and save them using their old name. This is a stop-gap measure until we get a proper filter-set editing interface. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
-rw-r--r--desktop-widgets/filterwidget2.cpp10
-rw-r--r--desktop-widgets/simplewidgets.cpp3
-rw-r--r--desktop-widgets/simplewidgets.h2
3 files changed, 12 insertions, 3 deletions
diff --git a/desktop-widgets/filterwidget2.cpp b/desktop-widgets/filterwidget2.cpp
index 26cb05c2a..29a024d14 100644
--- a/desktop-widgets/filterwidget2.cpp
+++ b/desktop-widgets/filterwidget2.cpp
@@ -198,7 +198,15 @@ void FilterWidget2::updateFilter()
void FilterWidget2::on_addSetButton_clicked()
{
- AddFilterPresetDialog dialog(this);
+ // If there is a selected item, suggest that to the user.
+ // Thus, if the user selects an item and modify the filter,
+ // they can simply overwrite the preset.
+ QString selectedPreset;
+ QModelIndexList selection = ui.presetTable->selectionModel()->selectedRows();
+ if (selection.size() == 1)
+ selectedPreset = filter_preset_name_qstring(selection[0].row());
+
+ AddFilterPresetDialog dialog(selectedPreset, this);
QString name = dialog.doit();
if (name.isEmpty())
return;
diff --git a/desktop-widgets/simplewidgets.cpp b/desktop-widgets/simplewidgets.cpp
index bbce159b6..6eaab2eef 100644
--- a/desktop-widgets/simplewidgets.cpp
+++ b/desktop-widgets/simplewidgets.cpp
@@ -480,9 +480,10 @@ void DiveComponentSelection::buttonClicked(QAbstractButton *button)
}
}
-AddFilterPresetDialog::AddFilterPresetDialog(QWidget *parent)
+AddFilterPresetDialog::AddFilterPresetDialog(const QString &defaultName, QWidget *parent)
{
ui.setupUi(this);
+ ui.name->setText(defaultName);
connect(ui.name, &QLineEdit::textChanged, this, &AddFilterPresetDialog::nameChanged);
connect(ui.buttonBox, &QDialogButtonBox::accepted, this, &AddFilterPresetDialog::accept);
connect(ui.buttonBox, &QDialogButtonBox::rejected, this, &AddFilterPresetDialog::reject);
diff --git a/desktop-widgets/simplewidgets.h b/desktop-widgets/simplewidgets.h
index d68c14bd4..c88ddd5f4 100644
--- a/desktop-widgets/simplewidgets.h
+++ b/desktop-widgets/simplewidgets.h
@@ -142,7 +142,7 @@ private:
class AddFilterPresetDialog : public QDialog {
Q_OBJECT
public:
- explicit AddFilterPresetDialog(QWidget *parent);
+ explicit AddFilterPresetDialog(const QString &defaultName, QWidget *parent);
QString doit(); // returns name of filter preset or empty string if user cancelled the dialog
private
slots: