diff --git a/qt.py b/qt.py index 12a1f03..fa3abe1 100644 --- a/qt.py +++ b/qt.py @@ -624,7 +624,11 @@ class BalWindow(Logger): def delete_heirs(self, heirs): for heir in heirs: - del self.heirs[heir] + try: + del self.heirs[heir] + except Exception as e: + _logger.debug(f"error deleting heir: {heir} {e}") + pass self.heirs.save() self.heir_list.update() return True @@ -1687,7 +1691,7 @@ class BalWizardHeirsWidget(BalWizardWidget): ) def get_content(self): - self.heirs_list = HeirList(self.bal_window, self.parent) + self.heirs_list = HeirList(self.bal_window, self) button_add = QPushButton(_("Add")) button_add.clicked.connect(self.add_heir) button_import = QPushButton(_("Import")) @@ -2532,6 +2536,10 @@ class HeirList(MyTreeView, MessageBoxMixin): except Exception: self.update() + def delete_heirs(self,selected_keys): + self.bal_window.delete_heirs(selected_keys) + self.update() + def create_menu(self, position): menu = QMenu() idx = self.indexAt(position) @@ -2560,7 +2568,7 @@ class HeirList(MyTreeView, MessageBoxMixin): lambda p=persistent: self.edit(QModelIndex(p)), ) menu.addAction( - _("Delete"), lambda: self.bal_window.delete_heirs(selected_keys) + _("Delete"), lambda: self.delete_heirs(selected_keys) ) menu.exec(self.viewport().mapToGlobal(position)) @@ -2571,8 +2579,6 @@ class HeirList(MyTreeView, MessageBoxMixin): # selected_keys.append(sel_key) # return selected_keys def update(self): - if self.maybe_defer_update(): - return current_key = self.get_role_data_for_current_item( col=self.Columns.NAME, role=self.ROLE_HEIR_KEY ) @@ -2610,6 +2616,7 @@ class HeirList(MyTreeView, MessageBoxMixin): set_current = QPersistentModelIndex(idx) self.set_current_idx(set_current) # FIXME refresh loses sort order; so set "default" here: + self.repaint() self.filter() run_hook("update_heirs_tab", self) self.update_will_settings()