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