Index: src/sas/qtgui/MainWindow/DataExplorer.py
===================================================================
--- src/sas/qtgui/MainWindow/DataExplorer.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/MainWindow/DataExplorer.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -182,5 +182,4 @@
         Opens the Qt "Open File..." dialog
         """
-        print("A")
         path_str = self.chooseFiles()
         if not path_str:
@@ -193,5 +192,5 @@
         Opens the Qt "Open Folder..." dialog
         """
-        folder = QtWidgets.QFileDialog.getExistingDirectory(self, "Choose a directory", "", None,
+        folder = QtWidgets.QFileDialog.getExistingDirectory(self, "Choose a directory", "",
               QtWidgets.QFileDialog.ShowDirsOnly | QtWidgets.QFileDialog.DontUseNativeDialog)
         if folder is None:
@@ -398,4 +397,5 @@
             if outer_item.isCheckable() and \
                    outer_item.checkState() == QtCore.Qt.Checked:
+                self.model.beginResetModel()
                 theories_copied += 1
                 new_item = self.recursivelyCloneItem(outer_item)
@@ -405,5 +405,6 @@
                 new_item.setText(new_name)
                 self.model.appendRow(new_item)
-            self.model.reset()
+                self.model.endResetModel()
+            #self.model.reset()
 
         freeze_msg = ""
@@ -577,5 +578,5 @@
 
         # Add the plot to the workspace
-        self.parent.workspace().addWindow(new_plot)
+        self.parent.workspace().addSubWindow(new_plot)
 
         # Show the plot
@@ -626,5 +627,6 @@
         # But only with Qt built-in dialog (non-platform native)
         paths = QtWidgets.QFileDialog.getOpenFileNames(self, "Choose a file", "",
-                wlist, None, QtWidgets.QFileDialog.DontUseNativeDialog)
+                wlist, None, QtWidgets.QFileDialog.DontUseNativeDialog)[0]
+        # [0] is new in Qt5 as getOpenFileNames() returns now a tuple!
         if paths is None:
             return
@@ -686,6 +688,6 @@
                     self.mutex.lock()
                     self.updateModel(new_data, p_file)
-                    self.model.reset()
-                    QtGui.qApp.processEvents()
+                    #self.model.reset()
+                    QtWidgets.QApplication.processEvents()
                     self.mutex.unlock()
 
@@ -907,5 +909,5 @@
         # Move the slider all the way up, if present
         vertical_scroll_bar = self.txt_widget.verticalScrollBar()
-        vertical_scroll_bar.triggerAction(QtGui.QScrollBar.SliderToMinimum)
+        vertical_scroll_bar.triggerAction(QtWidgets.QScrollBar.SliderToMinimum)
 
     def saveDataAs(self):
@@ -995,5 +997,5 @@
 
         # Reset the model so the view gets updated.
-        self.model.reset()
+        #self.model.reset()
         self.communicator.progressBarUpdateSignal.emit(-1)
 
@@ -1005,5 +1007,5 @@
         self.manager.add_data(data_list=output_data)
 
-    def loadErrback(self, reason):
+    def loadFailed(self, reason):
         print("File Load Failed with:\n", reason)
         pass
@@ -1047,5 +1049,7 @@
 
         # New row in the model
+        self.model.beginResetModel()
         self.model.appendRow(checkbox_item)
+        self.model.endResetModel()
 
     def updateModelFromPerspective(self, model_item):
@@ -1062,5 +1066,5 @@
 
         # Reset the view
-        self.model.reset()
+        ##self.model.reset()
         # Pass acting as a debugger anchor
         pass
@@ -1098,5 +1102,5 @@
 
 if __name__ == "__main__":
-    app = QtGui.QApplication([])
+    app = QtWidgets.QApplication([])
     dlg = DataExplorerWindow()
     dlg.show()
Index: src/sas/qtgui/MainWindow/GuiManager.py
===================================================================
--- src/sas/qtgui/MainWindow/GuiManager.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/MainWindow/GuiManager.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -77,5 +77,5 @@
 
         # Invoke the initial perspective
-        self.perspectiveChanged("Fitting")
+        #self.perspectiveChanged("Fitting")
         self.addWidgets()
 
@@ -91,5 +91,4 @@
         # Set up the status bar
         self.statusBarSetup()
-
         # Show the Welcome panel
         self.welcomePanel = WelcomePanel()
@@ -117,12 +116,12 @@
 
         self.dockedFilesWidget = QDockWidget("Data Explorer", self._workspace)
-        self.dockedFilesWidget.setFloating(True)
+        self.dockedFilesWidget.setFloating(False)
         self.dockedFilesWidget.setWidget(self.filesWidget)
 
         # Disable maximize/minimize and close buttons
         self.dockedFilesWidget.setFeatures(QDockWidget.NoDockWidgetFeatures)
-        self.dockedFilesWidget.setFeatures(Qt.LeftDockWidgetArea)
-
-        self._workspace.workspace.addDockWidget(Qt.LeftDockWidgetArea, self.dockedFilesWidget)
+
+        #self._workspace.workspace.addDockWidget(Qt.LeftDockWidgetArea, self.dockedFilesWidget)
+        self._workspace.addDockWidget(Qt.LeftDockWidgetArea, self.dockedFilesWidget)
 
         # Add the console window as another docked widget
@@ -132,5 +131,5 @@
         self.listWidget = QTextBrowser()
         self.logDockWidget.setWidget(self.listWidget)
-        self._workspace.workspace.addDockWidget(Qt.BottomDockWidgetAre, self.logDockWidget) 
+        self._workspace.addDockWidget(Qt.BottomDockWidgetArea, self.logDockWidget)
 
         # Add other, minor widgets
@@ -192,9 +191,10 @@
 
         # Resize to the workspace height
-        workspace_height = self._workspace.workspace.sizeHint().height()
-        perspective_size = self._current_perspective.sizeHint()
-        if workspace_height < perspective_size.height():
-            perspective_width = perspective_size.width()
-            self._current_perspective.resize(perspective_width, workspace_height-10)
+        #workspace_height = self._workspace.workspace.sizeHint().height()
+        #perspective_size = self._current_perspective.sizeHint()
+        #if workspace_height < perspective_size.height():
+        #    perspective_width = perspective_size.width()
+        #    self._current_perspective.resize(perspective_width, workspace_height-10)
+
         self._current_perspective.show()
 
Index: src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -48,5 +48,5 @@
             self.initStyleOption(options,index)
 
-            style = QtGui.QApplication.style() if options.widget is None else options.widget.style()
+            style = QtWidgets.QApplication.style() if options.widget is None else options.widget.style()
 
             # Prepare document for inserting into cell
@@ -178,5 +178,5 @@
             self.initStyleOption(options,index)
 
-            style = QtGui.QApplication.style() if options.widget is None else options.widget.style()
+            style = QtWidgets.QApplication.style() if options.widget is None else options.widget.style()
 
             # Prepare document for inserting into cell
@@ -256,5 +256,5 @@
             self.initStyleOption(options,index)
 
-            style = QtGui.QApplication.style() if options.widget is None else options.widget.style()
+            style = QtWidgets.QApplication.style() if options.widget is None else options.widget.style()
 
             # Prepare document for inserting into cell
Index: src/sas/qtgui/Plotting/LinearFit.py
===================================================================
--- src/sas/qtgui/Plotting/LinearFit.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/Plotting/LinearFit.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -19,4 +19,5 @@
 
 class LinearFit(QtWidgets.QDialog, Ui_LinearFitUI):
+    updatePlot = QtCore.pyqtSignal(tuple)
     def __init__(self, parent=None,
                  data=None,
@@ -178,6 +179,5 @@
         self.txtChi2.setText(formatNumber(self.Chivalue))
 
-        #self.parent.updatePlot.emit((tempx, tempy))
-        self.parent.emit(QtCore.SIGNAL('updatePlot'), (tempx, tempy))
+        self.updatePlot.emit((tempx, tempy))
 
     def origData(self):
Index: src/sas/qtgui/Plotting/Plotter.py
===================================================================
--- src/sas/qtgui/Plotting/Plotter.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/Plotting/Plotter.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -21,5 +21,4 @@
     1D Plot widget for use with a QDialog
     """
-    updatePlot = QtCore.pyqtSignal(tuple)
     def __init__(self, parent=None, manager=None, quickplot=False):
         super(PlotterWidget, self).__init__(parent, manager=manager, quickplot=quickplot)
@@ -41,10 +40,4 @@
         self.fit_result.symbol = 13
         self.fit_result.name = "Fit"
-
-        # Add a slot for receiving update signal from LinearFit
-        # NEW style signals
-        self.updatePlot.connect(self.onFitDisplay)
-        # OLD style signals
-        # QtCore.QObject.connect(self, QtCore.SIGNAL('updatePlot'), self.onFitDisplay)
 
     @property
@@ -365,4 +358,5 @@
                     xlabel=self.xLogLabel,
                     ylabel=self.yLogLabel)
+        fit_dialog.updatePlot.connect(self.onFitDisplay)
         if fit_dialog.exec_() == QtWidgets.QDialog.Accepted:
             return
Index: src/sas/qtgui/Plotting/Plotter2D.py
===================================================================
--- src/sas/qtgui/Plotting/Plotter2D.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/Plotting/Plotter2D.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -243,5 +243,5 @@
         self.slicer_widget.close_signal.connect(slicer_closed)
         # Add the plot to the workspace
-        self.manager.parent.workspace().addWindow(self.slicer_widget)
+        self.manager.parent.workspace().addSubWindow(self.slicer_widget)
 
         self.slicer_widget.show()
@@ -344,5 +344,5 @@
         self.boxwidget = BoxSum(self, model=self.box_sum_model)
         # Add the plot to the workspace
-        self.manager.parent.workspace().addWindow(self.boxwidget)
+        self.manager.parent.workspace().addSubWindow(self.boxwidget)
         self.boxwidget.show()
 
Index: src/sas/qtgui/Plotting/PlotterBase.py
===================================================================
--- src/sas/qtgui/Plotting/PlotterBase.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/Plotting/PlotterBase.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -317,5 +317,5 @@
         Copy MPL widget area to buffer
         """
-        bmp = QtGui.QApplication.clipboard()
+        bmp = QtWidgets.QApplication.clipboard()
         pixmap = QtGui.QPixmap.grabWidget(self.canvas)
         bmp.setPixmap(pixmap)
@@ -374,5 +374,5 @@
         # Move the slider all the way up, if present
         vertical_scroll_bar = self.txt_widget.verticalScrollBar()
-        vertical_scroll_bar.triggerAction(QtGui.QScrollBar.SliderToMinimum)
+        vertical_scroll_bar.triggerAction(QtWidgets.QScrollBar.SliderToMinimum)
 
     def onSavePoints(self, plot_data):
Index: src/sas/qtgui/Plotting/rangeSlider.py
===================================================================
--- src/sas/qtgui/Plotting/rangeSlider.py	(revision 0849aec6ceb97781213ef369f98e5eb61ec8cad3)
+++ src/sas/qtgui/Plotting/rangeSlider.py	(revision 304d082fdf2d11b8729c78132d385223c5c29054)
@@ -89,5 +89,5 @@
 
         painter = QtGui.QPainter(self)
-        style = QtGui.QApplication.style() 
+        style = QtWidgets.QApplication.style()
 
         for i, value in enumerate([self._low, self._high]):
@@ -173,5 +173,5 @@
         event.accept()
         
-        style = QtGui.QApplication.style()
+        style = QtWidgets.QApplication.style()
         button = event.button()
         
@@ -264,7 +264,4 @@
             self.setHighValue( new_pos )
 
-        if self.hasTracking():
-            self.emit(QtCore.SIGNAL('sliderMoved(int)'), new_pos)
-
             
     def __pick(self, pt):
@@ -278,5 +275,5 @@
         opt = QtWidgets.QStyleOptionSlider()
         self.initStyleOption(opt)
-        style = QtGui.QApplication.style()
+        style = QtWidgets.QApplication.style()
         
         gr = style.subControlRect(style.CC_Slider, opt, style.SC_SliderGroove, self)
