summaryrefslogtreecommitdiff
path: root/silx/gui/plot/tools/roi.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/gui/plot/tools/roi.py')
-rw-r--r--silx/gui/plot/tools/roi.py22
1 files changed, 15 insertions, 7 deletions
diff --git a/silx/gui/plot/tools/roi.py b/silx/gui/plot/tools/roi.py
index eb933a0..3535097 100644
--- a/silx/gui/plot/tools/roi.py
+++ b/silx/gui/plot/tools/roi.py
@@ -253,7 +253,7 @@ class RegionOfInterestManager(qt.QObject):
else:
return False
- def _regionOfInterestChanged(self):
+ def _regionOfInterestChanged(self, event=None):
"""Handle ROI object changed"""
self.sigRoiChanged.emit()
@@ -271,7 +271,7 @@ class RegionOfInterestManager(qt.QObject):
number of ROIs has been reached.
"""
roi = roiClass(parent=None)
- roi.setLabel(str(label))
+ roi.setName(str(label))
roi.setFirstShapePoints(points)
self.addRoi(roi, index)
@@ -283,6 +283,9 @@ class RegionOfInterestManager(qt.QObject):
:param roi_items.RegionOfInterest roi: The ROI to add
:param int index: The position where to insert the ROI,
By default it is appended to the end of the list of ROIs
+ :param bool useManagerColor:
+ Whether to set the ROI color to the default one of the manager or not.
+ (Default: True).
:raise RuntimeError: When ROI cannot be added because the maximum
number of ROIs has been reached.
"""
@@ -297,6 +300,7 @@ class RegionOfInterestManager(qt.QObject):
roi.setColor(self.getColor())
roi.sigRegionChanged.connect(self._regionOfInterestChanged)
+ roi.sigItemChanged.connect(self._regionOfInterestChanged)
if index is None:
self._rois.append(roi)
@@ -321,6 +325,7 @@ class RegionOfInterestManager(qt.QObject):
self._rois.remove(roi)
roi.sigRegionChanged.disconnect(self._regionOfInterestChanged)
+ roi.sigItemChanged.disconnect(self._regionOfInterestChanged)
roi.setParent(None)
self._roisUpdated()
@@ -820,11 +825,14 @@ class RegionOfInterestTableWidget(qt.QTableWidget):
return
if column == 0:
- roi.setVisible(item.checkState() == qt.Qt.Checked)
- roi.setLabel(item.text())
+ # First collect information from item, then update ROI
+ # Otherwise, this causes issues issues
+ checked = item.checkState() == qt.Qt.Checked
+ text= item.text()
+ roi.setVisible(checked)
+ roi.setName(text)
elif column == 1:
- roi.setEditable(
- item.checkState() == qt.Qt.Checked)
+ roi.setEditable(item.checkState() == qt.Qt.Checked)
elif column in (2, 3, 4):
pass # TODO
else:
@@ -888,7 +896,7 @@ class RegionOfInterestTableWidget(qt.QTableWidget):
baseFlags = qt.Qt.ItemIsSelectable | qt.Qt.ItemIsEnabled
# Label and visible
- label = roi.getLabel()
+ label = roi.getName()
item = qt.QTableWidgetItem(label)
item.setFlags(baseFlags | qt.Qt.ItemIsEditable | qt.Qt.ItemIsUserCheckable)
item.setData(qt.Qt.UserRole, index)