PICARD-1490: Fix local cover art loading on Windows

This commit is contained in:
Philipp Wolfer
2019-03-12 08:46:27 +01:00
parent af98bca57d
commit e573dccc09
3 changed files with 7 additions and 2 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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')