From a8a96a6bdfb27242d00bbb43b5a41bbd5217195f Mon Sep 17 00:00:00 2001 From: Sophist Date: Thu, 26 Jan 2017 10:44:46 +0000 Subject: [PATCH] PICARD-942: Fix explore/play remote folders/files Resolves [PICARD-942](https://tickets.metabrainz.org/browse/PICARD-942). Make "Open Containing Folder" and "Open in Player" work for remote files. See [QTBUG-13359](https://bugreports.qt.io/browse/QTBUG-13359) for cause and workaround. Tested on Windows. Needs testing on Mac / Linux. --- picard/ui/mainwindow.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/picard/ui/mainwindow.py b/picard/ui/mainwindow.py index c03535701..46b76a901 100644 --- a/picard/ui/mainwindow.py +++ b/picard/ui/mainwindow.py @@ -784,17 +784,21 @@ class MainWindow(QtGui.QMainWindow): return return self.tagger.analyze(self.selected_objects) + def _openUrl(self,url): + if url.startswith("\\\\") or url.startswith("//"): + return QtCore.QUrl(QtCore.QDir.toNativeSeparators(url)) + else: + return QtCore.QUrl.fromLocalFile(url) + def play_file(self): files = self.tagger.get_files_from_objects(self.selected_objects) for file in files: - url = QtCore.QUrl.fromLocalFile(file.filename) - QtGui.QDesktopServices.openUrl(url) + QtGui.QDesktopServices.openUrl(self._openUrl(file.filename)) def open_folder(self): files = self.tagger.get_files_from_objects(self.selected_objects) for file in files: - url = QtCore.QUrl.fromLocalFile(os.path.dirname(file.filename)) - QtGui.QDesktopServices.openUrl(url) + QtGui.QDesktopServices.openUrl(self._openUrl(os.path.dirname(file.filename))) def show_analyze_settings_info(self): ret = QtGui.QMessageBox.question(self,