Skip to content
Snippets Groups Projects
Commit b5e7725a authored by Ewan Cook's avatar Ewan Cook
Browse files

refs #23426 fix gamma changing

parent 86699798
No related branches found
No related tags found
No related merge requests found
...@@ -84,7 +84,7 @@ class ElementalAnalysisGui(QtGui.QMainWindow): ...@@ -84,7 +84,7 @@ class ElementalAnalysisGui(QtGui.QMainWindow):
self.element_data = {} self.element_data = {}
self.element_lines = {} self.element_lines = {}
self.gamma_lines = [] self.gamma_lines = []
self.gamma_peaks = self._get_gamma_peaks() self.gamma_peaks = self.ptable.peak_data["Gammas"]
self.electron_peaks = self._get_electron_peaks() self.electron_peaks = self._get_electron_peaks()
self.electron_lines = [] self.electron_lines = []
self._generate_element_widgets() self._generate_element_widgets()
...@@ -118,29 +118,29 @@ class ElementalAnalysisGui(QtGui.QMainWindow): ...@@ -118,29 +118,29 @@ class ElementalAnalysisGui(QtGui.QMainWindow):
self.iterate_over_selectors(False, primary_checkboxes=False) self.iterate_over_selectors(False, primary_checkboxes=False)
self.plotting.update_canvas() self.plotting.update_canvas()
def _get_gamma_peaks(self):
gamma_peaks = self.ptable.peak_data["Gammas"]["Primary"]
gamma_peaks.update(self.ptable.peak_data["Gammas"]["Secondary"])
return gamma_peaks.copy()
def _plot_gammas(self, subplot, colour=None): def _plot_gammas(self, subplot, colour=None):
if colour is None: if colour is None:
colour = self.line_colours.next() colour = self.line_colours.next()
for label, lines in iteritems(self.gamma_peaks): for element, peaks in iteritems(self.gamma_peaks):
if lines is None: for peak_type, peak in iteritems(peaks):
continue if peak is None:
for line in lines: continue
self.gamma_lines.append( self.gamma_lines.append(
subplot.axvline( subplot.axvline(
line, 0, 1, color=colour)) peak, 0, 1, color=colour))
self.plotting.update_canvas() self.plotting.update_canvas()
def _iterate_over_gamma_selectors(self, check_state):
for element, selector in iteritems(self.element_widgets):
for checkbox in selector.gamma_checkboxes:
checkbox.setChecked(check_state)
selector.finish_selection()
def gammas_checked(self): def gammas_checked(self):
colour = self.line_colours.next() self._iterate_over_gamma_selectors(True)
for subplot_name, subplot in iteritems(self.plotting.get_subplots()):
self._plot_gammas(subplot, colour=colour)
def gammas_unchecked(self): def gammas_unchecked(self):
self._iterate_over_gamma_selectors(False)
for line in self.gamma_lines: for line in self.gamma_lines:
line.remove() line.remove()
del line del line
...@@ -245,6 +245,7 @@ class ElementalAnalysisGui(QtGui.QMainWindow): ...@@ -245,6 +245,7 @@ class ElementalAnalysisGui(QtGui.QMainWindow):
del line del line
self.element_lines[element][x_value] = [] self.element_lines[element][x_value] = []
del current_dict[label] del current_dict[label]
self.plotting.update_canvas()
elif current_dict != new_dict: elif current_dict != new_dict:
colour = self.line_colours.next() colour = self.line_colours.next()
dict_difference = {k: new_dict[k] dict_difference = {k: new_dict[k]
...@@ -266,6 +267,10 @@ class ElementalAnalysisGui(QtGui.QMainWindow): ...@@ -266,6 +267,10 @@ class ElementalAnalysisGui(QtGui.QMainWindow):
if element in ["Gammas", "Electrons"]: if element in ["Gammas", "Electrons"]:
continue continue
data = self.ptable.element_data(element) data = self.ptable.element_data(element)
try:
data["Gammas"] = self.ptable.peak_data["Gammas"][element]
except KeyError:
pass
widget = PeakSelectorPresenter(PeakSelectorView(data, element)) widget = PeakSelectorPresenter(PeakSelectorView(data, element))
widget.on_finished(self._update_peak_data) widget.on_finished(self._update_peak_data)
self.element_widgets[element] = widget self.element_widgets[element] = widget
......
...@@ -3,6 +3,7 @@ class PeakSelectorPresenter(object): ...@@ -3,6 +3,7 @@ class PeakSelectorPresenter(object):
self.view = view self.view = view
self.primary_checkboxes = self.view.primary_checkboxes self.primary_checkboxes = self.view.primary_checkboxes
self.secondary_checkboxes = self.view.secondary_checkboxes self.secondary_checkboxes = self.view.secondary_checkboxes
self.gamma_checkboxes = self.view.gamma_checkboxes
def finish_selection(self): def finish_selection(self):
self.view.finish_selection() self.view.finish_selection()
......
...@@ -24,6 +24,12 @@ class PeakSelectorView(QtGui.QListWidget): ...@@ -24,6 +24,12 @@ class PeakSelectorView(QtGui.QListWidget):
secondary = peak_data["Secondary"] secondary = peak_data["Secondary"]
self.secondary_checkboxes = self._create_checkbox_list( self.secondary_checkboxes = self._create_checkbox_list(
"Secondary", secondary, checked=False) "Secondary", secondary, checked=False)
try:
gammas = peak_data["Gammas"]
self.gamma_checkboxes = self._create_checkbox_list(
"Gammas", gammas, checked=False)
except KeyError:
self.gamma_checkboxes = []
widget.setLayout(self.list) widget.setLayout(self.list)
scroll = QtGui.QScrollArea() scroll = QtGui.QScrollArea()
...@@ -50,17 +56,22 @@ class PeakSelectorView(QtGui.QListWidget): ...@@ -50,17 +56,22 @@ class PeakSelectorView(QtGui.QListWidget):
new_data = data["Primary"].copy() new_data = data["Primary"].copy()
self.new_data = new_data self.new_data = new_data
def _setup_checkbox(self, name, checked):
checkbox = Checkbox(name)
checkbox.setChecked(checked)
checkbox.on_checkbox_unchecked(self._remove_value_from_new_data)
checkbox.on_checkbox_checked(self._add_value_to_new_data)
self.list.addWidget(checkbox)
return checkbox
def _create_checkbox_list(self, heading, checkbox_data, checked=True): def _create_checkbox_list(self, heading, checkbox_data, checked=True):
_heading = QtGui.QLabel(heading) _heading = QtGui.QLabel(heading)
self.list.addWidget(_heading) self.list.addWidget(_heading)
checkboxes = [] checkboxes = []
for peak_type, value in iteritems(checkbox_data): for peak_type, value in iteritems(checkbox_data):
checkbox = Checkbox("{}: {}".format(peak_type, value)) checkboxes.append(
checkbox.setChecked(checked) self._setup_checkbox(
checkbox.on_checkbox_unchecked(self._remove_value_from_new_data) "{}: {}".format(peak_type, value), checked))
checkbox.on_checkbox_checked(self._add_value_to_new_data)
self.list.addWidget(checkbox)
checkboxes.append(checkbox)
return checkboxes return checkboxes
def _parse_checkbox_name(self, name): def _parse_checkbox_name(self, name):
......
This diff is collapsed.
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