Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/sas/qtgui/Perspectives/Fitting/FittingUtilities.py

    rb764ae5 r70f4458  
    124124    return item 
    125125 
    126 def addSimpleParametersToModel(parameters, is2D): 
     126def addSimpleParametersToModel(parameters, is2D, parameters_original=None): 
    127127    """ 
    128128    Update local ModelModel with sasmodel parameters 
     129    parameters_original: list of parameters before any tagging on their IDs, e.g. for product model 
     130    (so that those are the display names; see below) 
    129131    """ 
    130132    if is2D: 
     
    132134    else: 
    133135        params = parameters.iq_parameters 
     136 
     137    if parameters_original: 
     138        # 'parameters_original' contains the parameters as they are to be DISPLAYED, while 'parameters' 
     139        # contains the parameters as they were renamed; this is for handling name collisions in product model. 
     140        # The 'real name' of the parameter will be stored in the item's user data. 
     141        if is2D: 
     142            params_orig = [p for p in parameters_original.kernel_parameters if p.type != 'magnetic'] 
     143        else: 
     144            params_orig = parameters_original.iq_parameters 
     145    else: 
     146        # no difference in names anyway 
     147        params_orig = params 
     148 
    134149    item = [] 
    135     for param in params: 
     150    for param, param_orig in zip(params, params_orig): 
    136151        # Create the top level, checkable item 
    137         item_name = param.name 
     152        item_name = param_orig.name 
    138153        item1 = QtGui.QStandardItem(item_name) 
     154        item1.setData(param.name, QtCore.Qt.UserRole) 
    139155        item1.setCheckable(True) 
    140156        item1.setEditable(False) 
     
    144160        item4 = QtGui.QStandardItem(str(param.limits[0])) 
    145161        item5 = QtGui.QStandardItem(str(param.limits[1])) 
    146         item6 = QtGui.QStandardItem(param.units) 
     162        item6 = QtGui.QStandardItem(str(param.units)) 
    147163        item6.setEditable(False) 
    148164        item.append([item1, item2, item4, item5, item6]) 
     
    182198    model.appendRow(item_list) 
    183199 
     200def addHeadingRowToModel(model, name): 
     201    """adds a non-interactive top-level row to the model""" 
     202    header_row = [QtGui.QStandardItem() for i in range(5)] 
     203    header_row[0].setText(name) 
     204 
     205    font = header_row[0].font() 
     206    font.setBold(True) 
     207    header_row[0].setFont(font) 
     208 
     209    for item in header_row: 
     210        item.setEditable(False) 
     211        item.setCheckable(False) 
     212        item.setSelectable(False) 
     213 
     214    model.appendRow(header_row) 
     215 
    184216def addHeadersToModel(model): 
    185217    """ 
     
    227259    model.header_tooltips = copy.copy(poly_header_error_tooltips) 
    228260 
    229 def addShellsToModel(parameters, model, index): 
    230     """ 
    231     Find out multishell parameters and update the model with the requested number of them 
     261def addShellsToModel(parameters, model, index, row_num=None): 
     262    """ 
     263    Find out multishell parameters and update the model with the requested number of them. 
     264    Inserts them after the row at row_num, if not None; otherwise, appends to end. 
     265    Returns a list of lists of QStandardItem objects. 
    232266    """ 
    233267    multishell_parameters = getIterParams(parameters) 
    234268 
     269    rows = [] 
    235270    for i in range(index): 
    236271        for par in multishell_parameters: 
     
    259294            item4 = QtGui.QStandardItem(str(par.limits[1])) 
    260295            item5 = QtGui.QStandardItem(par.units) 
    261             model.appendRow([item1, item2, item3, item4, item5]) 
     296            row = [item1, item2, item3, item4, item5] 
     297            rows.append(row) 
     298 
     299            if row_num is None: 
     300                model.appendRow(row) 
     301            else: 
     302                model.insertRow(row_num, row) 
     303                row_num += 1 
     304 
     305    return rows 
    262306 
    263307def calculateChi2(reference_data, current_data): 
     
    430474 
    431475    theory_name = str(current_data.name.split()[0]) 
    432     res_name = reference_data.filename if reference_data.filename else reference_data.name 
    433     residuals.name = "Residuals for " + str(theory_name) + "[" + res_name + "]" 
     476    residuals.name = "Residuals for " + str(theory_name) + "[" + \ 
     477                    str(reference_data.filename) + "]" 
    434478    residuals.title = residuals.name 
    435479    residuals.ytransform = 'y' 
     
    457501    """ 
    458502    weight = None 
    459     if data is None: 
    460         return [] 
    461503    if is2d: 
    462         if not hasattr(data, 'err_data'): 
    463             return [] 
    464504        dy_data = data.err_data 
    465505        data = data.data 
    466506    else: 
    467         if not hasattr(data, 'dy'): 
    468             return [] 
    469507        dy_data = data.dy 
    470508        data = data.y 
Note: See TracChangeset for help on using the changeset viewer.