Changeset 4085


Ignore:
Timestamp:
Aug 10, 2019 10:22:02 AM (2 years ago)
Author:
toby
Message:

Add menu accelerator keys & recently used menu

Location:
trunk
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASIIctrlGUI.py

    r4060 r4085  
    46374637################################################################################
    46384638# configuration routines (for editing config.py)
    4639 def SaveGPXdirectory(path):
     4639def SaveGPXdirectory(path,write=True):
    46404640    if GSASIIpath.GetConfigValue('Starting_directory') == path: return
    46414641    vars = GetConfigValsDocs()
     
    46434643        vars['Starting_directory'][1] = path
    46444644        if GSASIIpath.GetConfigValue('debug'): print('DBG_Saving GPX path: '+path)
    4645         SaveConfigVars(vars)
     4645        if write: SaveConfigVars(vars)
    46464646    except KeyError:
    46474647        pass
     
    47584758            fp.write(var + ' = ' + str(vars[var][1])+'\n')
    47594759        except:
    4760             try:
    4761                 eval(vars[var][1]) # test for an expression
     4760            if type(vars[var][1]) is list:
     4761                fp.write(var + ' = [\n')
     4762                for varstr in vars[var][1]:
     4763                    if '\\' in varstr:
     4764                        fp.write('\t  os.path.normpath("' + varstr.replace('\\','/') +'"),\n')
     4765                    else:
     4766                        fp.write('\t  "' + str(varstr)+'",\n')
     4767                fp.write('   ]\n')
     4768            elif type(vars[var][1]) is tuple:
    47624769                fp.write(var + ' = ' + str(vars[var][1])+'\n')
    4763             except: # must be a string
    4764                 varstr = vars[var][1]
    4765                 if '\\' in varstr:
    4766                     fp.write(var + ' = os.path.normpath("' + varstr.replace('\\','/') +'")\n')
    4767                 else:
    4768                     fp.write(var + ' = "' + str(varstr)+'"\n')
     4770            else:
     4771                try:
     4772                    eval(vars[var][1]) # test for an expression
     4773                    fp.write(var + ' = ' + str(vars[var][1])+'\n')
     4774                except: # must be a string
     4775                    varstr = vars[var][1]
     4776                    if '\\' in varstr:
     4777                        fp.write(var + ' = os.path.normpath("' + varstr.replace('\\','/') +'")\n')
     4778                    else:
     4779                        fp.write(var + ' = "' + str(varstr)+'"\n')
    47694780        if vars[var][3]:
    47704781            fp.write("'''" + str(vars[var][3]) + "\n'''\n\n")
    47714782    fp.close()
    47724783    print('wrote file '+savefile)
    4773 
     4784   
    47744785class SelectConfigSetting(wx.Dialog):
    47754786    '''Dialog to select configuration variables and set associated values.
  • trunk/GSASIIdataGUI.py

    r4075 r4085  
    464464   
    465465    def _Add_FileMenuItems(self, parent):
    466         item = parent.Append(wx.ID_ANY,'&Open project...','Open a GSAS-II project file (*.gpx)')           
     466        item = parent.Append(wx.ID_ANY,'&Open project...\tCtrl+O','Open a GSAS-II project file (*.gpx)')           
    467467        self.Bind(wx.EVT_MENU, self.OnFileOpen, id=item.GetId())
    468         item = parent.Append(wx.ID_ANY,'&Save project','Save project under current name')
     468        item = parent.Append(wx.ID_ANY,'Reopen recent...\tCtrl+R','Reopen a previously used GSAS-II project file (*.gpx)')
     469        self.Bind(wx.EVT_MENU, self.OnFileReopen, id=item.GetId())
     470        item = parent.Append(wx.ID_ANY,'&Save project\tCtrl+S','Save project under current name')
    469471        self.Bind(wx.EVT_MENU, self.OnFileSave, id=item.GetId())
    470472        item = parent.Append(wx.ID_ANY,'Save project as...','Save current project to new file')
     
    27642766        if addhelp:
    27652767            HelpMenu=G2G.MyHelp(self,includeTree=True,
    2766                 morehelpitems=[('&Tutorials','Tutorials'),])
     2768                morehelpitems=[('&Tutorials\tCtrl+T','Tutorials'),])
    27672769            menubar.Append(menu=HelpMenu,title='&Help')
    27682770           
     
    38073809                dlg.Destroy()
    38083810
     3811    def OnFileReopen(self, event):
     3812        files = GSASIIpath.GetConfigValue('previous_GPX_files')
     3813        if not files:
     3814            print('no previous projects saved')
     3815            return
     3816        sellist = []
     3817        for f in files:
     3818            dirname,filroot = os.path.split(f)
     3819            if os.path.exists(f):
     3820                sellist.append("{} from {}".format(filroot,dirname))
     3821            else:
     3822                sellist.append("not found: {}".format(f))
     3823       
     3824        dlg = G2G.G2SingleChoiceDialog(self,
     3825                                           'Select previous project to open',
     3826                                           'Select project',sellist)
     3827        if dlg.ShowModal() == wx.ID_OK:
     3828            sel = dlg.GetSelection()
     3829            dlg.Destroy()
     3830        else:
     3831            dlg.Destroy()
     3832            return
     3833        f = files[sel]
     3834        if os.path.exists(f):
     3835            self.OnFileOpen(event, filename=f)
     3836        else:
     3837            print('file not found',f)       
     3838       
    38093839    def OnFileOpen(self, event, filename=None):
    38103840        '''Gets a GSAS-II .gpx project file in response to the
     
    39103940        if self.dirname: os.chdir(self.dirname)           # to get Mac/Linux to change directory!
    39113941        pth = os.path.split(os.path.abspath(self.GSASprojectfile))[0]
    3912         if GSASIIpath.GetConfigValue('Save_paths'): G2G.SaveGPXdirectory(pth)
     3942        if GSASIIpath.GetConfigValue('Save_paths'):
     3943            G2G.SaveGPXdirectory(pth,write=False)
     3944        config = G2G.GetConfigValsDocs()
     3945        GSASIIpath.addPrevGPX(self.GSASprojectfile,config)
     3946        G2G.SaveConfigVars(config)
    39133947        self.LastGPXdir = pth
    39143948
  • trunk/GSASIIpath.py

    r3971 r4085  
    6161            if parmdict[var][0] == parmdict[var][1]: continue
    6262            configDict[var] = parmdict[var][1]
     63
     64def addPrevGPX(fil,configDict):
     65    '''Add a GPX file to the list of previous files.
     66    Move previous names to start of list. Keep most recent five files
     67    '''
     68    fil = os.path.abspath(os.path.expanduser(fil))
     69    if 'previous_GPX_files' not in configDict: return
     70    try:
     71        pos = configDict['previous_GPX_files'][1].index(fil)
     72        if pos == 0: return
     73        configDict['previous_GPX_files'][1].pop(pos) # if present, remove if not 1st
     74    except ValueError:
     75        pass
     76    except AttributeError:
     77        configDict['previous_GPX_files'][1] = []
     78    configDict['previous_GPX_files'][1].insert(0,fil)
     79    configDict['previous_GPX_files'][1] = configDict['previous_GPX_files'][1][:5]
    6380
    6481# routines for looking a version numbers in files
  • trunk/config_example.py

    r3974 r4085  
    200200'''Maximum radius for G(r) calculations: range is from 10-200A; default is 100A
    201201'''
     202
     203previous_GPX_files = []
     204'''A list of previously used .gpx files
     205'''
Note: See TracChangeset for help on using the changeset viewer.