Ignore:
Timestamp:
Jul 5, 2017 5:28:55 PM (7 years ago)
Author:
Paul Kienzle <pkienzle@…>
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, magnetic_scatt, release-4.2.2, ticket-1009, ticket-1094-headless, ticket-1242-2d-resolution, ticket-1243, ticket-1249, ticket885, unittest-saveload
Children:
1386b2f
Parents:
251ef684
Message:

clean up plugin-model handling code; preserve active parameter values when plugin is updated

File:
1 edited

Legend:

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

    r50fcb09 r277257f  
    11431143            self.model.name = "M" + str(self.index_model) 
    11441144 
    1145     def _on_select_model(self, event=None): 
     1145    def _on_select_model(self, event=None, keep_pars=False): 
    11461146        """ 
    11471147        call back for model selection 
    11481148        """ 
    11491149        self.Show(False) 
    1150         copy_flag = False 
    1151         is_poly_enabled = None 
    11521150        if event is not None: 
    1153             if (event.GetEventObject() == self.formfactorbox 
    1154                     and self.structurebox.GetLabel() != 'None')\ 
    1155                     or event.GetEventObject() == self.structurebox\ 
    1156                     or event.GetEventObject() == self.multifactorbox: 
    1157                 copy_flag = self.get_copy_params() 
    1158                 is_poly_enabled = self.enable_disp.GetValue() 
     1151            control = event.GetEventObject() 
     1152            if ((control == self.formfactorbox 
     1153                 and self.structurebox.GetLabel() != 'None') 
     1154                    or control == self.structurebox 
     1155                    or control == self.multifactorbox): 
     1156                keep_pars = True 
     1157 
     1158        if keep_pars: 
     1159            saved_pars = self.get_copy_params() 
     1160            is_poly_enabled = self.enable_disp.GetValue() 
     1161        else: 
     1162            saved_pars = None 
     1163            is_poly_enabled = None 
    11591164 
    11601165        self._on_select_model_helper() 
     
    11711176        try: 
    11721177            self.set_dispers_sizer() 
    1173         except: 
     1178        except Exception: 
    11741179            pass 
    11751180        self.state.enable_disp = self.enable_disp.GetValue() 
     
    12321237            self.state.model.name = self.model.name 
    12331238 
     1239        # when select a model only from guictr/button 
     1240        if is_poly_enabled is not None: 
     1241            self.enable_disp.SetValue(is_poly_enabled) 
     1242            self.disable_disp.SetValue(not is_poly_enabled) 
     1243            self._set_dipers_Param(event=None) 
     1244            self.state.enable_disp = self.enable_disp.GetValue() 
     1245            self.state.disable_disp = self.disable_disp.GetValue() 
     1246 
     1247        # Keep the previous param values 
     1248        if saved_pars: 
     1249            self.get_paste_params(saved_pars) 
     1250 
    12341251        if event is not None: 
     1252            # update list of plugins if new plugin is available 
     1253            # mod_cat = self.categorybox.GetStringSelection() 
     1254            # if mod_cat == CUSTOM_MODEL: 
     1255            #     temp = self.parent.update_model_list() 
     1256            #     if temp: 
     1257            #         self.model_list_box = temp 
     1258            #         current_val = self.formfactorbox.GetLabel() 
     1259            #         pos = self.formfactorbox.GetSelection() 
     1260            #         self._show_combox_helper() 
     1261            #         self.formfactorbox.SetStringSelection(current_val) 
     1262            #         self.formfactorbox.SetValue(current_val) 
    12351263            # post state to fit panel 
    12361264            new_event = PageInfoEvent(page=self) 
    12371265            wx.PostEvent(self.parent, new_event) 
    1238             # update list of plugins if new plugin is available 
    1239             custom_model = CUSTOM_MODEL 
    1240             mod_cat = self.categorybox.GetStringSelection() 
    1241             if mod_cat == custom_model: 
    1242                 temp = self.parent.update_model_list() 
    1243                 if temp: 
    1244                     self.model_list_box = temp 
    1245                     current_val = self.formfactorbox.GetLabel() 
    1246                     pos = self.formfactorbox.GetSelection() 
    1247                     self._show_combox_helper() 
    1248                     self.formfactorbox.SetSelection(pos) 
    1249                     self.formfactorbox.SetValue(current_val) 
    1250             # when select a model only from guictr/button 
    1251             if is_poly_enabled is not None: 
    1252                 self.enable_disp.SetValue(is_poly_enabled) 
    1253                 self.disable_disp.SetValue(not is_poly_enabled) 
    1254                 self._set_dipers_Param(event=None) 
    1255                 self.state.enable_disp = self.enable_disp.GetValue() 
    1256                 self.state.disable_disp = self.disable_disp.GetValue() 
    1257  
    1258             # Keep the previous param values 
    1259             if copy_flag: 
    1260                 self.get_paste_params(copy_flag) 
    12611266            wx.CallAfter(self._onDraw, None) 
    12621267 
     
    17091714                and not self.temp_multi_functional: 
    17101715            return None 
     1716        print("_set_fun_box_list", self.model.name) 
    17111717        # Get the func name list 
    17121718        list = self.model.fun_list 
     
    17161722        ind = 0 
    17171723        while(ind < len(list)): 
    1718             for key, val in list.iteritems(): 
    1719                 if (val == ind): 
     1724            for key, val in list.items(): 
     1725                if val == ind: 
    17201726                    fun_box.Append(key, val) 
    17211727                    break 
Note: See TracChangeset for help on using the changeset viewer.