Index: src/sas/qtgui/Perspectives/Inversion/InversionPerspective.py
===================================================================
--- src/sas/qtgui/Perspectives/Inversion/InversionPerspective.py	(revision d4881f6af1db66e68fbbc5d7b5c67fc1f7bc1ea7)
+++ src/sas/qtgui/Perspectives/Inversion/InversionPerspective.py	(revision 6a3e1fed96400e06c3fff6a0cf0316fe8169b0d5)
@@ -132,6 +132,6 @@
         """Connect the use controls to their appropriate methods"""
         self.dataList.currentIndexChanged.connect(self.displayChange)
-        self.calculateAllButton.clicked.connect(self.startThreadAll)
-        self.calculateThisButton.clicked.connect(self.startThread)
+        #self.calculateAllButton.clicked.connect(self.startThreadAll)
+        #self.calculateThisButton.clicked.connect(self.startThread)
         self.removeButton.clicked.connect(self.removeData)
         self.helpButton.clicked.connect(self.help)
@@ -208,7 +208,7 @@
         # Main Buttons
         self.mapper.addMapping(self.removeButton, WIDGETS.W_REMOVE)
-        self.mapper.addMapping(self.calculateAllButton, WIDGETS.W_CALCULATE_ALL)
-        self.mapper.addMapping(self.calculateThisButton,
-                               WIDGETS.W_CALCULATE_VISIBLE)
+        #self.mapper.addMapping(self.calculateAllButton, WIDGETS.W_CALCULATE_ALL)
+        #self.mapper.addMapping(self.calculateThisButton,
+        #                       WIDGETS.W_CALCULATE_VISIBLE)
         self.mapper.addMapping(self.helpButton, WIDGETS.W_HELP)
 
@@ -269,6 +269,6 @@
         self.removeButton.setEnabled(self.logic.data_is_loaded)
         self.explorerButton.setEnabled(self.logic.data_is_loaded)
-        self.calculateAllButton.setEnabled(self.logic.data_is_loaded)
-        self.calculateThisButton.setEnabled(self.logic.data_is_loaded)
+        #self.calculateAllButton.setEnabled(self.logic.data_is_loaded)
+        #self.calculateThisButton.setEnabled(self.logic.data_is_loaded)
 
     def populateDataComboBox(self, filename, data_ref):
@@ -278,7 +278,5 @@
         :param data_ref: QStandardItem reference for data set to be added
         """
-        qt_item = QtCore.QString.fromUtf8(filename)
-        ref = QtCore.QVariant(data_ref)
-        self.dataList.addItem(qt_item, ref)
+        self.dataList.addItem(filename, data_ref)
 
     def acceptNoTerms(self):
@@ -294,5 +292,5 @@
     def displayChange(self):
         variant_ref = self.dataList.itemData(self.dataList.currentIndex())
-        self.setCurrentData(variant_ref.toPyObject())
+        self.setCurrentData(variant_ref)
 
     def removeData(self):
@@ -326,10 +324,8 @@
         if self.pr_plot is not None:
             title = self.pr_plot.name
-            GuiUtils.updateModelItemWithPlot(
-                self._data, QtCore.QVariant(self.pr_plot), title)
+            GuiUtils.updateModelItemWithPlot(self._data, self.pr_plot, title)
         if self.data_plot is not None:
             title = self.data_plot.name
-            GuiUtils.updateModelItemWithPlot(
-                self._data, QtCore.QVariant(self.data_plot), title)
+            GuiUtils.updateModelItemWithPlot(self._data, self.data_plot, title)
         self.mapper.toFirst()
 
@@ -383,13 +379,9 @@
         for data in data_item:
             # Create initial internal mappings
-            # TODO: in PyQt5 QStandardItem no longer can be used as dict key
-            # Possibly the easiest solution is to subclass QStandardItem
-            # and reimplement __hash__() method so it can be hashed.
-            self._data_list[data] = self._calculator.clone() #<- this crashes
+            self._data_list[data] = self._calculator.clone()
             self._data_set = GuiUtils.dataFromItem(data)
             self.data_plot_list[data] = self.data_plot
             self.pr_plot_list[data] = self.pr_plot
-            ref_var = QtCore.QVariant(data)
-            self.populateDataComboBox(self._data_set.filename, ref_var)
+            self.populateDataComboBox(self._data_set.filename, data)
             self.setCurrentData(data)
 
@@ -400,8 +392,6 @@
             # Estimate q range
             qmin, qmax = self.logic.computeDataRange()
-            self.model.setItem(WIDGETS.W_QMIN, QtGui.QStandardItem(
-                "{:.4g}".format(qmin)))
-            self.model.setItem(WIDGETS.W_QMAX, QtGui.QStandardItem(
-                "{:.4g}".format(qmax)))
+            self.model.setItem(WIDGETS.W_QMIN, QtGui.QStandardItem("{:.4g}".format(qmin)))
+            self.model.setItem(WIDGETS.W_QMAX, QtGui.QStandardItem("{:.4g}".format(qmax)))
 
         self.enableButtons()
@@ -409,8 +399,11 @@
     def getNFunc(self):
         """Get the n_func value from the GUI object"""
-        return int(UI.TabbedInversionUI._fromUtf8(self.noOfTermsInput.text()))
+        return int(self.noOfTermsInput.text())
 
     def setCurrentData(self, data_ref):
         """Get the current data and display as necessary"""
+
+        if data_ref is None:
+            return
 
         if not isinstance(data_ref, QtGui.QStandardItem):
@@ -424,4 +417,7 @@
         self.pr_plot = self.pr_plot_list[data_ref]
         self.data_plot = self.data_plot_list[data_ref]
+        # Rerun the calculations for the current set
+        self.startThread()
+        self.model_changed()
 
     ######################################################################
@@ -512,7 +508,6 @@
         """
         # Save useful info
-        self.model.setItem(WIDGETS.W_COMP_TIME,
-                           QtGui.QStandardItem(str(elapsed)))
-        self.regConstantSuggestionButton.setText(QtCore.QString(str(alpha)))
+        self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem(str(elapsed)))
+        self.regConstantSuggestionButton.setText("{:-3.2g}".format(alpha))
         self.regConstantSuggestionButton.setEnabled(True)
         if message:
@@ -531,13 +526,10 @@
         """
         # Save useful info
-        self.noOfTermsSuggestionButton.setText(QtCore.QString(
-            "{:n}".format(nterms)))
+        self.noOfTermsSuggestionButton.setText("{:n}".format(nterms))
         self.noOfTermsSuggestionButton.setEnabled(True)
-        self.regConstantSuggestionButton.setText(QtCore.QString(
-            "{:.3g}".format(alpha)))
+        self.regConstantSuggestionButton.setText("{:.3g}".format(alpha))
         self.regConstantSuggestionButton.setEnabled(True)
-        self.model.setItem(WIDGETS.W_COMP_TIME,
-                           QtGui.QStandardItem(str(elapsed)))
-        self.PrTabWidget.setCurrentIndex(0)
+        self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem(str(elapsed)))
+        #self.PrTabWidget.setCurrentIndex(0)
         if message:
             logging.info(message)
@@ -563,23 +555,17 @@
         # TODO: Connect self._calculator to GUI - two-to-one connection possible?
         self.model.setItem(WIDGETS.W_RG, QtGui.QStandardItem(str(pr.rg(out))))
-        self.model.setItem(WIDGETS.W_I_ZERO,
-                           QtGui.QStandardItem(str(pr.iq0(out))))
+        self.model.setItem(WIDGETS.W_I_ZERO, QtGui.QStandardItem(str(pr.iq0(out))))
         self.model.setItem(WIDGETS.W_BACKGROUND_INPUT,
                            QtGui.QStandardItem("{:.3f}".format(pr.est_bck)))
-        self.model.setItem(WIDGETS.W_BACKGROUND_OUTPUT,
-                           QtGui.QStandardItem(str(pr.background)))
-        self.model.setItem(WIDGETS.W_CHI_SQUARED,
-                           QtGui.QStandardItem(str(pr.chi2[0])))
-        self.model.setItem(WIDGETS.W_COMP_TIME,
-                           QtGui.QStandardItem(str(elapsed)))
-        self.model.setItem(WIDGETS.W_OSCILLATION,
-                           QtGui.QStandardItem(str(pr.oscillations(out))))
-        self.model.setItem(WIDGETS.W_POS_FRACTION,
-                           QtGui.QStandardItem(str(pr.get_positive(out))))
+        self.model.setItem(WIDGETS.W_BACKGROUND_OUTPUT, QtGui.QStandardItem(str(pr.background)))
+        self.model.setItem(WIDGETS.W_CHI_SQUARED, QtGui.QStandardItem(str(pr.chi2[0])))
+        self.model.setItem(WIDGETS.W_COMP_TIME, QtGui.QStandardItem(str(elapsed)))
+        self.model.setItem(WIDGETS.W_OSCILLATION, QtGui.QStandardItem(str(pr.oscillations(out))))
+        self.model.setItem(WIDGETS.W_POS_FRACTION, QtGui.QStandardItem(str(pr.get_positive(out))))
         self.model.setItem(WIDGETS.W_SIGMA_POS_FRACTION,
                            QtGui.QStandardItem(str(pr.get_pos_err(out, cov))))
 
         # Display results tab
-        self.PrTabWidget.setCurrentIndex(1)
+        #self.PrTabWidget.setCurrentIndex(1)
         # Save Pr invertor
         self._calculator = pr
