Changeset 1265 for trunk/GSASIIpwdGUI.py
- Timestamp:
- Mar 27, 2014 9:28:08 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/GSASIIpwdGUI.py
r1263 r1265 100 100 'Fills in default items for the SASD Substances dictionary' 101 101 return {'Substances':{'vacuum':{'Elements':{},'Volume':1.0,'Density':0.0,'Scatt density':0.0}}} 102 103 def GetHistsLikeSelected(G2frame): 104 '''Get the histograms that match the current selected one: 105 The histogram prefix and data type (PXC etc.), the number of 106 wavelengths and the instrument geometry (Debye-Scherrer etc.) 107 must all match. The current histogram is not included in the list. 108 109 :param wx.Frame G2frame: pointer to main GSAS-II data tree 110 ''' 111 histList = [] 112 inst,inst2 = G2frame.PatternTree.GetItemPyData( 113 G2gd.GetPatternTreeItemId( 114 G2frame,G2frame.PatternId, 'Instrument Parameters') 115 ) 116 hType = inst['Type'][0] 117 if 'Lam1' in inst: 118 hLam = 2 119 elif 'Lam' in inst: 120 hLam = 1 121 else: 122 hLam = 0 123 sample = G2frame.PatternTree.GetItemPyData( 124 G2gd.GetPatternTreeItemId( 125 G2frame,G2frame.PatternId, 'Sample Parameters') 126 ) 127 hGeom = sample.get('Type') 128 hstName = G2frame.PatternTree.GetItemText(G2frame.PatternId) 129 hPrefix = hstName.split()[0]+' ' 130 # cycle through tree looking for items that match the above 131 item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root) 132 while item: 133 name = G2frame.PatternTree.GetItemText(item) 134 if name.startswith(hPrefix) and name != hstName: 135 cGeom,cType,cLam, = '?','?',-1 136 subitem, subcookie = G2frame.PatternTree.GetFirstChild(item) 137 while subitem: 138 subname = G2frame.PatternTree.GetItemText(subitem) 139 if subname == 'Sample Parameters': 140 sample = G2frame.PatternTree.GetItemPyData(subitem) 141 cGeom = sample.get('Type') 142 elif subname == 'Instrument Parameters': 143 inst,inst2 = G2frame.PatternTree.GetItemPyData(subitem) 144 cType = inst['Type'][0] 145 if 'Lam1' in inst: 146 cLam = 2 147 elif 'Lam' in inst: 148 cLam = 1 149 else: 150 cLam = 0 151 subitem, subcookie = G2frame.PatternTree.GetNextChild(item, subcookie) 152 if cLam == hLam and cType == hType and cGeom == hGeom: 153 if name not in histList: histList.append(name) 154 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 155 return histList 156 157 def SetCopyNames(histName,dataType,addNames=[]): 158 '''Determine the items in the sample parameters that should be copied, 159 depending on the histogram type and the instrument type. 160 ''' 161 copyNames = ['Scale',] 162 histType = 'HKLF' 163 if 'PWDR' in histName: 164 histType = 'PWDR' 165 if 'Debye' in dataType: 166 copyNames += ['DisplaceX','DisplaceY','Absorption'] 167 else: #Bragg-Brentano 168 copyNames += ['Shift','Transparency','SurfRoughA','SurfRoughB'] 169 elif 'SASD' in histName: 170 histType = 'SASD' 171 copyNames += ['Materials','Thick',] 172 if len(addNames): 173 copyNames += addNames 174 return histType,copyNames 175 176 def CopySelectedHistItems(G2frame): 177 '''Global copy: Copy items from current histogram to others. 178 This is called from the menubar and is available only when the top histogram tree entry 179 is selected. 180 ''' 181 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 182 histList = GetHistsLikeSelected(G2frame) 183 if not histList: 184 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 185 return 186 choices = ['Limits','Background','Instrument Parameters','Sample Parameters'] 187 dlg = G2gd.G2MultiChoiceDialog( 188 G2frame.dataFrame, 189 'Copy which histogram sections from\n'+str(hst[5:]), 190 'Select copy sections', choices, filterBox=False) 191 dlg.SetSelections(range(len(choices))) 192 if dlg.ShowModal() == wx.ID_OK: 193 sections = dlg.GetSelections() 194 else: 195 sections = [] 196 if not sections: return 197 198 dlg = G2gd.G2MultiChoiceDialog( 199 G2frame.dataFrame, 200 'Copy parameters from\n'+str(hst[5:])+' to...', 201 'Copy parameters', histList) 202 results = [] 203 try: 204 if dlg.ShowModal() == wx.ID_OK: 205 results = dlg.GetSelections() 206 finally: 207 dlg.Destroy() 208 copyList = [] 209 for i in results: 210 copyList.append(histList[i]) 211 212 if 0 in sections: # Limits 213 data = G2frame.PatternTree.GetItemPyData( 214 G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Limits')) 215 for item in copyList: 216 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 217 G2frame.PatternTree.SetItemPyData( 218 G2gd.GetPatternTreeItemId(G2frame,Id,'Limits'), 219 copy.deepcopy(data)) 220 if 1 in sections: # Background 221 data = G2frame.PatternTree.GetItemPyData( 222 G2gd.GetPatternTreeItemId(G2frame,G2frame.PatternId,'Background')) 223 for item in copyList: 224 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 225 G2frame.PatternTree.SetItemPyData( 226 G2gd.GetPatternTreeItemId(G2frame,Id,'Background'), 227 copy.deepcopy(data)) 228 if 2 in sections: # Instrument Parameters 229 # for now all items in Inst. parms are copied 230 data,data1 = G2frame.PatternTree.GetItemPyData( 231 G2gd.GetPatternTreeItemId( 232 G2frame,G2frame.PatternId,'Instrument Parameters')) 233 for item in copyList: 234 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 235 G2frame.PatternTree.GetItemPyData( 236 G2gd.GetPatternTreeItemId(G2frame,Id,'Instrument Parameters') 237 )[0].update(copy.deepcopy(data)) 238 G2frame.PatternTree.GetItemPyData( 239 G2gd.GetPatternTreeItemId(G2frame,Id,'Instrument Parameters') 240 )[1].update(copy.deepcopy(data1)) 241 if 3 in sections: # Sample Parameters 242 data = G2frame.PatternTree.GetItemPyData( 243 G2gd.GetPatternTreeItemId( 244 G2frame,G2frame.PatternId,'Sample Parameters')) 245 # selects items to be copied 246 histType,copyNames = SetCopyNames(hst,data['Type'], 247 addNames = ['Omega','Chi','Phi','Gonio. radius','InstrName']) 248 copyDict = {parm:data[parm] for parm in copyNames} 249 for item in copyList: 250 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 251 G2frame.PatternTree.GetItemPyData( 252 G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters') 253 ).update(copy.deepcopy(copyDict)) 102 254 103 255 ################################################################################ … … 387 539 for term in backDict['peaksList']: 388 540 PKflags.append(term[1::2]) 389 histList = ['All',]+G2gd.GetPatternTreeDataNames(G2frame,['PWDR',]) 541 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 542 histList = GetHistsLikeSelected(G2frame) 543 if not histList: 544 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 545 return 546 dlg = G2gd.G2MultiChoiceDialog( 547 G2frame.dataFrame, 548 'Copy bkg ref. flags from\n'+str(hst[5:])+' to...', 549 'Copy flags', histList) 390 550 copyList = [] 391 dlg = wx.MultiChoiceDialog(G2frame,392 'Copy refinement flags to which histograms?', 'Copy flags',393 histList, wx.CHOICEDLG_STYLE)394 551 try: 395 552 if dlg.ShowModal() == wx.ID_OK: 396 result = dlg.GetSelections() 397 for i in result: 553 for i in dlg.GetSelections(): 398 554 copyList.append(histList[i]) 399 if 'All' in copyList:400 copyList = histList[1:]401 for item in copyList:402 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item)403 backData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Background'))404 backData[0][1] = copy.copy(flag)405 bkDict = backData[-1]406 if bkDict['nDebye'] == backDict['nDebye']:407 for i,term in enumerate(bkDict['debyeTerms']):408 term[1::2] = copy.copy(DBflags[i])409 if bkDict['nPeaks'] == backDict['nPeaks']:410 for i,term in enumerate(bkDict['peaksList']):411 term[1::2] = copy.copy(PKflags[i])412 555 finally: 413 556 dlg.Destroy() 557 for item in copyList: 558 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 559 backData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Background')) 560 backData[0][1] = copy.copy(flag) 561 bkDict = backData[-1] 562 if bkDict['nDebye'] == backDict['nDebye']: 563 for i,term in enumerate(bkDict['debyeTerms']): 564 term[1::2] = copy.copy(DBflags[i]) 565 if bkDict['nPeaks'] == backDict['nPeaks']: 566 for i,term in enumerate(bkDict['peaksList']): 567 term[1::2] = copy.copy(PKflags[i]) 414 568 415 569 def OnBackCopy(event): 416 histList = ['All',]+G2gd.GetPatternTreeDataNames(G2frame,['PWDR',]) 570 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 571 histList = GetHistsLikeSelected(G2frame) 572 if not histList: 573 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 574 return 417 575 copyList = [] 418 dlg = wx.MultiChoiceDialog(G2frame, 419 'Copy parameters to which histograms?', 'Copy parameters', 420 histList, wx.CHOICEDLG_STYLE) 576 dlg = G2gd.G2MultiChoiceDialog( 577 G2frame.dataFrame, 578 'Copy bkg params from\n'+str(hst[5:])+' to...', 579 'Copy parameters', histList) 421 580 try: 422 581 if dlg.ShowModal() == wx.ID_OK: 423 result = dlg.GetSelections() 424 for i in result: 582 for i in dlg.GetSelections(): 425 583 copyList.append(histList[i]) 426 if 'All' in copyList:427 copyList = histList[1:]428 for item in copyList:429 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item)430 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Background'),431 copy.copy(data))432 584 finally: 433 585 dlg.Destroy() 586 for item in copyList: 587 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 588 G2frame.PatternTree.SetItemPyData( 589 G2gd.GetPatternTreeItemId(G2frame,Id,'Background'),copy.copy(data)) 434 590 435 591 def BackSizer(): … … 672 828 673 829 def OnLimitCopy(event): 674 histList = ['All',]+G2gd.GetPatternTreeDataNames(G2frame,['PWDR','SASD',]) 830 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 831 histList = GetHistsLikeSelected(G2frame) 832 if not histList: 833 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 834 return 675 835 copyList = [] 676 dlg = wx.MultiChoiceDialog(G2frame, 677 'Copy limits to which histograms?', 'Copy limits', 678 histList, wx.CHOICEDLG_STYLE) 836 dlg = G2gd.G2MultiChoiceDialog( 837 G2frame.dataFrame, 838 'Copy limits from\n'+str(hst[5:])+' to...', 839 'Copy limits', histList) 679 840 try: 680 841 if dlg.ShowModal() == wx.ID_OK: 681 result = dlg.GetSelections() 682 for i in result: 683 copyList.append(histList[i]) 684 if 'All' in copyList: 685 copyList = histList[1:] 686 for item in copyList: 687 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 688 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Limits'), 689 copy.copy(data)) 842 for i in dlg.GetSelections(): 843 item = histList[i] 844 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 845 G2frame.PatternTree.SetItemPyData( 846 G2gd.GetPatternTreeItemId(G2frame,Id,'Limits'),copy.copy(data)) 690 847 finally: 691 848 dlg.Destroy() … … 844 1001 845 1002 def OnInstFlagCopy(event): 846 histName = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1003 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1004 histList = GetHistsLikeSelected(G2frame) 1005 if not histList: 1006 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 1007 return 847 1008 keys = data.keys() 848 1009 flags = dict(zip(keys,[data[key][2] for key in keys])) 849 1010 instType = data['Type'][0] 850 histList = ['All',]+G2gd.GetPatternTreeDataNames(G2frame,['PWDR',])851 1011 copyList = [] 852 dlg = wx.MultiChoiceDialog(G2frame, 853 'Copy refinement flags from\n'+histName, 'Copy refinement flags', 854 histList, wx.CHOICEDLG_STYLE) 1012 dlg = G2gd.G2MultiChoiceDialog( 1013 G2frame.dataFrame, 1014 'Copy inst ref. flags from\n'+hst[5:], 1015 'Copy refinement flags', histList) 855 1016 try: 856 1017 if dlg.ShowModal() == wx.ID_OK: 857 result = dlg.GetSelections() 858 for i in result: 1018 for i in dlg.GetSelections(): 859 1019 copyList.append(histList[i]) 860 if 'All' in copyList:861 copyList = histList[1:]862 for item in copyList:863 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item)864 instData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Instrument Parameters'))[0]865 if len(data) == len(instData) and instType == instData['Type'][0]: #don't mix data types or lam & lam1/lam2 parms!866 for item in instData:867 instData[item][2] = copy.copy(flags[item])868 else:869 print item+' not copied - instrument parameters not commensurate'870 1020 finally: 871 1021 dlg.Destroy() 1022 for item in copyList: 1023 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1024 instData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Instrument Parameters'))[0] 1025 if len(data) == len(instData) and instType == instData['Type'][0]: #don't mix data types or lam & lam1/lam2 parms! 1026 for item in instData: 1027 instData[item][2] = copy.copy(flags[item]) 1028 else: 1029 print item+' not copied - instrument parameters not commensurate' 872 1030 873 1031 def OnInstCopy(event): 874 1032 #need fix for dictionary 875 histName = G2frame.PatternTree.GetItemText(G2frame.PatternId) 876 histList = ['All',]+G2gd.GetPatternTreeDataNames(G2frame,['PWDR',]) 1033 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1034 histList = GetHistsLikeSelected(G2frame) 1035 if not histList: 1036 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 1037 return 877 1038 copyList = [] 878 1039 instType = data['Type'][0] 879 dlg = wx.MultiChoiceDialog(G2frame, 880 'Copy parameters from\n'+histName, 'Copy parameters', 881 histList, wx.CHOICEDLG_STYLE) 1040 dlg = G2gd.G2MultiChoiceDialog( 1041 G2frame.dataFrame, 1042 'Copy inst params from\n'+hst, 1043 'Copy parameters', histList) 882 1044 try: 883 1045 if dlg.ShowModal() == wx.ID_OK: 884 result = dlg.GetSelections() 885 for i in result: 1046 for i in dlg.GetSelections(): 886 1047 copyList.append(histList[i]) 887 if 'All' in copyList:888 copyList = histList[1:]889 for item in copyList:890 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item)891 instData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Instrument Parameters'))[0]892 if len(data) == len(instData) and instType == instData['Type'][0]: #don't mix data types or lam & lam1/lam2 parms!893 instData.update(data)894 else:895 print item+' not copied - instrument parameters not commensurate'896 1048 finally: 897 1049 dlg.Destroy() 1050 for item in copyList: 1051 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1052 instData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Instrument Parameters'))[0] 1053 if len(data) == len(instData) and instType == instData['Type'][0]: #don't mix data types or lam & lam1/lam2 parms! 1054 instData.update(data) 1055 else: 1056 print item+' not copied - instrument parameters not commensurate' 898 1057 899 1058 def OnWaveChange(event): … … 1137 1296 data tree item. 1138 1297 ''' 1139 1140 def SetCopyNames(histName,addNames=[]): 1141 copyNames = ['Scale',] 1142 dataType = data['Type'] 1143 histType = 'HKLF' 1144 if 'PWDR' in histName: 1145 histType = 'PWDR' 1146 if 'Debye' in dataType: 1147 copyNames += ['DisplaceX','DisplaceY','Absorption'] 1148 else: #Bragg-Brentano 1149 copyNames += ['Shift','Transparency','SurfRoughA','SurfRoughB'] 1150 elif 'SASD' in histName: 1151 histType = 'SASD' 1152 copyNames += ['Materials','Thick',] 1153 if len(addNames): 1154 copyNames += addNames 1155 return histType,copyNames 1156 1298 1157 1299 def OnSampleSave(event): 1158 1300 '''Respond to the Sample Parameters Operations/Save menu … … 1235 1377 1236 1378 def OnSampleCopy(event): 1237 histType,copyNames = SetCopyNames(histName, 1379 histType,copyNames = SetCopyNames(histName,data['Type'], 1238 1380 addNames = ['Omega','Chi','Phi','Gonio. radius','InstrName']) 1239 1381 copyDict = {} 1240 1382 for parm in copyNames: 1241 1383 copyDict[parm] = data[parm] 1242 histList = ['All '+histType,] 1243 AllList = {} 1244 item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root) 1245 while item: 1246 name = G2frame.PatternTree.GetItemText(item) 1247 if histType in name and name != histName: 1248 allname = name.split(' Azm=')[0] 1249 if allname in AllList: 1250 AllList[allname] += 1 1251 else: 1252 AllList[allname] = 1 1253 histList.append(name) 1254 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 1255 if len(histList) == 1: #nothing to copy to! 1384 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1385 histList = GetHistsLikeSelected(G2frame) 1386 if not histList: 1387 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 1256 1388 return 1257 nAll = 0 1258 AllNames = AllList.keys() 1259 AllNames.sort() 1260 for allname in AllNames: 1261 if AllList[allname] > 1: 1262 histList.insert(1+nAll,'All '+allname) 1263 nAll += 1 1264 copyList = [] 1265 dlg = wx.MultiChoiceDialog(G2frame,'Copy parameters from\n'+histName, 1266 'Copy parameters',histList,wx.CHOICEDLG_STYLE) 1389 dlg = G2gd.G2MultiChoiceDialog( 1390 G2frame.dataFrame, 1391 'Copy sample params from\n'+str(hst[5:])+' to...', 1392 'Copy sample parameters', histList) 1267 1393 try: 1268 1394 if dlg.ShowModal() == wx.ID_OK: 1269 1395 result = dlg.GetSelections() 1270 1396 for i in result: 1271 copyList.append(histList[i]) 1272 for allname in AllList: 1273 if 'All '+allname in copyList: 1274 copyList = [] 1275 for name in histList: 1276 if name.split(' Azm=')[0] == allname: 1277 copyList.append(name) 1278 break #only one All allowed 1279 if 'All '+histType in copyList: 1280 copyList = histList[1+nAll:] 1281 for item in copyList: 1282 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1283 sampleData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 1284 sampleData.update(copy.deepcopy(copyDict)) 1397 item = histList[i] 1398 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1399 sampleData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 1400 sampleData.update(copy.deepcopy(copyDict)) 1285 1401 finally: 1286 1402 dlg.Destroy() 1287 1403 1288 1404 def OnSampleFlagCopy(event): 1289 histType,copyNames = SetCopyNames(histName )1405 histType,copyNames = SetCopyNames(histName,data['Type']) 1290 1406 flagDict = {} 1291 1407 for parm in copyNames: 1292 1408 flagDict[parm] = data[parm][1] 1293 histList = ['All '+histType,] 1294 item, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root) 1295 while item: 1296 name = G2frame.PatternTree.GetItemText(item) 1297 if histType in name and name != histName: 1298 histList.append(name) 1299 item, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie) 1300 if len(histList) == 1: #nothing to copy to! 1409 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 1410 histList = GetHistsLikeSelected(G2frame) 1411 if not histList: 1412 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 1301 1413 return 1302 copyList = [] 1303 dlg = wx.MultiChoiceDialog(G2frame,'Copy parameters from\n'+histName, 1304 'Copy refinement flags',histList,wx.CHOICEDLG_STYLE) 1414 dlg = G2gd.G2MultiChoiceDialog( 1415 G2frame.dataFrame, 1416 'Copy sample ref. flags from\n'+str(hst[5:])+' to...', 1417 'Copy sample flags', histList) 1305 1418 try: 1306 1419 if dlg.ShowModal() == wx.ID_OK: 1307 1420 result = dlg.GetSelections() 1308 1421 for i in result: 1309 copyList.append(histList[i]) 1310 if 'All '+histType in copyList: 1311 copyList = histList[1:] 1312 for item in copyList: 1313 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1314 sampleData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 1315 for name in copyNames: 1316 sampleData[name][1] = copy.copy(flagDict[name]) 1422 item = histList[i] 1423 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 1424 sampleData = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Sample Parameters')) 1425 for name in copyNames: 1426 sampleData[name][1] = copy.copy(flagDict[name]) 1317 1427 finally: 1318 1428 dlg.Destroy() … … 2232 2342 2233 2343 def OnCopySubstance(event): 2234 histList = ['All',]+G2gd.GetPatternTreeDataNames(G2frame,['SASD',]) 2344 hst = G2frame.PatternTree.GetItemText(G2frame.PatternId) 2345 histList = GetHistsLikeSelected(G2frame) 2346 if not histList: 2347 G2frame.ErrorDialog('No match','No histograms match '+hst,G2frame.dataFrame) 2348 return 2235 2349 copyList = [] 2236 dlg = wx.MultiChoiceDialog(G2frame, 2237 'Copy substances to which histograms?', 'Copy substances', 2238 histList, wx.CHOICEDLG_STYLE) 2350 dlg = G2gd.G2MultiChoiceDialog( 2351 G2frame.dataFrame, 2352 'Copy substances from\n'+hst[5:]+' to...', 2353 'Copy substances', histList) 2239 2354 try: 2240 2355 if dlg.ShowModal() == wx.ID_OK: 2241 result = dlg.GetSelections() 2242 for i in result: 2356 for i in dlg.GetSelections(): 2243 2357 copyList.append(histList[i]) 2244 if 'All' in copyList:2245 copyList = histList[1:]2246 for item in copyList:2247 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item)2248 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Substances'),2249 copy.copy(data))2250 2358 finally: 2251 2359 dlg.Destroy() 2360 for item in copyList: 2361 Id = G2gd.GetPatternTreeItemId(G2frame,G2frame.root,item) 2362 G2frame.PatternTree.SetItemPyData(G2gd.GetPatternTreeItemId(G2frame,Id,'Substances'), 2363 copy.copy(data)) 2252 2364 2253 2365 def OnAddSubstance(event):
Note: See TracChangeset
for help on using the changeset viewer.