Update code to 2.2 from 2.1 so translators can get working!

bzr-revno: 2460
This commit is contained in:
Tim Bentley 2014-12-22 21:55:44 +00:00
commit 98a3cd127f
7 changed files with 74 additions and 13 deletions

View File

@ -115,7 +115,7 @@ class UiStrings(object):
self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular') self.NISs = translate('OpenLP.Ui', 'No Item Selected', 'Singular')
self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural') self.NISp = translate('OpenLP.Ui', 'No Items Selected', 'Plural')
self.OLPV2 = translate('OpenLP.Ui', 'OpenLP 2') 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.OpenLPStart = translate('OpenLP.Ui', 'OpenLP is already running. Do you wish to continue?')
self.OpenService = translate('OpenLP.Ui', 'Open service.') self.OpenService = translate('OpenLP.Ui', 'Open service.')
self.PlaySlidesInLoop = translate('OpenLP.Ui', 'Play Slides in Loop') self.PlaySlidesInLoop = translate('OpenLP.Ui', 'Play Slides in Loop')

View File

@ -96,7 +96,6 @@ class CustomMediaItem(MediaManagerItem):
def retranslateUi(self): def retranslateUi(self):
""" """
""" """
self.search_text_label.setText('%s:' % UiStrings().Search) self.search_text_label.setText('%s:' % UiStrings().Search)
self.search_text_button.setText(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 # Called to redisplay the custom list screen edith from a search
# or from the exit of the Custom edit dialog. If remote editing is # 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. # active trigger it and clean up so it will not update again.
self.check_search_result()
def on_new_click(self): def on_new_click(self):
""" """

View File

@ -29,7 +29,6 @@
import logging import logging
import os import os
from datetime import time
from PyQt4 import QtCore, QtGui from PyQt4 import QtCore, QtGui
@ -126,18 +125,18 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
Adds buttons to the start of the header bar. Adds buttons to the start of the header bar.
""" """
if 'vlc' in get_media_players()[0]: 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_text = translate('MediaPlugin.MediaItem', 'Load CD/DVD')
optical_button_tooltip = translate('MediaPlugin.MediaItem', 'Load CD/DVD') optical_button_tooltip = translate('MediaPlugin.MediaItem', 'Load CD/DVD')
else: else:
diable_optical_button_text = True disable_optical_button_text = True
optical_button_text = translate('MediaPlugin.MediaItem', 'Load CD/DVD') optical_button_text = translate('MediaPlugin.MediaItem', 'Load CD/DVD')
optical_button_tooltip = translate('MediaPlugin.MediaItem', optical_button_tooltip = translate('MediaPlugin.MediaItem',
'Load CD/DVD - only supported when VLC is installed and enabled') '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, self.load_optical = self.toolbar.add_toolbar_action('load_optical', icon=OPTICAL_ICON, text=optical_button_text,
tooltip=optical_button_tooltip, tooltip=optical_button_tooltip,
triggers=self.on_load_optical) triggers=self.on_load_optical)
if diable_optical_button_text: if disable_optical_button_text:
self.load_optical.setDisabled(True) self.load_optical.setDisabled(True)
def add_end_header_bar(self): def add_end_header_bar(self):
@ -282,7 +281,6 @@ class MediaMediaItem(MediaManagerItem, RegistryProperties):
Initialize media item. Initialize media item.
""" """
self.list_view.clear() 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') self.service_path = os.path.join(AppLocation.get_section_data_path(self.settings_section), 'thumbnails')
check_directory_exists(self.service_path) check_directory_exists(self.service_path)
self.load_list(Settings().value(self.settings_section + '/media files')) self.load_list(Settings().value(self.settings_section + '/media files'))

View File

@ -306,9 +306,9 @@ class HttpRouter(RegistryProperties):
Translate various strings in the mobile app. Translate various strings in the mobile app.
""" """
self.template_vars = { self.template_vars = {
'app_title': translate('RemotePlugin.Mobile', 'OpenLP 2.1 Remote'), 'app_title': translate('RemotePlugin.Mobile', 'OpenLP 2.2 Remote'),
'stage_title': translate('RemotePlugin.Mobile', 'OpenLP 2.1 Stage View'), 'stage_title': translate('RemotePlugin.Mobile', 'OpenLP 2.2 Stage View'),
'live_title': translate('RemotePlugin.Mobile', 'OpenLP 2.1 Live View'), 'live_title': translate('RemotePlugin.Mobile', 'OpenLP 2.2 Live View'),
'service_manager': translate('RemotePlugin.Mobile', 'Service Manager'), 'service_manager': translate('RemotePlugin.Mobile', 'Service Manager'),
'slide_controller': translate('RemotePlugin.Mobile', 'Slide Controller'), 'slide_controller': translate('RemotePlugin.Mobile', 'Slide Controller'),
'alerts': translate('RemotePlugin.Mobile', 'Alerts'), 'alerts': translate('RemotePlugin.Mobile', 'Alerts'),

View File

@ -265,7 +265,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog, RegistryProperties):
return False return False
return True return True
def _validate_tags(self, tags): def _validate_tags(self, tags, first_time=True):
""" """
Validates a list of tags Validates a list of tags
Deletes the first affiliated tag pair which is located side by side in the list 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 :param tags: A list of tags
:return: True if the function can't find any mismatched tags. Else False. :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: if len(tags) == 0:
return True return True
if len(tags) % 2 != 0: if len(tags) % 2 != 0:
@ -284,7 +290,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog, RegistryProperties):
for i in range(len(tags)-1): for i in range(len(tags)-1):
if tags[i+1] == "{/" + tags[i][1:]: if tags[i+1] == "{/" + tags[i][1:]:
del tags[i:i+2] del tags[i:i+2]
return self._validate_tags(tags) return self._validate_tags(tags, False)
return False return False
def _process_lyrics(self): def _process_lyrics(self):

View File

@ -382,7 +382,7 @@ class TestUtils(TestCase):
mocked_page_object = MagicMock() mocked_page_object = MagicMock()
mock_urlopen.return_value = mocked_page_object mock_urlopen.return_value = mocked_page_object
fake_url = 'this://is.a.fake/url' 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 # WHEN: The get_web_page() method is called
returned_page = get_web_page(fake_url, header=user_agent_header) returned_page = get_web_page(fake_url, header=user_agent_header)

View 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")