Cleanups and screen fixes

This commit is contained in:
Tim Bentley 2010-08-26 06:01:29 +01:00
parent 492389b715
commit adb757cd2f
6 changed files with 44 additions and 51 deletions

View File

@ -390,7 +390,6 @@ class GeneralTab(SettingsTab):
unicode(self.screens.current[u'size'].width())) unicode(self.screens.current[u'size'].width()))
self.overrideCheckBox.setChecked(settings.value(u'override position', self.overrideCheckBox.setChecked(settings.value(u'override position',
QtCore.QVariant(False)).toBool()) QtCore.QVariant(False)).toBool())
if self.overrideCheckBox.isChecked():
self.customXValueEdit.setText(settings.value(u'x position', self.customXValueEdit.setText(settings.value(u'x position',
QtCore.QVariant(self.screens.current[u'size'].x())).toString()) QtCore.QVariant(self.screens.current[u'size'].x())).toString())
self.customYValueEdit.setText(settings.value(u'y position', self.customYValueEdit.setText(settings.value(u'y position',
@ -401,15 +400,6 @@ class GeneralTab(SettingsTab):
self.customWidthValueEdit.setText( self.customWidthValueEdit.setText(
settings.value(u'width', QtCore.QVariant( settings.value(u'width', QtCore.QVariant(
self.screens.current[u'size'].width())).toString()) self.screens.current[u'size'].width())).toString())
else:
self.customXValueEdit.setText(
unicode(self.screens.current[u'size'].x()))
self.customYValueEdit.setText(
unicode(self.screens.current[u'size'].y()))
self.customHeightValueEdit.setText(
unicode(self.screens.current[u'size'].height()))
self.customWidthValueEdit.setText(
unicode(self.screens.current[u'size'].width()))
settings.endGroup() settings.endGroup()
self.customXValueEdit.setEnabled(self.overrideCheckBox.isChecked()) self.customXValueEdit.setEnabled(self.overrideCheckBox.isChecked())
self.customYValueEdit.setEnabled(self.overrideCheckBox.isChecked()) self.customYValueEdit.setEnabled(self.overrideCheckBox.isChecked())
@ -438,8 +428,6 @@ class GeneralTab(SettingsTab):
QtCore.QVariant(self.autoPreviewCheckBox.isChecked())) QtCore.QVariant(self.autoPreviewCheckBox.isChecked()))
settings.setValue(u'loop delay', settings.setValue(u'loop delay',
QtCore.QVariant(self.timeoutSpinBox.value())) QtCore.QVariant(self.timeoutSpinBox.value()))
Receiver.send_message(u'slidecontroller_live_spin_delay',
self.timeoutSpinBox.value())
settings.setValue(u'ccli number', settings.setValue(u'ccli number',
QtCore.QVariant(self.numberEdit.displayText())) QtCore.QVariant(self.numberEdit.displayText()))
settings.setValue(u'songselect username', settings.setValue(u'songselect username',
@ -459,15 +447,15 @@ class GeneralTab(SettingsTab):
settings.endGroup() settings.endGroup()
self.screens.display = self.displayOnMonitorCheck.isChecked() self.screens.display = self.displayOnMonitorCheck.isChecked()
# Monitor Number has changed. # Monitor Number has changed.
postUpdate = False
if self.screens.monitor_number != self.monitorNumber: if self.screens.monitor_number != self.monitorNumber:
self.screens.monitor_number = self.monitorNumber self.screens.monitor_number = self.monitorNumber
self.screens.set_current_display(self.monitorNumber) self.screens.set_current_display(self.monitorNumber)
Receiver.send_message(u'config_screen_changed') postUpdate = True
Receiver.send_message(u'config_updated')
# On save update the screens as well # On save update the screens as well
self.postSetUp() self.postSetUp(postUpdate)
def postSetUp(self): def postSetUp(self, postUpdate=False):
""" """
Apply settings after settings tab has loaded Apply settings after settings tab has loaded
""" """
@ -482,10 +470,13 @@ class GeneralTab(SettingsTab):
int(self.customHeightValueEdit.text())) int(self.customHeightValueEdit.text()))
if self.overrideCheckBox.isChecked(): if self.overrideCheckBox.isChecked():
self.screens.set_override_display() self.screens.set_override_display()
Receiver.send_message(u'config_screen_changed')
else: else:
self.screens.reset_current_display() self.screens.reset_current_display()
# Order is important so be carefull if you change
if self.overrideChanged:
Receiver.send_message(u'config_screen_changed') Receiver.send_message(u'config_screen_changed')
if postUpdate:
Receiver.send_message(u'config_updated')
self.overrideChanged = False self.overrideChanged = False
def onOverrideCheckBoxToggled(self, checked): def onOverrideCheckBoxToggled(self, checked):

View File

@ -80,6 +80,7 @@ class DisplayWidget(QtGui.QGraphicsView):
event.accept() event.accept()
elif event.key() == QtCore.Qt.Key_Escape: elif event.key() == QtCore.Qt.Key_Escape:
self.setVisible(False) self.setVisible(False)
self.videoStop()
event.accept() event.accept()
event.ignore() event.ignore()
else: else:
@ -103,7 +104,7 @@ class MainDisplay(DisplayWidget):
QtCore.SIGNAL(u'maindisplay_show'), self.showDisplay) QtCore.SIGNAL(u'maindisplay_show'), self.showDisplay)
def setup(self): def setup(self):
log.debug(u'Setup %s for %s ' % ( log.debug(u'Setup %s %s for %s ' % (self.isLive,
self.screens, self.screens.monitor_number)) self.screens, self.screens.monitor_number))
self.screen = self.screens.current self.screen = self.screens.current
self.setVisible(False) self.setVisible(False)
@ -205,6 +206,9 @@ class MainDisplay(DisplayWidget):
self.screen[u'size'].height()) self.screen[u'size'].height())
self.resetVideo() self.resetVideo()
self.displayImage(image) self.displayImage(image)
# show screen
if self.isLive:
self.setVisible(True)
def displayImage(self, image): def displayImage(self, image):
""" """
@ -238,6 +242,9 @@ class MainDisplay(DisplayWidget):
""" """
log.debug(u'videoPlay') log.debug(u'videoPlay')
self.frame.evaluateJavaScript(u'show_video("play");') self.frame.evaluateJavaScript(u'show_video("play");')
# show screen
if self.isLive:
self.setVisible(True)
def videoPause(self): def videoPause(self):
""" """
@ -283,7 +290,7 @@ class MainDisplay(DisplayWidget):
""" """
Generates a preview of the image displayed. Generates a preview of the image displayed.
""" """
log.debug(u'preview') log.debug(u'preview for %s', self.isLive)
# Wait for the fade to finish before geting the preview. # Wait for the fade to finish before geting the preview.
# Important otherwise preview will have incorrect text if at all ! # Important otherwise preview will have incorrect text if at all !
if self.serviceItem.themedata and \ if self.serviceItem.themedata and \
@ -302,6 +309,9 @@ class MainDisplay(DisplayWidget):
painter.setRenderHint(QtGui.QPainter.Antialiasing) painter.setRenderHint(QtGui.QPainter.Antialiasing)
self.frame.render(painter) self.frame.render(painter)
painter.end() painter.end()
# Make display show up if in single screen mode
if self.isLive:
self.setVisible(True)
# save preview for debugging # save preview for debugging
if log.isEnabledFor(logging.DEBUG): if log.isEnabledFor(logging.DEBUG):
preview.save(u'temp.png', u'png') preview.save(u'temp.png', u'png')

View File

@ -44,9 +44,9 @@ class ScreenList(object):
self.override = None self.override = None
self.screen_list = [] self.screen_list = []
self.display_count = 0 self.display_count = 0
#actual display number # actual display number
self.current_display = 0 self.current_display = 0
#save config display number # save config display number
self.monitor_number = 0 self.monitor_number = 0
def add_screen(self, screen): def add_screen(self, screen):

View File

@ -779,7 +779,7 @@ class ServiceManager(QtGui.QWidget):
Rebuild the service list as things have changed and a Rebuild the service list as things have changed and a
repaint is the easiest way to do this. repaint is the easiest way to do this.
""" """
#force reset of renderer as theme data has changed # force reset of renderer as theme data has changed
self.parent.RenderManager.themedata = None self.parent.RenderManager.themedata = None
if self.serviceItems: if self.serviceItems:
tempServiceItems = self.serviceItems tempServiceItems = self.serviceItems
@ -789,8 +789,8 @@ class ServiceManager(QtGui.QWidget):
for item in tempServiceItems: for item in tempServiceItems:
self.addServiceItem( self.addServiceItem(
item[u'service_item'], False, item[u'expanded']) item[u'service_item'], False, item[u'expanded'])
#Set to False as items may have changed rendering # Set to False as items may have changed rendering
#does not impact the saved song so True may also be valid # does not impact the saved song so True may also be valid
self.parent.serviceChanged(False, self.serviceName) self.parent.serviceChanged(False, self.serviceName)
def addServiceItem(self, item, rebuild=False, expand=True, replace=False): def addServiceItem(self, item, rebuild=False, expand=True, replace=False):

View File

@ -386,8 +386,6 @@ class SlideController(QtGui.QWidget):
QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem) QtCore.SIGNAL(u'config_updated'), self.refreshServiceItem)
QtCore.QObject.connect(Receiver.get_receiver(), QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged) QtCore.SIGNAL(u'config_screen_changed'), self.screenSizeChanged)
QtCore.QObject.connect(Receiver.get_receiver(),
QtCore.SIGNAL(u'%s_slide_cache' % self.typePrefix), self.slideCache)
if self.isLive: if self.isLive:
QtCore.QObject.connect(self.volumeSlider, QtCore.QObject.connect(self.volumeSlider,
QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume) QtCore.SIGNAL(u'sliderReleased()'), self.mediaVolume)
@ -494,7 +492,7 @@ class SlideController(QtGui.QWidget):
if self.serviceItem.is_text() or self.serviceItem.is_image(): if self.serviceItem.is_text() or self.serviceItem.is_image():
item = self.serviceItem item = self.serviceItem
item.render() item.render()
self.addServiceManagerItem(item, self.selectedRow) self._processItem(item, self.selectedRow)
def addServiceItem(self, item): def addServiceItem(self, item):
""" """
@ -766,13 +764,6 @@ class SlideController(QtGui.QWidget):
% self.serviceItem.name.lower(), % self.serviceItem.name.lower(),
[self.serviceItem, self.isLive]) [self.serviceItem, self.isLive])
def slideCache(self, slide):
"""
Generate a slide cache item rendered and ready for use
in the background.
"""
self.serviceItem.get_rendered_frame(int(slide))
def onSlideSelected(self): def onSlideSelected(self):
""" """
Generate the preview when you click on a slide. Generate the preview when you click on a slide.
@ -817,6 +808,7 @@ class SlideController(QtGui.QWidget):
else: else:
label = self.PreviewListWidget.cellWidget( label = self.PreviewListWidget.cellWidget(
self.PreviewListWidget.currentRow(), 1) self.PreviewListWidget.currentRow(), 1)
if label:
self.SlidePreview.setPixmap(label.pixmap()) self.SlidePreview.setPixmap(label.pixmap())
def grabMainDisplay(self): def grabMainDisplay(self):