nmreval/src/gui_qt/lib/decorators.py

56 lines
1.4 KiB
Python
Raw Normal View History

2022-03-08 09:27:40 +00:00
from functools import wraps
from ..Qt import QtWidgets
def update_indexes(func):
@wraps(func)
def wrapped(self, *args, **kwargs):
ret_val = func(self, *args, **kwargs)
self.blockSignals(True)
iterator = QtWidgets.QTreeWidgetItemIterator(self)
i = j = 0
while iterator.value():
item = iterator.value()
if item is not None:
if item.parent() is None:
item.setText(1, 'g[{}]'.format(i))
i += 1
j = 0
else:
item.setText(1, '.s[{}]'.format(j))
j += 1
iterator += 1
self.blockSignals(False)
return ret_val
return wrapped
def plot_update(func):
@wraps(func)
def wrapped(self, *args, **kwargs):
ret_val = func(self, *args, **kwargs)
m = self._data.mask
_x = self._data.x
_y = self._data.y
self.plot_real.setData(x=_x[m], y=_y.real[m], name=self._data.name)
if self.plot_imag is not None:
self.plot_imag.setData(x=_x[m], y=_y.imag[m], name=self._data.name)
if self.plot_error is not None:
_y_err = self._data.y_err
self.plot_error.setData(x=_x[m], y=_y.real[m], top=_y_err[m], bottom=_y_err[m])
self.dataChanged.emit(self.id)
return ret_val
return wrapped