@@ -1702,7 +1702,7 @@ def OnPhaseName(event):
17021702 'called when the phase name is changed in "General"'
17031703 event.Skip()
17041704 newName = NameTxt.GetValue().strip()
1705- renamePhaseName( Item,generalData,newName)
1705+ renamePhaseNameTop(G2frame,data, Item,generalData,newName)
17061706 NameTxt.SetValue(newName)
17071707
17081708 def OnPhaseType(event):
@@ -5706,7 +5706,7 @@ def OnReplacePhase(event):
57065706 newname = rd.Phase['General']['Name']
57075707 data['General']['Name'] = phsnam
57085708 # rename phase to new name from file
5709- renamePhaseName( G2frame.PickId, data['General'],newname)
5709+ renamePhaseNameTop(G2frame,data, G2frame.PickId, data['General'],newname)
57105710 # force a reload of current tree item
57115711 G2frame.PickIdText = []
57125712 wx.CallAfter(G2gd.SelectDataTreeItem,G2frame,G2frame.PickId)
@@ -17014,39 +17014,6 @@ def rbKeyPress(event):
1701417014 G2frame.Raise()
1701517015 return
1701617016
17017- def renamePhaseName(phaseItem,generalData,newName):
17018- '''Called to rename the phase. Updates the tree and items that
17019- reference the file name.
17020- '''
17021- oldName = generalData['Name']
17022- phaseRIdList,usedHistograms = G2frame.GetPhaseInfofromTree()
17023- phaseNameList = usedHistograms.keys() # phase names in use
17024- if newName and newName != oldName:
17025- newName = G2obj.MakeUniqueLabel(newName,list(phaseNameList))
17026- generalData['Name'] = newName
17027- G2frame.G2plotNB.Rename(oldName,generalData['Name'])
17028- G2frame.GPXtree.SetItemText(phaseItem,generalData['Name'])
17029- # change phase name key in Reflection Lists for each histogram
17030- for hist in data['Histograms']:
17031- ht = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,hist)
17032- rt = G2gd.GetGPXtreeItemId(G2frame,ht,'Reflection Lists')
17033- if not rt: continue
17034- RfList = G2frame.GPXtree.GetItemPyData(rt)
17035- if oldName not in RfList:
17036- print('Warning: '+oldName+' not in Reflection List for '+
17037- hist)
17038- continue
17039- RfList[newName] = RfList[oldName]
17040- del RfList[oldName]
17041- # rename Restraints
17042- resId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,'Restraints')
17043- Restraints = G2frame.GPXtree.GetItemPyData(resId)
17044- i = G2gd.GetGPXtreeItemId(G2frame,resId,oldName)
17045- if i: G2frame.GPXtree.SetItemText(i,newName)
17046- if len(Restraints) and oldName in Restraints:
17047- Restraints[newName] = Restraints[oldName]
17048- del Restraints[oldName]
17049-
1705017017 #### UpdatePhaseData execution starts here
1705117018 # make sure that the phase menu bars get created before selecting
1705217019 # any (this will only be true on the first call to UpdatePhaseData)
@@ -17400,3 +17367,36 @@ def saveIsoNewPhase(G2frame,phData,newPhase,orgFilName):
1740017367 G2frame.GSASprojectfile = f'{s[0]}_{num}.gpx'
1740117368 G2IO.ProjFileSave(G2frame)
1740217369 return G2frame.GSASprojectfile
17370+
17371+ def renamePhaseNameTop(G2frame,data,phaseItem,generalData,newName):
17372+ '''Called to rename the phase. Updates the tree and items that
17373+ reference the file name.
17374+ '''
17375+ oldName = generalData['Name']
17376+ phaseRIdList,usedHistograms = G2frame.GetPhaseInfofromTree()
17377+ phaseNameList = usedHistograms.keys() # phase names in use
17378+ if newName and newName != oldName:
17379+ newName = G2obj.MakeUniqueLabel(newName,list(phaseNameList))
17380+ generalData['Name'] = newName
17381+ G2frame.G2plotNB.Rename(oldName,generalData['Name'])
17382+ G2frame.GPXtree.SetItemText(phaseItem,generalData['Name'])
17383+ # change phase name key in Reflection Lists for each histogram
17384+ for hist in data['Histograms']:
17385+ ht = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,hist)
17386+ rt = G2gd.GetGPXtreeItemId(G2frame,ht,'Reflection Lists')
17387+ if not rt: continue
17388+ RfList = G2frame.GPXtree.GetItemPyData(rt)
17389+ if oldName not in RfList:
17390+ print('Warning: '+oldName+' not in Reflection List for '+
17391+ hist)
17392+ continue
17393+ RfList[newName] = RfList[oldName]
17394+ del RfList[oldName]
17395+ # rename Restraints
17396+ resId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,'Restraints')
17397+ Restraints = G2frame.GPXtree.GetItemPyData(resId)
17398+ i = G2gd.GetGPXtreeItemId(G2frame,resId,oldName)
17399+ if i: G2frame.GPXtree.SetItemText(i,newName)
17400+ if len(Restraints) and oldName in Restraints:
17401+ Restraints[newName] = Restraints[oldName]
17402+ del Restraints[oldName]
0 commit comments