From 1a5f1720c0a0524404f6041a2d2712a57d21c937 Mon Sep 17 00:00:00 2001 From: Benny Malengier Date: Tue, 9 Feb 2010 00:07:43 +0000 Subject: [PATCH] Allow plugins to register their icons, new icons for geoview svn: r14289 --- src/gen/plug/_manager.py | 8 + src/gen/plug/_pluginreg.py | 46 +- src/gui/grampsgui.py | 53 +- src/gui/pluginmanager.py | 126 +- src/images/16x16/gramps-geo.png | Bin 906 -> 945 bytes src/images/22x22/Makefile.am | 8 + src/images/22x22/geo-fixed-zoom.png | Bin 0 -> 1450 bytes src/images/22x22/geo-free-zoom.png | Bin 0 -> 1502 bytes src/images/22x22/geo-place-add.png | Bin 0 -> 1499 bytes src/images/22x22/geo-place-link.png | Bin 0 -> 1588 bytes src/images/22x22/geo-show-event.png | Bin 0 -> 1351 bytes src/images/22x22/geo-show-family.png | Bin 0 -> 1521 bytes src/images/22x22/geo-show-person.png | Bin 0 -> 1408 bytes src/images/22x22/geo-show-place.png | Bin 0 -> 1521 bytes src/images/22x22/gramps-geo.png | Bin 1379 -> 1443 bytes src/images/48x48/Makefile.am | 8 + src/images/48x48/geo-fixed-zoom.png | Bin 0 -> 4381 bytes src/images/48x48/geo-free-zoom.png | Bin 0 -> 4275 bytes src/images/48x48/geo-place-add.png | Bin 0 -> 4234 bytes src/images/48x48/geo-place-link.png | Bin 0 -> 4777 bytes src/images/48x48/geo-show-event.png | Bin 0 -> 3844 bytes src/images/48x48/geo-show-family.png | Bin 0 -> 4706 bytes src/images/48x48/geo-show-person.png | Bin 0 -> 4135 bytes src/images/48x48/geo-show-place.png | Bin 0 -> 4612 bytes src/images/48x48/gramps-geo.png | Bin 4419 -> 3950 bytes src/images/scalable/Makefile.am | 9 + src/images/scalable/geo-fixed-zoom.svg | 1088 +++++++++ src/images/scalable/geo-free-zoom.svg | 908 +++++++ src/images/scalable/geo-place-add.svg | 1058 ++++++++ src/images/scalable/geo-place-link.svg | 1158 +++++++++ src/images/scalable/geo-show-event.svg | 2885 ++++++++++++++++++++++ src/images/scalable/geo-show-family.svg | 2849 ++++++++++++++++++++++ src/images/scalable/geo-show-person.svg | 2957 +++++++++++++++++++++++ src/images/scalable/geo-show-place.svg | 2718 +++++++++++++++++++++ src/images/scalable/gramps-geo.svg | 263 +- src/plugins/view/geoview.gpr.py | 11 + src/plugins/view/geoview.py | 20 +- 37 files changed, 15950 insertions(+), 223 deletions(-) create mode 100644 src/images/22x22/geo-fixed-zoom.png create mode 100644 src/images/22x22/geo-free-zoom.png create mode 100644 src/images/22x22/geo-place-add.png create mode 100644 src/images/22x22/geo-place-link.png create mode 100644 src/images/22x22/geo-show-event.png create mode 100644 src/images/22x22/geo-show-family.png create mode 100644 src/images/22x22/geo-show-person.png create mode 100644 src/images/22x22/geo-show-place.png create mode 100644 src/images/48x48/geo-fixed-zoom.png create mode 100644 src/images/48x48/geo-free-zoom.png create mode 100644 src/images/48x48/geo-place-add.png create mode 100644 src/images/48x48/geo-place-link.png create mode 100644 src/images/48x48/geo-show-event.png create mode 100644 src/images/48x48/geo-show-family.png create mode 100644 src/images/48x48/geo-show-person.png create mode 100644 src/images/48x48/geo-show-place.png create mode 100644 src/images/scalable/geo-fixed-zoom.svg create mode 100644 src/images/scalable/geo-free-zoom.svg create mode 100644 src/images/scalable/geo-place-add.svg create mode 100644 src/images/scalable/geo-place-link.svg create mode 100644 src/images/scalable/geo-show-event.svg create mode 100644 src/images/scalable/geo-show-family.svg create mode 100644 src/images/scalable/geo-show-person.svg create mode 100644 src/images/scalable/geo-show-place.svg diff --git a/src/gen/plug/_manager.py b/src/gen/plug/_manager.py index 471156e76..3ebc83c81 100644 --- a/src/gen/plug/_manager.py +++ b/src/gen/plug/_manager.py @@ -127,6 +127,14 @@ class BasePluginManager(object): for plugin in self.__pgr.filter_load_on_reg(): mod = self.load_plugin(plugin) + def is_loaded(self, pdata_id): + """ + return True if plugin is already loaded + """ + if pdata_id in self.__loaded_plugins: + return True + return False + def load_plugin(self, pdata): """ Load a PluginData object. This means import of the python module. diff --git a/src/gen/plug/_pluginreg.py b/src/gen/plug/_pluginreg.py index ba3335187..cd8d4d918 100644 --- a/src/gen/plug/_pluginreg.py +++ b/src/gen/plug/_pluginreg.py @@ -40,6 +40,7 @@ import traceback # #------------------------------------------------------------------------- from const import VERSION as GRAMPSVERSION +from const import IMAGE_DIR from TransUtils import get_addon_translator from gen.ggettext import gettext as _ @@ -168,6 +169,19 @@ class PluginData(object): bool value, if True, the plugin is loaded on GRAMPS startup. Some plugins. Only set this value if for testing you want the plugin to be loaded immediately on startup. default=False + .. attribute: icons + New stock icons to register. A list of tuples (stock_id, icon_label), + eg: + [('gramps_myplugin', _('My Plugin')), + ('gramps_myplugin_open', _('Open Plugin')] + The icon directory must contain the directories scalable, 48x48, 22x22 + and 16x16 with the icons, eg: + scalable/gramps_myplugin.svg + 48x48/gramps_myplugin.png + 22x22/gramps_myplugin.png + .. attribute: icondir + The directory to use for the icons. If icondir is not set or None, it + reverts to the plugindirectory itself. Attributes for RELCALC plugins: .. attribute:: relcalcclass @@ -263,6 +277,9 @@ class PluginData(object): """ def __init__(self): + #read/write attribute + self.directory = None + #base attributes self._id = None self._name = None self._version = None @@ -276,6 +293,8 @@ class PluginData(object): self._authors_email = [] self._supported = True self._load_on_reg = False + self._icons = [] + self._icondir = None #derived var self.mod_name = None #RELCALC attr @@ -412,14 +431,28 @@ class PluginData(object): def _get_supported(self): return self._supported - def _get_load_on_reg(self): - return self._load_on_reg - def _set_load_on_reg(self, load_on_reg): if not isinstance(load_on_reg, bool): raise ValueError, 'Plugin must have load_on_reg=True or False' self._load_on_reg = load_on_reg - + + def _get_load_on_reg(self): + return self._load_on_reg + + def _get_icons(self): + return self._icons + + def _set_icons(self, icons): + if not isinstance(icons, list): + raise ValueError, 'Plugin must have icons as a list' + self._icons = icons + + def _get_icondir(self): + return self._icondir + + def _set_icondir(self, icondir): + self._icondir = icondir + id = property(_get_id, _set_id) name = property(_get_name, _set_name) description = property(_get_description, _set_description) @@ -434,6 +467,8 @@ class PluginData(object): authors_email = property(_get_authors_email, _set_authors_email) supported = property(_get_supported, _set_supported) load_on_reg = property(_get_load_on_reg, _set_load_on_reg) + icons = property(_get_icons, _set_icons) + icondir = property(_get_icondir, _set_icondir) def statustext(self): return STATUSTEXT[self.status] @@ -740,6 +775,7 @@ class PluginData(object): viewclass = property(_get_viewclass, _set_viewclass) order = property(_get_order, _set_order) + def newplugin(): """ @@ -821,6 +857,7 @@ def make_environment(**kwargs): 'GRAMPSVERSION': GRAMPSVERSION, 'START': START, 'END': END, + 'IMAGE_DIR': IMAGE_DIR } env.update(kwargs) return env @@ -902,6 +939,7 @@ class PluginRegister(object): ind = lenpd-1 for plugin in self.__plugindata[lenpd:]: ind += 1 + plugin.directory = dir if not plugin.status == STABLE and self.stable_only: rmlist.append(ind) continue diff --git a/src/gui/grampsgui.py b/src/gui/grampsgui.py index bbb9a25ee..a57a981b6 100644 --- a/src/gui/grampsgui.py +++ b/src/gui/grampsgui.py @@ -61,8 +61,8 @@ import gobject from QuestionDialog import ErrorDialog import config import Utils -import constfunc -from gui.pluginmanager import GuiPluginManager +from constfunc import win +from gui.pluginmanager import GuiPluginManager, base_reg_stock_icons from gen.plug import (START, END) #------------------------------------------------------------------------- @@ -71,6 +71,7 @@ from gen.plug import (START, END) # #------------------------------------------------------------------------- + def register_stock_icons (): """ Add the gramps names for its icons (eg gramps-person) to the GTK icon @@ -78,7 +79,7 @@ def register_stock_icons (): """ #iconpath to the base image. The front of the list has highest priority - if constfunc.win(): + if win(): iconpaths = [ (os.path.join(const.IMAGE_DIR, '48x48'), '.png'), (const.IMAGE_DIR, '.png'), @@ -156,51 +157,7 @@ def register_stock_icons (): ('gramps-url', _('URL'), gtk.gdk.CONTROL_MASK, 0, ''), ] - # Register our stock items - gtk.stock_add (items+items_legacy) - - # Add our custom icon factory to the list of defaults - factory = gtk.IconFactory () - factory.add_default () - - for data in items+items_legacy: - pixbuf = 0 - for (dirname, ext) in iconpaths: - icon_file = os.path.expanduser(os.path.join(dirname, data[0]+ext)) - if os.path.isfile(icon_file): - try: - pixbuf = gtk.gdk.pixbuf_new_from_file (icon_file) - break - except: - pass - - if not pixbuf : - icon_file = os.path.join(const.IMAGE_DIR, 'gramps.png') - pixbuf = gtk.gdk.pixbuf_new_from_file (icon_file) - - ## FIXME from gtk 2.17.3/2.15.2 change this to - ## FIXME pixbuf = pixbuf.add_alpha(True, 255, 255, 255) - pixbuf = pixbuf.add_alpha(True, chr(0xff), chr(0xff), chr(0xff)) - icon_set = gtk.IconSet (pixbuf) - #add different sized icons, always png type! - for size in extraiconsize : - pixbuf = 0 - icon_file = os.path.expanduser( - os.path.join(size[0], data[0]+'.png')) - if os.path.isfile(icon_file): - try: - pixbuf = gtk.gdk.pixbuf_new_from_file (icon_file) - except: - pass - - if pixbuf : - source = gtk.IconSource() - source.set_size_wildcarded(False) - source.set_size(size[1]) - source.set_pixbuf(pixbuf) - icon_set.add_source(source) - - factory.add (data[0], icon_set) + base_reg_stock_icons(iconpaths, extraiconsize, items+items_legacy) def _display_welcome_message(): """ diff --git a/src/gui/pluginmanager.py b/src/gui/pluginmanager.py index f15cf2261..2cb8ee9e1 100644 --- a/src/gui/pluginmanager.py +++ b/src/gui/pluginmanager.py @@ -34,7 +34,8 @@ importers, exporters, quick reports, and document generators. # Standard Python modules # #------------------------------------------------------------------------- - +import os +import gtk #------------------------------------------------------------------------- # @@ -43,14 +44,75 @@ importers, exporters, quick reports, and document generators. #------------------------------------------------------------------------- import gen.utils from gen.plug import BasePluginManager, PluginRegister +from constfunc import win import config +import const #------------------------------------------------------------------------- # -# Constants +# Functions # #------------------------------------------------------------------------- +def base_reg_stock_icons(iconpaths, extraiconsize, items): + """ + Reusable base to register stock icons in Gramps + ..attribute iconpaths: list of main directory of the base icon, and + extension, eg: + [(os.path.join(const.IMAGE_DIR, 'scalable'), '.svg')] + ..attribute extraiconsize: list of dir with extra prepared icon sizes and + the gtk size to use them for, eg: + [(os.path.join(const.IMAGE_DIR, '22x22'), gtk.ICON_SIZE_LARGE_TOOLBAR)] + ..attribute items: list of icons to register, eg: + [('gramps-db', _('Family Trees'), gtk.gdk.CONTROL_MASK, 0, '')] + """ + + # Register our stock items + gtk.stock_add (items) + + # Add our custom icon factory to the list of defaults + factory = gtk.IconFactory () + factory.add_default () + + for data in items: + pixbuf = 0 + for (dirname, ext) in iconpaths: + icon_file = os.path.expanduser(os.path.join(dirname, data[0]+ext)) + if os.path.isfile(icon_file): + try: + pixbuf = gtk.gdk.pixbuf_new_from_file (icon_file) + break + except: + pass + + if not pixbuf : + icon_file = os.path.join(const.IMAGE_DIR, 'gramps.png') + pixbuf = gtk.gdk.pixbuf_new_from_file (icon_file) + + ## FIXME from gtk 2.17.3/2.15.2 change this to + ## FIXME pixbuf = pixbuf.add_alpha(True, 255, 255, 255) + pixbuf = pixbuf.add_alpha(True, chr(0xff), chr(0xff), chr(0xff)) + icon_set = gtk.IconSet (pixbuf) + #add different sized icons, always png type! + for size in extraiconsize : + pixbuf = 0 + icon_file = os.path.expanduser( + os.path.join(size[0], data[0]+'.png')) + if os.path.isfile(icon_file): + try: + pixbuf = gtk.gdk.pixbuf_new_from_file (icon_file) + except: + pass + + if pixbuf : + source = gtk.IconSource() + source.set_size_wildcarded(False) + source.set_size(size[1]) + source.set_pixbuf(pixbuf) + icon_set.add_source(source) + + factory.add (data[0], icon_set) + #------------------------------------------------------------------------- # # GuiPluginManager @@ -83,14 +145,70 @@ class GuiPluginManager(gen.utils.Callback): self.basemgr = BasePluginManager.get_instance() self.__hidden_plugins = set(config.get('plugin.hiddenplugins')) self.__hidden_changed() - + + def load_plugin(self, pdata): + if not self.is_loaded(pdata.id): + #load stock icons before import, only gui needs this + if pdata.icons: + if pdata.icondir and os.path.isdir(pdata.icondir): + dir = pdata.icondir + else: + #use the plugin directory + dir = pdata.directory + self.load_icons(pdata.icons, dir) + return self.basemgr.load_plugin(pdata) + def reload_plugins(self): self.basemgr.reload_plugins() self.emit('plugins-reloaded') def __getattr__(self, name): return getattr(self.basemgr, name) - + + def load_icons(self, icons, dir): + """ + Load icons in the iconfactory of gramps, so they can be used in the + plugin. + + ..attribute icons: + New stock icons to register. A list of tuples (stock_id, icon_label), + eg: + [('gramps_myplugin', _('My Plugin')), + ('gramps_myplugin_open', _('Open Plugin'))] + The plugin directory must contain the directories scalable, 48x48, 22x22 + and 16x16 with the icons, eg in dir we have: + scalable/gramps_myplugin.svg + 48x48/gramps_myplugin.png + 22x22/gramps_myplugin.png + ..attribute dir: directory from where to load the icons + """ + if win(): + iconpaths = [ + (os.path.join(dir, '48x48'), '.png'), + (dir, '.png'), + ] + else : + iconpaths = [ + (os.path.join(dir, 'scalable'), '.svg'), + (dir, '.svg'), (dir, '.png'), + ] + + #sizes: menu=16, small_toolbar=18, large_toolbar=24, + # button=20, dnd=32, dialog=48 + #add to the back of this list to overrule images set at beginning of list + extraiconsize = [ + (os.path.join(dir, '22x22'), gtk.ICON_SIZE_LARGE_TOOLBAR), + (os.path.join(dir, '16x16'), gtk.ICON_SIZE_MENU), + (os.path.join(dir, '22x22'), gtk.ICON_SIZE_BUTTON), + ] + + items = [] + for stock_id, label in icons: + items.append((stock_id, label, gtk.gdk.CONTROL_MASK, 0, '')) + + base_reg_stock_icons(iconpaths, extraiconsize, items) + + def __hidden_changed(self, *args): #if hidden changed, stored data must be emptied as it could contain #something that now must be hidden diff --git a/src/images/16x16/gramps-geo.png b/src/images/16x16/gramps-geo.png index 1ab72032400a679c44de59e647530b86a1eb419d..6d98e1ab59e36b0757829a86d02b2bb8c2fc0aeb 100644 GIT binary patch delta 848 zcmV-W1F!sw2eAi`ZhtOGL_t(IjYX2pZ&Xzn#((GDGxyHind!{5p)JMY&`zrZwWcVI zNeShrj`^_~v=gM60kZDy`M&CQwTcxB=;`wvZ7U$4q?R#IMB68yCx zi3H?J5+OB~wtvu;21q1Urm2+V_H2d5R*~;6o}zf>0>9t00PvdzZ7Tq@cF%E}04mj4MtU`)B}2(EeE6GWM}w~*mND5djTV|zoWdAeTS+1tPaK|S zb7LO>vp0tM=ckiY^MV7O;r+3g(UJzh7zo?|l@xGSUwJ*P<$*b# zKYpFXdLLg-y~d>*V+73|0AwbQ?PLKEfGtccH@CvON6I;dtJeu58!Kf95|{VBInTXj z2~D(D2Y-w)k7fauAhufV%zUVFgpmzE91DKAHA181k#~1E+&7Qwgu7e%p@Ah5Y}-V# zzTNe&N-`1P04QZ~tUS%9-RE)bkd&jCnJemS5z!2yhwh+n!Hnhq6xoku( z8_|&u04R7(x;op~!qA!C;`qR?U^Icr0pPg-d4D%-S+!cNofxmR7fl1jLO`Jq()LrN zQW`It(34&TV=xE=nlneg#S$Wx07AI!hj1Rf`G84cp<+033U!nig!rlTW8E&N_f7W*<)Y1Q zf=Q_>@x*rP*`->oR^PikIXUSK9W0!#9D3nJ*U^v7FNHr`yVd;}V5$ST*M|pBzPz^X aum2BWG;ggBjE2ns0000XRsYQm;(x!w!LK{$| zX3;J{V%o55zd#l&_y&A}upw*2x&ny>%7#i{1V{}-+!m1*Lh2?2c}n8g&%+!3EF3J3 zbT@Z6I``Zwj4`aOt*rtJKoKbVzMl>Qf7MCI*M%@vFOU!HgnzqbSymgkcoxNtjg3tW zAfv+%uT2+jwL_0)Z&d1Rpof!XduF_j5)su?k79Eq80+fZkbN8{^|2}Z`OZC{Phe}~ zUCP&7sBu`?W&1I-Y&bZ88%vP&YPjyPwWK18GdQKL2Ot5IiW2`79__;Fb;xAk(kzrJ za9=3Kwc-D;t$$v6K%iyl04S@UY4zZ+2H7k$JFpi^3ZWvhK?wLhQnXW@X#iC&m!)f0 zKe(LVJ!dDNehR51EX~9A@31%zz7{;{NDg92R|Ic6L^1`)S^N z|1%aB4zL~gHgj1=cljHq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H102g#cSad;kbZBpK08C+UZy-ZqY+-F-Ze((0Y2T3=DgXcg7<5Hg zbVG7wVRUJ4ZXi@?ZDjy5FfcYPFf=VPF`_;+_W%F{;7LS5R5*>5)N5>0Wf%wW=Y8LE zPH*elwOe;9yL7Yz#zxr&&OpXcVNgxDmFL>9ziRE_{{??{ z?%N%;D{9}%x8`dub>8GhV!8bbZ6lQ~P#w5Jn;3&mJ#-bRfDvm>HwFb_*2ZC-7KUU|E@^ma^ zTUuH+KfR&h^lTW<3=T(W%d+Kut$40{Fx!L@7F#f6%f#76ZxH3>)J z2xAHqA!^ObifGjwwqzO-3gSWt0SK`;=2RRC#Pq&2odz;8OtrIN1^~cdOkb6**MkVL zah7G!B>zKre7MsLLt?l!9fwjzLO%2&m)*D*FKBQJ}I96zMJ~iQ7OW9ta_L z<$T7*G90>h&vz{)EXLzEIy-;!F0h%+PuPTFP!vj)3BVWuCI|>Yz%YN6We@-z1EUVB zYUgJZ{n*|vczwPTDdD}lcgr{WdUp*E4k_y@lY<{M*u)ylH*@}VXSpIzb zh4ouDZFT4D@~1^@{F64RBZUrYdi?Yes9`>UPZyAUShzk58O)@af(#`csuo?Z!> z?(8}F`u@QxAE|k2p1ov$L=alfoc^*YCH$~SI>=1upYNS4B4MhJO8@`>07*qoM6N<$ Eg5+D7;Q#;t literal 0 HcmV?d00001 diff --git a/src/images/22x22/geo-free-zoom.png b/src/images/22x22/geo-free-zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..938ffa828f192c7fe5e87971e7d55c24342482e8 GIT binary patch literal 1502 zcmV<41tI#0P)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H1019+PSaeirbZlh+Mrm$j!h}d$0000NbVXQnL3MO!Z*l-kVQ_CC zLt$)TZDDR?a%E}Xks2xh000V>IRB3Hx05UKzHZ3qTEiy5pJ~a0L z00jO?L_t(Ijg^#JOw(5!$A9PiZ~d3vD5X$ZL?*KgXC zVYO!LOjt#-!C0G}oykT-Dy&UX5wlzji4s80^7O#63=^+b(b#O#$8G6pUWOsWnV^7Z zhDP3q)~!imAvxJtvlL7M0O$?6jXJFs1c=O06p0?q2oqXeGA2m^Fv3_-6d)v!0ZBL* z*0_6y!!Q|CJcHx1_}c1FL27EMJt3H)X?8d6zsMbDOEs>Ge#{%GZZFg zxOmh%7mwVV5JLlF0w=}}zE*=>@x1}hp{O7x##}dL4#uWIXz%wihNM^&o^tyxbmFC@33L@hU_2hq>u#kN4KVox`WTZ9DSrw)grnm)jgUIoUwbl&`bn z>Ra0z8oQqXJDtvjdN2T>oldkEx@cZ%004Qx#pM;7%1evB21PcMmX!j5k-w{} zr}pXNxm+$~(SgOY1OOrc#OE!|UrYc1b?fHef86Z5y&GX-?(X0qs908qF}5e{c)k)e z@1^tN_0wRbYpOQq+j9?dJnuT+{^Op6;1|`RAPZ9d1#2}hh594URR91007*qoM6N<$ Ef&jS2kpKVy literal 0 HcmV?d00001 diff --git a/src/images/22x22/geo-place-add.png b/src/images/22x22/geo-place-add.png new file mode 100644 index 0000000000000000000000000000000000000000..21ecb610003e699c83c6486bfcb1c1bf79eff19d GIT binary patch literal 1499 zcmV<11tj{3P)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H102FjZSad;kbZBpK07_wNbz&e>bY*F7Wpd{G_b&hd03mcmSaefw zb#h~60BCe{a5^t9YH4k4VPh_Bb#rNBXklz@E@OIWX5(G}00j$4L_t(Ijh)q7Y#dh| z$MNr(z523VU)FKgq>k+n)3ixUAxWixm13ISkRqWJ5D=*fDyoEp5E3BDLo37!sEEE$ z<$+455~4-4q)JtaLT{nD#t`|RGmgZCYO=18KatGy*qN}Qi5)}H#! zsnYE1_3VYIkA6Jy*PoxcnIR5-?~h-$EUQgG#InSf9zC+}h%Yr~-Coe8-=}FvT0As)p3`#>N zB+$yBF%-)-LkWki+Xg9D9kdZ_OG<3VB`hqSd*Sr#pHHmZej^@UDSNuEEWko4gXbHR z)(BytG$>`z(&y0r-3Y*OeWaadDX;j_u!Dqkn-ESPd=77==xD_7#`aK~2lba_MK`~2aDMt`a5Y;aG zb`K+jpuaCAcI@na2G|W?HJf&hZvSR`TdPod4em&#(d)UdWv>XNA{2>mhgjGm5?Y&B z+XaN^+lWR=NixySLasnE9wu8Bk$~9Uz}yD>uZ2q1OZtN?fkV3GI-TJN^Q(q%q7S7t zQfic~2m(nYvexFhF0Six$8ee#Po2e=-7;j!tD7diJiTyv``%BFExNrNNGBK>9$=(g z;Y4N*8SNsF8m|%Mm%pE&<~BIArJm z>=?QgfUeFY58ppZTI48I9m=*xLA6s-9ZXFxQLELkZJUY73pA`Q0@qo7^UbI2O|V}L zUddm{E_$BNsne5qo`;kY0aU70N;Q{q&7op@RO=qsiUE~Mg=)1*&8{=h6*JcsR?dEG zS7b83D!%<%=E}&ShSloqhch5EnvN#uzP{C&>E5TY-L{|Blha#}0g9>>krK(BflJ zDA{RrEk6S zV0UWk$d+_pcS}4T%P%iiR+e(h<zNB}KBl(k=y z1{#0^)PN#TFviGD#?9cHEEHaUA5B;qW7L1^`8OA`p(IkJcBB9R002ovPDHLkV1nh< B$SVK< literal 0 HcmV?d00001 diff --git a/src/images/22x22/geo-place-link.png b/src/images/22x22/geo-place-link.png new file mode 100644 index 0000000000000000000000000000000000000000..d9f4d93c2daa5c68e479fbf336a09f69f04bf284 GIT binary patch literal 1588 zcmV-42Fv-0P)bY*F7Wpd{G_b&hd03mcmSaefw zb#h~60BCe{a5^t9YH4k4VPh_Bb#rNBXklz@E@OIWX5(G}00m@8L_t(Ijg{0}Y#dh^ z!14dg&d%=IUaxm!$M){Vag6Oa7bj`sG*O}`X-ZU7Rfr0rz95wf#6txLkU)|8P$VE~ z6fP2|iiAJ~2^9pimOyP$OD}1{lGJrB#Z418c5JWLUVFWsot@daUw9z4616JgJe~7! ze&?L;eBUR8VaVDzedd$^JPN!j2*UAfF8fPS6oYED`nzvF_3alfbo+t*ZIAzy51< z{DSu6#Kbes$KcavPVIeQ-+{5qSKj;6$liUAyFP*1u*CF+EVasQ#4se9+C)dThg#hr z2n9B$JaofE5=8#+mvd9Ej4p4#8;>NKWnojk=S@wktF5hVeTHeZw6}MNR-;DfHb}%` zWC!+;+uRR=gk#%aR%sXpJGb_cN;War-<6rTH8FJJv7>)pgGEV_zM4oR2Iot~-^#L_ zJFx$NxKNtIbsQQEgIdF;ePf=e6d@83X-c*-)Z4|OkzrD;Nutpx@tDllo;dQQ!^gh2 ze?2Rjn_5m(Rw`EmPugi&7FVu}W7{^GVbYdNvggo41OS3S0Jy6~3X5f2DTy4I>>KVw z5CpQF?ZUve%&&oA05K}dpRsLwUeRNbAn;LD6*q{`9FLR94-ktt6NccpKCb5ziAMS2 zBS$&7y_-}j$$Qs}02rppu5F!t>!DE9+6(En%%gq18}@I^_2YN!AqYHtB6MxpjTZ!1 zu8(26SbCiYhWimkk=~v>#}D1d?tv~oxOtoRKb%Il{OIAsPxS#vuIv0jt=A5vT2sfC zOSh242v!I!JtLGAop@A2mINHvC(x@1Lg#u)d7eiq*}`18N-8cCv}>d@?RZN!xIS}>L?(|U#}Fej5!c6cJ)+V77OZKSn5M~&zHVN8 z?IMns@gkx(10aQA7y#Odul#gu`;ooFi#3}E?@uz=*Mm}187)lXlEk$GEL-L$FPuj+ zZI18iU}#I0Mx#Lxc-$;C=x&KuWHERbKwNuPrM&#MsW&h!hk-4d07$o`c;a)r=@!Z; zb%UC2QT1C;{8q+qE~04~x~_Bn(lu-`jcXc9Z@u-Leh=)_-Ipu3izUl)cE}y3YAKQ$zqk&x^V|LQFRm3(5cmGR4OY>E;?w%@=ff@ch(DJy=e%70E{M6 z&0iimc5LMR$yr*PWBmP{%lunuC&a|{d~DalcWh>T7e!I{@S|yxk!HOx_Ug~4rrv0S z=garNKn#e#{qor#I*xUE*W>%QPS4B==RPtqq7Gr;gYOc04xww&a7->-S*EgRXxGLH zFHTLp@c|GQ1VIeLFj#M!cW#^qvOspn?$1AY@WI2M4bwdd2a&3xV_6oh@d(XP5KSYP zyD>RGe(9y>G_8CcSO7|47%r{1&AY-8xdV3s9ZgLewsdd0??|RSKe(~GGn0tNW0j>P zb$PM8R8wZg7fV+!0aaibD6gR(gYP;Z26O;zKoUp*G9Ul}U;_rA0joeY3`6f8Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11jI>1K~y-6jg@PNRaF>S&FRe5Ii53fZhNnN z>&J|vqj>q?gAHq~XT7}Z<=Y|%0ssykJos)r9^YXYhQ=exb=_cmeEe`1ltW;?F;Q>*bc_)PYngCA`^(T)S=^FK*q+=~JgTdHgu**R3P5 zawVRw!_<^$Yg_o)sblY5OVw3(8K$Tbx>x04MO-QoKTsj-PV%<+`G*64-pJH-Zh7TR z9LJfn;pB-Ed~@y`=|hKzT)s?ra1g7p5o2tO(d}D<(d_$Tz#rqS@n$=}{cEE< z`ym?y(vhWdWg=Rav>8l zH{y1*w2;ka=c{~7H8wU9E$3Ms_8IbHj8Aq`obE>D7DGbd`+qr7Iod~2(Z6FNo6$!y zt>m+{M5{_{d-V#I6~(TENi|F|oNwZKW+}rHCdxI*DU*ViM(M5i!M*VkGqbp^Z%a)x zZ?rZW#cJ_mqGM4A4V`4&G;J+l7;tf5J)eC4He=KEK!80pe(&|Aff>68)o}@jz;!)a zOQ+MNAcz)(9uN*Y#HvaZiYB>yh-zmQta}>0e%8G~Y-N__NmqNTD!b|MjNLbR8#g7#3GX@ z<=GlQxm>v&uZ~j{Q}?xvY5Ek42DZ{k#BGwP3X!l+sya_obaXc2J~_V$UCfMwHH!vN zj$6?HrVHgUBb1!)mk);F5sxcs6BZRqVq20(*hc^x+J7P*DG<^ubX@#Er#+QnL&xtZ z<;_@;%~nR9U0gFitRezfGf7aAXhcychA>T!iY?jDd7TZN*Qu{Fxbn{$2J_GGMt46_ zu0W|-j|=6{uoJ9u9CP`Uu1E8_jOE74Vlt~lOzOp^kdbSYj3**hx3EgX)YO=m(KQq* z9TQnqKib(|YTi^kR3DbL0-@ph(vbjT+19VV{F?88Ogf!@=%?4)+gsC+jBaXgTd}Dj z6VD1h5pP$!>M#SZT0r{8V$9Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11#U@1K~y-6eUw{l9A_1PzkjZ~vsdq~H+It6Yn(QTYZ^q-3zmXg zDnwhTL=gfBc&G#qjg$w(15`+k01K6e2qBdhc&U(h0)!w%AfP2m2~sXHB(2k8lZ3Rj z<4e5WUGL1!%s(^#&qLFysYH%+-i|&Uedi*y*1Q+reyTW?bM0>!LKNaSdHMO1{a*vT zdc0=ma_)B=*E^8J!Acm(AAa%&+dJGL#CzcHe!l$FN5=2^>G)`UEQ}&e@ncT!;in1-k;owbQ**3ygNF6;m2Qp+))1B{^Hr^TMf79I5u${)9LMC*ag)Z8l1cDzK?#wFda0C z%wGdxu-Zwk$J0+Q*p4U)Gb?69`IIoPv~;8G+D&oc@5e81ZJeBX<@c*h7E1^fqg96K zcwFhEyi9`bKLC`XvKpwt_Qwc}5mAE__u z$Vi0mcMt*)8ova8y0Sr~@-Y^&CyC-1Ap`=ADKw_e^XjQ*v4;<#wDJDn3Qn6eRk7uH z<+ob9_YTfq{8zzD%Va4S7Ptl8^-(q)FdV6LYii= zdHVF}gy`JS@u4&2x)(BB>eDQR%uGidm>T5|Z-0wan@A~$gy|vAY7Jy;qcWTv)S~VkzO_J1LbXd?E?C{9lr^qauk>VD+8*PHV&u}j-l?&%ll`wkjNB9peK*?r_1C;oPn zPA~*O)!1O5%M4V7LVgP=v)BL_48ohGa*1L=ejsBUN8$T6u{5caVrq?$d`{6QcNy{4 z0MJ^|Q6rcl0pRfXGBQa+17N2=ShwBUZD*+z*mg##BpIqigpoxYS>$sH0nD_{Q_A;o zjR=zzrA=Cm6=o)1L(1%3743F-EIGfl5+T7}N~Ky0<8C|IUH;@X{E78{j( z@hzfYm1@<&@eb1uCpX)2cx|c`jLr_dJ)E9HxA*+&m%rm>U}b)OUVZp! z&&|zMn>BB?H8wrlY!vnl(#T)_XaA*@&E{|B=jWrjxjDNzq(415vF{7bM(JRZtlan? XthJ%UdmvB#00000NkvXXu0mjfw~y8R literal 0 HcmV?d00001 diff --git a/src/images/22x22/geo-show-person.png b/src/images/22x22/geo-show-person.png new file mode 100644 index 0000000000000000000000000000000000000000..a63ad86d6d60f70fb1a553c3c092c55e17b98c27 GIT binary patch literal 1408 zcmV-`1%LX9P)Hq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11pP@wK~y-6os?aOT~`@~pS9Q8d!K#&=FH5QGn0%>W=uljw9rD* zhzS}66SNnWR6Lhz>GjTefblM4sM3qb@C@x~hk5h>Avr4TC`tR|(=+L+i;`!h~w zCNt;EIWy;H@4fc=@nS-nsUX1@*2Vhxcv!sO`z_(U=U)B(;)E!blCPD=4qOPrux0YW zX1d#cA!|M>TIr^1|Gj(aB%PC zk4vr3P0c-WzEq!4;lv5TiDSrQ5-F@2Z_Zr!(^BiR{}(un;`60awIpOj5Z4hhhCm^N zB$U3S!sz4o3;r)FY~F)`#G4FnGHlwx={`awfVf{S>iggQ!Y4wd565xXJWx73-q_i& zaoUkVSjD>no3`;*Qv_9Qiu^Lbx4-$Nqetic)6L2HgJC49LfWb&OAKk^ypFT&i7oN+ zm5YBX2bUM5NO}2@MDFgp4q<&Xs=##pLO8*C(r;nIKp@u(I=3wCpx` zbtgllo;=cbUwd)knb(xFx|0t7%nLUjz!9psV529Br*A)91k`!g78wHjs7>(b{$ zXolY5Onx_3zrMOcp)+t6=PYKli?4;8Xc$h-I<^t4xC*!1CmHOXM0e+5OyJzjLT&Y0 zHy?j=#eVNsHJPYcMmhz*2Y%_M#uWwLIRuVIz09DyL1gE7{-rOI`!Tef#rb#ltP*uF z#^uU6xjH=_4W2&zqp?e`J%vdc7#|`f2myHpjPrCYUnjcP^Tb8@1{F&Kp8S~6D4nP{dYB}cQ~W2U^m7dh|fx*4P> z062Ac8C{q(0NCx1Ho|yfpO?--7+PvI&G=YGnkn*3k(3+)I5T&RTGA&DG9(7)C3DSH z&K&tGTH8GHq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H11#U@1K~y-6jg(DnTxS)ApYPu9&Uk+PH)D@$l-M!BtqDyP8;ML( zMM(%!p$JkHkjjE3Dp8k6EO4o0SRk>h#EPFy#iINwQ6-$FAwj8|mL#;Hj#I}?Y-c=U zdpt9DX71d%_q%^A64Hi6)K@yo^XTY3?>QohB0jC>U-;$mLx(4Sv};#kQrDy0dc|H@ zUfx)|xp@1J=gz!xj?XCZKX9@5QsRXlocQaZ!&Ap?U&sSr7-e&7iw`OxZlK{etM0YS z*Dt*D*1u0KEWFzNOyFYirT9-@`TlBlAXA8{T?b7Fo;mT< z!9&M>eDskMf92q=pN$l9+Ine&k|i12Jq|z^fggkfzQ>-i&#`#B!quB)j!o}jIM=7` zdqV#D!u-pNMogrI9;5@DgikjSMk?;q2dd)i`G2aC=^N?c35JJq^rvI=NDbu$wAwAE z$1)g(0f1#${NvJl?9^&3E?uMl!0-5==^(lhZcIIx_T{M;|06eRb}&AgH|{h|;)cX_ zQW#P|7~;0-7<&gEG$^G|O0jgiOvTn%TXpfWE^%THCj#kdJM~8E-AWHx!{gcM0@A!i zdAr5>R+~Gf;PjgdoIZPrW~+r|S&WV5xm&gIf*MNqh&Wol-Zx65(#}^$O*Q3)_?9>`0 zb&r*bOFns-179ptN3b5I*xH%KYE7dWV>#{EP^3lSRxKS@kA0>>m2a8L^YWRNW$}rSRp~!Yl z&itZx{_1ylqk0gT90AkBv%ADaKqfBmybNzIxzwXRaQg49NE*aapFnkddg9>wfvaD< zc+sn@y?H8d|CQY{vP7CI_|?1Y&Y0xl0nKKDTBA!fNTbq&1YQ^JKQ4hlkEb3A+C<*s z^8?%OO8`wzw0hzJ!~>+e2k-VU3_w(ngUnh_Th4c=OVl!`e_6ovP3 z5mG1&;UHrMeh|76APBXF?8w zXGx#7g&k$F!(LK}9h3@O4Zya$)l4=+I;B2UF0ojMWf{0ir#Is=kn57@3CU$m3dsrp zQ54b$3+TcFU}pC+%JaJ#K&x$U8u3p~7a$D5Fak0eMSrhD*O9o6B+(Nhfa2JDWD;%S znuCr{80n1VN)#uqqf~IuidwB(eqy}u;lC#mfCEIhN|H<{+E$!cETHR3ic=p_ocfUb zpuxKz&v47!%lD?wAmu)ky6x>-fU(ff*eu2>NL+MF?&D!Yeul|+pwrk&!pt;9}blQuDw zBrPMkN?Y0_Q0lbQX{o6VX`Ko=k!8j5 zl`YA-?|aWVGiRm?DU$4xfmzH9^PBJce}6`tKYzXgRDp8nCx0VDVfUbP^+>B%xs+z% z)%p2(%L8L>Zcdb<)-z+n>P#sPMxw|s7eZMMLO=GUQ@nXA8;C#r=BJC(wbe=K4g$wb zq;wU5r^#(C*=$d(-P=kRZ`^EuT;DkGeyzHG>e$1jSIQ;#vB+PV>;{|i%2t3XMuKOrg;~0mMkq=f05MUiG2ZO9xiGO3Vtk3m@SpZgU9OB}Kr%6x# ziA(Da05`jWLC2E28UW)MGA|>{JThP5DG%i-q~l_Z&1J8jG&cIPblZX~^8m2c;(3ZM z2ZF$bg9Xc2VEIQ!kneMxTZ=$ou?PXe3Z&y4%|>Mx{L+z}A5Ix|-!j`JNrM#S=IF+gWJ~8T#%d>1{<1M4-+TTdqqX&2$a61# z$R{6vm%H`x-970-#kXAersBB?!xL3Q(Fy6@Ie*Q@XKzuz^&?z-a$}Tib*sy%+OiA( zIU%yl--V2fZSd-k-=n+ZBFjB4UVoY^3uCm>BHg4&KOd%TA0pLz_X=JQljmCMT;4T= z{YQ>pi>jk{*jSt9*z6+G%a}T}N}_z;z5Eit|MWDCUQF8FbLB`MKiY!|EWRhmbE_q= zseg1aDGceTHon2|=oZp77z;{!{N%T9@>%_n?Th<@+z!Lsw{(TZlaL#uoca0rffa=$ zNnNyd@w^<*Gc?-)|Ge>yUFfbV$KB)F`@a!wJqn)MRgB~Ky)eij$Wh8=kVq;em@MAr zSap%yN~WuI4v*g@?Kb$`)n{n-%m1f15`RrxUy|!QlK{rbzRr9ywcn*>yt>6(FTaho zV2p!9ODRe_2%sFNgntD? zIZlu^+2I$u4>Cg1)p`~84&yj_N9C}4Wx zQC=(mjW_)F5W-?PiqeFBx0-=+f5JBZp3%9H}J7#;ae93R%P2v?m^H@<6W}b8~a? zXl4C{>51TlZZEsHyjp$x!q0wQ-*;Y~7_GlHb2vV8eX0NM{{Ttcjos_!=BEGv002ov JPDHLkV1iR#v!MV0 delta 1286 zcmV+h1^N1;3*!oqZGQydNklERf7{~GN%>3W>y-T~>*4kE7Kq+l45egb5 zVnjShj8UV}7)~T`@Suq?@#4`$jfsgKyy!s;i6NjQiiC(S2#vu=MXOj^q!rrIZg;o4 z-QEA|cqmp-FZd*r%;}Sv-!m^lYt3J^R|p4q8Q27*fGOamr+>9R%XOA<6)J#Z`DAia zKA8kyrdnmTTKyQfZdhJ5Z&yO(Vy1}@f?^`URAu(=@1g?srDOp*2 z*KMaamE#~AHGh6NzmBzQd$LycwYwD_L8!1ypSougvs^w340ag7HLE;vwr_kn3L(TQ zA;gm>Pfgvj?{nCH2u?NT$=btY^Q)L^+({5AEHj|yI+!Y8Mho&n^Uq4!3oCZ*+SLXi zwbrA+XFaPEVof*L%}^PK7IlQ-?+#K^8~Nr3%^$O1JAWagrsl)I?cTjxceiP0!#a5E8OT)N({Fsvo&A#L_C8kKEU45?zCG#(ZYclnTNESUJ!_vU$Kqmft0tJV%7)hE^z5L9;Y23xQ#R zFd;zDuOi}>+p-L&65`gFRj1+E%pSLiZ?RZ;qr&wCLf4onMD(nIbCb~D1KqKud=FL( zj=PG}fx^|Wpar(+=a=D_jQ9KmY&$ diff --git a/src/images/48x48/Makefile.am b/src/images/48x48/Makefile.am index 60d075f8b..2c0da0cde 100644 --- a/src/images/48x48/Makefile.am +++ b/src/images/48x48/Makefile.am @@ -5,6 +5,14 @@ SUBDIRS = pkgdatadir = $(datadir)/@PACKAGE@/images/48x48 dist_pkgdata_DATA = \ + geo-fixed-zoom.png \ + geo-free-zoom.png \ + geo-place-add.png \ + geo-place-link.png \ + geo-show-event.png \ + geo-show-family.png \ + geo-show-person.png \ + geo-show-place.png \ gramps-address.png \ gramps-attribute.png \ gramps-bookmark-delete.png \ diff --git a/src/images/48x48/geo-fixed-zoom.png b/src/images/48x48/geo-fixed-zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..c3c2a40e1b214834d15c204fe1eda70540efe200 GIT binary patch literal 4381 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 literal 0 HcmV?d00001 diff --git a/src/images/48x48/geo-place-add.png b/src/images/48x48/geo-place-add.png new file mode 100644 index 0000000000000000000000000000000000000000..c2c0750a1038bdc46a1e3aa91212d332fe303083 GIT binary patch literal 4234 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 literal 0 HcmV?d00001 diff --git a/src/images/48x48/geo-place-link.png b/src/images/48x48/geo-place-link.png new file mode 100644 index 0000000000000000000000000000000000000000..b88acfbc480dee6a54e293996ce0230677de261c GIT binary patch literal 4777 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 kc}tf2KlgueEuzjp*3#+;ft1^h? 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 literal 0 HcmV?d00001 diff --git a/src/images/48x48/geo-show-place.png b/src/images/48x48/geo-show-place.png new file mode 100644 index 0000000000000000000000000000000000000000..bf3cc17318113191c762f66ab16a794e08bfa416 GIT binary patch literal 4612 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�-tFf&Vr7XINy;#=S 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 diff --git a/src/images/scalable/Makefile.am b/src/images/scalable/Makefile.am index 9b953022b..027cd31ea 100644 --- a/src/images/scalable/Makefile.am +++ b/src/images/scalable/Makefile.am @@ -5,6 +5,15 @@ SUBDIRS = pkgdatadir = $(datadir)/@PACKAGE@/images/scalable dist_pkgdata_DATA = \ +geo-place-add.svg + geo-fixed-zoom.svg \ + geo-free-zoom.svg \ + geo-place-add.svg \ + geo-place-link.svg \ + geo-show-event.svg \ + geo-show-family.svg \ + geo-show-person.svg \ + geo-show-place.svg \ gramps-address.svg \ gramps-attribute.svg \ gramps-bookmark-delete.svg \ diff --git a/src/images/scalable/geo-fixed-zoom.svg b/src/images/scalable/geo-fixed-zoom.svg new file mode 100644 index 000000000..dea78fca7 --- /dev/null +++ b/src/images/scalable/geo-fixed-zoom.svg @@ -0,0 +1,1088 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + document + search + find + + + + + + Lapo Calamandrei + + + + + + Jakub Steiner + + + 2006-04-21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-free-zoom.svg b/src/images/scalable/geo-free-zoom.svg new file mode 100644 index 000000000..102dc0596 --- /dev/null +++ b/src/images/scalable/geo-free-zoom.svg @@ -0,0 +1,908 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Find + + + document + search + find + + + + + + Lapo Calamandrei + + + + + + Jakub Steiner + + + 2006-04-21 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-place-add.svg b/src/images/scalable/geo-place-add.svg new file mode 100644 index 000000000..d58069a40 --- /dev/null +++ b/src/images/scalable/geo-place-add.svg @@ -0,0 +1,1058 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Jakub Steiner + + + + + Tuomas Kuosmanen + + + + http://jimmac.musichall.cz + + + globe + international + web + www + internet + network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-place-link.svg b/src/images/scalable/geo-place-link.svg new file mode 100644 index 000000000..bbf116223 --- /dev/null +++ b/src/images/scalable/geo-place-link.svg @@ -0,0 +1,1158 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Jakub Steiner + + + + + Tuomas Kuosmanen + + + + http://jimmac.musichall.cz + + + globe + international + web + www + internet + network + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-show-event.svg b/src/images/scalable/geo-show-event.svg new file mode 100644 index 000000000..8a594883e --- /dev/null +++ b/src/images/scalable/geo-show-event.svg @@ -0,0 +1,2885 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 2 + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-show-family.svg b/src/images/scalable/geo-show-family.svg new file mode 100644 index 000000000..4fb4fad59 --- /dev/null +++ b/src/images/scalable/geo-show-family.svg @@ -0,0 +1,2849 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-show-person.svg b/src/images/scalable/geo-show-person.svg new file mode 100644 index 000000000..c4221b672 --- /dev/null +++ b/src/images/scalable/geo-show-person.svg @@ -0,0 +1,2957 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/geo-show-place.svg b/src/images/scalable/geo-show-place.svg new file mode 100644 index 000000000..ccc6beb67 --- /dev/null +++ b/src/images/scalable/geo-show-place.svg @@ -0,0 +1,2718 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + 001001000111 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/images/scalable/gramps-geo.svg b/src/images/scalable/gramps-geo.svg index 5fbad1cc1..639985fcc 100644 --- a/src/images/scalable/gramps-geo.svg +++ b/src/images/scalable/gramps-geo.svg @@ -1,5 +1,6 @@ + 0111 - - - - - - - + + + + inkscape:guide-bbox="true" + inkscape:window-maximized="1" + inkscape:snap-nodes="true" /> @@ -671,6 +667,7 @@ image/svg+xml + @@ -679,126 +676,78 @@ id="layer4" inkscape:label="Map" style="display:inline"> - - - - - - - + id="g5384" + transform="matrix(-0.0462529,-1.0014923,1.1231331,-0.04124348,-4.4108026,49.940205)"> + id="path2670" + d="M 4.3194641,7.8618014 C 18.555924,7.7862647 32.856027,6.5387482 47.092432,6.4995453 c -0.0843,3.0031609 -0.106112,7.6023897 0.260935,10.5873197 -1.658318,2.89611 -2.153268,6.247001 -3.287619,9.34816 0.946165,2.877206 1.767374,5.815802 2.565864,8.724178 0.354562,3.848309 0.279552,9.006356 0.639931,12.85431 C 31.767099,47.100116 16.25958,46.30966 0.7718911,45.048857 2.4332679,42.242736 3.1000322,39.002802 4.4485404,36.055824 3.460062,33.828765 2.6092477,31.53453 1.9758277,29.180707 3.6278646,25.419064 3.7691535,21.120868 5.6633076,17.457618 5.3880019,14.235289 4.8143299,11.054386 4.3194641,7.8618014 z" + style="fill:#edd400;fill-opacity:1;stroke:#7c7c7c;stroke-width:0.82360929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1" + sodipodi:nodetypes="ccccccccccc" /> + sodipodi:nodetypes="csscscccsccscc" + id="path2682" + d="m 33.01552,45.990981 c -2.120326,-2.568582 -6.394869,-6.616357 -5.42859,-6.616357 1.464304,0 1.994993,-0.543233 0.614631,-0.543233 -0.458418,0 0.978079,-2.650198 1.445058,-3.388773 -0.0777,-1.505494 -0.178214,-1.905223 0.927706,-3.01775 0.573017,-0.57644 1.039831,-1.128717 0.525708,-2.644246 4.685703,2.610536 3.087104,-0.673964 2.486041,-2.035421 7.673716,-0.20121 -2.394051,-8.945821 5.047921,-8.134287 1.781092,1.195039 2.960663,2.172638 3.583026,2.928094 0.496089,0.602177 -0.214347,3.394172 -0.964561,4.831332 0.821849,2.482327 2.77621,6.366753 3.124266,7.96191 0.944079,0.675111 1.080035,0.520537 1.172037,1.841173 0.04485,0.643758 0.119433,5.702282 0.233574,9.483369 C 30.72285,45.96913 40.660618,46.471567 33.01552,45.990981 z" + style="fill:#4e9a06;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + sodipodi:nodetypes="ccscscscccc" + id="path1901" + d="m 15.249903,32.336144 c 0.447906,-1.822675 4.19115,-0.677191 4.389195,-3.667684 -0.891201,-5.217822 -2.458974,-9.070528 1.576885,-9.121297 3.133013,-0.03941 6.018316,4.744043 6.880361,8.503375 -0.198045,2.638197 0.41447,7.1509 0.41447,8.699854 0,2.69831 4.743163,8.57672 4.871775,9.282946 C 30.95948,45.886363 17.085627,45.105209 14.997691,44.85626 14.33263,44.77696 12.009068,43.701243 11.338926,43.701243 9.0155661,42.963587 6.9326761,41.100078 6.6792651,39.864884 c 1.123006,-3.344968 2.0750514,-0.97072 2.5251825,-4.154358 -1.662117,-2.061197 2.8075734,-4.767613 6.0454554,-3.374382 z" + style="fill:#3465a4;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + sodipodi:nodetypes="ccccccccccccccccccc" + id="path2680" + d="m 26.94833,12.457805 2.622904,-4.3008938 -0.231918,4.4016978 3.280495,-2.6455508 5.690714,-1.787493 -3.101539,4.4119908 3.092376,-1.635115 2.777298,1.614062 2.902233,-0.01041 c 0,0 -1.808072,3.215 -1.998893,4.225883 -1.140492,0.887628 -3.707295,2.248627 -3.707295,2.248627 l -2.862845,-2.042907 -2.822039,2.063298 -0.0077,2.347713 -5.68489,0.02039 5.699411,-4.421304 -5.069707,-0.115449 -1.523392,-4.261769 0.944834,-0.112767 z" + style="fill:#75507b;fill-opacity:1;fill-rule:evenodd;stroke:none" /> + + + + + + + + + sodipodi:nodetypes="ccccccccccc" + id="path2670-3" + d="M 5.3146309,8.6438471 C 19.551091,8.5683071 31.968364,7.2650955 46.204769,7.2258929 c -0.0843,3.0031601 -0.208856,6.8913601 0.158195,9.8762901 -1.658318,2.89611 -1.955223,6.247001 -3.089574,9.34816 0.946165,2.877207 1.767374,5.914826 2.565864,8.823202 0.354562,3.848309 0.176371,8.020122 0.53675,11.868076 C 30.871556,46.228224 17.546688,45.631823 2.0589991,44.37102 3.7203758,41.564899 3.9643879,39.057781 5.3128961,36.110803 4.3244177,33.883744 3.500266,31.450827 2.866846,29.097004 4.5188829,25.33536 4.6893975,21.03429 6.5835516,17.37104 6.3082459,14.148711 5.8094967,11.836431 5.3146309,8.6438471 z" + style="fill:none;stroke:#ffffff;stroke-width:0.82360929;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:0.68773235;display:inline" /> - - - - - - + sodipodi:nodetypes="ccccc" + id="path5347" + d="M 5.4462326,35.820243 45.451287,35.325132 43.074749,27.205294 3.366762,29.383786 5.4462326,35.820243 z" + style="opacity:0.15034964;fill:#020300;fill-opacity:1;stroke:none" /> - - + sodipodi:nodetypes="ccccc" + id="path5347-8" + d="M 7.1296143,16.857451 45.847376,16.956475 45.816617,7.5771751 5.7433002,9.1337025 7.1296143,16.857451 z" + style="opacity:0.15034964;fill:#020300;fill-opacity:1;stroke:none;display:inline" /> L", + ('SaveZoom', 'geo-fixed-zoom', _("_Save Zoom"), "L", _("Save the zoom between places map, person map, " - "family map and events map"), + "family map and event map"), self._save_zoom, config.get('geoview.lock') ) ]) self._add_action_group(self.lock_action) - self._add_action('AllPlacesMaps', gtk.STOCK_HOME, _('_All Places'), + self._add_action('AllPlacesMaps', 'geo-show-place', _('_All Places'), callback=self._all_places, tip=_("Attempt to view all places in " "the family tree.")) - self._add_action('PersonMaps', 'gramps-person', _('_Person'), + self._add_action('PersonMaps', 'geo-show-person', _('_Person'), callback=self._person_places, tip=_("Attempt to view all the places " "where the selected people lived.")) - self._add_action('FamilyMaps', 'gramps-parents-add', _('_Family'), + self._add_action('FamilyMaps', 'geo-show-family', _('_Family'), callback=self._family_places, tip=_("Attempt to view places of the selected people's family.")) - self._add_action('EventMaps', 'gramps-event', _('_Event'), + self._add_action('EventMaps', 'geo-show-event', _('_Event'), callback=self._event_places, tip=_("Attempt to view places connected to all events.")) self._add_toggle_action('Filter', None, _('_Filter Sidebar'), @@ -1033,9 +1033,9 @@ class GeoView(HtmlView): for widget in widgets : if isinstance(widget, gtk.ToggleToolButton): if self.lock_action.get_action('SaveZoom').get_active(): - widget.set_stock_id('gramps-lock') + widget.set_stock_id('geo-fixed-zoom') else: - widget.set_stock_id('gramps-unlock') + widget.set_stock_id('geo-free-zoom') def _save_zoom(self, button): """