Merge branch 'maintenance/gramps40' of ssh://git.code.sf.net/p/gramps/source into gramps40

This commit is contained in:
Espen Berg 2014-03-08 21:24:53 +01:00
commit dd206b0030
7 changed files with 13666 additions and 13325 deletions

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -41,6 +41,9 @@ from __future__ import print_function
import os
import sys
import re
import logging
LOG = logging.getLogger('.' + __name__)
LOG.progagate = True
from ..const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
@ -250,7 +253,12 @@ class BasePluginManager(object):
if pdata.fpath not in sys.path:
if pdata.mod_name:
sys.path.insert(0, pdata.fpath)
module = __import__(pdata.mod_name)
try:
module = __import__(pdata.mod_name)
except ValueError as err:
LOG.warning('Plugin error: %s', err)
except ImportError as err:
LOG.warning('Plugin error: %s', err)
sys.path.pop(0)
else:
print("WARNING: module cannot be loaded")

View File

@ -231,10 +231,10 @@ class GrampsLocale(object):
if not self.language:
self.language = [self.lang[:5]]
if 'LC_COLLATE' in os.environ:
coll = os.environ['LC_COLLATE']
if 'COLLATION' in os.environ:
coll = os.environ['COLLATION']
if HAVE_ICU:
if coll[:5] in ICU_LOCALES:
if coll[:2] in ICU_LOCALES:
self.collation = coll
else:
self.collation = self.lang
@ -341,6 +341,9 @@ class GrampsLocale(object):
else:
self.collation = self.lang
if HAVE_ICU and 'COLLATION' in os.environ:
self.collation = os.environ['COLLATION']
loc = locale.getlocale(locale.LC_NUMERIC)
if loc and loc[0]:
self.numeric = '.'.join(loc)
@ -538,9 +541,6 @@ class GrampsLocale(object):
else:
self.language = None
#For alternate collation sequences. Works only with ICU, and
#set only on Macs.
self.coll_qualifier = None
_first = self._GrampsLocale__first_instance
if self == _first:
self._GrampsLocale__init_first_instance()
@ -607,7 +607,7 @@ class GrampsLocale(object):
if not languages or len(languages) == 0:
LOG.warning("No language provided, using US English")
else:
raise ValueError("No usable translations in %s" %
raise ValueError("No usable translations in %s for " %
':'.join(languages))
translator = GrampsNullTranslations()
translator._language = "en"

View File

@ -194,24 +194,27 @@ def mac_setup_localization(glocale):
"""
Extract the collation (sort order) locale from the defaults string.
"""
apple_collation = _mac_get_gramps_defaults("Gramps", "AppleCollationOrder")
# The locale module can't deal with collation-qualified
# locales and setting one blows up setlocale, so we use
# $COLLATION directly instead.
if ('COLLATION') in os.environ:
apple_collation = os.environ['COLLATION']
else:
apple_collation = _mac_get_gramps_defaults("Gramps",
"AppleCollationOrder")
if not apple_collation:
apple_collation = _mac_get_gramps_defaults("Global",
"AppleCollationOrder")
if not apple_collation:
return (None, None)
print('No apple collation')
return None
apple_collation = apple_collation.strip()
if not apple_collation or apple_collation.startswith("root"):
return (None, None)
div = apple_collation.split(b"@")
collation = div[0]
qualifier = None
if len(div) > 1:
parts = div[1].split(b"=")
if len(parts) == 2 and parts[0] == 'collation':
qualifier = parts[1]
return (collation, qualifier)
print('No meaningful apple collation')
return None
print('Got collation %s from defaults' % apple_collation)
return apple_collation
#The action starts here
_locale = None
@ -234,12 +237,11 @@ def mac_setup_localization(glocale):
(glocale.lang, glocale.currency, glocale.calendar) = _mac_get_locale()
glocale.coll_qualifier = None
glocale.collation = locale.getlocale(locale.LC_COLLATE)[0]
if not glocale.collation:
(glocale.collation, glocale.coll_qualifier) = _mac_get_collation()
glocale.collation = _mac_get_collation()
if not glocale.lang and glocale.collation:
glocale.lang = glocale.check_available_translations(glocale.collation)
coll_parts = glocale.collation.split('@')
glocale.lang = glocale.check_available_translations(coll_parts[0])
glocale.lang = locale.normalize(glocale.lang)
glocale.encoding = glocale.lang.split('.')[1]

View File

@ -290,7 +290,17 @@ class EditMedia(EditPrimary):
return
path = self.file_path.get_text()
self.determine_mime()
if os.path.isfile(path):
self.determine_mime()
else:
msg1 = _("There is no media matching the current path value!")
msg2 = _("You have attempted to use the path with "
"value '%(path)s'. This path does not exist!"
" Please enter a different path") % {
'path' : path }
ErrorDialog(msg1, msg2)
self.ok_button.set_sensitive(True)
return
self.obj.set_path(get_unicode_path_from_file_chooser(path))