def patchUISettings(self, projects): theFile = os.path.join(self.getApplicationSupportDir(), ".makerUISettings") interfaceData = readDataFromFile(theFile) interfaceData['linkedProjects'] = projects interfaceData['sessionFiles'] = [] writeDataToFile(interfaceData, theFile)
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)
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)
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)