Index: src/sas/qtgui/Calculators/SldPanel.py
===================================================================
--- src/sas/qtgui/Calculators/SldPanel.py	(revision aed053275d5f293f1f6495be4c78e4b18fc52b41)
+++ src/sas/qtgui/Calculators/SldPanel.py	(revision d738feb7407779519da80f88d490de676d63205b)
@@ -134,6 +134,10 @@
 
         # signals
-        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Reset).clicked.connect(self.modelReset)
-        self.ui.buttonBox.button(QtWidgets.QDialogButtonBox.Help).clicked.connect(self.displayHelp)
+        self.ui.helpButton.clicked.connect(self.displayHelp)
+        self.ui.closeButton.clicked.connect(self.closePanel)
+        self.ui.recalculateButton.clicked.connect(self.calculateSLD)
+
+    def calculateSLD(self):
+        self.recalculateSLD()
 
     def setupModel(self):
@@ -169,36 +173,39 @@
                 update = True
 
-        # calcualtion
+        # calculation
         if update:
-            formula = self.model.item(MODEL.MOLECULAR_FORMULA).text()
-            density = self.model.item(MODEL.MASS_DENSITY).text()
-            wavelength = self.model.item(MODEL.WAVELENGTH).text()
-            if len(formula) > 0 and len(density) > 0 and len(wavelength) > 0:
-                try:
-                    results = sldAlgorithm(str(formula), float(density), float(wavelength))
-
-                    def format(value):
-                        return ("%-5.3g" % value).strip()
-
-                    self.model.item(MODEL.NEUTRON_SLD_REAL).setText(format(results.neutron_sld_real))
-                    self.model.item(MODEL.NEUTRON_SLD_IMAG).setText(format(results.neutron_sld_imag))
-
-                    self.model.item(MODEL.CU_KA_SLD_REAL).setText(format(results.cu_ka_sld_real))
-                    self.model.item(MODEL.CU_KA_SLD_IMAG).setText(format(results.cu_ka_sld_imag))
-
-                    self.model.item(MODEL.MO_KA_SLD_REAL).setText(format(results.mo_ka_sld_real))
-                    self.model.item(MODEL.MO_KA_SLD_IMAG).setText(format(results.mo_ka_sld_imag))
-
-                    self.model.item(MODEL.NEUTRON_INC_XS).setText(format(results.neutron_inc_xs))
-                    self.model.item(MODEL.NEUTRON_ABS_XS).setText(format(results.neutron_abs_xs))
-                    self.model.item(MODEL.NEUTRON_LENGTH).setText(format(results.neutron_length))
-
-                    return
-            
-                except Exception as e:
-                    pass
-
-            for key in list(self._getOutputs().keys()):
-                self.model.item(key).setText("")
+            self.recalculateSLD()
+
+    def recalculateSLD(self):
+        formula = self.model.item(MODEL.MOLECULAR_FORMULA).text()
+        density = self.model.item(MODEL.MASS_DENSITY).text()
+        wavelength = self.model.item(MODEL.WAVELENGTH).text()
+        if len(formula) > 0 and len(density) > 0 and len(wavelength) > 0:
+            try:
+                results = sldAlgorithm(str(formula), float(density), float(wavelength))
+
+                def format(value):
+                    return ("%-5.3g" % value).strip()
+
+                self.model.item(MODEL.NEUTRON_SLD_REAL).setText(format(results.neutron_sld_real))
+                self.model.item(MODEL.NEUTRON_SLD_IMAG).setText(format(results.neutron_sld_imag))
+
+                self.model.item(MODEL.CU_KA_SLD_REAL).setText(format(results.cu_ka_sld_real))
+                self.model.item(MODEL.CU_KA_SLD_IMAG).setText(format(results.cu_ka_sld_imag))
+
+                self.model.item(MODEL.MO_KA_SLD_REAL).setText(format(results.mo_ka_sld_real))
+                self.model.item(MODEL.MO_KA_SLD_IMAG).setText(format(results.mo_ka_sld_imag))
+
+                self.model.item(MODEL.NEUTRON_INC_XS).setText(format(results.neutron_inc_xs))
+                self.model.item(MODEL.NEUTRON_ABS_XS).setText(format(results.neutron_abs_xs))
+                self.model.item(MODEL.NEUTRON_LENGTH).setText(format(results.neutron_length))
+
+                return
+
+            except Exception as e:
+                pass
+
+        for key in list(self._getOutputs().keys()):
+            self.model.item(key).setText("")
 
     def modelReset(self):
@@ -217,2 +224,8 @@
 
 
+    def closePanel(self):
+        """
+        close the window containing this panel
+        """
+        self.close()
+
