Plugins pass themselves as the parent to MediaManagerItem to facilitate easier communication between each plugin's set of objects.

bzr-revno: 357
This commit is contained in:
Raoul Snyman 2009-03-02 22:12:14 +00:00
parent b2c51566b4
commit 86115ec964
7 changed files with 76 additions and 58 deletions

View File

@ -27,11 +27,12 @@ class MediaManagerItem(QtGui.QWidget):
""" """
MediaManagerItem is a helper widget for plugins. MediaManagerItem is a helper widget for plugins.
""" """
def __init__(self, icon=None, title=None): def __init__(self, parent=None, icon=None, title=None):
""" """
Constructor to create the media manager item. Constructor to create the media manager item.
""" """
QtGui.QWidget.__init__(self) QtGui.QWidget.__init__(self)
self.parent = parent
if type(icon) is QtGui.QIcon: if type(icon) is QtGui.QIcon:
self.icon = icon self.icon = icon
elif type(icon) is types.StringType: elif type(icon) is types.StringType:

View File

@ -52,8 +52,7 @@ class BiblePlugin(Plugin, PluginUtils):
def get_media_manager_item(self): def get_media_manager_item(self):
# Create the MediaManagerItem object # Create the MediaManagerItem object
self.media_item = BibleMediaItem(self.icon, 'Bible Verses', self.media_item = BibleMediaItem(self, self.icon, 'Bible Verses')
self.biblemanager)
return self.media_item return self.media_item
def add_import_menu_item(self, import_menu): def add_import_menu_item(self, import_menu):

View File

@ -35,12 +35,11 @@ class BibleMediaItem(MediaManagerItem):
log=logging.getLogger("BibleMediaItem") log=logging.getLogger("BibleMediaItem")
log.info("Bible Media Item loaded") log.info("Bible Media Item loaded")
def __init__(self, icon, title, biblemanager): def __init__(self, parent, icon, title):
self.biblemanager = biblemanager MediaManagerItem.__init__(self, parent, icon, title)
self.search_results = {} # place to store the search results self.search_results = {} # place to store the search results
QtCore.QObject.connect(Receiver().get_receiver(), QtCore.QObject.connect(Receiver().get_receiver(),
QtCore.SIGNAL("openlpreloadbibles"), self.reloadBibles) QtCore.SIGNAL("openlpreloadbibles"), self.reloadBibles)
MediaManagerItem.__init__(self, icon, title)
def setupUi(self): def setupUi(self):
# Add a toolbar # Add a toolbar
@ -183,14 +182,21 @@ class BibleMediaItem(MediaManagerItem):
self.BibleListView.setAlternatingRowColors(True) self.BibleListView.setAlternatingRowColors(True)
self.PageLayout.addWidget(self.BibleListView) self.PageLayout.addWidget(self.BibleListView)
# Combo Boxes # Combo Boxes
QtCore.QObject.connect(self.AdvancedVersionComboBox, QtCore.SIGNAL("activated(int)"), self.onAdvancedVersionComboBox) QtCore.QObject.connect(self.AdvancedVersionComboBox,
QtCore.QObject.connect(self.AdvancedBookComboBox, QtCore.SIGNAL("activated(int)"), self.onAdvancedBookComboBox) QtCore.SIGNAL("activated(int)"), self.onAdvancedVersionComboBox)
QtCore.QObject.connect(self.AdvancedFromChapter, QtCore.SIGNAL("activated(int)"), self.onAdvancedFromChapter) QtCore.QObject.connect(self.AdvancedBookComboBox,
QtCore.QObject.connect(self.AdvancedFromVerse, QtCore.SIGNAL("activated(int)"), self.onAdvancedFromVerse) QtCore.SIGNAL("activated(int)"), self.onAdvancedBookComboBox)
QtCore.QObject.connect(self.AdvancedToChapter, QtCore.SIGNAL("activated(int)"), self.onAdvancedToChapter) QtCore.QObject.connect(self.AdvancedFromChapter,
QtCore.SIGNAL("activated(int)"), self.onAdvancedFromChapter)
QtCore.QObject.connect(self.AdvancedFromVerse,
QtCore.SIGNAL("activated(int)"), self.onAdvancedFromVerse)
QtCore.QObject.connect(self.AdvancedToChapter,
QtCore.SIGNAL("activated(int)"), self.onAdvancedToChapter)
# Buttons # Buttons
QtCore.QObject.connect(self.AdvancedSearchButton, QtCore.SIGNAL("pressed()"), self.onAdvancedSearchButton) QtCore.QObject.connect(self.AdvancedSearchButton,
QtCore.QObject.connect(self.QuickSearchButton, QtCore.SIGNAL("pressed()"), self.onQuickSearchButton) QtCore.SIGNAL("pressed()"), self.onAdvancedSearchButton)
QtCore.QObject.connect(self.QuickSearchButton,
QtCore.SIGNAL("pressed()"), self.onQuickSearchButton)
# Context Menus # Context Menus
self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.BibleListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.BibleListView.addAction(self.contextMenuAction( self.BibleListView.addAction(self.contextMenuAction(
@ -226,6 +232,8 @@ class BibleMediaItem(MediaManagerItem):
def initialise(self): def initialise(self):
self.loadBibles() self.loadBibles()
def initialiseForm(self):
self.QuickSearchComboBox.clear() self.QuickSearchComboBox.clear()
self.QuickVersionComboBox.clear() self.QuickVersionComboBox.clear()
self.AdvancedVersionComboBox.clear() self.AdvancedVersionComboBox.clear()
@ -233,10 +241,10 @@ class BibleMediaItem(MediaManagerItem):
self.ClearAdvancedSearchComboBox.clear() self.ClearAdvancedSearchComboBox.clear()
def loadBibles(self): def loadBibles(self):
bibles = self.biblemanager.get_bibles('full') bibles = self.parent.biblemanager.get_bibles('full')
for bible in bibles: # load bibles into the combo boxes for bible in bibles: # load bibles into the combo boxes
self.QuickVersionComboBox.addItem(bible) self.QuickVersionComboBox.addItem(bible)
bibles = self.biblemanager.get_bibles('partial') # Without HTTP bibles = self.parent.biblemanager.get_bibles('partial') # Without HTTP
first = True first = True
for bible in bibles: # load bibles into the combo boxes for bible in bibles: # load bibles into the combo boxes
self.AdvancedVersionComboBox.addItem(bible) self.AdvancedVersionComboBox.addItem(bible)
@ -252,7 +260,7 @@ class BibleMediaItem(MediaManagerItem):
self.initialiseBible(str(self.AdvancedVersionComboBox.currentText())) # restet the bible info self.initialiseBible(str(self.AdvancedVersionComboBox.currentText())) # restet the bible info
def onBibleNewClick(self): def onBibleNewClick(self):
self.bibleimportform = BibleImportForm(self.config, self.biblemanager, self) self.bibleimportform = BibleImportForm(self.config, self.parent.biblemanager, self)
self.bibleimportform.exec_() self.bibleimportform.exec_()
pass pass
@ -278,7 +286,7 @@ class BibleMediaItem(MediaManagerItem):
if t1 != t2: if t1 != t2:
bible = str(self.AdvancedVersionComboBox.currentText()) bible = str(self.AdvancedVersionComboBox.currentText())
book = str(self.AdvancedBookComboBox.currentText()) book = str(self.AdvancedBookComboBox.currentText())
vse = self.biblemanager.get_book_verse_count(bible, book, int(t2))[0] # get the verse count for new chapter vse = self.parent.biblemanager.get_book_verse_count(bible, book, int(t2))[0] # get the verse count for new chapter
self.adjustComboBox(1, vse, self.AdvancedToVerse) self.adjustComboBox(1, vse, self.AdvancedToVerse)
def onAdvancedSearchButton(self): def onAdvancedSearchButton(self):
@ -288,7 +296,7 @@ class BibleMediaItem(MediaManagerItem):
chapter_to = int(self.AdvancedToChapter.currentText()) chapter_to = int(self.AdvancedToChapter.currentText())
verse_from = int(self.AdvancedFromVerse.currentText()) verse_from = int(self.AdvancedFromVerse.currentText())
verse_to = int(self.AdvancedToVerse.currentText()) verse_to = int(self.AdvancedToVerse.currentText())
self.search_results = self.biblemanager.get_verse_text(bible, book, self.search_results = self.parent.biblemanager.get_verse_text(bible, book,
chapter_from, chapter_to, verse_from, verse_to) chapter_from, chapter_to, verse_from, verse_to)
if self.ClearAdvancedSearchComboBox.currentIndex() == 0: if self.ClearAdvancedSearchComboBox.currentIndex() == 0:
self.BibleListView.clear() # clear the results self.BibleListView.clear() # clear the results
@ -300,7 +308,7 @@ class BibleMediaItem(MediaManagerItem):
book = str(self.AdvancedBookComboBox.currentText()) book = str(self.AdvancedBookComboBox.currentText())
cf = self.AdvancedFromChapter.currentText() cf = self.AdvancedFromChapter.currentText()
self._adjust_combobox(cf, self.chapters_from, self.AdvancedToChapter) self._adjust_combobox(cf, self.chapters_from, self.AdvancedToChapter)
vse = self.biblemanager.get_book_verse_count(bible, book, int(cf))[0] # get the verse count for new chapter vse = self.parent.biblemanager.get_book_verse_count(bible, book, int(cf))[0] # get the verse count for new chapter
self._adjust_combobox(1, vse, self.AdvancedFromVerse) self._adjust_combobox(1, vse, self.AdvancedFromVerse)
self._adjust_combobox(1, vse, self.AdvancedToVerse) self._adjust_combobox(1, vse, self.AdvancedToVerse)
@ -312,7 +320,7 @@ class BibleMediaItem(MediaManagerItem):
self.BibleListView.clear() # clear the results self.BibleListView.clear() # clear the results
self.BibleListView.setRowCount(0) self.BibleListView.setRowCount(0)
elif self.QuickSearchComboBox.currentIndex() == 1: elif self.QuickSearchComboBox.currentIndex() == 1:
self.search_results = self.biblemanager.get_verse_from_text(bible, text) self.search_results = self.parent.biblemanager.get_verse_from_text(bible, text)
else: else:
self.searchByReference(bible, text) self.searchByReference(bible, text)
if not self.search_results == None: if not self.search_results == None:
@ -354,19 +362,19 @@ class BibleMediaItem(MediaManagerItem):
return loc return loc
def reloadBibles(self): def reloadBibles(self):
self.biblemanager.reload_bibles() self.parent.biblemanager.reload_bibles()
self._initialise_form() self.initialiseForm()
def initialiseBible(self, bible): def initialiseBible(self, bible):
log.debug('initialiseBible %s', bible) log.debug('initialiseBible %s', bible)
current_book = str(self.AdvancedBookComboBox.currentText()) current_book = str(self.AdvancedBookComboBox.currentText())
chapter_count = self.biblemanager.get_book_chapter_count(bible, chapter_count = self.parent.biblemanager.get_book_chapter_count(bible,
current_book)[0] current_book)[0]
log.debug('Book change bible %s book %s ChapterCount %s', bible, log.debug('Book change bible %s book %s ChapterCount %s', bible,
current_book, chapter_count) current_book, chapter_count)
if chapter_count == None: if chapter_count == None:
# Only change the search details if the book is missing from the new bible # Only change the search details if the book is missing from the new bible
books = self.biblemanager.get_bible_books(str( books = self.parent.biblemanager.get_bible_books(str(
self.AdvancedVersionComboBox.currentText())) self.AdvancedVersionComboBox.currentText()))
self.AdvancedBookComboBox.clear() self.AdvancedBookComboBox.clear()
first = True first = True
@ -378,8 +386,8 @@ class BibleMediaItem(MediaManagerItem):
def initialiseChapterVerse(self, bible, book): def initialiseChapterVerse(self, bible, book):
log.debug("initialiseChapterVerse %s , %s", bible, book) log.debug("initialiseChapterVerse %s , %s", bible, book)
self.chapters_from = self.biblemanager.get_book_chapter_count(bible, book)[0] self.chapters_from = self.parent.biblemanager.get_book_chapter_count(bible, book)[0]
self.verses = self.biblemanager.get_book_verse_count(bible, book, 1)[0] self.verses = self.parent.biblemanager.get_book_verse_count(bible, book, 1)[0]
self.adjustComboBox(1, self.chapters_from, self.AdvancedFromChapter) self.adjustComboBox(1, self.chapters_from, self.AdvancedFromChapter)
self.adjustComboBox(1, self.chapters_from, self.AdvancedToChapter) self.adjustComboBox(1, self.chapters_from, self.AdvancedToChapter)
self.adjustComboBox(1, self.verses, self.AdvancedFromVerse) self.adjustComboBox(1, self.verses, self.AdvancedFromVerse)
@ -475,7 +483,7 @@ class BibleMediaItem(MediaManagerItem):
if message == None: if message == None:
self.search_results = None self.search_results = None
self.search_results = self.biblemanager.get_verse_text(bible, book, self.search_results = self.parent.biblemanager.get_verse_text(bible, book,
int(start_chapter), int(end_chapter), int(start_verse), int(start_chapter), int(end_chapter), int(start_verse),
int(end_verse)) int(end_verse))
else: else:

View File

@ -34,13 +34,16 @@ class ListWithPreviews(QtCore.QAbstractListModel):
global log global log
log=logging.getLogger("ListWithPreviews") log=logging.getLogger("ListWithPreviews")
log.info("started") log.info("started")
def __init__(self): def __init__(self):
QtCore.QAbstractListModel.__init__(self) QtCore.QAbstractListModel.__init__(self)
self.items=[] # will be a list of (filename, QPixmap) tuples self.items=[] # will be a list of (filename, QPixmap) tuples
self.rowheight=50 self.rowheight=50
self.maximagewidth=self.rowheight*16/9.0; self.maximagewidth=self.rowheight*16/9.0;
def rowCount(self, parent): def rowCount(self, parent):
return len(self.items) return len(self.items)
def insertRow(self, row, filename): def insertRow(self, row, filename):
self.beginInsertRows(QModelIndex(),row,row) self.beginInsertRows(QModelIndex(),row,row)
log.info("insert row %d:%s"%(row,filename)) log.info("insert row %d:%s"%(row,filename))
@ -60,18 +63,19 @@ class ListWithPreviews(QtCore.QAbstractListModel):
# finally create the row # finally create the row
self.items.insert(row, (filename, p, shortfilename)) self.items.insert(row, (filename, p, shortfilename))
self.endInsertRows() self.endInsertRows()
def removeRow(self, row): def removeRow(self, row):
self.beginRemoveRows(QModelIndex(), row,row) self.beginRemoveRows(QModelIndex(), row,row)
self.items.pop(row) self.items.pop(row)
self.endRemoveRows() self.endRemoveRows()
def addRow(self, filename): def addRow(self, filename):
self.insertRow(len(self.items), filename) self.insertRow(len(self.items), filename)
def data(self, index, role): def data(self, index, role):
row=index.row() row=index.row()
if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row! if row > len(self.items): # if the last row is selected and deleted, we then get called with an empty row!
return QVariant() return QVariant()
if role==Qt.DisplayRole: if role==Qt.DisplayRole:
retval= self.items[row][2] retval= self.items[row][2]
elif role == Qt.DecorationRole: elif role == Qt.DecorationRole:
@ -80,19 +84,21 @@ class ListWithPreviews(QtCore.QAbstractListModel):
retval= self.items[row][0] retval= self.items[row][0]
else: else:
retval= QVariant() retval= QVariant()
# log.info("Returning"+ str(retval)) # log.info("Returning"+ str(retval))
if type(retval) is not type(QVariant): if type(retval) is not type(QVariant):
return QVariant(retval) return QVariant(retval)
else: else:
return retval return retval
def get_file_list(self): def get_file_list(self):
filelist=[i[0] for i in self.items]; filelist=[i[0] for i in self.items];
return filelist return filelist
class ImagePlugin(Plugin, PluginUtils): class ImagePlugin(Plugin, PluginUtils):
global log global log
log=logging.getLogger("ImagePlugin") log=logging.getLogger("ImagePlugin")
log.info("Image Plugin loaded") log.info("Image Plugin loaded")
def __init__(self, preview_controller, live_controller): def __init__(self, preview_controller, live_controller):
# Call the parent constructor # Call the parent constructor
Plugin.__init__(self, 'Images', '1.9.0', preview_controller, live_controller) Plugin.__init__(self, 'Images', '1.9.0', preview_controller, live_controller)
@ -104,9 +110,10 @@ class ImagePlugin(Plugin, PluginUtils):
self.preview_service_item=ImageServiceItem(preview_controller) self.preview_service_item=ImageServiceItem(preview_controller)
self.live_service_item=ImageServiceItem(live_controller) self.live_service_item=ImageServiceItem(live_controller)
def get_media_manager_item(self): def get_media_manager_item(self):
# Create the MediaManagerItem object # Create the MediaManagerItem object
self.MediaManagerItem = MediaManagerItem(self.icon, 'Images') self.MediaManagerItem = MediaManagerItem(self, self.icon, 'Images')
# Add a toolbar # Add a toolbar
self.MediaManagerItem.addToolbar() self.MediaManagerItem.addToolbar()
# Create buttons for the toolbar # Create buttons for the toolbar
@ -133,29 +140,29 @@ class ImagePlugin(Plugin, PluginUtils):
self.ImageListView.uniformItemSizes=True self.ImageListView.uniformItemSizes=True
self.ImageListData=ListWithPreviews() self.ImageListData=ListWithPreviews()
self.ImageListView.setModel(self.ImageListData) self.ImageListView.setModel(self.ImageListData)
self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591)) self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
self.ImageListView.setObjectName("ImageListView") self.ImageListView.setObjectName("ImageListView")
self.MediaManagerItem.PageLayout.addWidget(self.ImageListView) self.MediaManagerItem.PageLayout.addWidget(self.ImageListView)
#define and add the context menu #define and add the context menu
self.ImageListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.ImageListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.ImageListView.addAction(self.add_to_context_menu(self.ImageListView, ':/system/system_preview.png', "&Preview Image", self.onImagePreviewClick)) self.ImageListView.addAction(self.add_to_context_menu(self.ImageListView, ':/system/system_preview.png', "&Preview Image", self.onImagePreviewClick))
self.ImageListView.addAction(self.add_to_context_menu(self.ImageListView, ':/system/system_live.png', "&Show Live", self.onImageLiveClick)) self.ImageListView.addAction(self.add_to_context_menu(self.ImageListView, ':/system/system_live.png', "&Show Live", self.onImageLiveClick))
self.ImageListView.addAction(self.add_to_context_menu(self.ImageListView, ':/system/system_add.png', "&Add to Service", self.onImageAddClick)) self.ImageListView.addAction(self.add_to_context_menu(self.ImageListView, ':/system/system_add.png', "&Add to Service", self.onImageAddClick))
self.ImageListPreview = QtGui.QWidget() self.ImageListPreview = QtGui.QWidget()
self.MediaManagerItem.PageLayout.addWidget(self.ImageListPreview) self.MediaManagerItem.PageLayout.addWidget(self.ImageListPreview)
self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591)) self.ImageListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
return self.MediaManagerItem return self.MediaManagerItem
def initialise(self): def initialise(self):
log.info("Plugin Initialising") log.info("Plugin Initialising")
list = self._load_display_list() list = self._load_display_list()
self._load_image_list(list) self._load_image_list(list)
log.info("Done") log.info("Done")
def onImagesNewClick(self): def onImagesNewClick(self):
@ -164,19 +171,19 @@ class ImagePlugin(Plugin, PluginUtils):
if len(files) > 0: if len(files) > 0:
self._load_image_list(files) self._load_image_list(files)
self._save_last_directory(files[0]) self._save_last_directory(files[0])
self._save_display_list(self.ImageListData.get_file_list()) self._save_display_list(self.ImageListData.get_file_list())
def _load_image_list(self, list): def _load_image_list(self, list):
for f in list: for f in list:
self.ImageListData.addRow(f) self.ImageListData.addRow(f)
def onImageDeleteClick(self): def onImageDeleteClick(self):
indexes=self.ImageListView.selectedIndexes() indexes=self.ImageListView.selectedIndexes()
for i in indexes: for i in indexes:
cr = i.row() cr = i.row()
self.ImageListData.removeRow(int(cr)) self.ImageListData.removeRow(int(cr))
self._save_display_list(self.ImageListData.get_file_list()) self._save_display_list(self.ImageListData.get_file_list())
def onImageClick(self, where): def onImageClick(self, where):
cr = self.ImageListView.currentRow() cr = self.ImageListView.currentRow()
@ -184,9 +191,10 @@ class ImagePlugin(Plugin, PluginUtils):
log.info("Click %s:%s"%(str(where), filename)) log.info("Click %s:%s"%(str(where), filename))
where.add(filename) where.add(filename)
where.render() where.render()
def onImagePreviewClick(self): def onImagePreviewClick(self):
self.onImageClick(self.preview_service_item) self.onImageClick(self.preview_service_item)
def onImageLiveClick(self): def onImageLiveClick(self):
self.onImageClick(self.live_service_item) self.onImageClick(self.live_service_item)

View File

@ -26,6 +26,7 @@ from openlp.core.resources import *
from openlp.core.lib import Plugin, PluginUtils, MediaManagerItem from openlp.core.lib import Plugin, PluginUtils, MediaManagerItem
class PresentationPlugin(Plugin, PluginUtils): class PresentationPlugin(Plugin, PluginUtils):
def __init__(self): def __init__(self):
# Call the parent constructor # Call the parent constructor
Plugin.__init__(self, 'Presentations', '1.9.0') Plugin.__init__(self, 'Presentations', '1.9.0')
@ -35,10 +36,9 @@ class PresentationPlugin(Plugin, PluginUtils):
self.icon.addPixmap(QtGui.QPixmap(':/media/media_presentation.png'), self.icon.addPixmap(QtGui.QPixmap(':/media/media_presentation.png'),
QtGui.QIcon.Normal, QtGui.QIcon.Off) QtGui.QIcon.Normal, QtGui.QIcon.Off)
def get_media_manager_item(self): def get_media_manager_item(self):
# Create the MediaManagerItem object # Create the MediaManagerItem object
self.MediaManagerItem = MediaManagerItem(self.icon, 'Presentations') self.MediaManagerItem = MediaManagerItem(self, self.icon, 'Presentations')
# Add a toolbar # Add a toolbar
self.MediaManagerItem.addToolbar() self.MediaManagerItem.addToolbar()
# Create buttons for the toolbar # Create buttons for the toolbar
@ -66,50 +66,50 @@ class PresentationPlugin(Plugin, PluginUtils):
self.PresentationListView.setColumnHidden(0, True) self.PresentationListView.setColumnHidden(0, True)
self.PresentationListView.setColumnWidth(1, 275) self.PresentationListView.setColumnWidth(1, 275)
self.PresentationListView.setShowGrid(False) self.PresentationListView.setShowGrid(False)
self.PresentationListView.setSortingEnabled(False) self.PresentationListView.setSortingEnabled(False)
self.PresentationListView.setAlternatingRowColors(True) self.PresentationListView.setAlternatingRowColors(True)
self.PresentationListView.setHorizontalHeaderLabels(QtCore.QStringList(["","Name"])) self.PresentationListView.setHorizontalHeaderLabels(QtCore.QStringList(["","Name"]))
self.PresentationListView.setGeometry(QtCore.QRect(10, 100, 256, 591)) self.PresentationListView.setGeometry(QtCore.QRect(10, 100, 256, 591))
self.PresentationListView.setObjectName("PresentationListView") self.PresentationListView.setObjectName("PresentationListView")
self.PresentationListView.setAlternatingRowColors(True) self.PresentationListView.setAlternatingRowColors(True)
self.MediaManagerItem.PageLayout.addWidget(self.PresentationListView) self.MediaManagerItem.PageLayout.addWidget(self.PresentationListView)
#define and add the context menu #define and add the context menu
self.PresentationListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu) self.PresentationListView.setContextMenuPolicy(QtCore.Qt.ActionsContextMenu)
self.PresentationListView.addAction(self.add_to_context_menu(self.PresentationListView, ':/system/system_preview.png', "&Preview Presentation", self.onPresentationPreviewClick)) self.PresentationListView.addAction(self.add_to_context_menu(self.PresentationListView, ':/system/system_preview.png', "&Preview Presentation", self.onPresentationPreviewClick))
self.PresentationListView.addAction(self.add_to_context_menu(self.PresentationListView, ':/system/system_live.png', "&Show Live", self.onPresentationLiveClick)) self.PresentationListView.addAction(self.add_to_context_menu(self.PresentationListView, ':/system/system_live.png', "&Show Live", self.onPresentationLiveClick))
self.PresentationListView.addAction(self.add_to_context_menu(self.PresentationListView, ':/system/system_add.png', "&Add to Service", self.onPresentationAddClick)) self.PresentationListView.addAction(self.add_to_context_menu(self.PresentationListView, ':/system/system_add.png', "&Add to Service", self.onPresentationAddClick))
return self.MediaManagerItem return self.MediaManagerItem
def initialise(self): def initialise(self):
list = self._load_display_list() list = self._load_display_list()
self._load_presentation_list(list) self._load_presentation_list(list)
def onPresentationLoadClick(self): def onPresentationLoadClick(self):
files = QtGui.QFileDialog.getOpenFileNames(None, "Select Presentation(s)", self._get_last_dir(), "Images (*.ppt *.pps *.odi)") files = QtGui.QFileDialog.getOpenFileNames(None, "Select Presentation(s)", self._get_last_dir(), "Images (*.ppt *.pps *.odi)")
if len(files) > 0: if len(files) > 0:
self._load_presentation_list(files) self._load_presentation_list(files)
self._save_last_directory(files[0]) self._save_last_directory(files[0])
self._save_display_list(self.PresentationListView) self._save_display_list(self.PresentationListView)
def _load_presentation_list(self, list): def _load_presentation_list(self, list):
for f in list: for f in list:
fl , nm = os.path.split(str(f)) fl , nm = os.path.split(str(f))
c = self.PresentationListView.rowCount() c = self.PresentationListView.rowCount()
self.PresentationListView.setRowCount(c+1) self.PresentationListView.setRowCount(c+1)
twi = QtGui.QTableWidgetItem(str(f)) twi = QtGui.QTableWidgetItem(str(f))
self.PresentationListView.setItem(c , 0, twi) self.PresentationListView.setItem(c , 0, twi)
twi = QtGui.QTableWidgetItem(str(nm)) twi = QtGui.QTableWidgetItem(str(nm))
self.PresentationListView.setItem(c , 1, twi) self.PresentationListView.setItem(c , 1, twi)
self.PresentationListView.setRowHeight(c, 20) self.PresentationListView.setRowHeight(c, 20)
def onPresentationDeleteClick(self): def onPresentationDeleteClick(self):
cr = self.PresentationListView.currentRow() cr = self.PresentationListView.currentRow()
self.PresentationListView.removeRow(int(cr)) self.PresentationListView.removeRow(int(cr))
self._save_display_list(self.PresentationListView) self._save_display_list(self.PresentationListView)
def onPresentationPreviewClick(self): def onPresentationPreviewClick(self):
pass pass

View File

@ -28,9 +28,11 @@ from forms import EditSongForm, OpenLPImportForm, OpenSongImportForm, \
from openlp.plugins.songs.lib import SongManager, SongsTab from openlp.plugins.songs.lib import SongManager, SongsTab
class SongsPlugin(Plugin, PluginUtils): class SongsPlugin(Plugin, PluginUtils):
global log global log
log=logging.getLogger("SongsPlugin") log=logging.getLogger("SongsPlugin")
log.info("Song Plugin loaded") log.info("Song Plugin loaded")
def __init__(self): def __init__(self):
# Call the parent constructor # Call the parent constructor
Plugin.__init__(self, 'Songs', '1.9.0') Plugin.__init__(self, 'Songs', '1.9.0')
@ -49,7 +51,7 @@ class SongsPlugin(Plugin, PluginUtils):
def get_media_manager_item(self): def get_media_manager_item(self):
# Create the MediaManagerItem object # Create the MediaManagerItem object
self.MediaManagerItem = MediaManagerItem(self.icon, 'Songs') self.MediaManagerItem = MediaManagerItem(self, self.icon, 'Songs')
# Add a toolbar # Add a toolbar
self.MediaManagerItem.addToolbar() self.MediaManagerItem.addToolbar()
# Create buttons for the toolbar # Create buttons for the toolbar

View File

@ -25,6 +25,7 @@ from openlp.core.lib import Plugin, PluginUtils, MediaManagerItem, SettingsTab
from openlp.plugins.videos.lib import VideoTab from openlp.plugins.videos.lib import VideoTab
class VideoPlugin(Plugin, PluginUtils): class VideoPlugin(Plugin, PluginUtils):
def __init__(self): def __init__(self):
# Call the parent constructor # Call the parent constructor
Plugin.__init__(self, 'Videos', '1.9.0') Plugin.__init__(self, 'Videos', '1.9.0')
@ -36,12 +37,11 @@ class VideoPlugin(Plugin, PluginUtils):
def get_settings_tab(self): def get_settings_tab(self):
self.VideosTab = VideoTab() self.VideosTab = VideoTab()
return self.VideosTab return self.VideosTab
def get_media_manager_item(self): def get_media_manager_item(self):
# Create the MediaManagerItem object # Create the MediaManagerItem object
self.MediaManagerItem = MediaManagerItem(self.icon, 'Videos') self.MediaManagerItem = MediaManagerItem(self, self.icon, 'Videos')
# Add a toolbar # Add a toolbar
self.MediaManagerItem.addToolbar() self.MediaManagerItem.addToolbar()
# Create buttons for the toolbar # Create buttons for the toolbar