diff --git a/sohstationviewer/view/db_config/channel_dialog.py b/sohstationviewer/view/db_config/channel_dialog.py index 4f49ca40560266bfe6ee7d74223d9695d089570a..2295442b5b7b422d5babfbe2fbaf1998e41c0d34 100755 --- a/sohstationviewer/view/db_config/channel_dialog.py +++ b/sohstationviewer/view/db_config/channel_dialog.py @@ -85,7 +85,6 @@ class ChannelDialog(UiDBInfoDialog): """ old_data_type = self.data_type self.data_type = self.data_type_combo_box.currentText() - self.update_data_table_widget_items() self.delete_sql_supplement = f" AND dataType='{self.data_type}'" self.insert_sql_template = self.insert_sql_template.replace( old_data_type, self.data_type @@ -113,6 +112,7 @@ class ChannelDialog(UiDBInfoDialog): if not self.has_changes(): self.get_data_type_from_selector() + self.update_data_table_widget_items() return unsaved_changes_prompt = ( @@ -132,6 +132,7 @@ class ChannelDialog(UiDBInfoDialog): self.untrack_changes() pass self.get_data_type_from_selector() + self.update_data_table_widget_items() else: # Cover both the case where the cancel button is pressed and the # case where the exit button is pressed. diff --git a/sohstationviewer/view/db_config/db_config_dialog.py b/sohstationviewer/view/db_config/db_config_dialog.py index e31b7a04ef49376c075e3b1e239b6a1b80b07c0c..0454ab696f313ed76daefaea92f66d64f9932fab 100755 --- a/sohstationviewer/view/db_config/db_config_dialog.py +++ b/sohstationviewer/view/db_config/db_config_dialog.py @@ -316,10 +316,16 @@ class UiDBInfoDialog(OneWindowAtATimeDialog): self.save_changes_btn.clicked.connect(lambda: self.save_changes()) h_layout.addWidget(self.save_changes_btn) - self.close_btn = QtWidgets.QPushButton(self, text='CLOSE') - self.close_btn.setFixedWidth(300) - self.close_btn.clicked.connect(self.close) - h_layout.addWidget(self.close_btn) + self.reset_btn = QtWidgets.QPushButton(self, text='RESET') + reset_btn_style_sheet = self.reset_btn.styleSheet() + ( + 'QPushButton:enabled {' + ' color: #FF474C' + '}\n' + ) + self.reset_btn.setStyleSheet(reset_btn_style_sheet) + self.reset_btn.setFixedWidth(300) + self.reset_btn.clicked.connect(self.reset_changes) + h_layout.addWidget(self.reset_btn) return h_layout def create_data_table_widget(self): @@ -601,6 +607,21 @@ class UiDBInfoDialog(OneWindowAtATimeDialog): """ pass + def reset_changes(self): + if self.has_changes(): + reset_prompt = ('Do you want to reset all changes you made? All ' + 'unsaved changes will be discarded.') + choice = QMessageBox.question(self, 'Resetting changes', + reset_prompt, + QMessageBox.StandardButton.Reset | + QMessageBox.StandardButton.Cancel + ) + if choice == QMessageBox.StandardButton.Cancel: + self.data_table_widget.setUpdatesEnabled(True) + return False + self.untrack_changes() + self.update_data_table_widget_items() + def has_changes(self): """ Check whether the user has made a change in the data table.