From d9b54a0da5205a386de4468835719735a08162ef Mon Sep 17 00:00:00 2001 From: Don Allingham Date: Fri, 30 Dec 2005 03:57:31 +0000 Subject: [PATCH] * src/GrampsLocale.py: handle platform specific locale issues * src/DateDisplay.py: use GrampsLocale * src/DateParser.py: use GrampsLocale * src/DisplayModels.py: use GrampsLocale * src/Exporter.py: start conversion to Assistant * src/RecentFiles.py: fcntl option for broken platforms * src/StartupDialog.py: convert to Assistant * src/ViewManager.py: remove debug statement * src/RelLib/_PrimaryObject.py: use GrampsLocale * src/plugins/Checkpoint.py: use GrampsLocale * src/plugins/NavWebPage.py: use GrampsLocale svn: r5644 --- gramps2/ChangeLog | 14 +++ gramps2/src/DateDisplay.py | 44 +------ gramps2/src/DateParser.py | 33 +----- gramps2/src/DisplayModels.py | 15 +-- gramps2/src/Exporter.py | 49 ++++---- gramps2/src/GrampsLocale.py | 168 +++++++++++++++++++++++++++ gramps2/src/PeopleModel.py | 9 +- gramps2/src/RecentFiles.py | 32 +++-- gramps2/src/RelLib/_PrimaryObject.py | 8 +- gramps2/src/StartupDialog.py | 16 +-- gramps2/src/ViewManager.py | 1 - gramps2/src/plugins/Checkpoint.py | 3 +- gramps2/src/plugins/NavWebPage.py | 5 +- 13 files changed, 258 insertions(+), 139 deletions(-) create mode 100644 gramps2/src/GrampsLocale.py diff --git a/gramps2/ChangeLog b/gramps2/ChangeLog index a16b75438..404194d89 100644 --- a/gramps2/ChangeLog +++ b/gramps2/ChangeLog @@ -1,3 +1,17 @@ +2005-12-29 Don Allingham + * src/GrampsLocale.py: handle platform specific locale issues + * src/DateDisplay.py: use GrampsLocale + * src/DateParser.py: use GrampsLocale + * src/DisplayModels.py: use GrampsLocale + * src/Exporter.py: start conversion to Assistant + * src/PeopleModel.py: use GrampsLocale + * src/RecentFiles.py: fcntl option for broken platforms + * src/StartupDialog.py: convert to Assistant + * src/ViewManager.py: remove debug statement + * src/RelLib/_PrimaryObject.py: use GrampsLocale + * src/plugins/Checkpoint.py: use GrampsLocale + * src/plugins/NavWebPage.py: use GrampsLocale + 2005-12-29 Martin Hawlisch * src/PedView.py: Use a DrawingArea for nicer person boxes * src/GrampsDb/_GrampsDbBase.py (_update_reference_map): Sync diff --git a/gramps2/src/DateDisplay.py b/gramps2/src/DateDisplay.py index b57a63934..a22371950 100644 --- a/gramps2/src/DateDisplay.py +++ b/gramps2/src/DateDisplay.py @@ -29,53 +29,17 @@ __author__ = "Donald N. Allingham" __version__ = "$Revision$" import Date -import locale from gettext import gettext as _ +import GrampsLocale class DateDisplay: - # determine the code set returned by nl_langinfo - _codeset = locale.nl_langinfo(locale.CODESET) - - # get month information from nl_langinfo. Since nl_langinfo - # returns data in the code set specified by the user, and - # gnome wants unicode, we need to convert each string from - # the native code set into unicode - _months = ( - "", - unicode(locale.nl_langinfo(locale.MON_1),_codeset), - unicode(locale.nl_langinfo(locale.MON_2),_codeset), - unicode(locale.nl_langinfo(locale.MON_3),_codeset), - unicode(locale.nl_langinfo(locale.MON_4),_codeset), - unicode(locale.nl_langinfo(locale.MON_5),_codeset), - unicode(locale.nl_langinfo(locale.MON_6),_codeset), - unicode(locale.nl_langinfo(locale.MON_7),_codeset), - unicode(locale.nl_langinfo(locale.MON_8),_codeset), - unicode(locale.nl_langinfo(locale.MON_9),_codeset), - unicode(locale.nl_langinfo(locale.MON_10),_codeset), - unicode(locale.nl_langinfo(locale.MON_11),_codeset), - unicode(locale.nl_langinfo(locale.MON_12),_codeset), - ) + _months = GrampsLocale.long_months + _MONS = GrampsLocale.short_months - _MONS = ( - "", - unicode(locale.nl_langinfo(locale.ABMON_1),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_2),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_3),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_4),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_5),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_6),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_7),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_8),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_9),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_10),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_11),_codeset), - unicode(locale.nl_langinfo(locale.ABMON_12),_codeset), - ) + _tformat = GrampsLocale.tformat - _tformat = locale.nl_langinfo(locale.D_FMT).replace('%y','%Y') - _hebrew = ( "", "Tishri", "Heshvan", "Kislev", "Tevet", "Shevat", "AdarI", "AdarII", "Nisan", "Iyyar", "Sivan", "Tammuz", diff --git a/gramps2/src/DateParser.py b/gramps2/src/DateParser.py index 9fefbc849..72fa6aa1f 100644 --- a/gramps2/src/DateParser.py +++ b/gramps2/src/DateParser.py @@ -35,7 +35,6 @@ __version__ = "$Revision$" # #------------------------------------------------------------------------- import re -import locale import calendar #------------------------------------------------------------------------- @@ -44,6 +43,7 @@ import calendar # #------------------------------------------------------------------------- import Date +import GrampsLocale from Errors import DateError #------------------------------------------------------------------------- # @@ -80,8 +80,6 @@ class DateParser: converted, the text string is assigned. """ - # determine the code set returned by nl_langinfo - _codeset = locale.nl_langinfo(locale.CODESET) _fmt_parse = re.compile(".*%(\S).*%(\S).*%(\S).*") # RFC-2822 only uses capitalized English abbreviated names, no locales. @@ -92,32 +90,7 @@ class DateParser: 'Sep' : 9, 'Oct' : 10, 'Nov' : 11, 'Dec' : 12, } - month_to_int = { - unicode(locale.nl_langinfo(locale.MON_1),_codeset).lower() : 1, - unicode(locale.nl_langinfo(locale.ABMON_1),_codeset).lower() : 1, - unicode(locale.nl_langinfo(locale.MON_2),_codeset).lower() : 2, - unicode(locale.nl_langinfo(locale.ABMON_2),_codeset).lower() : 2, - unicode(locale.nl_langinfo(locale.MON_3),_codeset).lower() : 3, - unicode(locale.nl_langinfo(locale.ABMON_3),_codeset).lower() : 3, - unicode(locale.nl_langinfo(locale.MON_4),_codeset).lower() : 4, - unicode(locale.nl_langinfo(locale.ABMON_4),_codeset).lower() : 4, - unicode(locale.nl_langinfo(locale.MON_5),_codeset).lower() : 5, - unicode(locale.nl_langinfo(locale.ABMON_5),_codeset).lower() : 5, - unicode(locale.nl_langinfo(locale.MON_6),_codeset).lower() : 6, - unicode(locale.nl_langinfo(locale.ABMON_6),_codeset).lower() : 6, - unicode(locale.nl_langinfo(locale.MON_7),_codeset).lower() : 7, - unicode(locale.nl_langinfo(locale.ABMON_7),_codeset).lower() : 7, - unicode(locale.nl_langinfo(locale.MON_8),_codeset).lower() : 8, - unicode(locale.nl_langinfo(locale.ABMON_8),_codeset).lower() : 8, - unicode(locale.nl_langinfo(locale.MON_9),_codeset).lower() : 9, - unicode(locale.nl_langinfo(locale.ABMON_9),_codeset).lower() : 9, - unicode(locale.nl_langinfo(locale.MON_10),_codeset).lower() : 10, - unicode(locale.nl_langinfo(locale.ABMON_10),_codeset).lower(): 10, - unicode(locale.nl_langinfo(locale.MON_11),_codeset).lower() : 11, - unicode(locale.nl_langinfo(locale.ABMON_11),_codeset).lower(): 11, - unicode(locale.nl_langinfo(locale.MON_12),_codeset).lower() : 12, - unicode(locale.nl_langinfo(locale.ABMON_12),_codeset).lower(): 12, - } + month_to_int = GrampsLocale.month_to_int # modifiers before the date modifier_to_int = { @@ -215,7 +188,7 @@ class DateParser: Date.CAL_ISLAMIC : self._parse_islamic, } - fmt = locale.nl_langinfo(locale.D_FMT) + fmt = GrampsLocale.tformat match = self._fmt_parse.match(fmt.lower()) if match: self.dmy = (match.groups() == ('d','m','y')) diff --git a/gramps2/src/DisplayModels.py b/gramps2/src/DisplayModels.py index 4b2985339..f2883613d 100644 --- a/gramps2/src/DisplayModels.py +++ b/gramps2/src/DisplayModels.py @@ -47,6 +47,7 @@ import RelLib import Utils import ToolTips import DisplayTrace +import GrampsLocale _GENDER = [ _(u'female'), _(u'male'), _(u'unknown') ] @@ -55,8 +56,7 @@ _GENDER = [ _(u'female'), _(u'male'), _(u'unknown') ] # Localized constants # #------------------------------------------------------------------------- -_date_format = locale.nl_langinfo(locale.D_T_FMT) -_codeset = locale.nl_langinfo(locale.CODESET) +_codeset = GrampsLocale.codeset #------------------------------------------------------------------------- # @@ -327,8 +327,9 @@ class SourceModel(BaseModel): return unicode(data[4]) def column_change(self,data): - return unicode(time.strftime(_date_format,time.localtime(data[8])), - _codeset) + return unicode(time.strftime('%x %X',time.localtime(data[8])), + GrampsLocale.codeset) + def sort_change(self,data): return time.localtime(data[8]) @@ -435,7 +436,7 @@ class PlaceModel(BaseModel): return time.localtime(data[11]) def column_change(self,data): - return unicode(time.strftime(_date_format,time.localtime(data[11])), + return unicode(time.strftime('%x %X',time.localtime(data[11])), _codeset) def column_tooltip(self,data): @@ -513,7 +514,7 @@ class MediaModel(BaseModel): return time.localtime(data[8]) def column_change(self,data): - return unicode(time.strftime(_date_format,time.localtime(data[8])), + return unicode(time.strftime('%x %X',time.localtime(data[8])), _codeset) def column_tooltip(self,data): @@ -597,7 +598,7 @@ class EventModel(BaseModel): return time.localtime(data[11]) def column_change(self,data): - return unicode(time.strftime(_date_format,time.localtime(data[11])), + return unicode(time.strftime('%x %X',time.localtime(data[11])), _codeset) def column_tooltip(self,data): diff --git a/gramps2/src/Exporter.py b/gramps2/src/Exporter.py index cb2fdd5cc..de1556d22 100644 --- a/gramps2/src/Exporter.py +++ b/gramps2/src/Exporter.py @@ -36,7 +36,7 @@ from gettext import gettext as _ # #------------------------------------------------------------------------- import gtk -from gnome.ui import Druid, DruidPageEdge, DruidPageStandard +import Assistant #------------------------------------------------------------------------- # @@ -83,31 +83,30 @@ class Exporter: self.confirm_label = gtk.Label() self.extra_pages = [] - self.w = gtk.Window() + self.w = Assistant.Assistant(_('Saving your data'),None) - self.fg_color = gtk.gdk.color_parse('#7d684a') - self.bg_color = gtk.gdk.color_parse('#e1dbc5') - self.logo = gtk.gdk.pixbuf_new_from_file("%s/gramps.png" % const.rootDir) - self.splash = gtk.gdk.pixbuf_new_from_file("%s/splash.jpg" % const.rootDir) - - self.d = Druid() - self.w.add(self.d) - self.w.set_title(_('GRAMPS: Export')) - self.d.add(self.build_info_page()) - self.d.add(self.build_format_page()) - self.file_sel_page = self.build_file_sel_page() - self.d.add(self.file_sel_page) - self.d.add(self.build_confirm_page()) - self.last_page = self.build_last_page() - self.d.add(self.last_page) - - self.d.set_show_help(True) - self.d.connect('cancel',self.close) - self.d.connect('help',self.help) - self.w.connect("destroy_event",self.close) - self.w.set_transient_for(self.parent_window) + self.w.set_intro( + _('Under normal circumstances, GRAMPS does not require you ' + 'to directly save your changes. All changes you make are ' + 'immediately saved to the database.\n\n' + 'This process will help you save a copy of your data ' + 'in any of the several formats supported by GRAMPS. ' + 'This can be used to make a copy of your data, backup ' + 'your data, or convert it to a format that will allow ' + 'you to transfer it to a different program.\n\n' + 'If you change your mind during this process, you ' + 'can safely press the Cancel button at any time and your ' + 'present database will still be intact.')) - self.w.show_all() + self.w.add_page(self.build_info_page()) + self.w.add_page(self.build_format_page()) + self.file_sel_page = self.build_file_sel_page() + self.w.add_page(self.file_sel_page) + self.w.add_page(self.build_confirm_page()) + self.last_page = self.build_last_page() + self.w.add_page(self.last_page) + + self.w.show() def close(self,obj,obj2=None): """ @@ -127,7 +126,7 @@ class Exporter: This is a static page, nothing fun here :-) """ p = DruidPageEdge(0) - p.set_title(_('Saving your data')) + p.set_title() p.set_title_color(self.fg_color) p.set_bg_color(self.bg_color) p.set_logo(self.logo) diff --git a/gramps2/src/GrampsLocale.py b/gramps2/src/GrampsLocale.py new file mode 100644 index 000000000..aadb24401 --- /dev/null +++ b/gramps2/src/GrampsLocale.py @@ -0,0 +1,168 @@ +# -*- coding: iso-8859-1 -*- +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2004-2005 Donald N. Allingham +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# +# $Id$ + +import locale + +""" +Some OS environments do not support the locale.nl_langinfo() method +of determing month names and other date related information. + +If nl_langinfo fails, that means we have to resort to shinanigans with +strftime. + +Since these routines return values encoded into selected character +set, we have to convert to unicode. +""" + +try: + codeset = locale.nl_langinfo(locale.CODESET) + + month_to_int = { + unicode(locale.nl_langinfo(locale.MON_1),codeset).lower() : 1, + unicode(locale.nl_langinfo(locale.ABMON_1),codeset).lower() : 1, + unicode(locale.nl_langinfo(locale.MON_2),codeset).lower() : 2, + unicode(locale.nl_langinfo(locale.ABMON_2),codeset).lower() : 2, + unicode(locale.nl_langinfo(locale.MON_3),codeset).lower() : 3, + unicode(locale.nl_langinfo(locale.ABMON_3),codeset).lower() : 3, + unicode(locale.nl_langinfo(locale.MON_4),codeset).lower() : 4, + unicode(locale.nl_langinfo(locale.ABMON_4),codeset).lower() : 4, + unicode(locale.nl_langinfo(locale.MON_5),codeset).lower() : 5, + unicode(locale.nl_langinfo(locale.ABMON_5),codeset).lower() : 5, + unicode(locale.nl_langinfo(locale.MON_6),codeset).lower() : 6, + unicode(locale.nl_langinfo(locale.ABMON_6),codeset).lower() : 6, + unicode(locale.nl_langinfo(locale.MON_7),codeset).lower() : 7, + unicode(locale.nl_langinfo(locale.ABMON_7),codeset).lower() : 7, + unicode(locale.nl_langinfo(locale.MON_8),codeset).lower() : 8, + unicode(locale.nl_langinfo(locale.ABMON_8),codeset).lower() : 8, + unicode(locale.nl_langinfo(locale.MON_9),codeset).lower() : 9, + unicode(locale.nl_langinfo(locale.ABMON_9),codeset).lower() : 9, + unicode(locale.nl_langinfo(locale.MON_10),codeset).lower() : 10, + unicode(locale.nl_langinfo(locale.ABMON_10),codeset).lower(): 10, + unicode(locale.nl_langinfo(locale.MON_11),codeset).lower() : 11, + unicode(locale.nl_langinfo(locale.ABMON_11),codeset).lower(): 11, + unicode(locale.nl_langinfo(locale.MON_12),codeset).lower() : 12, + unicode(locale.nl_langinfo(locale.ABMON_12),codeset).lower(): 12, + } + + long_months = ( + "", + unicode(locale.nl_langinfo(locale.MON_1),codeset), + unicode(locale.nl_langinfo(locale.MON_2),codeset), + unicode(locale.nl_langinfo(locale.MON_3),codeset), + unicode(locale.nl_langinfo(locale.MON_4),codeset), + unicode(locale.nl_langinfo(locale.MON_5),codeset), + unicode(locale.nl_langinfo(locale.MON_6),codeset), + unicode(locale.nl_langinfo(locale.MON_7),codeset), + unicode(locale.nl_langinfo(locale.MON_8),codeset), + unicode(locale.nl_langinfo(locale.MON_9),codeset), + unicode(locale.nl_langinfo(locale.MON_10),codeset), + unicode(locale.nl_langinfo(locale.MON_11),codeset), + unicode(locale.nl_langinfo(locale.MON_12),codeset), + ) + + short_months = ( + "", + unicode(locale.nl_langinfo(locale.ABMON_1),codeset), + unicode(locale.nl_langinfo(locale.ABMON_2),codeset), + unicode(locale.nl_langinfo(locale.ABMON_3),codeset), + unicode(locale.nl_langinfo(locale.ABMON_4),codeset), + unicode(locale.nl_langinfo(locale.ABMON_5),codeset), + unicode(locale.nl_langinfo(locale.ABMON_6),codeset), + unicode(locale.nl_langinfo(locale.ABMON_7),codeset), + unicode(locale.nl_langinfo(locale.ABMON_8),codeset), + unicode(locale.nl_langinfo(locale.ABMON_9),codeset), + unicode(locale.nl_langinfo(locale.ABMON_10),codeset), + unicode(locale.nl_langinfo(locale.ABMON_11),codeset), + unicode(locale.nl_langinfo(locale.ABMON_12),codeset), + ) + + tformat = locale.nl_langinfo(locale.D_FMT).replace('%y','%Y') + +except: + import time + + codeset = locale.getpreferredencoding() + + month_to_int = { + unicode(time.strftime('%B',(0,1,1,1,1,1,1,1,1)),codeset).lower() : 1, + unicode(time.strftime('%b',(0,1,1,1,1,1,1,1,1)),codeset).lower() : 1, + unicode(time.strftime('%B',(0,2,1,1,1,1,1,1,1)),codeset).lower() : 2, + unicode(time.strftime('%b',(0,2,1,1,1,1,1,1,1)),codeset).lower() : 2, + unicode(time.strftime('%B',(0,3,1,1,1,1,1,1,1)),codeset).lower() : 3, + unicode(time.strftime('%b',(0,3,1,1,1,1,1,1,1)),codeset).lower() : 3, + unicode(time.strftime('%B',(0,4,1,1,1,1,1,1,1)),codeset).lower() : 4, + unicode(time.strftime('%b',(0,4,1,1,1,1,1,1,1)),codeset).lower() : 4, + unicode(time.strftime('%B',(0,5,1,1,1,1,1,1,1)),codeset).lower() : 5, + unicode(time.strftime('%b',(0,5,1,1,1,1,1,1,1)),codeset).lower() : 5, + unicode(time.strftime('%B',(0,6,1,1,1,1,1,1,1)),codeset).lower() : 6, + unicode(time.strftime('%b',(0,6,1,1,1,1,1,1,1)),codeset).lower() : 6, + unicode(time.strftime('%B',(0,7,1,1,1,1,1,1,1)),codeset).lower() : 7, + unicode(time.strftime('%b',(0,7,1,1,1,1,1,1,1)),codeset).lower() : 7, + unicode(time.strftime('%B',(0,8,1,1,1,1,1,1,1)),codeset).lower() : 8, + unicode(time.strftime('%b',(0,8,1,1,1,1,1,1,1)),codeset).lower() : 8, + unicode(time.strftime('%B',(0,9,1,1,1,1,1,1,1)),codeset).lower() : 9, + unicode(time.strftime('%b',(0,9,1,1,1,1,1,1,1)),codeset).lower() : 9, + unicode(time.strftime('%B',(0,10,1,1,1,1,1,1,1)),codeset).lower() : 10, + unicode(time.strftime('%b',(0,10,1,1,1,1,1,1,1)),codeset).lower() : 10, + unicode(time.strftime('%B',(0,11,1,1,1,1,1,1,1)),codeset).lower() : 11, + unicode(time.strftime('%b',(0,11,1,1,1,1,1,1,1)),codeset).lower() : 11, + unicode(time.strftime('%B',(0,12,1,1,1,1,1,1,1)),codeset).lower() : 12, + unicode(time.strftime('%b',(0,12,1,1,1,1,1,1,1)),codeset).lower() : 12, + } + + long_months = ( + "", + unicode(time.strftime('%B',(0,1,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,2,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,3,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,4,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,5,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,6,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,7,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,8,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,9,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,10,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,11,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%B',(0,12,1,1,1,1,1,1,1)),codeset), + ) + + short_months = ( + "", + unicode(time.strftime('%b',(0,1,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,2,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,3,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,4,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,5,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,6,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,7,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,8,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,9,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,10,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,11,1,1,1,1,1,1,1)),codeset), + unicode(time.strftime('%b',(0,12,1,1,1,1,1,1,1)),codeset), + ) + + if time.strftime('%x',(2005,1,2,1,1,1,1,1,1)) == '2/1/2005': + tformat = '%d/%m/%y' + else: + tformat = '%m/%d/%y' + diff --git a/gramps2/src/PeopleModel.py b/gramps2/src/PeopleModel.py index b9da6f21c..9ddc69a82 100644 --- a/gramps2/src/PeopleModel.py +++ b/gramps2/src/PeopleModel.py @@ -27,11 +27,11 @@ #------------------------------------------------------------------------- from gettext import gettext as _ import time -import locale import cgi import sets import sys import traceback +import locale #------------------------------------------------------------------------- # @@ -51,14 +51,14 @@ from RelLib import * import NameDisplay import DateHandler import ToolTips +import GrampsLocale #------------------------------------------------------------------------- # # Localized constants # #------------------------------------------------------------------------- -_date_format = locale.nl_langinfo(locale.D_T_FMT) -_codeset = locale.nl_langinfo(locale.CODESET) +_codeset = GrampsLocale.codeset #------------------------------------------------------------------------- # @@ -325,8 +325,7 @@ class PeopleModel(gtk.GenericTreeModel): return data[_ID_COL] def column_change(self,data,node): - return unicode(time.strftime(_date_format, - time.localtime(data[_CHANGE_COL])), + return unicode(time.strftime('%x %X',time.localtime(data[_CHANGE_COL])), _codeset) def column_gender(self,data,node): diff --git a/gramps2/src/RecentFiles.py b/gramps2/src/RecentFiles.py index 43676a471..ea7210f26 100644 --- a/gramps2/src/RecentFiles.py +++ b/gramps2/src/RecentFiles.py @@ -28,10 +28,16 @@ # #------------------------------------------------------------------------- import os -import fcntl import time from xml.parsers.expat import ParserCreate +try: + import fcntl + use_lock = True +except: + use_lock = False + + #------------------------------------------------------------------------- # # Constants @@ -174,7 +180,8 @@ class GnomeRecentFiles: Saves the current GNOME RecentFiles collection to the associated file. """ xml_file = file(os.path.expanduser(GNOME_FILENAME),'w') - fcntl.lockf(xml_file,fcntl.LOCK_EX) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_EX) xml_file.write("\n") xml_file.write('\n') index = 0 @@ -194,7 +201,8 @@ class GnomeRecentFiles: xml_file.write(' \n') xml_file.write(' \n') xml_file.write('\n') - fcntl.lockf(xml_file,fcntl.LOCK_UN) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_UN) xml_file.close() #------------------------------------------------------------------------- @@ -251,7 +259,8 @@ class GrampsRecentFiles: Saves the current GRAMPS RecentFiles collection to the associated file. """ xml_file = file(os.path.expanduser(GRAMPS_FILENAME),'w') - fcntl.lockf(xml_file,fcntl.LOCK_EX) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_EX) xml_file.write("\n") xml_file.write('\n') index = 0 @@ -265,7 +274,8 @@ class GrampsRecentFiles: xml_file.write(' %d\n' % item.get_time()) xml_file.write(' \n') xml_file.write('\n') - fcntl.lockf(xml_file,fcntl.LOCK_UN) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_UN) xml_file.close() #------------------------------------------------------------------------- @@ -283,7 +293,8 @@ class GnomeRecentParser: try: xml_file = open(os.path.expanduser(GNOME_FILENAME)) - fcntl.lockf(xml_file,fcntl.LOCK_SH) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_SH) p = ParserCreate() p.StartElementHandler = self.startElement @@ -291,7 +302,8 @@ class GnomeRecentParser: p.CharacterDataHandler = self.characters p.ParseFile(xml_file) - fcntl.lockf(xml_file,fcntl.LOCK_UN) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_UN) xml_file.close() except: pass @@ -343,7 +355,8 @@ class GrampsRecentParser: try: xml_file = open(os.path.expanduser(GRAMPS_FILENAME)) - fcntl.lockf(xml_file,fcntl.LOCK_SH) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_SH) p = ParserCreate() p.StartElementHandler = self.startElement @@ -351,7 +364,8 @@ class GrampsRecentParser: p.CharacterDataHandler = self.characters p.ParseFile(xml_file) - fcntl.lockf(xml_file,fcntl.LOCK_UN) + if use_lock: + fcntl.lockf(xml_file,fcntl.LOCK_UN) xml_file.close() except: pass diff --git a/gramps2/src/RelLib/_PrimaryObject.py b/gramps2/src/RelLib/_PrimaryObject.py index 0c8c6f2c0..98d61c5f7 100644 --- a/gramps2/src/RelLib/_PrimaryObject.py +++ b/gramps2/src/RelLib/_PrimaryObject.py @@ -30,7 +30,7 @@ Primary Object class for GRAMPS # #------------------------------------------------------------------------- import time -import locale +import GrampsLocale #------------------------------------------------------------------------- # @@ -47,8 +47,7 @@ from _MediaBase import MediaBase # Localized constants # #------------------------------------------------------------------------- -_date_format = locale.nl_langinfo(locale.D_T_FMT) -_codeset = locale.nl_langinfo(locale.CODESET) +_codeset = GrampsLocale.codeset #------------------------------------------------------------------------- # @@ -111,8 +110,7 @@ class PrimaryObject(BaseObject,PrivacyBase): """ if self.change: - return unicode(time.strftime(_date_format, - time.localtime(self.change)), + return unicode(time.strftime('%x %X',time.localtime(self.change)), _codeset) else: return '' diff --git a/gramps2/src/StartupDialog.py b/gramps2/src/StartupDialog.py index fd79097fc..2294d6131 100644 --- a/gramps2/src/StartupDialog.py +++ b/gramps2/src/StartupDialog.py @@ -43,13 +43,6 @@ import gtk.glade import Assistant import const -if not const.no_gconf: - try: - import gconf - except ImportError: - import gnome.gconf - gconf = gnome.gconf - import GrampsKeys from QuestionDialog import ErrorDialog @@ -59,10 +52,6 @@ from QuestionDialog import ErrorDialog # #------------------------------------------------------------------------- -if not const.no_gconf: - client = gconf.client_get_default() - client.add_dir("/apps/gramps",gconf.CLIENT_PRELOAD_NONE) - def need_to_run(): val = GrampsKeys.get_startup() if val < const.startup: @@ -76,6 +65,9 @@ def upgrade_prefs(): On failure, print message and return False. """ try: + client = gconf.client_get_default() + client.add_dir("/apps/gramps",gconf.CLIENT_PRELOAD_NONE) + GrampsKeys.save_fprefix(client.get_string('/apps/gramps/fprefix')) GrampsKeys.save_sprefix(client.get_string('/apps/gramps/sprefix')) GrampsKeys.save_pprefix(client.get_string('/apps/gramps/pprefix')) @@ -104,10 +96,8 @@ def upgrade_prefs(): toolbar = -1 GrampsKeys.save_toolbar(toolbar) GrampsKeys.save_toolbar_on(client.get_bool('/apps/gramps/toolbar-on')) - print "Successfully imported preferences from the 1.0.x version." return True except: - print "Failed to import preferences from the 1.0.x version." return False #------------------------------------------------------------------------- diff --git a/gramps2/src/ViewManager.py b/gramps2/src/ViewManager.py index 42effecb8..e4ae8da51 100644 --- a/gramps2/src/ViewManager.py +++ b/gramps2/src/ViewManager.py @@ -166,7 +166,6 @@ class ViewManager: try: width = GrampsKeys.get_width() height = GrampsKeys.get_height() - print width,height self.window.set_default_size(width,height) except: self.window.set_default_size(775,500) diff --git a/gramps2/src/plugins/Checkpoint.py b/gramps2/src/plugins/Checkpoint.py index 275e3aba1..9ab8b2a94 100644 --- a/gramps2/src/plugins/Checkpoint.py +++ b/gramps2/src/plugins/Checkpoint.py @@ -237,8 +237,7 @@ class Checkpoint(Tool.Tool): self.parent.modify_statusbar() def timestamp(self): - format = locale.nl_langinfo(locale.D_T_FMT) - return unicode(time.strftime(format,time.localtime(time.time()))) + return unicode(time.strftime('%x %X',time.localtime(time.time()))) def custom(self,cmd,checkin,cli): """ diff --git a/gramps2/src/plugins/NavWebPage.py b/gramps2/src/plugins/NavWebPage.py index e799be2ce..d94605728 100644 --- a/gramps2/src/plugins/NavWebPage.py +++ b/gramps2/src/plugins/NavWebPage.py @@ -63,6 +63,7 @@ import Utils import ReportOptions import ReportUtils import ImgManip +import GrampsLocale from QuestionDialog import ErrorDialog, WarningDialog from NameDisplay import displayer as _nd from DateHandler import displayer as _dd @@ -282,8 +283,8 @@ class BasePage: of.write(' \n') of.write('