Changeset 4811 for trunk


Ignore:
Timestamp:
Feb 12, 2021 10:59:21 AM (2 years ago)
Author:
toby
Message:

more wx4.1 & help button fixes; fix OnLeave? if called when a window is deleted; HessianLSQ fix

Location:
trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrlGUI.py

    r4801 r4811  
    777777        if self.OnLeave:
    778778            self.event = event
    779             self.OnLeave(invalid=self.invalid,value=self.result[self.key],
    780                 tc=self,**self.OnLeaveArgs)
    781 
     779            try:
     780                self.OnLeave(invalid=self.invalid,value=self.result[self.key],
     781                    tc=self,**self.OnLeaveArgs)
     782            except:
     783                pass
    782784################################################################################
    783785class NumberValidator(wx.PyValidator):
     
    27142716        else:
    27152717            self.valItem = wx.TextCtrl(self.panel,-1,value=self.value,size=size)
    2716         sizer1.Add(self.valItem,0,wx.ALIGN_CENTER)
    27172718        if help:
    2718             sizer1.Add(HelpButton(self.panel,help),0,wx.ALIGN_RIGHT|wx.ALL)
    2719         mainSizer.Add(sizer1,0,wx.ALIGN_CENTER)
     2719            sizer1.Add((-1,-1),1,wx.EXPAND)
     2720            sizer1.Add(self.valItem,0,wx.ALIGN_CENTER)
     2721            sizer1.Add((-1,-1),1,wx.EXPAND)
     2722            sizer1.Add(HelpButton(self.panel,help),0,wx.ALL)
     2723        else:
     2724            sizer1.Add(self.valItem,0,wx.ALIGN_CENTER)
     2725        mainSizer.Add(sizer1,0,wx.EXPAND)
    27202726        btnsizer = wx.StdDialogButtonSizer()
    27212727        OKbtn = wx.Button(self.panel, wx.ID_OK)
     
    35763582        mainSizer.Add((0,10))
    35773583        for line in text:
    3578             mainSizer.Add(wx.StaticText(self.panel,label='     %s     '%(line)),0,WACV)
     3584            mainSizer.Add(wx.StaticText(self.panel,label='     %s     '%(line)))
    35793585        ncol = self.table[0].count(',')+1
    35803586        tableSizer = wx.FlexGridSizer(0,2*ncol+3,0,0)
     
    35833589            if 'for' in item:
    35843590                mainSizer.Add(tableSizer,0,wx.ALIGN_LEFT)
    3585                 mainSizer.Add(wx.StaticText(self.panel,label=item),0,WACV)
     3591                mainSizer.Add(wx.StaticText(self.panel,label=item),0)
    35863592                tableSizer = wx.FlexGridSizer(0,2*ncol+3,0,0)
    35873593                continue
  • trunk/GSASIImath.py

    r4789 r4811  
    380380            'Converged':ifConverged, 'DelChi2':deltaChi2, 'chisq0':chisq00})
    381381        if icycle > 0: info.update({'Xvec':XvecAll})
    382         setSVDwarn(info,Amatlam,Nzeros,indices)
     382        setSVDwarn(info,Amat,Nzeros,indices)
    383383        # expand Bmat by filling with zeros if columns have been dropped
    384384        if len(psing_prev):
  • trunk/GSASIIphsGUI.py

    r4809 r4811  
    99809980                RBId = Indx[Obj.GetId()]
    99819981                RBObjs = data['RBModels']['Residue']
    9982                 for rbObj in RBObjs:
     9982                for i,rbObj in enumerate(RBObjs):
    99839983                    if RBId == rbObj['RBId']:
    99849984                        RBData['Residue'][RBId]['useCount'] -= 1
    9985                         data['RBModels']['Residue'].remove(rbObj)                 
     9985                        del data['RBModels']['Residue'][i]
    99869986                G2plt.PlotStructure(G2frame,data)
    99879987                wx.CallAfter(FillRigidBodyGrid,True)
     
    1001010010                topLine.Add(wx.StaticText(RigidBodies,-1,
    1001110011                    '   Rigid body {} axis is aligned along oriention vector'.format(lbl)),0,WACV)
    10012             varname = str(data['pId'])+'::RBRxxx:'+resVarLookup[resIndx]
     10012            try:
     10013                varname = str(data['pId'])+'::RBRxxx:'+resVarLookup[resIndx]
     10014            except:  # happens when phase has no histograms
     10015                varname = '?::RBRxxx:'+resVarLookup[resIndx]
    1001310016            topLine.Add(wx.StaticText(RigidBodies,-1,
    1001410017                    '  (variables '+varname+')'),0,WACV)
     
    1015210155            try:
    1015310156                rbName = RBnames[resId]
    10154             except TypeError:
     10157            except:
    1015510158                resId = 0
    1015610159                rbName = RBnames[resId]
     
    1285212855        G2frame.Bind(wx.EVT_MENU, OnPawleyToggle, id=G2G.wxID_PAWLEYSELTOGGLE)
    1285312856       
    12854     # UpdatePhaseData execution starts here
    12855 #patch
    12856     if 'RBModels' not in data:
    12857         data['RBModels'] = {}
    12858     if 'MCSA' not in data:
    12859         data['MCSA'] = {'Models':[{'Type':'MD','Coef':[1.0,False,[.8,1.2],],'axis':[0,0,1]}],'Results':[],'AtInfo':{}}
    12860     #if isinstance(data['MCSA']['Results'],dict):
    12861     if 'dict' in str(type(data['MCSA']['Results'])):
    12862         data['MCSA']['Results'] = []
    12863     if 'Modulated' not in data['General']:
    12864         data['General']['Modulated'] = False
    12865     if 'doDysnomia' not in data['General']:
    12866         data['General']['doDysnomia'] = False
    12867     if 'modulated' in data['General']['Type']:
    12868         data['General']['Modulated'] = True
    12869         data['General']['Type'] = 'nuclear'
    12870     if 'RMC' not in data:
    12871         data['RMC'] = {'RMCProfile':{},'fullrmc':{}}
    12872 #end patch   
    12873 
    12874     global rbAtmDict   
    12875     rbAtmDict = {}
    12876     misc = {}
    12877     PhaseName = G2frame.GPXtree.GetItemText(Item)
    12878     G2gd.SetDataMenuBar(G2frame)
    12879     G2frame.phaseDisplay = G2G.GSNoteBook(parent=G2frame.dataWindow)
    12880     G2frame.dataWindow.GetSizer().Add(G2frame.phaseDisplay,1,wx.ALL|wx.EXPAND,1)
    12881     G2frame.phaseDisplay.gridList = [] # list of all grids in notebook
    12882     Pages = []   
    12883     General = wx.ScrolledWindow(G2frame.phaseDisplay)
    12884     G2frame.phaseDisplay.AddPage(General,'General')
    12885     Pages.append('General')
    12886     DData = wx.ScrolledWindow(G2frame.phaseDisplay)
    12887     G2frame.phaseDisplay.AddPage(DData,'Data')
    12888     Pages.append('Data')
    12889     Atoms = G2G.GSGrid(G2frame.phaseDisplay)
    12890 #    Atoms.SetScrollRate(0,0)
    12891     G2frame.phaseDisplay.gridList.append(Atoms)
    12892     G2frame.phaseDisplay.AddPage(Atoms,'Atoms')
    12893     Pages.append('Atoms')
    12894     if data['General']['Modulated']:
    12895         G2frame.waveData = wx.ScrolledWindow(G2frame.phaseDisplay)
    12896         G2frame.phaseDisplay.AddPage(G2frame.waveData,'Wave Data')
    12897         Pages.append('Wave Data')
    12898     if data['General']['Type'] == 'faulted':
    12899         G2frame.layerData = wx.ScrolledWindow(G2frame.phaseDisplay)
    12900         G2frame.phaseDisplay.AddPage(G2frame.layerData,'Layers')
    12901         Pages.append('Layers')               
    12902     drawOptions = wx.ScrolledWindow(G2frame.phaseDisplay)
    12903     G2frame.phaseDisplay.AddPage(drawOptions,'Draw Options')
    12904     Pages.append('Draw Options')
    12905     drawAtoms = G2G.GSGrid(G2frame.phaseDisplay)
    12906 #    drawAtoms.SetScrollRate(0,0)
    12907     G2frame.phaseDisplay.gridList.append(drawAtoms)
    12908     G2frame.phaseDisplay.AddPage(drawAtoms,'Draw Atoms')
    12909     Pages.append('Draw Atoms')
    1291012857    def rbKeyPress(event):
    1291112858        '''Respond to a Tab to highlight the next RB or crystal atom
     
    1295712904        G2frame.Raise()
    1295812905        return
     12906       
     12907    # UpdatePhaseData execution starts here
     12908#patch
     12909    if 'RBModels' not in data:
     12910        data['RBModels'] = {}
     12911    if 'MCSA' not in data:
     12912        data['MCSA'] = {'Models':[{'Type':'MD','Coef':[1.0,False,[.8,1.2],],'axis':[0,0,1]}],'Results':[],'AtInfo':{}}
     12913    #if isinstance(data['MCSA']['Results'],dict):
     12914    if 'dict' in str(type(data['MCSA']['Results'])):
     12915        data['MCSA']['Results'] = []
     12916    if 'Modulated' not in data['General']:
     12917        data['General']['Modulated'] = False
     12918    if 'doDysnomia' not in data['General']:
     12919        data['General']['doDysnomia'] = False
     12920    if 'modulated' in data['General']['Type']:
     12921        data['General']['Modulated'] = True
     12922        data['General']['Type'] = 'nuclear'
     12923    if 'RMC' not in data:
     12924        data['RMC'] = {'RMCProfile':{},'fullrmc':{}}
     12925#end patch   
     12926
     12927    global rbAtmDict   
     12928    rbAtmDict = {}
     12929    misc = {}
     12930    PhaseName = G2frame.GPXtree.GetItemText(Item)
     12931    G2gd.SetDataMenuBar(G2frame)
     12932    G2frame.phaseDisplay = G2G.GSNoteBook(parent=G2frame.dataWindow)
     12933    G2frame.dataWindow.GetSizer().Add(G2frame.phaseDisplay,1,wx.ALL|wx.EXPAND,1)
     12934    G2frame.phaseDisplay.gridList = [] # list of all grids in notebook
     12935    Pages = []   
     12936    General = wx.ScrolledWindow(G2frame.phaseDisplay)
     12937    G2frame.phaseDisplay.AddPage(General,'General')
     12938    Pages.append('General')
     12939    DData = wx.ScrolledWindow(G2frame.phaseDisplay)
     12940    G2frame.phaseDisplay.AddPage(DData,'Data')
     12941    Pages.append('Data')
     12942    Atoms = G2G.GSGrid(G2frame.phaseDisplay)
     12943#    Atoms.SetScrollRate(0,0)
     12944    G2frame.phaseDisplay.gridList.append(Atoms)
     12945    G2frame.phaseDisplay.AddPage(Atoms,'Atoms')
     12946    Pages.append('Atoms')
     12947    if data['General']['Modulated']:
     12948        G2frame.waveData = wx.ScrolledWindow(G2frame.phaseDisplay)
     12949        G2frame.phaseDisplay.AddPage(G2frame.waveData,'Wave Data')
     12950        Pages.append('Wave Data')
     12951    if data['General']['Type'] == 'faulted':
     12952        G2frame.layerData = wx.ScrolledWindow(G2frame.phaseDisplay)
     12953        G2frame.phaseDisplay.AddPage(G2frame.layerData,'Layers')
     12954        Pages.append('Layers')               
     12955    drawOptions = wx.ScrolledWindow(G2frame.phaseDisplay)
     12956    G2frame.phaseDisplay.AddPage(drawOptions,'Draw Options')
     12957    Pages.append('Draw Options')
     12958    drawAtoms = G2G.GSGrid(G2frame.phaseDisplay)
     12959#    drawAtoms.SetScrollRate(0,0)
     12960    G2frame.phaseDisplay.gridList.append(drawAtoms)
     12961    G2frame.phaseDisplay.AddPage(drawAtoms,'Draw Atoms')
     12962    Pages.append('Draw Atoms')
    1295912963   
    1296012964    if data['General']['Type'] not in ['faulted',] and not data['General']['Modulated']:
Note: See TracChangeset for help on using the changeset viewer.