def folderIterator(self): folderChosen = QFileDialog.getExistingDirectory(self, '打开音频文件夹', '.') if folderChosen != None: it = QDirIterator(folderChosen) it.next() while it.hasNext(): if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() print(it.filePath(), fInfo.suffix()) if fInfo.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): print('added file', fInfo.fileName()) self.listWid.addItem(fInfo.fileName()) self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(it.filePath()))) it.next() if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() print(it.filePath(), fInfo.suffix()) if fInfo.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): print('added file', fInfo.fileName()) self.listWid.addItem(fInfo.fileName()) self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(it.filePath()))) # 设置ListItem高度 for x in range(self.listWid.count()): self.listWid.item(x).setSizeHint(QSize(100, 30))
def getDir(self): """list all files and subdirectories for a given dir with regex.""" msg = self.asyncRead() if msg: path = msg["path"] dirselect = False if "dirSelect" in msg: dirselect = msg["dirSelect"] if path == "": path = "/home" path = os.path.normpath(path) filters = ["*"] if "filter" in msg: filters = msg["filter"] dirIter = QDirIterator(path) data = list() while dirIter.hasNext(): dirIter.next() if dirIter.fileName() in [".", ".."]: continue if not dirIter.fileInfo().isDir(): if dirselect: continue match = False for fi in filters: reg = QRegExp(fi) reg.setPatternSyntax(QRegExp.Wildcard) if reg.exactMatch(dirIter.fileName()): match = True break if not match: continue elem = dict() elem["name"] = dirIter.fileName() elem["path"] = dirIter.filePath() inf = dirIter.fileInfo() # type: QFileInfo elem["isDir"] = inf.isDir() last = inf.lastModified() # type: QDateTime elem["lastChange"] = last.toString("yyyy.MM.dd - HH:MM") if inf.isDir(): elem["fileSize"] = "" else: elem["fileSize"] = self._sizeHumanReadableStr(inf.size()) data.append(elem) data = sorted(data, key=lambda di: (not di["isDir"], di["name"].lower())) msg["data"] = data logging.debug("There is/are %i element/s in %s", len(data), path) self.send(msg)
def folderIterator(self): folderChosen = QFileDialog.getExistingDirectory(self, 'Open Music Folder', '~') if folderChosen != None: it = QDirIterator(folderChosen) it.next() while it.hasNext(): if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() if fInfo.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(it.filePath()))) it.next() if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() if fInfo.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): self.playlist.addMedia(QMediaContent(QUrl.fromLocalFile(it.filePath())))
def dir_choosing(self): self.index = 0 self.new_playlist = True directory = QFileDialog.getExistingDirectory(None, "Open Directory", "/", QFileDialog.ShowDirsOnly) if directory: os.chdir(directory) self.tableWidget.setRowCount(0) self.playlist = [] filters = QDir.Files nameFilters = ["*.mp3", "*.MP3", "*.Mp3", "*.mP3"] qDirIterator = QDirIterator(directory, nameFilters, filters, QDirIterator.Subdirectories) while qDirIterator.hasNext(): qDirIterator.next() fileInfo = qDirIterator.fileInfo() fdir = fileInfo.absoluteDir().absolutePath() song = qDirIterator.filePath() self.playlist.append(song) try: song_tags = TinyTag.get(song) except: print("Corrupted file:\n", len(self.playlist), song, "\nCan't get the tags") self.add_corrupted_files(song) else: self.add_items_to_list(song_tags, song) self.playlist_action()
def loadStamps(self): prefs = preferences.Preferences.instance() stampsDirectory = prefs.stampsDirectory() stampsDir = QDir(stampsDirectory) iterator = QDirIterator(stampsDirectory, ["*.stamp"], QDir.Files | QDir.Readable) while (iterator.hasNext()): stampFileName = iterator.next() stampFile = QFile(stampFileName) if (not stampFile.open(QIODevice.ReadOnly)): continue data = stampFile.readAll() document = QJsonDocument.fromBinaryData(data) if (document.isNull()): # document not valid binary data, maybe it's an JSON text file error = QJsonParseError() document = QJsonDocument.fromJson(data, error) if (error.error != QJsonParseError.NoError): qDebug("Failed to parse stamp file:" + error.errorString()) continue stamp = TileStamp.fromJson(document.object(), stampsDir) if (stamp.isEmpty()): continue stamp.setFileName(iterator.fileInfo().fileName()) self.mTileStampModel.addStamp(stamp) index = stamp.quickStampIndex() if (index >= 0 and index < self.mQuickStamps.size()): self.mQuickStamps[index] = stamp
def folder_iterator(self): folder_chosen = QFileDialog.getExistingDirectory(self, '打开文件夹', '~') if folder_chosen is not None: it = QDirIterator(folder_chosen) it.next() while it.hasNext(): if (not it.fileInfo().isDir()) and it.filePath() != '.': f_info = it.fileInfo() if f_info.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): self.playlist.addMedia( QMediaContent(QUrl.fromLocalFile(it.filePath()))) it.next() if (not it.fileInfo().isDir()) and it.filePath() != '.': f_info = it.fileInfo() if f_info.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): self.playlist.addMedia( QMediaContent(QUrl.fromLocalFile(it.filePath())))
def folderIterator(self): folderChosen = QFileDialog.getOpenFileName(None, 'Open Music Folder', '~', 'All Files(*.*)') if folderChosen != None: it = QDirIterator(folderChosen) it.next() while it.hasNext(): if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() if fInfo.suffix() in ('mp3', 'mid', 'wav', 'flac'): self.playlist.append( QMediaContent(QUrl.fromLocalFile(it.filePath()))) it.next() if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() if fInfo.suffix() in ('mp3', 'mid', 'wav', 'flac'): self.playlist.append( QMediaContent(QUrl.fromLocalFile(it.filePath())))
def add_files(self): folder_Chosen = QFileDialog\ .getExistingDirectory(self, 'Open Music Folder', expanduser('~')) if folder_Chosen is not None: it = QDirIterator(folder_Chosen) it.next() while it.hasNext(): if it.fileInfo().isDir() == False\ and it.filePath() != '.': fInfo = it.fileInfo() print(it.filePath(), fInfo.suffix()) if fInfo.suffix() in ('mp3', 'ogg', 'wav'): print('added file ', fInfo.fileName()) self.currentPlaylist. \ addMedia(QMediaContent( QUrl.fromLocalFile(it.filePath()))) it.next()
def loadAvailableLanguages(self): self.mLanguages.clear() nameFilters = QStringList() nameFilters.append("tiled_*.qm") iterator = QDirIterator(self.mTranslationsDir, nameFilters, QDir.Files | QDir.Readable) while (iterator.hasNext()): iterator.next() baseName = iterator.fileInfo().completeBaseName() # Cut off "tiled_" from the start self.mLanguages.append(baseName[6:])
def addSongToPlaylist(self, piosenka): if self.folder != None: it = QDirIterator(self.folder) it.next() while it.hasNext(): if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() if fInfo.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): if it.fileName() == piosenka: self.playlist.addMedia( QMediaContent(QUrl.fromLocalFile( it.filePath()))) self.listView.addItem(it.fileName()) it.next() if it.fileInfo().isDir() == False and it.filePath() != '.': fInfo = it.fileInfo() if fInfo.suffix() in ('mp3', 'ogg', 'wav', 'm4a'): if it.fileName() == piosenka: self.playlist.addMedia( QMediaContent(QUrl.fromLocalFile(it.filePath()))) self.listView.addItem(it.fileName())
def scanFolder(self, path): self._tempSongs = {} filters = QDir.Files nameFilters = ["*.wav", "*.wma", "*.mp2", "*.mp3", "*.mp4", "*.m4a", "*.flac", "*.ogg"] qDirIterator = QDirIterator(path, nameFilters, filters, QDirIterator.Subdirectories) while qDirIterator.hasNext(): qDirIterator.next() fileInfo = qDirIterator.fileInfo() fdir = fileInfo.absoluteDir().absolutePath() fpath = qDirIterator.filePath() fsize = fileInfo.size() / (1024 * 1024) time.sleep(0.05) if fsize >= 1: self.scanfileChanged.emit(fpath) self.tipMessageChanged.emit(fpath) self.tipMessageChanged.emit('') self.scanfileFinished.emit()
def scanFolder(self, path): self._tempSongs = {} filters = QDir.Files nameFilters = [ "*.wav", "*.wma", "*.mp2", "*.mp3", "*.mp4", "*.m4a", "*.flac", "*.ogg" ] qDirIterator = QDirIterator(path, nameFilters, filters, QDirIterator.Subdirectories) while qDirIterator.hasNext(): qDirIterator.next() fileInfo = qDirIterator.fileInfo() fdir = fileInfo.absoluteDir().absolutePath() fpath = qDirIterator.filePath() fsize = fileInfo.size() / (1024 * 1024) time.sleep(0.05) if fsize >= 1: self.scanfileChanged.emit(fpath) self.tipMessageChanged.emit(fpath) self.tipMessageChanged.emit('') self.scanfileFinished.emit()