Merge lp:~meese/pantheon-photos/fix-1273847 into lp:~pantheon-photos/pantheon-photos/trunk
- fix-1273847
- Merge into trunk
Status: | Work in progress | ||||
---|---|---|---|---|---|
Proposed branch: | lp:~meese/pantheon-photos/fix-1273847 | ||||
Merge into: | lp:~pantheon-photos/pantheon-photos/trunk | ||||
Diff against target: |
152741 lines (+151513/-109) 43 files modified
Makefile (+27/-4) icons/earth_map.svg (+230/-0) icons/gps-marker-selected.svg (+1388/-0) icons/gps-marker.svg (+941/-0) icons/import.svg (+55/-0) icons/places.svg (+679/-0) src/CheckerboardLayout.vala (+4/-1) src/CollectionPage.vala (+4/-0) src/MediaDataRepresentation.vala (+51/-1) src/MediaPage.vala (+67/-43) src/Page.vala (+24/-10) src/Photo.vala (+74/-14) src/PhotoPage.vala (+4/-0) src/Resources.vala (+9/-1) src/SearchFilter.vala (+98/-1) src/Thumbnail.vala (+11/-10) src/camera/ImportPage.vala (+1/-1) src/core/SourceInterfaces.vala (+16/-0) src/db/DatabaseTable.vala (+13/-1) src/db/Db.vala (+16/-0) src/db/GeoLocationTable.vala (+205/-0) src/db/PhotoTable.vala (+68/-15) src/db/mk/db.mk (+2/-1) src/library/Branch.vala (+78/-0) src/library/LibraryWindow.vala (+47/-0) src/library/TrashSidebarEntry.vala (+2/-0) src/library/mk/library.mk (+1/-0) src/libshotwell.deps (+6/-0) src/main.vala (+2/-2) src/maps/CountryCodes.vala (+4189/-0) src/maps/LocationSearchEntry.vala (+201/-0) src/maps/MapMarkerPage.vala (+54/-0) src/maps/MapPage.vala (+307/-0) src/maps/MapWidget.vala (+563/-0) src/maps/Maps.vala (+16/-0) src/maps/PositionMarker.vala (+115/-0) src/maps/mk/maps.mk (+33/-0) src/photos/PhotoMetadata.vala (+13/-0) src/sidebar/metadata/LibraryProperties.vala (+97/-2) src/sidebar/metadata/MetadataSidebar.vala (+5/-1) ui/locations.dat (+141768/-0) ui/map.ui (+27/-0) units.mk (+2/-1) |
||||
To merge this branch: | bzr merge lp:~meese/pantheon-photos/fix-1273847 | ||||
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Danielle Foré | Needs Fixing | ||
Cody Garver | Pending | ||
Review via email: mp+232955@code.launchpad.net |
This proposal supersedes a proposal from 2014-08-30.
Commit message
Description of the change
Adds maps to photos.
-Metadata sidebar map widget that can be double clicked to set a GPS location in the photo's DB
-Interactive map page that can be accessed from the library sidebar. Automagically groups photo markers that overlap locations and displays thumbnails when markers are clicked. Clicking the thumbnails will switch to a collection view of all the photos in the group.
-libchamplain and clutter are required to build/use
Cody Garver (codygarver) wrote : Posted in a previous version of this proposal | # |
Cody Garver (codygarver) wrote : Posted in a previous version of this proposal | # |
Maybe it's more elegant to lock the min width instead, so the map is always covering all of its area
Cody Garver (codygarver) wrote : Posted in a previous version of this proposal | # |
Toggling the search causes the map to flash and sometimes go completely black until I toggle a few more times
Cody Garver (codygarver) wrote : Posted in a previous version of this proposal | # |
I think aerial map is a better default than geographical
meese (meese) wrote : Posted in a previous version of this proposal | # |
>Can you lock the map min height to the height of its area in the window? Here's are 2 screenshots, >the first one is current minimum dimensions of the map, the second is closer to what I propose.
I think you forgot to attach the screenshots.
The problem with locking to height is the view size will change while you're clicking through photos because of different amounts of exif information. What would be best I think is to lock to both with a ratio with a Gtk.AspectFrame, which I tried and it kinda worked but champlain did not play nice with it and would keep adding giant amounts of padding to both sides, I'll try to figure it out..
Still working on the flicker issues.
Danielle Foré (danrabbit) wrote : | # |
Can we default to "Geographical" view instead of "Aerial" view?
I think we should ditch "relief" view. I'm not sure that's useful. Also all these extra views in the right click menu. I don't think "cloud" view is relevant to photos.
It looks like there is an extra frame around the view. Can we remove that?
The default view is zoomed out to the whole world. That's a little much. We should do like Facebook and zoom just so that we show all the places you have photos. And I guess if you have 0 locations we should not show the "Places" item like we don't show "Flagged" etc.
If a photo doesn't have a location, we should ask them to add a location by searching for its name (ie: Yosemite National Park) instead of trying to click a location (which will always be inaccurate).
meese (meese) wrote : | # |
Also the geo locations are loaded into the db on the first run which takes about 10-20 seconds. Not something a new user will be likely to run into but for a tester the geo search completion won't be fully loaded until it's done.
Danielle Foré (danrabbit) wrote : | # |
Hm, is it possible to get the names of places (restaurants, buildings, etc) in addition to just cities? It looks like Maya can do this.
Also, once we've confirmed a location we should probably zoom in more on that location. I can see almost my whole state from the current zoom level :p
Can we also get the same location marker image from Maya?
meese (meese) wrote : | # |
Ohh did not know Maya had maps too. Will do.
meese (meese) wrote : | # |
Hey it looks like Maya is actually going searching through your contacts list to find address information to give you things like restaurants and such. Dunno if we want to add something like that to photos?
I just fixed the other two though.
Danielle Foré (danrabbit) wrote : | # |
Yeah I think it makes sense that anything you can search for in one place we should be able to search in another place.
meese (meese) wrote : | # |
And I was wrong actually it will do straight street addresses. Auto complete in Maya doesn't seem to bring anything up for me though does it for you?
meese (meese) wrote : | # |
Fixed hitting enter in the entry box does what Maya does and uses the Geocode lib that hits the web and grabs the closest match and contacts addresses are added to the auto complete. Slightly different though it still uses an offline location list for non contacts auto complete instead of using the geocode lib as I found the lookup was generally too slow and made it feel unresponsive.
Danielle Foré (danrabbit) wrote : | # |
It looks like it does find the place on hitting enter. Is there are way to have locations appear in the auto-complete? If not, maybe we should ditch the auto-complete. As you're typing in a location it kind of feels like you're being told that it can't find what you're looking for even though it will find it on pressing enter.
Can we zoom in more in the sidebar? I feel like we're still really far away from a specific location.
I've also noticed that once a location is set, hitting "clear" clears the entry but doesn't remove that location tag. It doesn't appear to be possible to untag a photo's location.
It also looks like the location marker is positioned incorrectly. The location appears to be under the top/left (maybe?) of the marker instead of bottom center.
meese (meese) wrote : | # |
Fixed.
For the search stuff, yeah I had already written it for grabbing the locations from the geocode library for auto complete and I changed it back and it falls back to the offline auto complete now. It can be a little slow to come up but it sounds like that's better than using a different list for hitting enter vs auto complete.
Danielle Foré (danrabbit) wrote : | # |
Hm there seems to be no indication (in the sidebar) that a search for the location is in progress. Can we either show the map sooner or have a gtk.spinner or something?
Also, the sidebar map needs to be WAY more zoomed in if it's matching to a building. It's showing at like half a European country size instead of at like a city block size
The map view is still super zoomed out by default and nowhere near where my photos are :p
Yay that it finds places now :D
Unmerged revisions
- 2583. By meese
-
merge fix
- 2582. By meese
-
merge
- 2581. By meese
-
fixes
- 2580. By meese
-
search changes from review
- 2579. By meese
-
add places icon for sidebar
- 2578. By meese
-
change gps markers to icons from Maya. Make default zoom in closer
- 2577. By meese
-
adds location search entry for setting gps markers and other fixes from review
- 2576. By meese
-
change back to geographic map for default, make page not visible if no photos have gps data, remove page border, trim down extra map options
- 2575. By meese
-
merge from trunk
- 2574. By meese
-
spelling fix
Preview Diff
1 | === modified file 'Makefile' |
2 | --- Makefile 2014-09-27 09:20:58 +0000 |
3 | +++ Makefile 2014-10-18 00:49:47 +0000 |
4 | @@ -143,7 +143,9 @@ |
5 | tag_sidebar_context.ui \ |
6 | tags.ui \ |
7 | top.ui \ |
8 | - trash.ui |
9 | + trash.ui \ |
10 | + locations.dat \ |
11 | + map.ui |
12 | |
13 | SYS_INTEGRATION_FILES = \ |
14 | shotwell.appdata.xml \ |
15 | @@ -171,10 +173,13 @@ |
16 | |
17 | ICON_FILES = \ |
18 | drag_nub.png \ |
19 | + gps-marker.svg \ |
20 | + gps-marker-selected.svg \ |
21 | image-adjust.svg \ |
22 | noninterpretable-video.png \ |
23 | pin-toolbar.svg \ |
24 | - sprocket.png |
25 | + sprocket.png \ |
26 | + places.svg |
27 | |
28 | HELP_FILES = \ |
29 | edit-adjustments.page \ |
30 | @@ -236,6 +241,10 @@ |
31 | |
32 | EXT_PKGS = \ |
33 | atk \ |
34 | + champlain-0.12 \ |
35 | + champlain-gtk-0.12 \ |
36 | + clutter-1.0 \ |
37 | + clutter-gtk-1.0 \ |
38 | gdk-3.0 \ |
39 | gee-0.8 \ |
40 | gexiv2 \ |
41 | @@ -255,7 +264,9 @@ |
42 | libsoup-2.4 \ |
43 | libxml-2.0 \ |
44 | sqlite3 \ |
45 | - webkitgtk-3.0 |
46 | + webkitgtk-3.0 \ |
47 | + geocode-glib-1.0 \ |
48 | + folks |
49 | |
50 | ifdef UNITY_SUPPORT |
51 | EXT_PKGS += unity |
52 | @@ -270,6 +281,10 @@ |
53 | DIRECT_LIBS = |
54 | |
55 | EXT_PKG_VERSIONS = \ |
56 | + champlain-0.12 >= 0.12.3 \ |
57 | + champlain-gtk-0.12 >= 0.12.3 \ |
58 | + clutter-1.0 >= 1.12.0 \ |
59 | + clutter-gtk-1.0 >= 1.0.0 \ |
60 | gee-0.8 >= 0.8.5 \ |
61 | gexiv2 >= 0.4.90 \ |
62 | gio-unix-2.0 >= 2.20 \ |
63 | @@ -288,7 +303,9 @@ |
64 | libxml-2.0 >= 2.6.32 \ |
65 | rest-0.7 >= 0.7 \ |
66 | sqlite3 >= 3.5.9 \ |
67 | - webkitgtk-3.0 >= 1.4.0 |
68 | + webkitgtk-3.0 >= 1.4.0 \ |
69 | + geocode-glib-1.0 >= 1.0 |
70 | + folks >= 0.9.0 |
71 | |
72 | DIRECT_LIBS_VERSIONS = |
73 | |
74 | @@ -640,6 +657,12 @@ |
75 | $(PROGRAM): $(EXPANDED_OBJ_FILES) $(RESOURCES) $(LANG_STAMP) $(THUMBNAILER_BIN) misc/gschemas.compiled |
76 | $(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(LDFLAGS) $(RESOURCES) $(VALA_LDFLAGS) $(EXPORT_FLAGS) -o $@ |
77 | |
78 | +FASTFLAGS = --target-glib=2.32 --thread --enable-experimental --disable-warnings |
79 | +fast: CFLAGS = -w -pipe -O0 |
80 | +fast: VALAFLAGS = $(FASTFLAGS) |
81 | +-j3 fast: $(EXPANDED_OBJ_FILES) $(RESOURCES) $(LANG_STAMP) misc/gschemas.compiled |
82 | + $(CC) $(EXPANDED_OBJ_FILES) $(CFLAGS) $(LDFLAGS) $(RESOURCES) $(VALA_LDFLAGS) $(EXPORT_FLAGS) -o $(PROGRAM) |
83 | + |
84 | misc/gschemas.compiled: $(SCHEMA_FILES) |
85 | rm -f misc/gschemas.compiled |
86 | glib-compile-schemas misc |
87 | |
88 | === added file 'icons/earth_map.svg' |
89 | --- icons/earth_map.svg 1970-01-01 00:00:00 +0000 |
90 | +++ icons/earth_map.svg 2014-10-18 00:49:47 +0000 |
91 | @@ -0,0 +1,230 @@ |
92 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
93 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
94 | + |
95 | +<svg |
96 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
97 | + xmlns:cc="http://creativecommons.org/ns#" |
98 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
99 | + xmlns:svg="http://www.w3.org/2000/svg" |
100 | + xmlns="http://www.w3.org/2000/svg" |
101 | + xmlns:xlink="http://www.w3.org/1999/xlink" |
102 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
103 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
104 | + version="1.1" |
105 | + width="48" |
106 | + height="48" |
107 | + id="svg3759" |
108 | + inkscape:version="0.48.4 r9939" |
109 | + sodipodi:docname="internet-web-browser.svg"> |
110 | + <sodipodi:namedview |
111 | + pagecolor="#ffffff" |
112 | + bordercolor="#666666" |
113 | + borderopacity="1" |
114 | + objecttolerance="10" |
115 | + gridtolerance="10" |
116 | + guidetolerance="10" |
117 | + inkscape:pageopacity="0" |
118 | + inkscape:pageshadow="2" |
119 | + inkscape:window-width="640" |
120 | + inkscape:window-height="480" |
121 | + id="namedview36" |
122 | + showgrid="false" |
123 | + inkscape:zoom="4.9166667" |
124 | + inkscape:cx="24" |
125 | + inkscape:cy="24" |
126 | + inkscape:window-x="0" |
127 | + inkscape:window-y="30" |
128 | + inkscape:window-maximized="0" |
129 | + inkscape:current-layer="svg3759" /> |
130 | + <metadata |
131 | + id="metadata37"> |
132 | + <rdf:RDF> |
133 | + <cc:Work |
134 | + rdf:about=""> |
135 | + <dc:format>image/svg+xml</dc:format> |
136 | + <dc:type |
137 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
138 | + </cc:Work> |
139 | + </rdf:RDF> |
140 | + </metadata> |
141 | + <defs |
142 | + id="defs3761"> |
143 | + <radialGradient |
144 | + cx="17.81411" |
145 | + cy="24.149399" |
146 | + r="9.125" |
147 | + fx="17.81411" |
148 | + fy="24.149399" |
149 | + id="radialGradient2418" |
150 | + xlink:href="#linearGradient4845" |
151 | + gradientUnits="userSpaceOnUse" |
152 | + gradientTransform="matrix(-2.643979,0,2.93653e-8,2.534421,78.72514,-37.986139)" /> |
153 | + <linearGradient |
154 | + id="linearGradient4845"> |
155 | + <stop |
156 | + id="stop4847" |
157 | + style="stop-color:#ffffff;stop-opacity:1" |
158 | + offset="0" /> |
159 | + <stop |
160 | + id="stop4849" |
161 | + style="stop-color:#b6b6b6;stop-opacity:1" |
162 | + offset="1" /> |
163 | + </linearGradient> |
164 | + <linearGradient |
165 | + x1="62.200409" |
166 | + y1="-12.489107" |
167 | + x2="62.200409" |
168 | + y2="-1.4615115" |
169 | + id="linearGradient3697" |
170 | + xlink:href="#linearGradient4873" |
171 | + gradientUnits="userSpaceOnUse" |
172 | + gradientTransform="matrix(2.1153734,0,0,2.1153252,-107.57708,31.426557)" /> |
173 | + <linearGradient |
174 | + id="linearGradient4873"> |
175 | + <stop |
176 | + id="stop4875" |
177 | + style="stop-color:#ffffff;stop-opacity:1" |
178 | + offset="0" /> |
179 | + <stop |
180 | + id="stop4877" |
181 | + style="stop-color:#ffffff;stop-opacity:0" |
182 | + offset="1" /> |
183 | + </linearGradient> |
184 | + <radialGradient |
185 | + cx="61.240059" |
186 | + cy="-8.7256308" |
187 | + r="9.7552834" |
188 | + fx="61.240059" |
189 | + fy="-8.7256308" |
190 | + id="radialGradient3705" |
191 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148" |
192 | + gradientUnits="userSpaceOnUse" |
193 | + gradientTransform="matrix(0,3.5234091,-3.5234073,0,-6.7439676,-205.79862)" /> |
194 | + <linearGradient |
195 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148"> |
196 | + <stop |
197 | + id="stop4627" |
198 | + style="stop-color:#51cfee;stop-opacity:1" |
199 | + offset="0" /> |
200 | + <stop |
201 | + id="stop4629" |
202 | + style="stop-color:#49a3d2;stop-opacity:1" |
203 | + offset="0.26238" /> |
204 | + <stop |
205 | + id="stop4631" |
206 | + style="stop-color:#3470b4;stop-opacity:1" |
207 | + offset="0.704952" /> |
208 | + <stop |
209 | + id="stop4633" |
210 | + style="stop-color:#273567;stop-opacity:1" |
211 | + offset="1" /> |
212 | + </linearGradient> |
213 | + <linearGradient |
214 | + x1="20" |
215 | + y1="43" |
216 | + x2="20" |
217 | + y2="2.6887112" |
218 | + id="linearGradient3713" |
219 | + xlink:href="#linearGradient3707-319-631" |
220 | + gradientUnits="userSpaceOnUse" |
221 | + gradientTransform="matrix(0.98001402,0,0,0.97999168,0.08994011,0.8703621)" /> |
222 | + <linearGradient |
223 | + id="linearGradient3707-319-631"> |
224 | + <stop |
225 | + id="stop4637" |
226 | + style="stop-color:#254b6d;stop-opacity:1" |
227 | + offset="0" /> |
228 | + <stop |
229 | + id="stop4639" |
230 | + style="stop-color:#415b73;stop-opacity:1" |
231 | + offset="0.5" /> |
232 | + <stop |
233 | + id="stop4641" |
234 | + style="stop-color:#6195b5;stop-opacity:1" |
235 | + offset="1" /> |
236 | + </linearGradient> |
237 | + <linearGradient |
238 | + id="linearGradient8838"> |
239 | + <stop |
240 | + id="stop8840" |
241 | + style="stop-color:#000000;stop-opacity:1" |
242 | + offset="0" /> |
243 | + <stop |
244 | + id="stop8842" |
245 | + style="stop-color:#000000;stop-opacity:0" |
246 | + offset="1" /> |
247 | + </linearGradient> |
248 | + <radialGradient |
249 | + cx="62.625" |
250 | + cy="4.625" |
251 | + r="10.625" |
252 | + fx="62.625" |
253 | + fy="4.625" |
254 | + id="radialGradient3757" |
255 | + xlink:href="#linearGradient8838" |
256 | + gradientUnits="userSpaceOnUse" |
257 | + gradientTransform="matrix(1,0,0,0.341176,0,3.047059)" /> |
258 | + <linearGradient |
259 | + inkscape:collect="always" |
260 | + xlink:href="#linearGradient4873" |
261 | + id="linearGradient3017" |
262 | + gradientUnits="userSpaceOnUse" |
263 | + gradientTransform="matrix(2.1153734,0,0,2.1153252,-107.57708,31.426557)" |
264 | + x1="62.200409" |
265 | + y1="-12.489107" |
266 | + x2="62.200409" |
267 | + y2="-1.4615115" /> |
268 | + <radialGradient |
269 | + inkscape:collect="always" |
270 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148" |
271 | + id="radialGradient3021" |
272 | + gradientUnits="userSpaceOnUse" |
273 | + gradientTransform="matrix(0,3.5234091,-3.5234073,0,-6.7439676,-205.79862)" |
274 | + cx="61.240059" |
275 | + cy="-8.7256308" |
276 | + fx="61.240059" |
277 | + fy="-8.7256308" |
278 | + r="9.7552834" /> |
279 | + <linearGradient |
280 | + inkscape:collect="always" |
281 | + xlink:href="#linearGradient3707-319-631" |
282 | + id="linearGradient3023" |
283 | + gradientUnits="userSpaceOnUse" |
284 | + gradientTransform="matrix(0.98001402,0,0,0.97999168,0.08994011,0.8703621)" |
285 | + x1="20" |
286 | + y1="43" |
287 | + x2="20" |
288 | + y2="2.6887112" /> |
289 | + <radialGradient |
290 | + inkscape:collect="always" |
291 | + xlink:href="#linearGradient8838" |
292 | + id="radialGradient3026" |
293 | + gradientUnits="userSpaceOnUse" |
294 | + gradientTransform="matrix(2.1647059,0,0,0.87466073,-111.56471,34.661405)" |
295 | + cx="62.625" |
296 | + cy="4.625" |
297 | + fx="62.625" |
298 | + fy="4.625" |
299 | + r="10.625" /> |
300 | + </defs> |
301 | + <path |
302 | + style="opacity:0.4;fill:url(#radialGradient3026);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999988;marker:none;visibility:visible;display:inline;overflow:visible" |
303 | + id="path8836" |
304 | + inkscape:connector-curvature="0" |
305 | + d="m 46.999997,38.706716 a 23,9.2932831 0 0 1 -46.0000002,0 23,9.2932831 0 1 1 46.0000002,0 z" /> |
306 | + <path |
307 | + style="fill:url(#radialGradient3021);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient3023);stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none" |
308 | + id="path6495" |
309 | + inkscape:connector-curvature="0" |
310 | + d="M 43.500003,23.999309 C 43.500003,34.769208 34.768912,43.5 24.000248,43.5 13.230599,43.5 4.5000032,34.769109 4.5000032,23.999309 4.5000032,13.229904 13.230599,4.5 24.000248,4.5 c 10.768664,0 19.499755,8.729904 19.499755,19.499309 l 0,0 z" /> |
311 | + <path |
312 | + style="opacity:0.4;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none" |
313 | + id="path6534" |
314 | + inkscape:connector-curvature="0" |
315 | + d="m 24.329633,5.218182 -2.362344,0.2704567 -2.59858,0.7099494 c 0.221353,-0.077615 0.445595,-0.1623374 0.674956,-0.2366499 L 19.739934,5.4210246 18.727501,5.5900601 18.221284,6.0633596 17.445085,6.1647809 16.736382,6.502852 16.398905,6.6718876 16.29766,6.807116 15.791444,6.9085373 15.487716,7.5508723 15.08274,6.7395017 l -0.134989,0.3380711 0.0675,0.9127919 -0.641208,0.5409137 -0.371225,0.9804061 0.7762,0 0.303728,-0.642335 0.101245,-0.2366498 c 0.341288,-0.241775 0.66483,-0.5110331 1.012433,-0.7437563 l 0.809946,0.2704568 c 0.527335,0.3588995 1.058376,0.7234732 1.586147,1.0818274 L 19.368709,8.5312784 18.491266,8.1594002 18.086294,7.3480297 16.601391,7.1789941 16.567641,7.0099586 17.208847,7.145187 17.580075,6.7733087 18.390021,6.6042734 C 18.581694,6.5108897 18.770243,6.44363 18.963732,6.3676236 l -0.506216,0.4732995 1.82238,1.250863 0,0.7437562 -0.708703,0.7099493 0.944937,1.8931994 0.641208,-0.371881 0.809948,-1.2508614 c 1.138725,-0.3526792 2.165016,-0.7630693 3.239789,-1.2508632 l -0.0675,0.4732995 0.539963,0.3718782 0.944939,-0.6423349 -0.47247,-0.5409137 -0.641209,0.3718781 -0.202486,-0.067613 c 0.04651,-0.02129 0.08828,-0.045973 0.13499,-0.067613 L 26.388247,6.0295525 24.329633,5.218182 z m -9.246893,3.6511675 0.776199,0.5409136 0.641209,0 0,-0.6423349 L 15.72395,8.429857 15.08274,8.8693495 z M 33.002811,8.429857 31.619153,8.7679282 30.741712,9.342649 l 0,0.5071058 -1.383659,0.8789842 0.269983,1.31848 0.809946,-0.574723 0.506216,0.574723 0.573714,0.338071 0.371224,-0.980408 -0.202486,-0.57472 0.202486,-0.405687 0.809948,-0.7437548 0.371225,0 -0.371225,0.8113728 0,0.743754 c 0.333836,-0.09103 0.6708,-0.126483 1.012433,-0.169037 l -0.944938,0.676145 -0.0675,0.405683 -1.079929,0.912794 -1.113678,-0.270459 0,-0.642335 -0.506216,0.338072 0.236235,0.574722 -0.809947,0 -0.438721,0.743756 -0.539965,0.608528 -0.978685,0.202842 0.573712,0.574721 0.134991,0.57472 -0.708703,0 -0.944938,0.507108 0,1.48751 0.438721,0 0.404973,0.439494 0.91119,-0.439494 0.337478,-0.912791 0.674956,-0.405685 0.134991,-0.338071 1.079928,-0.270457 0.60746,0.676142 0.641209,0.338071 -0.371227,0.743758 0.573715,-0.169037 0.303728,-0.743757 -0.74245,-0.845177 0.303729,0 0.742451,0.608528 0.134992,0.811371 0.641207,0.743757 0.168739,-1.081827 0.337478,-0.169037 c 0.359225,0.373574 0.642383,0.83043 0.944938,1.250864 l 1.113677,0.06762 0.641207,0.405686 -0.303729,0.439492 -0.641208,0.574721 -0.944939,0 -1.248667,-0.405684 -0.641208,0.06762 -0.472469,0.540915 -1.349912,-1.352286 -0.944937,-0.270456 -1.383659,0.169036 -1.21492,0.33807 c -0.693063,0.7871 -1.402636,1.582869 -2.058616,2.400307 l -0.776198,1.893195 0.371226,0.405687 -0.674956,0.980406 0.742451,1.724162 c 0.617799,0.700089 1.239228,1.395452 1.856128,2.09604 l 0.91119,-0.777564 0.371226,0.473301 0.978687,-0.642335 0.337477,0.371878 0.978685,0 0.573713,0.642335 -0.337478,1.149442 0.674955,0.777564 -0.03375,1.352283 0.506216,0.980406 -0.371225,0.845178 c -0.03619,0.60617 -0.0675,1.18551 -0.0675,1.791777 0.297757,0.821342 0.59628,1.640668 0.877443,2.467918 l 0.202487,1.318476 0,0.676143 0.539963,0 0.7762,-0.507106 0.944939,0 1.417406,-1.588934 -0.168739,-0.540915 0.944939,-0.845177 -0.708705,-0.777563 0.843694,-0.676141 0.809948,-0.507109 0.371225,-0.405685 -0.236234,-0.912791 c 0,-0.768475 2e-6,-1.530306 0,-2.298884 l 0.641209,-1.419897 0.809945,-0.878985 0.877443,-2.163655 0,-0.574721 c -0.436643,0.0551 -0.855168,0.10478 -1.282416,0.13523 l 0.877442,-0.878986 1.21492,-0.81137 0.641209,-0.743758 0,-0.811369 C 41.631793,22.01604 41.484928,21.720356 41.338501,21.44561 l -0.573712,0.676141 -0.438721,-0.507105 -0.641209,-0.507107 0,-1.048021 0.742452,0.845178 0.843696,-0.101421 c 0.380615,0.346139 0.746089,0.65392 1.079927,1.04802 l 0.539978,-0.608545 c 0,-0.655131 -0.736573,-3.889319 -2.328596,-6.626192 -1.592024,-2.735972 -4.387213,-5.240102 -4.387211,-5.240102 l -0.202488,0.3718783 -0.742451,0.8113707 -0.944937,-0.9804063 0.944937,0 L 35.668888,9.1059992 33.914003,8.7679282 33.002811,8.429857 z M 12.720395,8.8693495 12.382918,9.7483343 c 0,0 -0.590841,0.097717 -0.74245,0.1352286 -1.9362043,1.7873441 -5.8406714,5.6641681 -6.7495557,12.9481221 0.035987,0.168879 0.6412078,1.14944 0.6412078,1.14944 l 1.4849023,0.878986 1.4849024,0.405684 0.6412079,0.777564 0.9786853,0.743756 0.573712,-0.101421 0.404974,0.202844 0,0.135226 -0.539965,1.521321 -0.438721,0.642336 0.134991,0.304263 -0.3374777,1.217057 1.2486677,2.298882 1.282416,1.115635 0.573711,0.81137 -0.0675,1.690355 0.404974,0.946598 -0.404974,1.825586 c 0,0 -0.05404,-0.01501 0,0.169036 0.05452,0.184134 2.25593,1.422835 2.396091,1.318476 0.139681,-0.106305 0.269983,-0.202843 0.269983,-0.202843 l -0.13499,-0.405685 0.573712,-0.540913 0.202486,-0.574722 0.911191,-0.304265 0.708702,-1.757968 -0.202486,-0.4733 0.472468,-0.743756 1.07993,-0.236649 0.539965,-1.28467 -0.134992,-1.588935 0.843695,-1.183247 0.13499,-1.217056 c -1.15759,-0.575052 -2.293316,-1.165913 -3.442272,-1.75797 l -0.573713,-1.115634 -1.046181,-0.23665 -0.573712,-1.521321 -1.383659,0.169035 -1.214921,-0.878983 -1.282415,1.115634 0,0.169036 C 10.716387,26.202752 10.261353,26.186409 9.9193333,25.975746 l -0.2699819,-0.811371 0,-0.878985 -0.8774423,0.101421 c 0.070612,-0.559892 0.1651315,-1.13056 0.2362324,-1.690355 l -0.5062167,0 -0.5062167,0.642335 -0.4724689,0.23665 -0.7087034,-0.405685 -0.067496,-0.878985 0.1349912,-0.946599 1.0461812,-0.811371 0.8436945,0 0.1687389,-0.473299 1.0461817,0.236648 0.7761987,0.980407 0.134991,-1.622742 1.349911,-1.115633 0.472468,-1.183248 1.012435,-0.405685 0.539964,-0.811372 1.282416,-0.23665 0.641208,-0.946599 c -0.634667,0 -1.288957,0 -1.923624,0 l 1.214921,-0.574721 0.843693,0 1.07993,-0.371877 0.202487,1.04802 0.472469,-0.743757 -0.539966,-0.371878 0.134992,-0.439491 -0.438721,-0.405687 -0.47247,-0.135228 0.134992,-0.507106 -0.371226,-0.709948 -0.843695,0.33807 0.134992,-0.642334 -0.978686,-0.574722 -0.776198,1.352284 0.0675,0.4733 -0.776198,0.338071 -0.472469,1.04802 -0.236234,-0.980407 -1.316164,-0.540913 -0.236234,-0.743756 1.788632,-1.014213 0.776198,-0.743757 0.0675,-0.8789846 -0.438721,-0.2366498 -0.573713,-0.067613 z m 14.477799,1.6227435 0,0.54091 0.30373,0.338072 0,0.811371 -0.168739,1.081827 0.877442,-0.169036 0.641209,-0.642334 -0.573713,-0.540915 c -0.186049,-0.496308 -0.3746,-0.943871 -0.607459,-1.419895 l -0.47247,0 z m -0.742452,1.081824 -0.539963,0.169038 0.13499,0.980405 0.708703,-0.371881 -0.30373,-0.777562 z m 9.888101,8.89127 0.809946,0.946598 0.978686,2.096042 0.607459,0.67614 -0.303728,0.709952 0.539964,0.642335 c -0.247792,0.01643 -0.487764,0.03381 -0.742451,0.03381 -0.462673,-0.973935 -0.828843,-1.956133 -1.181173,-2.975025 l -0.60746,-0.676142 -0.337478,-1.217056 0.236235,-0.23665 z" /> |
316 | + <path |
317 | + style="opacity:0.4;fill:none;stroke:url(#linearGradient3017);stroke-width:1.0000006;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" |
318 | + id="path8655" |
319 | + inkscape:connector-curvature="0" |
320 | + d="m 42.500001,23.999343 c 0,10.217597 -8.283342,18.500655 -18.499766,18.500655 -10.217359,0 -18.5002317,-8.283152 -18.5002317,-18.500655 0,-10.217125 8.2828727,-18.4993427 18.5002317,-18.4993427 10.216424,0 18.499766,8.2822177 18.499766,18.4993427 l 0,0 z" /> |
321 | +</svg> |
322 | |
323 | === added file 'icons/gps-marker-selected.svg' |
324 | --- icons/gps-marker-selected.svg 1970-01-01 00:00:00 +0000 |
325 | +++ icons/gps-marker-selected.svg 2014-10-18 00:49:47 +0000 |
326 | @@ -0,0 +1,1388 @@ |
327 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
328 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
329 | + |
330 | +<svg |
331 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
332 | + xmlns:cc="http://creativecommons.org/ns#" |
333 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
334 | + xmlns:svg="http://www.w3.org/2000/svg" |
335 | + xmlns="http://www.w3.org/2000/svg" |
336 | + xmlns:xlink="http://www.w3.org/1999/xlink" |
337 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
338 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
339 | + version="1.1" |
340 | + width="23" |
341 | + height="33" |
342 | + id="svg2" |
343 | + inkscape:version="0.48.4 r9939" |
344 | + sodipodi:docname="gps-marker selected.svg"> |
345 | + <sodipodi:namedview |
346 | + pagecolor="#ffffff" |
347 | + bordercolor="#666666" |
348 | + borderopacity="1" |
349 | + objecttolerance="10" |
350 | + gridtolerance="10" |
351 | + guidetolerance="10" |
352 | + inkscape:pageopacity="0" |
353 | + inkscape:pageshadow="2" |
354 | + inkscape:window-width="2560" |
355 | + inkscape:window-height="1335" |
356 | + id="namedview189" |
357 | + showgrid="false" |
358 | + inkscape:zoom="10.11377" |
359 | + inkscape:cx="44.615873" |
360 | + inkscape:cy="25.262848" |
361 | + inkscape:window-x="0" |
362 | + inkscape:window-y="30" |
363 | + inkscape:window-maximized="1" |
364 | + inkscape:current-layer="svg2" /> |
365 | + <defs |
366 | + id="defs4"> |
367 | + <linearGradient |
368 | + id="linearGradient4291"> |
369 | + <stop |
370 | + offset="0" |
371 | + style="stop-color:#242424;stop-opacity:1" |
372 | + id="stop4293" /> |
373 | + <stop |
374 | + offset="1" |
375 | + style="stop-color:#242424;stop-opacity:0" |
376 | + id="stop4295" /> |
377 | + </linearGradient> |
378 | + <linearGradient |
379 | + id="linearGradient4279"> |
380 | + <stop |
381 | + offset="0" |
382 | + style="stop-color:#006390;stop-opacity:1" |
383 | + id="stop4281" /> |
384 | + <stop |
385 | + offset="1" |
386 | + style="stop-color:#004667;stop-opacity:0.99795502" |
387 | + id="stop4283" /> |
388 | + </linearGradient> |
389 | + <linearGradient |
390 | + id="linearGradient4269"> |
391 | + <stop |
392 | + offset="0" |
393 | + style="stop-color:#4bc7fe;stop-opacity:1" |
394 | + id="stop4271" /> |
395 | + <stop |
396 | + offset="0.19700792" |
397 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
398 | + id="stop4273" /> |
399 | + <stop |
400 | + offset="0.6310662" |
401 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
402 | + id="stop4275" /> |
403 | + <stop |
404 | + offset="1" |
405 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
406 | + id="stop4277" /> |
407 | + </linearGradient> |
408 | + <linearGradient |
409 | + id="linearGradient4873"> |
410 | + <stop |
411 | + offset="0" |
412 | + style="stop-color:#4bc7fe;stop-opacity:1" |
413 | + id="stop4875" /> |
414 | + <stop |
415 | + offset="1" |
416 | + style="stop-color:#4bc7fe;stop-opacity:0" |
417 | + id="stop4877" /> |
418 | + </linearGradient> |
419 | + <linearGradient |
420 | + gradientTransform="matrix(0.51455032,0,0,0.51453856,-24.005236,9.8064595)" |
421 | + gradientUnits="userSpaceOnUse" |
422 | + xlink:href="#linearGradient4873" |
423 | + id="linearGradient3683" |
424 | + y2="5.4675598" |
425 | + x2="63.397362" |
426 | + y1="-12.489107" |
427 | + x1="63.397362" /> |
428 | + <linearGradient |
429 | + id="linearGradient3603"> |
430 | + <stop |
431 | + offset="0" |
432 | + style="stop-color:#00b063;stop-opacity:1" |
433 | + id="stop3605" /> |
434 | + <stop |
435 | + offset="1" |
436 | + style="stop-color:#00f246;stop-opacity:1" |
437 | + id="stop3607" /> |
438 | + </linearGradient> |
439 | + <linearGradient |
440 | + gradientTransform="matrix(0.2703533,0,0,0.27035337,1.5115215,1.5115197)" |
441 | + gradientUnits="userSpaceOnUse" |
442 | + xlink:href="#linearGradient3603" |
443 | + id="linearGradient3730" |
444 | + y2="3.0816143" |
445 | + x2="18.379412" |
446 | + y1="44.980297" |
447 | + x1="18.379412" /> |
448 | + <linearGradient |
449 | + id="linearGradient3690"> |
450 | + <stop |
451 | + offset="0" |
452 | + style="stop-color:#37fff7;stop-opacity:1" |
453 | + id="stop3692" /> |
454 | + <stop |
455 | + offset="0.26238" |
456 | + style="stop-color:#21fee4;stop-opacity:1" |
457 | + id="stop3694" /> |
458 | + <stop |
459 | + offset="0.66093999" |
460 | + style="stop-color:#08fea6;stop-opacity:1" |
461 | + id="stop3696" /> |
462 | + <stop |
463 | + offset="1" |
464 | + style="stop-color:#00dd65;stop-opacity:1" |
465 | + id="stop3698" /> |
466 | + </linearGradient> |
467 | + <radialGradient |
468 | + gradientTransform="matrix(0,0.64524082,-0.85170617,0,11.39831,-13.333564)" |
469 | + gradientUnits="userSpaceOnUse" |
470 | + xlink:href="#linearGradient3690" |
471 | + id="radialGradient3728" |
472 | + fy="3.9900031" |
473 | + fx="23.895569" |
474 | + r="20.397499" |
475 | + cy="3.9900031" |
476 | + cx="23.895569" /> |
477 | + <radialGradient |
478 | + gradientTransform="matrix(0,117.18262,-143.86282,0,1693.1125,-1069.0711)" |
479 | + gradientUnits="userSpaceOnUse" |
480 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5-7" |
481 | + id="radialGradient4065" |
482 | + fy="9.9571075" |
483 | + fx="7.1183534" |
484 | + r="12.671875" |
485 | + cy="9.9571075" |
486 | + cx="7.1183534" /> |
487 | + <linearGradient |
488 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5-7"> |
489 | + <stop |
490 | + offset="0" |
491 | + style="stop-color:#00699b;stop-opacity:1" |
492 | + id="stop3750-1-0-7-6-6-1-3-9-3-7" /> |
493 | + <stop |
494 | + offset="0.26238" |
495 | + style="stop-color:#005176;stop-opacity:1" |
496 | + id="stop3752-3-7-4-0-32-8-923-0-7-3" /> |
497 | + <stop |
498 | + offset="0.704952" |
499 | + style="stop-color:#002955;stop-opacity:1" |
500 | + id="stop3754-1-8-5-2-7-6-7-1-9-6" /> |
501 | + <stop |
502 | + offset="1" |
503 | + style="stop-color:#242424;stop-opacity:1" |
504 | + id="stop3756-1-6-2-6-6-1-96-6-0-1" /> |
505 | + </linearGradient> |
506 | + <radialGradient |
507 | + gradientTransform="matrix(0,117.18262,-143.86282,0,1693.1125,-1069.0711)" |
508 | + gradientUnits="userSpaceOnUse" |
509 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5-7" |
510 | + id="radialGradient3249-0" |
511 | + fy="9.9571075" |
512 | + fx="7.1183534" |
513 | + r="12.671875" |
514 | + cy="9.9571075" |
515 | + cx="7.1183534" /> |
516 | + <linearGradient |
517 | + id="linearGradient3895"> |
518 | + <stop |
519 | + offset="0" |
520 | + style="stop-color:#4bc7fe;stop-opacity:1" |
521 | + id="stop3897" /> |
522 | + <stop |
523 | + offset="0.05263157" |
524 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
525 | + id="stop3899" /> |
526 | + <stop |
527 | + offset="0.95056331" |
528 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
529 | + id="stop3901" /> |
530 | + <stop |
531 | + offset="1" |
532 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
533 | + id="stop3903" /> |
534 | + </linearGradient> |
535 | + <linearGradient |
536 | + gradientTransform="translate(0,0.9999922)" |
537 | + gradientUnits="userSpaceOnUse" |
538 | + xlink:href="#linearGradient3680-6-6-6-3" |
539 | + id="linearGradient4183" |
540 | + y2="13.000008" |
541 | + x2="20" |
542 | + y1="26.000008" |
543 | + x1="20" /> |
544 | + <linearGradient |
545 | + id="linearGradient3680-6-6-6-3"> |
546 | + <stop |
547 | + offset="0" |
548 | + style="stop-color:#28bbfe;stop-opacity:1" |
549 | + id="stop3682-4-6-1-3" /> |
550 | + <stop |
551 | + offset="1" |
552 | + style="stop-color:#4bc7fe;stop-opacity:1" |
553 | + id="stop3684-8-5-8-0" /> |
554 | + </linearGradient> |
555 | + <linearGradient |
556 | + gradientTransform="translate(4e-6,1.0000062)" |
557 | + gradientUnits="userSpaceOnUse" |
558 | + xlink:href="#linearGradient3924-1" |
559 | + id="linearGradient3982" |
560 | + y2="43" |
561 | + x2="23.99999" |
562 | + y1="4.999989" |
563 | + x1="23.99999" /> |
564 | + <linearGradient |
565 | + id="linearGradient3924-1"> |
566 | + <stop |
567 | + offset="0" |
568 | + style="stop-color:#4bc7fe;stop-opacity:1" |
569 | + id="stop3926-3" /> |
570 | + <stop |
571 | + offset="0.06316455" |
572 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
573 | + id="stop3928-91" /> |
574 | + <stop |
575 | + offset="0.95056331" |
576 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
577 | + id="stop3930-6" /> |
578 | + <stop |
579 | + offset="1" |
580 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
581 | + id="stop3932-6" /> |
582 | + </linearGradient> |
583 | + <radialGradient |
584 | + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" |
585 | + gradientUnits="userSpaceOnUse" |
586 | + xlink:href="#linearGradient3688-166-749-4" |
587 | + id="radialGradient3963" |
588 | + fy="43.5" |
589 | + fx="4.9929786" |
590 | + r="2.5" |
591 | + cy="43.5" |
592 | + cx="4.9929786" /> |
593 | + <linearGradient |
594 | + id="linearGradient3688-166-749-4"> |
595 | + <stop |
596 | + offset="0" |
597 | + style="stop-color:#004063;stop-opacity:1" |
598 | + id="stop2883-3" /> |
599 | + <stop |
600 | + offset="1" |
601 | + style="stop-color:#004063;stop-opacity:0" |
602 | + id="stop2885-2" /> |
603 | + </linearGradient> |
604 | + <radialGradient |
605 | + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" |
606 | + gradientUnits="userSpaceOnUse" |
607 | + xlink:href="#linearGradient3688-464-309-3" |
608 | + id="radialGradient3965" |
609 | + fy="43.5" |
610 | + fx="4.9929786" |
611 | + r="2.5" |
612 | + cy="43.5" |
613 | + cx="4.9929786" /> |
614 | + <linearGradient |
615 | + id="linearGradient3688-464-309-3"> |
616 | + <stop |
617 | + offset="0" |
618 | + style="stop-color:#004063;stop-opacity:1" |
619 | + id="stop2889-6" /> |
620 | + <stop |
621 | + offset="1" |
622 | + style="stop-color:#004063;stop-opacity:0" |
623 | + id="stop2891-2" /> |
624 | + </linearGradient> |
625 | + <linearGradient |
626 | + gradientUnits="userSpaceOnUse" |
627 | + xlink:href="#linearGradient3702-501-757-2" |
628 | + id="linearGradient3967" |
629 | + y2="39.999443" |
630 | + x2="25.058096" |
631 | + y1="47.027729" |
632 | + x1="25.058096" /> |
633 | + <linearGradient |
634 | + id="linearGradient3702-501-757-2"> |
635 | + <stop |
636 | + offset="0" |
637 | + style="stop-color:#004063;stop-opacity:0" |
638 | + id="stop2895-3" /> |
639 | + <stop |
640 | + offset="0.5" |
641 | + style="stop-color:#004063;stop-opacity:1" |
642 | + id="stop2897-0" /> |
643 | + <stop |
644 | + offset="1" |
645 | + style="stop-color:#004063;stop-opacity:0" |
646 | + id="stop2899-1" /> |
647 | + </linearGradient> |
648 | + <linearGradient |
649 | + gradientTransform="translate(0,0.9999922)" |
650 | + gradientUnits="userSpaceOnUse" |
651 | + xlink:href="#linearGradient3680-6-6-6-3" |
652 | + id="linearGradient3018" |
653 | + y2="13.000008" |
654 | + x2="20" |
655 | + y1="26.000008" |
656 | + x1="20" /> |
657 | + <radialGradient |
658 | + gradientTransform="matrix(0,9.4975523,-11.65996,0,140.93055,-79.160978)" |
659 | + gradientUnits="userSpaceOnUse" |
660 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8" |
661 | + id="radialGradient3031" |
662 | + fy="9.9571075" |
663 | + fx="6.2001843" |
664 | + r="12.671875" |
665 | + cy="9.9571075" |
666 | + cx="6.7304144" /> |
667 | + <linearGradient |
668 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8"> |
669 | + <stop |
670 | + offset="0" |
671 | + style="stop-color:#19ffe8;stop-opacity:1" |
672 | + id="stop3750-1-0-7-6-6-1-3-9" /> |
673 | + <stop |
674 | + offset="0.26238" |
675 | + style="stop-color:#00da8e;stop-opacity:1" |
676 | + id="stop3752-3-7-4-0-32-8-923-0" /> |
677 | + <stop |
678 | + offset="0.704952" |
679 | + style="stop-color:#008545;stop-opacity:1" |
680 | + id="stop3754-1-8-5-2-7-6-7-1" /> |
681 | + <stop |
682 | + offset="1" |
683 | + style="stop-color:#008f68;stop-opacity:1" |
684 | + id="stop3756-1-6-2-6-6-1-96-6" /> |
685 | + </linearGradient> |
686 | + <linearGradient |
687 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"> |
688 | + <stop |
689 | + offset="0" |
690 | + style="stop-color:#00699b;stop-opacity:1" |
691 | + id="stop3750-1-0-7-6-6-1-3-9-3" /> |
692 | + <stop |
693 | + offset="0.26238" |
694 | + style="stop-color:#005176;stop-opacity:1" |
695 | + id="stop3752-3-7-4-0-32-8-923-0-7" /> |
696 | + <stop |
697 | + offset="0.704952" |
698 | + style="stop-color:#002955;stop-opacity:1" |
699 | + id="stop3754-1-8-5-2-7-6-7-1-9" /> |
700 | + <stop |
701 | + offset="1" |
702 | + style="stop-color:#242424;stop-opacity:1" |
703 | + id="stop3756-1-6-2-6-6-1-96-6-0" /> |
704 | + </linearGradient> |
705 | + <radialGradient |
706 | + gradientTransform="matrix(0,9.4975523,-11.65996,0,136.43054,-84.660973)" |
707 | + gradientUnits="userSpaceOnUse" |
708 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5" |
709 | + id="radialGradient3077" |
710 | + fy="9.9571075" |
711 | + fx="6.2001843" |
712 | + r="12.671875" |
713 | + cy="9.9571075" |
714 | + cx="6.7304144" /> |
715 | + <linearGradient |
716 | + id="linearGradient3680-6-6-6-3-7"> |
717 | + <stop |
718 | + offset="0" |
719 | + style="stop-color:#28bbfe;stop-opacity:1" |
720 | + id="stop3682-4-6-1-3-7" /> |
721 | + <stop |
722 | + offset="1" |
723 | + style="stop-color:#4bc7fe;stop-opacity:1" |
724 | + id="stop3684-8-5-8-0-2" /> |
725 | + </linearGradient> |
726 | + <linearGradient |
727 | + gradientTransform="translate(-20,-24.000008)" |
728 | + gradientUnits="userSpaceOnUse" |
729 | + xlink:href="#linearGradient3680-6-6-6-3-7" |
730 | + id="linearGradient3950" |
731 | + y2="13.000008" |
732 | + x2="20" |
733 | + y1="26.000008" |
734 | + x1="20" /> |
735 | + <radialGradient |
736 | + gradientTransform="matrix(0,85.484079,-104.94714,0,1299.7805,-832.8559)" |
737 | + gradientUnits="userSpaceOnUse" |
738 | + xlink:href="#linearGradient3242" |
739 | + id="radialGradient3104" |
740 | + fy="9.9941158" |
741 | + fx="8.276144" |
742 | + r="12.671875" |
743 | + cy="9.9941158" |
744 | + cx="8.276144" /> |
745 | + <linearGradient |
746 | + gradientTransform="translate(5.3e-6,1.0000015)" |
747 | + gradientUnits="userSpaceOnUse" |
748 | + xlink:href="#linearGradient3924-3" |
749 | + id="linearGradient4181" |
750 | + y2="43" |
751 | + x2="23.99999" |
752 | + y1="4.999989" |
753 | + x1="23.99999" /> |
754 | + <linearGradient |
755 | + id="linearGradient3924-3"> |
756 | + <stop |
757 | + offset="0" |
758 | + style="stop-color:#4bc7fe;stop-opacity:1" |
759 | + id="stop3926-7" /> |
760 | + <stop |
761 | + offset="0.06316455" |
762 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
763 | + id="stop3928-3" /> |
764 | + <stop |
765 | + offset="0.95056331" |
766 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
767 | + id="stop3930-7" /> |
768 | + <stop |
769 | + offset="1" |
770 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
771 | + id="stop3932-1" /> |
772 | + </linearGradient> |
773 | + <linearGradient |
774 | + gradientTransform="matrix(0.7037037,0,0,0.7037037,-39.333369,2.4814295)" |
775 | + gradientUnits="userSpaceOnUse" |
776 | + xlink:href="#linearGradient5803-2-7" |
777 | + id="linearGradient4907-4" |
778 | + y2="54.780239" |
779 | + x2="167.98311" |
780 | + y1="8.50811" |
781 | + x1="167.98311" /> |
782 | + <linearGradient |
783 | + id="linearGradient5803-2-7"> |
784 | + <stop |
785 | + offset="0" |
786 | + style="stop-color:#49cefe;stop-opacity:1" |
787 | + id="stop5805-3-6" /> |
788 | + <stop |
789 | + offset="1" |
790 | + style="stop-color:#37c1ff;stop-opacity:1" |
791 | + id="stop5807-0-0" /> |
792 | + </linearGradient> |
793 | + <radialGradient |
794 | + gradientTransform="matrix(0,6.6677582,-8.1858766,0,105.8829,-59.462774)" |
795 | + gradientUnits="userSpaceOnUse" |
796 | + xlink:href="#linearGradient3242" |
797 | + id="radialGradient6305" |
798 | + fy="9.9941158" |
799 | + fx="8.276144" |
800 | + r="12.671875" |
801 | + cy="9.9941158" |
802 | + cx="8.276144" /> |
803 | + <linearGradient |
804 | + id="linearGradient3242"> |
805 | + <stop |
806 | + offset="0" |
807 | + style="stop-color:#00cbe6;stop-opacity:1" |
808 | + id="stop3244" /> |
809 | + <stop |
810 | + offset="0.26238" |
811 | + style="stop-color:#008ea8;stop-opacity:1" |
812 | + id="stop3246" /> |
813 | + <stop |
814 | + offset="0.66093999" |
815 | + style="stop-color:#003b79;stop-opacity:1" |
816 | + id="stop3248" /> |
817 | + <stop |
818 | + offset="1" |
819 | + style="stop-color:#050077;stop-opacity:1" |
820 | + id="stop3250" /> |
821 | + </linearGradient> |
822 | + <radialGradient |
823 | + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" |
824 | + gradientUnits="userSpaceOnUse" |
825 | + xlink:href="#linearGradient3688-166-749" |
826 | + id="radialGradient3013" |
827 | + fy="43.5" |
828 | + fx="4.9929786" |
829 | + r="2.5" |
830 | + cy="43.5" |
831 | + cx="4.9929786" /> |
832 | + <linearGradient |
833 | + id="linearGradient3688-166-749"> |
834 | + <stop |
835 | + offset="0" |
836 | + style="stop-color:#004063;stop-opacity:1" |
837 | + id="stop2883" /> |
838 | + <stop |
839 | + offset="1" |
840 | + style="stop-color:#004063;stop-opacity:0" |
841 | + id="stop2885" /> |
842 | + </linearGradient> |
843 | + <radialGradient |
844 | + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" |
845 | + gradientUnits="userSpaceOnUse" |
846 | + xlink:href="#linearGradient3688-464-309" |
847 | + id="radialGradient3015" |
848 | + fy="43.5" |
849 | + fx="4.9929786" |
850 | + r="2.5" |
851 | + cy="43.5" |
852 | + cx="4.9929786" /> |
853 | + <linearGradient |
854 | + id="linearGradient3688-464-309"> |
855 | + <stop |
856 | + offset="0" |
857 | + style="stop-color:#004063;stop-opacity:1" |
858 | + id="stop2889" /> |
859 | + <stop |
860 | + offset="1" |
861 | + style="stop-color:#004063;stop-opacity:0" |
862 | + id="stop2891" /> |
863 | + </linearGradient> |
864 | + <linearGradient |
865 | + id="linearGradient3702-501-757"> |
866 | + <stop |
867 | + offset="0" |
868 | + style="stop-color:#004063;stop-opacity:0" |
869 | + id="stop2895" /> |
870 | + <stop |
871 | + offset="0.5" |
872 | + style="stop-color:#004063;stop-opacity:1" |
873 | + id="stop2897" /> |
874 | + <stop |
875 | + offset="1" |
876 | + style="stop-color:#004063;stop-opacity:0" |
877 | + id="stop2899" /> |
878 | + </linearGradient> |
879 | + <linearGradient |
880 | + gradientUnits="userSpaceOnUse" |
881 | + xlink:href="#linearGradient3702-501-757" |
882 | + id="linearGradient3141" |
883 | + y2="39.999443" |
884 | + x2="25.058096" |
885 | + y1="47.027729" |
886 | + x1="25.058096" /> |
887 | + <linearGradient |
888 | + spreadMethod="pad" |
889 | + gradientTransform="matrix(-1.04345,-131.509,-131.509,1.04345,192.696,158.172)" |
890 | + gradientUnits="userSpaceOnUse" |
891 | + xlink:href="#linearGradient152" |
892 | + id="linearGradient3288" |
893 | + y2="0" |
894 | + x2="1" |
895 | + y1="0" |
896 | + x1="0" /> |
897 | + <linearGradient |
898 | + spreadMethod="pad" |
899 | + gradientTransform="matrix(-1.04345,-131.509,-131.509,1.04345,192.696,158.172)" |
900 | + gradientUnits="userSpaceOnUse" |
901 | + id="linearGradient152" |
902 | + y2="0" |
903 | + x2="1" |
904 | + y1="0" |
905 | + x1="0"> |
906 | + <stop |
907 | + offset="0" |
908 | + style="stop-color:#00f086;stop-opacity:1" |
909 | + id="stop154" /> |
910 | + <stop |
911 | + offset="1" |
912 | + style="stop-color:#007079;stop-opacity:1" |
913 | + id="stop156" /> |
914 | + </linearGradient> |
915 | + <clipPath |
916 | + id="clipPath148"> |
917 | + <path |
918 | + id="path150" |
919 | + d="m 73.0625,1288.75 0,-1064.57 3694.7075,0 0,1075.02 c 0,0 -615.78,365.29 -1742.98,365.29 -1127.2,0 -1951.7275,-375.74 -1951.7275,-375.74" /> |
920 | + </clipPath> |
921 | + <linearGradient |
922 | + spreadMethod="pad" |
923 | + gradientTransform="matrix(-1.04345,-131.509,-131.509,1.04345,192.696,508.172)" |
924 | + gradientUnits="userSpaceOnUse" |
925 | + id="linearGradient22" |
926 | + y2="0" |
927 | + x2="1" |
928 | + y1="0" |
929 | + x1="0"> |
930 | + <stop |
931 | + offset="0" |
932 | + style="stop-color:#00f086;stop-opacity:1" |
933 | + id="stop24" /> |
934 | + <stop |
935 | + offset="1" |
936 | + style="stop-color:#007079;stop-opacity:1" |
937 | + id="stop26" /> |
938 | + </linearGradient> |
939 | + <clipPath |
940 | + id="clipPath18"> |
941 | + <path |
942 | + id="path20" |
943 | + d="m 73.0625,4788.75 0,-1064.57 3694.7075,0 0,1075.02 c 0,0 -615.78,365.29 -1742.98,365.29 -1127.2,0 -1951.7275,-375.74 -1951.7275,-375.74" /> |
944 | + </clipPath> |
945 | + <linearGradient |
946 | + id="linearGradient3702-501-757-5"> |
947 | + <stop |
948 | + offset="0" |
949 | + style="stop-color:#004063;stop-opacity:0" |
950 | + id="stop2895-5" /> |
951 | + <stop |
952 | + offset="0.5" |
953 | + style="stop-color:#004063;stop-opacity:1" |
954 | + id="stop2897-1" /> |
955 | + <stop |
956 | + offset="1" |
957 | + style="stop-color:#004063;stop-opacity:0" |
958 | + id="stop2899-4" /> |
959 | + </linearGradient> |
960 | + <linearGradient |
961 | + gradientUnits="userSpaceOnUse" |
962 | + xlink:href="#linearGradient3702-501-757-5" |
963 | + id="linearGradient3086" |
964 | + y2="39.999443" |
965 | + x2="25.058096" |
966 | + y1="47.027729" |
967 | + x1="25.058096" /> |
968 | + <linearGradient |
969 | + id="linearGradient3688-464-309-87"> |
970 | + <stop |
971 | + offset="0" |
972 | + style="stop-color:#004063;stop-opacity:1" |
973 | + id="stop2889-5" /> |
974 | + <stop |
975 | + offset="1" |
976 | + style="stop-color:#004063;stop-opacity:0" |
977 | + id="stop2891-5" /> |
978 | + </linearGradient> |
979 | + <radialGradient |
980 | + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" |
981 | + gradientUnits="userSpaceOnUse" |
982 | + xlink:href="#linearGradient3688-464-309-87" |
983 | + id="radialGradient3084" |
984 | + fy="43.5" |
985 | + fx="4.9929786" |
986 | + r="2.5" |
987 | + cy="43.5" |
988 | + cx="4.9929786" /> |
989 | + <linearGradient |
990 | + id="linearGradient3688-166-749-1"> |
991 | + <stop |
992 | + offset="0" |
993 | + style="stop-color:#004063;stop-opacity:1" |
994 | + id="stop2883-79" /> |
995 | + <stop |
996 | + offset="1" |
997 | + style="stop-color:#004063;stop-opacity:0" |
998 | + id="stop2885-4" /> |
999 | + </linearGradient> |
1000 | + <radialGradient |
1001 | + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" |
1002 | + gradientUnits="userSpaceOnUse" |
1003 | + xlink:href="#linearGradient3688-166-749-1" |
1004 | + id="radialGradient3082" |
1005 | + fy="43.5" |
1006 | + fx="4.9929786" |
1007 | + r="2.5" |
1008 | + cy="43.5" |
1009 | + cx="4.9929786" /> |
1010 | + <linearGradient |
1011 | + id="linearGradient3242-6"> |
1012 | + <stop |
1013 | + offset="0" |
1014 | + style="stop-color:#00cbe6;stop-opacity:1" |
1015 | + id="stop3244-9" /> |
1016 | + <stop |
1017 | + offset="0.26238" |
1018 | + style="stop-color:#008ea8;stop-opacity:1" |
1019 | + id="stop3246-9" /> |
1020 | + <stop |
1021 | + offset="0.66093999" |
1022 | + style="stop-color:#003b79;stop-opacity:1" |
1023 | + id="stop3248-9" /> |
1024 | + <stop |
1025 | + offset="1" |
1026 | + style="stop-color:#050077;stop-opacity:1" |
1027 | + id="stop3250-9" /> |
1028 | + </linearGradient> |
1029 | + <radialGradient |
1030 | + gradientTransform="matrix(0,3.248395,-3.9879912,0,51.891669,-37.148511)" |
1031 | + gradientUnits="userSpaceOnUse" |
1032 | + xlink:href="#linearGradient3242-6" |
1033 | + id="radialGradient4680-7" |
1034 | + fy="9.9941158" |
1035 | + fx="8.276144" |
1036 | + r="12.671875" |
1037 | + cy="9.9941158" |
1038 | + cx="8.276144" /> |
1039 | + <linearGradient |
1040 | + id="linearGradient5803-2-7-5"> |
1041 | + <stop |
1042 | + offset="0" |
1043 | + style="stop-color:#49cefe;stop-opacity:1" |
1044 | + id="stop5805-3-6-4" /> |
1045 | + <stop |
1046 | + offset="1" |
1047 | + style="stop-color:#37c1ff;stop-opacity:1" |
1048 | + id="stop5807-0-0-9" /> |
1049 | + </linearGradient> |
1050 | + <linearGradient |
1051 | + gradientTransform="matrix(0.33333333,0,0,0.33333333,-18.000021,-6.6666402)" |
1052 | + gradientUnits="userSpaceOnUse" |
1053 | + xlink:href="#linearGradient5803-2-7-5" |
1054 | + id="linearGradient5041-7" |
1055 | + y2="54.780239" |
1056 | + x2="167.98311" |
1057 | + y1="8.50811" |
1058 | + x1="167.98311" /> |
1059 | + <linearGradient |
1060 | + id="linearGradient3924-1-2"> |
1061 | + <stop |
1062 | + offset="0" |
1063 | + style="stop-color:#4bc7fe;stop-opacity:1" |
1064 | + id="stop3926-5" /> |
1065 | + <stop |
1066 | + offset="0.06316455" |
1067 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
1068 | + id="stop3928-32" /> |
1069 | + <stop |
1070 | + offset="0.95056331" |
1071 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
1072 | + id="stop3930-1" /> |
1073 | + <stop |
1074 | + offset="1" |
1075 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
1076 | + id="stop3932-3" /> |
1077 | + </linearGradient> |
1078 | + <linearGradient |
1079 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,0.9729689,-7.0270212)" |
1080 | + gradientUnits="userSpaceOnUse" |
1081 | + xlink:href="#linearGradient3924-1-2" |
1082 | + id="linearGradient4160" |
1083 | + y2="43" |
1084 | + x2="23.99999" |
1085 | + y1="4.999989" |
1086 | + x1="23.99999" /> |
1087 | + <linearGradient |
1088 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,0.9729689,-7.0270212)" |
1089 | + gradientUnits="userSpaceOnUse" |
1090 | + xlink:href="#linearGradient3924-1-2-6" |
1091 | + id="linearGradient4160-4" |
1092 | + y2="43" |
1093 | + x2="23.99999" |
1094 | + y1="4.999989" |
1095 | + x1="23.99999" /> |
1096 | + <linearGradient |
1097 | + id="linearGradient3924-1-2-6"> |
1098 | + <stop |
1099 | + offset="0" |
1100 | + style="stop-color:#4bc7fe;stop-opacity:1" |
1101 | + id="stop3926-5-5" /> |
1102 | + <stop |
1103 | + offset="0.06316455" |
1104 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
1105 | + id="stop3928-32-3" /> |
1106 | + <stop |
1107 | + offset="0.95056331" |
1108 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
1109 | + id="stop3930-1-7" /> |
1110 | + <stop |
1111 | + offset="1" |
1112 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
1113 | + id="stop3932-3-0" /> |
1114 | + </linearGradient> |
1115 | + <linearGradient |
1116 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1117 | + gradientUnits="userSpaceOnUse" |
1118 | + xlink:href="#linearGradient4269" |
1119 | + id="linearGradient4207-1" |
1120 | + y2="57.674179" |
1121 | + x2="23.99999" |
1122 | + y1="-1.9506749" |
1123 | + x1="23.99999" /> |
1124 | + <linearGradient |
1125 | + id="linearGradient3924-1-2-6-0"> |
1126 | + <stop |
1127 | + offset="0" |
1128 | + style="stop-color:#4bc7fe;stop-opacity:1" |
1129 | + id="stop3926-5-5-3" /> |
1130 | + <stop |
1131 | + offset="0.06316455" |
1132 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
1133 | + id="stop3928-32-3-6" /> |
1134 | + <stop |
1135 | + offset="0.95056331" |
1136 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
1137 | + id="stop3930-1-7-2" /> |
1138 | + <stop |
1139 | + offset="1" |
1140 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
1141 | + id="stop3932-3-0-9" /> |
1142 | + </linearGradient> |
1143 | + <linearGradient |
1144 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,-2.0270504,-2.0270449)" |
1145 | + gradientUnits="userSpaceOnUse" |
1146 | + xlink:href="#linearGradient3924-1-2-6-0" |
1147 | + id="linearGradient4247" |
1148 | + y2="43" |
1149 | + x2="23.99999" |
1150 | + y1="4.999989" |
1151 | + x1="23.99999" /> |
1152 | + <linearGradient |
1153 | + gradientUnits="userSpaceOnUse" |
1154 | + xlink:href="#linearGradient4279" |
1155 | + id="linearGradient4285" |
1156 | + y2="662.89178" |
1157 | + x2="674.99536" |
1158 | + y1="635.92169" |
1159 | + x1="674.99536" /> |
1160 | + <radialGradient |
1161 | + gradientTransform="matrix(1,0,0,0.25,0,23.248598)" |
1162 | + gradientUnits="userSpaceOnUse" |
1163 | + xlink:href="#linearGradient4291" |
1164 | + id="radialGradient4297" |
1165 | + fy="30.998131" |
1166 | + fx="11.325233" |
1167 | + r="7.0953269" |
1168 | + cy="30.998131" |
1169 | + cx="11.325233" /> |
1170 | + <filter |
1171 | + id="filter4345" |
1172 | + color-interpolation-filters="sRGB" |
1173 | + height="1.1956567" |
1174 | + width="1.3103333" |
1175 | + y="-0.097828373" |
1176 | + x="-0.15516667"> |
1177 | + <feGaussianBlur |
1178 | + stdDeviation="0.4655" |
1179 | + id="feGaussianBlur4347" /> |
1180 | + </filter> |
1181 | + <linearGradient |
1182 | + gradientUnits="userSpaceOnUse" |
1183 | + xlink:href="#linearGradient4279-2" |
1184 | + id="linearGradient4285-7" |
1185 | + y2="662.89178" |
1186 | + x2="674.99536" |
1187 | + y1="635.92169" |
1188 | + x1="674.99536" /> |
1189 | + <linearGradient |
1190 | + id="linearGradient4279-2"> |
1191 | + <stop |
1192 | + offset="0" |
1193 | + style="stop-color:#006390;stop-opacity:1" |
1194 | + id="stop4281-4" /> |
1195 | + <stop |
1196 | + offset="1" |
1197 | + style="stop-color:#004667;stop-opacity:0.99795502" |
1198 | + id="stop4283-7" /> |
1199 | + </linearGradient> |
1200 | + <linearGradient |
1201 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1202 | + gradientUnits="userSpaceOnUse" |
1203 | + xlink:href="#linearGradient4269-9" |
1204 | + id="linearGradient4207-1-1" |
1205 | + y2="57.674179" |
1206 | + x2="23.99999" |
1207 | + y1="-1.9506749" |
1208 | + x1="23.99999" /> |
1209 | + <linearGradient |
1210 | + id="linearGradient4269-9"> |
1211 | + <stop |
1212 | + offset="0" |
1213 | + style="stop-color:#4bc7fe;stop-opacity:1" |
1214 | + id="stop4271-5" /> |
1215 | + <stop |
1216 | + offset="0.19700792" |
1217 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
1218 | + id="stop4273-3" /> |
1219 | + <stop |
1220 | + offset="0.6310662" |
1221 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
1222 | + id="stop4275-1" /> |
1223 | + <stop |
1224 | + offset="1" |
1225 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
1226 | + id="stop4277-8" /> |
1227 | + </linearGradient> |
1228 | + <linearGradient |
1229 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1230 | + gradientUnits="userSpaceOnUse" |
1231 | + xlink:href="#linearGradient4269-9" |
1232 | + id="linearGradient4027" |
1233 | + y2="57.674179" |
1234 | + x2="23.99999" |
1235 | + y1="-1.9506749" |
1236 | + x1="23.99999" /> |
1237 | + <linearGradient |
1238 | + gradientUnits="userSpaceOnUse" |
1239 | + xlink:href="#linearGradient4279-304" |
1240 | + id="linearGradient4285-683" |
1241 | + y2="662.89178" |
1242 | + x2="674.99536" |
1243 | + y1="635.92169" |
1244 | + x1="674.99536" /> |
1245 | + <linearGradient |
1246 | + id="linearGradient4279-304"> |
1247 | + <stop |
1248 | + offset="0" |
1249 | + style="stop-color:#006390;stop-opacity:1" |
1250 | + id="stop10506" /> |
1251 | + <stop |
1252 | + offset="1" |
1253 | + style="stop-color:#004667;stop-opacity:0.99795502" |
1254 | + id="stop10508" /> |
1255 | + </linearGradient> |
1256 | + <linearGradient |
1257 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1258 | + gradientUnits="userSpaceOnUse" |
1259 | + xlink:href="#linearGradient4269-9-0" |
1260 | + id="linearGradient4027-1" |
1261 | + y2="57.674179" |
1262 | + x2="23.99999" |
1263 | + y1="-1.9506749" |
1264 | + x1="23.99999" /> |
1265 | + <linearGradient |
1266 | + id="linearGradient4269-9-0"> |
1267 | + <stop |
1268 | + offset="0" |
1269 | + style="stop-color:#4bc7fe;stop-opacity:1" |
1270 | + id="stop10512" /> |
1271 | + <stop |
1272 | + offset="0.19700792" |
1273 | + style="stop-color:#4bc7fe;stop-opacity:0.23529412" |
1274 | + id="stop10514" /> |
1275 | + <stop |
1276 | + offset="0.6310662" |
1277 | + style="stop-color:#4bc7fe;stop-opacity:0.15686275" |
1278 | + id="stop10516" /> |
1279 | + <stop |
1280 | + offset="1" |
1281 | + style="stop-color:#4bc7fe;stop-opacity:0.39215687" |
1282 | + id="stop10518" /> |
1283 | + </linearGradient> |
1284 | + <linearGradient |
1285 | + gradientUnits="userSpaceOnUse" |
1286 | + xlink:href="#linearGradient4279-304-762" |
1287 | + id="linearGradient4285-683-622" |
1288 | + y2="662.89178" |
1289 | + x2="674.99536" |
1290 | + y1="635.92169" |
1291 | + x1="674.99536" /> |
1292 | + <linearGradient |
1293 | + id="linearGradient4279-304-762"> |
1294 | + <stop |
1295 | + offset="0" |
1296 | + style="stop-color:#00908b;stop-opacity:1" |
1297 | + id="stop10916" /> |
1298 | + <stop |
1299 | + offset="1" |
1300 | + style="stop-color:#00675f;stop-opacity:0.99795502" |
1301 | + id="stop10918" /> |
1302 | + </linearGradient> |
1303 | + <linearGradient |
1304 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1305 | + gradientUnits="userSpaceOnUse" |
1306 | + xlink:href="#linearGradient4269-9-0-801" |
1307 | + id="linearGradient4027-1-210" |
1308 | + y2="57.674179" |
1309 | + x2="23.99999" |
1310 | + y1="-1.9506749" |
1311 | + x1="23.99999" /> |
1312 | + <linearGradient |
1313 | + id="linearGradient4269-9-0-801"> |
1314 | + <stop |
1315 | + offset="0" |
1316 | + style="stop-color:#4bfefd;stop-opacity:1" |
1317 | + id="stop10922" /> |
1318 | + <stop |
1319 | + offset="0.19700792" |
1320 | + style="stop-color:#4bfefd;stop-opacity:0.23529412" |
1321 | + id="stop10924" /> |
1322 | + <stop |
1323 | + offset="0.6310662" |
1324 | + style="stop-color:#4bfefd;stop-opacity:0.15686275" |
1325 | + id="stop10926" /> |
1326 | + <stop |
1327 | + offset="1" |
1328 | + style="stop-color:#4bfefd;stop-opacity:0.39215687" |
1329 | + id="stop10928" /> |
1330 | + </linearGradient> |
1331 | + <linearGradient |
1332 | + gradientUnits="userSpaceOnUse" |
1333 | + xlink:href="#linearGradient4279-304-762-109" |
1334 | + id="linearGradient4285-683-622-67" |
1335 | + y2="662.89178" |
1336 | + x2="674.99536" |
1337 | + y1="635.92169" |
1338 | + x1="674.99536" /> |
1339 | + <linearGradient |
1340 | + id="linearGradient4279-304-762-109"> |
1341 | + <stop |
1342 | + offset="0" |
1343 | + style="stop-color:#006790;stop-opacity:1" |
1344 | + id="stop11346" /> |
1345 | + <stop |
1346 | + offset="1" |
1347 | + style="stop-color:#004a67;stop-opacity:0.99795502" |
1348 | + id="stop11348" /> |
1349 | + </linearGradient> |
1350 | + <linearGradient |
1351 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1352 | + gradientUnits="userSpaceOnUse" |
1353 | + xlink:href="#linearGradient4269-9-0-801-68" |
1354 | + id="linearGradient4027-1-210-223" |
1355 | + y2="57.674179" |
1356 | + x2="23.99999" |
1357 | + y1="-1.9506749" |
1358 | + x1="23.99999" /> |
1359 | + <linearGradient |
1360 | + id="linearGradient4269-9-0-801-68"> |
1361 | + <stop |
1362 | + offset="0" |
1363 | + style="stop-color:#4bc8fe;stop-opacity:1" |
1364 | + id="stop11352" /> |
1365 | + <stop |
1366 | + offset="0.19700792" |
1367 | + style="stop-color:#4bc8fe;stop-opacity:0.23529412" |
1368 | + id="stop11354" /> |
1369 | + <stop |
1370 | + offset="0.6310662" |
1371 | + style="stop-color:#4bc8fe;stop-opacity:0.15686275" |
1372 | + id="stop11356" /> |
1373 | + <stop |
1374 | + offset="1" |
1375 | + style="stop-color:#4bc8fe;stop-opacity:0.39215687" |
1376 | + id="stop11358" /> |
1377 | + </linearGradient> |
1378 | + <linearGradient |
1379 | + gradientUnits="userSpaceOnUse" |
1380 | + xlink:href="#linearGradient4279-304-762-109-461" |
1381 | + id="linearGradient4285-683-622-67-149" |
1382 | + y2="662.89178" |
1383 | + x2="674.99536" |
1384 | + y1="635.92169" |
1385 | + x1="674.99536" /> |
1386 | + <linearGradient |
1387 | + id="linearGradient4279-304-762-109-461"> |
1388 | + <stop |
1389 | + offset="0" |
1390 | + style="stop-color:#003a90;stop-opacity:1" |
1391 | + id="stop11796" /> |
1392 | + <stop |
1393 | + offset="1" |
1394 | + style="stop-color:#002967;stop-opacity:0.99795502" |
1395 | + id="stop11798" /> |
1396 | + </linearGradient> |
1397 | + <linearGradient |
1398 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1399 | + gradientUnits="userSpaceOnUse" |
1400 | + xlink:href="#linearGradient4269-9-0-801-68-899" |
1401 | + id="linearGradient4027-1-210-223-322" |
1402 | + y2="57.674179" |
1403 | + x2="23.99999" |
1404 | + y1="-1.9506749" |
1405 | + x1="23.99999" /> |
1406 | + <linearGradient |
1407 | + id="linearGradient4269-9-0-801-68-899"> |
1408 | + <stop |
1409 | + offset="0" |
1410 | + style="stop-color:#4b93fe;stop-opacity:1" |
1411 | + id="stop11802" /> |
1412 | + <stop |
1413 | + offset="0.19700792" |
1414 | + style="stop-color:#4b93fe;stop-opacity:0.23529412" |
1415 | + id="stop11804" /> |
1416 | + <stop |
1417 | + offset="0.6310662" |
1418 | + style="stop-color:#4b93fe;stop-opacity:0.15686275" |
1419 | + id="stop11806" /> |
1420 | + <stop |
1421 | + offset="1" |
1422 | + style="stop-color:#4b93fe;stop-opacity:0.39215687" |
1423 | + id="stop11808" /> |
1424 | + </linearGradient> |
1425 | + <linearGradient |
1426 | + gradientUnits="userSpaceOnUse" |
1427 | + xlink:href="#linearGradient4279-304-762-109-461-207" |
1428 | + id="linearGradient4285-683-622-67-149-611" |
1429 | + y2="662.89178" |
1430 | + x2="674.99536" |
1431 | + y1="635.92169" |
1432 | + x1="674.99536" /> |
1433 | + <linearGradient |
1434 | + id="linearGradient4279-304-762-109-461-207"> |
1435 | + <stop |
1436 | + offset="0" |
1437 | + style="stop-color:#000e90;stop-opacity:1" |
1438 | + id="stop12266" /> |
1439 | + <stop |
1440 | + offset="1" |
1441 | + style="stop-color:#000967;stop-opacity:0.99795502" |
1442 | + id="stop12268" /> |
1443 | + </linearGradient> |
1444 | + <linearGradient |
1445 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1446 | + gradientUnits="userSpaceOnUse" |
1447 | + xlink:href="#linearGradient4269-9-0-801-68-899-19" |
1448 | + id="linearGradient4027-1-210-223-322-570" |
1449 | + y2="57.674179" |
1450 | + x2="23.99999" |
1451 | + y1="-1.9506749" |
1452 | + x1="23.99999" /> |
1453 | + <linearGradient |
1454 | + id="linearGradient4269-9-0-801-68-899-19"> |
1455 | + <stop |
1456 | + offset="0" |
1457 | + style="stop-color:#4b5dfe;stop-opacity:1" |
1458 | + id="stop12272" /> |
1459 | + <stop |
1460 | + offset="0.19700792" |
1461 | + style="stop-color:#4b5dfe;stop-opacity:0.23529412" |
1462 | + id="stop12274" /> |
1463 | + <stop |
1464 | + offset="0.6310662" |
1465 | + style="stop-color:#4b5dfe;stop-opacity:0.15686275" |
1466 | + id="stop12276" /> |
1467 | + <stop |
1468 | + offset="1" |
1469 | + style="stop-color:#4b5dfe;stop-opacity:0.39215687" |
1470 | + id="stop12278" /> |
1471 | + </linearGradient> |
1472 | + <linearGradient |
1473 | + gradientUnits="userSpaceOnUse" |
1474 | + xlink:href="#linearGradient4279-304-762-109-461-207-402" |
1475 | + id="linearGradient4285-683-622-67-149-611-28" |
1476 | + y2="662.89178" |
1477 | + x2="674.99536" |
1478 | + y1="635.92169" |
1479 | + x1="674.99536" /> |
1480 | + <linearGradient |
1481 | + id="linearGradient4279-304-762-109-461-207-402"> |
1482 | + <stop |
1483 | + offset="0" |
1484 | + style="stop-color:#003a90;stop-opacity:1" |
1485 | + id="stop12756" /> |
1486 | + <stop |
1487 | + offset="1" |
1488 | + style="stop-color:#002967;stop-opacity:0.99795502" |
1489 | + id="stop12758" /> |
1490 | + </linearGradient> |
1491 | + <linearGradient |
1492 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1493 | + gradientUnits="userSpaceOnUse" |
1494 | + xlink:href="#linearGradient4269-9-0-801-68-899-19-280" |
1495 | + id="linearGradient4027-1-210-223-322-570-921" |
1496 | + y2="57.674179" |
1497 | + x2="23.99999" |
1498 | + y1="-1.9506749" |
1499 | + x1="23.99999" /> |
1500 | + <linearGradient |
1501 | + id="linearGradient4269-9-0-801-68-899-19-280"> |
1502 | + <stop |
1503 | + offset="0" |
1504 | + style="stop-color:#4b93fe;stop-opacity:1" |
1505 | + id="stop12762" /> |
1506 | + <stop |
1507 | + offset="0.19700792" |
1508 | + style="stop-color:#4b93fe;stop-opacity:0.23529412" |
1509 | + id="stop12764" /> |
1510 | + <stop |
1511 | + offset="0.6310662" |
1512 | + style="stop-color:#4b93fe;stop-opacity:0.15686275" |
1513 | + id="stop12766" /> |
1514 | + <stop |
1515 | + offset="1" |
1516 | + style="stop-color:#4b93fe;stop-opacity:0.39215687" |
1517 | + id="stop12768" /> |
1518 | + </linearGradient> |
1519 | + <linearGradient |
1520 | + gradientUnits="userSpaceOnUse" |
1521 | + xlink:href="#linearGradient4279-304-762-109-461-207-402-134" |
1522 | + id="linearGradient4285-683-622-67-149-611-28-936" |
1523 | + y2="662.89178" |
1524 | + x2="674.99536" |
1525 | + y1="635.92169" |
1526 | + x1="674.99536" /> |
1527 | + <linearGradient |
1528 | + id="linearGradient4279-304-762-109-461-207-402-134"> |
1529 | + <stop |
1530 | + offset="0" |
1531 | + style="stop-color:#0044a9;stop-opacity:1" |
1532 | + id="stop13266" /> |
1533 | + <stop |
1534 | + offset="1" |
1535 | + style="stop-color:#003380;stop-opacity:0.99795502" |
1536 | + id="stop13268" /> |
1537 | + </linearGradient> |
1538 | + <linearGradient |
1539 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1540 | + gradientUnits="userSpaceOnUse" |
1541 | + xlink:href="#linearGradient4269-9-0-801-68-899-19-280-51" |
1542 | + id="linearGradient4027-1-210-223-322-570-921-60" |
1543 | + y2="57.674179" |
1544 | + x2="23.99999" |
1545 | + y1="-1.9506749" |
1546 | + x1="23.99999" /> |
1547 | + <linearGradient |
1548 | + id="linearGradient4269-9-0-801-68-899-19-280-51"> |
1549 | + <stop |
1550 | + offset="0" |
1551 | + style="stop-color:#64a2fe;stop-opacity:1" |
1552 | + id="stop13272" /> |
1553 | + <stop |
1554 | + offset="0.19700792" |
1555 | + style="stop-color:#64a2fe;stop-opacity:0.23529412" |
1556 | + id="stop13274" /> |
1557 | + <stop |
1558 | + offset="0.6310662" |
1559 | + style="stop-color:#64a2fe;stop-opacity:0.15686275" |
1560 | + id="stop13276" /> |
1561 | + <stop |
1562 | + offset="1" |
1563 | + style="stop-color:#64a2fe;stop-opacity:0.39215687" |
1564 | + id="stop13278" /> |
1565 | + </linearGradient> |
1566 | + <linearGradient |
1567 | + gradientUnits="userSpaceOnUse" |
1568 | + xlink:href="#linearGradient4279-304-762-109-461-207-402-134-290" |
1569 | + id="linearGradient4285-683-622-67-149-611-28-936-389" |
1570 | + y2="662.89178" |
1571 | + x2="674.99536" |
1572 | + y1="635.92169" |
1573 | + x1="674.99536" /> |
1574 | + <linearGradient |
1575 | + id="linearGradient4279-304-762-109-461-207-402-134-290"> |
1576 | + <stop |
1577 | + offset="0" |
1578 | + style="stop-color:#004ec2;stop-opacity:1" |
1579 | + id="stop13796" /> |
1580 | + <stop |
1581 | + offset="1" |
1582 | + style="stop-color:#003d99;stop-opacity:0.99795502" |
1583 | + id="stop13798" /> |
1584 | + </linearGradient> |
1585 | + <linearGradient |
1586 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1587 | + gradientUnits="userSpaceOnUse" |
1588 | + xlink:href="#linearGradient4269-9-0-801-68-899-19-280-51-372" |
1589 | + id="linearGradient4027-1-210-223-322-570-921-60-51" |
1590 | + y2="57.674179" |
1591 | + x2="23.99999" |
1592 | + y1="-1.9506749" |
1593 | + x1="23.99999" /> |
1594 | + <linearGradient |
1595 | + id="linearGradient4269-9-0-801-68-899-19-280-51-372"> |
1596 | + <stop |
1597 | + offset="0" |
1598 | + style="stop-color:#7db1fe;stop-opacity:1" |
1599 | + id="stop13802" /> |
1600 | + <stop |
1601 | + offset="0.19700792" |
1602 | + style="stop-color:#7db1fe;stop-opacity:0.23529412" |
1603 | + id="stop13804" /> |
1604 | + <stop |
1605 | + offset="0.6310662" |
1606 | + style="stop-color:#7db1fe;stop-opacity:0.15686275" |
1607 | + id="stop13806" /> |
1608 | + <stop |
1609 | + offset="1" |
1610 | + style="stop-color:#7db1fe;stop-opacity:0.39215687" |
1611 | + id="stop13808" /> |
1612 | + </linearGradient> |
1613 | + <linearGradient |
1614 | + gradientUnits="userSpaceOnUse" |
1615 | + xlink:href="#linearGradient4279-304-762-109-461-207-402-134-290-162" |
1616 | + id="linearGradient4285-683-622-67-149-611-28-936-389-459" |
1617 | + y2="662.89178" |
1618 | + x2="674.99536" |
1619 | + y1="635.92169" |
1620 | + x1="674.99536" /> |
1621 | + <linearGradient |
1622 | + id="linearGradient4279-304-762-109-461-207-402-134-290-162"> |
1623 | + <stop |
1624 | + offset="0" |
1625 | + style="stop-color:#0058db;stop-opacity:1" |
1626 | + id="stop14346" /> |
1627 | + <stop |
1628 | + offset="1" |
1629 | + style="stop-color:#0047b2;stop-opacity:0.99795502" |
1630 | + id="stop14348" /> |
1631 | + </linearGradient> |
1632 | + <linearGradient |
1633 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" |
1634 | + gradientUnits="userSpaceOnUse" |
1635 | + xlink:href="#linearGradient4269-9-0-801-68-899-19-280-51-372-537" |
1636 | + id="linearGradient4027-1-210-223-322-570-921-60-51-139" |
1637 | + y2="57.674179" |
1638 | + x2="23.99999" |
1639 | + y1="-1.9506749" |
1640 | + x1="23.99999" /> |
1641 | + <linearGradient |
1642 | + id="linearGradient4269-9-0-801-68-899-19-280-51-372-537"> |
1643 | + <stop |
1644 | + offset="0" |
1645 | + style="stop-color:#96c0fe;stop-opacity:1" |
1646 | + id="stop14352" /> |
1647 | + <stop |
1648 | + offset="0.19700792" |
1649 | + style="stop-color:#96c0fe;stop-opacity:0.23529412" |
1650 | + id="stop14354" /> |
1651 | + <stop |
1652 | + offset="0.6310662" |
1653 | + style="stop-color:#96c0fe;stop-opacity:0.15686275" |
1654 | + id="stop14356" /> |
1655 | + <stop |
1656 | + offset="1" |
1657 | + style="stop-color:#96c0fe;stop-opacity:0.39215687" |
1658 | + id="stop14358" /> |
1659 | + </linearGradient> |
1660 | + </defs> |
1661 | + <metadata |
1662 | + id="metadata7"> |
1663 | + <rdf:RDF> |
1664 | + <cc:Work |
1665 | + rdf:about=""> |
1666 | + <dc:format>image/svg+xml</dc:format> |
1667 | + <dc:type |
1668 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
1669 | + <dc:title /> |
1670 | + </cc:Work> |
1671 | + </rdf:RDF> |
1672 | + </metadata> |
1673 | + <g |
1674 | + id="layer1" |
1675 | + transform="translate(-662.78571,-633.50507)"> |
1676 | + <path |
1677 | + style="opacity:0.05;color:#000000;fill:#242424;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1678 | + id="path3974" |
1679 | + transform="matrix(1,0,0,0.8490188,0,102.82045)" |
1680 | + d="m 674.28125,647.84375 c -2.94458,0 -5.58673,0.68985 -7.46875,1.78125 -1.85693,1.07685 -2.90625,2.48274 -2.90625,3.96875 0,1.47223 1.05058,2.80953 2.84375,3.875 a 1.1774629,1.1774629 0 0 0 0.0937,0.0625 l -0.0312,0.0312 6.5625,5.53125 a 1.1774629,1.1774629 0 0 0 1.5,0 l 6.625,-5.375 -0.0312,-0.0312 a 1.1774629,1.1774629 0 0 0 0.0937,-0.0312 c 1.96355,-1.08113 3.09375,-2.51482 3.09375,-4.0625 0,-1.48601 -1.04932,-2.8919 -2.90625,-3.96875 -1.88202,-1.0914 -4.52417,-1.78125 -7.46875,-1.78125 z m -6.03125,7.875 c 0.008,0.007 0.0613,0.0268 0.0312,0 -0.12018,-0.10724 0.14927,0.14086 0.0312,0.0312 -0.11802,-0.10961 0.14706,0.1432 0.0312,0.0312 -0.11581,-0.11195 0.17606,0.14548 0.0625,0.0312 l -0.0625,0.0625 a 1.1774629,1.1774629 0 0 0 -0.0937,-0.15625 z m 11.875,0.0937 A 1.1774629,1.1774629 0 0 0 680,655.96875 l -0.0312,-0.0312 c -0.11976,0.10718 0.1533,-0.13581 0.0312,-0.0312 -0.12205,0.10456 0.18678,-0.1644 0.0625,-0.0625 -0.12428,0.1019 0.18896,-0.13044 0.0625,-0.0312 z" /> |
1681 | + <path |
1682 | + style="opacity:0.1;color:#000000;fill:#242424;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1683 | + id="path3966" |
1684 | + transform="matrix(1,0,0,0.8490188,0,102.82045)" |
1685 | + d="m 674.28125,649.03125 c -2.75342,0 -5.2292,0.67059 -6.875,1.625 -1.6458,0.95441 -2.3125,2.0249 -2.3125,2.9375 0,0.8922 0.65933,1.92985 2.25,2.875 a 1.808614,1.808614 0 0 1 0.21875,0.1875 l 6.5625,5.53125 6.625,-5.375 A 1.808614,1.808614 0 0 1 681,656.625 c 1.74512,-0.96086 2.46875,-2.08177 2.46875,-3.03125 0,-0.9126 -0.6667,-1.98309 -2.3125,-2.9375 -1.6458,-0.95441 -4.12158,-1.625 -6.875,-1.625 z" /> |
1686 | + <path |
1687 | + style="opacity:0.15;color:#000000;fill:#242424;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1688 | + id="path3974-5" |
1689 | + transform="matrix(1,0,0,0.8490188,0,102.82045)" |
1690 | + d="m 674.28125,650.21875 c -2.5594,0 -4.87521,0.65338 -6.28125,1.46875 -1.43151,0.83014 -1.71875,1.57563 -1.71875,1.90625 0,0.30349 0.30235,1.02072 1.6875,1.84375 l -0.0625,0.0937 a 1.1950764,1.1950764 0 0 1 0.4375,0.21875 l 5.78125,4.875 5.875,-4.75 a 1.1950764,1.1950764 0 0 1 0.46875,-0.21875 l -0.0312,-0.0625 c 1.52342,-0.83879 1.84375,-1.65766 1.84375,-2 0,-0.33062 -0.28724,-1.07611 -1.71875,-1.90625 -1.40604,-0.81537 -3.72185,-1.46875 -6.28125,-1.46875 z" /> |
1691 | + <path |
1692 | + style="color:#000000;fill:url(#linearGradient4285-683-622-67-149-611-28-936-389-459);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1693 | + id="path3007" |
1694 | + d="m 674.28571,634.52389 c -6.07452,0 -11,4.94494 -11,11.04347 0,2.9962 1.18846,5.71492 3.11811,7.70436 l 7.69134,11.25217 7.77144,-10.95851 c 2.10521,-2.01125 3.41911,-4.85027 3.41911,-7.99802 0,-6.09853 -4.92547,-11.04347 -11,-11.04347 z" /> |
1695 | + <path |
1696 | + style="color:#000000;fill:none;stroke:#004667;stroke-width:0.99999994;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1697 | + id="path3007-6" |
1698 | + d="m 674.28571,634.52389 c -6.07452,0 -11,4.94494 -11,11.04347 0,2.9962 1.18846,5.71492 3.11811,7.70436 l 7.69134,11.25217 7.77144,-10.95851 c 2.10521,-2.01125 3.41911,-4.85027 3.41911,-7.99802 0,-6.09853 -4.92547,-11.04347 -11,-11.04347 z" /> |
1699 | + <path |
1700 | + style="opacity:0.4;color:#000000;fill:none;stroke:url(#linearGradient4027-1-210-223-322-570-921-60-51-139);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1701 | + id="path4093" |
1702 | + d="m 674.28125,635.5 c -5.54209,0 -10.03125,4.49352 -10.03125,10.0625 0,2.73462 1.11745,5.21924 2.875,7.03125 a 0.98360133,0.98360133 0 0 1 0.0937,0.125 l 6.875,10.09375 L 681.0625,653 a 0.98360133,0.98360133 0 0 1 0.125,-0.15625 c 1.91706,-1.8315 3.125,-4.4045 3.125,-7.28125 0,-5.56898 -4.48914,-10.0625 -10.03125,-10.0625 z" /> |
1703 | + <path |
1704 | + style="opacity:0.15;color:#000000;fill:#4bc7fe;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1705 | + id="path3168-7" |
1706 | + transform="matrix(1.1239496,0,0,1.1239496,662.5,632.36221)" |
1707 | + d="m 14.934579,12.583178 a 4.4485979,4.4485979 0 1 1 -8.8971959,0 4.4485979,4.4485979 0 1 1 8.8971959,0 z" /> |
1708 | + <path |
1709 | + style="color:#000000;fill:#003c5d;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
1710 | + id="path3168" |
1711 | + transform="matrix(1.1239496,0,0,1.1239496,662.5,631.36221)" |
1712 | + d="m 14.934579,12.583178 a 4.4485979,4.4485979 0 1 1 -8.8971959,0 4.4485979,4.4485979 0 1 1 8.8971959,0 z" /> |
1713 | + </g> |
1714 | +</svg> |
1715 | |
1716 | === added file 'icons/gps-marker.svg' |
1717 | --- icons/gps-marker.svg 1970-01-01 00:00:00 +0000 |
1718 | +++ icons/gps-marker.svg 2014-10-18 00:49:47 +0000 |
1719 | @@ -0,0 +1,941 @@ |
1720 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
1721 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
1722 | + |
1723 | +<svg |
1724 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
1725 | + xmlns:cc="http://creativecommons.org/ns#" |
1726 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
1727 | + xmlns:svg="http://www.w3.org/2000/svg" |
1728 | + xmlns="http://www.w3.org/2000/svg" |
1729 | + xmlns:xlink="http://www.w3.org/1999/xlink" |
1730 | + version="1.1" |
1731 | + width="23" |
1732 | + height="33" |
1733 | + id="svg2"> |
1734 | + <defs |
1735 | + id="defs4"> |
1736 | + <linearGradient |
1737 | + id="linearGradient4291"> |
1738 | + <stop |
1739 | + id="stop4293" |
1740 | + style="stop-color:#000000;stop-opacity:1" |
1741 | + offset="0" /> |
1742 | + <stop |
1743 | + id="stop4295" |
1744 | + style="stop-color:#000000;stop-opacity:0" |
1745 | + offset="1" /> |
1746 | + </linearGradient> |
1747 | + <linearGradient |
1748 | + id="linearGradient4279"> |
1749 | + <stop |
1750 | + id="stop4281" |
1751 | + style="stop-color:#e74545;stop-opacity:1" |
1752 | + offset="0" /> |
1753 | + <stop |
1754 | + id="stop4283" |
1755 | + style="stop-color:#da1c1c;stop-opacity:0.99795502" |
1756 | + offset="1" /> |
1757 | + </linearGradient> |
1758 | + <linearGradient |
1759 | + id="linearGradient4269"> |
1760 | + <stop |
1761 | + id="stop4271" |
1762 | + style="stop-color:#ffffff;stop-opacity:1" |
1763 | + offset="0" /> |
1764 | + <stop |
1765 | + id="stop4273" |
1766 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
1767 | + offset="0.19700792" /> |
1768 | + <stop |
1769 | + id="stop4275" |
1770 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
1771 | + offset="0.6310662" /> |
1772 | + <stop |
1773 | + id="stop4277" |
1774 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
1775 | + offset="1" /> |
1776 | + </linearGradient> |
1777 | + <linearGradient |
1778 | + id="linearGradient4873"> |
1779 | + <stop |
1780 | + id="stop4875" |
1781 | + style="stop-color:#ffffff;stop-opacity:1" |
1782 | + offset="0" /> |
1783 | + <stop |
1784 | + id="stop4877" |
1785 | + style="stop-color:#ffffff;stop-opacity:0" |
1786 | + offset="1" /> |
1787 | + </linearGradient> |
1788 | + <linearGradient |
1789 | + x1="63.397362" |
1790 | + y1="-12.489107" |
1791 | + x2="63.397362" |
1792 | + y2="5.4675598" |
1793 | + id="linearGradient3683" |
1794 | + xlink:href="#linearGradient4873" |
1795 | + gradientUnits="userSpaceOnUse" |
1796 | + gradientTransform="matrix(0.51455032,0,0,0.51453856,-24.005236,9.8064595)" /> |
1797 | + <linearGradient |
1798 | + id="linearGradient3603"> |
1799 | + <stop |
1800 | + id="stop3605" |
1801 | + style="stop-color:#a7651c;stop-opacity:1" |
1802 | + offset="0" /> |
1803 | + <stop |
1804 | + id="stop3607" |
1805 | + style="stop-color:#c8a700;stop-opacity:1" |
1806 | + offset="1" /> |
1807 | + </linearGradient> |
1808 | + <linearGradient |
1809 | + x1="18.379412" |
1810 | + y1="44.980297" |
1811 | + x2="18.379412" |
1812 | + y2="3.0816143" |
1813 | + id="linearGradient3730" |
1814 | + xlink:href="#linearGradient3603" |
1815 | + gradientUnits="userSpaceOnUse" |
1816 | + gradientTransform="matrix(0.2703533,0,0,0.27035337,1.5115215,1.5115197)" /> |
1817 | + <linearGradient |
1818 | + id="linearGradient3690"> |
1819 | + <stop |
1820 | + id="stop3692" |
1821 | + style="stop-color:#ffeb9f;stop-opacity:1" |
1822 | + offset="0" /> |
1823 | + <stop |
1824 | + id="stop3694" |
1825 | + style="stop-color:#ffd57e;stop-opacity:1" |
1826 | + offset="0.26238" /> |
1827 | + <stop |
1828 | + id="stop3696" |
1829 | + style="stop-color:#ffbc43;stop-opacity:1" |
1830 | + offset="0.66093999" /> |
1831 | + <stop |
1832 | + id="stop3698" |
1833 | + style="stop-color:#ff921a;stop-opacity:1" |
1834 | + offset="1" /> |
1835 | + </linearGradient> |
1836 | + <radialGradient |
1837 | + cx="23.895569" |
1838 | + cy="3.9900031" |
1839 | + r="20.397499" |
1840 | + fx="23.895569" |
1841 | + fy="3.9900031" |
1842 | + id="radialGradient3728" |
1843 | + xlink:href="#linearGradient3690" |
1844 | + gradientUnits="userSpaceOnUse" |
1845 | + gradientTransform="matrix(0,0.64524082,-0.85170617,0,11.39831,-13.333564)" /> |
1846 | + <radialGradient |
1847 | + cx="7.1183534" |
1848 | + cy="9.9571075" |
1849 | + r="12.671875" |
1850 | + fx="7.1183534" |
1851 | + fy="9.9571075" |
1852 | + id="radialGradient4065" |
1853 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5-7" |
1854 | + gradientUnits="userSpaceOnUse" |
1855 | + gradientTransform="matrix(0,117.18262,-143.86282,0,1693.1125,-1069.0711)" /> |
1856 | + <linearGradient |
1857 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5-7"> |
1858 | + <stop |
1859 | + id="stop3750-1-0-7-6-6-1-3-9-3-7" |
1860 | + style="stop-color:#505050;stop-opacity:1" |
1861 | + offset="0" /> |
1862 | + <stop |
1863 | + id="stop3752-3-7-4-0-32-8-923-0-7-3" |
1864 | + style="stop-color:#2b2b2b;stop-opacity:1" |
1865 | + offset="0.26238" /> |
1866 | + <stop |
1867 | + id="stop3754-1-8-5-2-7-6-7-1-9-6" |
1868 | + style="stop-color:#0a0a0a;stop-opacity:1" |
1869 | + offset="0.704952" /> |
1870 | + <stop |
1871 | + id="stop3756-1-6-2-6-6-1-96-6-0-1" |
1872 | + style="stop-color:#000000;stop-opacity:1" |
1873 | + offset="1" /> |
1874 | + </linearGradient> |
1875 | + <radialGradient |
1876 | + cx="7.1183534" |
1877 | + cy="9.9571075" |
1878 | + r="12.671875" |
1879 | + fx="7.1183534" |
1880 | + fy="9.9571075" |
1881 | + id="radialGradient3249-0" |
1882 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5-7" |
1883 | + gradientUnits="userSpaceOnUse" |
1884 | + gradientTransform="matrix(0,117.18262,-143.86282,0,1693.1125,-1069.0711)" /> |
1885 | + <linearGradient |
1886 | + id="linearGradient3895"> |
1887 | + <stop |
1888 | + id="stop3897" |
1889 | + style="stop-color:#ffffff;stop-opacity:1" |
1890 | + offset="0" /> |
1891 | + <stop |
1892 | + id="stop3899" |
1893 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
1894 | + offset="0.05263157" /> |
1895 | + <stop |
1896 | + id="stop3901" |
1897 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
1898 | + offset="0.95056331" /> |
1899 | + <stop |
1900 | + id="stop3903" |
1901 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
1902 | + offset="1" /> |
1903 | + </linearGradient> |
1904 | + <linearGradient |
1905 | + x1="20" |
1906 | + y1="26.000008" |
1907 | + x2="20" |
1908 | + y2="13.000008" |
1909 | + id="linearGradient4183" |
1910 | + xlink:href="#linearGradient3680-6-6-6-3" |
1911 | + gradientUnits="userSpaceOnUse" |
1912 | + gradientTransform="translate(0,0.9999922)" /> |
1913 | + <linearGradient |
1914 | + id="linearGradient3680-6-6-6-3"> |
1915 | + <stop |
1916 | + id="stop3682-4-6-1-3" |
1917 | + style="stop-color:#dcdcdc;stop-opacity:1" |
1918 | + offset="0" /> |
1919 | + <stop |
1920 | + id="stop3684-8-5-8-0" |
1921 | + style="stop-color:#ffffff;stop-opacity:1" |
1922 | + offset="1" /> |
1923 | + </linearGradient> |
1924 | + <linearGradient |
1925 | + x1="23.99999" |
1926 | + y1="4.999989" |
1927 | + x2="23.99999" |
1928 | + y2="43" |
1929 | + id="linearGradient3982" |
1930 | + xlink:href="#linearGradient3924-1" |
1931 | + gradientUnits="userSpaceOnUse" |
1932 | + gradientTransform="translate(4e-6,1.0000062)" /> |
1933 | + <linearGradient |
1934 | + id="linearGradient3924-1"> |
1935 | + <stop |
1936 | + id="stop3926-3" |
1937 | + style="stop-color:#ffffff;stop-opacity:1" |
1938 | + offset="0" /> |
1939 | + <stop |
1940 | + id="stop3928-91" |
1941 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
1942 | + offset="0.06316455" /> |
1943 | + <stop |
1944 | + id="stop3930-6" |
1945 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
1946 | + offset="0.95056331" /> |
1947 | + <stop |
1948 | + id="stop3932-6" |
1949 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
1950 | + offset="1" /> |
1951 | + </linearGradient> |
1952 | + <radialGradient |
1953 | + cx="4.9929786" |
1954 | + cy="43.5" |
1955 | + r="2.5" |
1956 | + fx="4.9929786" |
1957 | + fy="43.5" |
1958 | + id="radialGradient3963" |
1959 | + xlink:href="#linearGradient3688-166-749-4" |
1960 | + gradientUnits="userSpaceOnUse" |
1961 | + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" /> |
1962 | + <linearGradient |
1963 | + id="linearGradient3688-166-749-4"> |
1964 | + <stop |
1965 | + id="stop2883-3" |
1966 | + style="stop-color:#181818;stop-opacity:1" |
1967 | + offset="0" /> |
1968 | + <stop |
1969 | + id="stop2885-2" |
1970 | + style="stop-color:#181818;stop-opacity:0" |
1971 | + offset="1" /> |
1972 | + </linearGradient> |
1973 | + <radialGradient |
1974 | + cx="4.9929786" |
1975 | + cy="43.5" |
1976 | + r="2.5" |
1977 | + fx="4.9929786" |
1978 | + fy="43.5" |
1979 | + id="radialGradient3965" |
1980 | + xlink:href="#linearGradient3688-464-309-3" |
1981 | + gradientUnits="userSpaceOnUse" |
1982 | + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" /> |
1983 | + <linearGradient |
1984 | + id="linearGradient3688-464-309-3"> |
1985 | + <stop |
1986 | + id="stop2889-6" |
1987 | + style="stop-color:#181818;stop-opacity:1" |
1988 | + offset="0" /> |
1989 | + <stop |
1990 | + id="stop2891-2" |
1991 | + style="stop-color:#181818;stop-opacity:0" |
1992 | + offset="1" /> |
1993 | + </linearGradient> |
1994 | + <linearGradient |
1995 | + x1="25.058096" |
1996 | + y1="47.027729" |
1997 | + x2="25.058096" |
1998 | + y2="39.999443" |
1999 | + id="linearGradient3967" |
2000 | + xlink:href="#linearGradient3702-501-757-2" |
2001 | + gradientUnits="userSpaceOnUse" /> |
2002 | + <linearGradient |
2003 | + id="linearGradient3702-501-757-2"> |
2004 | + <stop |
2005 | + id="stop2895-3" |
2006 | + style="stop-color:#181818;stop-opacity:0" |
2007 | + offset="0" /> |
2008 | + <stop |
2009 | + id="stop2897-0" |
2010 | + style="stop-color:#181818;stop-opacity:1" |
2011 | + offset="0.5" /> |
2012 | + <stop |
2013 | + id="stop2899-1" |
2014 | + style="stop-color:#181818;stop-opacity:0" |
2015 | + offset="1" /> |
2016 | + </linearGradient> |
2017 | + <linearGradient |
2018 | + x1="20" |
2019 | + y1="26.000008" |
2020 | + x2="20" |
2021 | + y2="13.000008" |
2022 | + id="linearGradient3018" |
2023 | + xlink:href="#linearGradient3680-6-6-6-3" |
2024 | + gradientUnits="userSpaceOnUse" |
2025 | + gradientTransform="translate(0,0.9999922)" /> |
2026 | + <radialGradient |
2027 | + cx="6.7304144" |
2028 | + cy="9.9571075" |
2029 | + r="12.671875" |
2030 | + fx="6.2001843" |
2031 | + fy="9.9571075" |
2032 | + id="radialGradient3031" |
2033 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8" |
2034 | + gradientUnits="userSpaceOnUse" |
2035 | + gradientTransform="matrix(0,9.4975523,-11.65996,0,140.93055,-79.160978)" /> |
2036 | + <linearGradient |
2037 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8"> |
2038 | + <stop |
2039 | + id="stop3750-1-0-7-6-6-1-3-9" |
2040 | + style="stop-color:#ffcd7d;stop-opacity:1" |
2041 | + offset="0" /> |
2042 | + <stop |
2043 | + id="stop3752-3-7-4-0-32-8-923-0" |
2044 | + style="stop-color:#fc8f36;stop-opacity:1" |
2045 | + offset="0.26238" /> |
2046 | + <stop |
2047 | + id="stop3754-1-8-5-2-7-6-7-1" |
2048 | + style="stop-color:#e23a0e;stop-opacity:1" |
2049 | + offset="0.704952" /> |
2050 | + <stop |
2051 | + id="stop3756-1-6-2-6-6-1-96-6" |
2052 | + style="stop-color:#ac441f;stop-opacity:1" |
2053 | + offset="1" /> |
2054 | + </linearGradient> |
2055 | + <linearGradient |
2056 | + id="linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5"> |
2057 | + <stop |
2058 | + id="stop3750-1-0-7-6-6-1-3-9-3" |
2059 | + style="stop-color:#505050;stop-opacity:1" |
2060 | + offset="0" /> |
2061 | + <stop |
2062 | + id="stop3752-3-7-4-0-32-8-923-0-7" |
2063 | + style="stop-color:#2b2b2b;stop-opacity:1" |
2064 | + offset="0.26238" /> |
2065 | + <stop |
2066 | + id="stop3754-1-8-5-2-7-6-7-1-9" |
2067 | + style="stop-color:#0a0a0a;stop-opacity:1" |
2068 | + offset="0.704952" /> |
2069 | + <stop |
2070 | + id="stop3756-1-6-2-6-6-1-96-6-0" |
2071 | + style="stop-color:#000000;stop-opacity:1" |
2072 | + offset="1" /> |
2073 | + </linearGradient> |
2074 | + <radialGradient |
2075 | + cx="6.7304144" |
2076 | + cy="9.9571075" |
2077 | + r="12.671875" |
2078 | + fx="6.2001843" |
2079 | + fy="9.9571075" |
2080 | + id="radialGradient3077" |
2081 | + xlink:href="#linearGradient2867-449-88-871-390-598-476-591-434-148-57-177-8-3-3-6-4-8-8-8-5" |
2082 | + gradientUnits="userSpaceOnUse" |
2083 | + gradientTransform="matrix(0,9.4975523,-11.65996,0,136.43054,-84.660973)" /> |
2084 | + <linearGradient |
2085 | + id="linearGradient3680-6-6-6-3-7"> |
2086 | + <stop |
2087 | + id="stop3682-4-6-1-3-7" |
2088 | + style="stop-color:#dcdcdc;stop-opacity:1" |
2089 | + offset="0" /> |
2090 | + <stop |
2091 | + id="stop3684-8-5-8-0-2" |
2092 | + style="stop-color:#ffffff;stop-opacity:1" |
2093 | + offset="1" /> |
2094 | + </linearGradient> |
2095 | + <linearGradient |
2096 | + x1="20" |
2097 | + y1="26.000008" |
2098 | + x2="20" |
2099 | + y2="13.000008" |
2100 | + id="linearGradient3950" |
2101 | + xlink:href="#linearGradient3680-6-6-6-3-7" |
2102 | + gradientUnits="userSpaceOnUse" |
2103 | + gradientTransform="translate(-20,-24.000008)" /> |
2104 | + <radialGradient |
2105 | + cx="8.276144" |
2106 | + cy="9.9941158" |
2107 | + r="12.671875" |
2108 | + fx="8.276144" |
2109 | + fy="9.9941158" |
2110 | + id="radialGradient3104" |
2111 | + xlink:href="#linearGradient3242" |
2112 | + gradientUnits="userSpaceOnUse" |
2113 | + gradientTransform="matrix(0,85.484079,-104.94714,0,1299.7805,-832.8559)" /> |
2114 | + <linearGradient |
2115 | + x1="23.99999" |
2116 | + y1="4.999989" |
2117 | + x2="23.99999" |
2118 | + y2="43" |
2119 | + id="linearGradient4181" |
2120 | + xlink:href="#linearGradient3924-3" |
2121 | + gradientUnits="userSpaceOnUse" |
2122 | + gradientTransform="translate(5.3e-6,1.0000015)" /> |
2123 | + <linearGradient |
2124 | + id="linearGradient3924-3"> |
2125 | + <stop |
2126 | + id="stop3926-7" |
2127 | + style="stop-color:#ffffff;stop-opacity:1" |
2128 | + offset="0" /> |
2129 | + <stop |
2130 | + id="stop3928-3" |
2131 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
2132 | + offset="0.06316455" /> |
2133 | + <stop |
2134 | + id="stop3930-7" |
2135 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
2136 | + offset="0.95056331" /> |
2137 | + <stop |
2138 | + id="stop3932-1" |
2139 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
2140 | + offset="1" /> |
2141 | + </linearGradient> |
2142 | + <linearGradient |
2143 | + x1="167.98311" |
2144 | + y1="8.50811" |
2145 | + x2="167.98311" |
2146 | + y2="54.780239" |
2147 | + id="linearGradient4907-4" |
2148 | + xlink:href="#linearGradient5803-2-7" |
2149 | + gradientUnits="userSpaceOnUse" |
2150 | + gradientTransform="matrix(0.7037037,0,0,0.7037037,-39.333369,2.4814295)" /> |
2151 | + <linearGradient |
2152 | + id="linearGradient5803-2-7"> |
2153 | + <stop |
2154 | + id="stop5805-3-6" |
2155 | + style="stop-color:#fffdf3;stop-opacity:1" |
2156 | + offset="0" /> |
2157 | + <stop |
2158 | + id="stop5807-0-0" |
2159 | + style="stop-color:#fbebeb;stop-opacity:1" |
2160 | + offset="1" /> |
2161 | + </linearGradient> |
2162 | + <radialGradient |
2163 | + cx="8.276144" |
2164 | + cy="9.9941158" |
2165 | + r="12.671875" |
2166 | + fx="8.276144" |
2167 | + fy="9.9941158" |
2168 | + id="radialGradient6305" |
2169 | + xlink:href="#linearGradient3242" |
2170 | + gradientUnits="userSpaceOnUse" |
2171 | + gradientTransform="matrix(0,6.6677582,-8.1858766,0,105.8829,-59.462774)" /> |
2172 | + <linearGradient |
2173 | + id="linearGradient3242"> |
2174 | + <stop |
2175 | + id="stop3244" |
2176 | + style="stop-color:#f89b7e;stop-opacity:1" |
2177 | + offset="0" /> |
2178 | + <stop |
2179 | + id="stop3246" |
2180 | + style="stop-color:#e35d4f;stop-opacity:1" |
2181 | + offset="0.26238" /> |
2182 | + <stop |
2183 | + id="stop3248" |
2184 | + style="stop-color:#c6262e;stop-opacity:1" |
2185 | + offset="0.66093999" /> |
2186 | + <stop |
2187 | + id="stop3250" |
2188 | + style="stop-color:#690b2c;stop-opacity:1" |
2189 | + offset="1" /> |
2190 | + </linearGradient> |
2191 | + <radialGradient |
2192 | + cx="4.9929786" |
2193 | + cy="43.5" |
2194 | + r="2.5" |
2195 | + fx="4.9929786" |
2196 | + fy="43.5" |
2197 | + id="radialGradient3013" |
2198 | + xlink:href="#linearGradient3688-166-749" |
2199 | + gradientUnits="userSpaceOnUse" |
2200 | + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" /> |
2201 | + <linearGradient |
2202 | + id="linearGradient3688-166-749"> |
2203 | + <stop |
2204 | + id="stop2883" |
2205 | + style="stop-color:#181818;stop-opacity:1" |
2206 | + offset="0" /> |
2207 | + <stop |
2208 | + id="stop2885" |
2209 | + style="stop-color:#181818;stop-opacity:0" |
2210 | + offset="1" /> |
2211 | + </linearGradient> |
2212 | + <radialGradient |
2213 | + cx="4.9929786" |
2214 | + cy="43.5" |
2215 | + r="2.5" |
2216 | + fx="4.9929786" |
2217 | + fy="43.5" |
2218 | + id="radialGradient3015" |
2219 | + xlink:href="#linearGradient3688-464-309" |
2220 | + gradientUnits="userSpaceOnUse" |
2221 | + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" /> |
2222 | + <linearGradient |
2223 | + id="linearGradient3688-464-309"> |
2224 | + <stop |
2225 | + id="stop2889" |
2226 | + style="stop-color:#181818;stop-opacity:1" |
2227 | + offset="0" /> |
2228 | + <stop |
2229 | + id="stop2891" |
2230 | + style="stop-color:#181818;stop-opacity:0" |
2231 | + offset="1" /> |
2232 | + </linearGradient> |
2233 | + <linearGradient |
2234 | + id="linearGradient3702-501-757"> |
2235 | + <stop |
2236 | + id="stop2895" |
2237 | + style="stop-color:#181818;stop-opacity:0" |
2238 | + offset="0" /> |
2239 | + <stop |
2240 | + id="stop2897" |
2241 | + style="stop-color:#181818;stop-opacity:1" |
2242 | + offset="0.5" /> |
2243 | + <stop |
2244 | + id="stop2899" |
2245 | + style="stop-color:#181818;stop-opacity:0" |
2246 | + offset="1" /> |
2247 | + </linearGradient> |
2248 | + <linearGradient |
2249 | + x1="25.058096" |
2250 | + y1="47.027729" |
2251 | + x2="25.058096" |
2252 | + y2="39.999443" |
2253 | + id="linearGradient3141" |
2254 | + xlink:href="#linearGradient3702-501-757" |
2255 | + gradientUnits="userSpaceOnUse" /> |
2256 | + <linearGradient |
2257 | + x1="0" |
2258 | + y1="0" |
2259 | + x2="1" |
2260 | + y2="0" |
2261 | + id="linearGradient3288" |
2262 | + xlink:href="#linearGradient152" |
2263 | + gradientUnits="userSpaceOnUse" |
2264 | + gradientTransform="matrix(-1.04345,-131.509,-131.509,1.04345,192.696,158.172)" |
2265 | + spreadMethod="pad" /> |
2266 | + <linearGradient |
2267 | + x1="0" |
2268 | + y1="0" |
2269 | + x2="1" |
2270 | + y2="0" |
2271 | + id="linearGradient152" |
2272 | + gradientUnits="userSpaceOnUse" |
2273 | + gradientTransform="matrix(-1.04345,-131.509,-131.509,1.04345,192.696,158.172)" |
2274 | + spreadMethod="pad"> |
2275 | + <stop |
2276 | + id="stop154" |
2277 | + style="stop-color:#f8a52c;stop-opacity:1" |
2278 | + offset="0" /> |
2279 | + <stop |
2280 | + id="stop156" |
2281 | + style="stop-color:#e82e23;stop-opacity:1" |
2282 | + offset="1" /> |
2283 | + </linearGradient> |
2284 | + <clipPath |
2285 | + id="clipPath148"> |
2286 | + <path |
2287 | + d="m 73.0625,1288.75 0,-1064.57 3694.7075,0 0,1075.02 c 0,0 -615.78,365.29 -1742.98,365.29 -1127.2,0 -1951.7275,-375.74 -1951.7275,-375.74" |
2288 | + id="path150" /> |
2289 | + </clipPath> |
2290 | + <linearGradient |
2291 | + x1="0" |
2292 | + y1="0" |
2293 | + x2="1" |
2294 | + y2="0" |
2295 | + id="linearGradient22" |
2296 | + gradientUnits="userSpaceOnUse" |
2297 | + gradientTransform="matrix(-1.04345,-131.509,-131.509,1.04345,192.696,508.172)" |
2298 | + spreadMethod="pad"> |
2299 | + <stop |
2300 | + id="stop24" |
2301 | + style="stop-color:#f8a52c;stop-opacity:1" |
2302 | + offset="0" /> |
2303 | + <stop |
2304 | + id="stop26" |
2305 | + style="stop-color:#e82e23;stop-opacity:1" |
2306 | + offset="1" /> |
2307 | + </linearGradient> |
2308 | + <clipPath |
2309 | + id="clipPath18"> |
2310 | + <path |
2311 | + d="m 73.0625,4788.75 0,-1064.57 3694.7075,0 0,1075.02 c 0,0 -615.78,365.29 -1742.98,365.29 -1127.2,0 -1951.7275,-375.74 -1951.7275,-375.74" |
2312 | + id="path20" /> |
2313 | + </clipPath> |
2314 | + <linearGradient |
2315 | + id="linearGradient3702-501-757-5"> |
2316 | + <stop |
2317 | + id="stop2895-5" |
2318 | + style="stop-color:#181818;stop-opacity:0" |
2319 | + offset="0" /> |
2320 | + <stop |
2321 | + id="stop2897-1" |
2322 | + style="stop-color:#181818;stop-opacity:1" |
2323 | + offset="0.5" /> |
2324 | + <stop |
2325 | + id="stop2899-4" |
2326 | + style="stop-color:#181818;stop-opacity:0" |
2327 | + offset="1" /> |
2328 | + </linearGradient> |
2329 | + <linearGradient |
2330 | + x1="25.058096" |
2331 | + y1="47.027729" |
2332 | + x2="25.058096" |
2333 | + y2="39.999443" |
2334 | + id="linearGradient3086" |
2335 | + xlink:href="#linearGradient3702-501-757-5" |
2336 | + gradientUnits="userSpaceOnUse" /> |
2337 | + <linearGradient |
2338 | + id="linearGradient3688-464-309-87"> |
2339 | + <stop |
2340 | + id="stop2889-5" |
2341 | + style="stop-color:#181818;stop-opacity:1" |
2342 | + offset="0" /> |
2343 | + <stop |
2344 | + id="stop2891-5" |
2345 | + style="stop-color:#181818;stop-opacity:0" |
2346 | + offset="1" /> |
2347 | + </linearGradient> |
2348 | + <radialGradient |
2349 | + cx="4.9929786" |
2350 | + cy="43.5" |
2351 | + r="2.5" |
2352 | + fx="4.9929786" |
2353 | + fy="43.5" |
2354 | + id="radialGradient3084" |
2355 | + xlink:href="#linearGradient3688-464-309-87" |
2356 | + gradientUnits="userSpaceOnUse" |
2357 | + gradientTransform="matrix(2.003784,0,0,1.4,-20.01187,-104.4)" /> |
2358 | + <linearGradient |
2359 | + id="linearGradient3688-166-749-1"> |
2360 | + <stop |
2361 | + id="stop2883-79" |
2362 | + style="stop-color:#181818;stop-opacity:1" |
2363 | + offset="0" /> |
2364 | + <stop |
2365 | + id="stop2885-4" |
2366 | + style="stop-color:#181818;stop-opacity:0" |
2367 | + offset="1" /> |
2368 | + </linearGradient> |
2369 | + <radialGradient |
2370 | + cx="4.9929786" |
2371 | + cy="43.5" |
2372 | + r="2.5" |
2373 | + fx="4.9929786" |
2374 | + fy="43.5" |
2375 | + id="radialGradient3082" |
2376 | + xlink:href="#linearGradient3688-166-749-1" |
2377 | + gradientUnits="userSpaceOnUse" |
2378 | + gradientTransform="matrix(2.003784,0,0,1.4,27.98813,-17.4)" /> |
2379 | + <linearGradient |
2380 | + id="linearGradient3242-6"> |
2381 | + <stop |
2382 | + id="stop3244-9" |
2383 | + style="stop-color:#f89b7e;stop-opacity:1" |
2384 | + offset="0" /> |
2385 | + <stop |
2386 | + id="stop3246-9" |
2387 | + style="stop-color:#e35d4f;stop-opacity:1" |
2388 | + offset="0.26238" /> |
2389 | + <stop |
2390 | + id="stop3248-9" |
2391 | + style="stop-color:#c6262e;stop-opacity:1" |
2392 | + offset="0.66093999" /> |
2393 | + <stop |
2394 | + id="stop3250-9" |
2395 | + style="stop-color:#690b2c;stop-opacity:1" |
2396 | + offset="1" /> |
2397 | + </linearGradient> |
2398 | + <radialGradient |
2399 | + cx="8.276144" |
2400 | + cy="9.9941158" |
2401 | + r="12.671875" |
2402 | + fx="8.276144" |
2403 | + fy="9.9941158" |
2404 | + id="radialGradient4680-7" |
2405 | + xlink:href="#linearGradient3242-6" |
2406 | + gradientUnits="userSpaceOnUse" |
2407 | + gradientTransform="matrix(0,3.248395,-3.9879912,0,51.891669,-37.148511)" /> |
2408 | + <linearGradient |
2409 | + id="linearGradient5803-2-7-5"> |
2410 | + <stop |
2411 | + id="stop5805-3-6-4" |
2412 | + style="stop-color:#fffdf3;stop-opacity:1" |
2413 | + offset="0" /> |
2414 | + <stop |
2415 | + id="stop5807-0-0-9" |
2416 | + style="stop-color:#fbebeb;stop-opacity:1" |
2417 | + offset="1" /> |
2418 | + </linearGradient> |
2419 | + <linearGradient |
2420 | + x1="167.98311" |
2421 | + y1="8.50811" |
2422 | + x2="167.98311" |
2423 | + y2="54.780239" |
2424 | + id="linearGradient5041-7" |
2425 | + xlink:href="#linearGradient5803-2-7-5" |
2426 | + gradientUnits="userSpaceOnUse" |
2427 | + gradientTransform="matrix(0.33333333,0,0,0.33333333,-18.000021,-6.6666402)" /> |
2428 | + <linearGradient |
2429 | + id="linearGradient3924-1-2"> |
2430 | + <stop |
2431 | + id="stop3926-5" |
2432 | + style="stop-color:#ffffff;stop-opacity:1" |
2433 | + offset="0" /> |
2434 | + <stop |
2435 | + id="stop3928-32" |
2436 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
2437 | + offset="0.06316455" /> |
2438 | + <stop |
2439 | + id="stop3930-1" |
2440 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
2441 | + offset="0.95056331" /> |
2442 | + <stop |
2443 | + id="stop3932-3" |
2444 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
2445 | + offset="1" /> |
2446 | + </linearGradient> |
2447 | + <linearGradient |
2448 | + x1="23.99999" |
2449 | + y1="4.999989" |
2450 | + x2="23.99999" |
2451 | + y2="43" |
2452 | + id="linearGradient4160" |
2453 | + xlink:href="#linearGradient3924-1-2" |
2454 | + gradientUnits="userSpaceOnUse" |
2455 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,0.9729689,-7.0270212)" /> |
2456 | + <linearGradient |
2457 | + x1="23.99999" |
2458 | + y1="4.999989" |
2459 | + x2="23.99999" |
2460 | + y2="43" |
2461 | + id="linearGradient4160-4" |
2462 | + xlink:href="#linearGradient3924-1-2-6" |
2463 | + gradientUnits="userSpaceOnUse" |
2464 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,0.9729689,-7.0270212)" /> |
2465 | + <linearGradient |
2466 | + id="linearGradient3924-1-2-6"> |
2467 | + <stop |
2468 | + id="stop3926-5-5" |
2469 | + style="stop-color:#ffffff;stop-opacity:1" |
2470 | + offset="0" /> |
2471 | + <stop |
2472 | + id="stop3928-32-3" |
2473 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
2474 | + offset="0.06316455" /> |
2475 | + <stop |
2476 | + id="stop3930-1-7" |
2477 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
2478 | + offset="0.95056331" /> |
2479 | + <stop |
2480 | + id="stop3932-3-0" |
2481 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
2482 | + offset="1" /> |
2483 | + </linearGradient> |
2484 | + <linearGradient |
2485 | + x1="23.99999" |
2486 | + y1="-1.9506749" |
2487 | + x2="23.99999" |
2488 | + y2="57.674179" |
2489 | + id="linearGradient4207-1" |
2490 | + xlink:href="#linearGradient4269" |
2491 | + gradientUnits="userSpaceOnUse" |
2492 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" /> |
2493 | + <linearGradient |
2494 | + id="linearGradient3924-1-2-6-0"> |
2495 | + <stop |
2496 | + id="stop3926-5-5-3" |
2497 | + style="stop-color:#ffffff;stop-opacity:1" |
2498 | + offset="0" /> |
2499 | + <stop |
2500 | + id="stop3928-32-3-6" |
2501 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
2502 | + offset="0.06316455" /> |
2503 | + <stop |
2504 | + id="stop3930-1-7-2" |
2505 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
2506 | + offset="0.95056331" /> |
2507 | + <stop |
2508 | + id="stop3932-3-0-9" |
2509 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
2510 | + offset="1" /> |
2511 | + </linearGradient> |
2512 | + <linearGradient |
2513 | + x1="23.99999" |
2514 | + y1="4.999989" |
2515 | + x2="23.99999" |
2516 | + y2="43" |
2517 | + id="linearGradient4247" |
2518 | + xlink:href="#linearGradient3924-1-2-6-0" |
2519 | + gradientUnits="userSpaceOnUse" |
2520 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,-2.0270504,-2.0270449)" /> |
2521 | + <linearGradient |
2522 | + x1="674.99536" |
2523 | + y1="635.92169" |
2524 | + x2="674.99536" |
2525 | + y2="662.89178" |
2526 | + id="linearGradient4285" |
2527 | + xlink:href="#linearGradient4279" |
2528 | + gradientUnits="userSpaceOnUse" /> |
2529 | + <radialGradient |
2530 | + cx="11.325233" |
2531 | + cy="30.998131" |
2532 | + r="7.0953269" |
2533 | + fx="11.325233" |
2534 | + fy="30.998131" |
2535 | + id="radialGradient4297" |
2536 | + xlink:href="#linearGradient4291" |
2537 | + gradientUnits="userSpaceOnUse" |
2538 | + gradientTransform="matrix(1,0,0,0.25,0,23.248598)" /> |
2539 | + <filter |
2540 | + x="-0.15516667" |
2541 | + y="-0.097828373" |
2542 | + width="1.3103333" |
2543 | + height="1.1956567" |
2544 | + color-interpolation-filters="sRGB" |
2545 | + id="filter4345"> |
2546 | + <feGaussianBlur |
2547 | + id="feGaussianBlur4347" |
2548 | + stdDeviation="0.4655" /> |
2549 | + </filter> |
2550 | + <linearGradient |
2551 | + x1="674.99536" |
2552 | + y1="635.92169" |
2553 | + x2="674.99536" |
2554 | + y2="662.89178" |
2555 | + id="linearGradient4285-7" |
2556 | + xlink:href="#linearGradient4279-2" |
2557 | + gradientUnits="userSpaceOnUse" /> |
2558 | + <linearGradient |
2559 | + id="linearGradient4279-2"> |
2560 | + <stop |
2561 | + id="stop4281-4" |
2562 | + style="stop-color:#e74545;stop-opacity:1" |
2563 | + offset="0" /> |
2564 | + <stop |
2565 | + id="stop4283-7" |
2566 | + style="stop-color:#da1c1c;stop-opacity:0.99795502" |
2567 | + offset="1" /> |
2568 | + </linearGradient> |
2569 | + <linearGradient |
2570 | + x1="23.99999" |
2571 | + y1="-1.9506749" |
2572 | + x2="23.99999" |
2573 | + y2="57.674179" |
2574 | + id="linearGradient4207-1-1" |
2575 | + xlink:href="#linearGradient4269-9" |
2576 | + gradientUnits="userSpaceOnUse" |
2577 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" /> |
2578 | + <linearGradient |
2579 | + id="linearGradient4269-9"> |
2580 | + <stop |
2581 | + id="stop4271-5" |
2582 | + style="stop-color:#ffffff;stop-opacity:1" |
2583 | + offset="0" /> |
2584 | + <stop |
2585 | + id="stop4273-3" |
2586 | + style="stop-color:#ffffff;stop-opacity:0.23529412" |
2587 | + offset="0.19700792" /> |
2588 | + <stop |
2589 | + id="stop4275-1" |
2590 | + style="stop-color:#ffffff;stop-opacity:0.15686275" |
2591 | + offset="0.6310662" /> |
2592 | + <stop |
2593 | + id="stop4277-8" |
2594 | + style="stop-color:#ffffff;stop-opacity:0.39215687" |
2595 | + offset="1" /> |
2596 | + </linearGradient> |
2597 | + <linearGradient |
2598 | + x1="23.99999" |
2599 | + y1="-1.9506749" |
2600 | + x2="23.99999" |
2601 | + y2="57.674179" |
2602 | + id="linearGradient4027" |
2603 | + xlink:href="#linearGradient4269-9" |
2604 | + gradientUnits="userSpaceOnUse" |
2605 | + gradientTransform="matrix(0.45945947,0,0,0.45945947,664.4146,636.19848)" /> |
2606 | + </defs> |
2607 | + <metadata |
2608 | + id="metadata7"> |
2609 | + <rdf:RDF> |
2610 | + <cc:Work |
2611 | + rdf:about=""> |
2612 | + <dc:format>image/svg+xml</dc:format> |
2613 | + <dc:type |
2614 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
2615 | + <dc:title></dc:title> |
2616 | + </cc:Work> |
2617 | + </rdf:RDF> |
2618 | + </metadata> |
2619 | + <g |
2620 | + transform="translate(-662.78571,-633.50507)" |
2621 | + id="layer1"> |
2622 | + <path |
2623 | + d="m 674.28125,647.84375 c -2.94458,0 -5.58673,0.68985 -7.46875,1.78125 -1.85693,1.07685 -2.90625,2.48274 -2.90625,3.96875 0,1.47223 1.05058,2.80953 2.84375,3.875 a 1.1774629,1.1774629 0 0 0 0.0937,0.0625 l -0.0312,0.0312 6.5625,5.53125 a 1.1774629,1.1774629 0 0 0 1.5,0 l 6.625,-5.375 -0.0312,-0.0312 a 1.1774629,1.1774629 0 0 0 0.0937,-0.0312 c 1.96355,-1.08113 3.09375,-2.51482 3.09375,-4.0625 0,-1.48601 -1.04932,-2.8919 -2.90625,-3.96875 -1.88202,-1.0914 -4.52417,-1.78125 -7.46875,-1.78125 z m -6.03125,7.875 c 0.008,0.007 0.0613,0.0268 0.0312,0 -0.12018,-0.10724 0.14927,0.14086 0.0312,0.0312 -0.11802,-0.10961 0.14706,0.1432 0.0312,0.0312 -0.11581,-0.11195 0.17606,0.14548 0.0625,0.0312 l -0.0625,0.0625 a 1.1774629,1.1774629 0 0 0 -0.0937,-0.15625 z m 11.875,0.0937 A 1.1774629,1.1774629 0 0 0 680,655.96875 l -0.0312,-0.0312 c -0.11976,0.10718 0.1533,-0.13581 0.0312,-0.0312 -0.12205,0.10456 0.18678,-0.1644 0.0625,-0.0625 -0.12428,0.1019 0.18896,-0.13044 0.0625,-0.0312 z" |
2624 | + transform="matrix(1,0,0,0.8490188,0,102.82045)" |
2625 | + id="path3974" |
2626 | + style="opacity:0.05;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2627 | + <path |
2628 | + d="m 674.28125,649.03125 c -2.75342,0 -5.2292,0.67059 -6.875,1.625 -1.6458,0.95441 -2.3125,2.0249 -2.3125,2.9375 0,0.8922 0.65933,1.92985 2.25,2.875 a 1.808614,1.808614 0 0 1 0.21875,0.1875 l 6.5625,5.53125 6.625,-5.375 A 1.808614,1.808614 0 0 1 681,656.625 c 1.74512,-0.96086 2.46875,-2.08177 2.46875,-3.03125 0,-0.9126 -0.6667,-1.98309 -2.3125,-2.9375 -1.6458,-0.95441 -4.12158,-1.625 -6.875,-1.625 z" |
2629 | + transform="matrix(1,0,0,0.8490188,0,102.82045)" |
2630 | + id="path3966" |
2631 | + style="opacity:0.1;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2632 | + <path |
2633 | + d="m 674.28125,650.21875 c -2.5594,0 -4.87521,0.65338 -6.28125,1.46875 -1.43151,0.83014 -1.71875,1.57563 -1.71875,1.90625 0,0.30349 0.30235,1.02072 1.6875,1.84375 l -0.0625,0.0937 a 1.1950764,1.1950764 0 0 1 0.4375,0.21875 l 5.78125,4.875 5.875,-4.75 a 1.1950764,1.1950764 0 0 1 0.46875,-0.21875 l -0.0312,-0.0625 c 1.52342,-0.83879 1.84375,-1.65766 1.84375,-2 0,-0.33062 -0.28724,-1.07611 -1.71875,-1.90625 -1.40604,-0.81537 -3.72185,-1.46875 -6.28125,-1.46875 z" |
2634 | + transform="matrix(1,0,0,0.8490188,0,102.82045)" |
2635 | + id="path3974-5" |
2636 | + style="opacity:0.15;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2637 | + <path |
2638 | + d="m 674.28571,634.52389 c -6.07452,0 -11,4.94494 -11,11.04347 0,2.9962 1.18846,5.71492 3.11811,7.70436 l 7.69134,11.25217 7.77144,-10.95851 c 2.10521,-2.01125 3.41911,-4.85027 3.41911,-7.99802 0,-6.09853 -4.92547,-11.04347 -11,-11.04347 z" |
2639 | + id="path3007" |
2640 | + style="color:#000000;fill:url(#linearGradient4285);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2641 | + <path |
2642 | + d="m 674.28571,634.52389 c -6.07452,0 -11,4.94494 -11,11.04347 0,2.9962 1.18846,5.71492 3.11811,7.70436 l 7.69134,11.25217 7.77144,-10.95851 c 2.10521,-2.01125 3.41911,-4.85027 3.41911,-7.99802 0,-6.09853 -4.92547,-11.04347 -11,-11.04347 z" |
2643 | + id="path3007-6" |
2644 | + style="color:#000000;fill:none;stroke:#da1c1c;stroke-width:0.99999994;stroke-opacity:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2645 | + <path |
2646 | + d="m 674.28125,635.5 c -5.54209,0 -10.03125,4.49352 -10.03125,10.0625 0,2.73462 1.11745,5.21924 2.875,7.03125 a 0.98360133,0.98360133 0 0 1 0.0937,0.125 l 6.875,10.09375 L 681.0625,653 a 0.98360133,0.98360133 0 0 1 0.125,-0.15625 c 1.91706,-1.8315 3.125,-4.4045 3.125,-7.28125 0,-5.56898 -4.48914,-10.0625 -10.03125,-10.0625 z" |
2647 | + id="path4093" |
2648 | + style="opacity:0.4;color:#000000;fill:none;stroke:url(#linearGradient4027);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2649 | + <path |
2650 | + d="m 14.934579,12.583178 a 4.4485979,4.4485979 0 1 1 -8.8971959,0 4.4485979,4.4485979 0 1 1 8.8971959,0 z" |
2651 | + transform="matrix(1.1239496,0,0,1.1239496,662.5,632.36221)" |
2652 | + id="path3168-7" |
2653 | + style="opacity:0.15;color:#000000;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2654 | + <path |
2655 | + d="m 14.934579,12.583178 a 4.4485979,4.4485979 0 1 1 -8.8971959,0 4.4485979,4.4485979 0 1 1 8.8971959,0 z" |
2656 | + transform="matrix(1.1239496,0,0,1.1239496,662.5,631.36221)" |
2657 | + id="path3168" |
2658 | + style="color:#000000;fill:#8b1212;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.99999994;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" /> |
2659 | + </g> |
2660 | +</svg> |
2661 | |
2662 | === added file 'icons/import-all.png' |
2663 | Binary files icons/import-all.png 1970-01-01 00:00:00 +0000 and icons/import-all.png 2014-10-18 00:49:47 +0000 differ |
2664 | === added file 'icons/import.svg' |
2665 | --- icons/import.svg 1970-01-01 00:00:00 +0000 |
2666 | +++ icons/import.svg 2014-10-18 00:49:47 +0000 |
2667 | @@ -0,0 +1,55 @@ |
2668 | +<?xml version="1.0" encoding="UTF-8"?> |
2669 | +<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [ |
2670 | + <!ENTITY ns_svg "http://www.w3.org/2000/svg"> |
2671 | + <!ENTITY ns_xlink "http://www.w3.org/1999/xlink"> |
2672 | +]> |
2673 | +<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="128" height="128" viewBox="0 0 128 128" overflow="visible" enable-background="new 0 0 128 128" xml:space="preserve"> |
2674 | + <path opacity="0.2" fill="#1A1A1A" d="M125,106c0,6.286-2.713,9-9,9H14c-6.286,0-9-2.714-9-9V24c0-6.287,2.714-9,9-9h102 c6.287,0,9,2.713,9,9V106z"/> |
2675 | + <path opacity="0.2" fill="#1A1A1A" d="M124.25,107c0,6.286-2.68,9-8.888,9H14.638c-6.208,0-8.888-2.714-8.888-9V25 c0-6.287,2.68-9,8.888-9h100.725c6.208,0,8.888,2.713,8.888,9V107z"/> |
2676 | + <path opacity="0.4" fill="#1A1A1A" d="M14,12C7.178,12,4,15.178,4,22v82c0,6.822,3.178,10,10,10h102c6.822,0,10-3.178,10-10V22 c0-6.822-3.178-10-10-10H14z"/> |
2677 | + <linearGradient id="XMLID_7_" gradientUnits="userSpaceOnUse" x1="23.3413" y1="24" x2="119.5405" y2="114.0588"> |
2678 | + <stop offset="0" style="stop-color: rgb(248, 249, 248);"/> |
2679 | + <stop offset="1" style="stop-color: rgb(231, 231, 230);"/> |
2680 | + </linearGradient> |
2681 | + <path fill="url(#XMLID_7_)" d="M125,104c0,6.286-2.713,9-9,9H14c-6.286,0-9-2.714-9-9V22c0-6.287,2.714-9,9-9h102 c6.287,0,9,2.713,9,9V104z"/> |
2682 | + <rect x="16" y="36" fill="#003A8F" width="98" height="52"/> |
2683 | + <rect x="17" y="37" fill="#FFFFFF" width="98" height="52"/> |
2684 | + <radialGradient id="XMLID_8_" cx="44" cy="46" r="94.8685" gradientUnits="userSpaceOnUse"> |
2685 | + <stop offset="0" style="stop-color: rgb(83, 142, 212);"/> |
2686 | + <stop offset="1" style="stop-color: rgb(0, 25, 64);"/> |
2687 | + </radialGradient> |
2688 | + <rect x="16" y="50" fill="url(#XMLID_8_)" width="98" height="38"/> |
2689 | + <rect x="16" y="36" fill="#296096" width="98" height="14"/> |
2690 | + <path fill="#52463A" d="M67,87.951c-2.975-3.135-5.95-6.269-11.899-6.269c-5.949,0-20.823-6.271-20.823-6.271 s-11.899-6.27-17.849-6.27c0,6.27,0,18.809,0,18.809H67z"/> |
2691 | + <linearGradient id="XMLID_9_" gradientUnits="userSpaceOnUse" x1="70.2695" y1="26.522" x2="57.2696" y2="73.522"> |
2692 | + <stop offset="0" style="stop-color: rgb(101, 162, 220);"/> |
2693 | + <stop offset="0.5674" style="stop-color: rgb(78, 131, 194);"/> |
2694 | + <stop offset="1" style="stop-color: rgb(136, 174, 194);"/> |
2695 | + </linearGradient> |
2696 | + <path fill="url(#XMLID_9_)" d="M113,54.143c-30,0-84,11.429-96,22.857V37h96V54.143z"/> |
2697 | + <linearGradient id="XMLID_10_" gradientUnits="userSpaceOnUse" x1="18.6816" y1="75.5381" x2="49.1252" y2="91.7747"> |
2698 | + <stop offset="0" style="stop-color: rgb(124, 130, 113);"/> |
2699 | + <stop offset="1" style="stop-color: rgb(120, 103, 85);"/> |
2700 | + </linearGradient> |
2701 | + <path fill="url(#XMLID_10_)" d="M65.5,88c-2.912-2.833-5.823-5.666-11.647-5.666c-5.823,0-20.382-5.667-20.382-5.667 S21.823,71,16,71c0,5.667,0,17,0,17H65.5z"/> |
2702 | + <path fill="#CBC7B8" d="M17,77c1.74-1.657,4.369-3.314,7.675-4.938c-2.697-0.968-5.513-1.774-7.675-1.902V77z"/> |
2703 | + <path fill="#52463A" d="M83.939,87.955c0,0,2.728-4.596,6.291-4.596c3.564,0,4.401,4.596,4.401,4.596H83.939z"/> |
2704 | + |
2705 | + <linearGradient id="XMLID_11_" gradientUnits="userSpaceOnUse" x1="85.4639" y1="86.5039" x2="94.0352" y2="86.5039" gradientTransform="matrix(1, 0, -0.1353, 0.9324, 11.5082, 5.4565)"> |
2706 | + <stop offset="0" style="stop-color: rgb(124, 130, 113);"/> |
2707 | + <stop offset="1" style="stop-color: rgb(120, 103, 85);"/> |
2708 | + </linearGradient> |
2709 | + <path fill="url(#XMLID_11_)" d="M85,87.955c0,0,2.187-3.685,5.043-3.685c2.857,0,3.528,3.685,3.528,3.685H85z"/> |
2710 | + <linearGradient id="XMLID_12_" gradientUnits="userSpaceOnUse" x1="41" y1="47.7856" x2="101.25" y2="47.7856"> |
2711 | + <stop offset="0" style="stop-color: rgb(96, 133, 185);"/> |
2712 | + <stop offset="1" style="stop-color: rgb(55, 73, 122);"/> |
2713 | + </linearGradient> |
2714 | + <path fill="url(#XMLID_12_)" d="M45.288,50.143h67.215c-1.565-2.777-4.952-4.714-8.909-4.714H54.199 C50.241,45.429,46.853,47.366,45.288,50.143z"/> |
2715 | + <path fill="#BCAC8D" d="M27.793,76.766c-1.633-2.153-4.843-3.357-5.856-0.658c-1.012,2.697-2.025,5.396-2.025,5.396l6.983,4.161 L27.793,76.766z"/> |
2716 | + <path fill="#56573F" d="M30.825,76.912C30.327,79.664,27,87,27,87h-8c0,0,8.157-11.922,9.991-11.005 C30.825,76.912,30.825,76.912,30.825,76.912z"/> |
2717 | + <path fill="#3A434C" d="M30,86c0,0,5.228-2.161,6.918-3.625s2.457-3.311,2.457-3.311l-4.461,0.313L30,86z"/> |
2718 | + <path fill="#BCAC8D" d="M37,81c-2-1-5-1-5,1s0,4,0,4l7,1L37,81z"/> |
2719 | + <path fill="#BCAC8D" d="M46,82.493c-2-0.751-5-0.751-5,0.751c0,1.503,0,3.005,0,3.005L48,87L46,82.493z"/> |
2720 | + <path fill="#94876F" d="M53.794,83.459c-1.85-0.699-3.949-0.699-3.047,0.699c0.901,1.399,1.803,2.799,1.803,2.799l5.348,0.699 L53.794,83.459z"/> |
2721 | + <path fill="#53634C" d="M51,86c0,0-4-4-6-5s-4-1-4-1l2,4L51,86z"/> |
2722 | +</svg> |
2723 | \ No newline at end of file |
2724 | |
2725 | === added file 'icons/places.svg' |
2726 | --- icons/places.svg 1970-01-01 00:00:00 +0000 |
2727 | +++ icons/places.svg 2014-10-18 00:49:47 +0000 |
2728 | @@ -0,0 +1,679 @@ |
2729 | +<?xml version="1.0" encoding="UTF-8" standalone="no"?> |
2730 | +<!-- Created with Inkscape (http://www.inkscape.org/) --> |
2731 | + |
2732 | +<svg |
2733 | + xmlns:dc="http://purl.org/dc/elements/1.1/" |
2734 | + xmlns:cc="http://creativecommons.org/ns#" |
2735 | + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" |
2736 | + xmlns:svg="http://www.w3.org/2000/svg" |
2737 | + xmlns="http://www.w3.org/2000/svg" |
2738 | + xmlns:xlink="http://www.w3.org/1999/xlink" |
2739 | + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" |
2740 | + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" |
2741 | + width="16px" |
2742 | + height="16px" |
2743 | + id="svg4215" |
2744 | + version="1.1" |
2745 | + inkscape:version="0.48.4 r9939" |
2746 | + sodipodi:docname="places.svg" |
2747 | + inkscape:export-filename="/home/sam/places.png" |
2748 | + inkscape:export-xdpi="90" |
2749 | + inkscape:export-ydpi="90"> |
2750 | + <defs |
2751 | + id="defs4217"> |
2752 | + <linearGradient |
2753 | + id="linearGradient19627"> |
2754 | + <stop |
2755 | + style="stop-color:#585858;stop-opacity:1;" |
2756 | + offset="0" |
2757 | + id="stop19629" /> |
2758 | + <stop |
2759 | + style="stop-color:#9b9b9b;stop-opacity:1;" |
2760 | + offset="1" |
2761 | + id="stop19631" /> |
2762 | + </linearGradient> |
2763 | + <linearGradient |
2764 | + inkscape:collect="always" |
2765 | + id="linearGradient15009-5-8"> |
2766 | + <stop |
2767 | + style="stop-color:#383e34;stop-opacity:1" |
2768 | + offset="0" |
2769 | + id="stop15011-5-3" /> |
2770 | + <stop |
2771 | + style="stop-color:#84917c;stop-opacity:1" |
2772 | + offset="1" |
2773 | + id="stop15013-7-58" /> |
2774 | + </linearGradient> |
2775 | + <linearGradient |
2776 | + id="linearGradient15009-2"> |
2777 | + <stop |
2778 | + style="stop-color:#303030;stop-opacity:1;" |
2779 | + offset="0" |
2780 | + id="stop15011-8" /> |
2781 | + <stop |
2782 | + style="stop-color:#959595;stop-opacity:1;" |
2783 | + offset="1" |
2784 | + id="stop15013-2" /> |
2785 | + </linearGradient> |
2786 | + <linearGradient |
2787 | + id="linearGradient60943"> |
2788 | + <stop |
2789 | + id="stop60945" |
2790 | + offset="0" |
2791 | + style="stop-color:#95c48c;stop-opacity:1;" /> |
2792 | + <stop |
2793 | + id="stop60947" |
2794 | + offset="1" |
2795 | + style="stop-color:#a6dc98;stop-opacity:1;" /> |
2796 | + </linearGradient> |
2797 | + <linearGradient |
2798 | + id="linearGradient60637"> |
2799 | + <stop |
2800 | + id="stop60639" |
2801 | + offset="0" |
2802 | + style="stop-color:#4c84d8;stop-opacity:1;" /> |
2803 | + <stop |
2804 | + id="stop60641" |
2805 | + offset="1" |
2806 | + style="stop-color:#6b9bdc;stop-opacity:1;" /> |
2807 | + </linearGradient> |
2808 | + <radialGradient |
2809 | + inkscape:collect="always" |
2810 | + xlink:href="#linearGradient14755-8" |
2811 | + id="radialGradient60893" |
2812 | + gradientUnits="userSpaceOnUse" |
2813 | + gradientTransform="matrix(1,0,0,0.57798165,0,82.135321)" |
2814 | + cx="149.375" |
2815 | + cy="194.625" |
2816 | + fx="149.375" |
2817 | + fy="194.625" |
2818 | + r="13.625" /> |
2819 | + <linearGradient |
2820 | + inkscape:collect="always" |
2821 | + id="linearGradient14755-8"> |
2822 | + <stop |
2823 | + style="stop-color:#000000;stop-opacity:1;" |
2824 | + offset="0" |
2825 | + id="stop14757-1" /> |
2826 | + <stop |
2827 | + style="stop-color:#000000;stop-opacity:0;" |
2828 | + offset="1" |
2829 | + id="stop14759-3" /> |
2830 | + </linearGradient> |
2831 | + <linearGradient |
2832 | + inkscape:collect="always" |
2833 | + id="linearGradient14991-1"> |
2834 | + <stop |
2835 | + style="stop-color:#ffffff;stop-opacity:1;" |
2836 | + offset="0" |
2837 | + id="stop14993-0" /> |
2838 | + <stop |
2839 | + style="stop-color:#ffffff;stop-opacity:0;" |
2840 | + offset="1" |
2841 | + id="stop14995-0" /> |
2842 | + </linearGradient> |
2843 | + <linearGradient |
2844 | + inkscape:collect="always" |
2845 | + xlink:href="#linearGradient20627-8-0" |
2846 | + id="linearGradient60901" |
2847 | + gradientUnits="userSpaceOnUse" |
2848 | + gradientTransform="translate(507.9375,53.736825)" |
2849 | + x1="49.75" |
2850 | + y1="218.75" |
2851 | + x2="98.59375" |
2852 | + y2="217" /> |
2853 | + <linearGradient |
2854 | + id="linearGradient20627-8-0"> |
2855 | + <stop |
2856 | + style="stop-color:#f8d022;stop-opacity:1;" |
2857 | + offset="0" |
2858 | + id="stop22486-6-5" /> |
2859 | + <stop |
2860 | + id="stop20631-9-6" |
2861 | + offset="1" |
2862 | + style="stop-color:#e3ce74;stop-opacity:1;" /> |
2863 | + </linearGradient> |
2864 | + <linearGradient |
2865 | + inkscape:collect="always" |
2866 | + xlink:href="#linearGradient20104-9-1-6" |
2867 | + id="linearGradient60903" |
2868 | + gradientUnits="userSpaceOnUse" |
2869 | + gradientTransform="translate(507.9375,53.736825)" |
2870 | + x1="126.7462" |
2871 | + y1="210.79668" |
2872 | + x2="149.73004" |
2873 | + y2="150.20921" /> |
2874 | + <linearGradient |
2875 | + inkscape:collect="always" |
2876 | + id="linearGradient20104-9-1-6"> |
2877 | + <stop |
2878 | + style="stop-color:#826a00;stop-opacity:1;" |
2879 | + offset="0" |
2880 | + id="stop20106-9-6-9" /> |
2881 | + <stop |
2882 | + style="stop-color:#d9b100;stop-opacity:1" |
2883 | + offset="1" |
2884 | + id="stop20108-6-6-9" /> |
2885 | + </linearGradient> |
2886 | + <linearGradient |
2887 | + inkscape:collect="always" |
2888 | + xlink:href="#linearGradient20114-7-2-5-2-9" |
2889 | + id="linearGradient60905" |
2890 | + gradientUnits="userSpaceOnUse" |
2891 | + gradientTransform="translate(507.9375,68.736825)" |
2892 | + x1="113.81474" |
2893 | + y1="157.29919" |
2894 | + x2="175.08" |
2895 | + y2="155.54919" /> |
2896 | + <linearGradient |
2897 | + inkscape:collect="always" |
2898 | + id="linearGradient20114-7-2-5-2-9"> |
2899 | + <stop |
2900 | + style="stop-color:#888a85;stop-opacity:1;" |
2901 | + offset="0" |
2902 | + id="stop20116-5-2-3-4-0" /> |
2903 | + <stop |
2904 | + style="stop-color:#a4a5a1;stop-opacity:1" |
2905 | + offset="1" |
2906 | + id="stop20118-4-5-6-9-2" /> |
2907 | + </linearGradient> |
2908 | + <linearGradient |
2909 | + inkscape:collect="always" |
2910 | + xlink:href="#linearGradient22395-8-5" |
2911 | + id="linearGradient60907" |
2912 | + gradientUnits="userSpaceOnUse" |
2913 | + gradientTransform="translate(507.9375,53.736825)" |
2914 | + x1="98.5" |
2915 | + y1="173.5" |
2916 | + x2="112.75" |
2917 | + y2="169.25" /> |
2918 | + <linearGradient |
2919 | + inkscape:collect="always" |
2920 | + id="linearGradient22395-8-5"> |
2921 | + <stop |
2922 | + style="stop-color:#bdbdbd;stop-opacity:1;" |
2923 | + offset="0" |
2924 | + id="stop22397-0-6" /> |
2925 | + <stop |
2926 | + style="stop-color:#cdcdcd;stop-opacity:1" |
2927 | + offset="1" |
2928 | + id="stop22399-6-9" /> |
2929 | + </linearGradient> |
2930 | + <linearGradient |
2931 | + inkscape:collect="always" |
2932 | + xlink:href="#linearGradient20114-7-6-1" |
2933 | + id="linearGradient60911" |
2934 | + gradientUnits="userSpaceOnUse" |
2935 | + gradientTransform="translate(507.9375,68.736825)" |
2936 | + x1="130.81474" |
2937 | + y1="175.54919" |
2938 | + x2="182.08" |
2939 | + y2="175.54919" /> |
2940 | + <linearGradient |
2941 | + inkscape:collect="always" |
2942 | + id="linearGradient20114-7-6-1"> |
2943 | + <stop |
2944 | + style="stop-color:#888a85;stop-opacity:1;" |
2945 | + offset="0" |
2946 | + id="stop20116-5-4-8" /> |
2947 | + <stop |
2948 | + style="stop-color:#a4a5a1;stop-opacity:1" |
2949 | + offset="1" |
2950 | + id="stop20118-4-2-6" /> |
2951 | + </linearGradient> |
2952 | + <linearGradient |
2953 | + inkscape:collect="always" |
2954 | + xlink:href="#linearGradient20114-7-4-6-4-1" |
2955 | + id="linearGradient60913" |
2956 | + gradientUnits="userSpaceOnUse" |
2957 | + gradientTransform="translate(507.9375,53.736825)" |
2958 | + x1="130.81474" |
2959 | + y1="175.54919" |
2960 | + x2="182.08" |
2961 | + y2="175.54919" /> |
2962 | + <linearGradient |
2963 | + inkscape:collect="always" |
2964 | + id="linearGradient20114-7-4-6-4-1"> |
2965 | + <stop |
2966 | + style="stop-color:#888a85;stop-opacity:1;" |
2967 | + offset="0" |
2968 | + id="stop20116-5-9-2-3-4" /> |
2969 | + <stop |
2970 | + style="stop-color:#a4a5a1;stop-opacity:1" |
2971 | + offset="1" |
2972 | + id="stop20118-4-3-9-0-3" /> |
2973 | + </linearGradient> |
2974 | + <linearGradient |
2975 | + inkscape:collect="always" |
2976 | + xlink:href="#linearGradient22799-6-7" |
2977 | + id="linearGradient60919" |
2978 | + gradientUnits="userSpaceOnUse" |
2979 | + gradientTransform="translate(507.9375,53.736825)" |
2980 | + x1="118" |
2981 | + y1="159.375" |
2982 | + x2="103.25" |
2983 | + y2="169.875" /> |
2984 | + <linearGradient |
2985 | + inkscape:collect="always" |
2986 | + id="linearGradient22799-6-7"> |
2987 | + <stop |
2988 | + style="stop-color:#000000;stop-opacity:1" |
2989 | + offset="0" |
2990 | + id="stop22801-7-5" /> |
2991 | + <stop |
2992 | + style="stop-color:#000000;stop-opacity:0.37280703" |
2993 | + offset="1" |
2994 | + id="stop22803-5-9" /> |
2995 | + </linearGradient> |
2996 | + <linearGradient |
2997 | + id="linearGradient14670-0"> |
2998 | + <stop |
2999 | + style="stop-color:#fc6c6c;stop-opacity:1;" |
3000 | + offset="0" |
3001 | + id="stop14672-2" /> |
3002 | + <stop |
3003 | + style="stop-color:#f92424;stop-opacity:1;" |
3004 | + offset="1" |
3005 | + id="stop14674-7" /> |
3006 | + </linearGradient> |
3007 | + <linearGradient |
3008 | + inkscape:collect="always" |
3009 | + id="linearGradient14971-4"> |
3010 | + <stop |
3011 | + style="stop-color:#fabebe;stop-opacity:1;" |
3012 | + offset="0" |
3013 | + id="stop14973-7" /> |
3014 | + <stop |
3015 | + style="stop-color:#fabebe;stop-opacity:0;" |
3016 | + offset="1" |
3017 | + id="stop14975-2" /> |
3018 | + </linearGradient> |
3019 | + <linearGradient |
3020 | + inkscape:collect="always" |
3021 | + id="linearGradient14745-0"> |
3022 | + <stop |
3023 | + style="stop-color:#ff4141;stop-opacity:1" |
3024 | + offset="0" |
3025 | + id="stop14747-5" /> |
3026 | + <stop |
3027 | + style="stop-color:#cc0000;stop-opacity:1" |
3028 | + offset="1" |
3029 | + id="stop14749-3" /> |
3030 | + </linearGradient> |
3031 | + <linearGradient |
3032 | + inkscape:collect="always" |
3033 | + id="linearGradient14683-3"> |
3034 | + <stop |
3035 | + style="stop-color:#ffffff;stop-opacity:1;" |
3036 | + offset="0" |
3037 | + id="stop14685-5" /> |
3038 | + <stop |
3039 | + style="stop-color:#ffffff;stop-opacity:0;" |
3040 | + offset="1" |
3041 | + id="stop14687-3" /> |
3042 | + </linearGradient> |
3043 | + <linearGradient |
3044 | + inkscape:collect="always" |
3045 | + id="linearGradient36566"> |
3046 | + <stop |
3047 | + style="stop-color:#ffffff;stop-opacity:1;" |
3048 | + offset="0" |
3049 | + id="stop36568" /> |
3050 | + <stop |
3051 | + style="stop-color:#ffffff;stop-opacity:0;" |
3052 | + offset="1" |
3053 | + id="stop36570" /> |
3054 | + </linearGradient> |
3055 | + <radialGradient |
3056 | + inkscape:collect="always" |
3057 | + xlink:href="#linearGradient14991-1" |
3058 | + id="radialGradient4479" |
3059 | + gradientUnits="userSpaceOnUse" |
3060 | + gradientTransform="matrix(0.11297688,-0.0292602,0.01813654,0.07002722,-6.7577806,-3.8534916)" |
3061 | + cx="80.25" |
3062 | + cy="187.73877" |
3063 | + fx="80.25" |
3064 | + fy="187.73877" |
3065 | + r="30.75" /> |
3066 | + <linearGradient |
3067 | + inkscape:collect="always" |
3068 | + xlink:href="#linearGradient60637" |
3069 | + id="linearGradient4484" |
3070 | + gradientUnits="userSpaceOnUse" |
3071 | + gradientTransform="matrix(0.09997235,0,0,0.09997235,-1.3369622,-10.014789)" |
3072 | + x1="105.5" |
3073 | + y1="189" |
3074 | + x2="156.5" |
3075 | + y2="195.5" /> |
3076 | + <linearGradient |
3077 | + inkscape:collect="always" |
3078 | + xlink:href="#linearGradient60943" |
3079 | + id="linearGradient4487" |
3080 | + gradientUnits="userSpaceOnUse" |
3081 | + gradientTransform="matrix(0.09997235,0,0,0.09997235,-2.309234,-12.224498)" |
3082 | + x1="58.907967" |
3083 | + y1="194.96349" |
3084 | + x2="92.707535" |
3085 | + y2="191.56073" /> |
3086 | + <radialGradient |
3087 | + inkscape:collect="always" |
3088 | + xlink:href="#linearGradient15009-2" |
3089 | + id="radialGradient4490" |
3090 | + gradientUnits="userSpaceOnUse" |
3091 | + gradientTransform="matrix(0.17477181,-0.00863071,0.00354741,0.07183502,-9.6863349,-4.8589985)" |
3092 | + cx="88.25" |
3093 | + cy="218.765" |
3094 | + fx="88.25" |
3095 | + fy="218.765" |
3096 | + r="34.75" /> |
3097 | + <radialGradient |
3098 | + inkscape:collect="always" |
3099 | + xlink:href="#linearGradient15009-5-8" |
3100 | + id="radialGradient4493" |
3101 | + gradientUnits="userSpaceOnUse" |
3102 | + gradientTransform="matrix(0.17477181,-0.00863071,0.00354741,0.07183502,-9.6863349,-4.8589985)" |
3103 | + cx="81.881546" |
3104 | + cy="250.70465" |
3105 | + fx="81.881546" |
3106 | + fy="250.70465" |
3107 | + r="34.75" /> |
3108 | + <linearGradient |
3109 | + inkscape:collect="always" |
3110 | + xlink:href="#linearGradient19627" |
3111 | + id="linearGradient4497" |
3112 | + gradientUnits="userSpaceOnUse" |
3113 | + gradientTransform="matrix(0.10118493,0,0,0.10118493,-2.4711313,-12.467927)" |
3114 | + x1="171.2774" |
3115 | + y1="272.52652" |
3116 | + x2="171.2774" |
3117 | + y2="173.69757" /> |
3118 | + <radialGradient |
3119 | + inkscape:collect="always" |
3120 | + xlink:href="#linearGradient14755-8" |
3121 | + id="radialGradient4499" |
3122 | + gradientUnits="userSpaceOnUse" |
3123 | + gradientTransform="matrix(1,0,0,0.57798165,0,82.135321)" |
3124 | + cx="149.375" |
3125 | + cy="194.625" |
3126 | + fx="149.375" |
3127 | + fy="194.625" |
3128 | + r="13.625" /> |
3129 | + <radialGradient |
3130 | + inkscape:collect="always" |
3131 | + xlink:href="#linearGradient14971-4" |
3132 | + id="radialGradient4503" |
3133 | + gradientUnits="userSpaceOnUse" |
3134 | + cx="129.25" |
3135 | + cy="129.83951" |
3136 | + fx="129.25" |
3137 | + fy="129.83951" |
3138 | + r="34.93745" /> |
3139 | + <radialGradient |
3140 | + inkscape:collect="always" |
3141 | + xlink:href="#linearGradient14745-0" |
3142 | + id="radialGradient4505" |
3143 | + gradientUnits="userSpaceOnUse" |
3144 | + gradientTransform="matrix(1.7826226,0,0,1.7826226,-100.09062,-90.782804)" |
3145 | + cx="127.8913" |
3146 | + cy="115.99819" |
3147 | + fx="127.8913" |
3148 | + fy="115.99819" |
3149 | + r="31.25" /> |
3150 | + <radialGradient |
3151 | + inkscape:collect="always" |
3152 | + xlink:href="#linearGradient14683-3" |
3153 | + id="radialGradient4507" |
3154 | + gradientUnits="userSpaceOnUse" |
3155 | + gradientTransform="matrix(0.08293973,0,0,0.0351222,-1.3902711,-0.23397073)" |
3156 | + cx="149.48978" |
3157 | + cy="49.24028" |
3158 | + fx="149.48978" |
3159 | + fy="49.24028" |
3160 | + r="34.5" /> |
3161 | + <radialGradient |
3162 | + inkscape:collect="always" |
3163 | + xlink:href="#linearGradient36566" |
3164 | + id="radialGradient4509" |
3165 | + gradientUnits="userSpaceOnUse" |
3166 | + gradientTransform="matrix(3.5960718,-1.7955579,1.4342795,3.5765632,-485.76309,114.25751)" |
3167 | + cx="151.68309" |
3168 | + cy="60.712517" |
3169 | + fx="151.68309" |
3170 | + fy="60.712517" |
3171 | + r="43.284622" /> |
3172 | + <radialGradient |
3173 | + inkscape:collect="always" |
3174 | + xlink:href="#linearGradient14670-0" |
3175 | + id="radialGradient4516" |
3176 | + gradientUnits="userSpaceOnUse" |
3177 | + gradientTransform="matrix(0.1113328,0,0,0.17423427,-3.3897623,-14.009352)" |
3178 | + cx="125.57332" |
3179 | + cy="122.20717" |
3180 | + fx="125.57332" |
3181 | + fy="122.20717" |
3182 | + r="31.25" /> |
3183 | + </defs> |
3184 | + <sodipodi:namedview |
3185 | + id="base" |
3186 | + pagecolor="#ffffff" |
3187 | + bordercolor="#666666" |
3188 | + borderopacity="1.0" |
3189 | + inkscape:pageopacity="0.0" |
3190 | + inkscape:pageshadow="2" |
3191 | + inkscape:zoom="1" |
3192 | + inkscape:cx="17.448447" |
3193 | + inkscape:cy="9.549479" |
3194 | + inkscape:current-layer="layer1" |
3195 | + showgrid="false" |
3196 | + inkscape:grid-bbox="true" |
3197 | + inkscape:document-units="px" |
3198 | + inkscape:window-width="1364" |
3199 | + inkscape:window-height="700" |
3200 | + inkscape:window-x="0" |
3201 | + inkscape:window-y="28" |
3202 | + inkscape:window-maximized="1" |
3203 | + showborder="false"> |
3204 | + <inkscape:grid |
3205 | + type="xygrid" |
3206 | + id="grid4458" |
3207 | + empspacing="5" |
3208 | + visible="true" |
3209 | + enabled="true" |
3210 | + snapvisiblegridlinesonly="true" /> |
3211 | + <inkscape:grid |
3212 | + type="xygrid" |
3213 | + id="grid5312" |
3214 | + empspacing="5" |
3215 | + visible="true" |
3216 | + enabled="true" |
3217 | + snapvisiblegridlinesonly="true" |
3218 | + spacingy="0.5px" |
3219 | + spacingx="0.5px" |
3220 | + dotted="true" /> |
3221 | + </sodipodi:namedview> |
3222 | + <metadata |
3223 | + id="metadata4220"> |
3224 | + <rdf:RDF> |
3225 | + <cc:Work |
3226 | + rdf:about=""> |
3227 | + <dc:format>image/svg+xml</dc:format> |
3228 | + <dc:type |
3229 | + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> |
3230 | + <dc:title></dc:title> |
3231 | + </cc:Work> |
3232 | + </rdf:RDF> |
3233 | + </metadata> |
3234 | + <g |
3235 | + id="layer1" |
3236 | + inkscape:label="Layer 1" |
3237 | + inkscape:groupmode="layer"> |
3238 | + <path |
3239 | + sodipodi:nodetypes="ccccccccccc" |
3240 | + inkscape:connector-curvature="0" |
3241 | + id="path60799" |
3242 | + d="M 2.6784843,1.6904231 2.5990879,7.3149065 0.90682506,13.197299 c 0.23677974,1.463057 0.10600184,1.956622 1.49304804,2.116338 l 4.8149959,-0.0681 0.052888,-1.590934 5.042538,1.724029 2.956655,-0.02136 -0.05262,-3.220914 c 0,0 -0.161929,-8.692036 -0.146434,-10.4391451 z" |
3243 | + style="color:#000000;fill:#c7c7c7;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.49300000000000010;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;" /> |
3244 | + <path |
3245 | + style="color:#000000;fill:url(#radialGradient4490);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;" |
3246 | + d="M 1.0898291,13.068507 C 1,14.5 1.9472106,15.098665 1.9472106,15.098665 L 7.5,15.5 6.5,13 8.5,10.5 3,10 z" |
3247 | + id="path60811" |
3248 | + inkscape:connector-curvature="0" |
3249 | + sodipodi:nodetypes="ccccccc" /> |
3250 | + <path |
3251 | + sodipodi:nodetypes="ccccccc" |
3252 | + style="color:#000000;fill:url(#linearGradient4487);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;" |
3253 | + d="M 8.9919354,1.9293118 3.02748,1.883316 3,7 0.83989467,13.218467 7.2257479,12.794449 14.750284,2.1580405 z" |
3254 | + id="path60813" |
3255 | + inkscape:connector-curvature="0" /> |
3256 | + <path |
3257 | + inkscape:connector-curvature="0" |
3258 | + id="path60815" |
3259 | + d="M 9.9099312,4.231271 13.358977,5.8808145 13.908823,9.4298334 14.308711,14.82834 8.011809,11.926129 C 7.8368592,11.838653 7.7605241,11.879154 7.7605241,11.879154 L 9.4100677,7.9302457 z" |
3260 | + style="color:#000000;fill:url(#linearGradient4484);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3261 | + sodipodi:nodetypes="cccccccc" /> |
3262 | + <path |
3263 | + style="opacity:0.40329218999999999;color:#000000;fill:url(#radialGradient4479);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;" |
3264 | + d="M 3.7898193,7.3642785 8.4377959,5.7705255 7.2381279,8.5197649 2.3623942,10.199414 z" |
3265 | + id="path60825" |
3266 | + inkscape:connector-curvature="0" |
3267 | + sodipodi:nodetypes="ccccc" /> |
3268 | + <g |
3269 | + id="g60829" |
3270 | + style="display:inline;enable-background:new;" |
3271 | + transform="matrix(0.09719553,0,0,0.09719553,-51.08588,-17.20868)"> |
3272 | + <path |
3273 | + sodipodi:nodetypes="ccccccccccc" |
3274 | + style="color:#000000;fill:url(#linearGradient60901);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3275 | + d="m 612.9375,238.38368 -16.84898,8.1404 0.85052,-6.76255 2.13898,-34.41117 -14.83686,-1.62746 0.55229,40.71824 -2.79113,7.67308 -24.40607,12.92821 -12.86502,30.42443 63.20627,-42.73004 z" |
3276 | + id="path60833" |
3277 | + inkscape:connector-curvature="0" /> |
3278 | + <path |
3279 | + style="color:#000000;fill:url(#linearGradient60903);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3280 | + d="m 660.4375,262.04243 0.76517,18.28279 c -7.89969,-5.94207 -15.72727,-12.15628 -24.09494,-15.7584 l -2.97112,20.59528 -11.15249,-4.86108 3.41276,-21.30895 c -6.14682,-3.03548 -11.4057,-4.51144 -17.95938,-6.25525 l 5.9754,-14.59725 c 17.25655,5.18877 30.3536,13.661 46.0246,23.90286 z" |
3281 | + id="path60835" |
3282 | + inkscape:connector-curvature="0" |
3283 | + sodipodi:nodetypes="ccccccccc" /> |
3284 | + <path |
3285 | + style="color:#000000;fill:url(#linearGradient60905);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3286 | + d="m 635.02589,248.76455 1.41161,-11.02773 1,-30.5 -16.75,-8.5 -4.75,34.5 -2,6 c 7.12881,2.34073 13.73494,5.14295 21.08839,9.52773 z" |
3287 | + id="path60837" |
3288 | + inkscape:connector-curvature="0" |
3289 | + sodipodi:nodetypes="ccccccc" /> |
3290 | + <path |
3291 | + inkscape:connector-curvature="0" |
3292 | + id="path60839" |
3293 | + d="m 596.4375,247.23682 4.75,-8.75 2,-31.75 16.52145,-3.10726 -3.77145,29.60726 -2,6 z" |
3294 | + style="color:#000000;fill:url(#linearGradient60907);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3295 | + sodipodi:nodetypes="ccccccc" /> |
3296 | + <path |
3297 | + style="color:#000000;fill:url(#linearGradient60911);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3298 | + d="m 660.05385,263.37792 c -7.39932,-4.02395 -13.48444,-10.84143 -21.3016,-13.61182 l 0,-10.42982 20.68288,9.63433 z" |
3299 | + id="path60843" |
3300 | + inkscape:connector-curvature="0" |
3301 | + sodipodi:nodetypes="ccccc" /> |
3302 | + <path |
3303 | + style="color:#000000;fill:#686965;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3304 | + d="m 658.55124,233.17511 2.12132,13.08148 -22.62741,-10.25305 0.35355,-12.37437 z" |
3305 | + id="path60845" |
3306 | + inkscape:connector-curvature="0" /> |
3307 | + <path |
3308 | + style="color:#000000;fill:url(#linearGradient60913);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3309 | + d="m 651.48018,278.42995 0.7071,12.02081 11.31372,5.83364 -1.85616,-11.93242 z" |
3310 | + id="path60847" |
3311 | + inkscape:connector-curvature="0" |
3312 | + sodipodi:nodetypes="ccccc" /> |
3313 | + <path |
3314 | + style="opacity:0.30452677;color:#000000;fill:url(#linearGradient60919);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3315 | + d="m 603.4375,206.73682 17,-3.59654 19,4.09654 -4.25,32.75 -19.25,-8.5 -15,7 z" |
3316 | + id="path60853" |
3317 | + inkscape:connector-curvature="0" |
3318 | + sodipodi:nodetypes="ccccccc" /> |
3319 | + </g> |
3320 | + <path |
3321 | + inkscape:connector-curvature="0" |
3322 | + id="path60859" |
3323 | + d="M 7,14.5 C 5.0964437,14.373323 2.9802468,15.200332 1.4524853,13.944797" |
3324 | + style="opacity:0.31275719000000002;color:#000000;fill:none;stroke:#ffffff;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke-linecap:square;" |
3325 | + sodipodi:nodetypes="cc" /> |
3326 | + <path |
3327 | + style="color:#000000;fill:none;stroke:url(#linearGradient4497);stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3328 | + d="m 2.5,1.5 0,5.5 -2,6 c 0,2 0.6129538,2.340284 2,2.5 l 5,0 L 7.267757,13.654603 12.5,15.5 l 3,0 L 15,12 c 0,0 0.484505,-8.7528909 0.5,-10.5 z" |
3329 | + id="path5310" |
3330 | + inkscape:connector-curvature="0" |
3331 | + sodipodi:nodetypes="ccccccccccc" /> |
3332 | + <path |
3333 | + sodipodi:type="arc" |
3334 | + style="opacity:0.34979428000000001;color:#000000;fill:url(#radialGradient4499);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;" |
3335 | + id="path60863" |
3336 | + sodipodi:cx="149.375" |
3337 | + sodipodi:cy="194.625" |
3338 | + sodipodi:rx="13.625" |
3339 | + sodipodi:ry="7.875" |
3340 | + d="m 163,194.625 a 13.625,7.875 0 1 1 -27.25,0 13.625,7.875 0 1 1 27.25,0 z" |
3341 | + transform="matrix(0.07540457,0,0,0.07412479,-0.25579866,-3.2535059)" /> |
3342 | + <rect |
3343 | + style="opacity:0.4;fill:#ffffff;stroke:none;stroke-width:1;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;fill-opacity:1" |
3344 | + id="rect5314" |
3345 | + width="12" |
3346 | + height="1" |
3347 | + x="3" |
3348 | + y="2" /> |
3349 | + <path |
3350 | + style="color:#000000;fill:url(#radialGradient4516);fill-opacity:1;fill-rule:nonzero;stroke:#c90505;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;stroke-opacity:1" |
3351 | + d="m 14.47915,4.0242092 c 0,2.7650457 -2.734173,7.5110528 -3.479148,7.4544378 -0.744978,-0.05662 -3.4791507,-4.6327757 -3.4791507,-7.4544378 0,-1.896934 1.5576701,-3.43470254 3.4791507,-3.43470254 1.921482,0 3.479148,1.53776854 3.479148,3.43470254 z" |
3352 | + id="path60865" |
3353 | + inkscape:connector-curvature="0" |
3354 | + sodipodi:nodetypes="szsss" /> |
3355 | + <path |
3356 | + transform="matrix(0.08,0,0,0.07864223,0.67997314,-3.0961612)" |
3357 | + d="m 160.5,96.75 a 31.25,31.25 0 1 1 -62.5,0 31.25,31.25 0 1 1 62.5,0 z" |
3358 | + sodipodi:ry="31.25" |
3359 | + sodipodi:rx="31.25" |
3360 | + sodipodi:cy="96.75" |
3361 | + sodipodi:cx="129.25" |
3362 | + id="path60867" |
3363 | + style="opacity:0.7;color:#000000;fill:url(#radialGradient4503);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3364 | + sodipodi:type="arc" /> |
3365 | + <path |
3366 | + sodipodi:type="arc" |
3367 | + style="color:#000000;fill:url(#radialGradient4505);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3368 | + id="path60869" |
3369 | + sodipodi:cx="129.25" |
3370 | + sodipodi:cy="96.75" |
3371 | + sodipodi:rx="31.25" |
3372 | + sodipodi:ry="31.25" |
3373 | + d="m 160.5,96.75 a 31.25,31.25 0 1 1 -62.5,0 31.25,31.25 0 1 1 62.5,0 z" |
3374 | + transform="matrix(0.064,0,0,0.064,2.7601141,-2.2271289)" /> |
3375 | + <path |
3376 | + style="opacity:0.4526749;color:#000000;fill:url(#radialGradient4507);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3377 | + d="m 11.008371,1.1094001 c -1.3342069,0 -2.4157957,0.8195307 -2.4157957,1.8304732 0,0.072937 0.00655,0.1448365 0.017506,0.2155448 0.1414665,-0.9088054 1.1608496,-1.6132703 2.3982897,-1.6132703 1.237441,0 2.259013,0.7044649 2.400479,1.6132703 0.01095,-0.070708 0.01532,-0.1426079 0.01532,-0.2155448 0,-1.0109425 -1.081589,-1.8304732 -2.415797,-1.8304732 z" |
3378 | + id="path60871" |
3379 | + inkscape:connector-curvature="0" /> |
3380 | + <path |
3381 | + inkscape:connector-curvature="0" |
3382 | + id="path60937" |
3383 | + d="m 6.5,12.5 c -1.98394,0.09219 -5,-1 -6,0.5" |
3384 | + style="color:#000000;fill:none;stroke:#5d5d5d;stroke-width:1;stroke-linecap:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate" |
3385 | + sodipodi:nodetypes="cc" /> |
3386 | + <path |
3387 | + transform="translate(-0.0107232,-1.0304587)" |
3388 | + d="m 12,4 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" |
3389 | + sodipodi:ry="1" |
3390 | + sodipodi:rx="1" |
3391 | + sodipodi:cy="4" |
3392 | + sodipodi:cx="11" |
3393 | + id="path5308" |
3394 | + style="opacity:0.3;fill:#000000;fill-opacity:1;stroke:none" |
3395 | + sodipodi:type="arc" /> |
3396 | + <path |
3397 | + sodipodi:type="arc" |
3398 | + style="fill:#ffffff;fill-opacity:1;stroke:none" |
3399 | + id="path5306" |
3400 | + sodipodi:cx="11" |
3401 | + sodipodi:cy="4" |
3402 | + sodipodi:rx="1" |
3403 | + sodipodi:ry="1" |
3404 | + d="m 12,4 a 1,1 0 1 1 -2,0 1,1 0 1 1 2,0 z" |
3405 | + transform="translate(0.0205268,2.0329775e-8)" /> |
3406 | + </g> |
3407 | +</svg> |
3408 | |
3409 | === modified file 'src/CheckerboardLayout.vala' |
3410 | --- src/CheckerboardLayout.vala 2014-08-21 00:59:32 +0000 |
3411 | +++ src/CheckerboardLayout.vala 2014-10-18 00:49:47 +0000 |
3412 | @@ -357,13 +357,16 @@ |
3413 | |
3414 | public Gdk.Pixbuf? get_image () { |
3415 | return pixbuf; |
3416 | + } |
3417 | + |
3418 | + public Gdk.Pixbuf? get_display_image () { |
3419 | + return display_pixbuf; |
3420 | } |
3421 | |
3422 | public void set_image (Gdk.Pixbuf pixbuf) { |
3423 | this.pixbuf = pixbuf; |
3424 | display_pixbuf = pixbuf; |
3425 | pixbuf_dim = Dimensions.for_pixbuf (pixbuf); |
3426 | - |
3427 | recalc_size ("set_image"); |
3428 | notify_view_altered (); |
3429 | } |
3430 | |
3431 | === modified file 'src/CollectionPage.vala' |
3432 | --- src/CollectionPage.vala 2014-09-29 15:08:44 +0000 |
3433 | +++ src/CollectionPage.vala 2014-10-18 00:49:47 +0000 |
3434 | @@ -604,6 +604,10 @@ |
3435 | return false; |
3436 | } |
3437 | |
3438 | + public override bool is_map_display_enabled () { |
3439 | + return true; |
3440 | + } |
3441 | + |
3442 | private void on_show_sidebar () { |
3443 | var app = AppWindow.get_instance () as LibraryWindow; |
3444 | app.set_metadata_sidebar_visible (!app.is_metadata_sidebar_visible ()); |
3445 | |
3446 | === modified file 'src/MediaDataRepresentation.vala' |
3447 | --- src/MediaDataRepresentation.vala 2014-08-08 21:13:09 +0000 |
3448 | +++ src/MediaDataRepresentation.vala 2014-10-18 00:49:47 +0000 |
3449 | @@ -351,6 +351,7 @@ |
3450 | new Gee.TreeMultiMap < ImportID?, MediaSource > (ImportID.compare_func); |
3451 | private Gee.TreeSet < ImportID?> sorted_import_ids = new Gee.TreeSet < ImportID?> (ImportID.compare_func); |
3452 | private Gee.Set<MediaSource> flagged = new Gee.HashSet<MediaSource> (); |
3453 | + private Gee.Set<MediaSource> gps = new Gee.HashSet<MediaSource> (); |
3454 | |
3455 | // This signal is fired when MediaSources are added to the collection due to a successful import. |
3456 | // "items-added" and "contents-altered" will follow. |
3457 | @@ -379,6 +380,9 @@ |
3458 | } |
3459 | |
3460 | public virtual signal void flagged_contents_altered () { |
3461 | + } |
3462 | + |
3463 | + public virtual signal void gps_contents_altered () { |
3464 | } |
3465 | |
3466 | public MediaSourceCollection (string name, GetSourceDatabaseKey source_key_func) { |
3467 | @@ -421,6 +425,18 @@ |
3468 | return false; |
3469 | } |
3470 | |
3471 | + public static bool has_gps (Gee.Collection<MediaSource> media) { |
3472 | + foreach (MediaSource current_media in media) { |
3473 | + if (current_media is Photo) { |
3474 | + Photo photo = current_media as Photo; |
3475 | + if (photo.get_gps_coords ().has_gps > 0) |
3476 | + return true; |
3477 | + } |
3478 | + } |
3479 | + |
3480 | + return false; |
3481 | + } |
3482 | + |
3483 | public static bool has_video (Gee.Collection<MediaSource> media) { |
3484 | foreach (MediaSource current_media in media) { |
3485 | if (current_media is Video) { |
3486 | @@ -462,6 +478,10 @@ |
3487 | flagged_contents_altered (); |
3488 | } |
3489 | |
3490 | + protected virtual void notify_gps_contents_altered () { |
3491 | + gps_contents_altered (); |
3492 | + } |
3493 | + |
3494 | protected virtual void notify_media_import_starting (Gee.Collection<MediaSource> media) { |
3495 | media_import_starting (media); |
3496 | } |
3497 | @@ -474,6 +494,7 @@ |
3498 | Gee.ArrayList<MediaSource> to_trashcan = null; |
3499 | Gee.ArrayList<MediaSource> to_offline = null; |
3500 | bool flagged_altered = false; |
3501 | + bool gps_altered = false; |
3502 | foreach (DataObject object in items.keys) { |
3503 | Alteration alteration = items.get (object); |
3504 | MediaSource source = (MediaSource) object; |
3505 | @@ -505,6 +526,14 @@ |
3506 | else |
3507 | flagged_altered = flagged.remove (source) || flagged_altered; |
3508 | } |
3509 | + |
3510 | + Photo? photo = source as Photo; |
3511 | + if (photo != null) { |
3512 | + if (photo.get_gps_coords ().has_gps > 0) |
3513 | + gps_altered = gps.add (source) || gps_altered; |
3514 | + else |
3515 | + gps_altered = gps.remove (source) || gps_altered; |
3516 | + } |
3517 | } |
3518 | |
3519 | if (to_trashcan != null) |
3520 | @@ -514,7 +543,10 @@ |
3521 | get_offline_bin ().unlink_and_hold (to_offline); |
3522 | |
3523 | if (flagged_altered) |
3524 | - notify_flagged_contents_altered (); |
3525 | + notify_flagged_contents_altered (); |
3526 | + |
3527 | + if (gps_altered) |
3528 | + notify_gps_contents_altered (); |
3529 | |
3530 | base.items_altered (items); |
3531 | } |
3532 | @@ -523,6 +555,8 @@ |
3533 | Gee.Iterable<DataObject>? removed) { |
3534 | bool import_roll_changed = false; |
3535 | bool flagged_altered = false; |
3536 | + bool gps_altered = false; |
3537 | + |
3538 | if (added != null) { |
3539 | foreach (DataObject object in added) { |
3540 | MediaSource media = (MediaSource) object; |
3541 | @@ -545,6 +579,14 @@ |
3542 | else |
3543 | flagged_altered = flagged.remove (media) || flagged_altered; |
3544 | } |
3545 | + |
3546 | + Photo? photo = media as Photo; |
3547 | + if (photo != null) { |
3548 | + if (photo.get_gps_coords ().has_gps > 0) |
3549 | + gps_altered = gps.add (media) || gps_altered; |
3550 | + else |
3551 | + gps_altered = gps.remove (media) || gps_altered; |
3552 | + } |
3553 | } |
3554 | } |
3555 | |
3556 | @@ -567,6 +609,7 @@ |
3557 | } |
3558 | |
3559 | flagged_altered = flagged.remove (media) || flagged_altered; |
3560 | + gps_altered = gps.remove (media) || gps_altered; |
3561 | } |
3562 | } |
3563 | |
3564 | @@ -576,6 +619,9 @@ |
3565 | if (flagged_altered) |
3566 | notify_flagged_contents_altered (); |
3567 | |
3568 | + if (gps_altered) |
3569 | + notify_gps_contents_altered (); |
3570 | + |
3571 | base.notify_contents_altered (added, removed); |
3572 | } |
3573 | |
3574 | @@ -611,6 +657,10 @@ |
3575 | |
3576 | public Gee.Collection<MediaSource> get_flagged () { |
3577 | return flagged.read_only_view; |
3578 | + } |
3579 | + |
3580 | + public Gee.Collection<MediaSource> get_gps () { |
3581 | + return gps.read_only_view; |
3582 | } |
3583 | |
3584 | // The returned set of ImportID's is sorted from oldest to newest. |
3585 | |
3586 | === modified file 'src/MediaPage.vala' |
3587 | --- src/MediaPage.vala 2014-08-28 14:41:02 +0000 |
3588 | +++ src/MediaPage.vala 2014-10-18 00:49:47 +0000 |
3589 | @@ -96,28 +96,17 @@ |
3590 | } |
3591 | |
3592 | public abstract class MediaPage : CheckerboardPage { |
3593 | - public const int SORT_ORDER_ASCENDING = 0; |
3594 | - public const int SORT_ORDER_DESCENDING = 1; |
3595 | - |
3596 | - // steppings should divide evenly into (Thumbnail.MAX_SCALE - Thumbnail.MIN_SCALE) |
3597 | - public const int MANUAL_STEPPING = 16; |
3598 | - public const int SLIDER_STEPPING = 4; |
3599 | - |
3600 | - public enum SortBy { |
3601 | - MIN = 1, |
3602 | - TITLE = 1, |
3603 | - EXPOSURE_DATE = 2, |
3604 | - RATING = 3, |
3605 | - MAX = 3 |
3606 | - } |
3607 | - |
3608 | - protected class ZoomSliderAssembly : Gtk.ToolItem { |
3609 | - private Gtk.Scale slider; |
3610 | + public class ZoomSliderAssembly : Gtk.ToolItem { |
3611 | + public Gtk.Scale slider; |
3612 | private Gtk.Adjustment adjustment; |
3613 | - |
3614 | public signal void zoom_changed (); |
3615 | - |
3616 | + public int max_scale; |
3617 | + public int min_scale; |
3618 | + public int stepping; |
3619 | public ZoomSliderAssembly () { |
3620 | + max_scale = Thumbnail.MAX_SCALE; |
3621 | + min_scale = Thumbnail.MIN_SCALE; |
3622 | + stepping = SLIDER_STEPPING; |
3623 | Gtk.Box zoom_group = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 0); |
3624 | |
3625 | Gtk.Image zoom_out = new Gtk.Image.from_icon_name (Resources.ICON_ZOOM_OUT, Gtk.IconSize.MENU); |
3626 | @@ -132,8 +121,8 @@ |
3627 | // virgin ZoomSliderAssemblies are created such that they have whatever value is |
3628 | // persisted in the configuration system for the photo thumbnail scale |
3629 | int persisted_scale = Config.Facade.get_instance ().get_photo_thumbnail_scale (); |
3630 | - adjustment = new Gtk.Adjustment (ZoomSliderAssembly.scale_to_slider (persisted_scale), 0, |
3631 | - ZoomSliderAssembly.scale_to_slider (Thumbnail.MAX_SCALE), 1, 10, 0); |
3632 | + adjustment = new Gtk.Adjustment (scale_to_slider (persisted_scale), 0, |
3633 | + scale_to_slider (get_max_scale ()), 1, 10, 0); |
3634 | |
3635 | slider = new Gtk.Scale (Gtk.Orientation.HORIZONTAL, adjustment); |
3636 | slider.value_changed.connect (on_slider_changed); |
3637 | @@ -155,18 +144,37 @@ |
3638 | add (zoom_group); |
3639 | } |
3640 | |
3641 | - public static double scale_to_slider (int value) { |
3642 | - assert (value >= Thumbnail.MIN_SCALE); |
3643 | - assert (value <= Thumbnail.MAX_SCALE); |
3644 | - |
3645 | - return (double) ((value - Thumbnail.MIN_SCALE) / SLIDER_STEPPING); |
3646 | - } |
3647 | - |
3648 | - public static int slider_to_scale (double value) { |
3649 | - int res = ((int) (value * SLIDER_STEPPING)) + Thumbnail.MIN_SCALE; |
3650 | - |
3651 | - assert (res >= Thumbnail.MIN_SCALE); |
3652 | - assert (res <= Thumbnail.MAX_SCALE); |
3653 | + public void set_slider_scale (int min, int max, int start) { |
3654 | + this.min_scale = min; |
3655 | + this.max_scale = max; |
3656 | + slider.adjustment = new Gtk.Adjustment (scale_to_slider (start), 0, |
3657 | + scale_to_slider (get_max_scale ()), 1, 10, 0); |
3658 | + } |
3659 | + |
3660 | + public virtual int get_max_scale () { |
3661 | + return max_scale; |
3662 | + } |
3663 | + |
3664 | + public virtual int get_min_scale () { |
3665 | + return min_scale; |
3666 | + } |
3667 | + |
3668 | + public virtual int get_stepping () { |
3669 | + return stepping; |
3670 | + } |
3671 | + |
3672 | + public double scale_to_slider (int value) { |
3673 | + assert (value >= get_min_scale ()); |
3674 | + assert (value <= get_max_scale ()); |
3675 | + |
3676 | + return (double) ((value - get_min_scale ()) / get_stepping ()); |
3677 | + } |
3678 | + |
3679 | + public int slider_to_scale (double value) { |
3680 | + int res = ((int) (value * get_stepping ())) + get_min_scale (); |
3681 | + |
3682 | + assert (res >= get_min_scale ()); |
3683 | + assert (res <= get_max_scale ()); |
3684 | |
3685 | return res; |
3686 | } |
3687 | @@ -186,11 +194,11 @@ |
3688 | } |
3689 | |
3690 | public void snap_to_min () { |
3691 | - slider.set_value (scale_to_slider (Thumbnail.MIN_SCALE)); |
3692 | + slider.set_value (scale_to_slider (get_min_scale ())); |
3693 | } |
3694 | |
3695 | public void snap_to_max () { |
3696 | - slider.set_value (scale_to_slider (Thumbnail.MAX_SCALE)); |
3697 | + slider.set_value (scale_to_slider (get_max_scale ())); |
3698 | } |
3699 | |
3700 | public void increase_step () { |
3701 | @@ -223,6 +231,22 @@ |
3702 | } |
3703 | } |
3704 | |
3705 | + public const int SORT_ORDER_ASCENDING = 0; |
3706 | + public const int SORT_ORDER_DESCENDING = 1; |
3707 | + |
3708 | + // steppings should divide evenly into (Thumbnail.MAX_SCALE - Thumbnail.MIN_SCALE) |
3709 | + public const int MANUAL_STEPPING = 16; |
3710 | + public const int SLIDER_STEPPING = 4; |
3711 | + |
3712 | + |
3713 | + public enum SortBy { |
3714 | + MIN = 1, |
3715 | + TITLE = 1, |
3716 | + EXPOSURE_DATE = 2, |
3717 | + RATING = 3, |
3718 | + MAX = 3 |
3719 | + } |
3720 | + |
3721 | private ZoomSliderAssembly? connected_slider = null; |
3722 | private DragAndDropHandler dnd_handler = null; |
3723 | private MediaViewTracker tracker; |
3724 | @@ -236,14 +260,14 @@ |
3725 | |
3726 | get_view ().freeze_notifications (); |
3727 | get_view ().set_property (CheckerboardItem.PROP_SHOW_TITLES, |
3728 | - Config.Facade.get_instance ().get_display_photo_titles ()); |
3729 | + Config.Facade.get_instance ().get_display_photo_titles ()); |
3730 | get_view ().set_property (CheckerboardItem.PROP_SHOW_COMMENTS, |
3731 | - Config.Facade.get_instance ().get_display_photo_comments ()); |
3732 | + Config.Facade.get_instance ().get_display_photo_comments ()); |
3733 | get_view ().set_property (Thumbnail.PROP_SHOW_TAGS, |
3734 | - Config.Facade.get_instance ().get_display_photo_tags ()); |
3735 | + Config.Facade.get_instance ().get_display_photo_tags ()); |
3736 | get_view ().set_property (Thumbnail.PROP_SIZE, get_thumb_size ()); |
3737 | get_view ().set_property (Thumbnail.PROP_SHOW_RATINGS, |
3738 | - Config.Facade.get_instance ().get_display_photo_ratings ()); |
3739 | + Config.Facade.get_instance ().get_display_photo_ratings ()); |
3740 | get_view ().thaw_notifications (); |
3741 | |
3742 | // enable drag-and-drop export of media |
3743 | @@ -490,7 +514,7 @@ |
3744 | } |
3745 | |
3746 | protected override void on_rating_widget_activate () { |
3747 | - on_set_rating (Resources.int_to_rating(rating_menu_item.rating_value)); |
3748 | + on_set_rating (Resources.int_to_rating (rating_menu_item.rating_value)); |
3749 | } |
3750 | |
3751 | private void update_development_menu_item_sensitivity () { |
3752 | @@ -686,7 +710,7 @@ |
3753 | break; |
3754 | |
3755 | case "5": |
3756 | - on_set_rating (Rating.FIVE); |
3757 | + on_set_rating (Rating.FIVE); |
3758 | break; |
3759 | |
3760 | case "0": |
3761 | @@ -900,7 +924,7 @@ |
3762 | |
3763 | if (get_view ().get_selected_count () > 0) { |
3764 | get_command_manager ().execute (new TrashUntrashPhotosCommand ( |
3765 | - (Gee.Collection<MediaSource>) get_view ().get_selected_sources (), true)); |
3766 | + (Gee.Collection<MediaSource>) get_view ().get_selected_sources (), true)); |
3767 | } |
3768 | |
3769 | if ((restore_point != null) && (get_view ().contains (restore_point))) { |
3770 | @@ -1171,7 +1195,7 @@ |
3771 | } |
3772 | |
3773 | public static Gtk.ToolButton create_sidebar_button () { |
3774 | - var show_sidebar_button = new Gtk.ToolButton (null,null); |
3775 | + var show_sidebar_button = new Gtk.ToolButton (null, null); |
3776 | show_sidebar_button.set_icon_name (Resources.SHOW_PANE); |
3777 | show_sidebar_button.set_label (Resources.TOGGLE_METAPANE_LABEL); |
3778 | show_sidebar_button.set_tooltip_text (Resources.TOGGLE_METAPANE_TOOLTIP); |
3779 | |
3780 | === modified file 'src/Page.vala' |
3781 | --- src/Page.vala 2014-09-29 15:08:44 +0000 |
3782 | +++ src/Page.vala 2014-10-18 00:49:47 +0000 |
3783 | @@ -166,6 +166,10 @@ |
3784 | protected virtual void on_rating_widget_activate () { |
3785 | } |
3786 | |
3787 | + public virtual bool is_map_display_enabled () { |
3788 | + return false; |
3789 | + } |
3790 | + |
3791 | // This is called by the page |
3792 | // controller when it has removed this page ... pages should override |
3793 | // this (or the signal) to clean up |
3794 | @@ -1323,6 +1327,10 @@ |
3795 | Resources.style_widget (this, Resources.PAGE_STYLESHEET); |
3796 | } |
3797 | |
3798 | + protected CheckerboardPage.no_layout (string page_name) { |
3799 | + base (page_name); |
3800 | + } |
3801 | + |
3802 | public void init_item_context_menu (string path) { |
3803 | item_context_menu_path = path; |
3804 | } |
3805 | @@ -1379,7 +1387,7 @@ |
3806 | KeyboardModifiers modifiers) { |
3807 | } |
3808 | |
3809 | - public CheckerboardLayout get_checkerboard_layout () { |
3810 | + public CheckerboardLayout? get_checkerboard_layout () { |
3811 | return layout; |
3812 | } |
3813 | |
3814 | @@ -1391,7 +1399,8 @@ |
3815 | } |
3816 | |
3817 | public override void switching_from () { |
3818 | - layout.set_in_view (false); |
3819 | + if (layout != null) |
3820 | + layout.set_in_view (false); |
3821 | get_search_view_filter ().refresh.disconnect (on_view_filter_refresh); |
3822 | |
3823 | // unselect everything so selection won't persist after page loses focus |
3824 | @@ -1400,7 +1409,8 @@ |
3825 | } |
3826 | |
3827 | public override void switched_to () { |
3828 | - layout.set_in_view (true); |
3829 | + if (layout != null) |
3830 | + layout.set_in_view (true); |
3831 | get_search_view_filter ().refresh.connect (on_view_filter_refresh); |
3832 | on_view_filter_refresh (); |
3833 | |
3834 | @@ -1446,7 +1456,7 @@ |
3835 | update_view_filter_message (); |
3836 | } |
3837 | |
3838 | - private void update_view_filter_message () { |
3839 | + protected virtual void update_view_filter_message () { |
3840 | var window = AppWindow.get_instance () as LibraryWindow; |
3841 | warn_if_fail (window != null); |
3842 | if (window != null) |
3843 | @@ -1462,15 +1472,19 @@ |
3844 | } |
3845 | |
3846 | public void set_page_message (string message) { |
3847 | - layout.set_message (message); |
3848 | - if (is_in_view ()) |
3849 | - layout.queue_draw (); |
3850 | + if (layout != null) { |
3851 | + layout.set_message (message); |
3852 | + if (is_in_view ()) |
3853 | + layout.queue_draw (); |
3854 | + } |
3855 | } |
3856 | |
3857 | public void unset_page_message () { |
3858 | - layout.unset_message (); |
3859 | - if (is_in_view ()) |
3860 | - layout.queue_draw (); |
3861 | + if (layout != null) { |
3862 | + layout.unset_message (); |
3863 | + if (is_in_view ()) |
3864 | + layout.queue_draw (); |
3865 | + } |
3866 | } |
3867 | |
3868 | public override void set_page_name (string name) { |
3869 | |
3870 | === modified file 'src/Photo.vala' |
3871 | --- src/Photo.vala 2014-08-25 01:41:46 +0000 |
3872 | +++ src/Photo.vala 2014-10-18 00:49:47 +0000 |
3873 | @@ -158,7 +158,7 @@ |
3874 | // particular photo without modifying the backing image file. The interface allows for |
3875 | // transformations to be stored persistently elsewhere or in memory until they're committed en |
3876 | // masse to an image file. |
3877 | -public abstract class Photo : PhotoSource, Dateable { |
3878 | +public abstract class Photo : PhotoSource, Dateable, Positionable { |
3879 | // Need to use "thumb" rather than "photo" for historical reasons -- this name is used |
3880 | // directly to load thumbnails from disk by already-existing filenames |
3881 | public const string TYPENAME = "thumb"; |
3882 | @@ -241,7 +241,7 @@ |
3883 | |
3884 | public PhotoTransformationStateImpl (Photo photo, Orientation orientation, |
3885 | Gee.HashMap<string, KeyValueMap>? transformations, PixelTransformer? transformer, |
3886 | - PixelTransformationBundle? adjustments,Gee.HashMap<string, KeyValueMap>? original_transformations, bool enhanced) { |
3887 | + PixelTransformationBundle? adjustments, Gee.HashMap<string, KeyValueMap>? original_transformations, bool enhanced) { |
3888 | this.photo = photo; |
3889 | this.orientation = orientation; |
3890 | this.transformations = copy_transformations (transformations); |
3891 | @@ -266,7 +266,7 @@ |
3892 | |
3893 | public Gee.HashMap<string, KeyValueMap>? get_transformations () { |
3894 | return copy_transformations (transformations); |
3895 | - } |
3896 | + } |
3897 | |
3898 | public Gee.HashMap<string, KeyValueMap>? get_original_transformations () { |
3899 | return copy_transformations (original_transformations); |
3900 | @@ -1171,6 +1171,7 @@ |
3901 | Orientation orientation = Orientation.TOP_LEFT; |
3902 | time_t exposure_time = 0; |
3903 | string title = ""; |
3904 | + GpsCoords gps_coords = GpsCoords(); |
3905 | string comment = ""; |
3906 | Rating rating = Rating.UNRATED; |
3907 | |
3908 | @@ -1186,6 +1187,7 @@ |
3909 | |
3910 | orientation = detected.metadata.get_orientation (); |
3911 | title = detected.metadata.get_title (); |
3912 | + gps_coords = detected.metadata.get_gps_coords(); |
3913 | comment = detected.metadata.get_comment (); |
3914 | params.keywords = detected.metadata.get_keywords (); |
3915 | rating = detected.metadata.get_rating (); |
3916 | @@ -1221,6 +1223,7 @@ |
3917 | params.row.flags = 0; |
3918 | params.row.master.file_format = detected.file_format; |
3919 | params.row.title = title; |
3920 | + params.row.gps_coords = gps_coords; |
3921 | params.row.comment = comment; |
3922 | params.row.rating = rating; |
3923 | |
3924 | @@ -1261,6 +1264,7 @@ |
3925 | params.row.flags = 0; |
3926 | params.row.master.file_format = PhotoFileFormat.JFIF; |
3927 | params.row.title = null; |
3928 | + params.row.gps_coords = GpsCoords(); |
3929 | params.row.comment = null; |
3930 | params.row.rating = Rating.UNRATED; |
3931 | |
3932 | @@ -1414,6 +1418,8 @@ |
3933 | updated_row.master.original_orientation = backing.original_orientation; |
3934 | } |
3935 | |
3936 | + GpsCoords gps_coords = GpsCoords (); |
3937 | + |
3938 | if (detected.metadata != null) { |
3939 | MetadataDateTime? date_time = detected.metadata.get_exposure_date_time (); |
3940 | if (date_time != null && updated_row.exposure_time != date_time.get_timestamp ()) |
3941 | @@ -1422,6 +1428,10 @@ |
3942 | if (updated_row.title != detected.metadata.get_title ()) |
3943 | list += "metadata:name"; |
3944 | |
3945 | + gps_coords = detected.metadata.get_gps_coords (); |
3946 | + if (updated_row.gps_coords != gps_coords) |
3947 | + list += "metadata:gps"; |
3948 | + |
3949 | if (updated_row.comment != detected.metadata.get_comment ()) |
3950 | list += "metadata:comment"; |
3951 | |
3952 | @@ -1442,6 +1452,7 @@ |
3953 | if (date_time != null) |
3954 | updated_row.exposure_time = date_time.get_timestamp (); |
3955 | |
3956 | + updated_row.gps_coords = gps_coords; |
3957 | updated_row.title = detected.metadata.get_title (); |
3958 | updated_row.comment = detected.metadata.get_comment (); |
3959 | updated_row.rating = detected.metadata.get_rating (); |
3960 | @@ -1551,6 +1562,7 @@ |
3961 | } |
3962 | |
3963 | if (reimport_state.metadata != null) { |
3964 | + set_gps_coords (reimport_state.metadata.get_gps_coords()); |
3965 | set_title (reimport_state.metadata.get_title ()); |
3966 | set_comment (reimport_state.metadata.get_comment ()); |
3967 | set_rating (reimport_state.metadata.get_rating ()); |
3968 | @@ -1961,6 +1973,12 @@ |
3969 | return row.event_id; |
3970 | } |
3971 | |
3972 | + public string get_location () { |
3973 | + lock (row) { |
3974 | + return row.location; |
3975 | + } |
3976 | + } |
3977 | + |
3978 | // This is NOT thread-safe. |
3979 | public inline int64 get_raw_event_id () { |
3980 | return row.event_id.id; |
3981 | @@ -2132,7 +2150,7 @@ |
3982 | |
3983 | if (committed) |
3984 | notify_altered (new Alteration ("metadata", "master-dirty")); |
3985 | - } |
3986 | + } |
3987 | |
3988 | public bool is_enhanced () { |
3989 | lock (row) { |
3990 | @@ -2216,6 +2234,17 @@ |
3991 | } |
3992 | } |
3993 | |
3994 | + public bool set_location (string? location) { |
3995 | + lock (row) { |
3996 | + bool committed = PhotoTable.get_instance ().set_location (row.photo_id, location); |
3997 | + |
3998 | + if (committed) |
3999 | + row.location = location; |
4000 | + |
4001 | + return committed; |
4002 | + } |
4003 | + } |
4004 | + |
4005 | public override string to_string () { |
4006 | return "[%s] %s%s".printf (get_photo_id ().id.to_string (), get_master_reader ().get_filepath (), |
4007 | !is_master_baseline () ? " (" + get_actual_file ().get_path () + ")" : ""); |
4008 | @@ -2552,7 +2581,7 @@ |
4009 | |
4010 | return adjustments.copy (); |
4011 | } |
4012 | - } |
4013 | + } |
4014 | |
4015 | // This method *must* be called with row locked. |
4016 | private PixelTransformationBundle locked_original_color_adjustments () { |
4017 | @@ -2563,14 +2592,14 @@ |
4018 | map = row.original_transforms.get ("adjustments"); |
4019 | if (map != null) |
4020 | map = map.copy (); |
4021 | - } else |
4022 | + } else |
4023 | map = new KeyValueMap ("adjustments"); |
4024 | |
4025 | if (map == null) |
4026 | original_adjustments.set_to_identity (); |
4027 | else |
4028 | original_adjustments.load (map); |
4029 | - |
4030 | + |
4031 | return original_adjustments; |
4032 | } |
4033 | |
4034 | @@ -2580,7 +2609,7 @@ |
4035 | lock (row) { |
4036 | KeyValueMap map = get_transformation ("adjustments"); |
4037 | if (map == null) |
4038 | - map = new KeyValueMap("adjustments"); |
4039 | + map = new KeyValueMap ("adjustments"); |
4040 | return map; |
4041 | } |
4042 | } |
4043 | @@ -2602,7 +2631,7 @@ |
4044 | return get_color_adjustments ().get_transformation (type); |
4045 | } |
4046 | |
4047 | - public void set_color_adjustments (PixelTransformationBundle new_adjustments) { |
4048 | + public void set_color_adjustments (PixelTransformationBundle new_adjustments) { |
4049 | /* if every transformation in 'new_adjustments' is the identity, then just remove all |
4050 | adjustments from the database */ |
4051 | set_enhanced (false); |
4052 | @@ -2749,6 +2778,28 @@ |
4053 | } |
4054 | } |
4055 | |
4056 | + public GpsCoords get_gps_coords () { |
4057 | + lock (row) { |
4058 | + return row.gps_coords; |
4059 | + } |
4060 | + } |
4061 | + |
4062 | + public void set_gps_coords (GpsCoords gps_coords) { |
4063 | + DatabaseError dberr = null; |
4064 | + lock (row) { |
4065 | + try { |
4066 | + PhotoTable.get_instance ().set_gps_coords (row.photo_id, gps_coords); |
4067 | + row.gps_coords = gps_coords; |
4068 | + } catch (DatabaseError err) { |
4069 | + dberr = err; |
4070 | + } |
4071 | + } |
4072 | + if (dberr == null) |
4073 | + notify_altered (new Alteration ("metadata", "gps")); |
4074 | + else |
4075 | + warning ("Unable to write gps coordinates for %s: %s", to_string (), dberr.message); |
4076 | + } |
4077 | + |
4078 | public bool has_alterations () { |
4079 | MetadataDateTime? date_time = null; |
4080 | string? title = null; |
4081 | @@ -2930,7 +2981,7 @@ |
4082 | |
4083 | return PhotoTable.get_instance ().set_original_transforms (row.photo_id, trans); |
4084 | } |
4085 | - } |
4086 | + } |
4087 | |
4088 | private bool clear_original_transforms () { |
4089 | lock (row) { |
4090 | @@ -3575,7 +3626,7 @@ |
4091 | debug ("Exporting full-sized copy of %s to %s", to_string (), writer.get_filepath ()); |
4092 | |
4093 | export_reader.get_file ().copy (dest_file, |
4094 | - FileCopyFlags.OVERWRITE | FileCopyFlags.TARGET_DEFAULT_PERMS, null, null); |
4095 | + FileCopyFlags.OVERWRITE | FileCopyFlags.TARGET_DEFAULT_PERMS, null, null); |
4096 | |
4097 | // If asking for an full-sized file and there are no alterations (transformations or EXIF) |
4098 | // *and* this is a copy of the original backing *and* there's no user metadata or title *and* metadata should be exported, then done |
4099 | @@ -4422,7 +4473,7 @@ |
4100 | apply_timer.stop (); |
4101 | debug ("Auto-Enhance apply time: %f sec", apply_timer.elapsed ()); |
4102 | #endif |
4103 | - set_enhanced(true); |
4104 | + set_enhanced (true); |
4105 | return true; |
4106 | } |
4107 | |
4108 | @@ -4437,8 +4488,7 @@ |
4109 | transformer = null; |
4110 | if (result) |
4111 | notify_altered (new Alteration ("image", "color-adjustments")); |
4112 | - } |
4113 | - else |
4114 | + } else |
4115 | set_color_adjustments (locked_original_color_adjustments ()); |
4116 | set_enhanced (false); |
4117 | return true; |
4118 | @@ -4971,6 +5021,11 @@ |
4119 | this.import_keywords = null; |
4120 | |
4121 | thumbnail_scheduler = new OneShotScheduler ("LibraryPhoto", generate_thumbnails); |
4122 | + // import gps coords of photos imported with prior versions of shotwell |
4123 | + if (row.gps_coords.has_gps == -1) { |
4124 | + var gps_import_scheduler = new OneShotScheduler ("LibraryPhoto", import_gps_metadata); |
4125 | + gps_import_scheduler.at_priority_idle (Priority.LOW); |
4126 | + } |
4127 | |
4128 | // if marked in a state where they're held in an orphanage, rehydrate their backlinks |
4129 | if ((row.flags & (FLAG_TRASH | FLAG_OFFLINE)) != 0) |
4130 | @@ -5079,6 +5134,11 @@ |
4131 | global.notify_baseline_reimported (this, metadata); |
4132 | } |
4133 | |
4134 | + private void import_gps_metadata () { |
4135 | + GpsCoords gps_coords = get_metadata ().get_gps_coords (); |
4136 | + set_gps_coords (gps_coords); |
4137 | + } |
4138 | + |
4139 | private void generate_thumbnails () { |
4140 | try { |
4141 | ThumbnailCache.import_from_source (this, true); |
4142 | |
4143 | === modified file 'src/PhotoPage.vala' |
4144 | --- src/PhotoPage.vala 2014-09-13 03:34:09 +0000 |
4145 | +++ src/PhotoPage.vala 2014-10-18 00:49:47 +0000 |
4146 | @@ -567,6 +567,10 @@ |
4147 | app.set_metadata_sidebar_visible (!app.is_metadata_sidebar_visible ()); |
4148 | update_sidebar_action (!app.is_metadata_sidebar_visible ()); |
4149 | } |
4150 | + |
4151 | + public override bool is_map_display_enabled () { |
4152 | + return true; |
4153 | + } |
4154 | |
4155 | private void on_zoom_slider_value_changed () { |
4156 | ZoomState new_zoom_state = ZoomState.rescale (get_zoom_state (), zoom_slider.get_value ()); |
4157 | |
4158 | === modified file 'src/Resources.vala' |
4159 | --- src/Resources.vala 2014-10-07 03:15:08 +0000 |
4160 | +++ src/Resources.vala 2014-10-18 00:49:47 +0000 |
4161 | @@ -88,6 +88,13 @@ |
4162 | public const string PUBLISH = "applications-internet"; |
4163 | public const string EDIT_FLAG= "edit-flag"; |
4164 | public const string MERGE = "object-merge"; |
4165 | +public const string MAP_PAGE = "places"; |
4166 | + |
4167 | +public const string ICON_GPS_MARKER = "gps-marker.svg"; |
4168 | +public const string ICON_GPS_MARKER_SELECTED = "gps-marker-selected.svg"; |
4169 | +public const string MAP = "applications-geography"; |
4170 | +public const string MAP_GEOLOGY = "applications-geology"; |
4171 | +public const string MAP_EARTH = "earth_map.svg"; |
4172 | |
4173 | public const string ICON_APP = "multimedia-photo-manager"; |
4174 | public const string ICON_APP16 = "multimedia-photo-manager"; |
4175 | @@ -793,7 +800,8 @@ |
4176 | |
4177 | File icons_dir = AppDirs.get_resources_dir ().get_child ("icons"); |
4178 | add_stock_icon (icons_dir.get_child ("pin-toolbar.svg"), PIN_TOOLBAR); |
4179 | - |
4180 | + add_stock_icon (icons_dir.get_child ("earth_map.svg"), MAP_EARTH); |
4181 | + add_stock_icon_from_themed_icon (new GLib.ThemedIcon (MAP_PAGE), MAP_PAGE); |
4182 | add_stock_icon_from_themed_icon (new GLib.ThemedIcon (ADJUST), ADJUST); |
4183 | add_stock_icon_from_themed_icon (new GLib.ThemedIcon (ICON_SINGLE_PHOTO), ICON_SINGLE_PHOTO); |
4184 | add_stock_icon_from_themed_icon (new GLib.ThemedIcon (ICON_CAMERAS), ICON_CAMERAS); |
4185 | |
4186 | === modified file 'src/SearchFilter.vala' |
4187 | --- src/SearchFilter.vala 2014-08-28 12:44:53 +0000 |
4188 | +++ src/SearchFilter.vala 2014-10-18 00:49:47 +0000 |
4189 | @@ -345,8 +345,16 @@ |
4190 | private Gtk.SearchEntry search_entry; |
4191 | private Gtk.ComboBoxText rating_button; |
4192 | private SearchViewFilter? search_filter = null; |
4193 | - private Gtk.Toolbar toolbar; |
4194 | + public Gtk.Toolbar toolbar; |
4195 | + private Gtk.Label label_type; |
4196 | + private Gtk.Label label_flagged; |
4197 | private Gtk.Label label_rating; |
4198 | + private Gtk.ToggleToolButton toolbtn_photos; |
4199 | + private Gtk.ToggleToolButton toolbtn_videos; |
4200 | + private Gtk.ToggleToolButton toolbtn_raw; |
4201 | + private Gtk.ToggleToolButton toolbtn_flag; |
4202 | + private Gtk.SeparatorToolItem sepr_mediatype_flagged; |
4203 | + private Gtk.SeparatorToolItem sepr_flagged_rating; |
4204 | |
4205 | public SearchFilterToolbar () { |
4206 | toolbar = new Gtk.Toolbar (); |
4207 | @@ -361,6 +369,60 @@ |
4208 | close_item.activate.connect ( () => close ()); |
4209 | close_menu.append (close_item); |
4210 | |
4211 | + // Type label and toggles |
4212 | + label_type = new Gtk.Label (_ ("Type")); |
4213 | + Gtk.ToolItem label_type_item = new Gtk.ToolItem (); |
4214 | + label_type_item.add (label_type); |
4215 | + toolbar.insert (label_type_item, -1); |
4216 | + |
4217 | + toolbtn_photos = new Gtk.ToggleToolButton (); |
4218 | + var photos_icon = new Gtk.Image.from_icon_name ("folder-pictures", Gtk.IconSize.MENU); |
4219 | + photos_icon.pixel_size = 16; |
4220 | + toolbtn_photos.set_icon_widget (photos_icon); |
4221 | + toolbtn_photos.tooltip_text = _ ("Photos"); |
4222 | + toolbtn_photos.toggled.connect (on_photos_toggled); |
4223 | + |
4224 | + toolbtn_videos = new Gtk.ToggleToolButton (); |
4225 | + var videos_icon = new Gtk.Image.from_icon_name ("folder-videos", Gtk.IconSize.MENU); |
4226 | + videos_icon.pixel_size = 16; |
4227 | + toolbtn_videos.set_icon_widget (videos_icon); |
4228 | + toolbtn_videos.tooltip_text = _ ("Videos"); |
4229 | + toolbtn_videos.toggled.connect (on_videos_toggled); |
4230 | + |
4231 | + toolbtn_raw = new Gtk.ToggleToolButton (); |
4232 | + var raw_icon = new Gtk.Image.from_icon_name ("accessories-camera", Gtk.IconSize.MENU); |
4233 | + raw_icon.pixel_size = 16; |
4234 | + toolbtn_raw.set_icon_widget (raw_icon); |
4235 | + toolbtn_raw.tooltip_text = _ ("RAW photos"); |
4236 | + toolbtn_raw.toggled.connect (on_raw_toggled); |
4237 | + |
4238 | + toolbar.insert (toolbtn_photos, -1); |
4239 | + toolbar.insert (toolbtn_videos, -1); |
4240 | + toolbar.insert (toolbtn_raw, -1); |
4241 | + |
4242 | + // separator |
4243 | + sepr_mediatype_flagged = new Gtk.SeparatorToolItem (); |
4244 | + toolbar.insert (sepr_mediatype_flagged, -1); |
4245 | + |
4246 | + // Flagged label and toggle |
4247 | + label_flagged = new Gtk.Label (_ ("Flagged")); |
4248 | + Gtk.ToolItem label_flagged_item = new Gtk.ToolItem (); |
4249 | + label_flagged_item.add (label_flagged); |
4250 | + toolbar.insert (label_flagged_item, -1); |
4251 | + |
4252 | + toolbtn_flag = new Gtk.ToggleToolButton (); |
4253 | + |
4254 | + var flag_icon = new Gtk.Image.from_icon_name (Resources.ICON_FLAGGED_PAGE, Gtk.IconSize.MENU); |
4255 | + flag_icon.pixel_size = 16; |
4256 | + toolbtn_flag.set_icon_widget (flag_icon); |
4257 | + toolbtn_flag.tooltip_text = _ ("Flagged"); |
4258 | + toolbtn_flag.toggled.connect (on_flagged_toggled); |
4259 | + toolbar.insert (toolbtn_flag, -1); |
4260 | + |
4261 | + // separator |
4262 | + sepr_flagged_rating = new Gtk.SeparatorToolItem (); |
4263 | + toolbar.insert (sepr_flagged_rating, -1); |
4264 | + |
4265 | // Rating label and button |
4266 | label_rating = new Gtk.Label (_ ("Rating")); |
4267 | Gtk.ToolItem label_rating_item = new Gtk.ToolItem (); |
4268 | @@ -427,6 +489,22 @@ |
4269 | return false; |
4270 | } |
4271 | |
4272 | + private void on_flagged_toggled () { |
4273 | + update (); |
4274 | + } |
4275 | + |
4276 | + private void on_videos_toggled () { |
4277 | + update (); |
4278 | + } |
4279 | + |
4280 | + private void on_photos_toggled () { |
4281 | + update (); |
4282 | + } |
4283 | + |
4284 | + private void on_raw_toggled () { |
4285 | + update (); |
4286 | + } |
4287 | + |
4288 | private void on_search_text_changed () { |
4289 | update (); |
4290 | } |
4291 | @@ -487,6 +565,10 @@ |
4292 | assert (null != search_filter); |
4293 | |
4294 | search_filter.set_search_filter (search_entry.text); |
4295 | + search_filter.flagged = toolbtn_flag.active; |
4296 | + search_filter.show_media_video = toolbtn_videos.active; |
4297 | + search_filter.show_media_photos = toolbtn_photos.active; |
4298 | + search_filter.show_media_raw = toolbtn_raw.active; |
4299 | |
4300 | search_filter.set_rating_filter (filter); |
4301 | rating_button.tooltip_text = Resources.get_rating_filter_tooltip (filter); |
4302 | @@ -498,6 +580,21 @@ |
4303 | rating_button.visible = ((criteria & SearchFilterCriteria.RATING) != 0); |
4304 | label_rating.visible = ((criteria & SearchFilterCriteria.RATING) != 0); |
4305 | |
4306 | + label_flagged.visible = ((criteria & SearchFilterCriteria.FLAG) != 0); |
4307 | + toolbtn_flag.visible = ((criteria & SearchFilterCriteria.FLAG) != 0); |
4308 | + |
4309 | + label_type.visible = ((criteria & SearchFilterCriteria.MEDIA) != 0); |
4310 | + toolbtn_photos.visible = ((criteria & SearchFilterCriteria.MEDIA) != 0); |
4311 | + toolbtn_videos.visible = ((criteria & SearchFilterCriteria.MEDIA) != 0); |
4312 | + toolbtn_raw.visible = ((criteria & SearchFilterCriteria.MEDIA) != 0); |
4313 | + |
4314 | + // Ticket #3290, part IV - ensure that the separators |
4315 | + // are shown and/or hidden as needed. |
4316 | + sepr_mediatype_flagged.visible = (label_type.visible && label_flagged.visible); |
4317 | + |
4318 | + sepr_flagged_rating.visible = ((label_type.visible && label_rating.visible) || |
4319 | + (label_flagged.visible && label_rating.visible)); |
4320 | + |
4321 | // Send update to view collection. |
4322 | search_filter.refresh (); |
4323 | } |
4324 | |
4325 | === modified file 'src/Thumbnail.vala' |
4326 | --- src/Thumbnail.vala 2014-08-23 09:56:14 +0000 |
4327 | +++ src/Thumbnail.vala 2014-10-18 00:49:47 +0000 |
4328 | @@ -34,17 +34,18 @@ |
4329 | |
4330 | private const int HQ_IMPROVEMENT_MSEC = 100; |
4331 | |
4332 | + protected int scale; |
4333 | + protected Cancellable cancellable = null; |
4334 | + protected Dimensions dim; |
4335 | + protected Dimensions original_dim; |
4336 | + // this is cached locally because there are situations where the constant calls to is_exposed () |
4337 | + // was showing up in sysprof |
4338 | + protected bool exposure = false; |
4339 | + protected Gdk.Pixbuf unscaled_pixbuf = null; |
4340 | + |
4341 | private MediaSource media; |
4342 | - private int scale; |
4343 | - private Dimensions original_dim; |
4344 | - private Dimensions dim; |
4345 | - private Gdk.Pixbuf unscaled_pixbuf = null; |
4346 | - private Cancellable cancellable = null; |
4347 | private bool hq_scheduled = false; |
4348 | private bool hq_reschedule = false; |
4349 | - // this is cached locally because there are situations where the constant calls to is_exposed () |
4350 | - // was showing up in sysprof |
4351 | - private bool exposure = false; |
4352 | |
4353 | public Thumbnail (MediaSource media, int scale = DEFAULT_SCALE) { |
4354 | base (media, media.get_dimensions ().get_scaled (scale, true), media.get_name (), |
4355 | @@ -251,7 +252,7 @@ |
4356 | base.notify_collection_property_set (name, old, val); |
4357 | } |
4358 | |
4359 | - private void resize (int new_scale) { |
4360 | + public virtual void resize (int new_scale) { |
4361 | assert (new_scale >= MIN_SCALE); |
4362 | assert (new_scale <= MAX_SCALE); |
4363 | |
4364 | @@ -328,7 +329,7 @@ |
4365 | return false; |
4366 | } |
4367 | |
4368 | - private void cancel_async_fetch () { |
4369 | + protected void cancel_async_fetch () { |
4370 | // cancel outstanding I/O |
4371 | if (cancellable != null) |
4372 | cancellable.cancel (); |
4373 | |
4374 | === modified file 'src/camera/ImportPage.vala' |
4375 | --- src/camera/ImportPage.vala 2014-09-27 23:06:48 +0000 |
4376 | +++ src/camera/ImportPage.vala 2014-10-18 00:49:47 +0000 |
4377 | @@ -169,7 +169,7 @@ |
4378 | |
4379 | return !is_string_empty (title) ? title : get_filename (); |
4380 | } |
4381 | - |
4382 | + |
4383 | public override string get_typename () { |
4384 | return "photoimport"; |
4385 | } |
4386 | |
4387 | === modified file 'src/core/SourceInterfaces.vala' |
4388 | --- src/core/SourceInterfaces.vala 2014-08-08 21:13:09 +0000 |
4389 | +++ src/core/SourceInterfaces.vala 2014-10-18 00:49:47 +0000 |
4390 | @@ -42,3 +42,19 @@ |
4391 | } |
4392 | } |
4393 | |
4394 | +// Positionable DataSources provide a globally locatable point in longitude and latitude degrees |
4395 | + |
4396 | +public struct GpsCoords { |
4397 | + public int has_gps; |
4398 | + public double latitude; |
4399 | + public double longitude; |
4400 | + public bool equals (ref GpsCoords gps) { |
4401 | + return (has_gps == 0 && gps.has_gps == 0) || (latitude == gps.latitude && longitude == gps.longitude); |
4402 | + } |
4403 | +} |
4404 | + |
4405 | +public interface Positionable : DataSource { |
4406 | + public abstract GpsCoords get_gps_coords (); |
4407 | + public abstract void set_gps_coords(GpsCoords gps_coords); |
4408 | +} |
4409 | + |
4410 | |
4411 | === modified file 'src/db/DatabaseTable.vala' |
4412 | --- src/db/DatabaseTable.vala 2014-08-15 07:12:57 +0000 |
4413 | +++ src/db/DatabaseTable.vala 2014-10-18 00:49:47 +0000 |
4414 | @@ -21,7 +21,7 @@ |
4415 | * tables are created on demand and tables and columns are easily ignored when already present. |
4416 | * However, the change should be noted in upgrade_database () as a comment. |
4417 | ***/ |
4418 | - public const int SCHEMA_VERSION = 21; |
4419 | + public const int SCHEMA_VERSION = 22; |
4420 | |
4421 | protected static Sqlite.Database db; |
4422 | |
4423 | @@ -269,6 +269,18 @@ |
4424 | if (res != Sqlite.DONE) |
4425 | throw_error ("DatabaseTable.update_int64_by_id_2 %s.%s".printf (table_name, column), res); |
4426 | } |
4427 | + |
4428 | + protected void update_double_by_id_2(int64 id, string column, double value) throws DatabaseError { |
4429 | + Sqlite.Statement stmt; |
4430 | + prepare_update_by_id(id, column, out stmt); |
4431 | + |
4432 | + int res = stmt.bind_double(1, value); |
4433 | + assert(res == Sqlite.OK); |
4434 | + |
4435 | + res = stmt.step(); |
4436 | + if (res != Sqlite.DONE) |
4437 | + throw_error("DatabaseTable.update_double_by_id_2 %s.%s".printf(table_name, column), res); |
4438 | + } |
4439 | |
4440 | protected void delete_by_id (int64 id) throws DatabaseError { |
4441 | Sqlite.Statement stmt; |
4442 | |
4443 | === modified file 'src/db/Db.vala' |
4444 | --- src/db/Db.vala 2014-08-15 07:12:57 +0000 |
4445 | +++ src/db/Db.vala 2014-10-18 00:49:47 +0000 |
4446 | @@ -372,6 +372,22 @@ |
4447 | } |
4448 | version = 21; |
4449 | |
4450 | + // |
4451 | + // Version 22: |
4452 | + // * Add has_gps, gps_lat and gps_lon columns to PhotoTable |
4453 | + if (!DatabaseTable.ensure_column("PhotoTable", "has_gps", "INTEGER DEFAULT -1", |
4454 | + "upgrade_database: adding gps_lat column to PhotoTable") |
4455 | + || !DatabaseTable.ensure_column("PhotoTable", "gps_lat", "REAL", |
4456 | + "upgrade_database: adding gps_lat column to PhotoTable") |
4457 | + || !DatabaseTable.ensure_column("PhotoTable", "gps_lon", "REAL", |
4458 | + "upgrade_database: adding gps_lon column to PhotoTable") |
4459 | + || !DatabaseTable.ensure_column("PhotoTable", "location", "TEXT", |
4460 | + "upgrade_database: adding location column to PhotoTable")) { |
4461 | + return VerifyResult.UPGRADE_ERROR; |
4462 | + } |
4463 | + |
4464 | + version = 22; |
4465 | + |
4466 | assert (version == DatabaseTable.SCHEMA_VERSION); |
4467 | VersionTable.get_instance ().update_version (version, Resources.APP_VERSION); |
4468 | |
4469 | |
4470 | === added file 'src/db/GeoLocationTable.vala' |
4471 | --- src/db/GeoLocationTable.vala 1970-01-01 00:00:00 +0000 |
4472 | +++ src/db/GeoLocationTable.vala 2014-10-18 00:49:47 +0000 |
4473 | @@ -0,0 +1,205 @@ |
4474 | +/* Copyright 2011-2013 Yorba Foundation |
4475 | + * |
4476 | + * This software is licensed under the GNU Lesser General Public License |
4477 | + * (version 2.1 or later). See the COPYING file in this distribution. |
4478 | + */ |
4479 | + |
4480 | +public struct LocationID { |
4481 | + public const int64 INVALID = -1; |
4482 | + |
4483 | + public int64 id; |
4484 | + |
4485 | + public LocationID (int64 id = INVALID) { |
4486 | + this.id = id; |
4487 | + } |
4488 | + |
4489 | + public bool is_invalid () { |
4490 | + return (id == INVALID); |
4491 | + } |
4492 | + |
4493 | + public bool is_valid () { |
4494 | + return (id != INVALID); |
4495 | + } |
4496 | +} |
4497 | + |
4498 | +public class LocationRow { |
4499 | + public LocationID location_id; |
4500 | + public string? city; |
4501 | + public string? territorie; |
4502 | + public string? country; |
4503 | + public double latitude; |
4504 | + public double longitude; |
4505 | +} |
4506 | + |
4507 | +private class InitLocationDataJob : BackgroundJob { |
4508 | + public InitLocationDataJob (AppWindow owner, CompletionCallback completion_callback) { |
4509 | + base (owner, completion_callback); |
4510 | + } |
4511 | + |
4512 | + public override void execute () { |
4513 | + FileStream stream = FileStream.open ( |
4514 | + AppDirs.get_resources_dir ().get_child ("ui").get_child ("locations.dat").get_parse_name (), "r"); |
4515 | + if (stream == null) { |
4516 | + debug ("failed to open initial location data file"); |
4517 | + return; |
4518 | + } |
4519 | + |
4520 | + var line = stream.read_line (); |
4521 | + while (line != null) { |
4522 | + var row = line.split ("|"); |
4523 | + try { |
4524 | + LocationTable.get_instance ().create (row); |
4525 | + } catch { |
4526 | + critical ("Could not load initial geo data"); |
4527 | + } |
4528 | + line = stream.read_line (); |
4529 | + } |
4530 | + } |
4531 | +} |
4532 | +// This is used when we are offline to make geo location look ups |
4533 | +// as glib.geocode relies on the web |
4534 | +public class LocationTable : DatabaseTable { |
4535 | + private static LocationTable instance = null; |
4536 | + private Workers workers; |
4537 | + |
4538 | + private LocationTable () { |
4539 | + Sqlite.Statement stmt; |
4540 | + int res = db.prepare_v2 ("CREATE TABLE IF NOT EXISTS LocationTable (" |
4541 | + + "id INTEGER PRIMARY KEY, " |
4542 | + + "city TEXT, " |
4543 | + + "territorie TEXT, " |
4544 | + + "country TEXT, " |
4545 | + + "lat REAL, " |
4546 | + + "lon REAL " |
4547 | + + ")", -1, out stmt); |
4548 | + assert (res == Sqlite.OK); |
4549 | + |
4550 | + res = stmt.step (); |
4551 | + if (res != Sqlite.DONE) |
4552 | + fatal ("create location table", res); |
4553 | + |
4554 | + set_table_name ("LocationTable"); |
4555 | + } |
4556 | + |
4557 | + public static LocationTable get_instance () { |
4558 | + if (instance == null) |
4559 | + instance = new LocationTable (); |
4560 | + return instance; |
4561 | + } |
4562 | + |
4563 | + public void init_city_data () { |
4564 | + // clear out the table first incase it got cut off last time |
4565 | + Sqlite.Statement stmt; |
4566 | + int res = db.prepare_v2 ("DELETE FROM LocationTable", -1, out stmt); |
4567 | + assert (res == Sqlite.OK); |
4568 | + |
4569 | + res = stmt.step (); |
4570 | + if (res != Sqlite.DONE) |
4571 | + fatal ("clear location table", res); |
4572 | + |
4573 | + workers = new Workers (1, false); |
4574 | + BackgroundJob init_job = new InitLocationDataJob (AppWindow.get_instance (), on_init_complete); |
4575 | + workers.enqueue (init_job); |
4576 | + } |
4577 | + |
4578 | + private void on_init_complete (BackgroundJob job) { |
4579 | + insert_init_row (); |
4580 | + } |
4581 | + |
4582 | + // We use a row to set init finished instead of a transaction |
4583 | + // as we want to have location rows coming in so there is at least |
4584 | + // some data before it is finished |
4585 | + private void insert_init_row () { |
4586 | + try { |
4587 | + create ("photos-init-complete| | |-1|-1".split ("|")); |
4588 | + } catch { |
4589 | + critical ("location table init complete failed"); |
4590 | + } |
4591 | + } |
4592 | + |
4593 | + public bool has_init_row () { |
4594 | + return (get_starts_with ("photos-init-complete").size > 0); |
4595 | + } |
4596 | + |
4597 | + public void create (string[] location) throws DatabaseError { |
4598 | + if (location == null || location.length < 1) |
4599 | + return; |
4600 | + |
4601 | + var city = location[0]; |
4602 | + var lat = location[1]; |
4603 | + var lon = location[2]; |
4604 | + var territorie = Resources.get_state (location[3], location[4]); |
4605 | + var country = Resources.get_country (location[3]); |
4606 | + |
4607 | + Sqlite.Statement stmt; |
4608 | + int res = db.prepare_v2 ( |
4609 | + "INSERT INTO LocationTable (city, territorie, country, lat, lon) VALUES (?, ?, ?, ?, ?)", |
4610 | + -1, out stmt); |
4611 | + assert (res == Sqlite.OK); |
4612 | + res = stmt.bind_text (1, city); |
4613 | + assert (res == Sqlite.OK); |
4614 | + res = stmt.bind_text (2, territorie); |
4615 | + assert (res == Sqlite.OK); |
4616 | + res = stmt.bind_text (3, country); |
4617 | + assert (res == Sqlite.OK); |
4618 | + res = stmt.bind_double (4, double.parse (lat)); |
4619 | + assert (res == Sqlite.OK); |
4620 | + res = stmt.bind_double (5, double.parse (lon)); |
4621 | + assert (res == Sqlite.OK); |
4622 | + |
4623 | + res = stmt.step (); |
4624 | + if (res != Sqlite.DONE) |
4625 | + throw_error ("LocationTable.create", res); |
4626 | + } |
4627 | + |
4628 | + public Gee.ArrayList < LocationRow?> get_starts_with (string starts_with) { |
4629 | + Sqlite.Statement stmt; |
4630 | + int res = db.prepare_v2 ( |
4631 | + "SELECT id, city, territorie, country, lat, lon FROM LocationTable WHERE city LIKE ?", |
4632 | + -1, out stmt); |
4633 | + assert (res == Sqlite.OK); |
4634 | + res = stmt.bind_text (1, starts_with + "%"); |
4635 | + assert (res == Sqlite.OK); |
4636 | + |
4637 | + Gee.ArrayList < LocationRow?> all = new Gee.ArrayList < LocationRow?> (); |
4638 | + |
4639 | + while ((res = stmt.step ()) == Sqlite.ROW) { |
4640 | + LocationRow row = new LocationRow (); |
4641 | + row.location_id = LocationID (stmt.column_int64 (0)); |
4642 | + row.city = stmt.column_text (1); |
4643 | + row.territorie = stmt.column_text (2); |
4644 | + row.country = stmt.column_text (3); |
4645 | + row.latitude = stmt.column_double (4); |
4646 | + row.longitude = stmt.column_double (5); |
4647 | + all.add (row); |
4648 | + } |
4649 | + |
4650 | + return all; |
4651 | + } |
4652 | + |
4653 | + public LocationRow? get_row (LocationID id) { |
4654 | + Sqlite.Statement stmt; |
4655 | + int res = db.prepare_v2 ( |
4656 | + "SELECT city, territorie, country, lat, lon FROM LocationTable WHERE id=?", |
4657 | + -1, out stmt); |
4658 | + assert (res == Sqlite.OK); |
4659 | + |
4660 | + res = stmt.bind_int64 (1, id.id); |
4661 | + assert (res == Sqlite.OK); |
4662 | + |
4663 | + if (stmt.step () != Sqlite.ROW) |
4664 | + return null; |
4665 | + |
4666 | + LocationRow row = new LocationRow (); |
4667 | + row.location_id = id; |
4668 | + row.city = stmt.column_text (0); |
4669 | + row.territorie = stmt.column_text (1); |
4670 | + row.country = stmt.column_text (2); |
4671 | + row.latitude = stmt.column_double (3); |
4672 | + row.longitude = stmt.column_double (4); |
4673 | + |
4674 | + return row; |
4675 | + } |
4676 | +} |
4677 | + |
4678 | + |
4679 | |
4680 | === modified file 'src/db/PhotoTable.vala' |
4681 | --- src/db/PhotoTable.vala 2014-08-27 12:50:03 +0000 |
4682 | +++ src/db/PhotoTable.vala 2014-10-18 00:49:47 +0000 |
4683 | @@ -84,6 +84,7 @@ |
4684 | public uint64 flags; |
4685 | public Rating rating; |
4686 | public string title; |
4687 | + public GpsCoords gps_coords; |
4688 | public string comment; |
4689 | public string? backlinks; |
4690 | public time_t time_reimported; |
4691 | @@ -91,6 +92,7 @@ |
4692 | public bool metadata_dirty; |
4693 | public bool enhanced; |
4694 | public Gee.HashMap<string, KeyValueMap>? original_transforms; |
4695 | + public string location; |
4696 | |
4697 | // Currently selected developer (RAW only) |
4698 | public RawDeveloper developer; |
4699 | @@ -102,6 +104,7 @@ |
4700 | public PhotoRow () { |
4701 | master = new BackingPhotoRow (); |
4702 | editable_id = BackingPhotoID (); |
4703 | + gps_coords = GpsCoords (); |
4704 | development_ids = new BackingPhotoID[RawDeveloper.as_array ().length]; |
4705 | foreach (RawDeveloper d in RawDeveloper.as_array ()) |
4706 | development_ids[d] = BackingPhotoID (); |
4707 | @@ -144,7 +147,11 @@ |
4708 | + "develop_embedded_id INTEGER DEFAULT -1, " |
4709 | + "comment TEXT, " |
4710 | + "enhanced INTEGER DEFAULT 0, " |
4711 | - + "original_transforms TEXT " |
4712 | + + "original_transforms TEXT, " |
4713 | + + "has_gps INTEGER DEFAULT -1, " |
4714 | + + "gps_lat REAL, " |
4715 | + + "gps_lon REAL, " |
4716 | + + "location TEXT" |
4717 | + ")", -1, out stmt); |
4718 | assert (res == Sqlite.OK); |
4719 | |
4720 | @@ -179,8 +186,9 @@ |
4721 | int res = db.prepare_v2 ( |
4722 | "INSERT INTO PhotoTable (filename, width, height, filesize, timestamp, exposure_time, " |
4723 | + "orientation, original_orientation, import_id, event_id, md5, thumbnail_md5, " |
4724 | - + "exif_md5, time_created, file_format, title, rating, editable_id, developer, comment) " |
4725 | - + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", |
4726 | + + "exif_md5, time_created, file_format, title, rating, editable_id, developer, " |
4727 | + + "comment, has_gps, gps_lat, gps_lon, location) " |
4728 | + + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", |
4729 | -1, out stmt); |
4730 | assert (res == Sqlite.OK); |
4731 | |
4732 | @@ -226,6 +234,14 @@ |
4733 | assert (res == Sqlite.OK); |
4734 | res = stmt.bind_text (20, photo_row.comment); |
4735 | assert (res == Sqlite.OK); |
4736 | + res = stmt.bind_int (21, photo_row.gps_coords.has_gps); |
4737 | + assert (res == Sqlite.OK); |
4738 | + res = stmt.bind_double (22, photo_row.gps_coords.latitude); |
4739 | + assert (res == Sqlite.OK); |
4740 | + res = stmt.bind_double (23, photo_row.gps_coords.longitude); |
4741 | + assert (res == Sqlite.OK); |
4742 | + res = stmt.bind_text (24, photo_row.location); |
4743 | + assert (res == Sqlite.OK); |
4744 | |
4745 | res = stmt.step (); |
4746 | if (res != Sqlite.DONE) { |
4747 | @@ -255,7 +271,8 @@ |
4748 | int res = db.prepare_v2 ( |
4749 | "UPDATE PhotoTable SET width = ?, height = ?, filesize = ?, timestamp = ?, " |
4750 | + "exposure_time = ?, orientation = ?, original_orientation = ?, md5 = ?, " |
4751 | - + "exif_md5 = ?, thumbnail_md5 = ?, file_format = ?, title = ?, time_reimported = ? " |
4752 | + + "exif_md5 = ?, thumbnail_md5 = ?, file_format = ?, title = ?, " |
4753 | + + "has_gps = ?, gps_lat = ?, gps_lon = ?, time_reimported = ? " |
4754 | + "WHERE id = ?", -1, out stmt); |
4755 | assert (res == Sqlite.OK); |
4756 | |
4757 | @@ -285,9 +302,15 @@ |
4758 | assert (res == Sqlite.OK); |
4759 | res = stmt.bind_text (12, row.title); |
4760 | assert (res == Sqlite.OK); |
4761 | - res = stmt.bind_int64 (13, time_reimported); |
4762 | - assert (res == Sqlite.OK); |
4763 | - res = stmt.bind_int64 (14, row.photo_id.id); |
4764 | + res = stmt.bind_int (13, row.gps_coords.has_gps); |
4765 | + assert (res == Sqlite.OK); |
4766 | + res = stmt.bind_double (14, row.gps_coords.latitude); |
4767 | + assert (res == Sqlite.OK); |
4768 | + res = stmt.bind_double (15, row.gps_coords.longitude); |
4769 | + assert (res == Sqlite.OK); |
4770 | + res = stmt.bind_int64 (16, time_reimported); |
4771 | + assert (res == Sqlite.OK); |
4772 | + res = stmt.bind_int64 (17, row.photo_id.id); |
4773 | assert (res == Sqlite.OK); |
4774 | |
4775 | res = stmt.step (); |
4776 | @@ -360,7 +383,8 @@ |
4777 | + "original_orientation, import_id, event_id, transformations, md5, thumbnail_md5, " |
4778 | + "exif_md5, time_created, flags, rating, file_format, title, backlinks, " |
4779 | + "time_reimported, editable_id, metadata_dirty, developer, develop_shotwell_id, " |
4780 | - + "develop_camera_id, develop_embedded_id, comment, enhanced, original_transforms " |
4781 | + + "develop_camera_id, develop_embedded_id, comment, enhanced, original_transforms, " |
4782 | + + "has_gps, gps_lat, gps_lon, location " |
4783 | + "FROM PhotoTable WHERE id=?", |
4784 | -1, out stmt); |
4785 | assert (res == Sqlite.OK); |
4786 | @@ -403,6 +427,10 @@ |
4787 | row.comment = stmt.column_text (27); |
4788 | row.enhanced = stmt.column_int (28) != 0; |
4789 | row.original_transforms = marshall_all_transformations (stmt.column_text (29)); |
4790 | + row.gps_coords.has_gps = stmt.column_int (30); |
4791 | + row.gps_coords.latitude = stmt.column_double (31); |
4792 | + row.gps_coords.longitude = stmt.column_double (32); |
4793 | + row.location = stmt.column_text (33); |
4794 | |
4795 | return row; |
4796 | } |
4797 | @@ -414,7 +442,8 @@ |
4798 | + "original_orientation, import_id, event_id, transformations, md5, thumbnail_md5, " |
4799 | + "exif_md5, time_created, flags, rating, file_format, title, backlinks, time_reimported, " |
4800 | + "editable_id, metadata_dirty, developer, develop_shotwell_id, develop_camera_id, " |
4801 | - + "develop_embedded_id, comment, enhanced, original_transforms FROM PhotoTable", |
4802 | + + "develop_embedded_id, comment, enhanced, original_transforms, has_gps, gps_lat, gps_lon, " |
4803 | + + "location FROM PhotoTable", |
4804 | -1, out stmt); |
4805 | assert (res == Sqlite.OK); |
4806 | |
4807 | @@ -454,6 +483,10 @@ |
4808 | row.enhanced = stmt.column_int (29) != 0; |
4809 | row.original_transforms = marshall_all_transformations (stmt.column_text (30)); |
4810 | validate_orientation (row); |
4811 | + row.gps_coords.has_gps = stmt.column_int (31); |
4812 | + row.gps_coords.latitude = stmt.column_double (32); |
4813 | + row.gps_coords.longitude = stmt.column_double (33); |
4814 | + row.location = stmt.column_text (34); |
4815 | |
4816 | all.add (row); |
4817 | } |
4818 | @@ -474,8 +507,8 @@ |
4819 | + "timestamp, exposure_time, orientation, original_orientation, import_id, event_id, " |
4820 | + "transformations, md5, thumbnail_md5, exif_md5, time_created, flags, rating, " |
4821 | + "file_format, title, editable_id, developer, develop_shotwell_id, develop_camera_id, " |
4822 | - + "develop_embedded_id, comment, enhanced, original_transforms) " |
4823 | - + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", |
4824 | + + "develop_embedded_id, comment, enhanced, original_transforms, has_gps, gps_lat, gps_lon, location) " |
4825 | + + "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", |
4826 | -1, out stmt); |
4827 | assert (res == Sqlite.OK); |
4828 | |
4829 | @@ -519,7 +552,6 @@ |
4830 | assert (res == Sqlite.OK); |
4831 | res = stmt.bind_int64 (20, editable_id.id); |
4832 | assert (res == Sqlite.OK); |
4833 | - |
4834 | res = stmt.bind_text (21, original.developer.to_string ()); |
4835 | assert (res == Sqlite.OK); |
4836 | res = stmt.bind_int64 (22, develop_shotwell.id); |
4837 | @@ -535,6 +567,15 @@ |
4838 | res = stmt.bind_text (27, unmarshall_all_transformations (original.original_transforms)); |
4839 | assert (res == Sqlite.OK); |
4840 | |
4841 | + res = stmt.bind_int (28, original.gps_coords.has_gps); |
4842 | + assert (res == Sqlite.OK); |
4843 | + res = stmt.bind_double (29, original.gps_coords.latitude); |
4844 | + assert (res == Sqlite.OK); |
4845 | + res = stmt.bind_double (30, original.gps_coords.longitude); |
4846 | + assert (res == Sqlite.OK); |
4847 | + res = stmt.bind_text (31, original.location); |
4848 | + assert (res == Sqlite.OK); |
4849 | + |
4850 | res = stmt.step (); |
4851 | if (res != Sqlite.DONE) { |
4852 | if (res != Sqlite.CONSTRAINT) |
4853 | @@ -550,6 +591,14 @@ |
4854 | return update_text_by_id (photo_id.id, "title", new_title != null ? new_title : ""); |
4855 | } |
4856 | |
4857 | + public void set_gps_coords (PhotoID photo_id, GpsCoords new_gps_coords) throws DatabaseError { |
4858 | + update_int_by_id_2 (photo_id.id, "has_gps", new_gps_coords.has_gps); |
4859 | + if (new_gps_coords.has_gps > 0) { |
4860 | + update_double_by_id_2 (photo_id.id, "gps_lat", new_gps_coords.latitude); |
4861 | + update_double_by_id_2 (photo_id.id, "gps_lon", new_gps_coords.longitude); |
4862 | + } |
4863 | + } |
4864 | + |
4865 | public bool set_comment (PhotoID photo_id, string? new_comment) { |
4866 | return update_text_by_id (photo_id.id, "comment", new_comment != null ? new_comment : ""); |
4867 | } |
4868 | @@ -720,6 +769,10 @@ |
4869 | return update_int64_by_id (photo_id.id, "event_id", event_id.id); |
4870 | } |
4871 | |
4872 | + public bool set_location (PhotoID photo_id, string? location) { |
4873 | + return update_text_by_id (photo_id.id, "location", location); |
4874 | + } |
4875 | + |
4876 | private string? get_raw_transformations (PhotoID photo_id) { |
4877 | Sqlite.Statement stmt; |
4878 | if (!select_by_id (photo_id.id, "transformations", out stmt)) |
4879 | @@ -848,7 +901,7 @@ |
4880 | } |
4881 | |
4882 | return set_raw_transformations (photo_id, trans); |
4883 | - } |
4884 | + } |
4885 | |
4886 | public bool set_original_transforms (PhotoID photo_id, KeyValueMap? map) { |
4887 | if (map == null) |
4888 | @@ -866,7 +919,7 @@ |
4889 | size_t length; |
4890 | string trans = keyfile.to_data (out length); |
4891 | |
4892 | - return set_raw_original_transforms (photo_id, trans); |
4893 | + return set_raw_original_transforms (photo_id, trans); |
4894 | } |
4895 | |
4896 | public bool remove_transformation (PhotoID photo_id, string object) { |
4897 | @@ -1020,7 +1073,7 @@ |
4898 | |
4899 | public void set_metadata_dirty (PhotoID photo_id, bool dirty) throws DatabaseError { |
4900 | update_int_by_id_2 (photo_id.id, "metadata_dirty", dirty ? 1 : 0); |
4901 | - } |
4902 | + } |
4903 | |
4904 | public bool set_enhanced (PhotoID photo_id, bool enhanced) { |
4905 | return update_int_by_id (photo_id.id, "enhanced", enhanced ? 1 : 0); |
4906 | |
4907 | === modified file 'src/db/mk/db.mk' |
4908 | --- src/db/mk/db.mk 2012-04-07 15:38:31 +0000 |
4909 | +++ src/db/mk/db.mk 2014-10-18 00:49:47 +0000 |
4910 | @@ -18,7 +18,8 @@ |
4911 | TombstoneTable.vala \ |
4912 | VideoTable.vala \ |
4913 | VersionTable.vala \ |
4914 | - SavedSearchDBTable.vala |
4915 | + SavedSearchDBTable.vala \ |
4916 | + GeoLocationTable.vala |
4917 | |
4918 | # Any unit this unit relies upon (and should be initialized before it's initialized) should |
4919 | # be listed here using its Vala namespace. |
4920 | |
4921 | === modified file 'src/library/Branch.vala' |
4922 | --- src/library/Branch.vala 2014-09-25 09:36:24 +0000 |
4923 | +++ src/library/Branch.vala 2014-10-18 00:49:47 +0000 |
4924 | @@ -11,6 +11,10 @@ |
4925 | get; |
4926 | private set; |
4927 | } |
4928 | + public Library.MapEntry map_entry { |
4929 | + get; |
4930 | + private set; |
4931 | + } |
4932 | public Library.VideosEntry videos_entry { |
4933 | get; |
4934 | private set; |
4935 | @@ -48,6 +52,7 @@ |
4936 | RAWS, |
4937 | VIDEOS, |
4938 | FLAGGED, |
4939 | + MAP, |
4940 | LAST_IMPORTED, |
4941 | IMPORT_QUEUE, |
4942 | OFFLINE, |
4943 | @@ -61,16 +66,23 @@ |
4944 | photos_entry = new Library.PhotosEntry (); |
4945 | videos_entry = new Library.VideosEntry (); |
4946 | raws_entry = new Library.RawsEntry (); |
4947 | + map_entry = new Library.MapEntry (); |
4948 | trash_entry = new Library.TrashSidebarEntry (); |
4949 | last_imported_entry = new Library.LastImportSidebarEntry (); |
4950 | flagged_entry = new Library.FlaggedSidebarEntry (); |
4951 | offline_entry = new Library.OfflineSidebarEntry (); |
4952 | import_queue_entry = new Library.ImportQueueSidebarEntry (); |
4953 | |
4954 | + |
4955 | + insert (map_entry, EntryPosition.MAP); |
4956 | insert (photos_entry, EntryPosition.PHOTOS); |
4957 | insert (raws_entry, EntryPosition.RAWS); |
4958 | insert (trash_entry, EntryPosition.TRASH); |
4959 | |
4960 | + |
4961 | + map_entry.visibility_changed.connect (on_map_visibility_changed); |
4962 | + on_map_visibility_changed (); |
4963 | + |
4964 | videos_entry.visibility_changed.connect (on_videos_visibility_changed); |
4965 | on_videos_visibility_changed (); |
4966 | |
4967 | @@ -100,6 +112,10 @@ |
4968 | update_entry_visibility (flagged_entry, EntryPosition.FLAGGED); |
4969 | } |
4970 | |
4971 | + private void on_map_visibility_changed () { |
4972 | + update_entry_visibility (map_entry, EntryPosition.MAP); |
4973 | + } |
4974 | + |
4975 | private void on_last_imported_visibility_changed () { |
4976 | update_entry_visibility (last_imported_entry, EntryPosition.LAST_IMPORTED); |
4977 | } |
4978 | @@ -126,6 +142,68 @@ |
4979 | } |
4980 | } |
4981 | |
4982 | +public class Library.MapEntry : Library.HideablePageEntry { |
4983 | + private Icon icon = new ThemedIcon (Resources.MAP_PAGE); |
4984 | + |
4985 | + public MapEntry () { |
4986 | + foreach (MediaSourceCollection media_sources in MediaCollectionRegistry.get_instance ().get_all ()) |
4987 | + media_sources.gps_contents_altered.connect (on_gps_contents_altered); |
4988 | + |
4989 | + visible = get_has_gps (); |
4990 | + } |
4991 | + |
4992 | + ~MapEntry () { |
4993 | + foreach (MediaSourceCollection media_sources in MediaCollectionRegistry.get_instance ().get_all ()) |
4994 | + media_sources.gps_contents_altered.disconnect (on_gps_contents_altered); |
4995 | + } |
4996 | + |
4997 | + public override string get_sidebar_name () { |
4998 | + return _ ("Places"); |
4999 | + } |
5000 | + |
Breaks Photo Viewer for me, refuses to launch when I try to open an image with it.
Can you lock the map min height to the height of its area in the window? Here's are 2 screenshots, the first one is current minimum dimensions of the map, the second is closer to what I propose.