From 50818a63119c476c68b7ec8bdea2f4ac6538a3dd Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 4 Mar 2011 16:21:50 +0100 Subject: [PATCH 1/4] set 'Show Display' visible after changing the monitor setup --- openlp/core/ui/slidecontroller.py | 38 +++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 8d612676b..f6d0e98f5 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -32,7 +32,7 @@ from PyQt4.phonon import Phonon from openlp.core.lib import OpenLPToolbar, Receiver, resize_image, \ ItemCapabilities, translate -from openlp.core.lib.ui import UiStrings, shortcut_action +from openlp.core.lib.ui import icon_action, UiStrings, shortcut_action from openlp.core.ui import HideMode, MainDisplay log = logging.getLogger(__name__) @@ -146,34 +146,33 @@ class SlideController(QtGui.QWidget): u':/slides/slide_next.png', translate('OpenLP.SlideController', 'Move to next'), self.onSlideSelectedNext) + self.toolbar.addToolbarSeparator(u'Close Separator') if self.isLive: - self.toolbar.addToolbarSeparator(u'Close Separator') self.hideMenu = QtGui.QToolButton(self.toolbar) self.hideMenu.setText(translate('OpenLP.SlideController', 'Hide')) self.hideMenu.setPopupMode(QtGui.QToolButton.MenuButtonPopup) self.toolbar.addToolbarWidget(u'Hide Menu', self.hideMenu) self.hideMenu.setMenu(QtGui.QMenu( translate('OpenLP.SlideController', 'Hide'), self.toolbar)) - self.blankScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_blank.png'), - translate('OpenLP.SlideController', - 'Blank Screen'), self.hideMenu) - self.blankScreen.setCheckable(True) - self.themeScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_theme.png'), - translate('OpenLP.SlideController', - 'Blank to Theme'), self.hideMenu) - self.themeScreen.setCheckable(True) + self.blankScreen = icon_action(self.hideMenu, u'Blank Screen', + u':/slides/slide_blank.png', False) + self.blankScreen.setText( + translate('OpenLP.SlideController', 'Blank Screen')) + self.themeScreen = icon_action(self.hideMenu, u'Blank Theme', + u':/slides/slide_theme.png', False) + self.themeScreen.setText( + translate('OpenLP.SlideController', 'Blank to Theme')) + self.desktopScreen = icon_action(self.hideMenu, u'Desktop Screen', + u':/slides/slide_desktop.png', False) + self.desktopScreen.setText( + translate('OpenLP.SlideController', 'Show Desktop')) + self.desktopScreen.setVisible(False) self.hideMenu.setDefaultAction(self.blankScreen) self.hideMenu.menu().addAction(self.blankScreen) self.hideMenu.menu().addAction(self.themeScreen) + self.hideMenu.menu().addAction(self.desktopScreen) if self.screens.display_count > 1: - self.desktopScreen = QtGui.QAction(QtGui.QIcon( - u':/slides/slide_desktop.png'), - translate('OpenLP.SlideController', - 'Show Desktop'), self.hideMenu) - self.hideMenu.menu().addAction(self.desktopScreen) - self.desktopScreen.setCheckable(True) + self.desktopScreen.setVisible(True) QtCore.QObject.connect(self.desktopScreen, QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) self.toolbar.addToolbarSeparator(u'Loop Separator') @@ -195,7 +194,6 @@ class SlideController(QtGui.QWidget): self.delaySpinBox.setToolTip(translate('OpenLP.SlideController', 'Delay between slides in seconds')) else: - self.toolbar.addToolbarSeparator(u'Close Separator') self.toolbar.addToolbarButton( # Does not need translating - control string. u'Go Live', u':/general/general_live.png', @@ -411,6 +409,8 @@ class SlideController(QtGui.QWidget): Settings dialog has changed the screen size of adjust output and screen previews. """ + if hasattr(self, u'desktopScreen'): + self.desktopScreen.setVisible(self.screens.display_count > 1) # rebuild display as screen size changed self.display = MainDisplay(self, self.screens, self.isLive) self.display.imageManager = self.parent.renderManager.image_manager From 9ae56fa75459cd236337a1caa05101b321d3265b Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Fri, 4 Mar 2011 16:31:34 +0100 Subject: [PATCH 2/4] clean up --- openlp/core/ui/slidecontroller.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index f6d0e98f5..e93d9ff68 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -114,8 +114,7 @@ class SlideController(QtGui.QWidget): self.previewListWidget = SlideList(self) self.previewListWidget.setColumnCount(1) self.previewListWidget.horizontalHeader().setVisible(False) - self.previewListWidget.setColumnWidth( - 0, self.controller.width()) + self.previewListWidget.setColumnWidth(0, self.controller.width()) self.previewListWidget.isLive = self.isLive self.previewListWidget.setObjectName(u'PreviewListWidget') self.previewListWidget.setSelectionBehavior(1) @@ -166,15 +165,11 @@ class SlideController(QtGui.QWidget): u':/slides/slide_desktop.png', False) self.desktopScreen.setText( translate('OpenLP.SlideController', 'Show Desktop')) - self.desktopScreen.setVisible(False) + self.desktopScreen.setVisible(self.screens.display_count > 1) self.hideMenu.setDefaultAction(self.blankScreen) self.hideMenu.menu().addAction(self.blankScreen) self.hideMenu.menu().addAction(self.themeScreen) self.hideMenu.menu().addAction(self.desktopScreen) - if self.screens.display_count > 1: - self.desktopScreen.setVisible(True) - QtCore.QObject.connect(self.desktopScreen, - QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) self.toolbar.addToolbarSeparator(u'Loop Separator') self.toolbar.addToolbarButton( # Does not need translating - control string. @@ -224,8 +219,7 @@ class SlideController(QtGui.QWidget): if self.isLive: # Build the Song Toolbar self.songMenu = QtGui.QToolButton(self.toolbar) - self.songMenu.setText(translate('OpenLP.SlideController', - 'Go To')) + self.songMenu.setText(translate('OpenLP.SlideController', 'Go To')) self.songMenu.setPopupMode(QtGui.QToolButton.InstantPopup) self.toolbar.addToolbarWidget(u'Song Menu', self.songMenu) self.songMenu.setMenu(QtGui.QMenu( @@ -301,6 +295,8 @@ class SlideController(QtGui.QWidget): QtCore.SIGNAL(u'triggered(bool)'), self.onBlankDisplay) QtCore.QObject.connect(self.themeScreen, QtCore.SIGNAL(u'triggered(bool)'), self.onThemeDisplay) + QtCore.QObject.connect(self.desktopScreen, + QtCore.SIGNAL(u'triggered(bool)'), self.onHideDisplay) QtCore.QObject.connect(self.volumeSlider, QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) QtCore.QObject.connect(Receiver.get_receiver(), @@ -409,7 +405,7 @@ class SlideController(QtGui.QWidget): Settings dialog has changed the screen size of adjust output and screen previews. """ - if hasattr(self, u'desktopScreen'): + if self.isLive: self.desktopScreen.setVisible(self.screens.display_count > 1) # rebuild display as screen size changed self.display = MainDisplay(self, self.screens, self.isLive) From 632c1f8ade6a577defc8f7a2e8a950dcf8f5cdb0 Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sat, 5 Mar 2011 19:38:33 +0100 Subject: [PATCH 3/4] display 'Show Desktop' even with one screen --- openlp/core/ui/maindisplay.py | 11 ++++++----- openlp/core/ui/slidecontroller.py | 33 +++++++++++++------------------ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 5fd361268..47321eedf 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -319,7 +319,7 @@ class MainDisplay(DisplayWidget): Changes the volume of a running video """ log.debug(u'videoVolume %d' % volume) - vol = float(volume)/float(10) + vol = float(volume) / float(10) if self.phononActive: self.audio.setVolume(vol) else: @@ -335,7 +335,7 @@ class MainDisplay(DisplayWidget): # We are running a background theme self.override[u'theme'] = u'' self.override[u'video'] = True - vol = float(volume)/float(10) + vol = float(volume) / float(10) if isBackground or not self.usePhonon: js = u'show_video("init", "%s", %s, true); show_video("play");' % \ (videoPath.replace(u'\\', u'\\\\'), str(vol)) @@ -388,9 +388,10 @@ class MainDisplay(DisplayWidget): Receiver.send_message(u'openlp_process_events') # if was hidden keep it hidden if self.isLive: - self.setVisible(True) - if self.hideMode: - self.hideDisplay(self.hideMode) + if self.hideMode: + self.hideDisplay(self.hideMode) + else: + self.setVisible(True) preview = QtGui.QImage(self.screen[u'size'].width(), self.screen[u'size'].height(), QtGui.QImage.Format_ARGB32_Premultiplied) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 89d7ac162..0caa83e72 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -165,7 +165,6 @@ class SlideController(QtGui.QWidget): u':/slides/slide_desktop.png', False) self.desktopScreen.setText( translate('OpenLP.SlideController', 'Show Desktop')) - self.desktopScreen.setVisible(self.screens.display_count > 1) self.hideMenu.setDefaultAction(self.blankScreen) self.hideMenu.menu().addAction(self.blankScreen) self.hideMenu.menu().addAction(self.themeScreen) @@ -405,8 +404,6 @@ class SlideController(QtGui.QWidget): Settings dialog has changed the screen size of adjust output and screen previews. """ - if self.isLive: - self.desktopScreen.setVisible(self.screens.display_count > 1) # rebuild display as screen size changed self.display = MainDisplay(self, self.screens, self.isLive) self.display.imageManager = self.parent.renderManager.image_manager @@ -465,6 +462,9 @@ class SlideController(QtGui.QWidget): self.onSlideSelected() def receiveSpinDelay(self, value): + """ + Adjusts the value of the ``delaySpinBox`` to the given one. + """ self.delaySpinBox.setValue(int(value)) def enableToolBar(self, item): @@ -748,8 +748,7 @@ class SlideController(QtGui.QWidget): self.hideMenu.setDefaultAction(self.blankScreen) self.blankScreen.setChecked(checked) self.themeScreen.setChecked(False) - if self.screens.display_count > 1: - self.desktopScreen.setChecked(False) + self.desktopScreen.setChecked(False) if checked: Receiver.send_message(u'maindisplay_hide', HideMode.Blank) QtCore.QSettings().setValue( @@ -770,8 +769,7 @@ class SlideController(QtGui.QWidget): self.hideMenu.setDefaultAction(self.themeScreen) self.blankScreen.setChecked(False) self.themeScreen.setChecked(checked) - if self.screens.display_count > 1: - self.desktopScreen.setChecked(False) + self.desktopScreen.setChecked(False) if checked: Receiver.send_message(u'maindisplay_hide', HideMode.Theme) QtCore.QSettings().setValue( @@ -792,9 +790,6 @@ class SlideController(QtGui.QWidget): self.hideMenu.setDefaultAction(self.desktopScreen) self.blankScreen.setChecked(False) self.themeScreen.setChecked(False) - # On valid if more than 1 display - if self.screens.display_count <= 1: - return self.desktopScreen.setChecked(checked) if checked: Receiver.send_message(u'maindisplay_hide', HideMode.Screen) @@ -1099,15 +1094,15 @@ class SlideController(QtGui.QWidget): Used by command items which provide their own displays to reset the screen hide attributes """ + blank = None if self.blankScreen.isChecked: - self.blankScreen.setChecked(False) - self.hideMenu.setDefaultAction(self.blankScreen) + blank = self.blankScreen + if self.themeScreen.isChecked: + blank = self.themeScreen + if self.desktopScreen.isChecked: + blank = self.desktopScreen + if blank: + blank.setChecked(False) + self.hideMenu.setDefaultAction(blank) QtCore.QSettings().remove( self.parent.generalSettingsSection + u'/screen blank') - if self.themeScreen.isChecked: - self.themeScreen.setChecked(False) - self.hideMenu.setDefaultAction(self.themeScreen) - if self.screens.display_count > 1: - if self.desktopScreen.isChecked: - self.desktopScreen.setChecked(False) - self.hideMenu.setDefaultAction(self.desktopScreen) From 3b465ed22fb51845e4ce78d7060fa2ee8b1d758f Mon Sep 17 00:00:00 2001 From: Andreas Preikschat Date: Sun, 6 Mar 2011 16:29:25 +0100 Subject: [PATCH 4/4] fixed images being displayed for a short time, even when the desktop was hidden --- openlp/core/ui/maindisplay.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/openlp/core/ui/maindisplay.py b/openlp/core/ui/maindisplay.py index 47321eedf..f8bd99b81 100644 --- a/openlp/core/ui/maindisplay.py +++ b/openlp/core/ui/maindisplay.py @@ -233,9 +233,6 @@ class MainDisplay(DisplayWidget): image = self.imageManager.get_image_bytes(name) self.resetVideo() self.displayImage(image) - # show screen - if self.isLive: - self.setVisible(True) return self.preview() def displayImage(self, image): @@ -388,9 +385,9 @@ class MainDisplay(DisplayWidget): Receiver.send_message(u'openlp_process_events') # if was hidden keep it hidden if self.isLive: - if self.hideMode: - self.hideDisplay(self.hideMode) - else: + if self.hideMode: + self.hideDisplay(self.hideMode) + else: self.setVisible(True) preview = QtGui.QImage(self.screen[u'size'].width(), self.screen[u'size'].height(),