Changes in / [343d7fd:60a4e71] in sasview
- Location:
- src/sas/qtgui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/MainWindow/DataExplorer.py
r2b8286c r8e674ccf 95 95 self.communicator.activeGraphsSignal.connect(self.updateGraphCount) 96 96 self.communicator.activeGraphName.connect(self.updatePlotName) 97 self.communicator.plotUpdateSignal.connect(self. updatePlot)97 self.communicator.plotUpdateSignal.connect(self.displayData) 98 98 self.communicator.maskEditorSignal.connect(self.showEditDataMask) 99 99 self.communicator.extMaskEditorSignal.connect(self.extShowEditDataMask) … … 572 572 # Each fitpage contains the name based on fit widget number 573 573 fitpage_name = "" if id is None else "M"+str(id) 574 new_plots = [] 574 # groups plots which move into an own window 575 new_plots = dict(int = [], res = [], pd = []) 575 576 for item, plot in plots.items(): 576 if self.updatePlot(plot) and filename != plot.name:577 if (self.updatePlot(plot) and filename != plot.name) or plot.hidden: 577 578 continue 578 579 # Don't plot intermediate results, e.g. P(Q), S(Q) 579 580 match = GuiUtils.theory_plot_ID_pattern.match(plot.id) 580 # 2nd match group contains the identifier for the intermediate result, if present (e.g. "[P(Q)]") 581 # 2nd match group contains the identifier for the intermediate 582 # result, if present (e.g. "[P(Q)]") 581 583 if match and match.groups()[1] != None: 582 584 continue 583 # Don't include plots from different fitpages, but always include the original data 585 # Don't include plots from different fitpages, 586 # but always include the original data 584 587 if fitpage_name in plot.name or filename == plot.name: 585 588 # 'sophisticated' test to generate standalone plot for residuals 589 # this should be done by some kind of grouping by lists 590 # which helps to indicate which go into a single plot window 586 591 if 'esiduals' in plot.title: 587 plot.yscale='linear' 588 self.plotData([(item, plot)]) 592 plot.yscale = 'linear' 593 new_plots['res'].append((item, plot)) 594 elif 'olydispersity' in plot.title: 595 plot.yscale = 'linear' 596 new_plots['pd'].append((item, plot)) 589 597 else: 590 new_plots.append((item, plot)) 591 592 if new_plots: 593 self.plotData(new_plots) 598 new_plots['int'].append((item, plot)) 599 600 # create entirely new plots for those which could not be updated 601 for plots in new_plots.values(): 602 if len(plots): 603 self.plotData(plots) 594 604 595 605 def displayData(self, data_list, id=None): … … 597 607 Forces display of charts for the given data set 598 608 """ 599 plot_to_show = data_list[0] 600 # passed plot is used ONLY to figure out its title, 601 # so all the charts related by it can be pulled from 602 # the data explorer indices. 603 filename = plot_to_show.filename 604 self.displayFile(filename=filename, is_data=plot_to_show.is_data, id=id) 609 for plot_to_show in data_list: 610 # may there be duplicates? list(OrderedDict.fromkeys(data_list)) 611 # passed plot is used ONLY to figure out its title, 612 # so all the charts related by it can be pulled from 613 # the data explorer indices. 614 filename = plot_to_show.filename 615 self.displayFile(filename=filename, is_data=plot_to_show.is_data, id=id) 605 616 606 617 def addDataPlot2D(self, plot_set, item): -
src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
rf3cc979 rf3cc979 1088 1088 return True 1089 1089 1090 def updateDataVisibility(self, updateOnly): 1091 self.dataUpdateOnly = updateOnly 1092 for dataitem in self.all_data: 1093 data = GuiUtils.dataFromItem(dataitem) 1094 data.hidden = self.dataUpdateOnly 1095 self.updateModelIndex(data) 1096 1090 1097 def updateData(self): 1091 1098 """ … … 1093 1100 """ 1094 1101 # Update the chart 1102 self.updateDataVisibility(True) 1095 1103 if self.data_is_loaded: 1096 1104 self.cmdPlot.setText("Show Plot") … … 1815 1823 self.cmdPlot.setText("Show Plot") 1816 1824 # Force data recalculation so existing charts are updated 1817 self.showPlot()1825 # self.showPlot() 1818 1826 # This is an important processEvent. 1819 1827 # This allows charts to be properly updated in order 1820 1828 # of plots being applied. 1821 QtWidgets.QApplication.processEvents()1829 # QtWidgets.QApplication.processEvents() 1822 1830 self.recalculatePlotData() 1823 1831 … … 2272 2280 Create a model or theory index with passed Data1D/Data2D 2273 2281 """ 2282 # set some flag which decides if new plots should be created or 2283 # just existing ones updated, selectively hiding indiv. plot will also work 2284 fitted_data.hidden = getattr(self, 'dataUpdateOnly', True) 2274 2285 if self.data_is_loaded: 2275 2286 if not fitted_data.name: … … 2442 2453 for plot in new_plots: 2443 2454 self.communicate.plotUpdateSignal.emit([plot]) 2455 # enable plots to be shown next time if updateData() wasn't called 2456 self.updateDataVisibility(False) 2444 2457 2445 2458 def complete2D(self, return_data):
Note: See TracChangeset
for help on using the changeset viewer.