def test_get_param_from_name(): child = mock.Mock() child.name.side_effect = [ 'first', 'second', 'third', 'fourth', 'fifth', 'sixth', 'seventh' ] child.type.side_effect = [[], [], [], ['group'], [], [], []] child.children.side_effect = [[child, child, child]] param = mock.Mock() param.children.return_value = [child, child, child, child] child = utils.get_param_from_name(param, 'sixth') assert child.name() == 'seventh'
def update_settings(self, settings_parameter_dict): """ Update the settings tree from settings_parameter_dict. Finally do a commit to activate changes. ========================== ============= ===================================================== **Parameters** **Type** **Description** *settings_parameter_dict* dictionnnary a dictionnary listing path and associated parameter ========================== ============= ===================================================== See Also -------- send_param_status, commit_settings """ # settings_parameter_dict=edict(path=path,param=param) try: path = settings_parameter_dict['path'] param = settings_parameter_dict['param'] change = settings_parameter_dict['change'] try: self.settings.sigTreeStateChanged.disconnect( self.send_param_status) except Exception: pass if change == 'value': self.settings.child(*path[1:]).setValue( param.value()) # blocks signal back to main UI elif change == 'childAdded': child = Parameter.create(name='tmp') child.restoreState(param) self.settings.child(*path[1:]).addChild( child) # blocks signal back to main UI param = child elif change == 'parent': children = get_param_from_name(self.settings, param.name()) if children is not None: path = get_param_path(children) self.settings.child(*path[1:-1]).removeChild(children) self.settings.sigTreeStateChanged.connect(self.send_param_status) self.commit_settings(param) except Exception as e: self.emit_status(ThreadCommand("Update_Status", [str(e), 'log']))
def update_settings( self, settings_parameter_dict ): # settings_parameter_dict=edict(path=path,param=param) """ Receive the settings_parameter signal from the param_tree_changed method and make hardware updates of mmodified values. ========================== =========== ========================================================================================================== **Arguments** **Type** **Description** *settings_parameter_dict* dictionnary Dictionnary with the path of the parameter in hardware structure as key and the parameter name as element ========================== =========== ========================================================================================================== See Also -------- send_param_status, commit_settings """ path = settings_parameter_dict['path'] param = settings_parameter_dict['param'] change = settings_parameter_dict['change'] try: self.settings.sigTreeStateChanged.disconnect( self.send_param_status) except Exception: pass if change == 'value': self.settings.child(*path[1:]).setValue( param.value()) # blocks signal back to main UI elif change == 'childAdded': child = Parameter.create(name='tmp') child.restoreState(param) self.settings.child(*path[1:]).addChild( child) # blocks signal back to main UI param = child elif change == 'parent': children = putils.get_param_from_name(self.settings, param.name()) if children is not None: path = putils.get_param_path(children) self.settings.child(*path[1:-1]).removeChild(children) self.settings.sigTreeStateChanged.connect(self.send_param_status) self.commit_common_settings(param) self.commit_settings(param)