def __init__(self, name='', dir=None, flat=False): self.dirname = name or (tools.dirname(dir) if dir else '') or 'noname' # If flat is True, add files without directories self.flat = flat self.tracks = [] self.subdirs = []
def add_dir(self, path): ''' Add a directory with one fake child to the tree ''' name = tools.dirname(path) name = tools.htmlEscape(unicode(name, errors='replace')) parent = self.tree.appendRow((icons.dirMenuIcon(), name, TYPE_DIR, path), None) # add fake child self.tree.appendRow((icons.dirMenuIcon(), '', TYPE_NONE, ''), parent)
def get_name(path): # Remove the search path from the name if path == search_path: name = tools.dirname(path) else: name = path.replace(search_path, '') # Only show filename and at most one parent dir for each file. name = '/'.join(name.split('/')[-2:]) name = name.strip('/') name = regex.sub(same_case_bold, name) name = tools.htmlEscape(name) name = name.replace('STARTBOLD', '<b>').replace('ENDBOLD', '</b>') return name
def get_name(path): # Remove the search path from the name if path == search_path: name = tools.dirname(path) else: name = path.replace(search_path, '') # Only show filename and at most one parent dir for each file. name = '/'.join(name.split('/')[-2:]) name = name.strip('/') name = regex.sub(same_case_bold, unicode(name)) name = tools.htmlEscape(name) name = name.replace('STARTBOLD', '<b>').replace('ENDBOLD', '</b>') return name
def getTracks(filenames, sortByFilename=True): """ Same as getTracksFromFiles(), but works for any kind of filenames (files, playlists, directories) """ assert type(filenames) == list, 'filenames has to be a list' tracks = TrackDir(flat=True) for path in sorted(filenames): if os.path.isdir(path): dirname = tools.dirname(path) track_dict = scanPaths(tools.listDir(path), name=dirname) for name, track_list in sorted(track_dict.iteritems()): trackdir = TrackDir(name=name) trackdir.tracks = track_list tracks.subdirs.append(trackdir) elif isSupported(path): track = getTrackFromFile(path) tracks.tracks.append(track) return tracks
def getTracks(filenames, sortByFilename=True): """ Same as getTracksFromFiles(), but works for any kind of filenames (files, playlists, directories) """ assert isinstance(filenames, list), 'filenames has to be a list' tracks = TrackDir(flat=True) for path in sorted(filenames): if os.path.isdir(path): dirname = tools.dirname(path) track_dict = scanPaths(tools.listDir(path), name=dirname) for name, track_list in sorted(track_dict.items()): trackdir = TrackDir(name=name) trackdir.tracks = track_list tracks.subdirs.append(trackdir) elif isSupported(path): track = getTrackFromFile(path) tracks.tracks.append(track) return tracks