pamhyr: Catch some table data type exception (crash Fix).

This commit is contained in:
Pierre-Antoine Rouby committed 2023-08-04 10:40:32 +02:00
1 parent e8ae1c0631
commit 464209b6e5
21 files changed
+303 -190

No files matched your search

+9 -4
View File
@@ -17,6 +17,7 @@
# -*- coding: utf-8 -*-
import logging
import traceback
from datetime import date, time, datetime, timedelta
@@ -212,11 +213,15 @@ class TableModel(QAbstractTableModel):
row = index.row()
column = index.column()
self._undo.push(
SetDataCommand(
self._data, row, column, value
try:
self._undo.push(
SetDataCommand(
self._data, row, column, value
)
)
)
except Exception as e:
logger.info(e)
logger.debug(traceback.format_exc())
self.dataChanged.emit(index, index)
return True
@@ -33,7 +33,8 @@ class SetDataCommand(QUndoCommand):
self._index = index
self._column = column
self._old = self._data.get_i(self._index)[self._column]
self._new = new_value
_type = self._data.get_type_column(self._column)
self._new = _type(new_value)
def undo(self):
self._data._set_i_c_v(self._index, self._column, self._old)
+25 -16
View File
@@ -16,6 +16,9 @@
# -*- coding: utf-8 -*-
import logging
import traceback
from tools import trace, timer
from PyQt5.QtCore import (
@@ -43,6 +46,8 @@ from View.BoundaryCondition.UndoCommand import (
)
from View.BoundaryCondition.translate import *
logger = logging.getLogger()
_translate = QCoreApplication.translate
class ComboBoxDelegate(QItemDelegate):
@@ -153,25 +158,29 @@ class TableModel(QAbstractTableModel):
row = index.row()
column = index.column()
if self._headers[column] == "name":
self._undo.push(
SetNameCommand(
self._bcs, self._tab,row, value
try:
if self._headers[column] == "name":
self._undo.push(
SetNameCommand(
self._bcs, self._tab,row, value
)
)
)
elif self._headers[column] == "type":
key = next(k for k, v in long_types.items() if v == value)
self._undo.push(
SetTypeCommand(
self._bcs, self._tab,row, BC_types[key]
elif self._headers[column] == "type":
key = next(k for k, v in long_types.items() if v == value)
self._undo.push(
SetTypeCommand(
self._bcs, self._tab,row, BC_types[key]
)
)
)
elif self._headers[column] == "node":
self._undo.push(
SetNodeCommand(
self._bcs, self._tab,row, self._data.node(value)
elif self._headers[column] == "node":
self._undo.push(
SetNodeCommand(
self._bcs, self._tab,row, self._data.node(value)
)
)
)
except Exception as e:
logger.info(e)
logger.debug(traceback.format_exc())
self.dataChanged.emit(index, index)
return True
+1 -1
View File
@@ -34,7 +34,7 @@ class SetNameCommand(QUndoCommand):
self._tab = tab
self._index = index
self._old = self._bcs.get(self._tab, self._index).name
self._new = new_value
self._new = str(new_value)
def undo(self):
self._bcs.get(self._tab, self._index).name = self._old