Example #1
0
    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())))
Example #4
0
	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()
Example #5
0
    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
Example #6
0
    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
Example #7
0
 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())))
Example #8
0
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())))
Example #9
0
 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()
Example #10
0
 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:])
Example #11
0
 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:])
Example #12
0
    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())
Example #13
0
    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()
Example #14
0
    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()