self.entries = lst return lst def open(self, editor): return editor.openOrGotoModule(self.resourcepath) def openParent(self, editor): tree = editor.explorer.tree cvsParentItemParent = tree.GetItemParent( tree.GetItemParent(tree.GetSelection())) cvsChd = tree.getChildNamed(cvsParentItemParent, 'CVS') if cvsChd.IsOk(): tree.SelectItem(cvsChd) return True else: return False #--------------------------------------------------------------------------- # Register cvs dirs as a subtype of file explorers import FileExplorer FileExplorer.FileSysNode.subExplorerReg['folder'].append( (FSCVSFolderNode, isCVS, EditorHelper.imgCVSFolder)) ExplorerNodes.register(FSCVSFolderNode, clipboard=None, confdef=('', ''), controller=CVSController)
if not respath.startswith('~/'): respath = '/' + respath isFolder = respath[-1] == '/' if isFolder: respath = respath[:-1] return self.createChildNode(os.path.basename(respath), isFolder, self.properties, respath) class SSHExpClipboard(ExplorerNodes.ExplorerClipboard): def clipPaste_FileSysExpClipboard(self, node, nodes, mode): for clipnode in nodes: if mode == 'cut': node.copyFromFS(clipnode) self.clipNodes = [] elif mode == 'copy': node.copyFromFS(clipnode) def clipPaste_SSHExpClipboard(self, node, nodes, mode): for sshNode in nodes: if mode == 'cut': node.moveFileFrom(sshNode) self.clipNodes = [] elif mode == 'copy': node.copyFileFrom(sshNode) #------------------------------------------------------------------------------- ExplorerNodes.register(SSHItemNode, clipboard=SSHExpClipboard, confdef=('explorer', 'ssh'), controller=SSHController, category=SSHCatNode) ExplorerNodes.fileOpenDlgProtReg.append('ssh')
def getPropList(self): propLst = [] if type(self.obj) is types.ListType: props = self.obj else: props = [self.obj] subProps = self.buildItems([], props) for prop in subProps: propLst.append( RTTI.PropertyWrapper(prop[0], 'NameRoute', self.GetProp, self.SetProp)) self.propItems = subProps return {'constructor': [], 'properties': propLst} def GetProp(self, name): for prop in self.propItems: if prop[0] == name: return prop[1] def SetProp(self, name, value): raise Exception, _('Property editing not supported yet') #------------------------------------------------------------------------------- ExplorerNodes.register(DAVItemNode, clipboard=DAVExpClipboard, confdef=('explorer', 'dav'), controller=DAVController, category=DAVCatNode) ExplorerNodes.fileOpenDlgProtReg.append('dav')
return 'zip', zipfile, zipentry, filename def findZipExplorerNode(category, respath, transports): zf = ZipFileNode(os.path.basename(category), category, None, -1, None, None) zf.openList() return zf.getNodeFromPath(respath) #------------------------------------------------------------------------------- # Register zip files as a subtype of file explorers FileExplorer.FileSysNode.subExplorerReg['file'].append( (ZipFileNode, isZip, EditorHelper.imgZipFileModel)) ExplorerNodes.register(ZipItemNode, clipboard=ZipExpClipboard, controller=ZipController) ExplorerNodes.uriSplitReg[('zip', 3)] = uriSplitZip ExplorerNodes.transportFindReg['zip'] = findZipExplorerNode ExplorerNodes.fileOpenDlgProtReg.append('zip') EditorHelper.modelReg[ZipFileModel.modelIdentifier] = ZipFileModel EditorHelper.binaryFilesReg.append('.zip') #------------------------------------------------------------------------------- def isTarGzip(file): name, ext = os.path.splitext(file) return ext == '.tgz' or ext == '.gz' and os.path.splitext( name)[1] == '.tar'
def getURI(self): return self.getTitle() def uriSplitFile(filename, filepath): return 'file', '', filepath, filename def findFileExplorerNode(category, respath, transports): for tp in transports.entries: if tp.itemProtocol == 'file': return tp.getNodeFromPath(respath, forceFolder=False) raise ExplorerNodes.TransportError( _('FileSysCatNode not found in transports %s') % transports.entries) #------------------------------------------------------------------------------- ExplorerNodes.register(FileSysNode, clipboard=FileSysExpClipboard, confdef=('explorer', 'file'), controller=FileSysController, category=FileSysCatNode) ExplorerNodes.register(CurWorkDirNode, clipboard='file', controller='file', root=True) ExplorerNodes.fileOpenDlgProtReg.append('file') ExplorerNodes.uriSplitReg[('file', 2)] = uriSplitFile ExplorerNodes.uriSplitReg[('os.cwd', 2)] = uriSplitFile ExplorerNodes.transportFindReg['file'] = findFileExplorerNode
def createChildNode(self, name, modulePage): return NewPaletteItemNode(modulePage.updatePageName(), name, modulePage, self) def openList(self): res = [] mods = [] for name, modPage in self.editor.modules.items(): mods.append( (modPage.tIdx, name, modPage) ) mods.sort() for idx, name, modPage in mods: res.append(self.createChildNode(name, modPage)) return res class NewPaletteItemNode(ExplorerNodes.ExplorerNode): protocol = 'boa.new-item' def __init__(self, name, resourcepath, modulePage, parent): ExplorerNodes.ExplorerNode.__init__(self, name, resourcepath, None, modulePage.model.imgIdx, parent, {}) def notifyBeginLabelEdit(self, event): event.Veto() def isFolderish(self): return False #------------------------------------------------------------------------------- ExplorerNodes.register(OpenModelsNode, controller=EditorController)
def openList(self): self.cwd = self.resourcepath = os.path.abspath(os.getcwd()) return FileSysNode.openList(self) def getTitle(self): return 'os.cwd://%s'%self.cwd def getURI(self): return self.getTitle() def uriSplitFile(filename, filepath): return 'file', '', filepath, filename def findFileExplorerNode(category, respath, transports): for tp in transports.entries: if tp.itemProtocol == 'file': return tp.getNodeFromPath(respath, forceFolder=False) raise ExplorerNodes.TransportError( _('FileSysCatNode not found in transports %s')%transports.entries) #------------------------------------------------------------------------------- ExplorerNodes.register(FileSysNode, clipboard=FileSysExpClipboard, confdef=('explorer', 'file'), controller=FileSysController, category=FileSysCatNode) ExplorerNodes.register(CurWorkDirNode, clipboard='file', controller='file', root=True) ExplorerNodes.fileOpenDlgProtReg.append('file') ExplorerNodes.uriSplitReg[('file', 2)] = uriSplitFile ExplorerNodes.uriSplitReg[('os.cwd', 2)] = uriSplitFile ExplorerNodes.transportFindReg['file'] = findFileExplorerNode
class DAVSubCompanion(DAVPropReaderMixin, HelperDTC): def __init__(self, name, designer, ownerCompanion, obj, ownerPropWrap): HelperDTC.__init__(self, name, designer, ownerCompanion, obj, ownerPropWrap) self.propItems = [] def getPropList(self): propLst = [] if type(self.obj) is types.ListType: props = self.obj else: props = [self.obj] subProps = self.buildItems([], props) for prop in subProps: propLst.append(RTTI.PropertyWrapper(prop[0], 'NameRoute', self.GetProp, self.SetProp)) self.propItems = subProps return {'constructor': [], 'properties': propLst} def GetProp(self, name): for prop in self.propItems: if prop[0] == name: return prop[1] def SetProp(self, name, value): raise Exception, _('Property editing not supported yet') #------------------------------------------------------------------------------- ExplorerNodes.register(DAVItemNode, clipboard=DAVExpClipboard, confdef=('explorer', 'dav'), controller=DAVController, category=DAVCatNode) ExplorerNodes.fileOpenDlgProtReg.append('dav')
Help.initHelp() def OnClearHelpIndexes(self, event): import Help cd = Help.getCacheDir() for name in os.listdir(cd): if os.path.splitext(name)[1] == '.cached': os.remove(os.path.join(cd, name)) wx.LogMessage(_('Deleted %s') % name) def OnOpenHHP(self, event): if self.list.node: ms = self.list.getMultiSelection() for node in self.getNodesForSelection(ms): self.editor.openOrGotoModule(node.getAbsPath( node.resourcepath)) #------------------------------------------------------------------------------- ExplorerNodes.register(BoaPrefGroupNode) ExplorerNodes.register(PluginFilesGroupNode, controller=PluginFilesGroupNodeController) ExplorerNodes.register(TransportPluginsLoadOrderGroupNode, controller=TransportPluginsLoadOrderController) ExplorerNodes.register(TransportPluginsTreeDisplayOrderGroupNode, controller=TransportPluginsTreeDisplayOrderController) ExplorerNodes.register(HelpConfigBooksPGN, controller=HelpConfigBooksController)
def createChildNode(self, name, modulePage): return NewPaletteItemNode(modulePage.updatePageName(), name, modulePage, self) def openList(self): res = [] mods = [] for name, modPage in self.editor.modules.items(): mods.append( (modPage.tIdx, name, modPage) ) mods.sort() for idx, name, modPage in mods: res.append(self.createChildNode(name, modPage)) return res class NewPaletteItemNode(ExplorerNodes.ExplorerNode): protocol = 'boa.new-item' def __init__(self, name, resourcepath, palette, newitem): ExplorerNodes.ExplorerNode.__init__(self, name, resourcepath, None, modulePage.model.imgIdx, parent, {}) def notifyBeginLabelEdit(self, event): event.Veto() def isFolderish(self): return False #------------------------------------------------------------------------------- ExplorerNodes.register(OpenModelsNode, controller=EditorController)
class FTPExpClipboard(ExplorerNodes.ExplorerClipboard): def pasteFileSysFolder(self, folderpath, nodepath, ftpConn): ftpConn.add_folder(os.path.basename(folderpath), nodepath) files = os.listdir(folderpath) folder = os.path.basename(folderpath) newNodepath = nodepath + '/' + folder for file in files: file = os.path.join(folderpath, file) if os.path.isdir(file): self.pasteFileSysFolder(file, newNodepath, ftpConn) else: ftpConn.upload(file, newNodepath) def clipPaste_FileSysExpClipboard(self, node, nodes, mode): nodepath = node.resourcepath for file in nodes: if file.isDir(): self.pasteFileSysFolder(file.resourcepath, nodepath, node.ftpConn) else: node.ftpConn.upload(file.resourcepath, nodepath) #------------------------------------------------------------------------------- ExplorerNodes.register(FTPItemNode, clipboard=FTPExpClipboard, confdef=('explorer', 'ftp'), controller=FTPController, category=FTPCatNode) ExplorerNodes.fileOpenDlgProtReg.append('ftp')
imgIdx = EditorHelper.imgZipFileModel ext = '.zip' def uriSplitZip(filename, zipfile, zipentry): return 'zip', zipfile, zipentry, filename def findZipExplorerNode(category, respath, transports): zf = ZipFileNode(os.path.basename(category), category, None, -1, None, None) zf.openList() return zf.getNodeFromPath(respath) #------------------------------------------------------------------------------- # Register zip files as a subtype of file explorers FileExplorer.FileSysNode.subExplorerReg['file'].append( (ZipFileNode, isZip, EditorHelper.imgZipFileModel)) ExplorerNodes.register(ZipItemNode, clipboard=ZipExpClipboard, controller=ZipController) ExplorerNodes.uriSplitReg[('zip', 3)] = uriSplitZip ExplorerNodes.transportFindReg['zip'] = findZipExplorerNode ExplorerNodes.fileOpenDlgProtReg.append('zip') EditorHelper.modelReg[ZipFileModel.modelIdentifier] = ZipFileModel EditorHelper.binaryFilesReg.append('.zip') #------------------------------------------------------------------------------- def isTarGzip(file): name, ext = os.path.splitext(file) return ext == '.tgz' or ext == '.gz' and os.path.splitext(name)[1] == '.tar' class TarGzipController(ZipController): pass class TarGzipInfoMixin:
raise else: self.connected = True class FTPExpClipboard(ExplorerNodes.ExplorerClipboard): def pasteFileSysFolder(self, folderpath, nodepath, ftpConn): ftpConn.add_folder(os.path.basename(folderpath), nodepath) files = os.listdir(folderpath) folder = os.path.basename(folderpath) newNodepath = nodepath+'/'+folder for file in files: file = os.path.join(folderpath, file) if os.path.isdir(file): self.pasteFileSysFolder(file, newNodepath, ftpConn) else: ftpConn.upload(file, newNodepath) def clipPaste_FileSysExpClipboard(self, node, nodes, mode): nodepath = node.resourcepath for file in nodes: if file.isDir(): self.pasteFileSysFolder(file.resourcepath, nodepath, node.ftpConn) else: node.ftpConn.upload(file.resourcepath, nodepath) #------------------------------------------------------------------------------- ExplorerNodes.register(FTPItemNode, clipboard=FTPExpClipboard, confdef=('explorer', 'ftp'), controller=FTPController, category=FTPCatNode) ExplorerNodes.fileOpenDlgProtReg.append('ftp')
Help.delHelp() wx.Yield() Help.initHelp() def OnClearHelpIndexes(self, event): import Help cd = Help.getCacheDir() for name in os.listdir(cd): if os.path.splitext(name)[1] == '.cached': os.remove(os.path.join(cd, name)) wx.LogMessage(_('Deleted %s')%name) def OnOpenHHP(self, event): if self.list.node: ms = self.list.getMultiSelection() for node in self.getNodesForSelection(ms): self.editor.openOrGotoModule(node.getAbsPath(node.resourcepath)) #------------------------------------------------------------------------------- ExplorerNodes.register(BoaPrefGroupNode) ExplorerNodes.register(PluginFilesGroupNode, controller=PluginFilesGroupNodeController) ExplorerNodes.register(TransportPluginsLoadOrderGroupNode, controller=TransportPluginsLoadOrderController) ExplorerNodes.register(TransportPluginsTreeDisplayOrderGroupNode, controller=TransportPluginsTreeDisplayOrderController) ExplorerNodes.register(HelpConfigBooksPGN, controller=HelpConfigBooksController)
for missing in missingEntries: lst.append(missing) self.entries = lst return lst def open(self, editor): return editor.openOrGotoModule(self.resourcepath) def openParent(self, editor): tree = editor.explorer.tree cvsParentItemParent = tree.GetItemParent(tree.GetItemParent(tree.GetSelection())) cvsChd = tree.getChildNamed(cvsParentItemParent, 'CVS') if cvsChd.IsOk(): tree.SelectItem(cvsChd) return True else: return False #--------------------------------------------------------------------------- # Register cvs dirs as a subtype of file explorers import FileExplorer FileExplorer.FileSysNode.subExplorerReg['folder'].append( (FSCVSFolderNode, isCVS, EditorHelper.imgCVSFolder) ) ExplorerNodes.register(FSCVSFolderNode, clipboard=None, confdef=('', ''), controller=CVSController)