Changeset 5b144c6 in sasview
- Timestamp:
- Sep 8, 2018 4:23:48 PM (6 years ago)
- Branches:
- ESS_GUI, ESS_GUI_batch_fitting, ESS_GUI_bumps_abstraction, ESS_GUI_iss1116, ESS_GUI_iss879, ESS_GUI_opencl, ESS_GUI_ordering, ESS_GUI_sync_sascalc
- Children:
- 5d28d6b
- Parents:
- 685602a
- git-author:
- Piotr Rozyczko <rozyczko@…> (09/08/18 16:21:23)
- git-committer:
- Piotr Rozyczko <rozyczko@…> (09/08/18 16:23:48)
- Location:
- src/sas/qtgui
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/sas/qtgui/MainWindow/DataExplorer.py
r0cd98a1 r5b144c6 553 553 return item 554 554 555 def displayFile(self, filename=None, is_data=True ):555 def displayFile(self, filename=None, is_data=True, id=None): 556 556 """ 557 557 Forces display of charts for the given filename … … 560 560 # Now query the model item for available plots 561 561 plots = GuiUtils.plotsFromFilename(filename, model) 562 562 # Each fitpage contains the name based on fit widget number 563 fitpage_name = "" if id is None else "M"+str(id) 563 564 new_plots = [] 564 565 for item, plot in plots.items(): 565 if not self.updatePlot(plot): 566 # Don't plot intermediate results, e.g. P(Q), S(Q) 567 match = GuiUtils.theory_plot_ID_pattern.match(plot.id) 568 # 2nd match group contains the identifier for the intermediate result, if present (e.g. "[P(Q)]") 569 if match and match.groups()[1] != None: 570 continue 566 if self.updatePlot(plot) and filename != plot.name: 567 continue 568 # Don't plot intermediate results, e.g. P(Q), S(Q) 569 match = GuiUtils.theory_plot_ID_pattern.match(plot.id) 570 # 2nd match group contains the identifier for the intermediate result, if present (e.g. "[P(Q)]") 571 if match and match.groups()[1] != None: 572 continue 573 # Don't include plots from different fitpages, but always include the original data 574 if fitpage_name in plot.name or filename == plot.name: 571 575 # 'sophisticated' test to generate standalone plot for residuals 572 576 if 'esiduals' in plot.title: … … 579 583 self.plotData(new_plots) 580 584 581 def displayData(self, data_list ):585 def displayData(self, data_list, id): 582 586 """ 583 587 Forces display of charts for the given data set … … 588 592 # the data explorer indices. 589 593 filename = plot_to_show.filename 590 self.displayFile(filename=filename, is_data=plot_to_show.is_data )594 self.displayFile(filename=filename, is_data=plot_to_show.is_data, id=id) 591 595 592 596 def addDataPlot2D(self, plot_set, item): -
src/sas/qtgui/MainWindow/GuiManager.py
r339e22b r5b144c6 921 921 self.filesWidget.displayFile(filename=filename, is_data=True) 922 922 923 def showPlot(self, plot ):923 def showPlot(self, plot, id): 924 924 """ 925 925 Pass the show plot request to the data explorer 926 926 """ 927 927 if hasattr(self, "filesWidget"): 928 self.filesWidget.displayData(plot )928 self.filesWidget.displayData(plot, id) 929 929 930 930 def uncheckAllMenuItems(self, menuObject): -
src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
r685602a r5b144c6 1841 1841 data_to_show = self.data if self.data_is_loaded else self.model_data 1842 1842 if data_to_show is not None: 1843 self.communicate.plotRequestedSignal.emit([data_to_show] )1843 self.communicate.plotRequestedSignal.emit([data_to_show], self.tab_id) 1844 1844 1845 1845 def onOptionsUpdate(self): … … 2422 2422 2423 2423 if self.data_is_loaded: 2424 GuiUtils.deleteRedundantPlots(self.all_data[self.data_index], new_plots) 2424 #GuiUtils.deleteRedundantPlots(self.all_data[self.data_index], new_plots) 2425 pass 2425 2426 else: 2426 2427 # delete theory items for the model, in order to get rid of any redundant items, e.g. beta(Q), S_eff(Q) -
src/sas/qtgui/Plotting/Plotter.py
r0cd98a1 r5b144c6 561 561 562 562 #Remove another Fit, if exists 563 self.removePlot(" fit")563 self.removePlot("Fit") 564 564 565 565 self.fit_result.reset_view() -
src/sas/qtgui/Plotting/UnitTesting/PlotterTest.py
rb8080e1 r5b144c6 57 57 self.plotter.data = self.data 58 58 self.plotter.show() 59 FigureCanvas.draw _idle= MagicMock()59 FigureCanvas.draw = MagicMock() 60 60 61 61 self.plotter.plot(hide_error=False) 62 62 63 63 self.assertEqual(self.plotter.ax.get_xscale(), 'log') 64 self.assertTrue(FigureCanvas.draw _idle.called)64 self.assertTrue(FigureCanvas.draw.called) 65 65 66 66 self.plotter.figure.clf() … … 70 70 self.plotter.data = self.data 71 71 self.plotter.show() 72 FigureCanvas.draw _idle= MagicMock()72 FigureCanvas.draw = MagicMock() 73 73 74 74 self.plotter.plot(hide_error=True) 75 75 76 76 self.assertEqual(self.plotter.ax.get_yscale(), 'log') 77 self.assertTrue(FigureCanvas.draw _idle.called)77 self.assertTrue(FigureCanvas.draw.called) 78 78 self.plotter.figure.clf() 79 79 … … 91 91 self.plotter.data = data 92 92 self.plotter.show() 93 FigureCanvas.draw _idle= MagicMock()93 FigureCanvas.draw = MagicMock() 94 94 95 95 self.plotter.plot(hide_error=True) … … 97 97 self.assertEqual(self.plotter.ax.get_xscale(), 'linear') 98 98 self.assertEqual(self.plotter.ax.get_yscale(), 'linear') 99 self.assertTrue(FigureCanvas.draw _idle.called)99 self.assertTrue(FigureCanvas.draw.called) 100 100 101 101 def testCreateContextMenuQuick(self): … … 262 262 # Just this one plot 263 263 self.assertEqual(len(list(self.plotter.plot_dict.keys())), 1) 264 self.plotter.onLinearFit( 1)264 self.plotter.onLinearFit('Test name') 265 265 266 266 # Check that exec_ got called … … 289 289 290 290 # Delete one set 291 self.plotter.onRemovePlot( 2)291 self.plotter.onRemovePlot('Test name 2') 292 292 # Assure we have two sets 293 293 self.assertEqual(len(list(self.plotter.plot_dict.keys())), 1) … … 296 296 297 297 # Delete the remaining set 298 self.plotter.onRemovePlot( 1)298 self.plotter.onRemovePlot('Test name') 299 299 # Assure we have no plots 300 300 self.assertEqual(len(list(self.plotter.plot_dict.keys())), 0) … … 331 331 self.assertEqual(yl, "$YAXIS(cake)$") 332 332 # The hide_error flag should also remain 333 self.assertTrue(self.plotter.plot_dict[ 2].hide_error)333 self.assertTrue(self.plotter.plot_dict['Test name 2'].hide_error) 334 334 self.plotter.figure.clf() 335 335 … … 355 355 356 356 # Reverse the toggle 357 self.plotter.onToggleHideError( 2)357 self.plotter.onToggleHideError('Test name 2') 358 358 # See that the labels didn't change 359 359 xl = self.plotter.ax.xaxis.label.get_text() … … 362 362 self.assertEqual(yl, "$YAXIS(cake)$") 363 363 # The hide_error flag should toggle 364 self.assertEqual(self.plotter.plot_dict[ 2].hide_error, not error_status)364 self.assertEqual(self.plotter.plot_dict['Test name 2'].hide_error, not error_status) 365 365 self.plotter.figure.clf() 366 366 … … 417 417 self.assertEqual(yl, "$YAXIS(cake)$") 418 418 # The hide_error flag should be as set 419 self.assertEqual(self.plotter.plot_dict[ 2].hide_error, error_status)419 self.assertEqual(self.plotter.plot_dict['Test name 2'].hide_error, error_status) 420 420 self.plotter.figure.clf() 421 421 -
src/sas/qtgui/Utilities/GuiUtils.py
r339e22b r5b144c6 225 225 # New plot requested from the GUI manager 226 226 # Old "NewPlotEvent" 227 plotRequestedSignal = QtCore.pyqtSignal(list )227 plotRequestedSignal = QtCore.pyqtSignal(list, int) 228 228 229 229 # Plot from file names … … 288 288 for index in range(item.rowCount()): 289 289 plot_item = item.child(index) 290 if plot_item.isCheckable(): 291 plot_data = plot_item.child(0).data() 292 if plot_data.id is not None and \ 293 (plot_data.name == update_data.name or plot_data.id == update_data.id): 290 if not plot_item.isCheckable(): 291 continue 292 plot_data = plot_item.child(0).data() 293 if plot_data.id is not None and \ 294 plot_data.name == update_data.name: 295 #(plot_data.name == update_data.name or plot_data.id == update_data.id): 294 296 # if plot_data.id is not None and plot_data.id == update_data.id: 295 296 297 298 299 300 301 302 297 # replace data section in item 298 plot_item.child(0).setData(update_data) 299 plot_item.setText(name) 300 # Plot title if any 301 if plot_item.child(1).hasChildren(): 302 plot_item.child(1).child(0).setText("Title: %s"%name) 303 # Force redisplay 304 return 303 305 304 306 # Create the new item
Note: See TracChangeset
for help on using the changeset viewer.