diff --git a/openlp/core/lib/settingsmanager.py b/openlp/core/lib/settingsmanager.py
index 148fbd40b..944f4161c 100644
--- a/openlp/core/lib/settingsmanager.py
+++ b/openlp/core/lib/settingsmanager.py
@@ -45,7 +45,6 @@ class SettingsManager(object):
else:
self.mainwindow_left = mainwindow_docbars
self.mainwindow_right = mainwindow_docbars
-
self.slidecontroller = (self.width - (
self.mainwindow_left + self.mainwindow_right) - 100 ) / 2
self.slidecontroller_image = self.slidecontroller - 50
diff --git a/openlp/core/ui/mainwindow.py b/openlp/core/ui/mainwindow.py
index 81ac48fe3..c725948a7 100644
--- a/openlp/core/ui/mainwindow.py
+++ b/openlp/core/ui/mainwindow.py
@@ -84,6 +84,7 @@ class Ui_MainWindow(object):
MainWindow.setCentralWidget(self.MainContent)
self.ControlSplitter = QtGui.QSplitter(self.MainContent)
self.ControlSplitter.setOrientation(QtCore.Qt.Horizontal)
+ self.ControlSplitter.setOpaqueResize(False)
self.ControlSplitter.setObjectName(u'ControlSplitter')
self.MainContentLayout.addWidget(self.ControlSplitter)
# Create slide controllers
@@ -305,8 +306,11 @@ class Ui_MainWindow(object):
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def trackSplitter(self, tab, pos):
- #print tab, pos
- pass
+ """
+ Splitter between the Preview and Live Controllers.
+ """
+ self.LiveController.widthChanged()
+ self.PreviewController.widthChanged()
def retranslateUi(self, MainWindow):
"""
diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py
index bccc85587..4ec414a80 100644
--- a/openlp/core/ui/slidecontroller.py
+++ b/openlp/core/ui/slidecontroller.py
@@ -108,14 +108,17 @@ class SlideController(QtGui.QWidget):
if self.isLive:
self.TypeLabel.setText(u'%s' %
self.trUtf8(u'Live'))
+ self.split = 1
else:
self.TypeLabel.setText(u'%s' %
self.trUtf8(u'Preview'))
+ self.split = 0
self.TypeLabel.setAlignment(QtCore.Qt.AlignCenter)
self.PanelLayout.addWidget(self.TypeLabel)
# Splitter
self.Splitter = QtGui.QSplitter(self.Panel)
self.Splitter.setOrientation(QtCore.Qt.Vertical)
+ self.Splitter.setOpaqueResize(False)
self.PanelLayout.addWidget(self.Splitter)
# Actual controller section
self.Controller = QtGui.QWidget(self.Splitter)
@@ -136,6 +139,7 @@ class SlideController(QtGui.QWidget):
self.PreviewListWidget.setObjectName(u'PreviewListWidget')
self.PreviewListWidget.setEditTriggers(
QtGui.QAbstractItemView.NoEditTriggers)
+ self.PreviewListWidget.setHorizontalScrollBarPolicy(QtCore.Qt.ScrollBarAlwaysOff)
self.ControllerLayout.addWidget(self.PreviewListWidget)
# Build the full toolbar
self.Toolbar = OpenLPToolbar(self)
@@ -195,7 +199,6 @@ class SlideController(QtGui.QWidget):
self.Toolbar.addToolbarButton(
u'Media Stop', u':/slides/media_playback_stop.png',
self.trUtf8(u'Start playing media'), self.onMediaStop)
-
self.ControllerLayout.addWidget(self.Toolbar)
# Build the Song Toolbar
if isLive:
@@ -273,6 +276,30 @@ class SlideController(QtGui.QWidget):
QtCore.SIGNAL(u'%s_last' % prefix), self.onSlideSelectedLast)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'%s_change' % prefix), self.onSlideChange)
+ QtCore.QObject.connect(self.Splitter,
+ QtCore.SIGNAL(u'splitterMoved(int, int)'), self.trackSplitter)
+
+ def widthChanged(self):
+ """
+ Handle changes of width from the splitter between the live and preview
+ controller. Event only issues when changes have finished
+ """
+ if not self.commandItem:
+ return
+ width = self.parent.ControlSplitter.sizes()[self.split]
+ height = width * self.parent.RenderManager.screen_ratio
+ self.PreviewListWidget.setColumnWidth(0, width)
+ for framenumber, frame in enumerate(self.commandItem.frames):
+ if frame[u'text']:
+ break
+ self.PreviewListWidget.setRowHeight(framenumber, height)
+
+
+ def trackSplitter(self, tab, pos):
+ """
+ Splitter between the slide list and the preview panel
+ """
+ pass
def onSongBarHandler(self):
request = self.sender().text()
@@ -403,14 +430,14 @@ class SlideController(QtGui.QWidget):
Display the slide number passed
"""
log.debug(u'displayServiceManagerItems Start')
+ width = self.parent.ControlSplitter.sizes()[self.split]
#Set pointing cursor when we have somthing to point at
self.PreviewListWidget.setCursor(QtCore.Qt.PointingHandCursor)
before = time.time()
self.serviceitem = serviceitem
self.PreviewListWidget.clear()
self.PreviewListWidget.setRowCount(0)
- self.PreviewListWidget.setColumnWidth(
- 0, self.settingsmanager.slidecontroller_image)
+ self.PreviewListWidget.setColumnWidth(0, width)
for framenumber, frame in enumerate(self.serviceitem.frames):
self.PreviewListWidget.setRowCount(
self.PreviewListWidget.rowCount() + 1)
@@ -424,8 +451,7 @@ class SlideController(QtGui.QWidget):
label.setScaledContents(True)
label.setPixmap(QtGui.QPixmap.fromImage(pixmap))
self.PreviewListWidget.setCellWidget(framenumber, 0, label)
- slide_height = self.settingsmanager.slidecontroller_image * \
- self.parent.RenderManager.screen_ratio
+ slide_height = width * self.parent.RenderManager.screen_ratio
else:
item.setText(frame[u'text'])
self.PreviewListWidget.setItem(framenumber, 0, item)
diff --git a/version.txt b/version.txt
index 2f5e065fd..213996cc7 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-1.9.0-664
+1.9.0-665