Changeset 9867860 in sasview
- Timestamp:
- Oct 24, 2017 10:12:28 AM (7 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:
- 4f9226c
- Parents:
- cca56a5 (diff), 5d1440e1 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent. - Files:
-
- 6 deleted
- 7 edited
- 66 moved
Legend:
- Unmodified
- Added
- Removed
-
src/sas/_config.py
rb963b20 r88e1f57 65 65 try: 66 66 module = load_module_from_path('sas.local_config', path) 67 logger.info("GuiManager loaded %s", path)67 #logger.info("GuiManager loaded %s", path) 68 68 return module 69 69 except Exception as exc: 70 logger.critical("Error loading %s: %s", path, exc)70 #logger.critical("Error loading %s: %s", path, exc) 71 71 sys.exit() 72 72 -
src/sas/qtgui/MainWindow/DataExplorer.py
r1420066 r88e1f57 463 463 Forces display of charts for the given filename 464 464 """ 465 # Assure no multiple plots for the same ID466 465 plot_to_show = data_list[0] 467 if plot_to_show.id in PlotHelper.currentPlots(): 468 return469 470 # Now query the model item for available plots466 467 # passed plot is used ONLY to figure out its title, 468 # so all the charts related by it can be pulled from 469 # the data explorer indices. 471 470 filename = plot_to_show.filename 472 471 model = self.model if plot_to_show.is_data else self.theory_model 472 473 # Now query the model item for available plots 473 474 plots = GuiUtils.plotsFromFilename(filename, model) 475 item = GuiUtils.itemFromFilename(filename, model) 476 477 new_plots = [] 474 478 for plot in plots: 475 479 plot_id = plot.id … … 477 481 self.active_plots[plot_id].replacePlot(plot_id, plot) 478 482 else: 479 self.plotData([(None, plot)]) 483 # 'sophisticated' test to generate standalone plot for residuals 484 if 'esiduals' in plot.title: 485 self.plotData([(item, plot)]) 486 else: 487 new_plots.append((item, plot)) 488 489 if new_plots: 490 self.plotData(new_plots) 480 491 481 492 def addDataPlot2D(self, plot_set, item): … … 487 498 plot2D.plot(plot_set) 488 499 self.addPlot(plot2D) 500 self.active_plots[plot2D.data.id] = plot2D 489 501 #============================================ 490 502 # Experimental hook for silx charts … … 507 519 # Call show on requested plots 508 520 # All same-type charts in one plot 509 #if isinstance(plot_set, Data1D):510 # new_plot = Plotter(self)511 512 521 for item, plot_set in plots: 513 522 if isinstance(plot_set, Data1D): … … 515 524 new_plot = Plotter(self) 516 525 new_plot.plot(plot_set) 526 # active_plots may contain multiple charts 527 self.active_plots[plot_set.id] = new_plot 517 528 elif isinstance(plot_set, Data2D): 518 529 self.addDataPlot2D(plot_set, item) … … 556 567 557 568 # Update the active chart list 558 self.active_plots[new_plot.data.id] = new_plot569 #self.active_plots[new_plot.data.id] = new_plot 559 570 560 571 def appendPlot(self): -
src/sas/qtgui/MainWindow/UnitTesting/DataExplorerTest.py
rf4a1433 r88e1f57 25 25 import sas.qtgui.Plotting.PlotHelper as PlotHelper 26 26 27 #if not QApplication.instance():28 app = QApplication(sys.argv)27 if not QApplication.instance(): 28 app = QApplication(sys.argv) 29 29 30 30 class DataExplorerTest(unittest.TestCase): -
src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py
ra95c44b rd0dfcb2 8 8 from sas.qtgui.Plotting.PlotterData import Data1D 9 9 from sas.qtgui.Plotting.PlotterData import Data2D 10 11 model_header_captions = ['Parameter', 'Value', 'Min', 'Max', 'Units'] 12 13 model_header_tooltips = ['Select parameter for fitting', 14 'Enter parameter value', 15 'Enter minimum value for parameter', 16 'Enter maximum value for parameter', 17 'Unit of the parameter'] 18 19 poly_header_captions = ['Parameter', 'PD[ratio]', 'Min', 'Max', 'Npts', 'Nsigs', 20 'Function', 'Filename'] 21 22 poly_header_tooltips = ['Select parameter for fitting', 23 'Enter polydispersity ratio (STD/mean). ' 24 'STD: standard deviation from the mean value', 25 'Enter minimum value for parameter', 26 'Enter maximum value for parameter', 27 'Enter number of points for parameter', 28 'Enter number of sigmas parameter', 29 'Select distribution function', 30 'Select filename with user-definable distribution'] 31 32 error_tooltip = 'Error value for fitted parameter' 33 header_error_caption = 'Error' 10 34 11 35 def replaceShellName(param_name, value): … … 131 155 Adds predefined headers to the model 132 156 """ 133 model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Parameter")) 134 model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("Value")) 135 model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant("Min")) 136 model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant("Max")) 137 model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Units")) 138 139 model.header_tooltips = ['Select parameter for fitting', 140 'Enter parameter value', 141 'Enter minimum value for parameter', 142 'Enter maximum value for parameter', 143 'Unit of the parameter'] 157 for i, item in enumerate(model_header_captions): 158 model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 159 160 model.header_tooltips = model_header_tooltips 161 144 162 def addErrorHeadersToModel(model): 145 163 """ 146 164 Adds predefined headers to the model 147 165 """ 148 model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Parameter")) 149 model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("Value")) 150 model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant("Error")) 151 model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant("Min")) 152 model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Max")) 153 model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QVariant("Units")) 154 155 model.header_tooltips = ['Select parameter for fitting', 156 'Enter parameter value', 157 'Error value for fitted parameter', 158 'Enter minimum value for parameter', 159 'Enter maximum value for parameter', 160 'Unit of the parameter'] 166 model_header_error_captions = model_header_captions 167 model_header_error_captions.insert(2, header_error_caption) 168 for i, item in enumerate(model_header_error_captions): 169 model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 170 171 model_header_error_tooltips = model_header_tooltips 172 model_header_error_tooltips.insert(2, error_tooltip) 173 model.header_tooltips = model_header_error_tooltips 161 174 162 175 def addPolyHeadersToModel(model): … … 164 177 Adds predefined headers to the model 165 178 """ 166 model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Parameter")) 167 model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("PD[ratio]")) 168 model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant("Min")) 169 model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant("Max")) 170 model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Npts")) 171 model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QVariant("Nsigs")) 172 model.setHeaderData(6, QtCore.Qt.Horizontal, QtCore.QVariant("Function")) 173 model.setHeaderData(7, QtCore.Qt.Horizontal, QtCore.QVariant("Filename")) 174 175 model.header_tooltips = ['Select parameter for fitting', 176 'Enter polydispersity ratio (STD/mean). ' 177 'STD: standard deviation from the mean value', 178 'Enter minimum value for parameter', 179 'Enter maximum value for parameter', 180 'Enter number of points for parameter', 181 'Enter number of sigmas parameter', 182 'Select distribution function', 183 'Select filename with user-definable distribution'] 179 for i, item in enumerate(poly_header_captions): 180 model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 181 182 model.header_tooltips = poly_header_tooltips 183 184 184 185 185 def addErrorPolyHeadersToModel(model): … … 187 187 Adds predefined headers to the model 188 188 """ 189 model.setHeaderData(0, QtCore.Qt.Horizontal, QtCore.QVariant("Parameter")) 190 model.setHeaderData(1, QtCore.Qt.Horizontal, QtCore.QVariant("PD[ratio]")) 191 model.setHeaderData(2, QtCore.Qt.Horizontal, QtCore.QVariant("Error")) 192 model.setHeaderData(3, QtCore.Qt.Horizontal, QtCore.QVariant("Min")) 193 model.setHeaderData(4, QtCore.Qt.Horizontal, QtCore.QVariant("Max")) 194 model.setHeaderData(5, QtCore.Qt.Horizontal, QtCore.QVariant("Npts")) 195 model.setHeaderData(6, QtCore.Qt.Horizontal, QtCore.QVariant("Nsigs")) 196 model.setHeaderData(7, QtCore.Qt.Horizontal, QtCore.QVariant("Function")) 197 model.setHeaderData(8, QtCore.Qt.Horizontal, QtCore.QVariant("Filename")) 198 199 model.header_tooltips = ['Select parameter for fitting', 200 'Enter polydispersity ratio (STD/mean). ' 201 'STD: standard deviation from the mean value', 202 'Error value for fitted parameter', 203 'Enter minimum value for parameter', 204 'Enter maximum value for parameter', 205 'Enter number of points for parameter', 206 'Enter number of sigmas parameter', 207 'Select distribution function', 208 'Select filename with user-definable distribution'] 189 poly_header_error_captions = poly_header_captions 190 poly_header_error_captions.insert(2, header_error_caption) 191 for i, item in enumerate(poly_header_error_captions): 192 model.setHeaderData(i, QtCore.Qt.Horizontal, QtCore.QVariant(item)) 193 194 poly_header_error_tooltips = poly_header_tooltips 195 poly_header_error_tooltips.insert(2, error_tooltip) 196 model.header_tooltips = poly_header_error_tooltips 209 197 210 198 def addShellsToModel(parameters, model, index): -
src/sas/qtgui/Perspectives/Fitting/FittingWidget.py
rcca56a5 r9867860 13 13 from PyQt4 import QtWebKit 14 14 15 from sasmodels import product 15 16 from sasmodels import generate 16 17 from sasmodels import modelinfo … … 52 53 53 54 class ToolTippedItemModel(QtGui.QStandardItemModel): 54 55 def __init__(self, parent = None): 55 """ 56 Subclass from QStandardItemModel to allow displaying tooltips in 57 QTableView model. 58 """ 59 def __init__(self, parent=None): 56 60 QtGui.QStandardItemModel.__init__(self,parent) 57 61 58 62 def headerData(self, section, orientation, role): 59 63 """ 64 Displays tooltip for each column's header 65 :param section: 66 :param orientation: 67 :param role: 68 :return: 69 """ 60 70 if role == QtCore.Qt.ToolTipRole: 61 71 if orientation == QtCore.Qt.Horizontal: … … 1039 1049 # Regardless of previous state, this should now be `plot show` functionality only 1040 1050 self.cmdPlot.setText("Show Plot") 1041 if not self.data_is_loaded:1042 1051 # Force data recalculation so existing charts are updated 1052 self.recalculatePlotData() 1043 1053 self.showPlot() 1044 1054 … … 1254 1264 structure_module = generate.load_kernel_module(structure_factor) 1255 1265 structure_parameters = modelinfo.make_parameter_table(getattr(structure_module, 'parameters', [])) 1266 structure_kernel = self.models[structure_factor]() 1267 1268 self.kernel_module._model_info = product.make_product_info(self.kernel_module._model_info, structure_kernel._model_info) 1256 1269 1257 1270 new_rows = FittingUtilities.addSimpleParametersToModel(structure_parameters, self.is2D) -
src/sas/qtgui/Perspectives/Fitting/ViewDelegate.py
r16afe01 r7ffa5ee9 128 128 129 129 def editableParameters(self): 130 return [self.poly_ min, self.poly_max, self.poly_npts, self.poly_nsigs]130 return [self.poly_pd, self.poly_min, self.poly_max, self.poly_npts, self.poly_nsigs] 131 131 132 132 def columnDict(self): -
src/sas/qtgui/Utilities/GuiUtils.py
rf0bb711 r88e1f57 313 313 # Append the new row to the main item 314 314 item.appendRow(object_item) 315 316 def itemFromFilename(filename, model_item): 317 """ 318 Returns the model item text=filename in the model 319 """ 320 assert isinstance(model_item, QtGui.QStandardItemModel) 321 assert isinstance(filename, basestring) 322 323 # Iterate over model looking for named items 324 item = list(filter(lambda i: str(i.text()) == filename, 325 [model_item.item(index) for index in range(model_item.rowCount())])) 326 return item[0] if len(item)>0 else None 315 327 316 328 def plotsFromFilename(filename, model_item):
Note: See TracChangeset
for help on using the changeset viewer.