From e573dccc09682c6355d9ef843261a8aef54a907d Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Tue, 12 Mar 2019 08:46:27 +0100 Subject: [PATCH] PICARD-1490: Fix local cover art loading on Windows --- picard/coverart/__init__.py | 2 +- picard/coverart/image.py | 2 +- test/test_coverart_image.py | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/picard/coverart/__init__.py b/picard/coverart/__init__.py index 5554b7089..7731bea8c 100644 --- a/picard/coverart/__init__.py +++ b/picard/coverart/__init__.py @@ -174,7 +174,7 @@ class CoverArt: # local files if coverartimage.url and coverartimage.url.scheme() == 'file': try: - path = coverartimage.url.path() + path = coverartimage.url.toLocalFile() with open(path, 'rb') as file: self._set_metadata(coverartimage, file.read()) except IOError as ioexcept: diff --git a/picard/coverart/image.py b/picard/coverart/image.py index 3db705f12..67b3e4379 100644 --- a/picard/coverart/image.py +++ b/picard/coverart/image.py @@ -431,7 +431,7 @@ class LocalFileCoverArtImage(CoverArtImage): def __init__(self, filepath, types=None, comment='', support_types=False, support_multi_types=False): - url = 'file://' + filepath + url = QUrl.fromLocalFile(filepath).toString() super().__init__(url=url, types=types, comment=comment) self.support_types = support_types self.support_multi_types = support_multi_types diff --git a/test/test_coverart_image.py b/test/test_coverart_image.py index 1f10b6489..a84e4e043 100644 --- a/test/test_coverart_image.py +++ b/test/test_coverart_image.py @@ -100,3 +100,8 @@ class LocalFileCoverArtImageTest(PicardTestCase): image = LocalFileCoverArtImage(path, support_multi_types=True) self.assertFalse(image.support_types) self.assertTrue(image.support_multi_types) + + def test_windows_path(self): + path = 'C:\\Music\\somefile.mp3' + image = LocalFileCoverArtImage(path) + self.assertEqual(image.url.toLocalFile(), 'C:/Music/somefile.mp3')