Ignore:
Timestamp:
Oct 11, 2016 11:09:47 AM (8 years ago)
Author:
jhbakker
Branches:
master, ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc, costrafo411, magnetic_scatt, release-4.1.1, release-4.1.2, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
4581ac9, 7949dcf7
Parents:
392056d (diff), 46dfee9 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'master' into Jurrian1D, fingers crossed!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/sasgui/perspectives/fitting/basepage.py

    r51a4d78 r9087214  
    10371037            dispersity = self.disp_box.GetClientData(n) 
    10381038            name = dispersity.__name__ 
    1039  
    10401039            self._set_dipers_Param(event=None) 
    10411040 
     
    11081107        self.Refresh() 
    11091108 
     1109    def get_cat_combo_box_pos(self, state): 
     1110        """ 
     1111        Iterate through the categories to find the structurefactor 
     1112        :return: combo_box_position 
     1113        """ 
     1114        for key, value in self.master_category_dict.iteritems(): 
     1115            for list_item in value: 
     1116                if state.formfactorcombobox in list_item: 
     1117                    return self.categorybox.Items.index(key) 
     1118 
    11101119    def reset_page_helper(self, state): 
    11111120        """ 
     
    11631172            category_pos = int(state.categorycombobox) 
    11641173        except: 
     1174            state.formfactorcombobox = unicode(state.formfactorcombobox.lower()) 
     1175            state.categorycombobox = unicode(state.categorycombobox) 
    11651176            category_pos = 0 
    1166             for ind_cat in range(self.categorybox.GetCount()): 
    1167                 if self.categorybox.GetString(ind_cat) == \ 
    1168                                         state.categorycombobox: 
    1169                     category_pos = int(ind_cat) 
    1170                     break 
     1177            if state.categorycombobox in self.categorybox.Items: 
     1178                category_pos = self.categorybox.Items.index( 
     1179                    state.categorycombobox) 
     1180            else: 
     1181                # Look in master list for model name (model.lower) 
     1182                category_pos = self.get_cat_combo_box_pos(state) 
    11711183 
    11721184        self.categorybox.Select(category_pos) 
     
    11891201            structfactor_pos = int(state.structurecombobox) 
    11901202        except: 
    1191             structfactor_pos = 0 
    1192             for ind_struct in range(self.structurebox.GetCount()): 
    1193                 if self.structurebox.GetString(ind_struct) == \ 
    1194                                                     (state.structurecombobox): 
    1195                     structfactor_pos = int(ind_struct) 
    1196                     break 
     1203            if state.structurecombobox is not None: 
     1204                structfactor_pos = 0 
     1205                state.structurecombobox = unicode(state.structurecombobox) 
     1206                for ind_struct in range(self.structurebox.GetCount()): 
     1207                    if self.structurebox.GetString(ind_struct) == \ 
     1208                                                        (state.structurecombobox): 
     1209                        structfactor_pos = int(ind_struct) 
     1210                        break 
    11971211 
    11981212        self.structurebox.SetSelection(structfactor_pos) 
     
    14071421        self.state.npts = self.npts_x 
    14081422 
    1409     def _onparamEnter_helper(self): 
     1423    def _onparamEnter_helper(self,is_modified = False): 
    14101424        """ 
    14111425        check if values entered by the user are changed and valid to replot 
     
    14131427        """ 
    14141428        # Flag to register when a parameter has changed. 
    1415         is_modified = False 
     1429        #is_modified = False 
    14161430        self.fitrange = True 
    14171431        is_2Ddata = False 
     
    14211435            is_2Ddata = True 
    14221436        if self.model != None: 
    1423             is_modified = (self._check_value_enter(self.fittable_param) 
    1424                            or self._check_value_enter(self.fixed_param) 
    1425                            or self._check_value_enter(self.parameters)) 
     1437            #Either we get a is_modified = True passed in because 
     1438            #_update_paramv_on_fit() has been called already or 
     1439            # we need to check here ourselves. 
     1440            if not is_modified: 
     1441                is_modified = (self._check_value_enter(self.fittable_param) 
     1442                               or self._check_value_enter(self.fixed_param) 
     1443                               or self._check_value_enter(self.parameters)) 
    14261444 
    14271445            # Here we should check whether the boundaries have been modified. 
     
    14721490        flag = True 
    14731491        self.fitrange = True 
     1492        is_modified = False 
    14741493 
    14751494        #wx.PostEvent(self._manager.parent, StatusEvent(status=" \ 
     
    14841503                                                                [self.data]) 
    14851504            ##Check the values 
    1486             self._check_value_enter(self.fittable_param) 
    1487             self._check_value_enter(self.fixed_param) 
    1488             self._check_value_enter(self.parameters) 
     1505            is_modified = (self._check_value_enter(self.fittable_param) 
     1506                            or self._check_value_enter(self.fixed_param) 
     1507                            or self._check_value_enter(self.parameters)) 
    14891508 
    14901509            # If qmin and qmax have been modified, update qmin and qmax and 
     
    15681587            logging.error(traceback.format_exc()) 
    15691588 
    1570         return flag 
     1589        return flag,is_modified 
    15711590 
    15721591    def _reset_parameters_state(self, listtorestore, statelist): 
     
    19791998            form_factor = self.formfactorbox.GetClientData(f_id) 
    19801999 
    1981         if form_factor is None or not form_factor.is_form_factor: 
     2000        if form_factor is None or \ 
     2001            not hasattr(form_factor, 'is_form_factor') or \ 
     2002            not form_factor.is_form_factor: 
    19822003            self.structurebox.Hide() 
    19832004            self.text2.Hide() 
     
    23062327            wx.PostEvent(self.parent, event) 
    23072328        #draw the model with the current dispersity 
    2308         self._draw_model() 
     2329 
     2330        #Wojtek P, Oct 8, 2016: Calling draw_model seems to be unessecary. 
     2331        #By comenting it we save an extra Iq calculation 
     2332        #self._draw_model() 
     2333 
    23092334        ## Need to use FitInside again here to replace the next four lines. 
    23102335        ## Otherwised polydispersity off does not resize the scrollwindow. 
     
    30553080        """ 
    30563081        content = '' 
     3082        bound_hi = '' 
     3083        bound_lo = '' 
    30573084        # go through the str params 
    30583085        for item in param: 
     
    30863113                    value = item[2].GetValue() 
    30873114 
     3115            # Bounds 
     3116            try: 
     3117                bound_lo = item[5].GetValue() 
     3118                bound_hi = item[6].GetValue() 
     3119            except Exception: 
     3120                # harmless - need to just pass 
     3121                pass 
     3122 
    30883123            # add to the content 
    30893124            if disfunc != '': 
     
    31013136            except Exception: 
    31023137                logging.error(traceback.format_exc()) 
    3103             content += name + ',' + str(check) + ',' + value + disfunc + ':' 
     3138            content += name + ',' + str(check) + ',' +\ 
     3139                    value + disfunc + ',' + bound_lo + ',' +\ 
     3140                    bound_hi + ':' 
    31043141 
    31053142        return content 
     
    31523189                # Transfer the text to content[dictionary] 
    31533190                context[name] = [check, value] 
     3191 
     3192                # limits 
     3193                limit_lo = item[3] 
     3194                context[name].append(limit_lo) 
     3195                limit_hi = item[4] 
     3196                context[name].append(limit_hi) 
     3197 
    31543198            # ToDo: PlugIn this poly disp function for pasting 
    31553199            try: 
    3156                 poly_func = item[3] 
     3200                poly_func = item[5] 
    31573201                context[name].append(poly_func) 
    31583202                try: 
    31593203                    # take the vals and weights for  array 
    3160                     array_values = item[4].split(' ') 
    3161                     array_weights = item[5].split(' ') 
     3204                    array_values = item[6].split(' ') 
     3205                    array_weights = item[7].split(' ') 
    31623206                    val = [float(a_val) for a_val in array_values[1:]] 
    31633207                    weit = [float(a_weit) for a_weit in array_weights[1:]] 
     
    32073251                name = item[1] 
    32083252                if name in content.keys(): 
    3209                     check = content[name][0] 
    3210                     pd = content[name][1] 
     3253                    values = content[name] 
     3254                    check = values[0] 
     3255                    pd = values[1] 
     3256 
    32113257                    if name.count('.') > 0: 
    32123258                        # If this is parameter.width, then pd may be a floating 
     
    32313277                            fun_val = self.model.fun_list[content[name][1]] 
    32323278                            self.model.setParam(name, fun_val) 
     3279                    try: 
     3280                        item[5].SetValue(str(values[-3])) 
     3281                        item[6].SetValue(str(values[-2])) 
     3282                    except Exception: 
     3283                        # passing as harmless non-update 
     3284                        pass 
    32333285 
    32343286                    value = content[name][1:] 
     
    32753327                                self.model.setParam(name, fun_val) 
    32763328                                # save state 
     3329                        try: 
     3330                            item[5].SetValue(str(value[-3])) 
     3331                            item[6].SetValue(str(value[-2])) 
     3332                        except Exception: 
     3333                            # passing as harmless non-update 
     3334                            pass 
     3335 
    32773336                        self._paste_poly_help(item, value) 
    32783337                        if check == 'True': 
     
    33093368        """ 
    33103369        # Do nothing if not setting polydispersity 
    3311         if len(value[1]) == 0: 
     3370        if len(value[3]) == 0: 
    33123371            return 
    33133372 
Note: See TracChangeset for help on using the changeset viewer.