Skip to content

Commit

Permalink
fixed state reset
Browse files Browse the repository at this point in the history
fixed element change
  • Loading branch information
rozyczko committed Jan 31, 2025
1 parent 2cc7463 commit 1c37196
Show file tree
Hide file tree
Showing 7 changed files with 50 additions and 320,573 deletions.
9 changes: 1 addition & 8 deletions easyDiffractionApp/Gui/Globals/Proxies.qml
Original file line number Diff line number Diff line change
Expand Up @@ -606,14 +606,7 @@ QtObject { // If "Unknown component. (M300) in QtCreator", try: "Tools > QML/JS
}

function resetAll() {
main.summary.resetAll()
main.analysis.resetAll()
main.experiment.resetAll()
main.model.resetAll()
main.project.resetAll()
main.fittables.resetAll()
main.data.resetAll()
main.status.resetAll()
main.resetAll()
}

function disableAllPages() {
Expand Down
4 changes: 2 additions & 2 deletions easyDiffractionApp/Logic/Data.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@
class Data(QObject):
def __init__(self, parent, interface=None):
super().__init__(parent)
self.interface = interface
self._data = self.interface.data()
self._interface = interface
self._data = self._interface.data()
self._calcDict = self._data._cryspyDict
self._calcObj = self._data._cryspyObj
self._calcInOutDict = self._data._inOutDict
Expand Down
15 changes: 9 additions & 6 deletions easyDiffractionApp/Logic/Experiment.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,12 +111,14 @@
'reflex_asymmetry_p4': 'reflex_asymmetry_p4',
'_pd_calib': 'pattern',
'2theta_offset': 'zero_shift',
'probe': 'radiation',

'_pd_background': 'backgrounds',
'line_segment_X': 'x',
'line_segment_intensity': 'y',
'scale': 'scale',
'_pd_phase_block': 'phases',
'_diffrn_radiation': 'pattern',
}

class Experiment(QObject):
Expand Down Expand Up @@ -712,8 +714,8 @@ def replaceExperiment(self, edCifNoMeas=''):
currentDataBlock = self._dataBlocksNoMeas[self.currentIndex]
currentExperimentName = currentDataBlock['name']['value']

calcObjBlockNames = [item.data_name for item in self._interface.data()._calcObj]
calcObjBlockIdx = calcObjBlockNames.index(currentExperimentName)
# calcObjBlockNames = [item.data_name for item in self._interface.data()._calcObj]
# calcObjBlockIdx = calcObjBlockNames.index(currentExperimentName)

if not edCifNoMeas:
edCifNoMeas = dataBlockToCif(currentDataBlock)
Expand All @@ -726,7 +728,7 @@ def replaceExperiment(self, edCifNoMeas=''):
edCifMeasOnly = dataBlockToCif(self.dataBlocksMeasOnly[self.currentIndex],
includeBlockName=False)

edCif = edCifNoMeas + '\n\n' + edCifMeasOnly
edCif = edCifNoMeas #+ '\n\n' + edCifMeasOnly

blocks = self._interface.replaceExpCif(edCif, currentExperimentName)
self._dataBlocksNoMeas[self.currentIndex] = blocks
Expand Down Expand Up @@ -1380,17 +1382,18 @@ def setMeasuredArraysForSingleExperiment(self, idx):

# X data
x_array = calcInOutDict[calc_block_name][x_array_name]
x_array2 = self._proxy.job.experiment.x.values
if diffrn_radiation_type == 'cwl':
x_array = np.rad2deg(x_array)
self.setXArray(x_array, idx)

# Measured Y data
y_meas_array = calcInOutDict[calc_block_name]['signal_exp'][0]
y_meas_array = self._job.experiment.y.values
self.setYMeasArray(y_meas_array, idx)

# Standard deviation of the measured Y data
sy_meas_array = calcInOutDict[calc_block_name]['signal_exp'][1]
# sy_meas_array = calcInOutDict[calc_block_name]['signal_exp'][1]
sy_meas_array = self._job.experiment.e.values
self.setSYMeasArray(sy_meas_array, idx)

def calculatedYBkgArray(self, cryspy_block_idx, cryspy_block_name, x_array_name):
Expand All @@ -1407,7 +1410,7 @@ def setCalculatedArraysForSingleExperiment(self, idx):
elif diffrn_radiation_type == 'tof':
experiment_prefix = 'tof'
x_array_name = 'time'
#ed_name = self._dataBlocksNoMeas[idx]['name']['value']

ed_name = self._job.experiment.name
calc_block_name = f'{experiment_prefix}_{ed_name}'
calcInOutDict = self._interface.data()._inOutDict
Expand Down
6 changes: 6 additions & 0 deletions easyDiffractionApp/Logic/Fitting2.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,12 @@ def setSuccessFitResults(self):
self.jobToDataBlocks.emit()
pass

@Slot()
def resetAll(self):
self.resetErrors()
self._fit_results = _defaultFitResults()
self.fitter = CoreFitter(self.parent.experiment.job, self.interface.fit_func)

def resetErrors(self):
# Reset all errors to zero
# all_pars = set(self.parent.sample().get_parameters())
Expand Down
15 changes: 11 additions & 4 deletions easyDiffractionApp/Logic/Model.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,8 @@
'_cell': 'cell',
'_space_group': 'spacegroup',
'_atom_site': 'atoms',
'label': 'name',
'type_symbol': 'specie',
'occupancy': 'occupancy',
'fract_x': 'fract_x',
'fract_y': 'fract_y',
Expand Down Expand Up @@ -363,10 +365,12 @@ def addKeys():
atomDict = {}
atomDict['type_symbol'] = {'shortPrettyName': 'type',
'value': atom.specie.symbol,
'name': 'type_symbol'}
'name': 'type_symbol',
'category': category,}
atomDict['label'] = self.fromDescriptorObject(atom.label)
atomDict['label']['shortPrettyName'] = "label"
atomDict['label']['name'] = 'label'
atomDict['label']['category'] = category
params = 'fract_x'
atomDict[params] = self.fromParameterObject(atom.fract_x)
atomDict[params]['shortPrettyName'] = "x"
Expand Down Expand Up @@ -484,6 +488,12 @@ def blocksToLoopPhase(self, blockIdx, category, name, rowIndex, field, value):
phase_with_category = getattr(phase, p_category)[rowIndex]
# get loop item
phase_with_item = getattr(phase_with_category, p_name)
if name == 'label':
phase_with_category.name = value
return
if name == 'type_symbol':
phase_with_item = pt.elements.symbol(value)
return
if field == 'value':
phase_with_item.value = value
elif field == 'error':
Expand Down Expand Up @@ -531,9 +541,6 @@ def removeModel(self, index):
@Slot()
def resetAll(self):
self.defined = False
# self._interface = WrapperFactory()
# self.createJob()
# self._proxy.interface = self._interface
self.phases = self.job.phases
self._currentIndex = -1
self._dataBlocks = []
Expand Down
22 changes: 21 additions & 1 deletion easyDiffractionApp/Logic/PyProxy.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# SPDX-License-Identifier: BSD-3-Clause
# © 2023 Contributors to the EasyDiffraction project <https://github.com/easyscience/EasyDiffraction>

from PySide6.QtCore import QObject, Property
from PySide6.QtCore import QObject, Property, Slot

from EasyApp.Logic.Logging import LoggerLevelHandler
from Logic.Connections import Connections
Expand Down Expand Up @@ -94,3 +94,23 @@ def plotting(self):
@Property('QVariant', constant=True)
def backendHelpers(self):
return self._backendHelpers

@Slot()
def resetAll(self):
self.interface = WrapperFactory()
self.model._interface = self.interface
self.model.createJob()
self._model.resetAll()
self._experiment._interface = self.interface
self._experiment._job = self._model.job
self._experiment.resetAll()
self._data._interface = self.interface
self._data.resetAll()
self._analysis.resetAll()
self._fittables.resetAll()
self._fitting.interface = self.interface
self._fitting.resetAll()
self._summary._interface = self.interface
self._summary.resetAll()
self._project.resetAll()
self._status.resetAll()
Loading

0 comments on commit 1c37196

Please sign in to comment.