Changeset 982


Ignore:
Timestamp:
Jul 7, 2013 10:01:24 AM (8 years ago)
Author:
toby
Message:

missed file: new Mac app with drag & drop for open

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r978 r982  
    10231023    def OnTestCIF(self,event):
    10241024        # hard-code CIF testing here
    1025 #        if event.EventObject.GetLabelText(event.Id).split()[0].lower() == "quick":
    1026 #            mode = 'simple'
    1027 #        else:
    1028 #            mode = 'full'
     1025       
     1026        # get the menu command on Windows and Linux
     1027        menu = self.ExportMenu.FindItemById(event.GetId())
    10291028        mode = 'full'
     1029        if menu:
     1030            if menu.GetLabel().split()[0].lower() == "quick":
     1031                mode = 'simple'
     1032        else: # this works on the Mac
     1033            try:
     1034                if event.EventObject.GetLabelText(event.Id).split()[0].lower() == "quick":
     1035                    mode = 'simple'
     1036            except:
     1037                pass
    10301038        path2GSAS2 = os.path.join(
    10311039            os.path.dirname(os.path.realpath(__file__)), # location of this file
     
    11061114        self._Add_ImportMenu_powder(Import)
    11071115        self._Add_ImportMenu_Sfact(Import)
    1108         Export = wx.Menu(title='')       
    1109         menubar.Append(menu=Export, title='Export')
    1110         self._init_Exports(Export)
    1111         self._Add_ExportMenuItems(Export)
     1116        self.ExportMenu = wx.Menu(title='')
     1117        menubar.Append(menu=self.ExportMenu, title='Export')
     1118        self._init_Exports(self.ExportMenu)
     1119        self._Add_ExportMenuItems(self.ExportMenu)
    11121120        HelpMenu=G2gd.MyHelp(self,helpType='Data tree',
    11131121            morehelpitems=[('&Tutorials','Tutorials')])
     
    19441952                dlg.Destroy()
    19451953
    1946     def OnFileOpen(self, event):
     1954    def OnFileOpen(self, event, filename=None):
    19471955        '''Reads in a GSAS-II .gpx project file in response to the
    19481956        File/Open Project menu button
    19491957        '''
    1950         result = ''
     1958        result = wx.ID_OK
    19511959        Id = 0
    19521960        if self.PatternTree.GetChildrenCount(self.root,False):
     
    19681976            finally:
    19691977                dlg.Destroy()
    1970         if result != wx.ID_CANCEL:   
     1978        if result != wx.ID_OK: return
     1979
     1980        if not filename:
    19711981            if self.dataDisplay: self.dataDisplay.Destroy()
    19721982            dlg = wx.FileDialog(self, 'Choose GSAS-II project file', '.', '',
    19731983                'GSAS-II project file (*.gpx)|*.gpx',wx.OPEN|wx.CHANGE_DIR)
    19741984            try:
    1975                 if dlg.ShowModal() == wx.ID_OK:
    1976                     self.GSASprojectfile = dlg.GetPath()
    1977                     self.GSASprojectfile = G2IO.FileDlgFixExt(dlg,self.GSASprojectfile)
    1978                     self.dirname = dlg.GetDirectory()
    1979                     G2IO.ProjFileOpen(self)
    1980                     self.PatternTree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)
    1981                     self.PatternTree.Expand(self.root)
    1982                     self.HKL = []
    1983                     item, cookie = self.PatternTree.GetFirstChild(self.root)
    1984                     while item and not Id:
    1985                         name = self.PatternTree.GetItemText(item)
    1986                         if name[:4] in ['PWDR','HKLF','IMG ','PDF ']:
    1987                             Id = item
    1988                         elif name == 'Controls':
    1989                             data = self.PatternTree.GetItemPyData(item)
    1990                             if data:
    1991                                 for item in self.Refine: item.Enable(True)
    1992                                 for item in self.SeqRefine: item.Enable(True)
    1993                         item, cookie = self.PatternTree.GetNextChild(self.root, cookie)               
    1994                     if Id:
    1995                         self.PatternTree.SelectItem(Id)
    1996                     self.CheckNotebook()
    1997                     os.chdir(dlg.GetDirectory())           # to get Mac/Linux to change directory!
     1985                if dlg.ShowModal() != wx.ID_OK: return
     1986                self.GSASprojectfile = dlg.GetPath()
     1987                self.GSASprojectfile = G2IO.FileDlgFixExt(dlg,self.GSASprojectfile)
     1988                self.dirname = dlg.GetDirectory()
    19981989            finally:
    19991990                dlg.Destroy()
     1991        else:
     1992            self.GSASprojectfile = os.path.splitext(filename)[0]+'.gpx'
     1993            self.dirname = os.path.split(filename)[0]
     1994
     1995        G2IO.ProjFileOpen(self)
     1996        self.PatternTree.SetItemText(self.root,'Loaded Data: '+self.GSASprojectfile)
     1997        self.PatternTree.Expand(self.root)
     1998        self.HKL = []
     1999        item, cookie = self.PatternTree.GetFirstChild(self.root)
     2000        while item and not Id:
     2001            name = self.PatternTree.GetItemText(item)
     2002            if name[:4] in ['PWDR','HKLF','IMG ','PDF ']:
     2003                Id = item
     2004            elif name == 'Controls':
     2005                data = self.PatternTree.GetItemPyData(item)
     2006                if data:
     2007                    for item in self.Refine: item.Enable(True)
     2008                    for item in self.SeqRefine: item.Enable(True)
     2009            item, cookie = self.PatternTree.GetNextChild(self.root, cookie)               
     2010        if Id:
     2011            self.PatternTree.SelectItem(Id)
     2012        self.CheckNotebook()
     2013        os.chdir(self.dirname)           # to get Mac/Linux to change directory!
    20002014
    20012015    def OnFileClose(self, event):
     
    25092523        self.SetTopWindow(self.main)
    25102524        return True
     2525    def MacOpenFile(self, filename):
     2526        '''Called on Mac every time a file is dropped on the app when it is running,
     2527        treat this like a File/Open project menu action.
     2528        Should be ignored on other platforms
     2529        '''
     2530        self.main.OnFileOpen(None,filename)
    25112531
    25122532def main():
    25132533    '''Start up the GSAS-II application'''
     2534    #application = GSASIImain() # don't redirect output, someday we
     2535    # may want to do this if we can
    25142536    application = GSASIImain(0)
    25152537    if wxInspector: wxeye.InspectionTool().Show()
Note: See TracChangeset for help on using the changeset viewer.