Update settings and minor cleanups

This commit is contained in:
Tim Bentley 2013-06-03 19:47:25 +01:00
parent 9160832e0a
commit 6e5588b7cf
3 changed files with 65 additions and 50 deletions

View File

@ -779,8 +779,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
""" """
We need to make sure, that the SlidePreview's size is correct. We need to make sure, that the SlidePreview's size is correct.
""" """
self.preview_controller.previewSizeChanged() self.preview_controller.preview_size_changed()
self.live_controller.previewSizeChanged() self.live_controller.preview_size_changed()
def on_settings_shortcuts_item_clicked(self): def on_settings_shortcuts_item_clicked(self):
""" """
@ -989,8 +989,8 @@ class MainWindow(QtGui.QMainWindow, Ui_MainWindow):
self.application.set_busy_cursor() self.application.set_busy_cursor()
self.image_manager.update_display() self.image_manager.update_display()
self.renderer.update_display() self.renderer.update_display()
self.preview_controller.screenSizeChanged() self.preview_controller.screen_size_changed()
self.live_controller.screenSizeChanged() self.live_controller.screen_size_changed()
self.setFocus() self.setFocus()
self.activateWindow() self.activateWindow()
self.application.set_normal_cursor() self.application.set_normal_cursor()

View File

@ -89,7 +89,7 @@ class SlideController(DisplayController):
Set up the Slide Controller. Set up the Slide Controller.
""" """
DisplayController.__init__(self, parent, is_live) DisplayController.__init__(self, parent, is_live)
Registry().register_function(u'bootstrap_post_set_up', self.screenSizeChanged) Registry().register_function(u'bootstrap_post_set_up', self.screen_size_changed)
self.screens = ScreenList() self.screens = ScreenList()
try: try:
self.ratio = float(self.screens.current[u'size'].width()) / float(self.screens.current[u'size'].height()) self.ratio = float(self.screens.current[u'size'].width()) / float(self.screens.current[u'size'].height())
@ -323,18 +323,18 @@ class SlideController(DisplayController):
self.slide_layout.insertWidget(0, self.preview_display) self.slide_layout.insertWidget(0, self.preview_display)
self.preview_display.hide() self.preview_display.hide()
# Actual preview screen # Actual preview screen
self.slidePreview = QtGui.QLabel(self) self.slide_preview = QtGui.QLabel(self)
sizePolicy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed) size_policy = QtGui.QSizePolicy(QtGui.QSizePolicy.Fixed, QtGui.QSizePolicy.Fixed)
sizePolicy.setHorizontalStretch(0) size_policy.setHorizontalStretch(0)
sizePolicy.setVerticalStretch(0) size_policy.setVerticalStretch(0)
sizePolicy.setHeightForWidth(self.slidePreview.sizePolicy().hasHeightForWidth()) size_policy.setHeightForWidth(self.slide_preview.sizePolicy().hasHeightForWidth())
self.slidePreview.setSizePolicy(sizePolicy) self.slide_preview.setSizePolicy(size_policy)
self.slidePreview.setFrameShape(QtGui.QFrame.Box) self.slide_preview.setFrameShape(QtGui.QFrame.Box)
self.slidePreview.setFrameShadow(QtGui.QFrame.Plain) self.slide_preview.setFrameShadow(QtGui.QFrame.Plain)
self.slidePreview.setLineWidth(1) self.slide_preview.setLineWidth(1)
self.slidePreview.setScaledContents(True) self.slide_preview.setScaledContents(True)
self.slidePreview.setObjectName(u'slidePreview') self.slide_preview.setObjectName(u'slide_preview')
self.slide_layout.insertWidget(0, self.slidePreview) self.slide_layout.insertWidget(0, self.slide_preview)
self.grid.addLayout(self.slide_layout, 0, 0, 1, 1) self.grid.addLayout(self.slide_layout, 0, 0, 1, 1)
if self.is_live: if self.is_live:
self.current_shortcut = u'' self.current_shortcut = u''
@ -519,10 +519,9 @@ class SlideController(DisplayController):
self.service_manager.next_item() self.service_manager.next_item()
self.keypress_loop = False self.keypress_loop = False
def screenSizeChanged(self): def screen_size_changed(self):
""" """
Settings dialog has changed the screen size of adjust output and Settings dialog has changed the screen size of adjust output and screen previews.
screen previews.
""" """
# rebuild display as screen size changed # rebuild display as screen size changed
if self.display: if self.display:
@ -538,14 +537,14 @@ class SlideController(DisplayController):
except ZeroDivisionError: except ZeroDivisionError:
self.ratio = 1 self.ratio = 1
self.media_controller.setup_display(self.display, False) self.media_controller.setup_display(self.display, False)
self.previewSizeChanged() self.preview_size_changed()
self.preview_display.setup() self.preview_display.setup()
service_item = ServiceItem() service_item = ServiceItem()
self.preview_display.web_view.setHtml(build_html(service_item, self.preview_display.screen, None, self.is_live, self.preview_display.web_view.setHtml(build_html(service_item, self.preview_display.screen, None, self.is_live,
plugins=self.plugin_manager.plugins)) plugins=self.plugin_manager.plugins))
self.media_controller.setup_display(self.preview_display, True) self.media_controller.setup_display(self.preview_display, True)
if self.service_item: if self.service_item:
self.refreshServiceItem() self.refresh_service_item()
def __addActionsToWidget(self, widget): def __addActionsToWidget(self, widget):
""" """
@ -556,7 +555,7 @@ class SlideController(DisplayController):
self.previousService, self.nextService, self.previousService, self.nextService,
self.escapeItem]) self.escapeItem])
def previewSizeChanged(self): def preview_size_changed(self):
""" """
Takes care of the SlidePreview's size. Is called when one of the the Takes care of the SlidePreview's size. Is called when one of the the
splitters is moved or when the screen size is changed. Note, that this splitters is moved or when the screen size is changed. Note, that this
@ -565,14 +564,14 @@ class SlideController(DisplayController):
if self.ratio < float(self.preview_frame.width()) / float(self.preview_frame.height()): if self.ratio < float(self.preview_frame.width()) / float(self.preview_frame.height()):
# We have to take the height as limit. # We have to take the height as limit.
max_height = self.preview_frame.height() - self.grid.margin() * 2 max_height = self.preview_frame.height() - self.grid.margin() * 2
self.slidePreview.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height)) self.slide_preview.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height))
self.preview_display.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height)) self.preview_display.setFixedSize(QtCore.QSize(max_height * self.ratio, max_height))
self.preview_display.screen = { self.preview_display.screen = {
u'size': self.preview_display.geometry()} u'size': self.preview_display.geometry()}
else: else:
# We have to take the width as limit. # We have to take the width as limit.
max_width = self.preview_frame.width() - self.grid.margin() * 2 max_width = self.preview_frame.width() - self.grid.margin() * 2
self.slidePreview.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio)) self.slide_preview.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
self.preview_display.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio)) self.preview_display.setFixedSize(QtCore.QSize(max_width, max_width / self.ratio))
self.preview_display.screen = { self.preview_display.screen = {
u'size': self.preview_display.geometry()} u'size': self.preview_display.geometry()}
@ -626,17 +625,16 @@ class SlideController(DisplayController):
""" """
self.slide_limits = Settings().value(self.main_window.advanced_settings_section + u'/slide limits') self.slide_limits = Settings().value(self.main_window.advanced_settings_section + u'/slide limits')
def enableToolBar(self, item): def enable_tool_bar(self, item):
""" """
Allows the toolbars to be reconfigured based on Controller Type Allows the toolbars to be reconfigured based on Controller Type and ServiceItem Type
and ServiceItem Type
""" """
if self.is_live: if self.is_live:
self.enableLiveToolBar(item) self.enable_live_tool_bar(item)
else: else:
self.enablePreviewToolBar(item) self.enable_preview_tool_bar(item)
def enableLiveToolBar(self, item): def enable_live_tool_bar(self, item):
""" """
Allows the live toolbar to be customised Allows the live toolbar to be customised
""" """
@ -665,7 +663,7 @@ class SlideController(DisplayController):
# See bug #791050 # See bug #791050
self.toolbar.show() self.toolbar.show()
def enablePreviewToolBar(self, item): def enable_preview_tool_bar(self, item):
""" """
Allows the Preview toolbar to be customised Allows the Preview toolbar to be customised
""" """
@ -684,15 +682,15 @@ class SlideController(DisplayController):
# See bug #791050 # See bug #791050
self.toolbar.show() self.toolbar.show()
def refreshServiceItem(self): def refresh_service_item(self):
""" """
Method to update the service item if the screen has changed Method to update the service item if the screen has changed
""" """
log.debug(u'refreshServiceItem live = %s' % self.is_live) log.debug(u'refresh_service_item live = %s' % self.is_live)
if self.service_item.is_text() or self.service_item.is_image(): if self.service_item.is_text() or self.service_item.is_image():
item = self.service_item item = self.service_item
item.render() item.render()
self._processItem(item, self.selected_row) self._process_item(item, self.selected_row)
def add_service_item(self, item): def add_service_item(self, item):
""" """
@ -705,14 +703,14 @@ class SlideController(DisplayController):
if self.song_edit: if self.song_edit:
slideno = self.selected_row slideno = self.selected_row
self.song_edit = False self.song_edit = False
self._processItem(item, slideno) self._process_item(item, slideno)
def replaceServiceManagerItem(self, item): def replaceServiceManagerItem(self, item):
""" """
Replacement item following a remote edit Replacement item following a remote edit
""" """
if item == self.service_item: if item == self.service_item:
self._processItem(item, self.preview_list_widget.currentRow()) self._process_item(item, self.preview_list_widget.currentRow())
def addServiceManagerItem(self, item, slideno): def addServiceManagerItem(self, item, slideno):
""" """
@ -731,7 +729,7 @@ class SlideController(DisplayController):
self.__checkUpdateSelectedSlide(slidenum) self.__checkUpdateSelectedSlide(slidenum)
self.slideSelected() self.slideSelected()
else: else:
self._processItem(item, slidenum) self._process_item(item, slidenum)
if self.is_live and item.auto_play_slides_loop and item.timed_slide_interval > 0: if self.is_live and item.auto_play_slides_loop and item.timed_slide_interval > 0:
self.play_slides_loop.setChecked(item.auto_play_slides_loop) self.play_slides_loop.setChecked(item.auto_play_slides_loop)
self.delay_spin_box.setValue(int(item.timed_slide_interval)) self.delay_spin_box.setValue(int(item.timed_slide_interval))
@ -741,7 +739,7 @@ class SlideController(DisplayController):
self.delay_spin_box.setValue(int(item.timed_slide_interval)) self.delay_spin_box.setValue(int(item.timed_slide_interval))
self.onPlaySlidesOnce() self.onPlaySlidesOnce()
def _processItem(self, service_item, slideno): def _process_item(self, service_item, slideno):
""" """
Loads a ServiceItem into the system from ServiceManager Loads a ServiceItem into the system from ServiceManager
Display the slide number passed Display the slide number passed
@ -829,10 +827,9 @@ class SlideController(DisplayController):
self.preview_list_widget.setVerticalHeaderLabels(text) self.preview_list_widget.setVerticalHeaderLabels(text)
if self.service_item.is_text(): if self.service_item.is_text():
self.preview_list_widget.resizeRowsToContents() self.preview_list_widget.resizeRowsToContents()
self.preview_list_widget.setColumnWidth(0, self.preview_list_widget.setColumnWidth(0, self.preview_list_widget.viewport().size().width())
self.preview_list_widget.viewport().size().width())
self.__updatePreviewSelection(slideno) self.__updatePreviewSelection(slideno)
self.enableToolBar(service_item) self.enable_tool_bar(service_item)
# Pass to display for viewing. # Pass to display for viewing.
# Postpone image build, we need to do this later to avoid the theme # Postpone image build, we need to do this later to avoid the theme
# flashing on the screen # flashing on the screen
@ -1062,7 +1059,7 @@ class SlideController(DisplayController):
QtCore.QTimer.singleShot(2.5, self.grab_maindisplay) QtCore.QTimer.singleShot(2.5, self.grab_maindisplay)
else: else:
self.slide_image = self.display.preview() self.slide_image = self.display.preview()
self.slidePreview.setPixmap(self.slide_image) self.slide_preview.setPixmap(self.slide_image)
self.slide_count += 1 self.slide_count += 1
def grab_maindisplay(self): def grab_maindisplay(self):
@ -1072,7 +1069,7 @@ class SlideController(DisplayController):
win_id = QtGui.QApplication.desktop().winId() win_id = QtGui.QApplication.desktop().winId()
rect = self.screens.current[u'size'] rect = self.screens.current[u'size']
win_image = QtGui.QPixmap.grabWindow(win_id, rect.x(), rect.y(), rect.width(), rect.height()) win_image = QtGui.QPixmap.grabWindow(win_id, rect.x(), rect.y(), rect.width(), rect.height())
self.slidePreview.setPixmap(win_image) self.slide_preview.setPixmap(win_image)
self.slide_image = win_image self.slide_image = win_image
def on_slide_selected_next_action(self, checked): def on_slide_selected_next_action(self, checked):
@ -1279,7 +1276,7 @@ class SlideController(DisplayController):
self.media_controller.video(self.controller_type, item, self.hide_mode()) self.media_controller.video(self.controller_type, item, self.hide_mode())
if not self.is_live: if not self.is_live:
self.preview_display.show() self.preview_display.show()
self.slidePreview.hide() self.slide_preview.hide()
def onMediaClose(self): def onMediaClose(self):
""" """
@ -1288,7 +1285,7 @@ class SlideController(DisplayController):
log.debug(u'SlideController onMediaClose') log.debug(u'SlideController onMediaClose')
self.media_controller.media_reset(self) self.media_controller.media_reset(self)
self.preview_display.hide() self.preview_display.hide()
self.slidePreview.show() self.slide_preview.show()
def _resetBlank(self): def _resetBlank(self):
""" """

View File

@ -86,6 +86,12 @@ class RemoteTab(SettingsTab):
self.stage_url.setObjectName(u'stage_url') self.stage_url.setObjectName(u'stage_url')
self.stage_url.setOpenExternalLinks(True) self.stage_url.setOpenExternalLinks(True)
self.http_setting_layout.addRow(self.stage_url_label, self.stage_url) self.http_setting_layout.addRow(self.stage_url_label, self.stage_url)
self.live_url_label = QtGui.QLabel(self.http_settings_group_box)
self.live_url_label.setObjectName(u'live_url_label')
self.live_url = QtGui.QLabel(self.http_settings_group_box)
self.live_url.setObjectName(u'live_url')
self.live_url.setOpenExternalLinks(True)
self.http_setting_layout.addRow(self.live_url_label, self.live_url)
self.left_layout.addWidget(self.http_settings_group_box) self.left_layout.addWidget(self.http_settings_group_box)
self.https_settings_group_box = QtGui.QGroupBox(self.left_column) self.https_settings_group_box = QtGui.QGroupBox(self.left_column)
self.https_settings_group_box.setCheckable(True) self.https_settings_group_box.setCheckable(True)
@ -116,6 +122,12 @@ class RemoteTab(SettingsTab):
self.stage_https_url.setObjectName(u'stage_https_url') self.stage_https_url.setObjectName(u'stage_https_url')
self.stage_https_url.setOpenExternalLinks(True) self.stage_https_url.setOpenExternalLinks(True)
self.https_settings_layout.addRow(self.stage_https_url_label, self.stage_https_url) self.https_settings_layout.addRow(self.stage_https_url_label, self.stage_https_url)
self.live_https_url_label = QtGui.QLabel(self.https_settings_group_box)
self.live_https_url_label.setObjectName(u'live_url_label')
self.live_https_url = QtGui.QLabel(self.https_settings_group_box)
self.live_https_url.setObjectName(u'live_https_url')
self.live_https_url.setOpenExternalLinks(True)
self.https_settings_layout.addRow(self.live_https_url_label, self.live_https_url)
self.left_layout.addWidget(self.https_settings_group_box) self.left_layout.addWidget(self.https_settings_group_box)
self.user_login_group_box = QtGui.QGroupBox(self.left_column) self.user_login_group_box = QtGui.QGroupBox(self.left_column)
self.user_login_group_box.setCheckable(True) self.user_login_group_box.setCheckable(True)
@ -163,6 +175,7 @@ class RemoteTab(SettingsTab):
self.port_label.setText(translate('RemotePlugin.RemoteTab', 'Port number:')) self.port_label.setText(translate('RemotePlugin.RemoteTab', 'Port number:'))
self.remote_url_label.setText(translate('RemotePlugin.RemoteTab', 'Remote URL:')) self.remote_url_label.setText(translate('RemotePlugin.RemoteTab', 'Remote URL:'))
self.stage_url_label.setText(translate('RemotePlugin.RemoteTab', 'Stage view URL:')) self.stage_url_label.setText(translate('RemotePlugin.RemoteTab', 'Stage view URL:'))
self.live_url_label.setText(translate('RemotePlugin.RemoteTab', 'Live view URL:'))
self.twelve_hour_check_box.setText(translate('RemotePlugin.RemoteTab', 'Display stage time in 12h format')) self.twelve_hour_check_box.setText(translate('RemotePlugin.RemoteTab', 'Display stage time in 12h format'))
self.android_app_group_box.setTitle(translate('RemotePlugin.RemoteTab', 'Android App')) self.android_app_group_box.setTitle(translate('RemotePlugin.RemoteTab', 'Android App'))
self.qr_description_label.setText(translate('RemotePlugin.RemoteTab', self.qr_description_label.setText(translate('RemotePlugin.RemoteTab',
@ -176,6 +189,7 @@ class RemoteTab(SettingsTab):
self.https_port_label.setText(self.port_label.text()) self.https_port_label.setText(self.port_label.text())
self.remote_https_url_label.setText(self.remote_url_label.text()) self.remote_https_url_label.setText(self.remote_url_label.text())
self.stage_https_url_label.setText(self.stage_url_label.text()) self.stage_https_url_label.setText(self.stage_url_label.text())
self.live_https_url_label.setText(self.live_url_label.text())
self.user_login_group_box.setTitle(translate('RemotePlugin.RemoteTab', 'User Authentication')) self.user_login_group_box.setTitle(translate('RemotePlugin.RemoteTab', 'User Authentication'))
self.user_id_label.setText(translate('RemotePlugin.RemoteTab', 'User id:')) self.user_id_label.setText(translate('RemotePlugin.RemoteTab', 'User id:'))
self.password_label.setText(translate('RemotePlugin.RemoteTab', 'Password:')) self.password_label.setText(translate('RemotePlugin.RemoteTab', 'Password:'))
@ -203,10 +217,14 @@ class RemoteTab(SettingsTab):
https_url = u'https://%s:%s/' % (ip_address, self.https_port_spin_box.value()) https_url = u'https://%s:%s/' % (ip_address, self.https_port_spin_box.value())
self.remote_url.setText(u'<a href="%s">%s</a>' % (http_url, http_url)) self.remote_url.setText(u'<a href="%s">%s</a>' % (http_url, http_url))
self.remote_https_url.setText(u'<a href="%s">%s</a>' % (https_url, https_url)) self.remote_https_url.setText(u'<a href="%s">%s</a>' % (https_url, https_url))
http_url += u'stage' http_url_temp = http_url + u'stage'
https_url += u'stage' https_url_temp = https_url + u'stage'
self.stage_url.setText(u'<a href="%s">%s</a>' % (http_url, http_url)) self.stage_url.setText(u'<a href="%s">%s</a>' % (http_url_temp, http_url_temp))
self.stage_https_url.setText(u'<a href="%s">%s</a>' % (https_url, https_url)) self.stage_https_url.setText(u'<a href="%s">%s</a>' % (https_url_temp, https_url_temp))
http_url_temp = http_url + u'live'
https_url_temp = https_url + u'live'
self.live_url.setText(u'<a href="%s">%s</a>' % (http_url_temp, http_url_temp))
self.live_https_url.setText(u'<a href="%s">%s</a>' % (https_url_temp, https_url_temp))
def load(self): def load(self):
""" """