diff --git a/openlp/plugins/videos/__init__.py b/openlp/plugins/media/__init__.py similarity index 100% rename from openlp/plugins/videos/__init__.py rename to openlp/plugins/media/__init__.py diff --git a/openlp/plugins/videos/lib/__init__.py b/openlp/plugins/media/lib/__init__.py similarity index 88% rename from openlp/plugins/videos/lib/__init__.py rename to openlp/plugins/media/lib/__init__.py index 2c189b178..005fdb8a2 100644 --- a/openlp/plugins/videos/lib/__init__.py +++ b/openlp/plugins/media/lib/__init__.py @@ -19,7 +19,7 @@ Place, Suite 330, Boston, MA 02111-1307 USA """ from filelistdata import FileListData -from videotab import VideoTab -from mediaitem import VideoMediaItem +from mediatab import MediaTab +from mediaitem import MediaMediaItem -__all__ = ['VideoTab', 'VideoMediaItem', 'FileListData'] +__all__ = ['MediaTab', 'MediaMediaItem', 'FileListData'] diff --git a/openlp/plugins/videos/lib/filelistdata.py b/openlp/plugins/media/lib/filelistdata.py similarity index 100% rename from openlp/plugins/videos/lib/filelistdata.py rename to openlp/plugins/media/lib/filelistdata.py diff --git a/openlp/plugins/media/lib/mediaitem.py b/openlp/plugins/media/lib/mediaitem.py new file mode 100644 index 000000000..ae9f7696c --- /dev/null +++ b/openlp/plugins/media/lib/mediaitem.py @@ -0,0 +1,135 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=80 tabstop=4 softtabstop=4 +""" +OpenLP - Open Source Lyrics Projection +Copyright (c) 2008 Raoul Snyman +Portions copyright (c) 2008-2009 Martin Thompson, Tim Bentley + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; version 2 of the License. + +This program is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A +PARTICULAR PURPOSE. See the GNU General Public License for more details. + +You should have received a copy of the GNU General Public License along with +this program; if not, write to the Free Software Foundation, Inc., 59 Temple +Place, Suite 330, Boston, MA 02111-1307 USA +""" +import logging +import os + +from PyQt4 import QtCore, QtGui + +from openlp.core import translate +from openlp.core.lib import MediaManagerItem + +from openlp.plugins.media.lib import MediaTab +from openlp.plugins.media.lib import FileListData + +class MediaMediaItem(MediaManagerItem): + """ + This is the custom media manager item for Custom Slides. + """ + global log + log=logging.getLogger(u'MediaMediaItem') + log.info(u'Media Media Item loaded') + + def __init__(self, parent, icon, title): + MediaManagerItem.__init__(self, parent, icon, title) + + def setupUi(self): + # Add a toolbar + self.addToolbar() + # Create buttons for the toolbar + ## New Media Button ## + self.addToolbarButton( + translate('MediaMediaItem',u'New Media'), + translate('MediaMediaItem',u'Load Media into openlp.org'), + ':/videos/video_load.png', self.onMediaNewClick, 'MediaNewItem') + ## Delete Media Button ## + self.addToolbarButton( + translate('MediaMediaItem',u'Delete Media'), + translate('MediaMediaItem',u'Delete the selected Media item'), + ':/videos/video_delete.png', self.onMediaDeleteClick, 'MediaDeleteItem') + ## Separator Line ## + self.addToolbarSeparator() + ## Preview Media Button ## + self.addToolbarButton( + translate('MediaMediaItem',u'Preview Media'), + translate('MediaMediaItem',u'Preview the selected Media item'), + ':/system/system_preview.png', self.onMediaPreviewClick, 'MediaPreviewItem') + ## Live Media Button ## + self.addToolbarButton( + translate('MediaMediaItem',u'Go Live'), + translate('MediaMediaItem',u'Send the selected Media item live'), + ':/system/system_live.png', self.onMediaLiveClick, 'MediaLiveItem') + ## Add Media Button ## + self.addToolbarButton( + translate('MediaMediaItem',u'Add Media To Service'), + translate('MediaMediaItem',u'Add the selected Media items(s) to the service'), + ':/system/system_add.png',self.onMediaAddClick, 'MediaAddItem') + ## Add the Medialist widget ## + + self.MediaListView = QtGui.QListView() + self.MediaListView.setAlternatingRowColors(True) + self.MediaListData = FileListData() + self.MediaListView.setModel(self.MediaListData) + + self.PageLayout.addWidget(self.MediaListView) + + #define and add the context menu + self.MediaListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) + + self.MediaListView.addAction(self.contextMenuAction( + self.MediaListView, ':/system/system_preview.png', + translate('MediaMediaItem',u'&Preview Media'), self.onMediaPreviewClick)) + self.MediaListView.addAction(self.contextMenuAction( + self.MediaListView, ':/system/system_live.png', + translate('MediaMediaItem',u'&Show Live'), self.onMediaLiveClick)) + self.MediaListView.addAction(self.contextMenuAction( + self.MediaListView, ':/system/system_add.png', + translate('MediaMediaItem',u'&Add to Service'), self.onMediaAddClick)) + + def initialise(self): + list = self.parent.config.load_list(u'Medias') + self.loadMediaList(list) + + def onMediaNewClick(self): + files = QtGui.QFileDialog.getOpenFileNames(None, + translate('MediaMediaItem', u'Select Media(s) items'), + self.parent.config.get_last_dir(), u'Images (*.avi *.mpeg)') + if len(files) > 0: + self.loadMediaList(files) + dir, filename = os.path.split(str(files[0])) + self.parent.config.set_last_dir(dir) + self.parent.config.set_list(u'media', self.MediaListData.getFileList()) + + def getFileList(self): + filelist = [item[0] for item in self.MediaListView]; + return filelist + + def loadMediaList(self, list): + for files in list: + self.MediaListData.addRow(files) + + def onMediaDeleteClick(self): + indexes = self.MediaListView.selectedIndexes() + for index in indexes: + current_row = int(index.row()) + self.MediaListData.removeRow(current_row) + self.parent.config.set_list(u'media', self.MediaListData.getFileList()) + + def onMediaPreviewClick(self): + log.debug(u'Media Preview Button pressed') + items = self.MediaListView.selectedIndexes() + for item in items: + text = self.MediaListData.getValue(item) + print text + + def onMediaLiveClick(self): + pass + + def onMediaAddClick(self): + pass diff --git a/openlp/plugins/videos/lib/videotab.py b/openlp/plugins/media/lib/mediatab.py similarity index 72% rename from openlp/plugins/videos/lib/videotab.py rename to openlp/plugins/media/lib/mediatab.py index d1e694d0a..1afe340d9 100644 --- a/openlp/plugins/videos/lib/videotab.py +++ b/openlp/plugins/media/lib/mediatab.py @@ -24,39 +24,39 @@ from openlp.core import translate from openlp import convertStringToBoolean from openlp.core.lib import SettingsTab -class VideoTab(SettingsTab): +class MediaTab(SettingsTab): """ - VideoTab is the video settings tab in the settings dialog. + mediaTab is the media settings tab in the settings dialog. """ def __init__(self): - SettingsTab.__init__(self, u'Videos') + SettingsTab.__init__(self, u'Media') def setupUi(self): - self.setObjectName(u'VideoTab') + self.setObjectName(u'MediaTab') - self.VideoLayout = QtGui.QFormLayout(self) - self.VideoLayout.setObjectName("VideoLayout") + self.MediaLayout = QtGui.QFormLayout(self) + self.MediaLayout.setObjectName("MediaLayout") - self.VideoModeGroupBox = QtGui.QGroupBox(self) - self.VideoModeGroupBox.setObjectName("VideoModeGroupBox") - self.VideoModeLayout = QtGui.QVBoxLayout(self.VideoModeGroupBox) - self.VideoModeLayout.setSpacing(8) - self.VideoModeLayout.setMargin(8) - self.VideoModeLayout.setObjectName("VideoModeLayout") - self.UseVMRCheckBox = QtGui.QCheckBox(self.VideoModeGroupBox) + self.MediaModeGroupBox = QtGui.QGroupBox(self) + self.MediaModeGroupBox.setObjectName("MediaModeGroupBox") + self.MediaModeLayout = QtGui.QVBoxLayout(self.MediaModeGroupBox) + self.MediaModeLayout.setSpacing(8) + self.MediaModeLayout.setMargin(8) + self.MediaModeLayout.setObjectName("MediaModeLayout") + self.UseVMRCheckBox = QtGui.QCheckBox(self.MediaModeGroupBox) self.UseVMRCheckBox.setObjectName("UseVMRCheckBox") - self.VideoModeLayout.addWidget(self.UseVMRCheckBox) - self.UseVMRLabel = QtGui.QLabel(self.VideoModeGroupBox) + self.MediaModeLayout.addWidget(self.UseVMRCheckBox) + self.UseVMRLabel = QtGui.QLabel(self.MediaModeGroupBox) self.UseVMRLabel.setObjectName("UseVMRLabel") - self.VideoModeLayout.addWidget(self.UseVMRLabel) + self.MediaModeLayout.addWidget(self.UseVMRLabel) - self.VideoLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.VideoModeGroupBox) + self.MediaLayout.setWidget(0, QtGui.QFormLayout.LabelRole, self.MediaModeGroupBox) # Signals and slots QtCore.QObject.connect(self.UseVMRCheckBox, QtCore.SIGNAL("stateChanged(int)"), self.onVMRCheckBoxChanged) def retranslateUi(self): - self.VideoModeGroupBox.setTitle(translate("SettingsForm", "Video Mode")) + self.MediaModeGroupBox.setTitle(translate("SettingsForm", "Media Mode")) self.UseVMRCheckBox.setText(translate("SettingsForm", "Use Video Mode Rendering")) self.UseVMRLabel.setText(translate("SettingsForm", "\n" "