From 432466fc092a51f22bab2984657a974f8a458875 Mon Sep 17 00:00:00 2001 From: Benny Malengier Date: Sun, 7 Dec 2008 22:48:30 +0000 Subject: [PATCH] Part 1 of GeoView: icons, configs and preferences svn: r11438 --- src/Config/_GrampsConfigKeys.py | 10 + src/DataViews/__init__.py | 29 +- src/GrampsCfg.py | 76 +++- src/gramps_main.py | 1 + src/images/16x16/Makefile.am | 1 + src/images/16x16/gramps-geo.png | Bin 0 -> 864 bytes src/images/22x22/Makefile.am | 1 + src/images/22x22/gramps-geo.png | Bin 0 -> 1397 bytes src/images/48x48/Makefile.am | 1 + src/images/48x48/gramps_geo.png | Bin 0 -> 4536 bytes src/images/scalable/Makefile.am | 1 + src/images/scalable/gramps-geo.svg | 621 +++++++++++++++++++++++++++++ 12 files changed, 737 insertions(+), 4 deletions(-) create mode 100644 src/images/16x16/gramps-geo.png create mode 100644 src/images/22x22/gramps-geo.png create mode 100644 src/images/48x48/gramps_geo.png create mode 100644 src/images/scalable/gramps-geo.svg diff --git a/src/Config/_GrampsConfigKeys.py b/src/Config/_GrampsConfigKeys.py index 7596528e3..e2d422845 100644 --- a/src/Config/_GrampsConfigKeys.py +++ b/src/Config/_GrampsConfigKeys.py @@ -177,6 +177,11 @@ PRIVATE_RECORD_TEXT = ('preferences', 'private-record-text', 2) RELATION_DISPLAY_THEME= ('preferences', 'relation-display-theme', 2) INVALID_DATE_FORMAT = ('preferences', 'invalid-date-format', 2) FULLSCREEN = ('interface', 'fullscreen', 0) +GEOVIEW = ('preferences', 'geoview', 0) +GEOVIEW_GOOGLEMAPS = ('preferences', 'googlemap', 0) +GEOVIEW_OPENLAYERS = ('preferences', 'openlayers', 0) +GEOVIEW_YAHOO = ('preferences', 'yahoo', 0) +GEOVIEW_MICROSOFT = ('preferences', 'microsoft', 0) default_value = { DEFAULT_SOURCE : False, @@ -306,4 +311,9 @@ default_value = { RELATION_DISPLAY_THEME: "CLASSIC", INVALID_DATE_FORMAT : "%s", FULLSCREEN : False, + GEOVIEW : False, + GEOVIEW_GOOGLEMAPS : True, + GEOVIEW_OPENLAYERS : False, + GEOVIEW_YAHOO : False, + GEOVIEW_MICROSOFT : False, } diff --git a/src/DataViews/__init__.py b/src/DataViews/__init__.py index 3bd25696e..578916172 100644 --- a/src/DataViews/__init__.py +++ b/src/DataViews/__init__.py @@ -22,7 +22,7 @@ """ Package init for the DataViews package. """ - +print 'start' from GrampletView import GrampletView, register, Gramplet from PersonView import PersonView from RelationView import RelationshipView @@ -35,10 +35,32 @@ from MediaView import MediaView from RepositoryView import RepositoryView from NoteView import NoteView +geopresent = True +try: + from GeoView import GeoView +except: + geopresent = False + try: import Config DATA_VIEWS = eval("["+Config.get(Config.DATA_VIEWS)+"]") -except: + #add GeoView if in config and present + if geopresent and Config.get(Config.GEOVIEW) and \ + not GeoView in DATA_VIEWS: + DATA_VIEWS.append(GeoView) + Config.set(Config.DATA_VIEWS, + Config.get(Config.DATA_VIEWS)+",GeoView") + elif geopresent and not Config.get(Config.GEOVIEW) and \ + GeoView in DATA_VIEWS: + DATA_VIEWS.remove(GeoView) + newval = Config.get(Config.DATA_VIEWS).replace('GeoView','')\ + .replace(',,',',') + if newval[-1] == ',': + newval = newval[:-1] + Config.set(Config.DATA_VIEWS, newval) + print Config.get(Config.DATA_VIEWS) +except AttributeError: + print 'exep' # Fallback if bad config line, or if no Config system DATA_VIEWS = [ GrampletView, @@ -50,10 +72,11 @@ except: SourceView, PlaceView, MediaView, - #MapView, RepositoryView, NoteView, ] + if geopresent: + DATA_VIEWS.append(GeoView) def get_views(): """ diff --git a/src/GrampsCfg.py b/src/GrampsCfg.py index 16a540ef7..a8d59b817 100644 --- a/src/GrampsCfg.py +++ b/src/GrampsCfg.py @@ -56,6 +56,15 @@ from widgets import MarkupLabel, BasicLabel from QuestionDialog import ErrorDialog, QuestionDialog2 from Errors import NameDisplayError +geopresent = True +try: + import DataViews.GeoView +except: + geopresent = False +#experimental feature, don't show in release +if not const.VERSION.find('SVN') == -1: + gepresent = False + #------------------------------------------------------------------------- # # Constants @@ -161,6 +170,9 @@ class GrampsPreferences(ManagedWindow.ManagedWindow): MarkupLabel(_('Researcher'))) panel.append_page(self.add_color_panel(), MarkupLabel(_('Marker Colors'))) + if geopresent: + panel.append_page(self.add_geoview_panel(), + MarkupLabel(_('GeoView'))) self.window.show_all() self.show() @@ -266,6 +278,50 @@ class GrampsPreferences(ManagedWindow.ManagedWindow): for widget in [self.comp_color, self.todo_color, self.custom_color]: widget.emit('color-set') + def add_geoview_panel(self): + table = gtk.Table(3, 8) + table.set_border_width(12) + table.set_col_spacings(12) + table.set_row_spacings(6) + + self.add_text( + table, _('You need a broadband internet connection to use GeoView') + , 0) + + self.add_checkbox( + table, _('Add the GeoView view.'), + 1, Config.GEOVIEW) + + self.add_text( + table, _('GeoView uses OpenStreetMap and one other map provider.'), + 2) + + self.add_text( + table, _('Choose one of the following map providers'), + 3) + + maps=self.add_radiobox( + table, _('Google Maps'), + 4, Config.GEOVIEW_GOOGLEMAPS, None, 1) + + self.add_radiobox( + table, _('OpenLayers'), + 4, Config.GEOVIEW_OPENLAYERS, maps, 2) + + self.add_radiobox( + table, _('Yahoo! Maps'), + 4, Config.GEOVIEW_YAHOO, maps, 3) + + self.add_radiobox( + table, _('Microsoft Maps'), + 4, Config.GEOVIEW_MICROSOFT, maps, 4) + + self.add_text( + table, _('You need to restart GRAMPS for above settings to take' + 'effect'), 6) + + return table + def add_name_panel(self): """ Name format settings panel @@ -769,7 +825,22 @@ class GrampsPreferences(ManagedWindow.ManagedWindow): checkbox = gtk.CheckButton(label) checkbox.set_active(Config.get(constant)) checkbox.connect('toggled', self.update_checkbox, constant) - table.attach(checkbox, 1, 3, index, index+1, yoptions=0) + table.attach(checkbox, 1, 9, index, index+1, yoptions=0) + + def add_radiobox(self, table, label, index, constant, group, column): + radiobox = gtk.RadioButton(group,label) + if Config.get(constant) == True: + radiobox.set_active(True) + radiobox.connect('toggled', self.update_radiobox, constant) + table.attach(radiobox, column, column+1, index, index+1, yoptions=0) + return radiobox + + def add_text(self, table, label, index): + text = gtk.Label() + text.set_line_wrap(True) + text.set_alignment(0.,0.) + text.set_text(label) + table.attach(text, 1, 9, index, index+1, yoptions=0) def add_path_box(self, table, label, index, entry, path, callback_label, callback_sel): @@ -902,6 +973,9 @@ class GrampsPreferences(ManagedWindow.ManagedWindow): def update_checkbox(self, obj, constant): Config.set(constant, obj.get_active()) + def update_radiobox(self, obj, constant): + Config.set(constant, obj.get_active()) + def build_menu_names(self, obj): return (_('Preferences'), None) diff --git a/src/gramps_main.py b/src/gramps_main.py index 989a89fb7..e535bb0fd 100644 --- a/src/gramps_main.py +++ b/src/gramps_main.py @@ -108,6 +108,7 @@ def register_stock_icons (): ('gramps-font-color', _('Font Color'), gtk.gdk.CONTROL_MASK, 0, ''), ('gramps-font-bgcolor', _('Font Background Color'), gtk.gdk.CONTROL_MASK, 0, ''), ('gramps-gramplet', _('Gramplets'), gtk.gdk.CONTROL_MASK, 0, ''), + ('gramps-geo', _('GeoView'), gtk.gdk.CONTROL_MASK, 0, ''), ('gramps-lock', _('Public'), gtk.gdk.CONTROL_MASK, 0, ''), ('gramps-media', _('Media'), gtk.gdk.CONTROL_MASK, 0, ''), ('gramps-notes', _('Notes'), gtk.gdk.CONTROL_MASK, 0, ''), diff --git a/src/images/16x16/Makefile.am b/src/images/16x16/Makefile.am index 7659dd556..a1ea857e8 100644 --- a/src/images/16x16/Makefile.am +++ b/src/images/16x16/Makefile.am @@ -18,6 +18,7 @@ dist_pkgdata_DATA = \ gramps-font-bgcolor.png \ gramps-font-color.png \ gramps-font.png \ + gramps-geo.png \ gramps-gramplet.png \ gramps-lock.png \ gramps-media.png \ diff --git a/src/images/16x16/gramps-geo.png b/src/images/16x16/gramps-geo.png new file mode 100644 index 0000000000000000000000000000000000000000..a5889683a66b6bbac124673ecfbd21dec331a046 GIT binary patch literal 864 zcmV-m1E2hfP)#50_{me zK~y-)rIR~sTXhu1fB*mW+t;r+HFoo`>m&oEB9c{t2 zB_15)Ubr;l7w$(W%DQPg34y@p5gjp^Tp2rJkkE-TL0j6A!Tu4Dd(A)%Mgi# z5rD4i+^OHCT&hm6%uA(j-+k{tfZY0ruf<~FPuI>Bl+(Er%%4n=3cF+yLAoQ8oolzb z@n?hU*KQJ$&c{E0b@43#3Gm66KdyKbS$y`HCzN+yDe&BKipR4N3JX)rCWAx+3c@mI zH(H!oew4f2@tgVQ-=9AQZ0+v9kzdRP;z5OWZ;Tp^;rDrHji9GHlxuC8V?lN%Nh<1N zVJRoP!u>bcGPEL+nml$F&z!ybqp&J zoNV9N`h2HSskD^)pV<5Bhq5P{wd;q2)mS_#Q>i4W=>&P=d)7!1bYGh^@C>+khC4vs$(JCL-sV`xw*3MK+2Z6$;dLV&n{gb?BY z7d{G7D%4Zes!|R;R4BA6ZB_M>RssbQKoMAAoY*EQ4jVgOd)HrUuXlE5cV~8H-nR!# zY9E?%>LWdRZ@=gN{`J@MDEyB)dh~e}7&aTChpI*U-1zwEEZ?D&{{quudy?-sX6!!O z^&9P~7xsm~jD&@u;e?Uda-sO_m+$}L!gmHAKk?d#+tPk6TX33t`}UIPY$MhXMUR9C zsS37TW@&MauV&|oY4VD>mKh!&KkeNT{L<@xcy%`Kz3E5ll>P&~40gw<*Ptg6CDGc5 zrU*J3byArvT%mCBi|Z^ct$LZ2{DHHlpSiJ<6#|e_Hhui@bpHp_*;jsgB&j4j+Zark zMCCDyy(7F?>ZoeZFSF>-QICd!d$gv?# zjC2yKGtk0eKtTbd1iAgi@AbCw@{>myXbI8N-A-FF(bE6mn}6L2)&L$n`PdUvOV&eS zT~{kr2Vbg~u^1s$C89yq178U8#VR+JEj~|ea$|Xmk^LPUJ=l&kqD)<#ABgphy;De? z-@0kV?A+SD`LY+9xSHjT{!aGw-bO?N*9Xf6RRJjkbD1K4d+!ofxkkLHfr;5Qs&DOy7<|@h8Di{SW2m;maRl*M>E~c5!zy5%&>yv`dDR`QrX3_ z9ll;zq2>n!fk4P_277*hheCUk$%iw`>b*z$AKsY?=?NLp^)T^zosgywI5ig6Z3>Qd zQ?ah=1VRu9NgxD5NQ4lSiZ;ueRs4`C|NhU*ExY38x-~bGD;tUeilU&0H7X^WrA-gR ztiulkil%X7c!-+k^YvVo)wNB8ko@FF1DN#@vi5(%0H7+0B3;LuZH!3DZopRy8>Ck) z_IEcElnPAFTxY9Tp-`$4F(Rm;Fir6o$<_vXI^#s^4bsbbN~N-bqRj4690>8}^_AS< zm2|T)b8Q)`Xft(fge!cTLeo@oRz=>J%PGJI zyK>yP|9IwsANDQZF@Up zF1Mwau?E~glFAhLa5~G>^;Jd(+G&m%XsUvcP_S%gejzj0SiSO_v9YlX;O_zh^^U!9 zsT9OVQ6p_X7`YuCkHB-;+hQ;}(9Hec-^1+u3iFFOS@VOywoAopbLl0&ymsNYzy8%l z%d%GZW~J;}n;Os!B=+3%!q4@1*U7u@9AdC9NmXd{BpR4q%#+Qo2gS8zOP6-8KUuff z-BA1F%$YOqPfkuw0hL=_kT{Tx?Y-;p$UP??pIdbfs3EfpRWlJmHSo$=ue3Jl=Vs0s z-fAkF&0YgGzEyh5)3hUs`gR*Yc-y}k;B2?Y|GWMTVhdgsbwpIQ00000NkvXXu0mjf DBA=*} literal 0 HcmV?d00001 diff --git a/src/images/48x48/Makefile.am b/src/images/48x48/Makefile.am index c3947834c..eb2de7cd6 100644 --- a/src/images/48x48/Makefile.am +++ b/src/images/48x48/Makefile.am @@ -18,6 +18,7 @@ dist_pkgdata_DATA = \ gramps-font-bgcolor.png \ gramps-font-color.png \ gramps-font.png \ + gramps-geo.png \ gramps-gramplet.png \ gramps-lock.png \ gramps-media.png \ diff --git a/src/images/48x48/gramps_geo.png b/src/images/48x48/gramps_geo.png new file mode 100644 index 0000000000000000000000000000000000000000..63c1138897b17fda8c5cff228ed2f9a4644ef5c1 GIT binary patch literal 4536 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 W{4MOFH4>cw0000 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Internet Category + + + Jakub Steiner + + + + + Tuomas Kuosmanen + + + + http://jimmac.musichall.cz + + + internet + tools + applications + category + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +