From ff9f0c10b6dfbeb27545b197f1ffbdfea33b4339 Mon Sep 17 00:00:00 2001 From: Salvo 'LtWorf' Tomaselli Date: Sun, 23 Aug 2020 11:25:50 +0200 Subject: [PATCH] Do not crash when editing relations containing None --- relational_gui/creator.py | 8 ++++---- relational_gui/guihandler.py | 12 +++++++++--- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/relational_gui/creator.py b/relational_gui/creator.py index 5b7a32f..42b87f5 100644 --- a/relational_gui/creator.py +++ b/relational_gui/creator.py @@ -52,13 +52,13 @@ class creatorForm(QtWidgets.QDialog): for i in rel.content: self.table.insertRow(self.table.rowCount()) - for j in range(len(i)): + for j, value in enumerate(i): + if value is None: + raise Exception('Relation contains a None value and cannot be edited from the GUI') item = QtWidgets.QTableWidgetItem() - item.setText(i[j]) + item.setText(str(value)) self.table.setItem(self.table.rowCount() - 1, j, item) - pass - def setup_empty(self): self.table.insertColumn(0) self.table.insertColumn(0) diff --git a/relational_gui/guihandler.py b/relational_gui/guihandler.py index ac4d7a0..a77b1c5 100644 --- a/relational_gui/guihandler.py +++ b/relational_gui/guihandler.py @@ -312,9 +312,15 @@ class relForm(QtWidgets.QMainWindow): def editRelation(self): from relational_gui import creator for i in self.ui.lstRelations.selectedItems(): - result = creator.edit_relation( - self.user_interface.get_relation(i.text()) - ) + try: + result = creator.edit_relation( + self.user_interface.get_relation(i.text()) + ) + except Exception as e: + QtWidgets.QMessageBox.warning( + self, QtWidgets.QApplication.translate("Form", "Error"), str(e) + ) + return if result != None: self.user_interface.set_relation(i.text(), result) self.updateRelations()