Fix placeholder for service name for non AscII characters

bzr-revno: 2062
This commit is contained in:
Martin Zibricky 2012-09-15 11:01:17 +01:00 committed by Tim Bentley
commit 20bfde8e5a
3 changed files with 21 additions and 5 deletions

View File

@ -38,7 +38,7 @@ import sys
from openlp.core.lib import SettingsTab, translate, build_icon, Receiver from openlp.core.lib import SettingsTab, translate, build_icon, Receiver
from openlp.core.lib.settings import Settings from openlp.core.lib.settings import Settings
from openlp.core.lib.ui import UiStrings from openlp.core.lib.ui import UiStrings
from openlp.core.utils import get_images_filter, AppLocation from openlp.core.utils import get_images_filter, AppLocation, format_time
from openlp.core.lib import SlideLimits from openlp.core.lib import SlideLimits
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -622,7 +622,7 @@ class AdvancedTab(SettingsTab):
time = time.replace(hour = self.serviceNameTime.time().hour(), time = time.replace(hour = self.serviceNameTime.time().hour(),
minute = self.serviceNameTime.time().minute()) minute = self.serviceNameTime.time().minute())
try: try:
service_name_example = time.strftime(unicode( service_name_example = format_time(unicode(
self.serviceNameEdit.text())) self.serviceNameEdit.text()))
except ValueError: except ValueError:
preset_is_valid = False preset_is_valid = False

View File

@ -47,7 +47,8 @@ from openlp.core.lib.ui import UiStrings, critical_error_message_box, \
create_widget_action, find_and_set_in_combo_box create_widget_action, find_and_set_in_combo_box
from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm from openlp.core.ui import ServiceNoteForm, ServiceItemEditForm, StartTimeForm
from openlp.core.ui.printserviceform import PrintServiceForm from openlp.core.ui.printserviceform import PrintServiceForm
from openlp.core.utils import AppLocation, delete_file, split_filename from openlp.core.utils import AppLocation, delete_file, split_filename, \
format_time
from openlp.core.utils.actions import ActionList, CategoryOrder from openlp.core.utils.actions import ActionList, CategoryOrder
class ServiceManagerList(QtGui.QTreeWidget): class ServiceManagerList(QtGui.QTreeWidget):
@ -621,7 +622,7 @@ class ServiceManager(QtGui.QWidget):
'/\\?*|<>\[\]":+\nSee http://docs.python.org/library/' '/\\?*|<>\[\]":+\nSee http://docs.python.org/library/'
'datetime.html#strftime-strptime-behavior for more ' 'datetime.html#strftime-strptime-behavior for more '
'information.')).toString()) 'information.')).toString())
default_filename = time.strftime(default_pattern) default_filename = format_time(default_pattern)
else: else:
default_filename = u'' default_filename = u''
directory = unicode(SettingsManager.get_last_dir( directory = unicode(SettingsManager.get_last_dir(

View File

@ -35,6 +35,7 @@ import os
import re import re
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
import sys import sys
import time
import urllib2 import urllib2
from openlp.core.lib.settings import Settings from openlp.core.lib.settings import Settings
@ -469,10 +470,24 @@ def get_uno_instance(resolver):
return resolver.resolve(u'uno:socket,host=localhost,port=2002;' \ return resolver.resolve(u'uno:socket,host=localhost,port=2002;' \
+ u'urp;StarOffice.ComponentContext') + u'urp;StarOffice.ComponentContext')
def format_time(text):
"""
Workaround for Python built-in time formatting fuction time.strftime().
time.strftime() accepts only ascii characters. This function accepts
unicode string and passes individual % placeholders to time.strftime().
This ensures only ascii characters are passed to time.strftime().
"""
def match_formatting(match):
return time.strftime(match.group())
return re.sub('\%[a-zA-Z]', match_formatting, text)
from languagemanager import LanguageManager from languagemanager import LanguageManager
from actions import ActionList from actions import ActionList
__all__ = [u'AppLocation', u'get_application_version', u'check_latest_version', __all__ = [u'AppLocation', u'get_application_version', u'check_latest_version',
u'add_actions', u'get_filesystem_encoding', u'LanguageManager', u'add_actions', u'get_filesystem_encoding', u'LanguageManager',
u'ActionList', u'get_web_page', u'get_uno_command', u'get_uno_instance', u'ActionList', u'get_web_page', u'get_uno_command', u'get_uno_instance',
u'delete_file', u'clean_filename'] u'delete_file', u'clean_filename', u'format_time']