forked from openlp/openlp
Update code to 2.2 from 2.1 so translators can get working!
bzr-revno: 2460
This commit is contained in:
commit
98a3cd127f
@ -115,7 +115,7 @@ class UiStrings(object):
|
||||
self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular')
|
||||
self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
|
||||
self.OLPV2 = translate('OpenLP.Ui', 'OpenLP 2')
|
||||
self.OLPV2x = translate('OpenLP.Ui', 'OpenLP 2.1')
|
||||
self.OLPV2x = translate('OpenLP.Ui', 'OpenLP 2.2')
|
||||
self.OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you wish to continue?')
|
||||
self.OpenService = translate('OpenLP.Ui', 'Open service.')
|
||||
self.PlaySlidesInLoop = translate('OpenLP.Ui', 'Play Slides in Loop')
|
||||
|
@ -96,7 +96,6 @@ class CustomMediaItem(MediaManagerItem):
|
||||
def retranslateUi(self):
|
||||
"""
|
||||
|
||||
|
||||
"""
|
||||
self.search_text_label.setText('%s:' % UiStrings().Search)
|
||||
self.search_text_button.setText(UiStrings().Search)
|
||||
@ -134,6 +133,7 @@ class CustomMediaItem(MediaManagerItem):
|
||||
# Called to redisplay the custom list screen edith from a search
|
||||
# or from the exit of the Custom edit dialog. If remote editing is
|
||||
# active trigger it and clean up so it will not update again.
|
||||
self.check_search_result()
|
||||
|
||||
def on_new_click(self):
|
||||
"""
|
||||
|
@ -29,7 +29,6 @@
|
||||
|
||||
import logging
|
||||
import os
|
||||
from datetime import time
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
@ -126,18 +125,18 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
||||
Adds buttons to the start of the header bar.
|
||||
"""
|
||||
if 'vlc' in get_media_players()[0]:
|
||||
diable_optical_button_text = False
|
||||
disable_optical_button_text = False
|
||||
optical_button_text = translate('MediaPlugin.MediaItem', 'Load CD/DVD')
|
||||
optical_button_tooltip = translate('MediaPlugin.MediaItem', 'Load CD/DVD')
|
||||
else:
|
||||
diable_optical_button_text = True
|
||||
disable_optical_button_text = True
|
||||
optical_button_text = translate('MediaPlugin.MediaItem', 'Load CD/DVD')
|
||||
optical_button_tooltip = translate('MediaPlugin.MediaItem',
|
||||
'Load CD/DVD - only supported when VLC is installed and enabled')
|
||||
self.load_optical = self.toolbar.add_toolbar_action('load_optical', icon=OPTICAL_ICON, text=optical_button_text,
|
||||
tooltip=optical_button_tooltip,
|
||||
triggers=self.on_load_optical)
|
||||
if diable_optical_button_text:
|
||||
if disable_optical_button_text:
|
||||
self.load_optical.setDisabled(True)
|
||||
|
||||
def add_end_header_bar(self):
|
||||
@ -282,7 +281,6 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
|
||||
Initialize media item.
|
||||
"""
|
||||
self.list_view.clear()
|
||||
self.list_view.setIconSize(QtCore.QSize(88, 50))
|
||||
self.service_path = os.path.join(AppLocation.get_section_data_path(self.settings_section), 'thumbnails')
|
||||
check_directory_exists(self.service_path)
|
||||
self.load_list(Settings().value(self.settings_section + '/media files'))
|
||||
|
@ -306,9 +306,9 @@ class HttpRouter(RegistryProperties):
|
||||
Translate various strings in the mobile app.
|
||||
"""
|
||||
self.template_vars = {
|
||||
'app_title': translate('RemotePlugin.Mobile', 'OpenLP 2.1 Remote'),
|
||||
'stage_title': translate('RemotePlugin.Mobile', 'OpenLP 2.1 Stage View'),
|
||||
'live_title': translate('RemotePlugin.Mobile', 'OpenLP 2.1 Live View'),
|
||||
'app_title': translate('RemotePlugin.Mobile', 'OpenLP 2.2 Remote'),
|
||||
'stage_title': translate('RemotePlugin.Mobile', 'OpenLP 2.2 Stage View'),
|
||||
'live_title': translate('RemotePlugin.Mobile', 'OpenLP 2.2 Live View'),
|
||||
'service_manager': translate('RemotePlugin.Mobile', 'Service Manager'),
|
||||
'slide_controller': translate('RemotePlugin.Mobile', 'Slide Controller'),
|
||||
'alerts': translate('RemotePlugin.Mobile', 'Alerts'),
|
||||
|
@ -265,7 +265,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog, RegistryProperties):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _validate_tags(self, tags):
|
||||
def _validate_tags(self, tags, first_time=True):
|
||||
"""
|
||||
Validates a list of tags
|
||||
Deletes the first affiliated tag pair which is located side by side in the list
|
||||
@ -277,6 +277,12 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog, RegistryProperties):
|
||||
:param tags: A list of tags
|
||||
:return: True if the function can't find any mismatched tags. Else False.
|
||||
"""
|
||||
if first_time:
|
||||
fixed_tags = []
|
||||
for i in range(len(tags)):
|
||||
if tags[i] != '{br}':
|
||||
fixed_tags.append(tags[i])
|
||||
tags = fixed_tags
|
||||
if len(tags) == 0:
|
||||
return True
|
||||
if len(tags) % 2 != 0:
|
||||
@ -284,7 +290,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog, RegistryProperties):
|
||||
for i in range(len(tags)-1):
|
||||
if tags[i+1] == "{/" + tags[i][1:]:
|
||||
del tags[i:i+2]
|
||||
return self._validate_tags(tags)
|
||||
return self._validate_tags(tags, False)
|
||||
return False
|
||||
|
||||
def _process_lyrics(self):
|
||||
|
@ -382,7 +382,7 @@ class TestUtils(TestCase):
|
||||
mocked_page_object = MagicMock()
|
||||
mock_urlopen.return_value = mocked_page_object
|
||||
fake_url = 'this://is.a.fake/url'
|
||||
user_agent_header = ('User-Agent', 'OpenLP/2.1.0')
|
||||
user_agent_header = ('User-Agent', 'OpenLP/2.2.0')
|
||||
|
||||
# WHEN: The get_web_page() method is called
|
||||
returned_page = get_web_page(fake_url, header=user_agent_header)
|
||||
|
57
tests/functional/openlp_plugins/songs/test_editsongform.py
Normal file
57
tests/functional/openlp_plugins/songs/test_editsongform.py
Normal file
@ -0,0 +1,57 @@
|
||||
"""
|
||||
This module contains tests for the lib submodule of the Songs plugin.
|
||||
"""
|
||||
from unittest import TestCase
|
||||
|
||||
from PyQt4 import QtCore, QtGui
|
||||
|
||||
from openlp.core.common import Registry, Settings
|
||||
from openlp.core.lib import ServiceItem
|
||||
from openlp.plugins.songs.forms.editsongform import EditSongForm
|
||||
from openlp.plugins.songs.lib.db import AuthorType
|
||||
from tests.functional import patch, MagicMock
|
||||
from tests.helpers.testmixin import TestMixin
|
||||
|
||||
|
||||
class TestEditSongForm(TestCase, TestMixin):
|
||||
"""
|
||||
Test the functions in the :mod:`lib` module.
|
||||
"""
|
||||
def setUp(self):
|
||||
"""
|
||||
Set up the components need for all tests.
|
||||
"""
|
||||
Registry.create()
|
||||
Registry().register('service_list', MagicMock())
|
||||
Registry().register('main_window', MagicMock())
|
||||
with patch('openlp.plugins.songs.forms.editsongform.EditSongForm.__init__', return_value=None):
|
||||
self.edit_song_form = EditSongForm(None, MagicMock(), MagicMock())
|
||||
self.setup_application()
|
||||
self.build_settings()
|
||||
QtCore.QLocale.setDefault(QtCore.QLocale('en_GB'))
|
||||
|
||||
def tearDown(self):
|
||||
"""
|
||||
Delete all the C++ objects at the end so that we don't have a segfault
|
||||
"""
|
||||
self.destroy_settings()
|
||||
|
||||
def validate_matching_tags_test(self):
|
||||
# Given a set of tags
|
||||
tags = ['{r}', '{/r}', '{bl}', '{/bl}', '{su}', '{/su}']
|
||||
|
||||
# WHEN we validate them
|
||||
valid = self.edit_song_form._validate_tags(tags)
|
||||
|
||||
# THEN they should be valid
|
||||
self.assertTrue(valid, "The tags list should be valid")
|
||||
|
||||
def validate_nonmatching_tags_test(self):
|
||||
# Given a set of tags
|
||||
tags = ['{r}', '{/r}', '{bl}', '{/bl}', '{br}', '{su}', '{/su}']
|
||||
|
||||
# WHEN we validate them
|
||||
valid = self.edit_song_form._validate_tags(tags)
|
||||
|
||||
# THEN they should be valid
|
||||
self.assertTrue(valid, "The tags list should be valid")
|
Loading…
Reference in New Issue
Block a user