Changes in / [f07b2e9:b78707b0] in sasview


Ignore:
Location:
src/sas
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • src/sas/data_util/calcthread.py

    r373d4ee r79492222  
    8484    should be implemented vary from framework to framework. 
    8585 
    86     For wx, something like the following is needed:: 
     86    For wx, something like the following is needed: :: 
    8787 
    8888        import wx, wx.lib.newevent 
  • src/sas/guiframe/plugin_base.py

    r373d4ee r0fa825c  
    1313################################################################################ 
    1414 
    15 class PluginBase(object): 
     15class PluginBase: 
    1616    """ 
    1717    This class defines the interface for a Plugin class 
     
    3636    def __init__(self, name="Test_plugin", standalone=True): 
    3737        """ 
    38         Abstract class for gui_manager Plugins. 
     38            Abstract class for gui_manager Plugins. 
    3939        """ 
    4040        # Define if the plugin is local to Viewerframe  and always active 
  • src/sas/perspectives/fitting/basepage.py

    r373d4ee racf8e4a5  
    398398            batch_menu.Enable(self.batch_on and flag) 
    399399 
     400    class ModelTextCtrl(wx.TextCtrl): 
     401        """ 
     402        Text control for model and fit parameters. 
     403        Binds the appropriate events for user interactions. 
     404        Default callback methods can be overwritten on initialization 
     405 
     406        :param kill_focus_callback: callback method for EVT_KILL_FOCUS event 
     407        :param set_focus_callback:  callback method for EVT_SET_FOCUS event 
     408        :param mouse_up_callback:   callback method for EVT_LEFT_UP event 
     409        :param text_enter_callback: callback method for EVT_TEXT_ENTER event 
     410 
     411        """ 
     412        ## Set to True when the mouse is clicked while whole string is selected 
     413        full_selection = False 
     414        ## Call back for EVT_SET_FOCUS events 
     415        _on_set_focus_callback = None 
     416 
     417        def __init__(self, parent, id=-1, 
     418                     value=wx.EmptyString, 
     419                     pos=wx.DefaultPosition, 
     420                     size=wx.DefaultSize, 
     421                     style=0, 
     422                     validator=wx.DefaultValidator, 
     423                     name=wx.TextCtrlNameStr, 
     424                     kill_focus_callback=None, 
     425                     set_focus_callback=None, 
     426                     mouse_up_callback=None, 
     427                     text_enter_callback=None): 
     428 
     429            wx.TextCtrl.__init__(self, parent, id, value, pos, 
     430                                 size, style, validator, name) 
     431 
     432            # Bind appropriate events 
     433            self._on_set_focus_callback = parent.onSetFocus \ 
     434                      if set_focus_callback is None else set_focus_callback 
     435            self.Bind(wx.EVT_SET_FOCUS, self._on_set_focus) 
     436            self.Bind(wx.EVT_KILL_FOCUS, self._silent_kill_focus \ 
     437                      if kill_focus_callback is None else kill_focus_callback) 
     438            self.Bind(wx.EVT_TEXT_ENTER, parent._onparamEnter \ 
     439                      if text_enter_callback is None else text_enter_callback) 
     440            if not ON_MAC: 
     441                self.Bind(wx.EVT_LEFT_UP, self._highlight_text \ 
     442                          if mouse_up_callback is None else mouse_up_callback) 
     443 
     444        def _on_set_focus(self, event): 
     445            """ 
     446            Catch when the text control is set in focus to highlight the whole 
     447            text if necessary 
     448 
     449            :param event: mouse event 
     450 
     451            """ 
     452            event.Skip() 
     453            self.full_selection = True 
     454            return self._on_set_focus_callback(event) 
     455 
     456        def _highlight_text(self, event): 
     457            """ 
     458            Highlight text of a TextCtrl only of no text has be selected 
     459 
     460            :param event: mouse event 
     461 
     462            """ 
     463            # Make sure the mouse event is available to other listeners 
     464            event.Skip() 
     465            control = event.GetEventObject() 
     466            if self.full_selection: 
     467                self.full_selection = False 
     468                # Check that we have a TextCtrl 
     469                if issubclass(control.__class__, wx.TextCtrl): 
     470                    # Check whether text has been selected, 
     471                    # if not, select the whole string 
     472                    (start, end) = control.GetSelection() 
     473                    if start == end: 
     474                        control.SetSelection(-1, -1) 
     475 
     476        def _silent_kill_focus(self, event): 
     477            """ 
     478            Save the state of the page 
     479            """ 
     480 
     481            event.Skip() 
     482            #pass 
     483 
    400484    def set_page_info(self, page_info): 
    401485        """ 
     
    15961680                                                  draw=False) 
    15971681                elif not self._is_2D(): 
    1598                     enable_smearer = not self.disable_smearer.GetValue() 
    15991682                    self._manager.set_smearer(smearer=temp_smearer, 
    16001683                                              qmin=float(self.qmin_x), 
     
    16021685                                              fid=self.data.id, 
    16031686                                              qmax=float(self.qmax_x), 
    1604                                               enable_smearer=enable_smearer, 
    1605                                               draw=False) 
     1687                            enable_smearer=not self.disable_smearer.GetValue(), 
     1688                                                 draw=False) 
    16061689                    if self.data != None: 
    16071690                        index_data = ((self.qmin_x <= self.data.x) & \ 
     
    36913774        toggle view of model from 1D to 2D  or 2D from 1D if implemented 
    36923775        """ 
    3693  
    3694 class ModelTextCtrl(wx.TextCtrl): 
    3695     """ 
    3696     Text control for model and fit parameters. 
    3697     Binds the appropriate events for user interactions. 
    3698     Default callback methods can be overwritten on initialization 
    3699  
    3700     :param kill_focus_callback: callback method for EVT_KILL_FOCUS event 
    3701     :param set_focus_callback:  callback method for EVT_SET_FOCUS event 
    3702     :param mouse_up_callback:   callback method for EVT_LEFT_UP event 
    3703     :param text_enter_callback: callback method for EVT_TEXT_ENTER event 
    3704  
    3705     """ 
    3706     ## Set to True when the mouse is clicked while whole string is selected 
    3707     full_selection = False 
    3708     ## Call back for EVT_SET_FOCUS events 
    3709     _on_set_focus_callback = None 
    3710  
    3711     def __init__(self, parent, id=-1, 
    3712                  value=wx.EmptyString, 
    3713                  pos=wx.DefaultPosition, 
    3714                  size=wx.DefaultSize, 
    3715                  style=0, 
    3716                  validator=wx.DefaultValidator, 
    3717                  name=wx.TextCtrlNameStr, 
    3718                  kill_focus_callback=None, 
    3719                  set_focus_callback=None, 
    3720                  mouse_up_callback=None, 
    3721                  text_enter_callback=None): 
    3722  
    3723         wx.TextCtrl.__init__(self, parent, id, value, pos, 
    3724                              size, style, validator, name) 
    3725  
    3726         # Bind appropriate events 
    3727         self._on_set_focus_callback = parent.onSetFocus \ 
    3728             if set_focus_callback is None else set_focus_callback 
    3729         self.Bind(wx.EVT_SET_FOCUS, self._on_set_focus) 
    3730         self.Bind(wx.EVT_KILL_FOCUS, self._silent_kill_focus \ 
    3731             if kill_focus_callback is None else kill_focus_callback) 
    3732         self.Bind(wx.EVT_TEXT_ENTER, parent._onparamEnter \ 
    3733             if text_enter_callback is None else text_enter_callback) 
    3734         if not ON_MAC: 
    3735             self.Bind(wx.EVT_LEFT_UP, self._highlight_text \ 
    3736                 if mouse_up_callback is None else mouse_up_callback) 
    3737  
    3738     def _on_set_focus(self, event): 
    3739         """ 
    3740         Catch when the text control is set in focus to highlight the whole 
    3741         text if necessary 
    3742  
    3743         :param event: mouse event 
    3744  
    3745         """ 
    3746         event.Skip() 
    3747         self.full_selection = True 
    3748         return self._on_set_focus_callback(event) 
    3749  
    3750     def _highlight_text(self, event): 
    3751         """ 
    3752         Highlight text of a TextCtrl only of no text has be selected 
    3753  
    3754         :param event: mouse event 
    3755  
    3756         """ 
    3757         # Make sure the mouse event is available to other listeners 
    3758         event.Skip() 
    3759         control = event.GetEventObject() 
    3760         if self.full_selection: 
    3761             self.full_selection = False 
    3762             # Check that we have a TextCtrl 
    3763             if issubclass(control.__class__, wx.TextCtrl): 
    3764                 # Check whether text has been selected, 
    3765                 # if not, select the whole string 
    3766                 (start, end) = control.GetSelection() 
    3767                 if start == end: 
    3768                     control.SetSelection(-1, -1) 
    3769  
    3770     def _silent_kill_focus(self, event): 
    3771         """ 
    3772         Save the state of the page 
    3773         """ 
    3774  
    3775         event.Skip() 
    3776         #pass 
    3777  
  • src/sas/perspectives/fitting/batchfitpage.py

    r373d4ee r2f4b430  
    122122#         self.sizer5.Clear(True) 
    123123#       
    124 #         self.qmin  = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     124#         self.qmin  = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20),  
    125125#                                           style=wx.TE_PROCESS_ENTER,  
    126126#                                     text_enter_callback = self._onQrangeEnter) 
     
    128128#         self.qmin.SetToolTipString("Minimun value of Q in linear scale.") 
    129129#       
    130 #         self.qmax  = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     130#         self.qmax  = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20),  
    131131#                                           style=wx.TE_PROCESS_ENTER,  
    132132#                                         text_enter_callback=self._onQrangeEnter) 
  • src/sas/perspectives/fitting/fitpage.py

    r5265420 r85ccd3a  
    2626from sas.perspectives.fitting.basepage import PageInfoEvent as PageInfoEvent 
    2727from sas.models.qsmearing import smear_selection 
    28 from .basepage import ModelTextCtrl 
    2928 
    3029 
     
    285284 
    286285        #textcntrl for custom resolution 
    287         self.smear_pinhole_max = ModelTextCtrl(self, -1, 
     286        self.smear_pinhole_max = self.ModelTextCtrl(self, -1, 
    288287                            size=(_BOX_WIDTH - 25, 20), 
    289288                            style=wx.TE_PROCESS_ENTER, 
    290289                            text_enter_callback=self.onPinholeSmear) 
    291         self.smear_pinhole_min = ModelTextCtrl(self, -1, 
     290        self.smear_pinhole_min = self.ModelTextCtrl(self, -1, 
    292291                            size=(_BOX_WIDTH - 25, 20), 
    293292                            style=wx.TE_PROCESS_ENTER, 
    294293                            text_enter_callback=self.onPinholeSmear) 
    295         self.smear_slit_height = ModelTextCtrl(self, -1, 
     294        self.smear_slit_height = self.ModelTextCtrl(self, -1, 
    296295                            size=(_BOX_WIDTH - 25, 20), 
    297296                            style=wx.TE_PROCESS_ENTER, 
    298297                            text_enter_callback=self.onSlitSmear) 
    299         self.smear_slit_width = ModelTextCtrl(self, -1, 
     298        self.smear_slit_width = self.ModelTextCtrl(self, -1, 
    300299                            size=(_BOX_WIDTH - 25, 20), 
    301300                            style=wx.TE_PROCESS_ENTER, 
     
    304303        ## smear 
    305304        self.smear_data_left = BGTextCtrl(self, -1, 
    306                                           size=(_BOX_WIDTH - 25, 20), style=0) 
     305                                         size=(_BOX_WIDTH - 25, 20), style=0) 
    307306        self.smear_data_left.SetValue(str(self.dq_l)) 
    308307        self.smear_data_right = BGTextCtrl(self, -1, 
    309                                            size=(_BOX_WIDTH - 25, 20), style=0) 
     308                                        size=(_BOX_WIDTH - 25, 20), style=0) 
    310309        self.smear_data_right.SetValue(str(self.dq_r)) 
    311310 
     
    356355        self.Npts_fit.SetToolTipString(\ 
    357356                            " Npts : number of points selected for fitting") 
    358         self.Npts_total = ModelTextCtrl(self, -1, 
    359                             size=(_BOX_WIDTH, 20), 
    360                             style=wx.TE_PROCESS_ENTER, 
    361                             text_enter_callback=self._onQrangeEnter) 
     357        self.Npts_total = self.ModelTextCtrl(self, -1, 
     358                        size=(_BOX_WIDTH, 20), 
     359                        style=wx.TE_PROCESS_ENTER, 
     360                        text_enter_callback=self._onQrangeEnter) 
    362361        self.Npts_total.SetValue(format_number(self.npts_x)) 
    363362        self.Npts_total.SetToolTipString(\ 
     
    516515        self.sizer5.Clear(True) 
    517516 
    518         self.qmin = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    519                                   style=wx.TE_PROCESS_ENTER, 
    520                                   set_focus_callback=self.qrang_set_focus, 
    521                                   text_enter_callback=self._onQrangeEnter, 
    522                                   name='qmin') 
     517        self.qmin = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     518                                    style=wx.TE_PROCESS_ENTER, 
     519                                    set_focus_callback=self.qrang_set_focus, 
     520                                    text_enter_callback=self._onQrangeEnter, 
     521                                    name='qmin') 
    523522        self.qmin.SetValue(str(self.qmin_x)) 
    524523        q_tip = "Click outside of the axes\n to remove the lines." 
     
    527526        self.qmin.SetToolTipString(qmin_tip) 
    528527 
    529         self.qmax = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    530                                   style=wx.TE_PROCESS_ENTER, 
    531                                   set_focus_callback=self.qrang_set_focus, 
    532                                   text_enter_callback=self._onQrangeEnter, 
    533                                   name='qmax') 
     528        self.qmax = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     529                                       style=wx.TE_PROCESS_ENTER, 
     530                                       set_focus_callback=self.qrang_set_focus, 
     531                                       text_enter_callback=self._onQrangeEnter, 
     532                                       name='qmax') 
    534533        self.qmax.SetValue(str(self.qmax_x)) 
    535534        qmax_tip = "Maximum value of Q.\n" 
     
    687686                        ix = 1 
    688687                        value = self.model.getParam(name1) 
    689                         ctl1 = ModelTextCtrl(self, -1, 
    690                                              size=(_BOX_WIDTH / 1.3, 20), 
    691                                              style=wx.TE_PROCESS_ENTER) 
     688                        ctl1 = self.ModelTextCtrl(self, -1, 
     689                                                  size=(_BOX_WIDTH / 1.3, 20), 
     690                                                  style=wx.TE_PROCESS_ENTER) 
    692691                        ctl1.SetLabel('PD[ratio]') 
    693692                        poly_text = "Polydispersity (STD/mean) of %s\n" % item 
     
    716715 
    717716                        ix = 4 
    718                         ctl3 = ModelTextCtrl(self, -1, 
    719                                              size=(_BOX_WIDTH / 2, 20), 
    720                                              style=wx.TE_PROCESS_ENTER, 
    721                             text_enter_callback=self._onparamRangeEnter) 
     717                        ctl3 = self.ModelTextCtrl(self, -1, 
     718                                                  size=(_BOX_WIDTH / 2, 20), 
     719                                                  style=wx.TE_PROCESS_ENTER, 
     720                                text_enter_callback=self._onparamRangeEnter) 
    722721 
    723722                        self.sizer4_4.Add(ctl3, (iy, ix), (1, 1), 
     
    725724 
    726725                        ix = 5 
    727                         ctl4 = ModelTextCtrl(self, -1, 
    728                                              size=(_BOX_WIDTH / 2, 20), 
    729                                              style=wx.TE_PROCESS_ENTER, 
     726                        ctl4 = self.ModelTextCtrl(self, -1, 
     727                                                  size=(_BOX_WIDTH / 2, 20), 
     728                                                  style=wx.TE_PROCESS_ENTER, 
    730729                            text_enter_callback=self._onparamRangeEnter) 
    731730 
     
    739738                        ix = 6 
    740739                        value = self.model.getParam(name2) 
    741                         Tctl = ModelTextCtrl(self, -1, 
    742                                              size=(_BOX_WIDTH / 2.2, 20), 
    743                                              style=wx.TE_PROCESS_ENTER) 
     740                        Tctl = self.ModelTextCtrl(self, -1, 
     741                                                  size=(_BOX_WIDTH / 2.2, 20), 
     742                                                  style=wx.TE_PROCESS_ENTER) 
    744743 
    745744                        Tctl.SetValue(str(format_number(value))) 
     
    751750                        ix = 7 
    752751                        value = self.model.getParam(name3) 
    753                         Tct2 = ModelTextCtrl(self, -1, 
    754                                              size=(_BOX_WIDTH / 2.2, 20), 
    755                                              style=wx.TE_PROCESS_ENTER) 
     752                        Tct2 = self.ModelTextCtrl(self, -1, 
     753                                                  size=(_BOX_WIDTH / 2.2, 20), 
     754                                                  style=wx.TE_PROCESS_ENTER) 
    756755 
    757756                        Tct2.SetValue(str(format_number(value))) 
     
    812811                        ix = 1 
    813812                        value = self.model.getParam(name1) 
    814                         ctl1 = ModelTextCtrl(self, -1, 
    815                                              size=(_BOX_WIDTH / 1.3, 20), 
    816                                              style=wx.TE_PROCESS_ENTER) 
     813                        ctl1 = self.ModelTextCtrl(self, -1, 
     814                                                  size=(_BOX_WIDTH / 1.3, 20), 
     815                                                  style=wx.TE_PROCESS_ENTER) 
    817816                        poly_tip = "Absolute Sigma for %s." % item 
    818817                        ctl1.SetToolTipString(poly_tip) 
     
    860859 
    861860                        ix = 4 
    862                         ctl3 = ModelTextCtrl(self, -1, 
    863                                              size=(_BOX_WIDTH / 2, 20), 
    864                                              style=wx.TE_PROCESS_ENTER, 
     861                        ctl3 = self.ModelTextCtrl(self, -1, 
     862                                                  size=(_BOX_WIDTH / 2, 20), 
     863                                                  style=wx.TE_PROCESS_ENTER, 
    865864                                text_enter_callback=self._onparamRangeEnter) 
    866865 
     
    871870 
    872871                        ix = 5 
    873                         ctl4 = ModelTextCtrl(self, -1, 
    874                                              size=(_BOX_WIDTH / 2, 20), 
    875                                              style=wx.TE_PROCESS_ENTER, 
     872                        ctl4 = self.ModelTextCtrl(self, -1, 
     873                            size=(_BOX_WIDTH / 2, 20), 
     874                            style=wx.TE_PROCESS_ENTER, 
    876875                            text_enter_callback=self._onparamRangeEnter) 
    877876                        self.sizer4_4.Add(ctl4, (iy, ix), (1, 1), 
     
    887886                        ix = 6 
    888887                        value = self.model.getParam(name2) 
    889                         Tctl = ModelTextCtrl(self, -1, 
    890                                              size=(_BOX_WIDTH / 2.2, 20), 
    891                                              style=wx.TE_PROCESS_ENTER) 
     888                        Tctl = self.ModelTextCtrl(self, -1, 
     889                                                 size=(_BOX_WIDTH / 2.2, 20), 
     890                                                 style=wx.TE_PROCESS_ENTER) 
    892891 
    893892                        Tctl.SetValue(str(format_number(value))) 
     
    907906                        ix = 7 
    908907                        value = self.model.getParam(name3) 
    909                         Tct2 = ModelTextCtrl(self, -1, 
    910                                              size=(_BOX_WIDTH / 2.2, 20), 
    911                                              style=wx.TE_PROCESS_ENTER) 
     908                        Tct2 = self.ModelTextCtrl(self, -1, 
     909                                                  size=(_BOX_WIDTH / 2.2, 20), 
     910                                                  style=wx.TE_PROCESS_ENTER) 
    912911 
    913912                        Tct2.SetValue(str(format_number(value))) 
     
    10621061            label = "Fit" 
    10631062            color = "black" 
    1064         #self.btFit.Enable(False) 
     1063        self.btFit.Enable(False) 
    10651064        self.btFit.SetLabel(label) 
    10661065        self.btFit.SetForegroundColour(color) 
     
    11411140        self.state.formfactorcombobox = self.formfactorbox.GetLabel() 
    11421141        self.enable_fit_button() 
    1143         if self.model is not None: 
     1142        if self.model != None: 
    11441143            self.m_name = self.model.name 
    11451144            self.state.m_name = self.m_name 
     
    11531152                    self._keep.Enable(not self.batch_on) 
    11541153                    self._set_save_flag(True) 
     1154            # Reset smearer, model and data 
     1155            if not copy_flag: 
     1156                self.disable_smearer.SetValue(True) 
     1157                self.enable_smearer.SetValue(False) 
    11551158 
    11561159            # more disables for 2D 
     
    11591162            try: 
    11601163                # update smearer sizer 
     1164                #if not self.enable_smearer.GetValue(): 
     1165                #    self.disable_smearer.SetValue(True) 
    11611166                self.onSmear(None) 
    11621167                temp_smear = None 
     
    12631268                elif self.data.__class__.__name__ != "Data2D" and \ 
    12641269                        not self.enable2D: 
    1265                     enable_smearer = not self.disable_smearer.GetValue() 
    12661270                    self._manager.set_smearer(smearer=temp_smearer, 
    12671271                                              fid=self.data.id, 
     
    12691273                                              qmin=float(self.qmin_x), 
    12701274                                              qmax=float(self.qmax_x), 
    1271                                               enable_smearer=enable_smearer, 
    1272                                               draw=True) 
     1275                            enable_smearer=not self.disable_smearer.GetValue(), 
     1276                                            draw=True) 
    12731277                if flag: 
    12741278                    #self.compute_chisqr(smearer= temp_smearer) 
     
    17681772        self.current_smearer = smear_selection(data, self.model) 
    17691773        flag = self.disable_smearer.GetValue() 
    1770         if self.current_smearer is None: 
     1774        self.disable_smearer.SetValue(flag) 
     1775        if self.current_smearer == None: 
    17711776            self.enable_smearer.Disable() 
    17721777        else: 
     
    19541959        if flag: 
    19551960            #set model view button 
     1961            if not self.enable_smearer.GetValue(): 
     1962                    self.disable_smearer.SetValue(True) 
    19561963            self.onSmear(None) 
    19571964 
     
    21252132                            if numpy.isfinite(float(cov[ind])): 
    21262133                                val_err = format_number(cov[ind], True) 
    2127                             else: 
    2128                                 val_err = 'NaN' 
    2129                             if not self.is_mac: 
    2130                                 item[3].Show(True) 
    2131                                 item[4].Show(True) 
    2132                                 item[4].SetForegroundColour(wx.RED) 
    2133                             item[4].SetValue(val_err) 
    2134                             has_error = True 
     2134                                if not self.is_mac: 
     2135                                    item[3].Show(True) 
     2136                                    item[4].Show(True) 
     2137                                    item[4].SetForegroundColour(wx.BLACK) 
     2138                                item[4].SetValue(val_err) 
     2139                                has_error = True 
     2140                            else: 
     2141                                val_err = 'NaN' 
     2142                                if not self.is_mac: 
     2143                                    item[3].Show(True) 
     2144                                    item[4].Show(True) 
     2145                                    item[4].SetForegroundColour(wx.RED) 
     2146                                item[4].SetValue(val_err) 
     2147                                has_error = True 
    21352148                i += 1 
    21362149            else: 
     
    21832196 
    21842197        """ 
     2198        if self.model == None: 
     2199            self.disable_smearer.SetValue(True) 
     2200            if event == None: 
     2201                return 
     2202            msg = "Please select a Model first..." 
     2203            wx.MessageBox(msg, 'Info') 
     2204            wx.PostEvent(self._manager.parent, 
     2205                         StatusEvent(status="Smear: %s" % msg)) 
     2206            return 
     2207 
    21852208        # Need update param values 
    21862209        self._update_paramv_on_fit() 
     
    23222345        ## set smearing value whether or not the data contain the smearing info 
    23232346 
    2324         enable_smearer = not self.disable_smearer.GetValue() 
    23252347        self._manager.set_smearer(smearer=self.current_smearer, 
    2326                                   fid=self.data.id, 
    2327                                   qmin=float(self.qmin_x), 
    2328                                   qmax=float(self.qmax_x), 
    2329                                   enable_smearer=enable_smearer, 
    2330                                   uid=self.uid) 
     2348                            fid=self.data.id, 
     2349                            qmin=float(self.qmin_x), 
     2350                            qmax=float(self.qmax_x), 
     2351                            enable_smearer=not self.disable_smearer.GetValue(), 
     2352                            uid=self.uid) 
    23312353        return msg 
    23322354 
     
    23562378        are compute when fitting 
    23572379        """ 
     2380        if self.model == None: 
     2381            self.disable_smearer.SetValue(True) 
     2382            if event == None: 
     2383                return 
     2384            msg = "Please select a Model first..." 
     2385            wx.MessageBox(msg, 'Info') 
     2386            wx.PostEvent(self._manager.parent, 
     2387                         StatusEvent(status="Smear: %s" % msg)) 
     2388            return 
     2389 
    23582390        # Need update param values 
    23592391        self._update_paramv_on_fit() 
     
    24432475            of the values entered for slit smear 
    24442476        """ 
    2445         if self.data.__class__.__name__ == "Data2D" or self.enable2D: 
     2477        if self.data.__class__.__name__ == "Data2D" or \ 
     2478                        self.enable2D: 
    24462479            return 
    24472480        # make sure once more if it is smearer 
     
    24802513        self.current_smearer = smear_selection(data, self.model) 
    24812514        ## set smearing value whether or not the data contain the smearing info 
    2482         enable_smearer = not self.disable_smearer.GetValue() 
    24832515        self._manager.set_smearer(smearer=self.current_smearer, 
    2484                                   fid=self.data.id, 
    2485                                   qmin=float(self.qmin_x), 
    2486                                   qmax=float(self.qmax_x), 
    2487                                   enable_smearer=enable_smearer, 
    2488                                   uid=self.uid) 
     2516                                 fid=self.data.id, 
     2517                                 qmin=float(self.qmin_x), 
     2518                                 qmax=float(self.qmax_x), 
     2519                        enable_smearer=not self.disable_smearer.GetValue(), 
     2520                                 uid=self.uid) 
    24892521        return msg 
    24902522 
     
    25202552            return 
    25212553 
     2554        if self.model == None: 
     2555            self.disable_smearer.SetValue(True) 
     2556            if event == None: 
     2557                return 
     2558            msg = "Please select a Model first..." 
     2559            wx.MessageBox(msg, 'Info') 
     2560            wx.PostEvent(self._manager.parent, 
     2561                         StatusEvent(status="Smear: %s" % msg)) 
     2562            return 
    25222563        # Need update param values 
    25232564        self._update_paramv_on_fit() 
    2524         if self.model is not None: 
     2565        if self.model != None: 
    25252566            if self.data.is_data: 
    25262567                self._manager.page_finder[self.uid].add_data(data=self.data) 
     
    25322573 
    25332574        ## set smearing value whether or not the data contain the smearing info 
    2534         enable_smearer = not self.disable_smearer.GetValue() 
    25352575        wx.CallAfter(self._manager.set_smearer, uid=self.uid, 
    25362576                     smearer=temp_smearer, 
     
    25382578                     qmin=float(self.qmin_x), 
    25392579                     qmax=float(self.qmax_x), 
    2540                      enable_smearer=enable_smearer, 
     2580                     enable_smearer=not self.disable_smearer.GetValue(), 
    25412581                     draw=True) 
    25422582 
     
    25542594        self._get_smear_info() 
    25552595        #renew smear sizer 
    2556         if self.smear_type is not None: 
     2596        if self.smear_type != None: 
    25572597            self.smear_description_smear_type.SetValue(str(self.smear_type)) 
    25582598            self.smear_data_left.SetValue(str(self.dq_l)) 
     
    25672607            self.current_smearer = temp_smearer 
    25682608        if self.enable_smearer.GetValue(): 
    2569             if self.current_smearer is None: 
     2609            if self.current_smearer == None: 
    25702610                wx.PostEvent(self._manager.parent, 
    25712611                    StatusEvent(status="Data contains no smearing information")) 
     
    29132953                        wx.EVT_COMBOBOX(fun_box, -1, self._on_fun_box) 
    29142954                    else: 
    2915                         fun_box = ModelTextCtrl(self, -1, 
    2916                                                 size=(_BOX_WIDTH, 20), 
     2955                        fun_box = self.ModelTextCtrl(self, -1, 
     2956                                                     size=(_BOX_WIDTH, 20), 
    29172957                                style=wx.TE_PROCESS_ENTER, name='%s' % item) 
    29182958                        fun_box.SetToolTipString(\ 
     
    29372977                    ix += 1 
    29382978                    value = self.model.getParam(item) 
    2939                     ctl1 = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    2940                                          style=wx.TE_PROCESS_ENTER) 
     2979                    ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     2980                                        style=wx.TE_PROCESS_ENTER) 
    29412981                    ctl1.SetToolTipString(\ 
    29422982                                "Hit 'Enter' after typing to update the plot.") 
     
    29592999 
    29603000                    ix += 1 
    2961                     ctl3 = ModelTextCtrl(self, -1, 
    2962                                          size=(_BOX_WIDTH / 1.9, 20), 
    2963                                          style=wx.TE_PROCESS_ENTER, 
     3001                    ctl3 = self.ModelTextCtrl(self, -1, 
     3002                                              size=(_BOX_WIDTH / 1.9, 20), 
     3003                                              style=wx.TE_PROCESS_ENTER, 
    29643004                                text_enter_callback=self._onparamRangeEnter) 
    29653005                    min_bound = self.model.details[item][1] 
     
    29713011 
    29723012                    ix += 1 
    2973                     ctl4 = ModelTextCtrl(self, -1, 
    2974                                          size=(_BOX_WIDTH / 1.9, 20), 
    2975                                          style=wx.TE_PROCESS_ENTER, 
     3013                    ctl4 = self.ModelTextCtrl(self, -1, 
     3014                                              size=(_BOX_WIDTH / 1.9, 20), 
     3015                                              style=wx.TE_PROCESS_ENTER, 
    29763016                                text_enter_callback=self._onparamRangeEnter) 
    29773017                    max_bound = self.model.details[item][2] 
     
    30753115                    ix += 1 
    30763116                    value = self.model.getParam(item) 
    3077                     ctl1 = ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
    3078                                          style=wx.TE_PROCESS_ENTER) 
     3117                    ctl1 = self.ModelTextCtrl(self, -1, size=(_BOX_WIDTH, 20), 
     3118                                        style=wx.TE_PROCESS_ENTER) 
    30793119                    ctl1.SetToolTipString(\ 
    30803120                                "Hit 'Enter' after typing to update the plot.") 
     
    31023142 
    31033143                    ix += 1 
    3104                     ctl3 = ModelTextCtrl(self, -1, 
    3105                                          size=(_BOX_WIDTH / 1.8, 20), 
    3106                                          style=wx.TE_PROCESS_ENTER, 
     3144                    ctl3 = self.ModelTextCtrl(self, -1, 
     3145                                              size=(_BOX_WIDTH / 1.8, 20), 
     3146                                              style=wx.TE_PROCESS_ENTER, 
    31073147                                text_enter_callback=self._onparamRangeEnter) 
    31083148 
     
    31123152 
    31133153                    ix += 1 
    3114                     ctl4 = ModelTextCtrl(self, -1, 
    3115                                          size=(_BOX_WIDTH / 1.8, 20), 
    3116                                          style=wx.TE_PROCESS_ENTER, 
     3154                    ctl4 = self.ModelTextCtrl(self, -1, 
     3155                                              size=(_BOX_WIDTH / 1.8, 20), 
     3156                                              style=wx.TE_PROCESS_ENTER, 
    31173157                            text_enter_callback=self._onparamRangeEnter) 
    31183158                    sizer.Add(ctl4, (iy, ix), (1, 1), 
  • src/sas/perspectives/fitting/fitting.py

    r373d4ee racf8e4a5  
    12111211            del self.fit_thread_list[uid] 
    12121212 
    1213         wx.CallAfter(self._update_fit_button, page_id) 
     1213        self._update_fit_button(page_id) 
    12141214        t1 = time.time() 
    12151215        str_time = time.strftime("%a, %d %b %Y %H:%M:%S ", time.localtime(t1)) 
     
    14501450                                                      type="stop")) 
    14511451        wx.PostEvent(self.result_panel, PlotResultEvent(result=result)) 
    1452         wx.CallAfter(self._update_fit_button, page_id) 
     1452        self._update_fit_button(page_id) 
    14531453        result = result[0] 
    14541454        self.fit_thread_list = {} 
     
    14701470                                         info="warning", 
    14711471                                         type="stop")) 
    1472                     wx.CallAfter(self._update_fit_button, page_id) 
     1472                    self._update_fit_button(page_id) 
    14731473                else: 
    14741474                    #set the panel when fit result are float not list 
Note: See TracChangeset for help on using the changeset viewer.