diff --git a/openlp/plugins/media/forms/mediaclipselectordialog.py b/openlp/plugins/media/forms/mediaclipselectordialog.py
index 921c68a8d..beed9e8e3 100644
--- a/openlp/plugins/media/forms/mediaclipselectordialog.py
+++ b/openlp/plugins/media/forms/mediaclipselectordialog.py
@@ -26,6 +26,8 @@
# with this program; if not, write to the Free Software Foundation, Inc., 59 #
# Temple Place, Suite 330, Boston, MA 02111-1307 USA #
###############################################################################
+
+
from PyQt4 import QtCore, QtGui
from openlp.core.common import translate
@@ -129,6 +131,7 @@ class Ui_MediaClipSelector(object):
self.gridLayout.addWidget(self.audio_track_label, 3, 0, 1, 2)
self.media_position_timeedit = QtGui.QTimeEdit(self.centralwidget)
self.media_position_timeedit.setEnabled(True)
+ self.media_position_timeedit.setReadOnly(True)
self.media_position_timeedit.setObjectName("media_position_timeedit")
self.gridLayout.addWidget(self.media_position_timeedit, 6, 4, 1, 1)
self.media_view_frame = QtGui.QFrame(self.centralwidget)
diff --git a/openlp/plugins/media/forms/mediaclipselectorform.py b/openlp/plugins/media/forms/mediaclipselectorform.py
index 6cda4a494..11986acf5 100644
--- a/openlp/plugins/media/forms/mediaclipselectorform.py
+++ b/openlp/plugins/media/forms/mediaclipselectorform.py
@@ -35,7 +35,6 @@ import sys
if sys.platform.startswith('linux'):
import dbus
import logging
-import time
from datetime import datetime
@@ -62,10 +61,6 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector):
super(MediaClipSelectorForm, self).__init__(parent)
self.media_item = media_item
self.setupUi(self)
- self.playback_length = 0
- self.position_horizontalslider.setMinimum(0)
- self.disable_all()
- self.toggle_disable_load_media(False)
# most actions auto-connect due to the functions name, so only a few left to do
self.close_pushbutton.clicked.connect(self.reject)
# setup play/pause icon
@@ -79,16 +74,43 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector):
Exit Dialog and do not save
"""
log.debug('MediaClipSelectorForm.reject')
- self.vlc_media_player.stop()
+ # Tear down vlc
+ if self.vlc_media_player:
+ self.vlc_media_player.stop()
+ self.vlc_media_player.release()
+ self.vlc_media_player = None
+ if self.vlc_instance:
+ self.vlc_instance.release()
+ self.vlc_instance = None
+ if self.vlc_media:
+ self.vlc_media.release()
+ self.vlc_media = None
QtGui.QDialog.reject(self)
def exec_(self):
"""
Start dialog
"""
+ self.reset_ui()
self.setup_vlc()
return QtGui.QDialog.exec_(self)
+ def reset_ui(self):
+ """
+ Reset the UI to default values
+ """
+ self.playback_length = 0
+ self.position_horizontalslider.setMinimum(0)
+ self.disable_all()
+ self.toggle_disable_load_media(False)
+ self.subtitle_tracks_combobox.clear()
+ self.audio_tracks_combobox.clear()
+ self.title_combo_box.clear()
+ time = QtCore.QTime()
+ self.start_timeedit.setTime(time)
+ self.end_timeedit.setTime(time)
+ self.media_position_timeedit.setTime(time)
+
def setup_vlc(self):
"""
Setup VLC instance and mediaplayer
@@ -286,6 +308,8 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector):
:param index: The index of the newly chosen title track.
"""
log.debug('in on_title_combo_box_changed, index: %d', index)
+ if not self.vlc_media_player:
+ return
self.vlc_media_player.set_title(index)
self.vlc_media_player.set_time(0)
self.vlc_media_player.play()
@@ -323,6 +347,7 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector):
playback_length_time = time.addMSecs(rounded_vlc_ms_length)
self.start_timeedit.setMaximumTime(playback_length_time)
self.end_timeedit.setMaximumTime(playback_length_time)
+ self.end_timeedit.setTime(playback_length_time)
# If a title or audio track is available the player is enabled
if self.title_combo_box.count() > 0 or len(audio_tracks) > 0:
self.toggle_disable_player(False)
@@ -334,6 +359,8 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector):
:param index: The index of the newly chosen audio track.
"""
+ if not self.vlc_media_player:
+ return
audio_track = self.audio_tracks_combobox.itemData(index)
log.debug('in on_audio_tracks_combobox_currentIndexChanged, index: %d audio_track: %s' % (index, audio_track))
if audio_track and int(audio_track) > 0:
@@ -346,6 +373,8 @@ class MediaClipSelectorForm(QtGui.QDialog, Ui_MediaClipSelector):
:param index: The index of the newly chosen subtitle.
"""
+ if not self.vlc_media_player:
+ return
subtitle_track = self.subtitle_tracks_combobox.itemData(index)
if subtitle_track:
self.vlc_media_player.video_set_spu(int(subtitle_track))
diff --git a/resources/forms/mediaclipselector.ui b/resources/forms/mediaclipselector.ui
index 754161eae..b3f22e678 100644
--- a/resources/forms/mediaclipselector.ui
+++ b/resources/forms/mediaclipselector.ui
@@ -227,6 +227,9 @@
true
+
+ true
+
HH:mm:ss.z