Skip to content

Commit deb9df5

Browse files
committed
fix: not all resource name edits were recognized in upload dialog (#84)
1 parent 29ebe7d commit deb9df5

4 files changed

Lines changed: 16 additions & 10 deletions

File tree

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
0.17.2
2+
- fix: not all resource name edits were recognized in upload dialog (#84)
23
- fix: check for existence of DC resources before starting uploads (#85)
34
- enh: sort resources according to internal basin dependencies (#79)
45
- enh: warn user about too many resources in a dataset (#86)

dcoraid/gui/logs/widget_log.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ def __init__(self, *args, **kwargs):
7777
self.comboBox_level.setCurrentIndex(0 if is_dev_version else 1)
7878

7979
self.new_message.connect(self.add_colored_item)
80-
self.lineEdit_filter.textChanged.connect(self.on_filter_changed)
80+
self.lineEdit_filter.textEdited.connect(self.on_filter_changed)
8181
self.comboBox_level.currentIndexChanged.connect(
8282
self.on_filter_changed)
8383
self.toolButton_dir.clicked.connect(self.on_log_dir_open)

dcoraid/gui/upload/dlg_upload.py

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,13 +113,13 @@ def __init__(self, *args, **kwargs):
113113
self.toolButton_rem.clicked.connect(self.on_rem_resources)
114114
self.pushButton_proceed.clicked.connect(self.on_proceed)
115115
# resource-related signals
116-
self.lineEdit_res_filename.textChanged.connect(
116+
self.lineEdit_res_filename.textEdited.connect(
117117
self.on_update_resources_model)
118118
self.widget_schema.schema_changed.connect(
119119
self.on_update_resources_model)
120120
self.selModel.selectionChanged.connect(self.on_selection_changed)
121121
# do not allow to proceed without a title
122-
self.lineEdit_authors.textChanged.connect(self.on_authors_edited)
122+
self.lineEdit_authors.textEdited.connect(self.on_authors_edited)
123123
self.on_authors_edited("") # initial state
124124
# if the user changes the preset combobox text, offer them
125125
# to save it as a preset
@@ -408,9 +408,7 @@ def on_selection_changed(self):
408408
self.groupBox_res_info.show()
409409
# populate
410410
path, data = self.rvmodel.get_data_for_index(sel[0])
411-
self.lineEdit_res_filename.blockSignals(True)
412411
self.lineEdit_res_filename.setText(data["file"]["filename"])
413-
self.lineEdit_res_filename.blockSignals(False)
414412
self.lineEdit_res_path.setText(path)
415413
else: # hide resource options
416414
self.groupBox_res_info.hide()
@@ -440,11 +438,18 @@ def on_update_resources_model(self):
440438
fn = self.lineEdit_res_filename.text()
441439
if not fn.endswith(suffix):
442440
fn += suffix
443-
self.lineEdit_res_filename.blockSignals(True)
444441
self.lineEdit_res_filename.setText(fn)
445-
self.lineEdit_res_filename.blockSignals(False)
446-
if fn != path.name: # only update filename if user changed it
447-
data_dict["file"] = {"filename": fn}
442+
# In DCOR-Aid <= 0.17.1, we had an additional check for whether
443+
# the `path` in the model is different to `fn`. There probably
444+
# were race conditions which caused the model to be updated
445+
# while we were checking this here. So the solution is to not
446+
# check for changes and always pass through the user input. We
447+
# also moved away from `textChanged` signals to `textEdited`
448+
# signals. `textEdited` means user-edited while `textChanged`
449+
# also includes programmatical changes (we used to block signals
450+
# for the lineEdit which we now don't have to do anymore).
451+
# See issue #84.
452+
data_dict["file"] = {"filename": fn}
448453
# collect supplementary resource data
449454
schema = self.widget_schema.get_current_schema()
450455
if schema: # only update supplement if user made changes

dcoraid/gui/upload/widget_supplement_item.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ def __init__(self, *args, **kwargs):
170170
self.checkBox.clicked.connect(self.on_value_changed)
171171
self.spinBox.valueChanged.connect(self.on_value_changed)
172172
self.doubleSpinBox.valueChanged.connect(self.on_value_changed)
173-
self.lineEdit.textChanged.connect(self.on_value_changed)
173+
self.lineEdit.textEdited.connect(self.on_value_changed)
174174
self.plainTextEdit.textChanged.connect(self.on_value_changed)
175175
self.comboBox.currentTextChanged.connect(self.on_value_changed)
176176
self.radioButton_yes.clicked.connect(self.on_value_changed)

0 commit comments

Comments
 (0)