コード例 #1
0
 def patchUISettings(self, projects):
     
     theFile = os.path.join(self.getApplicationSupportDir(), ".makerUISettings")
     interfaceData = readDataFromFile(theFile)
     
     interfaceData['linkedProjects'] = projects
     interfaceData['sessionFiles'] = []
     
     writeDataToFile(interfaceData, theFile)
コード例 #2
0
    def loadAndSetInterfaceData(self):
        def setDefaults():
            # set UI defaults
            self.view.SetClientSize(self.view.wx.Size(1200, 700))
            self.view.Center(self.view.wx.BOTH)

        theFile = os.path.join(self.model.getProjectDir(), "../.makerUISettings")
        if os.path.isfile(theFile):
            try:
                interfaceData = readDataFromFile(theFile)
                self.view.SetSize(interfaceData["Size"])
                self.view.SetPosition(interfaceData["Position"])
                self.view.splitter.SetSashPosition(interfaceData["SplitterSashPosition"])

                # linked projects

                try:

                    # open all files that had been open in last session
                    for sessionFile in interfaceData["sessionFiles"]:

                        print "SessionFile:", sessionFile[2]
                        self.autoLoadProject(sessionFile[2])
                        # self.model.load(sessionFile[2])
                        item = (self.model.getActiveProject()).projectController.findTreeItem(
                            sessionFile[0], sessionFile[1]
                        )
                        (self.model.getActiveProject()).projectController.selectTreeItemAndLoad(item)

                        # set scroll position
                        ed = ((self.model.getActiveProject()).getCurrentFile()).fileController.editor
                        ed.GotoPos(sessionFile[3])
                    #

                    # make last open file current file
                    for sessionFile in interfaceData["sessionFiles"]:
                        if sessionFile[-1] == "True":
                            self.autoLoadProject(sessionFile[2])
                            item = (self.model.getActiveProject()).projectController.findTreeItem(
                                sessionFile[0], sessionFile[1]
                            )
                            (self.model.getActiveProject()).projectController.selectTreeItemAndLoad(item)
                            # set scroll position
                            ed = ((self.model.getActiveProject()).getCurrentFile()).fileController.editor
                            ed.GotoPos(sessionFile[3])

                    self.view.Refresh()
                    return  # otherwise defaults will be loaded

                except Exception, e:
                    print str(e)

            except Exception, e:
                print str(e)
コード例 #3
0
 def loadLinkedProjects(self):
 
     theFile = os.path.join(self.getApplicationSupportDir(), ".makerUISettings")
     if os.path.isfile(theFile):
         try:
             interfaceData = readDataFromFile(theFile)
             for path in interfaceData['linkedProjects']:
                 if os.path.isdir(path):
                     self.linkedProjectPaths.append(path)
         except Exception, e:
             print "unable to load linked projects:" , str(e)
コード例 #4
0
    def loadAndSetInterfaceData(self):
        
        def setDefaults(interfaceData):
            
            if not interfaceData:
                # first start ever
                self.view.SetClientSize(self.view.wx.Size(1200, 700))
                self.view.Center(self.view.wx.BOTH)
                self.setCurrentEditorStyle(self.defaultEditorStyle)
                return
            
            
            # fine grain tuning
            try:
                self.view.SetSize(interfaceData["Size"])
                self.view.SetPosition(interfaceData["Position"])
                self.view.splitter.SetSashPosition(interfaceData["SplitterSashPosition"])
            
            except:
                # set UI defaults
                self.view.SetClientSize(self.view.wx.Size(1200, 700))
                self.view.Center(self.view.wx.BOTH)
            
            # at least try to set the editor style
            try:
                self.setCurrentEditorStyle(interfaceData["editorStyle"])
                self.toggleMenuItemByStyleName(interfaceData["editorStyle"])
            except:
                # no editor style on file
                self.setCurrentEditorStyle(self.defaultEditorStyle)
            
                
        # Needs to be None
        interfaceData = None
        
        theFile = os.path.join(self.model.getApplicationSupportDir(), ".makerUISettings")
        
        if os.path.isfile(theFile):
            try:
                interfaceData = readDataFromFile(theFile)
                
                self.view.SetSize(interfaceData["Size"])
                self.view.SetPosition(interfaceData["Position"])
                self.view.splitter.SetSashPosition(interfaceData["SplitterSashPosition"])
                try:
                    self.setCurrentEditorStyle(interfaceData["editorStyle"])
                    self.toggleMenuItemByStyleName(interfaceData["editorStyle"])
                except:
                    # no editor style on file
                    self.setCurrentEditorStyle(self.defaultEditorStyle)
                
                
                
                try:
                    
                    # enable security-scoped-bookmarks for use in this session
                    for item in interfaceData["bookmarks"]:
                        
                        nsdata = NSData.alloc().initWithBytes_length_(item, len(item))
                        url = NSURL.URLByResolvingBookmarkData_options_relativeToURL_bookmarkDataIsStale_error_(nsdata, 
                                                                                                                NSURLBookmarkResolutionWithSecurityScope, 
                                                                                                                None, 
                                                                                                                None, 
                                                                                                                None) 
                        
                        theURL = url[0]
                        #  save again to bookmarks but only if this project 
                        #  is still linked
                        if theURL.path() in self.model.linkedProjectPaths:
                            self.model.bookmarks.append(item)
                            theURL.startAccessingSecurityScopedResource()
                            self.model.securityScopedResources.append(theURL)

                except:
                    print "Unable to resolve security-scoped-bookmarks"
                
                try:
                    
                    # open all files that had been open in last session
                    for sessionFile in interfaceData["sessionFiles"]:
                        
                        self.autoLoadProject(sessionFile[2])
                        #self.model.load(sessionFile[2])
                        item = (self.model.getActiveProject()).projectController.findTreeItem(sessionFile[0], sessionFile[1])
                        (self.model.getActiveProject()).projectController.selectTreeItemAndLoad(item)
                        
                        # set scroll position
                        ed = ((self.model.getActiveProject()).getCurrentFile()).fileController.editor
                        ed.GotoPos(sessionFile[3])
                        
                        
                    # make last open file current file
                    for sessionFile in interfaceData["sessionFiles"]:
                        if sessionFile[-1] == "True":
                            self.autoLoadProject(sessionFile[2])
                            item = (self.model.getActiveProject()).projectController.findTreeItem(sessionFile[0], sessionFile[1])
                            (self.model.getActiveProject()).projectController.selectTreeItemAndLoad(item)
                            # set scroll position
                            ed = ((self.model.getActiveProject()).getCurrentFile()).fileController.editor
                            ed.GotoPos(sessionFile[3])
                            
                        
                    self.view.Refresh()
                    return # otherwise defaults will be loaded
                
                except Exception, e:
                    print str(e)
                    
            
            except Exception, e:
                print str(e)