forked from openlp/openlp
Resolve issues with theme changes.
Add new clear api's
This commit is contained in:
parent
8d58fb76ca
commit
67f4a0cc81
@ -38,6 +38,7 @@ log = logging.getLogger(__name__)
|
||||
|
||||
@controller_views.route('/live-item')
|
||||
def controller_text_api():
|
||||
log.debug('controller-v2-live-item')
|
||||
live_controller = Registry().get('live_controller')
|
||||
current_item = live_controller.service_item
|
||||
data = []
|
||||
@ -85,6 +86,7 @@ def controller_text_api():
|
||||
@controller_views.route('/show', methods=['POST'])
|
||||
@login_required
|
||||
def controller_set():
|
||||
log.debug('controller-v2-show-post')
|
||||
data = request.json
|
||||
if not data:
|
||||
log.error('Missing request data')
|
||||
@ -97,6 +99,7 @@ def controller_set():
|
||||
@controller_views.route('/progress', methods=['POST'])
|
||||
@login_required
|
||||
def controller_direction():
|
||||
log.debug('controller-v2-progress-post')
|
||||
ALLOWED_ACTIONS = ['next', 'previous']
|
||||
data = request.json
|
||||
if not data:
|
||||
@ -114,6 +117,7 @@ def controller_direction():
|
||||
@controller_views.route('/theme-level', methods=['GET'])
|
||||
@login_required
|
||||
def get_theme_level():
|
||||
log.debug('controller-v2-theme-level-get')
|
||||
theme_level = Registry().get('settings').value('themes/theme level')
|
||||
if theme_level == ThemeLevel.Global:
|
||||
theme_level = 'global'
|
||||
@ -127,6 +131,7 @@ def get_theme_level():
|
||||
@controller_views.route('/theme-level', methods=['POST'])
|
||||
@login_required
|
||||
def set_theme_level():
|
||||
log.debug('controller-v2-theme-level-post')
|
||||
data = request.json
|
||||
if not data:
|
||||
log.error('Missing request data')
|
||||
@ -139,10 +144,13 @@ def set_theme_level():
|
||||
abort(400)
|
||||
if theme_level == 'global':
|
||||
Registry().get('settings').setValue('themes/theme level', 1)
|
||||
Registry().execute('theme_update_global')
|
||||
elif theme_level == 'service':
|
||||
Registry().get('settings').setValue('themes/theme level', 2)
|
||||
Registry().execute('theme_update_service')
|
||||
elif theme_level == 'song':
|
||||
Registry().get('settings').setValue('theme/theme level', 3)
|
||||
Registry().get('settings').setValue('themes/theme level', 3)
|
||||
Registry().execute('theme_update_global')
|
||||
else:
|
||||
log.error('Unsupported data passed ' + theme_level)
|
||||
abort(400)
|
||||
@ -152,6 +160,7 @@ def set_theme_level():
|
||||
@controller_views.route('/themes', methods=['GET'])
|
||||
@login_required
|
||||
def get_themes():
|
||||
log.debug('controller-v2-themes-get')
|
||||
theme_level = Registry().get('settings').value('themes/theme level')
|
||||
theme_list = []
|
||||
current_theme = ''
|
||||
@ -182,6 +191,7 @@ def get_theme():
|
||||
"""
|
||||
Get the current theme
|
||||
"""
|
||||
log.debug('controller-v2-theme-get')
|
||||
theme_level = Registry().get('settings').value('themes/theme level')
|
||||
if theme_level == ThemeLevel.Service:
|
||||
theme = Registry().get('settings').value('servicemanager/service theme')
|
||||
@ -193,6 +203,7 @@ def get_theme():
|
||||
@controller_views.route('/theme', methods=['POST'])
|
||||
@login_required
|
||||
def set_theme():
|
||||
log.debug('controller-v2-themes-post')
|
||||
data = request.json
|
||||
theme = ''
|
||||
theme_level = Registry().get('settings').value('themes/theme level')
|
||||
@ -214,3 +225,19 @@ def set_theme():
|
||||
log.error('Unimplemented method')
|
||||
return '', 501
|
||||
return '', 204
|
||||
|
||||
|
||||
@controller_views.route('/clear/<controller>', methods=['POST'])
|
||||
@login_required
|
||||
def controller_clear(controller):
|
||||
"""
|
||||
Clears the slide controller display
|
||||
:param controller: the Live or Preview controller
|
||||
:return: HTTP return code
|
||||
"""
|
||||
log.debug(f'controller-v2-clear-get {controller}')
|
||||
if controller in ['live', 'preview']:
|
||||
getattr(Registry().get(f'{controller}_controller'), f'slidecontroller_{controller}_clear').emit()
|
||||
return '', 204
|
||||
else:
|
||||
return '', 404
|
||||
|
@ -52,7 +52,7 @@ def service_items():
|
||||
'ccli_number': str(ccli_number),
|
||||
'notes': str(service_item.notes),
|
||||
'selected': (service_item.unique_identifier == current_unique_identifier),
|
||||
'is_valid': str(service_item.is_valid)
|
||||
'is_valid': service_item.is_valid
|
||||
})
|
||||
return jsonify(service_items)
|
||||
|
||||
|
@ -505,9 +505,12 @@ class SlideController(QtWidgets.QWidget, LogMixin, RegistryProperties):
|
||||
getattr(self,
|
||||
'slidecontroller_{}_previous'.format(self.type_prefix)).connect(self.on_slide_selected_previous)
|
||||
if self.is_live:
|
||||
getattr(self, 'slidecontroller_live_clear').connect(self.on_clear)
|
||||
self.mediacontroller_live_play.connect(self.media_controller.on_media_play)
|
||||
self.mediacontroller_live_pause.connect(self.media_controller.on_media_pause)
|
||||
self.mediacontroller_live_stop.connect(self.media_controller.on_media_stop)
|
||||
else:
|
||||
getattr(self, 'slidecontroller_preview_clear').connect(self.on_clear)
|
||||
|
||||
def new_song_menu(self):
|
||||
"""
|
||||
@ -1485,6 +1488,7 @@ class PreviewController(RegistryBase, SlideController):
|
||||
slidecontroller_preview_set = QtCore.pyqtSignal(list)
|
||||
slidecontroller_preview_next = QtCore.pyqtSignal()
|
||||
slidecontroller_preview_previous = QtCore.pyqtSignal()
|
||||
slidecontroller_preview_clear = QtCore.pyqtSignal()
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
"""
|
||||
@ -1511,6 +1515,7 @@ class LiveController(RegistryBase, SlideController):
|
||||
slidecontroller_live_next = QtCore.pyqtSignal()
|
||||
slidecontroller_live_previous = QtCore.pyqtSignal()
|
||||
slidecontroller_toggle_display = QtCore.pyqtSignal(str)
|
||||
slidecontroller_live_clear = QtCore.pyqtSignal()
|
||||
mediacontroller_live_play = QtCore.pyqtSignal()
|
||||
mediacontroller_live_pause = QtCore.pyqtSignal()
|
||||
mediacontroller_live_stop = QtCore.pyqtSignal()
|
||||
|
Loading…
Reference in New Issue
Block a user