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