Confirmation for exit while usaved file opened

This commit is contained in:
Artem30801
2020-01-26 20:20:28 +03:00
parent 0d39727425
commit 97a3b2f23f

View File

@@ -731,6 +731,7 @@ class ConfigDialog(QtWidgets.QDialog):
super(ConfigDialog, self).__init__(parent)
self.ui = config_editor.Ui_config_dialog()
self.model = ConfigModel(widget=self)
self.unsaved = False
self.setupUi()
self.copter_editor_signal.connect(self._call_copter_dialog)
@@ -744,6 +745,8 @@ class ConfigDialog(QtWidgets.QDialog):
self.ui.config_view.resizeColumnToContents(0)
self.ui.config_view.resizeColumnToContents(1)
self.model.dataChanged.connect(self.unsaved_call) # connect after setup
def setupUi(self):
self.ui.setupUi(self)
@@ -758,6 +761,26 @@ class ConfigDialog(QtWidgets.QDialog):
# self.ui.delete_button.pressed.connect(self.remove_selected)
def unsaved_call(self):
name = self.windowTitle()+'*'
self.setWindowTitle(name)
self.unsaved = True
self.model.dataChanged.disconnect(self.unsaved_call)
def closeEvent(self, event):
if not self.unsaved or self.result():
event.accept()
return
reply = QMessageBox.question(self, "Confirm exit", "There are unsaved changes in config file. "
"Are you sure you want to exit?",
QMessageBox.No | QMessageBox.Yes, QMessageBox.No)
if reply != QMessageBox.Yes:
event.ignore()
else:
event.accept()
def edit_caution(self):
reply = QMessageBox().warning(self, "Editing caution",
"Are you sure you want to edit section/option name? "