From d19e7bf3aa50015d4a2408e5690f87f9e50d692b Mon Sep 17 00:00:00 2001 From: Tomas Groth Date: Thu, 3 Jul 2014 11:27:54 +0200 Subject: [PATCH] Fix disc loading for windows --- openlp/plugins/media/forms/mediaclipselectordialog.py | 2 ++ openlp/plugins/media/forms/mediaclipselectorform.py | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/media/forms/mediaclipselectordialog.py b/openlp/plugins/media/forms/mediaclipselectordialog.py index 225be5cb0..a25c0badb 100644 --- a/openlp/plugins/media/forms/mediaclipselectordialog.py +++ b/openlp/plugins/media/forms/mediaclipselectordialog.py @@ -204,3 +204,5 @@ class Ui_MediaClipSelector(object): self.subtitle_track_label.setText(translate("MediaPlugin.MediaClipSelector", "Subtitle track", None)) self.jump_end_pushbutton.setText(translate("MediaPlugin.MediaClipSelector", "Jump to end point", None)) self.media_path_label.setText(translate("MediaPlugin.MediaClipSelector", "Media path", None)) + self.media_path_combobox.lineEdit().setPlaceholderText(translate("MediaPlugin.MediaClipSelector", + "Select drive from list", None)) diff --git a/openlp/plugins/media/forms/mediaclipselectorform.py b/openlp/plugins/media/forms/mediaclipselectorform.py index 7216891a8..8620ab9a9 100644 --- a/openlp/plugins/media/forms/mediaclipselectorform.py +++ b/openlp/plugins/media/forms/mediaclipselectorform.py @@ -35,6 +35,7 @@ import sys if sys.platform.startswith('linux'): import dbus import logging +import re from datetime import datetime @@ -207,7 +208,13 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector): 'Given path does not exists')) self.toggle_disable_load_media(False) return - self.vlc_media = self.vlc_instance.media_new_location('file://' + path) + # If on windows fix path for VLC use + if os.name == 'nt': + # If the given path is in the format "D:\" or "D:", prefix it with "/" to make VLC happy + pattern = re.compile('^\w:\\\\*$') + if pattern.match(path): + path = '/' + path + self.vlc_media = self.vlc_instance.media_new_location('dvd://' + path) if not self.vlc_media: log.debug('vlc media player is none') critical_error_message_box(message=translate('MediaPlugin.MediaClipSelectorForm', @@ -583,7 +590,7 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector): if os.name == 'nt': # use win api to find optical drives fso = Dispatch('scripting.filesystemobject') - for drive in fso.Drives : + for drive in fso.Drives: log.debug('Drive %s has type %d' % (drive.DriveLetter, drive.DriveType)) # if type is 4, it is a cd-rom drive if drive.DriveType == 4: