Changeset 2648


Ignore:
Timestamp:
Jan 19, 2017 3:44:25 PM (5 years ago)
Author:
vondreele
Message:

add cancelable progress bar to compute all PDFs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIpwdGUI.py

    r2645 r2648  
    49734973            return
    49744974        Names = [choices[i] for i in results]
     4975        pgbar = wx.ProgressDialog('Compute PDF','PDFs done',len(Names)+1,
     4976            style = wx.PD_ELAPSED_TIME|wx.PD_AUTO_HIDE|wx.PD_CAN_ABORT)
    49754977        notConverged = 0
    49764978        id, cookie = G2frame.PatternTree.GetFirstChild(G2frame.root)
    4977         while id:
    4978             Name = G2frame.PatternTree.GetItemText(id)
    4979             if Name in Names:
    4980                 Data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id,'PDF Controls'))
    4981                 print('  Computing {}'.format(Name))
    4982                 ComputePDF(Data)
    4983                 if od['value_1']:
    4984                     notConverged += not OptimizePDF(Data,maxCycles=10)
    4985             id, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)
    4986         if not G2frame.dataFrame.GetStatusBar():
    4987             Status = G2frame.dataFrame.CreateStatusBar()
     4979        N = 0
     4980        try:
     4981            while id:
     4982                Name = G2frame.PatternTree.GetItemText(id)
     4983                if Name in Names:
     4984                    N += 1
     4985                    if not pgbar.Update(N)[0]:
     4986                        pgbar.Destroy()
     4987                        break
     4988                    Data = G2frame.PatternTree.GetItemPyData(G2gd.GetPatternTreeItemId(G2frame,id,'PDF Controls'))
     4989                    print('  Computing {}'.format(Name))
     4990                    ComputePDF(Data)
     4991                    if od['value_1']:
     4992                        notConverged += not OptimizePDF(Data,maxCycles=10)
     4993                id, cookie = G2frame.PatternTree.GetNextChild(G2frame.root, cookie)
     4994        finally:
     4995            pgbar.Destroy()
    49884996        if od['value_1']:
    4989             msg = '{} PDFs computed; {} unconverged'.format(len(Names),notConverged)
     4997            msg = '{}/{} PDFs computed; {} unconverged'.format(N,len(Names),notConverged)
    49904998        else:
    4991             msg = '{} PDFs computed'.format(len(Names))
     4999            msg = '{}/{} PDFs computed'.format(N,len(Names))
    49925000        G2frame.dataFrame.GetStatusBar().SetStatusText(msg)
    49935001        print(msg)
Note: See TracChangeset for help on using the changeset viewer.