Skip to content

Commit f7b8c0e

Browse files
committed
making progress in saving the project with the correct phase
1 parent f76a882 commit f7b8c0e

File tree

2 files changed

+42
-73
lines changed

2 files changed

+42
-73
lines changed

GSASII/GSASIIphsGUI.py

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -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]

GSASII/GSASIIpwdGUI.py

Lines changed: 7 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -5235,7 +5235,7 @@ def showWebtext(txt):
52355235
G2frame, phaseID, phase_nam
52365236
)
52375237
)
5238-
data = Phase
5238+
# data = Phase
52395239
#oacomp,occomp = G2mth.phaseContents(data)
52405240
#ophsnam = data['General']['Name']
52415241
fileList = []
@@ -5246,8 +5246,8 @@ def showWebtext(txt):
52465246
obj.loadTree()
52475247
tmp = tempfile.NamedTemporaryFile(suffix='.cif', delete=False)
52485248
obj.dirname,obj.filename = os.path.split(tmp.name)
5249-
obj.phasenam = data['General']['Name']
5250-
obj.Writer('', data['General']['Name'])
5249+
obj.phasenam = Phase['General']['Name']
5250+
obj.Writer('', Phase['General']['Name'])
52515251
parentcif = tmp.name
52525252
ISOparentcif = ISO.UploadCIF(parentcif)
52535253
up2 = {'filename': ISOparentcif, 'input': 'uploadparentcif'}
@@ -5490,39 +5490,6 @@ def _get_opt_val(opt_name, out):
54905490
del Restraints[phsnam]
54915491
orgData = copy.deepcopy(data)
54925492

5493-
def renamePhaseName(phaseItem,generalData,newName):
5494-
'''Called to rename the phase. Updates the tree and items that
5495-
reference the file name.
5496-
'''
5497-
oldName = generalData['Name']
5498-
phaseRIdList,usedHistograms = G2frame.GetPhaseInfofromTree()
5499-
phaseNameList = usedHistograms.keys() # phase names in use
5500-
if newName and newName != oldName:
5501-
newName = G2obj.MakeUniqueLabel(newName,list(phaseNameList))
5502-
generalData['Name'] = newName
5503-
G2frame.G2plotNB.Rename(oldName,generalData['Name'])
5504-
G2frame.GPXtree.SetItemText(phaseItem,generalData['Name'])
5505-
# change phase name key in Reflection Lists for each histogram
5506-
for hist in data['Histograms']:
5507-
ht = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,hist)
5508-
rt = G2gd.GetGPXtreeItemId(G2frame,ht,'Reflection Lists')
5509-
if not rt: continue
5510-
RfList = G2frame.GPXtree.GetItemPyData(rt)
5511-
if oldName not in RfList:
5512-
print('Warning: '+oldName+' not in Reflection List for '+
5513-
hist)
5514-
continue
5515-
RfList[newName] = RfList[oldName]
5516-
del RfList[oldName]
5517-
# rename Restraints
5518-
resId = G2gd.GetGPXtreeItemId(G2frame,G2frame.root,'Restraints')
5519-
Restraints = G2frame.GPXtree.GetItemPyData(resId)
5520-
i = G2gd.GetGPXtreeItemId(G2frame,resId,oldName)
5521-
if i: G2frame.GPXtree.SetItemText(i,newName)
5522-
if len(Restraints) and oldName in Restraints:
5523-
Restraints[newName] = Restraints[oldName]
5524-
del Restraints[oldName]
5525-
55265493
for ir_opt, _ in ir_options:
55275494
print("Processing irrep:", ir_opt)
55285495
data["input"] = "irrep"
@@ -5572,10 +5539,12 @@ def renamePhaseName(phaseItem,generalData,newName):
55725539
'Histograms', 'Pawley ref', 'RBModels'
55735540
]
55745541
for key in key_list:
5575-
data[key] = rd.Phase[key]
5542+
Phase[key] = rd.Phase[key]
55765543

55775544
newname = rd.Phase['General']['Name']
5578-
data['General']['Name'] = newname
5545+
Phase['General']['Name'] = newname
5546+
5547+
G2phsG.renamePhaseNameTop(G2frame,Phase,G2frame.PickId,Phase['General'],newname)
55795548

55805549
G2frame.GSASprojectfile = os.path.splitext(
55815550
orgFilName

0 commit comments

Comments
 (0)