Changeset 676f137 in sasview


Ignore:
Timestamp:
Jan 11, 2018 8:04:58 AM (4 years ago)
Author:
Piotr Rozyczko <rozyczko@…>
Branches:
ESS_GUI, ESS_GUI_Docs, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_iss959, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
Children:
be8f4b0
Parents:
570e091
Message:

Initial version of the C&S widget

Location:
src/sas/qtgui
Files:
2 added
6 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/GUITests.py

    r570e091 r676f137  
    5757from Perspectives.Fitting.UnitTesting import FittingOptionsTest 
    5858from Perspectives.Fitting.UnitTesting import MultiConstraintTest 
     59from Perspectives.Fitting.UnitTesting import ConstraintWidgetTest 
    5960 
    6061#  Invariant 
    6162from Perspectives.Invariant.UnitTesting import InvariantPerspectiveTest 
     63 
     64#  Inversion 
     65from Perspectives.Inversion.UnitTesting import InversionPerspectiveTest 
    6266 
    6367def suite(): 
     
    113117        unittest.makeSuite(FittingOptionsTest.FittingOptionsTest,         'test'), 
    114118        unittest.makeSuite(MultiConstraintTest.MultiConstraintTest,       'test'), 
     119        unittest.makeSuite(ConstraintWidgetTest.ConstraintWidgetTest,     'test'), 
     120 
    115121        #  Invariant 
    116122        unittest.makeSuite(InvariantPerspectiveTest.InvariantPerspectiveTest,  'test'), 
    117         unittest.makeSuite(InvariantDetailsTest.InvariantDetailsTest,     'test'), 
    118123        #  Inversion 
    119124        unittest.makeSuite(InversionPerspectiveTest.InversionTest,  'test'), 
    120      ) 
     125        ) 
    121126    return unittest.TestSuite(suites) 
    122127 
  • src/sas/qtgui/MainWindow/GuiManager.py

    re90988c r676f137  
    185185 
    186186        # Save users from themselves... 
    187         if isinstance(self._current_perspective, Perspectives.PERSPECTIVES[str(perspective_name)]): 
    188             self.setupPerspectiveMenubarOptions(self._current_perspective) 
    189             return 
     187        #if isinstance(self._current_perspective, Perspectives.PERSPECTIVES[str(perspective_name)]): 
     188        self.setupPerspectiveMenubarOptions(self._current_perspective) 
     189        #    return 
    190190 
    191191        # Close the previous perspective 
     
    623623    def actionConstrained_Fit(self): 
    624624        """ 
    625         """ 
    626         print("actionConstrained_Fit TRIGGERED") 
    627         pass 
     625        Add a new Constrained and Simult. Fit page in the fitting perspective. 
     626        """ 
     627        per = self.perspective() 
     628        if not isinstance(per, FittingWindow): 
     629            return 
     630        per.addConstraintTab() 
    628631 
    629632    def actionCombine_Batch_Fit(self): 
  • src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py

    re90988c r676f137  
    1111 
    1212from sas.qtgui.Perspectives.Fitting.FittingWidget import FittingWidget 
     13from sas.qtgui.Perspectives.Fitting.ConstraintWidget import ConstraintWidget 
    1314from sas.qtgui.Perspectives.Fitting.FittingOptions import FittingOptions 
    1415from sas.qtgui.Perspectives.Fitting.GPUOptions import GPUOptions 
     
    3031        # Max index for adding new, non-clashing tab names 
    3132        self.maxIndex = 0 
     33        self.maxCSIndex = 0 
    3234 
    3335        # Index of the current tab 
     
    108110        tab.is_batch_fitting = is_batch 
    109111        # Add this tab to the object library so it can be retrieved by scripting/jupyter 
    110         tab_name = self.tabName(is_batch=is_batch) 
     112        tab_name = self.getTabName(is_batch=is_batch) 
    111113        ObjectLibrary.addObject(tab_name, tab) 
    112114        self.tabs.append(tab) 
     
    116118        self.addTab(tab, tab_name) 
    117119 
     120    def addConstraintTab(self): 
     121        """ 
     122        Add a new C&S fitting tab 
     123        """ 
     124        tab     = ConstraintWidget(parent=self.parent) 
     125        # Add this tab to the object library so it can be retrieved by scripting/jupyter 
     126        tab_name = self.getCSTabName() # TODO update the tab name scheme 
     127        ObjectLibrary.addObject(tab_name, tab) 
     128        self.tabs.append(tab) 
     129        self.maxCSIndex += 1 
     130        self.addTab(tab, tab_name) 
     131 
    118132    def updateFitDict(self, item_key, tab_name): 
    119133        """ 
     
    126140            self.dataToFitTab[item_key_str] = [tab_name] 
    127141 
    128         #print "CURRENT dict: ", self.dataToFitTab 
    129  
    130     def tabName(self, is_batch=False): 
     142    def getTabName(self, is_batch=False): 
    131143        """ 
    132144        Get the new tab name, based on the number of fitting tabs so far 
     
    134146        page_name = "BatchPage" if is_batch else "FitPage" 
    135147        page_name = page_name + str(self.maxIndex) 
     148        return page_name 
     149 
     150    def getCSTabName(self): 
     151        """ 
     152        Get the new tab name, based on the number of fitting tabs so far 
     153        """ 
     154        page_name = "Const. & Simul. Fit" 
     155        page_name = page_name + str(self.maxCSIndex) 
    136156        return page_name 
    137157 
  • src/sas/qtgui/Perspectives/Fitting/FittingWidget.py

    rd3c0b95 r676f137  
    552552        """ 
    553553        selected_rows = self.lstParams.selectionModel().selectedRows() 
    554         assert(len(selected_rows), 2) 
     554        assert(len(selected_rows)==2) 
    555555 
    556556        params_list = [s.data() for s in selected_rows] 
  • src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingPerspectiveTest.py

    r53c771e r676f137  
    4444        self.assertEqual(len(self.widget.tabs), 1) 
    4545        self.assertEqual(self.widget.maxIndex, 1) 
    46         self.assertEqual(self.widget.tabName(), "FitPage1") 
     46        self.assertEqual(self.widget.maxCSIndex, 0) 
     47        self.assertEqual(self.widget.getTabName(), "FitPage1") 
    4748 
    4849    def testAddTab(self): 
     
    5253        self.widget.addFit(None) 
    5354        self.assertEqual(len(self.widget.tabs), 2) 
    54         self.assertEqual(self.widget.tabName(), "FitPage2") 
     55        self.assertEqual(self.widget.getTabName(), "FitPage2") 
    5556        self.assertEqual(self.widget.maxIndex, 2) 
    5657        # Add an empty batch tab 
    5758        self.widget.addFit(None, is_batch=True) 
    5859        self.assertEqual(len(self.widget.tabs), 3) 
    59         self.assertEqual(self.widget.tabName(2), "BatchPage3") 
     60        self.assertEqual(self.widget.getTabName(2), "BatchPage3") 
    6061        self.assertEqual(self.widget.maxIndex, 3) 
     62 
     63    def testAddCSTab(self): 
     64        ''' Add a constraint/simult tab''' 
     65        self.widget.addConstraintTab() 
     66        self.assertEqual(len(self.widget.tabs), 2) 
     67        self.assertEqual(self.widget.getCSTabName(), "Const. & Simul. Fit1") 
     68        self.assertEqual(self.widget.maxCSIndex, 1) 
    6169 
    6270    def testResetTab(self): 
    6371        ''' Remove data from last tab''' 
    6472        self.assertEqual(len(self.widget.tabs), 1) 
    65         self.assertEqual(self.widget.tabName(), "FitPage1") 
     73        self.assertEqual(self.widget.getTabName(), "FitPage1") 
    6674        self.assertEqual(self.widget.maxIndex, 1) 
    6775 
     
    7179        # see that the tab didn't disappear, just changed the name/id 
    7280        self.assertEqual(len(self.widget.tabs), 1) 
    73         self.assertEqual(self.widget.tabName(), "FitPage2") 
     81        self.assertEqual(self.widget.getTabName(), "FitPage2") 
    7482        self.assertEqual(self.widget.maxIndex, 2) 
    7583 
     
    95103        self.assertEqual(len(self.widget.tabs), 1) 
    96104        self.assertEqual(self.widget.maxIndex, 2) 
    97         self.assertEqual(self.widget.tabName(), "FitPage2") 
     105        self.assertEqual(self.widget.getTabName(), "FitPage2") 
    98106 
    99107        # Attemtp to remove the last tab 
     
    102110        self.assertEqual(len(self.widget.tabs), 1) 
    103111        self.assertEqual(self.widget.maxIndex, 3) 
    104         self.assertEqual(self.widget.tabName(), "FitPage3") 
     112        self.assertEqual(self.widget.getTabName(), "FitPage3") 
    105113 
    106114    def testAllowBatch(self): 
  • src/sas/qtgui/Perspectives/Fitting/UnitTesting/FittingWidgetTest.py

    • Property mode changed from 100755 to 100644
    r53c771e r676f137  
    112112        fittingWindow =  self.widget 
    113113 
    114         self.assertIsInstance(fittingWindow.lstMagnetic.itemDelegate(), QtGui.QStyledItemDelegate) 
     114        self.assertIsInstance(fittingWindow.lstMagnetic.itemDelegate(), QtWidgets.QStyledItemDelegate) 
    115115        #Test loading from json categories 
    116116        fittingWindow.SASModelToQModel("cylinder") 
    117117        mag_index = fittingWindow.lstMagnetic.model().index(0,0) 
    118         self.assertEqual(str(mag_index.data().toString()), "up:frac_i") 
     118        self.assertEqual(mag_index.data(), "up:frac_i") 
    119119        mag_index = fittingWindow.lstMagnetic.model().index(1,0) 
    120         self.assertEqual(str(mag_index.data().toString()), "up:frac_f") 
     120        self.assertEqual(mag_index.data(), "up:frac_f") 
    121121        mag_index = fittingWindow.lstMagnetic.model().index(2,0) 
    122         self.assertEqual(str(mag_index.data().toString()), "up:angle") 
     122        self.assertEqual(mag_index.data(), "up:angle") 
    123123        mag_index = fittingWindow.lstMagnetic.model().index(3,0) 
    124         self.assertEqual(str(mag_index.data().toString()), "M0:sld") 
     124        self.assertEqual(mag_index.data(), "M0:sld") 
    125125        mag_index = fittingWindow.lstMagnetic.model().index(4,0) 
    126         self.assertEqual(str(mag_index.data().toString()), "mtheta:sld") 
     126        self.assertEqual(mag_index.data(), "mtheta:sld") 
    127127        mag_index = fittingWindow.lstMagnetic.model().index(5,0) 
    128         self.assertEqual(str(mag_index.data().toString()), "mphi:sld") 
     128        self.assertEqual(mag_index.data(), "mphi:sld") 
    129129        mag_index = fittingWindow.lstMagnetic.model().index(6,0) 
    130         self.assertEqual(str(mag_index.data().toString()), "M0:sld_solvent") 
     130        self.assertEqual(mag_index.data(), "M0:sld_solvent") 
    131131        mag_index = fittingWindow.lstMagnetic.model().index(7,0) 
    132         self.assertEqual(str(mag_index.data().toString()), "mtheta:sld_solvent") 
     132        self.assertEqual(mag_index.data(), "mtheta:sld_solvent") 
    133133        mag_index = fittingWindow.lstMagnetic.model().index(8,0) 
    134         self.assertEqual(str(mag_index.data().toString()), "mphi:sld_solvent") 
     134        self.assertEqual(mag_index.data(), "mphi:sld_solvent") 
    135135 
    136136        # test the delegate a bit 
    137137        delegate = fittingWindow.lstMagnetic.itemDelegate() 
    138138        self.assertEqual(delegate.editableParameters(), [1, 2, 3]) 
    139         self.assertIsInstance(delegate.combo_updated, QtCore.pyqtBoundSignal) 
    140139 
    141140    def testSelectStructureFactor(self): 
Note: See TracChangeset for help on using the changeset viewer.