diff --git a/vviewer/vviewer.py b/vviewer/vviewer.py index 9717834d31966720b9e8269b3edf06d6a33e5dcc..7a00bfa80734cf8e12fdee1b267d43e38b76b85b 100755 --- a/vviewer/vviewer.py +++ b/vviewer/vviewer.py @@ -1880,6 +1880,7 @@ class vviewer(QtGui.QMainWindow): Activate image with index 'ind'. """ if self.states[ind] == False: + self.enableControls() self.imagelist.item(ind).setCheckState(QtCore.Qt.Checked) self.states[ind] = True image_item_list_tmp = [] @@ -1903,6 +1904,7 @@ class vviewer(QtGui.QMainWindow): def deactivateImageIndex(self, ind): if self.states[ind]: + self.disableControls() self.imagelist.item(ind).setCheckState(QtCore.Qt.Unchecked) self.states[ind] = False self.removeFromSliceWidget(ind, 0) @@ -2012,6 +2014,8 @@ class vviewer(QtGui.QMainWindow): self.threshold_write_block = True index = self.imagelist.currentRow() if index >= 0: + # enable controls + self.enableControls() # actions for all images self.images[index].pos_gradient.show() self.slider_pos.setEnabled(True) @@ -2041,8 +2045,47 @@ class vviewer(QtGui.QMainWindow): # If there is a histogram window, update that, too. if self.hist is not None: self.resetHistogram() + # if image is inactive: disable all controls + if self.states[index] is not True: + self.disableControls() + # image is functional and active enable functional widgets + if self.states[index] is True and self.images[index].type_d() == "4D": + self.enableFuncView() self.threshold_write_block = False + def disableControls(self): + self.min_neg.setEnabled(False) + self.max_neg.setEnabled(False) + self.min_pos.setEnabled(False) + self.max_pos.setEnabled(False) + self.slider_pos.setEnabled(False) + self.slider_pos.setGradientLeftColor(self.slider_color_off) + self.slider_pos.setGradientRightColor(self.slider_color_off) + self.slider_neg.setEnabled(False) + self.slider_neg.setGradientLeftColor(self.slider_color_off) + self.slider_neg.setGradientRightColor(self.slider_color_off) + self.min_button.setEnabled(False) + self.max_button.setEnabled(False) + self.disableFuncView() + + def enableControls(self): + index = self.imagelist.currentRow() + if self.images[index].type() is "two": + self.min_neg.setEnabled(True) + self.max_neg.setEnabled(True) + self.slider_neg.setEnabled(True) + self.slider_neg.setGradientLeftColor(self.slider_color) + self.slider_neg.setGradientRightColor(self.slider_color) + self.min_pos.setEnabled(True) + self.max_pos.setEnabled(True) + self.slider_pos.setEnabled(True) + self.slider_pos.setGradientLeftColor(self.slider_color) + self.slider_pos.setGradientRightColor(self.slider_color) + self.min_button.setEnabled(True) + self.max_button.setEnabled(True) + if self.images[index].type_d() == "4D": + self.enableFuncView() + def disableSliderNeg(self): self.slider_neg.setEnabled(False) self.slider_neg.setGradientLeftColor(self.slider_color_off)