Cleanup Advance Tab

This commit is contained in:
Tim Bentley 2013-02-01 20:09:47 +00:00
parent 6ef4db5ce8
commit 3b6f897f6e
10 changed files with 483 additions and 390 deletions

View File

@ -92,5 +92,5 @@ class Registry(object):
raise KeyError(u'Invalid Method call for key %s' % key)
return
if key in self.service_list:
del self.service_list[key]
del self.service_list[key]

View File

@ -315,7 +315,7 @@ class Renderer(object):
if text_contains_split:
text = slides[-1] + u'\n[---]\n' + text
else:
text = slides[-1] + u'\n'+ text
text = slides[-1] + u'\n' + text
text = text.replace(u'<br>', u'\n')
else:
pages.extend(slides)
@ -543,7 +543,7 @@ class Renderer(object):
end_tags.reverse()
# Remove the indexes.
html_tags = [tag[1] for tag in html_tags]
return raw_text + u''.join(end_tags), u''.join(start_tags), u''.join(html_tags)
return raw_text + u''.join(end_tags), u''.join(start_tags), u''.join(html_tags)
def _binary_chop(self, formatted, previous_html, previous_raw, html_list, raw_list, separator, line_end):
"""
@ -661,4 +661,4 @@ class Renderer(object):
self._theme_manager = Registry().get(u'theme_manager')
return self._theme_manager
theme_manager = property(_get_theme_manager)
theme_manager = property(_get_theme_manager)

View File

@ -29,6 +29,8 @@
from PyQt4 import QtGui
from openlp.core.lib import Registry
class SettingsTab(QtGui.QWidget):
"""
SettingsTab is a helper widget for plugins to define Tabs for the settings
@ -131,3 +133,45 @@ class SettingsTab(QtGui.QWidget):
Tab has just been made visible to the user
"""
pass
def _get_service_manager(self):
"""
Adds the service manager to the class dynamically
"""
if not hasattr(self, u'_service_manager'):
self._service_manager = Registry().get(u'service_manager')
return self._service_manager
service_manager = property(_get_service_manager)
def _get_main_window(self):
"""
Adds the main window to the class dynamically
"""
if not hasattr(self, u'_main_window'):
self._main_window = Registry().get(u'main_window')
return self._main_window
main_window = property(_get_main_window)
def _get_renderer(self):
"""
Adds the Renderer to the class dynamically
"""
if not hasattr(self, u'_renderer'):
self._renderer = Registry().get(u'renderer')
return self._renderer
renderer = property(_get_renderer)
def _get_theme_manager(self):
"""
Adds the theme manager to the class dynamically
"""
if not hasattr(self, u'_theme_manager'):
self._theme_manager = Registry().get(u'theme_manager')
return self._theme_manager
theme_manager = property(_get_theme_manager)

View File

@ -213,6 +213,7 @@ class ThemeXML(object):
"""
FIRST_CAMEL_REGEX = re.compile(u'(.)([A-Z][a-z]+)')
SECOND_CAMEL_REGEX = re.compile(u'([a-z0-9])([A-Z])')
def __init__(self):
"""
Initialise the theme object.

View File

@ -164,6 +164,7 @@ class Theme(object):
* ``0`` - normal
* ``1`` - lyrics
"""
def __init__(self, xml):
"""
Initialise a theme with data from xml

View File

@ -52,10 +52,10 @@ class AdvancedTab(SettingsTab):
"""
Initialise the settings tab
"""
self.displayChanged = False
self.defaultImage = u':/graphics/openlp-splash-screen.png'
self.defaultColor = u'#ffffff'
self.dataExists = False
self.display_changed = False
self.default_image = u':/graphics/openlp-splash-screen.png'
self.default_color = u'#ffffff'
self.data_exists = False
self.iconPath = u':/system/system_settings.png'
advanced_translated = translate('OpenLP.AdvancedTab', 'Advanced')
SettingsTab.__init__(self, parent, u'Advanced', advanced_translated)
@ -66,271 +66,280 @@ class AdvancedTab(SettingsTab):
"""
self.setObjectName(u'AdvancedTab')
SettingsTab.setupUi(self)
self.uiGroupBox = QtGui.QGroupBox(self.leftColumn)
self.uiGroupBox.setObjectName(u'uiGroupBox')
self.uiLayout = QtGui.QFormLayout(self.uiGroupBox)
self.uiLayout.setObjectName(u'uiLayout')
self.recentLabel = QtGui.QLabel(self.uiGroupBox)
self.recentLabel.setObjectName(u'recentLabel')
self.recentSpinBox = QtGui.QSpinBox(self.uiGroupBox)
self.recentSpinBox.setObjectName(u'recentSpinBox')
self.recentSpinBox.setMinimum(0)
self.uiLayout.addRow(self.recentLabel, self.recentSpinBox)
self.mediaPluginCheckBox = QtGui.QCheckBox(self.uiGroupBox)
self.mediaPluginCheckBox.setObjectName(u'mediaPluginCheckBox')
self.uiLayout.addRow(self.mediaPluginCheckBox)
self.doubleClickLiveCheckBox = QtGui.QCheckBox(self.uiGroupBox)
self.doubleClickLiveCheckBox.setObjectName(u'doubleClickLiveCheckBox')
self.uiLayout.addRow(self.doubleClickLiveCheckBox)
self.singleClickPreviewCheckBox = QtGui.QCheckBox(self.uiGroupBox)
self.singleClickPreviewCheckBox.setObjectName(u'singleClickPreviewCheckBox')
self.uiLayout.addRow(self.singleClickPreviewCheckBox)
self.expandServiceItemCheckBox = QtGui.QCheckBox(self.uiGroupBox)
self.expandServiceItemCheckBox.setObjectName(u'expandServiceItemCheckBox')
self.uiLayout.addRow(self.expandServiceItemCheckBox)
self.enableAutoCloseCheckBox = QtGui.QCheckBox(self.uiGroupBox)
self.enableAutoCloseCheckBox.setObjectName(u'enableAutoCloseCheckBox')
self.uiLayout.addRow(self.enableAutoCloseCheckBox)
self.leftLayout.addWidget(self.uiGroupBox)
self.ui_group_box = QtGui.QGroupBox(self.leftColumn)
self.ui_group_box.setObjectName(u'ui_group_box')
self.ui_layout = QtGui.QFormLayout(self.ui_group_box)
self.ui_layout.setObjectName(u'ui_layout')
self.recent_label = QtGui.QLabel(self.ui_group_box)
self.recent_label.setObjectName(u'recent_label')
self.recent_spin_box = QtGui.QSpinBox(self.ui_group_box)
self.recent_spin_box.setObjectName(u'recent_spin_box')
self.recent_spin_box.setMinimum(0)
self.ui_layout.addRow(self.recent_label, self.recent_spin_box)
self.media_plugin_check_box = QtGui.QCheckBox(self.ui_group_box)
self.media_plugin_check_box.setObjectName(u'media_plugin_check_box')
self.ui_layout.addRow(self.media_plugin_check_box)
self.double_click_live_check_box = QtGui.QCheckBox(self.ui_group_box)
self.double_click_live_check_box.setObjectName(u'double_click_live_check_box')
self.ui_layout.addRow(self.double_click_live_check_box)
self.singleclick_preview_check_box = QtGui.QCheckBox(self.ui_group_box)
self.singleclick_preview_check_box.setObjectName(u'singleclick_preview_check_box')
self.ui_layout.addRow(self.singleclick_preview_check_box)
self.expand_service_item_check_box = QtGui.QCheckBox(self.ui_group_box)
self.expand_service_item_check_box.setObjectName(u'expand_service_item_check_box')
self.ui_layout.addRow(self.expand_service_item_check_box)
self.enable_auto_close_check_box = QtGui.QCheckBox(self.ui_group_box)
self.enable_auto_close_check_box.setObjectName(u'enable_auto_close_check_box')
self.ui_layout.addRow(self.enable_auto_close_check_box)
self.leftLayout.addWidget(self.ui_group_box)
# Default service name
self.serviceNameGroupBox = QtGui.QGroupBox(self.leftColumn)
self.serviceNameGroupBox.setObjectName(u'serviceNameGroupBox')
self.serviceNameLayout = QtGui.QFormLayout(self.serviceNameGroupBox)
self.serviceNameCheckBox = QtGui.QCheckBox(self.serviceNameGroupBox)
self.serviceNameCheckBox.setObjectName(u'serviceNameCheckBox')
self.serviceNameLayout.setObjectName(u'serviceNameLayout')
self.serviceNameLayout.addRow(self.serviceNameCheckBox)
self.serviceNameTimeLabel = QtGui.QLabel(self.serviceNameGroupBox)
self.serviceNameTimeLabel.setObjectName(u'serviceNameTimeLabel')
self.serviceNameDay = QtGui.QComboBox(self.serviceNameGroupBox)
self.serviceNameDay.addItems([u'', u'', u'', u'', u'', u'', u'', u''])
self.serviceNameDay.setObjectName(u'serviceNameDay')
self.serviceNameTime = QtGui.QTimeEdit(self.serviceNameGroupBox)
self.serviceNameTime.setObjectName(u'serviceNameTime')
self.serviceNameTimeHBox = QtGui.QHBoxLayout()
self.serviceNameTimeHBox.setObjectName(u'serviceNameTimeHBox')
self.serviceNameTimeHBox.addWidget(self.serviceNameDay)
self.serviceNameTimeHBox.addWidget(self.serviceNameTime)
self.serviceNameLayout.addRow(self.serviceNameTimeLabel, self.serviceNameTimeHBox)
self.serviceNameLabel = QtGui.QLabel(self.serviceNameGroupBox)
self.serviceNameLabel.setObjectName(u'serviceNameLabel')
self.serviceNameEdit = QtGui.QLineEdit(self.serviceNameGroupBox)
self.serviceNameEdit.setObjectName(u'serviceNameEdit')
self.serviceNameEdit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(r'[^/\\?*|<>\[\]":+]+'), self))
self.serviceNameRevertButton = QtGui.QToolButton(self.serviceNameGroupBox)
self.serviceNameRevertButton.setObjectName(u'serviceNameRevertButton')
self.serviceNameRevertButton.setIcon(build_icon(u':/general/general_revert.png'))
self.serviceNameHBox = QtGui.QHBoxLayout()
self.serviceNameHBox.setObjectName(u'serviceNameHBox')
self.serviceNameHBox.addWidget(self.serviceNameEdit)
self.serviceNameHBox.addWidget(self.serviceNameRevertButton)
self.serviceNameLayout.addRow(self.serviceNameLabel, self.serviceNameHBox)
self.serviceNameExampleLabel = QtGui.QLabel(self.serviceNameGroupBox)
self.serviceNameExampleLabel.setObjectName(u'serviceNameExampleLabel')
self.serviceNameExample = QtGui.QLabel(self.serviceNameGroupBox)
self.serviceNameExample.setObjectName(u'serviceNameExample')
self.serviceNameLayout.addRow(self.serviceNameExampleLabel, self.serviceNameExample)
self.leftLayout.addWidget(self.serviceNameGroupBox)
self.service_name_group_box = QtGui.QGroupBox(self.leftColumn)
self.service_name_group_box.setObjectName(u'service_name_group_box')
self.service_name_layout = QtGui.QFormLayout(self.service_name_group_box)
self.service_name_check_box = QtGui.QCheckBox(self.service_name_group_box)
self.service_name_check_box.setObjectName(u'service_name_check_box')
self.service_name_layout.setObjectName(u'service_name_layout')
self.service_name_layout.addRow(self.service_name_check_box)
self.service_name_time_label = QtGui.QLabel(self.service_name_group_box)
self.service_name_time_label.setObjectName(u'service_name_time_label')
self.service_name_day = QtGui.QComboBox(self.service_name_group_box)
self.service_name_day.addItems([u'', u'', u'', u'', u'', u'', u'', u''])
self.service_name_day.setObjectName(u'service_name_day')
self.service_name_time = QtGui.QTimeEdit(self.service_name_group_box)
self.service_name_time.setObjectName(u'service_name_time')
self.service_name_timeHBox = QtGui.QHBoxLayout()
self.service_name_timeHBox.setObjectName(u'service_name_timeHBox')
self.service_name_timeHBox.addWidget(self.service_name_day)
self.service_name_timeHBox.addWidget(self.service_name_time)
self.service_name_layout.addRow(self.service_name_time_label, self.service_name_timeHBox)
self.service_name_label = QtGui.QLabel(self.service_name_group_box)
self.service_name_label.setObjectName(u'service_name_label')
self.service_name_edit = QtGui.QLineEdit(self.service_name_group_box)
self.service_name_edit.setObjectName(u'service_name_edit')
self.service_name_edit.setValidator(QtGui.QRegExpValidator(QtCore.QRegExp(r'[^/\\?*|<>\[\]":+]+'), self))
self.service_name_revert_button = QtGui.QToolButton(self.service_name_group_box)
self.service_name_revert_button.setObjectName(u'service_name_revert_button')
self.service_name_revert_button.setIcon(build_icon(u':/general/general_revert.png'))
self.service_name_h_box = QtGui.QHBoxLayout()
self.service_name_h_box.setObjectName(u'service_name_h_box')
self.service_name_h_box.addWidget(self.service_name_edit)
self.service_name_h_box.addWidget(self.service_name_revert_button)
self.service_name_layout.addRow(self.service_name_label, self.service_name_h_box)
self.service_name_example_label = QtGui.QLabel(self.service_name_group_box)
self.service_name_example_label.setObjectName(u'service_name_example_label')
self.service_name_example = QtGui.QLabel(self.service_name_group_box)
self.service_name_example.setObjectName(u'service_name_example')
self.service_name_layout.addRow(self.service_name_example_label, self.service_name_example)
self.leftLayout.addWidget(self.service_name_group_box)
# Data Directory
self.dataDirectoryGroupBox = QtGui.QGroupBox(self.leftColumn)
self.dataDirectoryGroupBox.setObjectName(u'dataDirectoryGroupBox')
self.dataDirectoryLayout = QtGui.QFormLayout(self.dataDirectoryGroupBox)
self.dataDirectoryLayout.setObjectName(u'dataDirectoryLayout')
self.dataDirectoryCurrentLabel = QtGui.QLabel(self.dataDirectoryGroupBox)
self.dataDirectoryCurrentLabel.setObjectName( u'dataDirectoryCurrentLabel')
self.dataDirectoryLabel = QtGui.QLabel(self.dataDirectoryGroupBox)
self.dataDirectoryLabel.setObjectName(u'dataDirectoryLabel')
self.dataDirectoryNewLabel = QtGui.QLabel(self.dataDirectoryGroupBox)
self.dataDirectoryNewLabel.setObjectName(u'dataDirectoryCurrentLabel')
self.newDataDirectoryEdit = QtGui.QLineEdit(self.dataDirectoryGroupBox)
self.newDataDirectoryEdit.setObjectName(u'newDataDirectoryEdit')
self.newDataDirectoryEdit.setReadOnly(True)
self.newDataDirectoryHasFilesLabel = QtGui.QLabel(self.dataDirectoryGroupBox)
self.newDataDirectoryHasFilesLabel.setObjectName(u'newDataDirectoryHasFilesLabel')
self.newDataDirectoryHasFilesLabel.setWordWrap(True)
self.dataDirectoryBrowseButton = QtGui.QToolButton(self.dataDirectoryGroupBox)
self.dataDirectoryBrowseButton.setObjectName(u'dataDirectoryBrowseButton')
self.dataDirectoryBrowseButton.setIcon(build_icon(u':/general/general_open.png'))
self.dataDirectoryDefaultButton = QtGui.QToolButton(self.dataDirectoryGroupBox)
self.dataDirectoryDefaultButton.setObjectName(u'dataDirectoryDefaultButton')
self.dataDirectoryDefaultButton.setIcon(build_icon(u':/general/general_revert.png'))
self.dataDirectoryCancelButton = QtGui.QToolButton(self.dataDirectoryGroupBox)
self.dataDirectoryCancelButton.setObjectName(u'dataDirectoryCancelButton')
self.dataDirectoryCancelButton.setIcon(build_icon(u':/general/general_delete.png'))
self.newDataDirectoryLabelHBox = QtGui.QHBoxLayout()
self.newDataDirectoryLabelHBox.setObjectName(u'newDataDirectoryLabelHBox')
self.newDataDirectoryLabelHBox.addWidget(self.newDataDirectoryEdit)
self.newDataDirectoryLabelHBox.addWidget(self.dataDirectoryBrowseButton)
self.newDataDirectoryLabelHBox.addWidget(self.dataDirectoryDefaultButton)
self.dataDirectoryCopyCheckHBox = QtGui.QHBoxLayout()
self.dataDirectoryCopyCheckHBox.setObjectName(u'dataDirectoryCopyCheckHBox')
self.dataDirectoryCopyCheckBox = QtGui.QCheckBox(self.dataDirectoryGroupBox)
self.dataDirectoryCopyCheckBox.setObjectName(u'dataDirectoryCopyCheckBox')
self.dataDirectoryCopyCheckHBox.addWidget(self.dataDirectoryCopyCheckBox)
self.dataDirectoryCopyCheckHBox.addStretch()
self.dataDirectoryCopyCheckHBox.addWidget(self.dataDirectoryCancelButton)
self.dataDirectoryLayout.addRow(self.dataDirectoryCurrentLabel, self.dataDirectoryLabel)
self.dataDirectoryLayout.addRow(self.dataDirectoryNewLabel, self.newDataDirectoryLabelHBox)
self.dataDirectoryLayout.addRow(self.dataDirectoryCopyCheckHBox)
self.dataDirectoryLayout.addRow(self.newDataDirectoryHasFilesLabel)
self.leftLayout.addWidget(self.dataDirectoryGroupBox)
self.data_directory_group_box = QtGui.QGroupBox(self.leftColumn)
self.data_directory_group_box.setObjectName(u'data_directory_group_box')
self.data_directory_layout = QtGui.QFormLayout(self.data_directory_group_box)
self.data_directory_layout.setObjectName(u'data_directory_layout')
self.data_directory_current_label = QtGui.QLabel(self.data_directory_group_box)
self.data_directory_current_label.setObjectName( u'data_directory_current_label')
self.data_directory_label = QtGui.QLabel(self.data_directory_group_box)
self.data_directory_label.setObjectName(u'data_directory_label')
self.data_directory_new_label = QtGui.QLabel(self.data_directory_group_box)
self.data_directory_new_label.setObjectName(u'data_directory_current_label')
self.new_data_directory_edit = QtGui.QLineEdit(self.data_directory_group_box)
self.new_data_directory_edit.setObjectName(u'new_data_directory_edit')
self.new_data_directory_edit.setReadOnly(True)
self.new_data_directory_has_files_label = QtGui.QLabel(self.data_directory_group_box)
self.new_data_directory_has_files_label.setObjectName(u'new_data_directory_has_files_label')
self.new_data_directory_has_files_label.setWordWrap(True)
self.data_directory_browse_button = QtGui.QToolButton(self.data_directory_group_box)
self.data_directory_browse_button.setObjectName(u'data_directory_browse_button')
self.data_directory_browse_button.setIcon(build_icon(u':/general/general_open.png'))
self.data_directory_default_button = QtGui.QToolButton(self.data_directory_group_box)
self.data_directory_default_button.setObjectName(u'data_directory_default_button')
self.data_directory_default_button.setIcon(build_icon(u':/general/general_revert.png'))
self.data_directory_cancel_button = QtGui.QToolButton(self.data_directory_group_box)
self.data_directory_cancel_button.setObjectName(u'data_directory_cancel_button')
self.data_directory_cancel_button.setIcon(build_icon(u':/general/general_delete.png'))
self.new_data_directory_label_H_box = QtGui.QHBoxLayout()
self.new_data_directory_label_H_box.setObjectName(u'new_data_directory_label_H_box')
self.new_data_directory_label_H_box.addWidget(self.new_data_directory_edit)
self.new_data_directory_label_H_box.addWidget(self.data_directory_browse_button)
self.new_data_directory_label_H_box.addWidget(self.data_directory_default_button)
self.data_directory_copy_check_H_box = QtGui.QHBoxLayout()
self.data_directory_copy_check_H_box.setObjectName(u'data_directory_copy_check_H_box')
self.data_directory_copy_check_box = QtGui.QCheckBox(self.data_directory_group_box)
self.data_directory_copy_check_box.setObjectName(u'data_directory_copy_check_box')
self.data_directory_copy_check_H_box.addWidget(self.data_directory_copy_check_box)
self.data_directory_copy_check_H_box.addStretch()
self.data_directory_copy_check_H_box.addWidget(self.data_directory_cancel_button)
self.data_directory_layout.addRow(self.data_directory_current_label, self.data_directory_label)
self.data_directory_layout.addRow(self.data_directory_new_label, self.new_data_directory_label_H_box)
self.data_directory_layout.addRow(self.data_directory_copy_check_H_box)
self.data_directory_layout.addRow(self.new_data_directory_has_files_label)
self.leftLayout.addWidget(self.data_directory_group_box)
self.leftLayout.addStretch()
# Default Image
self.defaultImageGroupBox = QtGui.QGroupBox(self.rightColumn)
self.defaultImageGroupBox.setObjectName(u'defaultImageGroupBox')
self.defaultImageLayout = QtGui.QFormLayout(self.defaultImageGroupBox)
self.defaultImageLayout.setObjectName(u'defaultImageLayout')
self.defaultColorLabel = QtGui.QLabel(self.defaultImageGroupBox)
self.defaultColorLabel.setObjectName(u'defaultColorLabel')
self.defaultColorButton = QtGui.QPushButton(self.defaultImageGroupBox)
self.defaultColorButton.setObjectName(u'defaultColorButton')
self.defaultImageLayout.addRow(self.defaultColorLabel, self.defaultColorButton)
self.defaultFileLabel = QtGui.QLabel(self.defaultImageGroupBox)
self.defaultFileLabel.setObjectName(u'defaultFileLabel')
self.defaultFileEdit = QtGui.QLineEdit(self.defaultImageGroupBox)
self.defaultFileEdit.setObjectName(u'defaultFileEdit')
self.defaultBrowseButton = QtGui.QToolButton(self.defaultImageGroupBox)
self.defaultBrowseButton.setObjectName(u'defaultBrowseButton')
self.defaultBrowseButton.setIcon(build_icon(u':/general/general_open.png'))
self.defaultRevertButton = QtGui.QToolButton(self.defaultImageGroupBox)
self.defaultRevertButton.setObjectName(u'defaultRevertButton')
self.defaultRevertButton.setIcon(build_icon(u':/general/general_revert.png'))
self.default_image_group_box = QtGui.QGroupBox(self.rightColumn)
self.default_image_group_box.setObjectName(u'default_image_group_box')
self.default_image_layout = QtGui.QFormLayout(self.default_image_group_box)
self.default_image_layout.setObjectName(u'default_image_layout')
self.default_color_label = QtGui.QLabel(self.default_image_group_box)
self.default_color_label.setObjectName(u'default_color_label')
self.default_color_button = QtGui.QPushButton(self.default_image_group_box)
self.default_color_button.setObjectName(u'default_color_button')
self.default_image_layout.addRow(self.default_color_label, self.default_color_button)
self.default_file_label = QtGui.QLabel(self.default_image_group_box)
self.default_file_label.setObjectName(u'default_file_label')
self.default_file_edit = QtGui.QLineEdit(self.default_image_group_box)
self.default_file_edit.setObjectName(u'default_file_edit')
self.default_browse_button = QtGui.QToolButton(self.default_image_group_box)
self.default_browse_button.setObjectName(u'default_browse_button')
self.default_browse_button.setIcon(build_icon(u':/general/general_open.png'))
self.default_revert_button = QtGui.QToolButton(self.default_image_group_box)
self.default_revert_button.setObjectName(u'default_revert_button')
self.default_revert_button.setIcon(build_icon(u':/general/general_revert.png'))
self.defaultFileLayout = QtGui.QHBoxLayout()
self.defaultFileLayout.setObjectName(u'defaultFileLayout')
self.defaultFileLayout.addWidget(self.defaultFileEdit)
self.defaultFileLayout.addWidget(self.defaultBrowseButton)
self.defaultFileLayout.addWidget(self.defaultRevertButton)
self.defaultImageLayout.addRow(self.defaultFileLabel, self.defaultFileLayout)
self.rightLayout.addWidget(self.defaultImageGroupBox)
self.defaultFileLayout.addWidget(self.default_file_edit)
self.defaultFileLayout.addWidget(self.default_browse_button)
self.defaultFileLayout.addWidget(self.default_revert_button)
self.default_image_layout.addRow(self.default_file_label, self.defaultFileLayout)
self.rightLayout.addWidget(self.default_image_group_box)
# Hide mouse
self.hideMouseGroupBox = QtGui.QGroupBox(self.rightColumn)
self.hideMouseGroupBox.setObjectName(u'hideMouseGroupBox')
self.hideMouseLayout = QtGui.QVBoxLayout(self.hideMouseGroupBox)
self.hide_mouse_group_box = QtGui.QGroupBox(self.rightColumn)
self.hide_mouse_group_box.setObjectName(u'hide_mouse_group_box')
self.hideMouseLayout = QtGui.QVBoxLayout(self.hide_mouse_group_box)
self.hideMouseLayout.setObjectName(u'hideMouseLayout')
self.hideMouseCheckBox = QtGui.QCheckBox(self.hideMouseGroupBox)
self.hideMouseCheckBox.setObjectName(u'hideMouseCheckBox')
self.hideMouseLayout.addWidget(self.hideMouseCheckBox)
self.rightLayout.addWidget(self.hideMouseGroupBox)
self.hide_mouse_check_box = QtGui.QCheckBox(self.hide_mouse_group_box)
self.hide_mouse_check_box.setObjectName(u'hide_mouse_check_box')
self.hideMouseLayout.addWidget(self.hide_mouse_check_box)
self.rightLayout.addWidget(self.hide_mouse_group_box)
# Service Item Slide Limits
self.slideGroupBox = QtGui.QGroupBox(self.rightColumn)
self.slideGroupBox.setObjectName(u'slideGroupBox')
self.slideLayout = QtGui.QVBoxLayout(self.slideGroupBox)
self.slide_group_box = QtGui.QGroupBox(self.rightColumn)
self.slide_group_box.setObjectName(u'slide_group_box')
self.slideLayout = QtGui.QVBoxLayout(self.slide_group_box)
self.slideLayout.setObjectName(u'slideLayout')
self.slideLabel = QtGui.QLabel(self.slideGroupBox)
self.slideLabel.setWordWrap(True)
self.slideLayout.addWidget(self.slideLabel)
self.endSlideRadioButton = QtGui.QRadioButton(self.slideGroupBox)
self.endSlideRadioButton.setObjectName(u'endSlideRadioButton')
self.slideLayout.addWidget(self.endSlideRadioButton)
self.wrapSlideRadioButton = QtGui.QRadioButton(self.slideGroupBox)
self.wrapSlideRadioButton.setObjectName(u'wrapSlideRadioButton')
self.slideLayout.addWidget(self.wrapSlideRadioButton)
self.nextItemRadioButton = QtGui.QRadioButton(self.slideGroupBox)
self.nextItemRadioButton.setObjectName(u'nextItemRadioButton')
self.slideLayout.addWidget(self.nextItemRadioButton)
self.rightLayout.addWidget(self.slideGroupBox)
self.x11GroupBox = QtGui.QGroupBox(self.leftColumn)
self.x11GroupBox.setObjectName(u'x11GroupBox')
self.x11Layout = QtGui.QVBoxLayout(self.x11GroupBox)
self.slide_label = QtGui.QLabel(self.slide_group_box)
self.slide_label.setWordWrap(True)
self.slideLayout.addWidget(self.slide_label)
self.end_slide_radio_button = QtGui.QRadioButton(self.slide_group_box)
self.end_slide_radio_button.setObjectName(u'end_slide_radio_button')
self.slideLayout.addWidget(self.end_slide_radio_button)
self.wrap_slide_radio_button = QtGui.QRadioButton(self.slide_group_box)
self.wrap_slide_radio_button.setObjectName(u'wrap_slide_radio_button')
self.slideLayout.addWidget(self.wrap_slide_radio_button)
self.next_item_radio_button = QtGui.QRadioButton(self.slide_group_box)
self.next_item_radio_button.setObjectName(u'next_item_radio_button')
self.slideLayout.addWidget(self.next_item_radio_button)
self.rightLayout.addWidget(self.slide_group_box)
self.x11_group_box = QtGui.QGroupBox(self.leftColumn)
self.x11_group_box.setObjectName(u'x11_group_box')
self.x11Layout = QtGui.QVBoxLayout(self.x11_group_box)
self.x11Layout.setObjectName(u'x11Layout')
self.x11BypassCheckBox = QtGui.QCheckBox(self.x11GroupBox)
self.x11BypassCheckBox.setObjectName(u'x11BypassCheckBox')
self.x11Layout.addWidget(self.x11BypassCheckBox)
self.rightLayout.addWidget(self.x11GroupBox)
self.x11_bypass_check_box = QtGui.QCheckBox(self.x11_group_box)
self.x11_bypass_check_box.setObjectName(u'x11_bypass_check_box')
self.x11Layout.addWidget(self.x11_bypass_check_box)
self.rightLayout.addWidget(self.x11_group_box)
self.rightLayout.addStretch()
self.shouldUpdateServiceNameExample = False
QtCore.QObject.connect(self.serviceNameCheckBox, QtCore.SIGNAL(u'toggled(bool)'),
self.serviceNameCheckBoxToggled)
QtCore.QObject.connect(self.serviceNameDay, QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.onServiceNameDayChanged)
QtCore.QObject.connect(self.serviceNameTime, QtCore.SIGNAL(u'timeChanged(QTime)'),
self.updateServiceNameExample)
QtCore.QObject.connect(self.serviceNameEdit, QtCore.SIGNAL(u'textChanged(QString)'),
self.updateServiceNameExample)
QtCore.QObject.connect(self.serviceNameRevertButton, QtCore.SIGNAL(u'clicked()'),
self.onServiceNameRevertButtonClicked)
QtCore.QObject.connect(self.defaultColorButton, QtCore.SIGNAL(u'clicked()'), self.onDefaultColorButtonClicked)
QtCore.QObject.connect(self.defaultBrowseButton, QtCore.SIGNAL(u'clicked()'), self.onDefaultBrowseButtonClicked)
QtCore.QObject.connect(self.defaultRevertButton, QtCore.SIGNAL(u'clicked()'), self.onDefaultRevertButtonClicked)
QtCore.QObject.connect(self.x11BypassCheckBox, QtCore.SIGNAL(u'toggled(bool)'), self.onX11BypassCheckBoxToggled)
QtCore.QObject.connect(self.dataDirectoryBrowseButton, QtCore.SIGNAL(u'clicked()'),
self.onDataDirectoryBrowseButtonClicked)
QtCore.QObject.connect(self.dataDirectoryDefaultButton, QtCore.SIGNAL(u'clicked()'),
self.onDataDirectoryDefaultButtonClicked)
QtCore.QObject.connect(self.dataDirectoryCancelButton, QtCore.SIGNAL(u'clicked()'),
self.onDataDirectoryCancelButtonClicked)
QtCore.QObject.connect(self.dataDirectoryCopyCheckBox, QtCore.SIGNAL(u'toggled(bool)'),
self.onDataDirectoryCopyCheckBoxToggled)
QtCore.QObject.connect(self.endSlideRadioButton, QtCore.SIGNAL(u'clicked()'), self.onEndSlideButtonClicked)
QtCore.QObject.connect(self.wrapSlideRadioButton, QtCore.SIGNAL(u'clicked()'), self.onWrapSlideButtonClicked)
QtCore.QObject.connect(self.nextItemRadioButton, QtCore.SIGNAL(u'clicked()'), self.onnextItemButtonClicked)
self.should_update_service_name_example = False
QtCore.QObject.connect(self.service_name_check_box, QtCore.SIGNAL(u'toggled(bool)'),
self.service_name_check_box_toggled)
QtCore.QObject.connect(self.service_name_day, QtCore.SIGNAL(u'currentIndexChanged(int)'),
self.on_service_name_day_changed)
QtCore.QObject.connect(self.service_name_time, QtCore.SIGNAL(u'timeChanged(QTime)'),
self.update_service_name_example)
QtCore.QObject.connect(self.service_name_edit, QtCore.SIGNAL(u'textChanged(QString)'),
self.update_service_name_example)
QtCore.QObject.connect(self.service_name_revert_button, QtCore.SIGNAL(u'clicked()'),
self.on_service_name_revert_button_clicked)
QtCore.QObject.connect(self.default_color_button, QtCore.SIGNAL(u'clicked()'),
self.on_default_color_button_clicked)
QtCore.QObject.connect(self.default_browse_button, QtCore.SIGNAL(u'clicked()'),
self.on_default_browse_button_clicked)
QtCore.QObject.connect(self.default_revert_button, QtCore.SIGNAL(u'clicked()'),
self.on_default_revert_button_clicked)
QtCore.QObject.connect(self.x11_bypass_check_box, QtCore.SIGNAL(u'toggled(bool)'),
self.on_X11_bypass_check_box_toggled)
QtCore.QObject.connect(self.data_directory_browse_button, QtCore.SIGNAL(u'clicked()'),
self.on_data_directory_browse_button_clicked)
QtCore.QObject.connect(self.data_directory_default_button, QtCore.SIGNAL(u'clicked()'),
self.on_data_directory_default_button_clicked)
QtCore.QObject.connect(self.data_directory_cancel_button, QtCore.SIGNAL(u'clicked()'),
self.on_data_directory_cancel_button_clicked)
QtCore.QObject.connect(self.data_directory_copy_check_box, QtCore.SIGNAL(u'toggled(bool)'),
self.on_data_directory_copy_check_box_toggled)
QtCore.QObject.connect(self.end_slide_radio_button, QtCore.SIGNAL(u'clicked()'),
self.on_end_slide_button_clicked)
QtCore.QObject.connect(self.wrap_slide_radio_button, QtCore.SIGNAL(u'clicked()'),
self.on_wrap_slide_button_clicked)
QtCore.QObject.connect(self.next_item_radio_button, QtCore.SIGNAL(u'clicked()'),
self.on_next_item_button_clicked)
def retranslateUi(self):
"""
Setup the interface translation strings.
"""
self.tabTitleVisible = UiStrings().Advanced
self.uiGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'UI Settings'))
self.dataDirectoryGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Data Location'))
self.recentLabel.setText(translate('OpenLP.AdvancedTab', 'Number of recent files to display:'))
self.mediaPluginCheckBox.setText(translate('OpenLP.AdvancedTab',
self.ui_group_box.setTitle(translate('OpenLP.AdvancedTab', 'UI Settings'))
self.data_directory_group_box.setTitle(translate('OpenLP.AdvancedTab', 'Data Location'))
self.recent_label.setText(translate('OpenLP.AdvancedTab', 'Number of recent files to display:'))
self.media_plugin_check_box.setText(translate('OpenLP.AdvancedTab',
'Remember active media manager tab on startup'))
self.doubleClickLiveCheckBox.setText(translate('OpenLP.AdvancedTab',
self.double_click_live_check_box.setText(translate('OpenLP.AdvancedTab',
'Double-click to send items straight to live'))
self.singleClickPreviewCheckBox.setText(translate('OpenLP.AdvancedTab',
self.singleclick_preview_check_box.setText(translate('OpenLP.AdvancedTab',
'Preview items when clicked in Media Manager'))
self.expandServiceItemCheckBox.setText(translate('OpenLP.AdvancedTab',
self.expand_service_item_check_box.setText(translate('OpenLP.AdvancedTab',
'Expand new service items on creation'))
self.enableAutoCloseCheckBox.setText(translate('OpenLP.AdvancedTab',
self.enable_auto_close_check_box.setText(translate('OpenLP.AdvancedTab',
'Enable application exit confirmation'))
self.serviceNameGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Default Service Name'))
self.serviceNameCheckBox.setText(translate('OpenLP.AdvancedTab', 'Enable default service name'))
self.serviceNameTimeLabel.setText(translate('OpenLP.AdvancedTab', 'Date and Time:'))
self.serviceNameDay.setItemText(0, translate('OpenLP.AdvancedTab', 'Monday'))
self.serviceNameDay.setItemText(1, translate('OpenLP.AdvancedTab', 'Tuesday'))
self.serviceNameDay.setItemText(2, translate('OpenLP.AdvancedTab', 'Wednesday'))
self.serviceNameDay.setItemText(3, translate('OpenLP.AdvancedTab', 'Thurdsday'))
self.serviceNameDay.setItemText(4, translate('OpenLP.AdvancedTab', 'Friday'))
self.serviceNameDay.setItemText(5, translate('OpenLP.AdvancedTab', 'Saturday'))
self.serviceNameDay.setItemText(6, translate('OpenLP.AdvancedTab', 'Sunday'))
self.serviceNameDay.setItemText(7, translate('OpenLP.AdvancedTab', 'Now'))
self.serviceNameTime.setToolTip(translate('OpenLP.AdvancedTab',
self.service_name_group_box.setTitle(translate('OpenLP.AdvancedTab', 'Default Service Name'))
self.service_name_check_box.setText(translate('OpenLP.AdvancedTab', 'Enable default service name'))
self.service_name_time_label.setText(translate('OpenLP.AdvancedTab', 'Date and Time:'))
self.service_name_day.setItemText(0, translate('OpenLP.AdvancedTab', 'Monday'))
self.service_name_day.setItemText(1, translate('OpenLP.AdvancedTab', 'Tuesday'))
self.service_name_day.setItemText(2, translate('OpenLP.AdvancedTab', 'Wednesday'))
self.service_name_day.setItemText(3, translate('OpenLP.AdvancedTab', 'Thurdsday'))
self.service_name_day.setItemText(4, translate('OpenLP.AdvancedTab', 'Friday'))
self.service_name_day.setItemText(5, translate('OpenLP.AdvancedTab', 'Saturday'))
self.service_name_day.setItemText(6, translate('OpenLP.AdvancedTab', 'Sunday'))
self.service_name_day.setItemText(7, translate('OpenLP.AdvancedTab', 'Now'))
self.service_name_time.setToolTip(translate('OpenLP.AdvancedTab',
'Time when usual service starts.'))
self.serviceNameLabel.setText(translate('OpenLP.AdvancedTab', 'Name:'))
self.serviceNameEdit.setToolTip(translate('OpenLP.AdvancedTab', 'Consult the OpenLP manual for usage.'))
self.serviceNameRevertButton.setToolTip(
translate('OpenLP.AdvancedTab', 'Revert to the default service name "%s".') % UiStrings().DefaultServiceName)
self.serviceNameExampleLabel.setText(translate('OpenLP.AdvancedTab', 'Example:'))
self.hideMouseGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor'))
self.hideMouseCheckBox.setText(translate('OpenLP.AdvancedTab', 'Hide mouse cursor when over display window'))
self.defaultImageGroupBox.setTitle(translate('OpenLP.AdvancedTab', 'Default Image'))
self.defaultColorLabel.setText(translate('OpenLP.AdvancedTab', 'Background color:'))
self.defaultColorButton.setToolTip(translate('OpenLP.AdvancedTab', 'Click to select a color.'))
self.defaultFileLabel.setText(translate('OpenLP.AdvancedTab', 'Image file:'))
self.defaultBrowseButton.setToolTip(translate('OpenLP.AdvancedTab', 'Browse for an image file to display.'))
self.defaultRevertButton.setToolTip(translate('OpenLP.AdvancedTab', 'Revert to the default OpenLP logo.'))
self.dataDirectoryCurrentLabel.setText(translate('OpenLP.AdvancedTab', 'Current path:'))
self.dataDirectoryNewLabel.setText(translate('OpenLP.AdvancedTab', 'Custom path:'))
self.dataDirectoryBrowseButton.setToolTip(translate('OpenLP.AdvancedTab', 'Browse for new data file location.'))
self.dataDirectoryDefaultButton.setToolTip(
self.service_name_label.setText(translate('OpenLP.AdvancedTab', 'Name:'))
self.service_name_edit.setToolTip(translate('OpenLP.AdvancedTab', 'Consult the OpenLP manual for usage.'))
self.service_name_revert_button.setToolTip(
translate('OpenLP.AdvancedTab', 'Revert to the default service name "%s".') %
UiStrings().DefaultServiceName)
self.service_name_example_label.setText(translate('OpenLP.AdvancedTab', 'Example:'))
self.hide_mouse_group_box.setTitle(translate('OpenLP.AdvancedTab', 'Mouse Cursor'))
self.hide_mouse_check_box.setText(translate('OpenLP.AdvancedTab', 'Hide mouse cursor when over display window'))
self.default_image_group_box.setTitle(translate('OpenLP.AdvancedTab', 'Default Image'))
self.default_color_label.setText(translate('OpenLP.AdvancedTab', 'Background color:'))
self.default_color_button.setToolTip(translate('OpenLP.AdvancedTab', 'Click to select a color.'))
self.default_file_label.setText(translate('OpenLP.AdvancedTab', 'Image file:'))
self.default_browse_button.setToolTip(translate('OpenLP.AdvancedTab', 'Browse for an image file to display.'))
self.default_revert_button.setToolTip(translate('OpenLP.AdvancedTab', 'Revert to the default OpenLP logo.'))
self.data_directory_current_label.setText(translate('OpenLP.AdvancedTab', 'Current path:'))
self.data_directory_new_label.setText(translate('OpenLP.AdvancedTab', 'Custom path:'))
self.data_directory_browse_button.setToolTip(translate('OpenLP.AdvancedTab',
'Browse for new data file location.'))
self.data_directory_default_button.setToolTip(
translate('OpenLP.AdvancedTab', 'Set the data location to the default.'))
self.dataDirectoryCancelButton.setText(translate('OpenLP.AdvancedTab', 'Cancel'))
self.dataDirectoryCancelButton.setToolTip(
self.data_directory_cancel_button.setText(translate('OpenLP.AdvancedTab', 'Cancel'))
self.data_directory_cancel_button.setToolTip(
translate('OpenLP.AdvancedTab', 'Cancel OpenLP data directory location change.'))
self.dataDirectoryCopyCheckBox.setText(translate('OpenLP.AdvancedTab', 'Copy data to new location.'))
self.dataDirectoryCopyCheckBox.setToolTip(translate(
self.data_directory_copy_check_box.setText(translate('OpenLP.AdvancedTab', 'Copy data to new location.'))
self.data_directory_copy_check_box.setToolTip(translate(
'OpenLP.AdvancedTab', 'Copy the OpenLP data files to the new location.'))
self.newDataDirectoryHasFilesLabel.setText(
self.new_data_directory_has_files_label.setText(
translate('OpenLP.AdvancedTab', '<strong>WARNING:</strong> New data directory location contains '
'OpenLP data files. These files WILL be replaced during a copy.'))
self.x11GroupBox.setTitle(translate('OpenLP.AdvancedTab', 'X11'))
self.x11BypassCheckBox.setText(translate('OpenLP.AdvancedTab','Bypass X11 Window Manager'))
self.x11_group_box.setTitle(translate('OpenLP.AdvancedTab', 'X11'))
self.x11_bypass_check_box.setText(translate('OpenLP.AdvancedTab','Bypass X11 Window Manager'))
# Slide Limits
self.slideGroupBox.setTitle(translate('OpenLP.GeneralTab', 'Service Item Slide Limits'))
self.slideLabel.setText(translate('OpenLP.GeneralTab', 'Behavior of next/previous on the last/first slide:'))
self.endSlideRadioButton.setText(translate('OpenLP.GeneralTab', '&Remain on Slide'))
self.wrapSlideRadioButton.setText(translate('OpenLP.GeneralTab', '&Wrap around'))
self.nextItemRadioButton.setText(translate('OpenLP.GeneralTab', '&Move to next/previous service item'))
self.slide_group_box.setTitle(translate('OpenLP.GeneralTab', 'Service Item Slide Limits'))
self.slide_label.setText(translate('OpenLP.GeneralTab', 'Behavior of next/previous on the last/first slide:'))
self.end_slide_radio_button.setText(translate('OpenLP.GeneralTab', '&Remain on Slide'))
self.wrap_slide_radio_button.setText(translate('OpenLP.GeneralTab', '&Wrap around'))
self.next_item_radio_button.setText(translate('OpenLP.GeneralTab', '&Move to next/previous service item'))
def load(self):
"""
@ -341,40 +350,40 @@ class AdvancedTab(SettingsTab):
# The max recent files value does not have an interface and so never
# gets actually stored in the settings therefore the default value of
# 20 will always be used.
self.recentSpinBox.setMaximum(settings.value(u'max recent files'))
self.recentSpinBox.setValue(settings.value(u'recent file count'))
self.mediaPluginCheckBox.setChecked(settings.value(u'save current plugin'))
self.doubleClickLiveCheckBox.setChecked(settings.value(u'double click live'))
self.singleClickPreviewCheckBox.setChecked(settings.value(u'single click preview'))
self.expandServiceItemCheckBox.setChecked(settings.value(u'expand service item'))
self.enableAutoCloseCheckBox.setChecked(settings.value(u'enable exit confirmation'))
self.hideMouseCheckBox.setChecked(settings.value(u'hide mouse'))
self.serviceNameDay.setCurrentIndex(settings.value(u'default service day'))
self.serviceNameTime.setTime(QtCore.QTime(settings.value(u'default service hour'),
self.recent_spin_box.setMaximum(settings.value(u'max recent files'))
self.recent_spin_box.setValue(settings.value(u'recent file count'))
self.media_plugin_check_box.setChecked(settings.value(u'save current plugin'))
self.double_click_live_check_box.setChecked(settings.value(u'double click live'))
self.singleclick_preview_check_box.setChecked(settings.value(u'single click preview'))
self.expand_service_item_check_box.setChecked(settings.value(u'expand service item'))
self.enable_auto_close_check_box.setChecked(settings.value(u'enable exit confirmation'))
self.hide_mouse_check_box.setChecked(settings.value(u'hide mouse'))
self.service_name_day.setCurrentIndex(settings.value(u'default service day'))
self.service_name_time.setTime(QtCore.QTime(settings.value(u'default service hour'),
settings.value(u'default service minute')))
self.shouldUpdateServiceNameExample = True
self.serviceNameEdit.setText(settings.value(u'default service name'))
self.should_update_service_name_example = True
self.service_name_edit.setText(settings.value(u'default service name'))
default_service_enabled = settings.value(u'default service enabled')
self.serviceNameCheckBox.setChecked(default_service_enabled)
self.serviceNameCheckBoxToggled(default_service_enabled)
self.x11BypassCheckBox.setChecked(settings.value(u'x11 bypass wm'))
self.defaultColor = settings.value(u'default color')
self.defaultFileEdit.setText(settings.value(u'default image'))
self.service_name_check_box.setChecked(default_service_enabled)
self.service_name_check_box_toggled(default_service_enabled)
self.x11_bypass_check_box.setChecked(settings.value(u'x11 bypass wm'))
self.default_color = settings.value(u'default color')
self.default_file_edit.setText(settings.value(u'default image'))
self.slide_limits = settings.value(u'slide limits')
if self.slide_limits == SlideLimits.End:
self.endSlideRadioButton.setChecked(True)
self.end_slide_radio_button.setChecked(True)
elif self.slide_limits == SlideLimits.Wrap:
self.wrapSlideRadioButton.setChecked(True)
self.wrap_slide_radio_button.setChecked(True)
else:
self.nextItemRadioButton.setChecked(True)
self.next_item_radio_button.setChecked(True)
settings.endGroup()
self.dataDirectoryCopyCheckBox.hide()
self.newDataDirectoryHasFilesLabel.hide()
self.dataDirectoryCancelButton.hide()
self.data_directory_copy_check_box.hide()
self.new_data_directory_has_files_label.hide()
self.data_directory_cancel_button.hide()
# Since data location can be changed, make sure the path is present.
self.currentDataPath = AppLocation.get_data_path()
if not os.path.exists(self.currentDataPath):
log.error(u'Data path not found %s' % self.currentDataPath)
self.current_data_path = AppLocation.get_data_path()
if not os.path.exists(self.current_data_path):
log.error(u'Data path not found %s' % self.current_data_path)
answer = QtGui.QMessageBox.critical(self,
translate('OpenLP.AdvancedTab',
'Data Directory Error'),
@ -386,10 +395,8 @@ class AdvancedTab(SettingsTab):
'Click "No" to stop loading OpenLP. allowing you to fix '
'the the problem.\n\n'
'Click "Yes" to reset the data directory to the default '
'location.').replace('%s', self.currentDataPath),
QtGui.QMessageBox.StandardButtons(
QtGui.QMessageBox.Yes |
QtGui.QMessageBox.No),
'location.').replace('%s', self.current_data_path),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No),
QtGui.QMessageBox.No)
if answer == QtGui.QMessageBox.No:
log.info(u'User requested termination')
@ -397,13 +404,13 @@ class AdvancedTab(SettingsTab):
sys.exit()
# Set data location to default.
settings.remove(u'advanced/data path')
self.currentDataPath = AppLocation.get_data_path()
log.warning(u'User requested data path set to default %s' % self.currentDataPath)
self.dataDirectoryLabel.setText(os.path.abspath(self.currentDataPath))
self.defaultColorButton.setStyleSheet(u'background-color: %s' % self.defaultColor)
self.current_data_path = AppLocation.get_data_path()
log.warning(u'User requested data path set to default %s' % self.current_data_path)
self.data_directory_label.setText(os.path.abspath(self.current_data_path))
self.default_color_button.setStyleSheet(u'background-color: %s' % self.default_color)
# Don't allow data directory move if running portable.
if settings.value(u'advanced/is portable'):
self.dataDirectoryGroupBox.hide()
self.data_directory_group_box.hide()
def save(self):
"""
@ -411,100 +418,123 @@ class AdvancedTab(SettingsTab):
"""
settings = Settings()
settings.beginGroup(self.settingsSection)
settings.setValue(u'default service enabled', self.serviceNameCheckBox.isChecked())
service_name = self.serviceNameEdit.text()
preset_is_valid = self.generateServiceNameExample()[0]
settings.setValue(u'default service enabled', self.service_name_check_box.isChecked())
service_name = self.service_name_edit.text()
preset_is_valid = self.generate_service_name_example()[0]
if service_name == UiStrings().DefaultServiceName or not preset_is_valid:
settings.remove(u'default service name')
self.serviceNameEdit.setText(service_name)
self.service_name_edit.setText(service_name)
else:
settings.setValue(u'default service name', service_name)
settings.setValue(u'default service day', self.serviceNameDay.currentIndex())
settings.setValue(u'default service hour', self.serviceNameTime.time().hour())
settings.setValue(u'default service minute', self.serviceNameTime.time().minute())
settings.setValue(u'recent file count', self.recentSpinBox.value())
settings.setValue(u'save current plugin', self.mediaPluginCheckBox.isChecked())
settings.setValue(u'double click live', self.doubleClickLiveCheckBox.isChecked())
settings.setValue(u'single click preview', self.singleClickPreviewCheckBox.isChecked())
settings.setValue(u'expand service item', self.expandServiceItemCheckBox.isChecked())
settings.setValue(u'enable exit confirmation', self.enableAutoCloseCheckBox.isChecked())
settings.setValue(u'hide mouse', self.hideMouseCheckBox.isChecked())
settings.setValue(u'x11 bypass wm', self.x11BypassCheckBox.isChecked())
settings.setValue(u'default color', self.defaultColor)
settings.setValue(u'default image', self.defaultFileEdit.text())
settings.setValue(u'default service day', self.service_name_day.currentIndex())
settings.setValue(u'default service hour', self.service_name_time.time().hour())
settings.setValue(u'default service minute', self.service_name_time.time().minute())
settings.setValue(u'recent file count', self.recent_spin_box.value())
settings.setValue(u'save current plugin', self.media_plugin_check_box.isChecked())
settings.setValue(u'double click live', self.double_click_live_check_box.isChecked())
settings.setValue(u'single click preview', self.singleclick_preview_check_box.isChecked())
settings.setValue(u'expand service item', self.expand_service_item_check_box.isChecked())
settings.setValue(u'enable exit confirmation', self.enable_auto_close_check_box.isChecked())
settings.setValue(u'hide mouse', self.hide_mouse_check_box.isChecked())
settings.setValue(u'x11 bypass wm', self.x11_bypass_check_box.isChecked())
settings.setValue(u'default color', self.default_color)
settings.setValue(u'default image', self.default_file_edit.text())
settings.setValue(u'slide limits', self.slide_limits)
settings.endGroup()
if self.displayChanged:
if self.display_changed:
Receiver.send_message(u'config_screen_changed')
self.displayChanged = False
self.display_changed = False
Receiver.send_message(u'slidecontroller_update_slide_limits')
def cancel(self):
"""
Cancel Pressed.
"""
# Dialogue was cancelled, remove any pending data path change.
self.onDataDirectoryCancelButtonClicked()
self.on_data_directory_cancel_button_clicked()
SettingsTab.cancel(self)
def serviceNameCheckBoxToggled(self, default_service_enabled):
self.serviceNameDay.setEnabled(default_service_enabled)
time_enabled = default_service_enabled and self.serviceNameDay.currentIndex() is not 7
self.serviceNameTime.setEnabled(time_enabled)
self.serviceNameEdit.setEnabled(default_service_enabled)
self.serviceNameRevertButton.setEnabled(default_service_enabled)
def service_name_check_box_toggled(self, default_service_enabled):
"""
Service Name options changed
"""
self.service_name_day.setEnabled(default_service_enabled)
time_enabled = default_service_enabled and self.service_name_day.currentIndex() is not 7
self.service_name_time.setEnabled(time_enabled)
self.service_name_edit.setEnabled(default_service_enabled)
self.service_name_revert_button.setEnabled(default_service_enabled)
def generateServiceNameExample(self):
def generate_service_name_example(self):
"""
Display an example of the template used
"""
preset_is_valid = True
if self.serviceNameDay.currentIndex() == 7:
if self.service_name_day.currentIndex() == 7:
local_time = datetime.now()
else:
now = datetime.now()
day_delta = self.serviceNameDay.currentIndex() - now.weekday()
day_delta = self.service_name_day.currentIndex() - now.weekday()
if day_delta < 0:
day_delta += 7
time = now + timedelta(days=day_delta)
local_time = time.replace(hour = self.serviceNameTime.time().hour(),
minute = self.serviceNameTime.time().minute())
local_time = time.replace(hour = self.service_name_time.time().hour(),
minute = self.service_name_time.time().minute())
try:
service_name_example = format_time(unicode(self.serviceNameEdit.text()), local_time)
service_name_example = format_time(unicode(self.service_name_edit.text()), local_time)
except ValueError:
preset_is_valid = False
service_name_example = translate('OpenLP.AdvancedTab', 'Syntax error.')
return preset_is_valid, service_name_example
def updateServiceNameExample(self, returned_value):
if not self.shouldUpdateServiceNameExample:
def update_service_name_example(self, returned_value):
"""
Example Updated
"""
if not self.should_update_service_name_example:
return
name_example = self.generateServiceNameExample()[1]
self.serviceNameExample.setText(name_example)
name_example = self.generate_service_name_example()[1]
self.service_name_example.setText(name_example)
def onServiceNameDayChanged(self, service_day):
self.serviceNameTime.setEnabled(service_day is not 7)
self.updateServiceNameExample(None)
def on_service_name_day_changed(self, service_day):
"""
Service Name day changed
"""
self.service_name_time.setEnabled(service_day is not 7)
self.update_service_name_example(None)
def onServiceNameRevertButtonClicked(self):
self.serviceNameEdit.setText(UiStrings().DefaultServiceName)
self.serviceNameEdit.setFocus()
def on_service_name_revert_button_clicked(self):
"""
Service Name reverted
"""
self.service_name_edit.setText(UiStrings().DefaultServiceName)
self.service_name_edit.setFocus()
def onDefaultColorButtonClicked(self):
def on_default_color_button_clicked(self):
"""
Changed the default color
"""
new_color = QtGui.QColorDialog.getColor(
QtGui.QColor(self.defaultColor), self)
QtGui.QColor(self.default_color), self)
if new_color.isValid():
self.defaultColor = new_color.name()
self.defaultColorButton.setStyleSheet(u'background-color: %s' % self.defaultColor)
self.default_color = new_color.name()
self.default_color_button.setStyleSheet(u'background-color: %s' % self.default_color)
def onDefaultBrowseButtonClicked(self):
file_filters = u'%s;;%s (*.*) (*)' % (get_images_filter(),
UiStrings().AllFiles)
def on_default_browse_button_clicked(self):
"""
Service Name options changed
"""
file_filters = u'%s;;%s (*.*) (*)' % (get_images_filter(), UiStrings().AllFiles)
filename = QtGui.QFileDialog.getOpenFileName(self,
translate('OpenLP.AdvancedTab', 'Open File'), '', file_filters)
if filename:
self.defaultFileEdit.setText(filename)
self.defaultFileEdit.setFocus()
self.default_file_edit.setText(filename)
self.default_file_edit.setFocus()
def onDataDirectoryBrowseButtonClicked(self):
def on_data_directory_browse_button_clicked(self):
"""
Browse for a new data directory location.
"""
old_root_path = unicode(self.dataDirectoryLabel.text())
old_root_path = unicode(self.data_directory_label.text())
# Get the new directory location.
new_data_path = QtGui.QFileDialog.getExistingDirectory(self,
translate('OpenLP.AdvancedTab', 'Select Data Directory Location'), old_root_path,
@ -512,8 +542,8 @@ class AdvancedTab(SettingsTab):
# Set the new data path.
if new_data_path:
new_data_path = os.path.normpath(new_data_path)
if self.currentDataPath.lower() == new_data_path.lower():
self.onDataDirectoryCancelButtonClicked()
if self.current_data_path.lower() == new_data_path.lower():
self.on_data_directory_cancel_button_clicked()
return
else:
return
@ -527,18 +557,18 @@ class AdvancedTab(SettingsTab):
if answer != QtGui.QMessageBox.Yes:
return
# Check if data already exists here.
self.checkDataOverwrite(new_data_path)
self.check_data_overwrite(new_data_path)
# Save the new location.
Receiver.send_message(u'set_new_data_path', new_data_path)
self.newDataDirectoryEdit.setText(new_data_path)
self.dataDirectoryCancelButton.show()
self.new_data_directory_edit.setText(new_data_path)
self.data_directory_cancel_button.show()
def onDataDirectoryDefaultButtonClicked(self):
def on_data_directory_default_button_clicked(self):
"""
Re-set the data directory location to the 'default' location.
"""
new_data_path = AppLocation.get_directory(AppLocation.DataDir)
if self.currentDataPath.lower() != new_data_path.lower():
if self.current_data_path.lower() != new_data_path.lower():
# Make sure they want to change the data location back to the
# default.
answer = QtGui.QMessageBox.question(self,
@ -548,29 +578,35 @@ class AdvancedTab(SettingsTab):
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No), QtGui.QMessageBox.No)
if answer != QtGui.QMessageBox.Yes:
return
self.checkDataOverwrite(new_data_path)
self.check_data_overwrite(new_data_path)
# Save the new location.
Receiver.send_message(u'set_new_data_path', new_data_path)
self.newDataDirectoryEdit.setText(os.path.abspath(new_data_path))
self.dataDirectoryCancelButton.show()
self.new_data_directory_edit.setText(os.path.abspath(new_data_path))
self.data_directory_cancel_button.show()
else:
# We cancel the change in case user changed their mind.
self.onDataDirectoryCancelButtonClicked()
self.on_data_directory_cancel_button_clicked()
def onDataDirectoryCopyCheckBoxToggled(self):
def on_data_directory_copy_check_box_toggled(self):
"""
Service Name options changed
"""
Receiver.send_message(u'set_copy_data',
self.dataDirectoryCopyCheckBox.isChecked())
if self.dataExists:
if self.dataDirectoryCopyCheckBox.isChecked():
self.newDataDirectoryHasFilesLabel.show()
self.data_directory_copy_check_box.isChecked())
if self.data_exists:
if self.data_directory_copy_check_box.isChecked():
self.new_data_directory_has_files_label.show()
else:
self.newDataDirectoryHasFilesLabel.hide()
self.new_data_directory_has_files_label.hide()
def checkDataOverwrite(self, data_path ):
def check_data_overwrite(self, data_path ):
"""
Service Name options changed
"""
test_path = os.path.join(data_path, u'songs')
self.dataDirectoryCopyCheckBox.show()
self.data_directory_copy_check_box.show()
if os.path.exists(test_path):
self.dataExists = True
self.data_exists = True
# Check is they want to replace existing data.
answer = QtGui.QMessageBox.warning(self,
translate('OpenLP.AdvancedTab', 'Overwrite Existing Data'),
@ -579,46 +615,58 @@ class AdvancedTab(SettingsTab):
).replace('%s', os.path.abspath(data_path,)),
QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes | QtGui.QMessageBox.No), QtGui.QMessageBox.No)
if answer == QtGui.QMessageBox.Yes:
self.dataDirectoryCopyCheckBox.setChecked(True)
self.newDataDirectoryHasFilesLabel.show()
self.data_directory_copy_check_box.setChecked(True)
self.new_data_directory_has_files_label.show()
else:
self.dataDirectoryCopyCheckBox.setChecked(False)
self.newDataDirectoryHasFilesLabel.hide()
self.data_directory_copy_check_box.setChecked(False)
self.new_data_directory_has_files_label.hide()
else:
self.dataExists = False
self.dataDirectoryCopyCheckBox.setChecked(True)
self.newDataDirectoryHasFilesLabel.hide()
self.data_exists = False
self.data_directory_copy_check_box.setChecked(True)
self.new_data_directory_has_files_label.hide()
def onDataDirectoryCancelButtonClicked(self):
def on_data_directory_cancel_button_clicked(self):
"""
Cancel the data directory location change
"""
self.newDataDirectoryEdit.clear()
self.dataDirectoryCopyCheckBox.setChecked(False)
self.new_data_directory_edit.clear()
self.data_directory_copy_check_box.setChecked(False)
Receiver.send_message(u'set_new_data_path', u'')
Receiver.send_message(u'set_copy_data', False)
self.dataDirectoryCopyCheckBox.hide()
self.dataDirectoryCancelButton.hide()
self.newDataDirectoryHasFilesLabel.hide()
self.data_directory_copy_check_box.hide()
self.data_directory_cancel_button.hide()
self.new_data_directory_has_files_label.hide()
def onDefaultRevertButtonClicked(self):
self.defaultFileEdit.setText(u':/graphics/openlp-splash-screen.png')
self.defaultFileEdit.setFocus()
def on_default_revert_button_clicked(self):
"""
Service Name options changed
"""
self.default_file_edit.setText(u':/graphics/openlp-splash-screen.png')
self.default_file_edit.setFocus()
def onX11BypassCheckBoxToggled(self, checked):
def on_X11_bypass_check_box_toggled(self, checked):
"""
Toggle X11 bypass flag on maindisplay depending on check box state.
``checked``
The state of the check box (boolean).
"""
self.displayChanged = True
self.display_changed = True
def onEndSlideButtonClicked(self):
def on_end_slide_button_clicked(self):
"""
Stop at the end either top ot bottom
"""
self.slide_limits = SlideLimits.End
def onWrapSlideButtonClicked(self):
def on_wrap_slide_button_clicked(self):
"""
Wrap round the service item
"""
self.slide_limits = SlideLimits.Wrap
def onnextItemButtonClicked(self):
def on_next_item_button_clicked(self):
"""
Advance to the next service item
"""
self.slide_limits = SlideLimits.Next

View File

@ -45,10 +45,8 @@ class PlayerTab(SettingsTab):
"""
MediaTab is the Media settings tab in the settings dialog.
"""
def __init__(self, parent, mainWindow):
self.parent = parent
self.mainWindow = mainWindow
self.mediaPlayers = mainWindow.mediaController.mediaPlayers
def __init__(self, parent):
self.mediaPlayers = self.main_window.mediaController.mediaPlayers
self.savedUsedPlayers = None
self.iconPath = u':/media/multimedia-player.png'
player_translated = translate('OpenLP.PlayerTab', 'Players')
@ -194,7 +192,7 @@ class PlayerTab(SettingsTab):
set_media_players(self.usedPlayers, override_player)
player_string_changed = True
if player_string_changed:
self.parent.reset_supported_suffixes()
self.service_manager.reset_supported_suffixes()
Receiver.send_message(u'mediaitem_media_rebuild')
Receiver.send_message(u'config_screen_changed')

View File

@ -560,7 +560,7 @@ class ServiceManager(QtGui.QWidget, ServiceManagerDialog):
if success:
try:
shutil.copy(temp_file_name, path_file_name)
except:
except :
return self.save_file_as()
self.main_window.addRecentFile(path_file_name)
self.set_modified(False)
@ -697,7 +697,8 @@ class ServiceManager(QtGui.QWidget, ServiceManagerDialog):
try:
ucsfile = zip_info.filename.decode(u'utf-8')
except UnicodeDecodeError:
log.exception(u'file_name "%s" is not valid UTF-8' % zip_info.file_name.decode(u'utf-8', u'replace'))
log.exception(u'file_name "%s" is not valid UTF-8' %
zip_info.file_name.decode(u'utf-8', u'replace'))
critical_error_message_box(message=translate('OpenLP.ServiceManager',
'File is not a valid service.\n The content encoding is not UTF-8.'))
continue
@ -809,7 +810,8 @@ class ServiceManager(QtGui.QWidget, ServiceManagerDialog):
delay_suffix = u' %s s' % unicode(service_item[u'service_item'].timed_slide_interval)
else:
delay_suffix = u' ...'
self.timed_slide_interval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') + delay_suffix)
self.timed_slide_interval.setText(translate('OpenLP.ServiceManager', '&Delay between slides') +
delay_suffix)
# TODO for future: make group explains itself more visually
else:
self.auto_play_slides_group.menuAction().setVisible(False)

View File

@ -54,11 +54,11 @@ class SettingsForm(QtGui.QDialog, Ui_SettingsDialog):
# General tab
self.generalTab = GeneralTab(self)
# Themes tab
self.themesTab = ThemesTab(self, self.main_window)
self.themesTab = ThemesTab(self)
# Advanced tab
self.advancedTab = AdvancedTab(self)
# Advanced tab
self.playerTab = PlayerTab(self, self.main_window)
self.playerTab = PlayerTab(self)
def exec_(self):
# load all the settings

View File

@ -38,8 +38,7 @@ class ThemesTab(SettingsTab):
"""
ThemesTab is the theme settings tab in the settings dialog.
"""
def __init__(self, parent, mainwindow):
self.mainwindow = mainwindow
def __init__(self, parent):
generalTranslated = translate('OpenLP.ThemesTab', 'Themes')
SettingsTab.__init__(self, parent, u'Themes', generalTranslated)
self.iconPath = u':/themes/theme_new.png'
@ -135,8 +134,8 @@ class ThemesTab(SettingsTab):
settings.setValue(u'theme level', self.theme_level)
settings.setValue(u'global theme', self.global_theme)
settings.endGroup()
self.mainwindow.renderer.set_global_theme(self.global_theme)
self.mainwindow.renderer.set_theme_level(self.theme_level)
self.renderer.set_global_theme(self.global_theme)
self.renderer.set_theme_level(self.theme_level)
Receiver.send_message(u'theme_update_global', self.global_theme)
def postSetUp(self):
@ -153,7 +152,7 @@ class ThemesTab(SettingsTab):
def onDefaultComboBoxChanged(self, value):
self.global_theme = self.DefaultComboBox.currentText()
self.mainwindow.renderer.set_global_theme(self.global_theme)
self.renderer.set_global_theme(self.global_theme)
self.__previewGlobalTheme()
def updateThemeList(self, theme_list):
@ -170,8 +169,8 @@ class ThemesTab(SettingsTab):
self.DefaultComboBox.clear()
self.DefaultComboBox.addItems(theme_list)
find_and_set_in_combo_box(self.DefaultComboBox, self.global_theme)
self.mainwindow.renderer.set_global_theme(self.global_theme)
self.mainwindow.renderer.set_theme_level(self.theme_level)
self.renderer.set_global_theme(self.global_theme)
self.renderer.set_theme_level(self.theme_level)
if self.global_theme is not u'':
self.__previewGlobalTheme()
@ -179,7 +178,7 @@ class ThemesTab(SettingsTab):
"""
Utility method to update the global theme preview image.
"""
image = self.mainwindow.themeManagerContents.getPreviewImage(self.global_theme)
image = self.main_window.themeManagerContents.getPreviewImage(self.global_theme)
preview = QtGui.QPixmap(unicode(image))
if not preview.isNull():
preview = preview.scaled(300, 255, QtCore.Qt.KeepAspectRatio, QtCore.Qt.SmoothTransformation)