From 7c1e29aa6000e32b66950020b9e16f085eb935e1 Mon Sep 17 00:00:00 2001 From: Serge Noiraud Date: Fri, 14 Sep 2012 20:29:48 +0000 Subject: [PATCH] Geography : Some cleaning, ImageSurface needs an utf-8 path messagelayer : get the real window size. osmgpsmap must be >= 0.8 svn: r20389 --- src/plugins/lib/maps/geography.py | 27 +++++++++++++++++---------- src/plugins/lib/maps/markerlayer.py | 3 ++- src/plugins/lib/maps/messagelayer.py | 14 +++----------- src/plugins/view/geography.gpr.py | 4 ++-- src/plugins/view/geoperson.py | 1 + 5 files changed, 25 insertions(+), 24 deletions(-) diff --git a/src/plugins/lib/maps/geography.py b/src/plugins/lib/maps/geography.py index 69b21d346..5f2d609de 100644 --- a/src/plugins/lib/maps/geography.py +++ b/src/plugins/lib/maps/geography.py @@ -29,6 +29,7 @@ #------------------------------------------------------------------------- from gen.ggettext import sgettext as _ import os +import sys import re from gi.repository import GObject import time @@ -146,14 +147,19 @@ class GeoGraphyView(OsmGps, NavigationView): self.place_list = [] self.places_found = [] self.select_fct = None - self.geo_mainmap = cairo.ImageSurface.create_from_png( - os.path.join(ROOT_DIR, "images", "48x48", - ('gramps-geo-mainmap' + '.png' ))) - self.geo_altmap = cairo.ImageSurface.create_from_png( - os.path.join(ROOT_DIR, "images", "48x48", - ('gramps-geo-altmap' + '.png' ))) + self.geo_mainmap = None + path = os.path.join(ROOT_DIR, "images", "48x48", + ('gramps-geo-mainmap' + '.png' )) + pathu = path.encode(sys.getfilesystemencoding()) + self.geo_mainmap = cairo.ImageSurface.create_from_png(pathu) + path = os.path.join(ROOT_DIR, "images", "48x48", + ('gramps-geo-altmap' + '.png' )) + pathu = path.encode(sys.getfilesystemencoding()) + self.geo_altmap = cairo.ImageSurface.create_from_png(pathu) if ( config.get('geography.map_service') in - ( constants.OPENSTREETMAP, constants.OPENSTREETMAP_RENDERER )): + ( constants.OPENSTREETMAP, + constants.OPENSTREETMAP_RENDERER + )): default_image = self.geo_mainmap else: default_image = self.geo_altmap @@ -161,9 +167,10 @@ class GeoGraphyView(OsmGps, NavigationView): for ident in ( gen.lib.EventType.BIRTH, gen.lib.EventType.DEATH, gen.lib.EventType.MARRIAGE ): - self.geo_othermap[ident] = cairo.ImageSurface.create_from_png( - os.path.join(ROOT_DIR, "images", "48x48", - (constants.ICONS.get(int(ident), default_image) + '.png' ))) + path = os.path.join(ROOT_DIR, "images", "48x48", + (constants.ICONS.get(int(ident), default_image) + '.png' )) + pathu = path.encode(sys.getfilesystemencoding()) + self.geo_othermap[ident] = cairo.ImageSurface.create_from_png(pathu) def change_page(self): """ diff --git a/src/plugins/lib/maps/markerlayer.py b/src/plugins/lib/maps/markerlayer.py index dddc850c5..4cc33ffa4 100644 --- a/src/plugins/lib/maps/markerlayer.py +++ b/src/plugins/lib/maps/markerlayer.py @@ -45,13 +45,14 @@ _LOG = logging.getLogger("maps.marker") # #------------------------------------------------------------------------- from gi.repository import Gtk +import cairo #------------------------------------------------------------------------- # # Gramps Modules # #------------------------------------------------------------------------- -import cairo + #------------------------------------------------------------------------- # # set up logging diff --git a/src/plugins/lib/maps/messagelayer.py b/src/plugins/lib/maps/messagelayer.py index 0ff5434d6..5a0ef98ca 100644 --- a/src/plugins/lib/maps/messagelayer.py +++ b/src/plugins/lib/maps/messagelayer.py @@ -46,9 +46,7 @@ _LOG = logging.getLogger("maps.messagelayer") # #------------------------------------------------------------------------- from gi.repository import Gdk -#from gi.repository import Cairo import cairo -import pangocairo #------------------------------------------------------------------------- # @@ -128,19 +126,13 @@ class MessageLayer(GObject.GObject, osmgpsmap.MapLayer): 0.9) # transparency coord_x = 100 coord_y = int(self.size) # Show the first line under the zoom button - #(d_width, d_height) = drawable.get_size() - pcr = pangocairo.CairoContext(ctx) - ctx_layout = pcr.create_layout() - (d_width, d_height) = ctx_layout.get_size() - print d_width, d_height + d_width = gpsmap.get_allocation().width + gpsmap.set_size_request(300,400) d_width -= 100 for line in self.message: line_to_print = line (x_bearing, y_bearing, width, height, x_advance, y_advance) = ctx.text_extents(line_to_print) - #while ( width > d_width): - # BUG here d_with is negative - while ( width > 1000): - print width, " > ", d_width + while ( width > d_width ): line_length = len(line_to_print) character_length = int(width/line_length) + 1 max_length = int(d_width / character_length) - 5 diff --git a/src/plugins/view/geography.gpr.py b/src/plugins/view/geography.gpr.py index 7522b020f..3c0e1109c 100644 --- a/src/plugins/view/geography.gpr.py +++ b/src/plugins/view/geography.gpr.py @@ -49,10 +49,10 @@ if repository.enumerate_versions("OsmGpsMap"): # current osmgpsmap support GTK3 from gi.repository import OsmGpsMap as osmgpsmap OSMGPSMAP = True - if osmgpsmap._version < '1.0': + if osmgpsmap._version < '0.8': OSMGPSMAP = False _LOG.warning( _("WARNING: osmgpsmap module not loaded. " - "osmgpsmap must be >= 1.0. yours is %s") % + "osmgpsmap must be >= 0.8. yours is %s") % osmgpsmap._version) else: _LOG.info("OsmGpsMap loaded, version : " + osmgpsmap._version) diff --git a/src/plugins/view/geoperson.py b/src/plugins/view/geoperson.py index 432f8ce3b..8a05761da 100644 --- a/src/plugins/view/geoperson.py +++ b/src/plugins/view/geoperson.py @@ -40,6 +40,7 @@ from gi.repository import Gdk KEY_TAB = Gdk.KEY_Tab import socket from gi.repository import Gtk +from gi.repository import GObject #------------------------------------------------------------------------- #