Index: sasview/squish_test_suites/suite_sasview_bdd/objects.map
===================================================================
--- sasview/squish_test_suites/suite_sasview_bdd/objects.map	(revision c691d362069237af2959cf05be49bf09f75c9200)
+++ sasview/squish_test_suites/suite_sasview_bdd/objects.map	(revision c691d362069237af2959cf05be49bf09f75c9200)
@@ -0,0 +1,21 @@
+:Data Explorer.buttonBox_QDialogButtonBox	{container=':MainWindow.Data Explorer_QDockWidget' name='buttonBox' type='QDialogButtonBox' visible='1'}
+:Data Explorer.qt_tabwidget_stackedwidget_QStackedWidget	{container=':MainWindow.Data Explorer_QDockWidget' name='qt_tabwidget_stackedwidget' type='QStackedWidget' visible='1'}
+:Data Explorer.splitter_QSplitter	{container=':MainWindow.Data Explorer_QDockWidget' name='splitter' type='QSplitter' visible='1'}
+:LogDockWidget.qt_dockwidget_floatbutton_QDockWidgetTitleButton	{container=':MainWindow.LogDockWidget_QDockWidget' name='qt_dockwidget_floatbutton' type='QDockWidgetTitleButton' visible='1'}
+:LogDockWidget.qt_dockwidget_floatbutton_QTextBrowser	{aboveWidget=':LogDockWidget.qt_dockwidget_floatbutton_QDockWidgetTitleButton' container=':MainWindow.LogDockWidget_QDockWidget' type='QTextBrowser' unnamed='1' visible='1'}
+:MainWindow.Data Explorer_QDockWidget	{type='QDockWidget' unnamed='1' visible='1' window=':MainWindow_MainSasViewWindow' windowTitle='Data Explorer'}
+:MainWindow.LogDockWidget_QDockWidget	{name='LogDockWidget' type='QDockWidget' visible='1' window=':MainWindow_MainSasViewWindow'}
+:MainWindow.menubar_QMenuBar	{name='menubar' type='QMenuBar' visible='1' window=':MainWindow_MainSasViewWindow'}
+:MainWindow_MainSasViewWindow	{name='MainWindow' type='MainSasViewWindow' visible='1'}
+:_QSplashScreen	{type='QSplashScreen' unnamed='1' visible='0'}
+:buttonBox.Open_QPushButton	{container=':Data Explorer.buttonBox_QDialogButtonBox' text='Open' type='QPushButton' unnamed='1' visible='1'}
+:dataTab.groupBox_QGroupBox	{container=':qt_tabwidget_stackedwidget.dataTab_QWidget' name='groupBox' type='QGroupBox' visible='1'}
+:frame.stackedWidget_QStackedWidget	{container=':splitter.frame_QFrame' name='stackedWidget' type='QStackedWidget' visible='1'}
+:groupBox.cbSelect_QComboBox	{container=':dataTab.groupBox_QGroupBox' name='cbSelect' type='QComboBox' visible='1'}
+:groupBox.cmdLoad_QPushButton	{container=':dataTab.groupBox_QGroupBox' name='cmdLoad' type='QPushButton' visible='1'}
+:groupBox.treeView_QTreeView	{container=':dataTab.groupBox_QGroupBox' name='treeView' type='QTreeView' visible='1'}
+:qt_tabwidget_stackedwidget.dataTab_QWidget	{container=':Data Explorer.qt_tabwidget_stackedwidget_QStackedWidget' name='dataTab' type='QWidget' visible='1'}
+:splitter.frame_QFrame	{container=':Data Explorer.splitter_QSplitter' name='frame' type='QFrame' visible='1'}
+:stackedWidget.listView_QListView	{container=':frame.stackedWidget_QStackedWidget' name='listView' type='QListView' visible='1'}
+:treeView.cyl_400_20.txt_QModelIndex	{column='0' container=':groupBox.treeView_QTreeView' text='cyl_400_20.txt' type='QModelIndex'}
+:treeView.cyl_400_40.txt_QModelIndex	{column='0' container=':groupBox.treeView_QTreeView' text='cyl_400_40.txt' type='QModelIndex'}
Index: sasview/squish_test_suites/suite_sasview_bdd/shared/scripts/bdd_hooks.py
===================================================================
--- sasview/squish_test_suites/suite_sasview_bdd/shared/scripts/bdd_hooks.py	(revision c691d362069237af2959cf05be49bf09f75c9200)
+++ sasview/squish_test_suites/suite_sasview_bdd/shared/scripts/bdd_hooks.py	(revision c691d362069237af2959cf05be49bf09f75c9200)
@@ -0,0 +1,24 @@
+# -*- coding: utf-8 -*-
+
+# This file contains hook functions to run as the .feature file is executed.
+#
+# A common use-case is to use the OnScenarioStart/OnScenarioEnd hooks to
+# start and stop an AUT, e.g.
+#
+# @OnScenarioStart
+# def hook(context):
+#     startApplication("addressbook")
+#
+# @OnScenarioEnd
+# def hook(context):
+#     currentApplicationContext().detach()
+#
+# See the section 'Performing Actions During Test Execution Via Hooks' in the Squish
+# manual for a complete reference of the available API.
+
+# Detach (i.e. potentially terminate) all AUTs at the end of a scenario
+@OnScenarioEnd
+def hook(context):
+    for ctx in applicationContextList():
+        ctx.detach()
+
Index: sasview/squish_test_suites/suite_sasview_bdd/shared/steps/steps.py
===================================================================
--- sasview/squish_test_suites/suite_sasview_bdd/shared/steps/steps.py	(revision c691d362069237af2959cf05be49bf09f75c9200)
+++ sasview/squish_test_suites/suite_sasview_bdd/shared/steps/steps.py	(revision c691d362069237af2959cf05be49bf09f75c9200)
@@ -0,0 +1,56 @@
+# -*- coding: utf-8 -*-
+@Given("SasView running")
+def step(context):
+    startApplication("sasview")
+    test.compare(waitForObjectExists(":_QSplashScreen").visible, False)
+
+@Given("empty File Explorer")
+def step(context):
+    test.compare(str(waitForObjectExists(":groupBox.treeView_QTreeView").objectName), "treeView")
+    test.compare(waitForObjectExists(":groupBox.treeView_QTreeView").visible, True)
+
+@When("I click on Load Data")
+def step(context):
+    sendEvent("QMouseEvent", waitForObject(":groupBox.cmdLoad_QPushButton"), QEvent.MouseButtonPress, 68, 20, Qt.LeftButton, 1, 0)
+    sendEvent("QMouseEvent", waitForObject(":groupBox.cmdLoad_QPushButton"), QEvent.MouseButtonRelease, 68, 20, Qt.LeftButton, 0, 0)
+
+@When("choose a 1D file")
+def step(context):
+    waitForObjectItem(":stackedWidget.listView_QListView", "test")
+    doubleClickItem(":stackedWidget.listView_QListView", "test", 12, 8, 0, Qt.LeftButton)
+    waitForObjectItem(":stackedWidget.listView_QListView", "1d\\_data")
+    doubleClickItem(":stackedWidget.listView_QListView", "1d\\_data", 35, 14, 0, Qt.LeftButton)
+    waitForObjectItem(":stackedWidget.listView_QListView", "cyl\\_400\\_40\\.txt")
+    clickItem(":stackedWidget.listView_QListView", "cyl\\_400\\_40\\.txt", 64, 7, 0, Qt.LeftButton)
+    clickButton(waitForObject(":buttonBox.Open_QPushButton"))
+
+@Then("a new index will show up in File Explorer")
+def step(context):
+    test.compare(waitForObjectExists(":treeView.cyl_400_40.txt_QModelIndex").row, 0)
+    test.compare(waitForObjectExists(":treeView.cyl_400_40.txt_QModelIndex").viewType, "QTreeView")
+
+@Then("It will be checked")
+def step(context):
+    test.compare(waitForObjectExists(":treeView.cyl_400_40.txt_QModelIndex").checkState, "checked")
+
+
+@Given("a 1D file loaded")
+def step(context):
+    clickButton(waitForObject(":groupBox.cmdLoad_QPushButton"))
+    waitForObjectItem(":stackedWidget.listView_QListView", "test")
+    doubleClickItem(":stackedWidget.listView_QListView", "test", 49, 9, 0, Qt.LeftButton)
+    waitForObjectItem(":stackedWidget.listView_QListView", "1d\\_data")
+    doubleClickItem(":stackedWidget.listView_QListView", "1d\\_data", 52, 11, 0, Qt.LeftButton)
+    waitForObjectItem(":stackedWidget.listView_QListView", "cyl\\_400\\_20\\.txt")
+    doubleClickItem(":stackedWidget.listView_QListView", "cyl\\_400\\_20\\.txt", 64, 5, 0, Qt.LeftButton)
+    test.compare(waitForObjectExists(":treeView.cyl_400_20.txt_QModelIndex").row, 0)
+    test.compare(waitForObjectExists(":treeView.cyl_400_20.txt_QModelIndex").checkState, "checked")
+
+@When("I select Uncheck All")
+def step(context):
+    mouseClick(waitForObject(":groupBox.cbSelect_QComboBox"), 76, 7, 0, Qt.LeftButton)
+    mouseClick(waitForObjectItem(":groupBox.cbSelect_QComboBox", "Unselect all"), 62, 4, 0, Qt.LeftButton)
+
+@Then("the 1D file index will be unchecked")
+def step(context):
+    test.compare(waitForObjectExists(":treeView.cyl_400_20.txt_QModelIndex").checkState, "unchecked")
Index: sasview/squish_test_suites/suite_sasview_bdd/suite.conf
===================================================================
--- sasview/squish_test_suites/suite_sasview_bdd/suite.conf	(revision c691d362069237af2959cf05be49bf09f75c9200)
+++ sasview/squish_test_suites/suite_sasview_bdd/suite.conf	(revision c691d362069237af2959cf05be49bf09f75c9200)
@@ -0,0 +1,8 @@
+AUT=sasview
+ENVVARS=envvars
+HOOK_SUB_PROCESSES=false
+IMPLICITAUTSTART=0
+LANGUAGE=Python
+TEST_CASES=tst_case1
+VERSION=3
+WRAPPERS=Qt
Index: sasview/squish_test_suites/suite_sasview_bdd/tst_case1/test.feature
===================================================================
--- sasview/squish_test_suites/suite_sasview_bdd/tst_case1/test.feature	(revision c691d362069237af2959cf05be49bf09f75c9200)
+++ sasview/squish_test_suites/suite_sasview_bdd/tst_case1/test.feature	(revision c691d362069237af2959cf05be49bf09f75c9200)
@@ -0,0 +1,21 @@
+Feature: Opening files in File Explorer
+
+    This test will assure correct behaviour of the file loader
+
+    Scenario: Loading a single 1D file
+
+        Given SasView running
+          And empty File Explorer
+         When I click on Load Data
+         And choose a 1D file
+         Then a new index will show up in File Explorer
+          And It will be checked
+
+    Scenario: Unselecting the file index
+        
+        Given SasView running
+        And a 1D file loaded
+        When I select Uncheck All
+        Then the 1D file index will be unchecked
+
+        
Index: sasview/squish_test_suites/suite_sasview_bdd/tst_case1/test.py
===================================================================
--- sasview/squish_test_suites/suite_sasview_bdd/tst_case1/test.py	(revision c691d362069237af2959cf05be49bf09f75c9200)
+++ sasview/squish_test_suites/suite_sasview_bdd/tst_case1/test.py	(revision c691d362069237af2959cf05be49bf09f75c9200)
@@ -0,0 +1,8 @@
+source(findFile('scripts', 'python/bdd.py'))
+
+setupHooks('../shared/scripts/bdd_hooks.py')
+collectStepDefinitions('./steps', '../shared/steps')
+
+def main():
+    testSettings.throwOnFailure = True
+    runFeatureFile('test.feature')
Index: src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py	(revision 8222f171ca8747f44ec53b2088e4cf8903026e84)
+++ src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py	(revision a95c44b70e9d487306aace4e5481e94bf3e26e7f)
@@ -137,4 +137,9 @@
     model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Units"))
 
+    model.header_tooltips = ['Select parameter for fitting',
+                             'Enter parameter value',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Unit of the parameter']
 def addErrorHeadersToModel(model):
     """
@@ -147,4 +152,11 @@
     model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Max"))
     model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QVariant("Units"))
+
+    model.header_tooltips = ['Select parameter for fitting',
+                             'Enter parameter value',
+                             'Error value for fitted parameter',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Unit of the parameter']
 
 def addPolyHeadersToModel(model):
@@ -160,4 +172,14 @@
     model.setHeaderData(6, QtCore.Qt.Horizontal, QtCore.QVariant("Function"))
     model.setHeaderData(7, QtCore.Qt.Horizontal, QtCore.QVariant("Filename"))
+
+    model.header_tooltips = ['Select parameter for fitting',
+                             'Enter polydispersity ratio (STD/mean). '
+                             'STD: standard deviation from the mean value',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Enter number of points for parameter',
+                             'Enter number of sigmas parameter',
+                             'Select distribution function',
+                             'Select filename with user-definable distribution']
 
 def addErrorPolyHeadersToModel(model):
@@ -174,4 +196,15 @@
     model.setHeaderData(7, QtCore.Qt.Horizontal, QtCore.QVariant("Function"))
     model.setHeaderData(8, QtCore.Qt.Horizontal, QtCore.QVariant("Filename"))
+
+    model.header_tooltips = ['Select parameter for fitting',
+                             'Enter polydispersity ratio (STD/mean). '
+                             'STD: standard deviation from the mean value',
+                             'Error value for fitted parameter',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Enter number of points for parameter',
+                             'Enter number of sigmas parameter',
+                             'Select distribution function',
+                             'Select filename with user-definable distribution']
 
 def addShellsToModel(parameters, model, index):
Index: src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision 8f2548cd7fffb3f54143a7f2c99d8679f11351f3)
+++ src/sas/qtgui/Perspectives/Fitting/FittingWidget.py	(revision a95c44b70e9d487306aace4e5481e94bf3e26e7f)
@@ -50,4 +50,17 @@
 
 USING_TWISTED = True
+
+class ToolTippedItemModel(QtGui.QStandardItemModel):
+
+    def __init__(self, parent = None):
+        QtGui.QStandardItemModel.__init__(self,parent)
+
+    def headerData(self, section, orientation, role):
+
+        if role == QtCore.Qt.ToolTipRole:
+            if orientation == QtCore.Qt.Horizontal:
+                return QtCore.QString(str(self.header_tooltips[section]))
+
+        return QtGui.QStandardItemModel.headerData(self, section, orientation, role)
 
 class FittingWidget(QtGui.QWidget, Ui_FittingWidgetUI):
@@ -240,7 +253,7 @@
         # We can't use a single model here, due to restrictions on flattening
         # the model tree with subclassed QAbstractProxyModel...
-        self._model_model = QtGui.QStandardItemModel()
-        self._poly_model = QtGui.QStandardItemModel()
-        self._magnet_model = QtGui.QStandardItemModel()
+        self._model_model = ToolTippedItemModel()
+        self._poly_model = ToolTippedItemModel()
+        self._magnet_model = ToolTippedItemModel()
 
         # Param model displayed in param list
Index: src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py
===================================================================
--- src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py	(revision a14a2b0391e1cbc499522b22d4189920856d22a9)
+++ src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py	(revision c7358b24e5032be5648d823d4c423fe8a39ef5b0)
@@ -342,4 +342,21 @@
         self.assertEqual(self.widget.lstPoly.horizontalHeader().count(), 8)
         self.assertFalse(self.widget.lstPoly.horizontalHeader().stretchLastSection())
+
+        # Test tooltips
+        self.assertEqual(len(self.widget._poly_model.header_tooltips), 8)
+
+        header_tooltips = ['Select parameter for fitting',
+                             'Enter polydispersity ratio (STD/mean). '
+                             'STD: standard deviation from the mean value',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Enter number of points for parameter',
+                             'Enter number of sigmas parameter',
+                             'Select distribution function',
+                             'Select filename with user-definable distribution']
+        for column, tooltip in enumerate(header_tooltips):
+             self.assertEqual(self.widget._poly_model.headerData( column,
+                QtCore.Qt.Horizontal, QtCore.Qt.ToolTipRole),
+                         header_tooltips[column])
 
         # Test presence of comboboxes in last column
@@ -478,4 +495,17 @@
         self.assertFalse(self.widget.lstMagnetic.horizontalHeader().stretchLastSection())
 
+        #Test tooltips
+        self.assertEqual(len(self.widget._magnet_model.header_tooltips), 5)
+
+        header_tooltips = ['Select parameter for fitting',
+                             'Enter parameter value',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Unit of the parameter']
+        for column, tooltip in enumerate(header_tooltips):
+             self.assertEqual(self.widget._magnet_model.headerData(column,
+                QtCore.Qt.Horizontal, QtCore.Qt.ToolTipRole),
+                         header_tooltips[column])
+
         # Test rows
         for row in xrange(self.widget._magnet_model.rowCount()):
@@ -835,4 +865,23 @@
         name_modified_param = str(self.widget._model_model.item(5, 0).text())
 
+         # Check the model
+        self.assertEqual(self.widget._model_model.rowCount(), 6)
+        self.assertEqual(self.widget._model_model.columnCount(), 5)
+
+        # Test the header
+        #self.assertEqual(self.widget.lstParams.horizontalHeader().count(), 5)
+        #self.assertFalse(self.widget.lstParams.horizontalHeader().stretchLastSection())
+
+        self.assertEqual(len(self.widget._model_model.header_tooltips), 5)
+        header_tooltips = ['Select parameter for fitting',
+                             'Enter parameter value',
+                             'Enter minimum value for parameter',
+                             'Enter maximum value for parameter',
+                             'Unit of the parameter']
+        for column, tooltip in enumerate(header_tooltips):
+             self.assertEqual(self.widget._model_model.headerData(column,
+                QtCore.Qt.Horizontal, QtCore.Qt.ToolTipRole),
+                         header_tooltips[column])
+
         # check that the value has been modified in kernel_module
         self.assertEqual(new_value,
Index: src/sas/qtgui/Perspectives/Invariant/InvariantDetails.py
===================================================================
--- src/sas/qtgui/Perspectives/Invariant/InvariantDetails.py	(revision 457d961a927e24e28718d1c1813be6b69130b5c1)
+++ src/sas/qtgui/Perspectives/Invariant/InvariantDetails.py	(revision 28cda698bb2df0eb630b2bfe3ab5ea06a99075f6)
@@ -64,5 +64,5 @@
         self.label_3.setStyleSheet(new_font)
         self.label_4.setStyleSheet(new_font)
-        self.label_.setStyleSheet(new_font)
+        self.label_7.setStyleSheet(new_font)
 
         self.show()
