Index: src/sas/qtgui/MainWindow/GuiManager.py
===================================================================
--- src/sas/qtgui/MainWindow/GuiManager.py	(revision d48cc19810059080c3b51d9b2c82196981cbfe1f)
+++ src/sas/qtgui/MainWindow/GuiManager.py	(revision 2a432e7a07cf133afbed0e0395c9c9f3e27e041b)
@@ -19,4 +19,5 @@
 import sas.qtgui.Utilities.LocalConfig as LocalConfig
 import sas.qtgui.Utilities.GuiUtils as GuiUtils
+import sas.qtgui.Utilities.ObjectLibrary as ObjectLibrary
 
 from sas.qtgui.MainWindow.UI.AcknowledgementsUI import Ui_Acknowledgements
@@ -113,4 +114,5 @@
         # Add FileDialog widget as docked
         self.filesWidget = DataExplorerWindow(self._parent, self, manager=self._data_manager)
+        ObjectLibrary.addObject('DataExplorer', self.filesWidget)
 
         self.dockedFilesWidget = QtGui.QDockWidget("Data Explorer", self._workspace)
Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 00b3b40a41d26d36637a576b838e176e2d2d8347)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 2a432e7a07cf133afbed0e0395c9c9f3e27e041b)
@@ -52,4 +52,80 @@
         # Necessary globals
         self.parent = parent
+
+        # Which tab is this widget displayed in?
+        self.tab_id = tab_id
+
+        # Main Data[12]D holder
+        self.logic = FittingLogic(data=data)
+
+        # Globals
+        self.initializeGlobals()
+
+        # Main GUI setup up
+        self.setupUi(self)
+        self.setWindowTitle("Fitting")
+
+        # Set up tabs widgets
+        self.initializeWidgets()
+
+        # Set up models and views
+        self.initializeModels()
+
+        # Defaults for the structure factors
+        self.setDefaultStructureCombo()
+
+        # Make structure factor and model CBs disabled
+        self.disableModelCombo()
+        self.disableStructureCombo()
+
+        # Generate the category list for display
+        self.initializeCategoryCombo()
+
+        # Connect signals to controls
+        self.initializeSignals()
+
+        # Initial control state
+        self.initializeControls()
+
+        # Display HTML content
+        self.helpView = QtWebKit.QWebView()
+
+        self._index = None
+        if data is not None:
+            self.data = data
+
+    def close(self):
+        """
+        Remember to kill off things on exit
+        """
+        self.helpView.close()
+        del self.helpView
+
+    @property
+    def data(self):
+        return self.logic.data
+
+    @data.setter
+    def data(self, value):
+        """ data setter """
+        assert isinstance(value, QtGui.QStandardItem)
+        # _index contains the QIndex with data
+        self._index = value
+
+        # Update logics with data items
+        self.logic.data = GuiUtils.dataFromItem(value)
+
+        # Overwrite data type descriptor
+        self.is2D = True if isinstance(self.logic.data, Data2D) else False
+
+        self.data_is_loaded = True
+
+        # Enable/disable UI components
+        self.setEnablementOnDataLoad()
+
+    def initializeGlobals(self):
+        """
+        Initialize global variables used in this class
+        """
         # SasModel is loaded
         self.model_is_loaded = False
@@ -77,5 +153,4 @@
         self.weighting = 0
         self.chi2 = None
-
         # Does the control support UNDO/REDO
         # temporarily off
@@ -86,19 +161,15 @@
         self.model_data = None
 
-        # Which tab is this widget displayed in?
-        self.tab_id = tab_id
-
         # Which shell is being currently displayed?
         self.current_shell_displayed = 0
         self.has_error_column = False
 
-        # Main Data[12]D holder
-        self.logic = FittingLogic(data=data)
-
-        # Main GUI setup up
-        self.setupUi(self)
-        self.setWindowTitle("Fitting")
+        # signal communicator
         self.communicate = self.parent.communicate
 
+    def initializeWidgets(self):
+        """
+        Initialize widgets for tabs
+        """
         # Options widget
         layout = QtGui.QGridLayout()
@@ -122,4 +193,8 @@
         self.lblFilename.setText("")
 
+    def initializeModels(self):
+        """
+        Set up models and views
+        """
         # Set the main models
         # We can't use a single model here, due to restrictions on flattening
@@ -139,9 +214,21 @@
         self.lstParams.setAlternatingRowColors(True)
         stylesheet = """
-            QTreeView{
-                alternate-background-color: #f6fafb;
-                background: #e8f4fc;
+            QTreeView::item:hover {
+                background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #e7effd, stop: 1 #cbdaf1);
+                border: 1px solid #bfcde4;
             }
-        """
+
+            QTreeView::item:selected {
+                border: 1px solid #567dbc;
+            }
+
+            QTreeView::item:selected:active{
+                background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6ea1f1, stop: 1 #567dbc);
+            }
+
+            QTreeView::item:selected:!active {
+                background: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #6b9be8, stop: 1 #577fbf);
+            }
+           """
         self.lstParams.setStyleSheet(stylesheet)
         self.lstParams.setContextMenuPolicy(QtCore.Qt.CustomContextMenu)
@@ -160,12 +247,8 @@
         self.setTableProperties(self.lstMagnetic)
 
-        # Defaults for the structure factors
-        self.setDefaultStructureCombo()
-
-        # Make structure factor and model CBs disabled
-        self.disableModelCombo()
-        self.disableStructureCombo()
-
-        # Generate the category list for display
+    def initializeCategoryCombo(self):
+        """
+        Model category combo setup
+        """
         category_list = sorted(self.master_category_dict.keys())
         self.cbCategory.addItem(CATEGORY_DEFAULT)
@@ -173,46 +256,4 @@
         self.cbCategory.addItem(CATEGORY_STRUCTURE)
         self.cbCategory.setCurrentIndex(0)
-
-        # Connect signals to controls
-        self.initializeSignals()
-
-        # Initial control state
-        self.initializeControls()
-
-        # Display HTML content
-        self.helpView = QtWebKit.QWebView()
-
-        self._index = None
-        if data is not None:
-            self.data = data
-
-    def close(self):
-        """
-        Remember to kill off things on exit
-        """
-        self.helpView.close()
-        del self.helpView
-
-    @property
-    def data(self):
-        return self.logic.data
-
-    @data.setter
-    def data(self, value):
-        """ data setter """
-        assert isinstance(value, QtGui.QStandardItem)
-        # _index contains the QIndex with data
-        self._index = value
-
-        # Update logics with data items
-        self.logic.data = GuiUtils.dataFromItem(value)
-
-        # Overwrite data type descriptor
-        self.is2D = True if isinstance(self.logic.data, Data2D) else False
-
-        self.data_is_loaded = True
-
-        # Enable/disable UI components
-        self.setEnablementOnDataLoad()
 
     def setEnablementOnDataLoad(self):
Index: src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 00b3b40a41d26d36637a576b838e176e2d2d8347)
+++ src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py	(revision 2a432e7a07cf133afbed0e0395c9c9f3e27e041b)
@@ -35,4 +35,5 @@
             options = QtGui.QStyleOptionViewItemV4(option)
             self.initStyleOption(options,index)
+
             style = QtGui.QApplication.style() if options.widget is None else options.widget.style()
 
@@ -46,5 +47,5 @@
             # delete the original content
             options.text = ""
-            style.drawControl(QtGui.QStyle.CE_ItemViewItem, options, painter);
+            style.drawControl(QtGui.QStyle.CE_ItemViewItem, options, painter, options.widget);
 
             context = QtGui.QAbstractTextDocumentLayout.PaintContext()
@@ -56,5 +57,4 @@
             # Draw the QTextDocument in the cell
             doc.documentLayout().draw(painter, context)
-
             painter.restore()
         else:
