|
@@ 307-326 (lines=20) @@
|
| 304 |
|
|
| 305 |
|
if success: |
| 306 |
|
playlist = QUrl.fromLocalFile(playlist) |
| 307 |
|
self.playlist.clear() |
| 308 |
|
self.playlist_view.clear() |
| 309 |
|
self.playlist.load(playlist) |
| 310 |
|
self.player.setPlaylist(self.playlist) |
| 311 |
|
|
| 312 |
|
for song_index in range(self.playlist.mediaCount()): |
| 313 |
|
file_info = self.playlist.media(song_index).canonicalUrl().fileName() |
| 314 |
|
playlist_item = QListWidgetItem(file_info) |
| 315 |
|
playlist_item.setToolTip(file_info) |
| 316 |
|
self.playlist_view.addItem(playlist_item) |
| 317 |
|
|
| 318 |
|
self.playlist_view.setCurrentRow(0) |
| 319 |
|
self.player.play() |
| 320 |
|
|
| 321 |
|
def load_saved_playlist(self): |
| 322 |
|
"""Load the saved playlist if user setting permits.""" |
| 323 |
|
saved_playlist = "{}/.m3u" .format(self.playlist_location) |
| 324 |
|
if os.path.exists(saved_playlist): |
| 325 |
|
playlist = QUrl().fromLocalFile(saved_playlist) |
| 326 |
|
self.playlist.load(playlist) |
| 327 |
|
self.player.setPlaylist(self.playlist) |
| 328 |
|
|
| 329 |
|
for song_index in range(self.playlist.mediaCount()): |
|
@@ 288-305 (lines=18) @@
|
| 285 |
|
"""Open the selected files and add them to a new playlist.""" |
| 286 |
|
filenames, success = QFileDialog.getOpenFileNames(self, 'Open Multiple Files', '', 'Audio (*.mp3 *.flac)', '', QFileDialog.ReadOnly) |
| 287 |
|
|
| 288 |
|
if success: |
| 289 |
|
self.playlist.clear() |
| 290 |
|
self.playlist_view.clear() |
| 291 |
|
for file in natsort.natsorted(filenames, alg=natsort.ns.PATH): |
| 292 |
|
file_info = QFileInfo(file).fileName() |
| 293 |
|
playlist_item = QListWidgetItem(file_info) |
| 294 |
|
self.playlist.addMedia(QMediaContent(QUrl().fromLocalFile(file))) |
| 295 |
|
self.player.setPlaylist(self.playlist) |
| 296 |
|
playlist_item.setToolTip(file_info) |
| 297 |
|
self.playlist_view.addItem(playlist_item) |
| 298 |
|
self.playlist_view.setCurrentRow(0) |
| 299 |
|
self.player.play() |
| 300 |
|
|
| 301 |
|
def open_playlist(self): |
| 302 |
|
"""Load an M3U or PLS file into a new playlist.""" |
| 303 |
|
playlist, success = QFileDialog.getOpenFileName(self, 'Open Playlist', '', 'Playlist (*.m3u *.pls)', '', QFileDialog.ReadOnly) |
| 304 |
|
|
| 305 |
|
if success: |
| 306 |
|
playlist = QUrl.fromLocalFile(playlist) |
| 307 |
|
self.playlist.clear() |
| 308 |
|
self.playlist_view.clear() |
|
@@ 270-286 (lines=17) @@
|
| 267 |
|
|
| 268 |
|
def open_file(self): |
| 269 |
|
"""Open the selected file and add it to a new playlist.""" |
| 270 |
|
filename, success = QFileDialog.getOpenFileName(self, 'Open File', '', 'Audio (*.mp3 *.flac)', '', QFileDialog.ReadOnly) |
| 271 |
|
|
| 272 |
|
if success: |
| 273 |
|
file_info = QFileInfo(filename).fileName() |
| 274 |
|
playlist_item = QListWidgetItem(file_info) |
| 275 |
|
self.playlist.clear() |
| 276 |
|
self.playlist_view.clear() |
| 277 |
|
self.playlist.addMedia(QMediaContent(QUrl().fromLocalFile(filename))) |
| 278 |
|
self.player.setPlaylist(self.playlist) |
| 279 |
|
playlist_item.setToolTip(file_info) |
| 280 |
|
self.playlist_view.addItem(playlist_item) |
| 281 |
|
self.playlist_view.setCurrentRow(0) |
| 282 |
|
self.player.play() |
| 283 |
|
|
| 284 |
|
def open_multiple_files(self): |
| 285 |
|
"""Open the selected files and add them to a new playlist.""" |
| 286 |
|
filenames, success = QFileDialog.getOpenFileNames(self, 'Open Multiple Files', '', 'Audio (*.mp3 *.flac)', '', QFileDialog.ReadOnly) |
| 287 |
|
|
| 288 |
|
if success: |
| 289 |
|
self.playlist.clear() |
|
@@ 344-363 (lines=20) @@
|
| 341 |
|
if directory: |
| 342 |
|
self.playlist.clear() |
| 343 |
|
self.playlist_view.clear() |
| 344 |
|
for dirpath, __, files in os.walk(directory): |
| 345 |
|
for filename in natsort.natsorted(files, alg=natsort.ns.PATH): |
| 346 |
|
file = os.path.join(dirpath, filename) |
| 347 |
|
if filename.endswith(('mp3', 'flac')): |
| 348 |
|
self.playlist.addMedia(QMediaContent(QUrl().fromLocalFile(file))) |
| 349 |
|
playlist_item = QListWidgetItem(filename) |
| 350 |
|
playlist_item.setToolTip(filename) |
| 351 |
|
self.playlist_view.addItem(playlist_item) |
| 352 |
|
|
| 353 |
|
self.player.setPlaylist(self.playlist) |
| 354 |
|
self.playlist_view.setCurrentRow(0) |
| 355 |
|
self.player.play() |
| 356 |
|
|
| 357 |
|
def open_media_library(self, index): |
| 358 |
|
"""Open a directory or file from the media library into an empty playlist.""" |
| 359 |
|
self.playlist.clear() |
| 360 |
|
self.playlist_view.clear() |
| 361 |
|
|
| 362 |
|
if self.library_model.fileName(index).endswith(('mp3', 'flac')): |
| 363 |
|
self.playlist.addMedia(QMediaContent(QUrl().fromLocalFile(self.library_model.filePath(index)))) |
| 364 |
|
self.playlist_view.addItem(self.library_model.fileName(index)) |
| 365 |
|
|
| 366 |
|
elif self.library_model.isDir(index): |