Skip to content

Commit 249020c

Browse files
committed
Add a reset button for instrument parameters on delta-inst page
1 parent b114fae commit 249020c

1 file changed

Lines changed: 38 additions & 7 deletions

File tree

GSASII/GSASIIgroupGUI.py

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@ def SearchGroups(G2frame,Histograms,hist):
178178
return {'groupDict':groupDict,'notGrouped':noMatchCount,'template':srchStr}
179179

180180
def UpdateGroup(G2frame,item,plot=True):
181+
def refreshWindow():
182+
wx.CallAfter(UpdateGroup,G2frame,item,False)
183+
181184
def onDisplaySel(event):
182185
G2frame.GroupInfo['displayMode'] = dsplType.GetValue()
183186
wx.CallAfter(UpdateGroup,G2frame,item,False)
@@ -268,6 +271,7 @@ def OnCopySel(event):
268271
Histograms,Phases = G2frame.GetUsedHistogramsAndPhasesfromTree()
269272
if not hasattr(G2frame,'GroupInfo'):
270273
G2frame.GroupInfo = {}
274+
# start with Sample but reuse the last displayed item
271275
G2frame.GroupInfo['displayMode'] = G2frame.GroupInfo.get('displayMode','Sample')
272276
G2frame.GroupInfo['groupName'] = G2frame.GPXtree.GetItemText(item)
273277
G2gd.SetDataMenuBar(G2frame,G2frame.dataWindow.GroupMenu)
@@ -295,7 +299,7 @@ def OnCopySel(event):
295299
if G2frame.GroupInfo['displayMode'].startswith('Hist'):
296300
HAPframe(G2frame,Histograms,Phases)
297301
else:
298-
HistFrame(G2frame,Histograms)
302+
HistFrame(G2frame,Histograms,refresh=refreshWindow)
299303
if plot: G2pwpl.PlotPatterns(G2frame,plotType='GROUP')
300304
G2frame.dataWindow.SetDataSize()
301305
#wx.CallLater(100,G2frame.SendSizeEvent)
@@ -382,8 +386,24 @@ def onSetAll(event):
382386
for c in valEditList:
383387
c.ChangeValue(firstVal)
384388

389+
def onResetAll(event):
390+
'''Respond to the Reset button. Copies the initial setting (which
391+
should be index 0) to the current setting (which should be index 1)
392+
for all histograms in the current row. This is only used for
393+
instrument parameters.
394+
'''
395+
but = event.GetEventObject()
396+
dataSource = but.valDict['dataSource']
397+
for item,hist in zip(but.valDict['arrays'],but.valDict['hists']):
398+
arr,indx = indexArrayRef(dataSource,hist,item)
399+
if indx == 1:
400+
arr[1] = arr[0]
401+
refresh = but.valDict.get('refresh')
402+
if refresh:
403+
refresh()
404+
385405
def displayDataArray(rowLabels,DataArray,Sizer,Panel,lblRow=False,deltaMode=False,
386-
lblSizer=None,lblPanel=None,CopyCtrl=True):
406+
lblSizer=None,lblPanel=None,CopyCtrl=True,refresh=None):
387407
'''Displays the data table in `DataArray` in Scrolledpanel `Panel`
388408
with wx.FlexGridSizer `Sizer`.
389409
'''
@@ -439,6 +459,13 @@ def displayDataArray(rowLabels,DataArray,Sizer,Panel,lblRow=False,deltaMode=Fals
439459
refAll.Bind(wx.EVT_BUTTON,onRefineAll)
440460
else:
441461
lblSizer.Add((-1,-1))
462+
if deltaMode:
463+
resetBut = wx.Button(lblPanel,label='↩',style=wx.BU_EXACTFIT)
464+
resetBut.valDict = {'arrays': valList, 'hists': histList,
465+
'dataSource':dataSource,
466+
'refresh': refresh}
467+
lblSizer.Add(resetBut,0,wx.ALIGN_CENTER_VERTICAL)
468+
resetBut.Bind(wx.EVT_BUTTON,onResetAll)
442469

443470
i = -1
444471
for hist in DataArray:
@@ -536,7 +563,7 @@ def displayDataArray(rowLabels,DataArray,Sizer,Panel,lblRow=False,deltaMode=Fals
536563
print('Should not happen',DataArray[hist][row],hist,row)
537564
return firstentry,lblDict
538565

539-
def HistFrame(G2frame,Histograms):
566+
def HistFrame(G2frame,Histograms,refresh=None):
540567
'''Put everything in a single FlexGridSizer.
541568
'''
542569
#---------------------------------------------------------------------
@@ -563,7 +590,7 @@ def HistFrame(G2frame,Histograms):
563590
dataSource = prmArray['_dataSource']
564591
for hist in prmArray:
565592
if hist == '_dataSource': continue
566-
cols = len(prmArray)
593+
#cols = len(prmArray)
567594
prevkey = None
568595
for key in prmArray[hist]:
569596
# find delta-terms that are non-zero
@@ -579,22 +606,25 @@ def HistFrame(G2frame,Histograms):
579606
else:
580607
rowLabels.insert(rowLabels.index(prevkey)+1,key)
581608
prevkey = key
609+
n = 2 # extra columns
582610
# remove rows where delta-terms are all zeros
583611
if '\u0394' in G2frame.GroupInfo['displayMode']:
584612
rowLabels = [i for i in rowLabels if i in nonZeroRows]
613+
n += 1
585614
#======= Generate GUI ===============================================
586615
# layout the window
587616
panel = midPanel = G2frame.dataWindow
588617
mainSizer = wx.BoxSizer(wx.VERTICAL)
589618
G2G.HorizontalLine(mainSizer,panel)
590619
panel.SetSizer(mainSizer)
591620
deltaMode = "\u0394" in G2frame.GroupInfo['displayMode']
592-
n = 2
593621
if CopyCtrl and len(prmArray) > 2: n += 1 # add column for copy (when more than one histogram)
594622
valSizer = wx.FlexGridSizer(0,len(prmArray)+n-1,3,10)
595623
mainSizer.Add(valSizer,1,wx.EXPAND)
596624
valSizer.Add(wx.StaticText(midPanel,label=' '))
597625
valSizer.Add(wx.StaticText(midPanel,label=' Ref '))
626+
if '\u0394' in G2frame.GroupInfo['displayMode']:
627+
valSizer.Add(wx.StaticText(midPanel,label=' reset '))
598628
for i,hist in enumerate(histLabels(G2frame)[1]):
599629
if i == 1 and CopyCtrl:
600630
if deltaMode:
@@ -606,7 +636,8 @@ def HistFrame(G2frame,Histograms):
606636
0,wx.ALIGN_CENTER)
607637
firstentry,lblDict = displayDataArray(rowLabels,prmArray,valSizer,midPanel,
608638
lblRow=True,
609-
deltaMode=deltaMode,CopyCtrl=CopyCtrl)
639+
deltaMode=deltaMode,CopyCtrl=CopyCtrl,
640+
refresh=refresh)
610641
if firstentry is not None: # prevent scroll to show last entry
611642
wx.Window.SetFocus(firstentry)
612643
firstentry.SetInsertionPoint(0) # prevent selection of text in widget
@@ -1101,7 +1132,7 @@ def getHAPvals(G2frame,phase,Histograms,Phases):
11011132
}
11021133
indexDict[hist]['SH txtr indx'] = {
11031134
'str' : None,
1104-
'txt' : f'{G2lat.textureIndex(PhaseData['Histograms'][hist]['Pref.Ori.'][5]):.3f}'}
1135+
'txt' : f'{G2lat.textureIndex(PhaseData["Histograms"][hist]["Pref.Ori."][5]):.3f}'}
11051136
# misc: Layer Disp, Extinction
11061137
if 'Layer Disp' in PhaseData['Histograms'][hist]:
11071138
indexDict[hist]['Layer displ'] = {

0 commit comments

Comments
 (0)