Changeset 14ec91c5 in sasview for src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py
- Timestamp:
- Feb 2, 2018 7:21:48 AM (6 years ago)
- 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:
- a90c9c5
- Parents:
- 5e66738
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/Perspectives/Fitting/FittingPerspective.py
r63319b0 r14ec91c5 19 19 """ 20 20 tabsModifiedSignal = QtCore.pyqtSignal() 21 fittingStartedSignal = QtCore.pyqtSignal(list) 22 fittingStoppedSignal = QtCore.pyqtSignal(list) 23 21 24 name = "Fitting" # For displaying in the combo box in DataExplorer 22 25 def __init__(self, parent=None, data=None): … … 32 35 # Max index for adding new, non-clashing tab names 33 36 self.maxIndex = 0 34 self.maxCSIndex = 035 37 36 38 # Index of the current tab … … 40 42 self.optimizer = 'Levenberg-Marquardt' 41 43 42 # Dataset inde -> Fitting tab mapping44 # Dataset index -> Fitting tab mapping 43 45 self.dataToFitTab = {} 44 46 45 47 # The tabs need to be closeable 46 48 self.setTabsClosable(True) 49 50 # The tabs need to be movabe 51 self.setMovable(True) 47 52 48 53 self.communicate = self.parent.communicator() … … 54 59 self.tabCloseRequested.connect(self.tabCloses) 55 60 self.communicate.dataDeletedSignal.connect(self.dataDeleted) 61 self.fittingStartedSignal.connect(self.onFittingStarted) 62 self.fittingStoppedSignal.connect(self.onFittingStopped) 56 63 57 64 # Perspective window not allowed to close by default … … 69 76 self.gpu_options_widget = GPUOptions(self) 70 77 71 #self.setWindowTitle('Fit panel - Active Fitting Optimizer: %s' % self.optimizer)72 78 self.updateWindowTitle() 73 79 … … 82 88 def setClosable(self, value=True): 83 89 """ 84 Allow outsiders close this widget90 Allow outsiders to close this widget 85 91 """ 86 92 assert isinstance(value, bool) … … 124 130 Add a new C&S fitting tab 125 131 """ 126 tab = ConstraintWidget(parent=self, tab_id=self.maxCSIndex) 132 tabs = [isinstance(tab, ConstraintWidget) for tab in self.tabs] 133 if any(tabs): 134 # We already have a C&S tab: show it 135 self.setCurrentIndex(tabs.index(True)) 136 return 137 tab = ConstraintWidget(parent=self) 127 138 # Add this tab to the object library so it can be retrieved by scripting/jupyter 128 139 tab_name = self.getCSTabName() # TODO update the tab name scheme 129 140 ObjectLibrary.addObject(tab_name, tab) 130 141 self.tabs.append(tab) 131 self.maxCSIndex += 1132 142 self.addTab(tab, tab_name) 133 143 … … 155 165 """ 156 166 page_name = "Const. & Simul. Fit" 157 page_name = page_name + str(self.maxCSIndex)158 167 return page_name 159 168 … … 263 272 self.updateWindowTitle() 264 273 274 def onFittingStarted(self, tabs_for_fitting=None): 275 """ 276 Notify tabs listed in tabs_for_fitting 277 that the fitting thread started 278 """ 279 assert(isinstance(tabs_for_fitting, list)) 280 assert(len(tabs_for_fitting)>0) 281 282 for tab_object in self.tabs: 283 if not isinstance(tab_object, FittingWidget): 284 continue 285 page_name = "Page%s"%tab_object.tab_id 286 if any([page_name in tab for tab in tabs_for_fitting]): 287 tab_object.setFittingStarted() 288 265 289 pass 290 291 def onFittingStopped(self, tabs_for_fitting=None): 292 """ 293 Notify tabs listed in tabs_for_fitting 294 that the fitting thread stopped 295 """ 296 assert(isinstance(tabs_for_fitting, list)) 297 assert(len(tabs_for_fitting)>0) 298 299 for tab_object in self.tabs: 300 if not isinstance(tab_object, FittingWidget): 301 continue 302 page_name = "Page%s"%tab_object.tab_id 303 if any([page_name in tab for tab in tabs_for_fitting]): 304 tab_object.setFittingStopped() 305 306 pass
Note: See TracChangeset
for help on using the changeset viewer.