Index: sansview/perspectives/fitting/fitpage1D.py
===================================================================
--- sansview/perspectives/fitting/fitpage1D.py	(revision dc317d1acfd16a02327d7543345ef2c4f23a8dad)
+++ sansview/perspectives/fitting/fitpage1D.py	(revision 08b9c6c8ba9d8d6475482f93cc09a6829f108e9a)
@@ -4,5 +4,5 @@
 import numpy,math
 import copy
-
+import sans.models.dispersion_models 
 from sans.guicomm.events import StatusEvent   
 (ModelEventbox, EVT_MODEL_BOX) = wx.lib.newevent.NewEvent()
@@ -51,4 +51,5 @@
         #panel interface
         self.vbox  = wx.BoxSizer(wx.VERTICAL)
+        self.sizer6 = wx.GridBagSizer(5,5)
         self.sizer5 = wx.GridBagSizer(5,5)
         self.sizer4 = wx.GridBagSizer(5,5)
@@ -59,5 +60,13 @@
         
         self.DataSource  =wx.StaticText(self, -1,str(data.name))
-        
+        self.smearer_box = wx.ComboBox(self, -1)
+        wx.EVT_COMBOBOX( self.smearer_box,-1, self.onSmear ) 
+        self.smeares= sans.models.dispersion_models.models
+        i=0
+        self.smearer_box.SetValue(str(None))
+        self.smearer_box.Insert(str(None),i)
+        for k,v in self.smeares.iteritems():
+            self.smearer_box.Insert(str(v),i)
+            i+=1
         self.modelbox = wx.ComboBox(self, -1)
         id = wx.NewId()
@@ -71,4 +80,5 @@
         self.vbox.Add(self.static_line_1, 0, wx.EXPAND, 0)
         self.vbox.Add(self.sizer5)
+        self.vbox.Add(self.sizer6)
         self.vbox.Add(self.sizer4)
         self.vbox.Add(self.sizer1)
@@ -86,4 +96,11 @@
         ix += 1
         self.sizer3.Add((20,20),(iy,ix),(1,1),wx.RIGHT|wx.EXPAND|wx.ADJUST_MINSIZE,0)
+        ix = 0
+        iy += 1
+        self.sizer3.Add(wx.StaticText(self,-1,'Averaging (Smearer Type)'),(iy,ix),(1,1)\
+                  , wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+        ix += 1
+        self.sizer3.Add(self.smearer_box,(iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+        
         ix = 0
         iy += 1
@@ -133,9 +150,5 @@
         ix = 0
         iy = 1
-        self.smear= wx.CheckBox(self, -1, "Fit with Smear", (10, 10))
-        wx.EVT_CHECKBOX(self, self.smear.GetId(), self.onSmear)
-        self.sizer1.Add(self.smear,(iy,ix),(1,1),\
-                   wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
-        iy+=1
+        
         self.text1_1 = wx.StaticText(self, -1, 'Chi2/dof', style=wx.ALIGN_LEFT)
         #self.sizer1.Add(self.text1_1,1)
@@ -160,4 +173,5 @@
         # contains link between  model ,all its parameters, and panel organization
         self.parameters=[]
+        self.fixed_param=[]
         #contains link between a model and selected parameters to fit 
         self.param_toFit=[]
@@ -371,4 +385,5 @@
         self.sizer2.Clear(True)
         self.sizer5.Clear(True)
+        self.sizer6.Clear(True)
         self.parameters = []
         self.param_toFit=[]
@@ -378,6 +393,10 @@
         keys.sort()
         disp_list=self.model.getDispParamList()
+        fixed=self.model.fixed
         ip=0
         iq=1
+        
+        ik=0
+        im=1
         if len(disp_list)>0:
             disp = wx.StaticText(self, -1, 'Dispersion')
@@ -418,5 +437,5 @@
                 self.sizer2.Add( cb,( iy, ix),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
                 wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param)
-                
+            
                 ix += 1
                 value= self.model.getParam(item)
@@ -426,4 +445,5 @@
                 ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter)
                 self.sizer2.Add(ctl1, (iy,ix),(1,1), wx.EXPAND)
+                
                 ix += 1
                 text2=wx.StaticText(self, -1, '+/-')
@@ -443,19 +463,33 @@
                 self.sizer2.Add(units, (iy,ix),(1,1),  wx.EXPAND|wx.ADJUST_MINSIZE, 0)
             else:
-                ip = 0
-                iq += 1
-                cb = wx.CheckBox(self, -1, item, (10, 10))
-                cb.SetValue(False)
-                self.sizer5.Add( cb,( iq, ip),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
-                wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param)
-                
-                ip += 1
-                value= self.model.getParam(item)
-                ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER)
-                ctl1.SetValue(str (format_number(value)))
-                ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter)
-                ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter)
-                self.sizer5.Add(ctl1, (iq,ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)
-                
+                if not item in fixed:
+                    ip = 0
+                    iq += 1
+                    cb = wx.CheckBox(self, -1, item, (10, 10))
+                    cb.SetValue(False)
+                    self.sizer5.Add( cb,( iq, ip),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+                    wx.EVT_CHECKBOX(self, cb.GetId(), self.select_param)
+                    
+                    ip += 1
+                    value= self.model.getParam(item)
+                    ctl1 = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER)
+                    ctl1.SetValue(str (format_number(value)))
+                    ctl1.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter)
+                    ctl1.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter)
+                    self.sizer5.Add(ctl1, (iq,ip),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+                else:
+                    ik = 0
+                    text = wx.StaticText(self, -1, item, style=wx.ALIGN_LEFT)
+                    self.sizer6.Add(text,( im, ik),(1,1),  wx.LEFT|wx.EXPAND|wx.ADJUST_MINSIZE, 15)
+            
+                    ik += 1
+                    value= self.model.getParam(item)
+                    Tctl = wx.TextCtrl(self, -1, size=(_BOX_WIDTH,20), style=wx.TE_PROCESS_ENTER)
+                    Tctl.SetValue(str (format_number(value)))
+                    Tctl.Bind(wx.EVT_KILL_FOCUS, self._onparamEnter)
+                    Tctl.Bind(wx.EVT_TEXT_ENTER,self._onparamEnter)
+                    self.sizer6.Add(Tctl, (im,ik),(1,1), wx.EXPAND|wx.ADJUST_MINSIZE, 0)
+                    self.fixed_param.append([item, Tctl])
+                    im += 1
             #save data
             self.parameters.append([cb,ctl1,text2,ctl2])
@@ -512,5 +546,14 @@
                      wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\
                             "Drawing  Error:wrong value entered : %s"% sys.exc_value))
-           
+            for item in self.fixed_param:
+                try:
+                    
+                    name=str(item[0])
+                    value= float(item[1].GetValue())
+                    self.model.setParam(name,value) 
+                except:
+                    raise 
+                    wx.PostEvent(self.parent.GrandParent, StatusEvent(status=\
+                            "Drawing  Error:wrong value entered : %s"% sys.exc_value))
             self.manager.redraw_model(float(self.xmin.GetValue())\
                                                ,float(self.xmax.GetValue()))      
@@ -560,5 +603,5 @@
         else:
             self.cb1.SetValue(False)
-        
+            
         if not (len(self.param_toFit ) >0):
             self.xmin.Disable()
@@ -618,10 +661,12 @@
         
     def onSmear(self, event):
-        if self.smear.GetValue()==True:
+        if event.GetString()=="None":
+            self.manager.set_smearer(None)   
+            
+            
+        if event.GetString()=="GaussianModel":
             from DataLoader.qsmearing import smear_selection
             smear =smear_selection( self.data )
-            self.data.smearer= smear
-            #print "on smearing", self.data.smearer._compute_matrix()
-        else:
-            self.data.smearer=None
-        
+            self.manager.set_smearer(smear)   
+            print "on smearing"
+       
Index: sansview/perspectives/fitting/fitproblem.py
===================================================================
--- sansview/perspectives/fitting/fitproblem.py	(revision 6bcdad180ced0a30920cebfc41f2c610d8297ba6)
+++ sansview/perspectives/fitting/fitproblem.py	(revision 08b9c6c8ba9d8d6475482f93cc09a6829f108e9a)
@@ -22,8 +22,19 @@
         self.list_param=[]
         self.name_per_page=None
+        self.smearer= None
+        
+    def set_smearer(self, smearer):
+        self.smearer= smearer
+        print "smeaerer in fitproblem",self.smearer
+    def get_smearer(self):
+        return self.smearer
+    
     def save_model_name(self, name):  
         self.name_per_page= name
+        
+        
     def get_name(self):
         return self.name_per_page
+    
     def set_model(self,model,name):
         """ 
Index: sansview/perspectives/fitting/fitting.py
===================================================================
--- sansview/perspectives/fitting/fitting.py	(revision 6bcdad180ced0a30920cebfc41f2c610d8297ba6)
+++ sansview/perspectives/fitting/fitting.py	(revision 08b9c6c8ba9d8d6475482f93cc09a6829f108e9a)
@@ -319,4 +319,5 @@
                 list=value.get_model()
                 model=list[0]
+                smearer= value.get_smearer()
                 #Create list of parameters for fitting used
                 pars=[]
@@ -331,5 +332,5 @@
                     self.fitter.set_model(Model(model), self.id, pars) 
                    
-                    self.fitter.set_data(metadata,self.id,qmin,qmax)
+                    self.fitter.set_data(metadata,self.id,smearer, qmin,qmax)
                     self.fitter.select_problem_for_fit(Uid=self.id,value=value.get_scheduled())
                     page_fitted=page
@@ -461,5 +462,8 @@
             sim_page.add_model(self.page_finder)
         
-            
+    def  set_smearer(self,smearer):     
+         current_pg=self.fit_panel.get_current_page()
+         self.page_finder[current_pg].set_smearer(smearer)
+         
     def redraw_model(self,qmin= None,qmax= None):
         """
@@ -574,11 +578,9 @@
             Plot a theory from a model selected from the menu
         """
-        
         model=evt.model()
         #name="Model View"
         #print "mon menu",model.name
         description=model.description
-        #self.fit_panel.add_model_page(model,description,name)   
-            
+        #self.fit_panel.add_model_page(model,description,name)    
         self.draw_model(model,self.enable_model2D)
         
