Skip to content
Snippets Groups Projects
Commit 24cf9ada authored by Sol Simpson's avatar Sol Simpson
Browse files

BF: unicode fix for TableWidget

Setting a table item value to a unicode value with non ascii chars would
cause the tablewidget contents to not be displayed (no exception thrown
either).

Changed all instances of str(..) or map(str,...) to use asUnicode and
issue seems to be fixed
parent 1ecceeaa
No related branches found
No related tags found
No related merge requests found
...@@ -103,19 +103,19 @@ class TableWidget(QtGui.QTableWidget): ...@@ -103,19 +103,19 @@ class TableWidget(QtGui.QTableWidget):
if isinstance(data, list) or isinstance(data, tuple): if isinstance(data, list) or isinstance(data, tuple):
return lambda d: d.__iter__(), None return lambda d: d.__iter__(), None
elif isinstance(data, dict): elif isinstance(data, dict):
return lambda d: iter(d.values()), list(map(str, data.keys())) return lambda d: iter(d.values()), list(map(asUnicode, data.keys()))
elif HAVE_METAARRAY and (hasattr(data, 'implements') and data.implements('MetaArray')): elif HAVE_METAARRAY and (hasattr(data, 'implements') and data.implements('MetaArray')):
if data.axisHasColumns(0): if data.axisHasColumns(0):
header = [str(data.columnName(0, i)) for i in range(data.shape[0])] header = [asUnicode(data.columnName(0, i)) for i in range(data.shape[0])]
elif data.axisHasValues(0): elif data.axisHasValues(0):
header = list(map(str, data.xvals(0))) header = list(map(asUnicode, data.xvals(0)))
else: else:
header = None header = None
return self.iterFirstAxis, header return self.iterFirstAxis, header
elif isinstance(data, np.ndarray): elif isinstance(data, np.ndarray):
return self.iterFirstAxis, None return self.iterFirstAxis, None
elif isinstance(data, np.void): elif isinstance(data, np.void):
return self.iterate, list(map(str, data.dtype.names)) return self.iterate, list(map(asUnicode, data.dtype.names))
elif data is None: elif data is None:
return (None,None) return (None,None)
else: else:
...@@ -239,7 +239,7 @@ class TableWidgetItem(QtGui.QTableWidgetItem): ...@@ -239,7 +239,7 @@ class TableWidgetItem(QtGui.QTableWidgetItem):
if isinstance(val, float) or isinstance(val, np.floating): if isinstance(val, float) or isinstance(val, np.floating):
s = "%0.3g" % val s = "%0.3g" % val
else: else:
s = str(val) s = asUnicode(val)
QtGui.QTableWidgetItem.__init__(self, s) QtGui.QTableWidgetItem.__init__(self, s)
self.value = val self.value = val
flags = QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled flags = QtCore.Qt.ItemIsSelectable | QtCore.Qt.ItemIsEnabled
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment