diff --git a/openlp/core/lib/mediamanageritem.py b/openlp/core/lib/mediamanageritem.py index 1f86dfe93..decea277c 100644 --- a/openlp/core/lib/mediamanageritem.py +++ b/openlp/core/lib/mediamanageritem.py @@ -257,7 +257,7 @@ class MediaManagerItem(QtGui.QWidget): raise NotImplementedError(u'MediaManagerItem.generateSlideData needs to be defined by the plugin') def onPreviewClick(self): - log.debug(self.PluginTextShort+u'Preview Requested') + log.debug(self.PluginTextShort+u' Preview Requested') service_item = ServiceItem(self.parent) service_item.addIcon(u':/media/media_'+self.PluginTextShort.lower()+u'.png') self.generateSlideData(service_item) diff --git a/openlp/core/ui/__init__.py b/openlp/core/ui/__init__.py index 48d1af59a..8fcef14ae 100644 --- a/openlp/core/ui/__init__.py +++ b/openlp/core/ui/__init__.py @@ -17,7 +17,7 @@ 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 """ -from slidecontroller import BaseToolbar +from slidecontroller import MasterToolbar from slidecontrollermanager import SlideControllerManager from maindisplay import MainDisplay from amendthemeform import AmendThemeForm @@ -33,5 +33,5 @@ from servicemanager import ServiceManager from thememanager import ThemeManager from mainwindow import MainWindow -__all__ = ['SplashScreen', 'AboutForm', 'SettingsForm', 'BaseToolbar' +__all__ = ['SplashScreen', 'AboutForm', 'SettingsForm', 'MasterToolbar' 'MainWindow', 'MainDisplay', 'SlideController', 'ServiceManager', 'ThemeManager', 'AmendThemeForm'] diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index dc3bb6625..afa4da931 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -78,7 +78,7 @@ class MainDisplay(QtGui.QWidget): def blankDisplay(self): if not self.displayBlank: self.displayBlank = True - self.display.setPixmap(self.blankFrame) + self.display.setPixmap(QtGui.QPixmap.fromImage(self.blankFrame)) else: self.displayBlank = False self.frameView(self.frame) diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py index e942ec3ea..7b56a09c8 100644 --- a/openlp/core/ui/mainwindow.py +++ b/openlp/core/ui/mainwindow.py @@ -205,7 +205,7 @@ class MainWindow(object): self.MediaManagerDock.setWindowIcon(icon) self.MediaManagerDock.setFloating(False) self.MediaManagerDock.setObjectName(u'MediaManagerDock') - self.MediaManagerDock.setMinimumWidth(250) + self.MediaManagerDock.setMinimumWidth(300) self.MediaManagerContents = QtGui.QWidget() self.MediaManagerContents.setObjectName(u'MediaManagerContents') self.MediaManagerLayout = QtGui.QHBoxLayout(self.MediaManagerContents) @@ -227,7 +227,7 @@ class MainWindow(object): self.ServiceManagerDock.setFeatures( QtGui.QDockWidget.AllDockWidgetFeatures) self.ServiceManagerDock.setObjectName(u'ServiceManagerDock') - self.ServiceManagerDock.setMinimumWidth(250) + self.ServiceManagerDock.setMinimumWidth(300) self.ServiceManagerContents = ServiceManager(self) self.ServiceManagerDock.setWidget(self.ServiceManagerContents) self.mainWindow.addDockWidget( diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 0863242fd..07137e2b7 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -33,16 +33,16 @@ class SlideList(QtGui.QTableWidget): if type(event) == QtGui.QKeyEvent: #here accept the event and do something if event.key() == QtCore.Qt.Key_Up: - self.parent.onSlideSelectedPrevious() + self.parent.BaseToolbar.onSlideSelectedPrevious() event.accept() elif event.key() == QtCore.Qt.Key_Down: - self.parent.onSlideSelectedNext() + self.parent.BaseToolbar.onSlideSelectedNext() event.accept() elif event.key() == QtCore.Qt.Key_PageUp: - self.parent.onSlideSelectedFirst() + self.parent.BaseToolbar.onSlideSelectedFirst() event.accept() elif event.key() == QtCore.Qt.Key_PageDown: - self.parent.onSlideSelectedLast() + self.parent.BaseToolbar.onSlideSelectedLast() event.accept() event.ignore() else: @@ -60,6 +60,7 @@ class SlideController(QtGui.QWidget): """ Set up the Slide Controller. """ + self.toolbarList = {} QtGui.QWidget.__init__(self, parent.mainWindow) self.isLive = isLive self.parent = parent @@ -90,7 +91,8 @@ class SlideController(QtGui.QWidget): self.PreviewListWidget.setObjectName(u'PreviewListWidget') self.ControllerLayout.addWidget(self.PreviewListWidget) # Plugin the Base Toolbar class - self.BaseToolbar = BaseToolbar(self.isLive) + self.BaseToolbar = MasterToolbar(self.isLive) + self.registerToolbar(u'master', self.BaseToolbar) self.Toolbar = self.BaseToolbar.getToolbar() self.ControllerLayout.addWidget(self.Toolbar) sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, @@ -137,16 +139,46 @@ class SlideController(QtGui.QWidget): self.BaseToolbar.SlidePreview = self.SlidePreview self.BaseToolbar.mainDisplay = self.parent.mainDisplay + def registerToolbar(self, handle,controller): + #store the handle name in lower case so no probems later + self.toolbarList[handle.lower()] = controller + + def retrieveToolbar(self, handle): + print handle + print self.toolbarList + try: + toolbar = self.toolbarList[handle.lower()] + except: + toolbar = self.toolbarList[u'master'] + toolbar.PreviewListWidget = self.PreviewListWidget + toolbar.SlidePreview = self.SlidePreview + toolbar.mainDisplay = self.parent.mainDisplay + print toolbar + return toolbar + def addServiceItem(self, item): + """ + helper method to pass item to correct toolbar + """ + self.BaseToolbar = self.retrieveToolbar(item.shortname) + self.ControllerLayout.removeWidget(self.Toolbar) + self.Toolbar = self.BaseToolbar.getToolbar() + self.ControllerLayout.addWidget(self.Toolbar) self.BaseToolbar.addServiceItem(item) def addServiceManagerItem(self, item, slideno): + """ + helper method to pass item to correct toolbar + """ self.BaseToolbar.addServiceManagerItem(item, slideno) -class BaseToolbar(object): - +class MasterToolbar(QtCore.QObject): + """ + Class from which all tollbars should extend + """ def __init__(self, isLive): self.Toolbar = None + QtCore.QObject.__init__(self) self.PreviewListWidget = QtGui.QListWidget() self.isLive = isLive self.defineToolbar() @@ -156,7 +188,6 @@ class BaseToolbar(object): def defineToolbar(self): # Controller toolbar - #self.Toolbar = OpenLPToolbar(self.Controller) self.Toolbar = OpenLPToolbar(self) sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) @@ -171,11 +202,11 @@ class BaseToolbar(object): u':/slides/slide_first.png', translate(u'SlideController', u'Move to first'), self.onSlideSelectedFirst) - self.Toolbar.addToolbarButton(u'Last Slide', + self.Toolbar.addToolbarButton(u'Previous Slide', u':/slides/slide_previous.png', translate(u'SlideController', u'Move to previous'), self.onSlideSelectedPrevious) - self.Toolbar.addToolbarButton(u'First Slide', + self.Toolbar.addToolbarButton(u'Next Slide', u':/slides/slide_next.png', translate(u'SlideController', u'Move to next'), self.onSlideSelectedNext) @@ -221,7 +252,7 @@ class BaseToolbar(object): """ Go to the last slide. """ - self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount()) + self.PreviewListWidget.selectRow(self.PreviewListWidget.rowCount() - 1) self.onSlideSelected() def onBlankScreen(self): @@ -244,7 +275,7 @@ class BaseToolbar(object): if self.isLive: self.mainDisplay.frameView(frame) - def addServiceItem(self, serviceitem, slideno= 1): + def addServiceItem(self, serviceitem, slideno = 1): """ Loads a ServiceItem into the system from plugins Display the first slide diff --git a/openlp/plugins/images/lib/imageslidecontroller.py b/openlp/plugins/images/lib/imageslidecontroller.py index 008f25b19..007407ac5 100644 --- a/openlp/plugins/images/lib/imageslidecontroller.py +++ b/openlp/plugins/images/lib/imageslidecontroller.py @@ -22,22 +22,19 @@ import os from PyQt4 import QtCore, QtGui from openlp.core.lib import OpenLPToolbar, translate -from openlp.core.ui.slidecontroller import BaseToolbar +from openlp.core.ui.slidecontroller import MasterToolbar -class ImageToolbar(BaseToolbar): +class ImageToolbar(MasterToolbar): def __init__(self, isLive): + MasterToolbar.__init__(self, isLive) self.Toolbar = None - self.PreviewListView = QtGui.QListWidget() self.isLive = isLive self.defineToolbar() - def getToolbar(self): - return self.Toolbar - def defineToolbar(self): # Controller toolbar - #self.Toolbar = OpenLPToolbar(self.Controller) + self.Toolbar = OpenLPToolbar(self) sizeToolbarPolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) sizeToolbarPolicy.setHorizontalStretch(0) @@ -49,11 +46,11 @@ class ImageToolbar(BaseToolbar): u':/slides/slide_first.png', translate(u'SlideController', u'Move to first'), self.onSlideSelectedFirst) - self.Toolbar.addToolbarButton(u'Last Slide', + self.Toolbar.addToolbarButton(u'Previous Slide', u':/slides/slide_previous.png', translate(u'SlideController', u'Move to previous'), self.onSlideSelectedPrevious) - self.Toolbar.addToolbarButton(u'First Slide', + self.Toolbar.addToolbarButton(u'Next Slide', u':/slides/slide_next.png', translate(u'SlideController', u'Move to next'), self.onSlideSelectedNext) @@ -69,24 +66,23 @@ class ImageToolbar(BaseToolbar): self.onBlankScreen) self.Toolbar.addSeparator() self.Toolbar.addToolbarButton(u'Start Loop', - u':/slides/slide_last.png', + u':/media/media_time.png', translate(u'SlideController', u'Start continuous loop'), self.onStartLoop) self.Toolbar.addToolbarButton(u'Stop Loop', - u':/slides/slide_last.png', + u':/media/media_stop.png', translate(u'SlideController', u'Start continuous loop'), self.onStopLoop) self.Toolbar.setSizePolicy(sizeToolbarPolicy) - self.ControllerLayout.addWidget(self.Toolbar) def onStartLoop(self): """ Go to the last slide. """ - pass + print "onStartLoop" def onStopLoop(self): """ Go to the last slide. """ - pass + print "onStopLoop" diff --git a/openlp/plugins/images/lib/mediaitem.py b/openlp/plugins/images/lib/mediaitem.py index 60d7a3d59..e0ef07260 100644 --- a/openlp/plugins/images/lib/mediaitem.py +++ b/openlp/plugins/images/lib/mediaitem.py @@ -54,10 +54,9 @@ class ImageMediaItem(MediaManagerItem): # be instanced by the base MediaManagerItem self.ListViewWithDnD_class = ImageListView MediaManagerItem.__init__(self, parent, icon, title) - #create and install our own slide controllers -# live_controller = ImageSlideController(self.parent.slideManager.parent, True) -# preview_controller = ImageSlideController(self.parent.slideManager.parent) -# self.parent.slideManager.add_controllers(u'image', preview_controller, live_controller) + #create and install our own slide controller toolbar + imageToolbar = ImageToolbar(True) + parent.live_controller.registerToolbar(self.ConfigSection, imageToolbar) def initialise(self): self.ListView.setSelectionMode(QtGui.QAbstractItemView.ExtendedSelection) diff --git a/resources/images/media_verse.png b/resources/images/media_bible.png similarity index 100% rename from resources/images/media_verse.png rename to resources/images/media_bible.png diff --git a/resources/images/media_stop.png b/resources/images/media_stop.png new file mode 100644 index 000000000..5b4c488bd Binary files /dev/null and b/resources/images/media_stop.png differ diff --git a/resources/images/media_time.png b/resources/images/media_time.png new file mode 100644 index 000000000..77ba33c8c Binary files /dev/null and b/resources/images/media_time.png differ diff --git a/resources/images/openlp-2.qrc b/resources/images/openlp-2.qrc index 62151f185..0571a70d5 100644 --- a/resources/images/openlp-2.qrc +++ b/resources/images/openlp-2.qrc @@ -86,8 +86,10 @@ media_presentation.png media_image.png media_song.png - media_verse.png + media_bible.png media_video.png + media_time.png + media_stop.png messagebox_critical.png