Merge lp:~ahayzen/ubuntu-weather-app/reboot-day-delegate-expand into lp:ubuntu-weather-app

Proposed by Andrew Hayzen
Status: Merged
Approved by: Victor Thompson
Approved revision: 35
Merged at revision: 37
Proposed branch: lp:~ahayzen/ubuntu-weather-app/reboot-day-delegate-expand
Merge into: lp:ubuntu-weather-app
Diff against target: 1203 lines (+1008/-25)
9 files modified
app/components/DayDelegate.qml (+155/-5)
app/components/ForecastDetailsDelegate.qml (+49/-0)
app/graphics/extended-information_chance-of-rain.svg (+153/-0)
app/graphics/extended-information_humidity.svg (+147/-0)
app/graphics/extended-information_uv-level.svg (+270/-0)
app/graphics/extended-information_wind.svg (+155/-0)
app/ui/HomePage.qml (+23/-8)
app/ui/LocationPane.qml (+27/-11)
po/com.ubuntu.weather.pot (+29/-1)
To merge this branch: bzr merge lp:~ahayzen/ubuntu-weather-app/reboot-day-delegate-expand
Reviewer Review Type Date Requested Status
Victor Thompson Approve
Ubuntu Phone Apps Jenkins Bot continuous-integration Approve
Review via email: mp+255264@code.launchpad.net

Commit message

* First iteration of expandable day delegate

Description of the change

* First iteration of expandable day delegate

This does not include a working "overview text", sunrise, sunset, pollen levels. These will hopefully come in a second mp :)

To post a comment you must log in.
Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Victor Thompson (vthompson) wrote :

This works very well! Would it make sense to close all the expanded days when the user switches to a different location, or if they go into the Settings or Locations pages?

review: Needs Information
Revision history for this message
Martin Borho (martin-borho) wrote :

In the old app every location was "resetted" after leaving, so the view was back at the top and all other changes in the view were dismissed when re-entering.

I would even say, it would be ok to have only day forecast expanded, in the location itself.

Otherwise, well done!

Revision history for this message
Victor Thompson (vthompson) wrote :

I agree--maybe only one should be expanded at a time. The spec makes it seem like this is the case (mostly because the expanded data takes up most of the screen). The reasoning for leaving multiple expanded was because since this data is more compact it might be nice to allow multiple to be expanded. However, you lose most of the benefits of having multiple expanded if you auto-scroll to the currently expanded item (which looks slick, btw).

Revision history for this message
Nekhelesh Ramananthan (nik90) wrote :

Yeah it would be best to have only one listitem expanded at a time. I noticed a issue in the background color of the hourly forecast [1], however at the time I wasn't sure if this was a issue in trunk or in this branch. So I fixed it along with some other cleanups in [2]. So ignore that issue while reviewing this branch as merging my branch would fix it.

[1] https://imgur.com/NMRuJvR
[2] https://code.launchpad.net/~nik90/ubuntu-weather-app/homehourly-design-fix/+merge/255412

Revision history for this message
Victor Thompson (vthompson) wrote :

In addition to what we decided above (only allow for 1 expanded day and auto-collapse each when the view changes), I've noticed that when a different location is selected from the Locations page, the transition is incredibly slow on the device. This only appears to be an issue with this branch and not trunk/reboot.

review: Needs Fixing
Revision history for this message
Victor Thompson (vthompson) wrote :

Also, this mp seems to make the app's background color non-white on vivid, which makes some of the icons look odd (it's not as visible in this screenshot, however): http://i.imgur.com/mlERkip.png

Revision history for this message
Alan Pope 🍺🐧🐱 πŸ¦„ (popey) wrote :

+1 to only having one expanded at a time.

Revision history for this message
Martin Borho (martin-borho) wrote :

Design said, it would be ok to stay with the current way after changing the location. So no forced reset in the ui without user input.

We can revisit it later on, if it doesn't work out..

Besides that, only one daily forecast can/should be expanded. As intended.

32. By Andrew Hayzen

* Merge of /reboot

33. By Andrew Hayzen

* Remove scrolling Flickable as it causes issues when collapsing and expanding delegates
* Simplifed how height of Flickable is calculated
* Only one delegate can now be in the expanded state
* All delegates are collaped when the HomePage.qml changes to invisible or the currently shown location changes

Revision history for this message
Andrew Hayzen (ahayzen) wrote :

I've removed the auto scroll for now as it was becoming messy when you had one item expanded and you go to click on another, as it collapses one and expands the other the height then moves around a lot, let me know if you do infact want this in.

I've also changed the way the flickable's height is calculated, let me know if it is slightly too tight to the bottom item.

Regarding collapsing delegates I went with collapsing when either of the following occur:
- Another delegate is expanded
- The selected location changes
- The HomePage becomes invisible (another page pushed on top in the stack)

Let me know if you want any changes regarding this behaviour :)

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Victor Thompson (vthompson) wrote :

See inline comment. I think the rest looks good.

review: Needs Information
Revision history for this message
Victor Thompson (vthompson) wrote :

The offset at the bottom seems more like 3GU. But I agree--not sure where it's coming from.

34. By Andrew Hayzen

* Change to 3GU

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Needs Fixing (continuous-integration)
35. By Andrew Hayzen

* Merge of /reboot

Revision history for this message
Ubuntu Phone Apps Jenkins Bot (ubuntu-phone-apps-jenkins-bot) wrote :
review: Approve (continuous-integration)
Revision history for this message
Victor Thompson (vthompson) wrote :

LGTM, let's land this and iterate as we go along.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'app/components/DayDelegate.qml'
--- app/components/DayDelegate.qml 2015-03-18 00:05:43 +0000
+++ app/components/DayDelegate.qml 2015-04-29 14:22:07 +0000
@@ -21,18 +21,86 @@
21import Ubuntu.Components.ListItems 0.1 as ListItem21import Ubuntu.Components.ListItems 0.1 as ListItem
2222
23ListItem.Standard {23ListItem.Standard {
24 height: units.gu(8)24 id: dayDelegate
25 height: collapsedHeight
2526
26 // TODO: will expand when clicked to reveal more info27 property int collapsedHeight: units.gu(8)
28 property int expandedHeight: collapsedHeight + units.gu(4) + extraInfoColumn.childrenRect.height
2729
28 property alias day: dayLabel.text30 property alias day: dayLabel.text
29 property alias image: weatherImage.name31 property alias image: weatherImage.name
30 property alias high: highLabel.text32 property alias high: highLabel.text
31 property alias low: lowLabel.text33 property alias low: lowLabel.text
3234
35 property alias chanceOfRain: chanceOfRainForecast.chance
36 property alias humidity: humidityForecast.value
37 property alias pollen: pollenForecast.value
38 property alias sunrise: sunriseForecast.value
39 property alias sunset: sunsetForecast.value
40 property alias wind: windForecast.value
41 property alias uvIndex: uvIndexForecast.value
42
33 // Standard divider is not full width so add a ThinDivider to the bottom43 // Standard divider is not full width so add a ThinDivider to the bottom
34 showDivider: false44 showDivider: false
3545
46 state: "normal"
47 states: [
48 State {
49 name: "normal"
50 PropertyChanges {
51 target: dayDelegate
52 height: collapsedHeight
53 }
54 },
55 State {
56 name: "expanded"
57 PropertyChanges {
58 target: dayDelegate
59 height: expandedHeight
60 }
61 PropertyChanges {
62 target: expandedInfo
63 opacity: 1
64 }
65 }
66 ]
67
68 transitions: [
69 Transition {
70 from: "normal"
71 to: "expanded"
72 SequentialAnimation {
73 NumberAnimation {
74 easing.type: Easing.InOutQuad
75 properties: "height"
76 }
77 NumberAnimation {
78 easing.type: Easing.InOutQuad
79 properties: "opacity"
80 }
81 }
82 },
83 Transition {
84 from: "expanded"
85 to: "normal"
86 SequentialAnimation {
87 NumberAnimation {
88 easing.type: Easing.InOutQuad
89 properties: "opacity"
90 }
91 NumberAnimation {
92 easing.type: Easing.InOutQuad
93 properties: "height"
94 }
95 }
96 }
97 ]
98
99 onClicked: {
100 state = state === "normal" ? "expanded" : "normal"
101 locationPages.collapseOtherDelegates(index)
102 }
103
36 ListItem.ThinDivider {104 ListItem.ThinDivider {
37 anchors {105 anchors {
38 bottom: parent.bottom106 bottom: parent.bottom
@@ -45,7 +113,8 @@
45 left: parent.left113 left: parent.left
46 right: weatherImage.left114 right: weatherImage.left
47 rightMargin: units.gu(1)115 rightMargin: units.gu(1)
48 verticalCenter: parent.verticalCenter116 top: parent.top
117 topMargin: (collapsedHeight - dayLabel.height) / 2
49 }118 }
50 elide: Text.ElideRight119 elide: Text.ElideRight
51 font.weight: Font.Light120 font.weight: Font.Light
@@ -56,7 +125,7 @@
56 id: weatherImage125 id: weatherImage
57 anchors {126 anchors {
58 horizontalCenter: parent.horizontalCenter127 horizontalCenter: parent.horizontalCenter
59 verticalCenter: parent.verticalCenter128 verticalCenter: dayLabel.verticalCenter
60 }129 }
61 height: units.gu(3)130 height: units.gu(3)
62 width: units.gu(3)131 width: units.gu(3)
@@ -68,7 +137,7 @@
68 left: weatherImage.right137 left: weatherImage.right
69 right: highLabel.left138 right: highLabel.left
70 rightMargin: units.gu(1)139 rightMargin: units.gu(1)
71 verticalCenter: parent.verticalCenter140 verticalCenter: dayLabel.verticalCenter
72 }141 }
73 elide: Text.ElideRight142 elide: Text.ElideRight
74 font.pixelSize: units.gu(2)143 font.pixelSize: units.gu(2)
@@ -92,4 +161,85 @@
92 height: units.gu(3)161 height: units.gu(3)
93 verticalAlignment: Text.AlignTop // AlignTop appears to align bottom?162 verticalAlignment: Text.AlignTop // AlignTop appears to align bottom?
94 }163 }
164
165 Item {
166 id: expandedInfo
167 anchors {
168 bottom: parent.bottom
169 left: parent.left
170 right: parent.right
171 top: dayLabel.bottom
172 topMargin: units.gu(2)
173 }
174 opacity: 0
175 visible: opacity !== 0
176
177
178 Column {
179 id: extraInfoColumn
180 anchors {
181 centerIn: parent
182 }
183 spacing: units.gu(2)
184
185 // FIXME: extended-infomation_* aren't actually on device
186
187 // Overview text
188 Label {
189 id: chanceOfRainForecast
190 color: UbuntuColors.coolGrey
191 fontSize: "x-large"
192 horizontalAlignment: Text.AlignHCenter
193 text: i18n.tr("Chance of rain")
194 width: parent.width
195 visible: false // FIXME: add overview text eg "Chance of flurries"
196
197 property int chance: 0
198 }
199
200 ForecastDetailsDelegate {
201 id: windForecast
202 forecast: i18n.tr("Winds")
203 imageSource: "../graphics/extended-information_wind.svg"
204 }
205
206 ForecastDetailsDelegate {
207 id: uvIndexForecast
208 imageSource: "../graphics/extended-information_uv-level.svg"
209 forecast: i18n.tr("UV Index")
210 }
211
212 ForecastDetailsDelegate {
213 id: pollenForecast
214 forecast: i18n.tr("Pollen")
215 // FIXME: need icon
216 }
217
218 ForecastDetailsDelegate {
219 id: humidityForecast
220 forecast: i18n.tr("Humidity")
221 imageSource: "../graphics/extended-information_humidity.svg"
222 }
223
224 ForecastDetailsDelegate {
225 id: sunriseForecast
226 forecast: i18n.tr("Sunrise")
227 // FIXME: need icon
228 }
229
230 ForecastDetailsDelegate {
231 id: sunsetForecast
232 forecast: i18n.tr("Sunset")
233 // FIXME: need icon
234 }
235 }
236 }
237
238 Component.onCompleted: {
239 locationPages.collapseOtherDelegates.connect(function(otherIndex) {
240 if (dayDelegate && typeof index !== "undefined" && otherIndex !== index) {
241 state = "normal"
242 }
243 });
244 }
95}245}
96246
=== added file 'app/components/ForecastDetailsDelegate.qml'
--- app/components/ForecastDetailsDelegate.qml 1970-01-01 00:00:00 +0000
+++ app/components/ForecastDetailsDelegate.qml 2015-04-29 14:22:07 +0000
@@ -0,0 +1,49 @@
1/*
2 * Copyright (C) 2015 Canonical Ltd
3 *
4 * This file is part of Ubuntu Weather App
5 *
6 * Ubuntu Weather App is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License version 3 as
8 * published by the Free Software Foundation.
9 *
10 * Ubuntu Weather App is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19import QtQuick 2.3
20import Ubuntu.Components 1.1
21import Ubuntu.Components.ListItems 0.1 as ListItem
22
23Row {
24 height: icon.height
25 spacing: units.gu(2)
26 visible: value !== ""
27
28 property alias imageSource: icon.source
29 property alias forecast: forecastLabel.text
30 property alias value: forecastValue.text
31
32 Icon {
33 id: icon
34 color: "#000"
35 height: units.gu(2)
36 width: height
37 }
38
39 Label {
40 id: forecastLabel
41 elide: Text.ElideRight
42 width: units.gu(8)
43 }
44
45 Label {
46 id: forecastValue
47 width: units.gu(10)
48 }
49}
050
=== added file 'app/graphics/extended-information_chance-of-rain.svg'
--- app/graphics/extended-information_chance-of-rain.svg 1970-01-01 00:00:00 +0000
+++ app/graphics/extended-information_chance-of-rain.svg 2015-04-29 14:22:07 +0000
@@ -0,0 +1,153 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12 width="90"
13 height="90"
14 id="svg6138"
15 version="1.1"
16 inkscape:version="0.91pre2 r"
17 viewBox="0 0 90 90.000001"
18 sodipodi:docname="weather-chance-of-rain02.svg">
19 <defs
20 id="defs6140" />
21 <sodipodi:namedview
22 id="base"
23 pagecolor="#ffffff"
24 bordercolor="#666666"
25 borderopacity="1.0"
26 inkscape:pageopacity="0.0"
27 inkscape:pageshadow="2"
28 inkscape:zoom="5.0931702"
29 inkscape:cx="112.1011"
30 inkscape:cy="19.378885"
31 inkscape:document-units="px"
32 inkscape:current-layer="g6442"
33 showgrid="true"
34 fit-margin-top="0"
35 fit-margin-left="0"
36 fit-margin-right="0"
37 fit-margin-bottom="0"
38 inkscape:snap-global="true"
39 inkscape:snap-bbox="true"
40 inkscape:bbox-paths="true"
41 inkscape:snap-bbox-midpoints="true"
42 inkscape:snap-bbox-edge-midpoints="true"
43 inkscape:bbox-nodes="true"
44 inkscape:object-paths="true"
45 inkscape:snap-intersection-paths="true"
46 inkscape:object-nodes="true"
47 inkscape:snap-smooth-nodes="true"
48 inkscape:snap-midpoints="true"
49 inkscape:snap-others="true"
50 inkscape:snap-object-midpoints="true"
51 inkscape:snap-center="true"
52 showguides="false"
53 inkscape:guide-bbox="true">
54 <inkscape:grid
55 type="xygrid"
56 id="grid6700"
57 empspacing="6" />
58 <sodipodi:guide
59 orientation="0,1"
60 position="90,87"
61 id="guide4064" />
62 <sodipodi:guide
63 orientation="0,1"
64 position="89,84"
65 id="guide4066" />
66 <sodipodi:guide
67 orientation="1,0"
68 position="3,69"
69 id="guide4068" />
70 <sodipodi:guide
71 orientation="1,0"
72 position="6,60"
73 id="guide4070" />
74 <sodipodi:guide
75 orientation="1,0"
76 position="87,58"
77 id="guide4072" />
78 <sodipodi:guide
79 orientation="1,0"
80 position="84,47"
81 id="guide4074" />
82 <sodipodi:guide
83 orientation="0,1"
84 position="77,3"
85 id="guide4076" />
86 <sodipodi:guide
87 orientation="0,1"
88 position="81,6"
89 id="guide4078" />
90 <sodipodi:guide
91 orientation="1,0"
92 position="81,25"
93 id="guide4080" />
94 <sodipodi:guide
95 orientation="0,1"
96 position="78,9"
97 id="guide4082" />
98 <sodipodi:guide
99 orientation="0,1"
100 position="79,81"
101 id="guide4084" />
102 <sodipodi:guide
103 orientation="1,0"
104 position="9,39"
105 id="guide4086" />
106 </sodipodi:namedview>
107 <metadata
108 id="metadata6143">
109 <rdf:RDF>
110 <cc:Work
111 rdf:about="">
112 <dc:format>image/svg+xml</dc:format>
113 <dc:type
114 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
115 <dc:title></dc:title>
116 </cc:Work>
117 </rdf:RDF>
118 </metadata>
119 <g
120 inkscape:label="Layer 1"
121 inkscape:groupmode="layer"
122 id="layer1"
123 transform="translate(-283.57144,-358.79068)">
124 <g
125 transform="translate(169.57144,223.42822)"
126 id="g5937"
127 inkscape:export-filename="envelope02.png"
128 inkscape:export-xdpi="90"
129 inkscape:export-ydpi="90" />
130 <g
131 id="g6442"
132 transform="translate(-753.45981,336.4283)">
133 <rect
134 style="fill:none;stroke:none"
135 id="rect1687"
136 width="90"
137 height="90"
138 x="1037.0312"
139 y="22.362379" />
140 <path
141 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
142 d="M 44.929688 12.066406 C 34.037288 12.066406 24.849688 14.943458 17.367188 20.697266 C 9.7896875 26.523909 6 33.624202 6 42 C 7.7011 40.603306 9.6530686 39.474739 11.855469 38.615234 C 14.075869 37.773637 16.4573 37.353516 19 37.353516 C 21.5427 37.353516 23.914587 37.773637 26.117188 38.615234 C 28.337486 39.474739 30.2989 40.603306 32 42 C 33.7011 40.603306 35.653069 39.474739 37.855469 38.615234 C 40.075769 37.773637 42.4573 37.353516 45 37.353516 C 47.5427 37.353516 49.914586 37.773637 52.117188 38.615234 C 54.337487 39.474739 56.2989 40.603306 58 42 L 58.654297 42 C 60.235137 40.784631 62.009869 39.776665 64 39 C 66.2203 38.158403 68.601831 37.738281 71.144531 37.738281 C 73.687231 37.738281 76.059119 38.158403 78.261719 39 C 80.268226 39.776743 82.052173 40.784465 83.634766 42 L 84 42 C 84 33.624202 80.210313 26.523909 72.632812 20.697266 C 65.055613 14.943458 55.822287 12.066406 44.929688 12.066406 z "
143 transform="translate(1037.0313,22.36238)"
144 id="path4181" />
145 <path
146 style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-indent:0;text-align:end;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:end;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6.00000048;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
147 d="m 1079.0312,28.363281 0,66.335938 0.01,0.09766 c 0.015,0.226687 0.022,0.780446 0.022,1.509766 0,1.918939 -0.4328,2.763898 -1.0039,3.289062 l -0.01,0.0059 -0.01,0.0078 c -0.6357,0.592743 -1.5903,1.007813 -3.4297,1.007813 -1.8313,0 -2.8017,-0.41364 -3.461,-1.015626 -0.5541,-0.519673 -0.9882,-1.37472 -0.9882,-3.294921 0,-0.72932 0.01,-1.281931 0.021,-1.501953 l -5.9863,-0.410157 c -0.041,0.598238 -0.035,1.18279 -0.035,1.91211 0,2.983063 0.8627,5.791367 2.9003,7.691407 l 0.01,0.008 0.01,0.006 c 1.9716,1.8129 4.6659,2.60547 7.5332,2.60547 2.8642,0 5.5555,-0.79304 7.5136,-2.61524 2.0532,-1.89396 2.9356,-4.70919 2.9356,-7.695307 0,-0.72932 0.01,-1.312724 -0.033,-1.904297 l 0.01,0.197265 0,-67.236328 -6,1 z"
148 id="path4225"
149 inkscape:connector-curvature="0"
150 sodipodi:nodetypes="cccscccscsccscccscsccccc" />
151 </g>
152 </g>
153</svg>
0154
=== added file 'app/graphics/extended-information_humidity.svg'
--- app/graphics/extended-information_humidity.svg 1970-01-01 00:00:00 +0000
+++ app/graphics/extended-information_humidity.svg 2015-04-29 14:22:07 +0000
@@ -0,0 +1,147 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12 width="90"
13 height="90"
14 id="svg6138"
15 version="1.1"
16 inkscape:version="0.91pre2 r"
17 viewBox="0 0 90 90.000001"
18 sodipodi:docname="weather-chance-of-rain.svg">
19 <defs
20 id="defs6140" />
21 <sodipodi:namedview
22 id="base"
23 pagecolor="#ffffff"
24 bordercolor="#666666"
25 borderopacity="1.0"
26 inkscape:pageopacity="0.0"
27 inkscape:pageshadow="2"
28 inkscape:zoom="4.0745362"
29 inkscape:cx="90.550182"
30 inkscape:cy="25.205316"
31 inkscape:document-units="px"
32 inkscape:current-layer="g6442"
33 showgrid="true"
34 fit-margin-top="0"
35 fit-margin-left="0"
36 fit-margin-right="0"
37 fit-margin-bottom="0"
38 inkscape:snap-global="false"
39 inkscape:snap-bbox="true"
40 inkscape:bbox-paths="true"
41 inkscape:snap-bbox-midpoints="true"
42 inkscape:snap-bbox-edge-midpoints="true"
43 inkscape:bbox-nodes="true"
44 inkscape:object-paths="true"
45 inkscape:snap-intersection-paths="true"
46 inkscape:object-nodes="true"
47 inkscape:snap-smooth-nodes="true"
48 inkscape:snap-midpoints="true"
49 inkscape:snap-others="true"
50 inkscape:snap-object-midpoints="true"
51 inkscape:snap-center="true"
52 showguides="false"
53 inkscape:guide-bbox="true">
54 <inkscape:grid
55 type="xygrid"
56 id="grid6700"
57 empspacing="6" />
58 <sodipodi:guide
59 orientation="0,1"
60 position="90,87"
61 id="guide4064" />
62 <sodipodi:guide
63 orientation="0,1"
64 position="89,84"
65 id="guide4066" />
66 <sodipodi:guide
67 orientation="1,0"
68 position="3,69"
69 id="guide4068" />
70 <sodipodi:guide
71 orientation="1,0"
72 position="6,60"
73 id="guide4070" />
74 <sodipodi:guide
75 orientation="1,0"
76 position="87,58"
77 id="guide4072" />
78 <sodipodi:guide
79 orientation="1,0"
80 position="84,47"
81 id="guide4074" />
82 <sodipodi:guide
83 orientation="0,1"
84 position="77,3"
85 id="guide4076" />
86 <sodipodi:guide
87 orientation="0,1"
88 position="81,6"
89 id="guide4078" />
90 <sodipodi:guide
91 orientation="1,0"
92 position="81,25"
93 id="guide4080" />
94 <sodipodi:guide
95 orientation="0,1"
96 position="78,9"
97 id="guide4082" />
98 <sodipodi:guide
99 orientation="0,1"
100 position="79,81"
101 id="guide4084" />
102 <sodipodi:guide
103 orientation="1,0"
104 position="9,39"
105 id="guide4086" />
106 </sodipodi:namedview>
107 <metadata
108 id="metadata6143">
109 <rdf:RDF>
110 <cc:Work
111 rdf:about="">
112 <dc:format>image/svg+xml</dc:format>
113 <dc:type
114 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
115 <dc:title></dc:title>
116 </cc:Work>
117 </rdf:RDF>
118 </metadata>
119 <g
120 inkscape:label="Layer 1"
121 inkscape:groupmode="layer"
122 id="layer1"
123 transform="translate(-283.57144,-358.79068)">
124 <g
125 transform="translate(169.57144,223.42822)"
126 id="g5937"
127 inkscape:export-filename="envelope02.png"
128 inkscape:export-xdpi="90"
129 inkscape:export-ydpi="90" />
130 <g
131 id="g6442"
132 transform="translate(-753.45981,336.4283)">
133 <path
134 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
135 d="M 45.046875 3 C 32.915975 27.594868 24.552722 55.021065 23.982422 56.908203 C 23.901522 57.129789 23.841578 57.361086 23.767578 57.585938 C 23.036878 59.796557 22.623047 62.152027 22.623047 64.607422 C 22.623047 76.973464 32.652638 86.998047 45.023438 86.998047 C 57.372742 86.972595 67.376953 76.959723 67.376953 64.609375 C 67.376953 62.155598 66.975594 59.797236 66.246094 57.587891 C 66.246094 57.587891 58.008075 29.900931 45.046875 3.0390625 L 45.046875 3.03125 L 45.046875 3.0195312 L 45.046875 3.0058594 L 45.046875 3 z M 44.996094 17.728516 C 54.458094 39.650002 60.503906 59.296875 60.503906 59.296875 A 5.9907304 5.9907304 0 0 0 60.558594 59.466797 C 61.095294 61.092212 61.386719 62.80886 61.386719 64.609375 C 61.386719 73.725917 54.126659 80.989079 45.005859 81.005859 C 35.879459 80.996009 28.613281 73.728301 28.613281 64.607422 C 28.613281 62.825026 28.910878 61.113375 29.455078 59.466797 A 5.9907304 5.9907304 0 0 0 29.457031 59.458984 C 29.615031 58.978962 29.665675 58.806709 29.609375 58.960938 A 5.9907304 5.9907304 0 0 0 29.716797 58.638672 C 30.156997 57.182234 36.199294 37.969649 44.996094 17.728516 z "
136 transform="translate(1037.0313,22.36238)"
137 id="path4253" />
138 <rect
139 style="fill:none;stroke:none"
140 id="rect1687"
141 width="90"
142 height="90"
143 x="1037.0312"
144 y="22.362379" />
145 </g>
146 </g>
147</svg>
0148
=== added file 'app/graphics/extended-information_uv-level.svg'
--- app/graphics/extended-information_uv-level.svg 1970-01-01 00:00:00 +0000
+++ app/graphics/extended-information_uv-level.svg 2015-04-29 14:22:07 +0000
@@ -0,0 +1,270 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12 width="90"
13 height="90"
14 id="svg6138"
15 version="1.1"
16 inkscape:version="0.91pre2 r"
17 viewBox="0 0 90 90.000001"
18 sodipodi:docname="weather-uv-level.svg">
19 <defs
20 id="defs6140">
21 <linearGradient
22 id="linearGradient3899">
23 <stop
24 id="stop4292"
25 offset="0"
26 style="stop-color:#fbf7e3;stop-opacity:1" />
27 <stop
28 id="stop4294"
29 offset="1"
30 style="stop-color:#c6b386;stop-opacity:1" />
31 </linearGradient>
32 </defs>
33 <sodipodi:namedview
34 id="base"
35 pagecolor="#ffffff"
36 bordercolor="#666666"
37 borderopacity="1.0"
38 inkscape:pageopacity="0.0"
39 inkscape:pageshadow="2"
40 inkscape:zoom="7.9580785"
41 inkscape:cx="32.979067"
42 inkscape:cy="45.789944"
43 inkscape:document-units="px"
44 inkscape:current-layer="g6442"
45 showgrid="true"
46 fit-margin-top="0"
47 fit-margin-left="0"
48 fit-margin-right="0"
49 fit-margin-bottom="0"
50 inkscape:snap-global="true"
51 inkscape:snap-bbox="true"
52 inkscape:bbox-paths="true"
53 inkscape:snap-bbox-midpoints="true"
54 inkscape:snap-bbox-edge-midpoints="true"
55 inkscape:bbox-nodes="true"
56 inkscape:object-paths="true"
57 inkscape:snap-intersection-paths="true"
58 inkscape:object-nodes="true"
59 inkscape:snap-smooth-nodes="true"
60 inkscape:snap-midpoints="true"
61 inkscape:snap-others="true"
62 inkscape:snap-object-midpoints="true"
63 inkscape:snap-center="true"
64 showguides="true"
65 inkscape:guide-bbox="true">
66 <inkscape:grid
67 type="xygrid"
68 id="grid6700"
69 empspacing="6" />
70 <sodipodi:guide
71 orientation="0,1"
72 position="90,87"
73 id="guide4064" />
74 <sodipodi:guide
75 orientation="0,1"
76 position="89,84"
77 id="guide4066" />
78 <sodipodi:guide
79 orientation="1,0"
80 position="3,69"
81 id="guide4068" />
82 <sodipodi:guide
83 orientation="1,0"
84 position="6,60"
85 id="guide4070" />
86 <sodipodi:guide
87 orientation="1,0"
88 position="87,58"
89 id="guide4072" />
90 <sodipodi:guide
91 orientation="1,0"
92 position="84,47"
93 id="guide4074" />
94 <sodipodi:guide
95 orientation="0,1"
96 position="77,3"
97 id="guide4076" />
98 <sodipodi:guide
99 orientation="0,1"
100 position="81,6"
101 id="guide4078" />
102 <sodipodi:guide
103 orientation="1,0"
104 position="81,25"
105 id="guide4080" />
106 <sodipodi:guide
107 orientation="0,1"
108 position="78,9"
109 id="guide4082" />
110 <sodipodi:guide
111 orientation="0,1"
112 position="79,81"
113 id="guide4084" />
114 <sodipodi:guide
115 orientation="1,0"
116 position="9,39"
117 id="guide4086" />
118 </sodipodi:namedview>
119 <metadata
120 id="metadata6143">
121 <rdf:RDF>
122 <cc:Work
123 rdf:about="">
124 <dc:format>image/svg+xml</dc:format>
125 <dc:type
126 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
127 <dc:title></dc:title>
128 </cc:Work>
129 </rdf:RDF>
130 </metadata>
131 <g
132 inkscape:label="Layer 1"
133 inkscape:groupmode="layer"
134 id="layer1"
135 transform="translate(-283.57144,-358.79068)">
136 <g
137 transform="translate(169.57144,223.42822)"
138 id="g5937"
139 inkscape:export-filename="envelope02.png"
140 inkscape:export-xdpi="90"
141 inkscape:export-ydpi="90" />
142 <g
143 id="g6442"
144 transform="translate(-753.45981,336.4283)">
145 <rect
146 style="fill:none;stroke:none"
147 id="rect1687"
148 width="90"
149 height="90"
150 x="1037.0312"
151 y="22.362379" />
152 <path
153 style="color:#000000;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
154 d="m 1054.1015,75.51863 a 33.872092,33.872092 0 0 0 0.5547,2.339844 33.872092,33.872092 0 0 1 -0.5547,-2.339844 z"
155 id="path4162" />
156 <path
157 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:2.25;marker:none;enable-background:accumulate"
158 d="M 45 12 A 33.00005 33.00005 0 0 0 12 45 A 33.00005 33.00005 0 0 0 45 78 A 33.00005 33.00005 0 0 0 78 45 A 33.00005 33.00005 0 0 0 45 12 z M 45 18 A 27 27 0 0 1 72 45 A 27 27 0 0 1 45 72 A 27 27 0 0 1 18 45 A 27 27 0 0 1 45 18 z "
159 transform="translate(1037.0313,22.36238)"
160 id="path4189" />
161 <path
162 sodipodi:nodetypes="ccsssccc"
163 inkscape:transform-center-y="-37.504247"
164 inkscape:transform-center-x="-0.0125"
165 inkscape:connector-curvature="0"
166 id="path2194-5"
167 d="m 1088.2477,35.36157 c 0,0 -2.5383,-5.872205 -6.1954,-11.007637 0,0 0,0 -0.01,0.0017 0,0 0,0.0017 -0.01,0.0024 0,0 -0.01,0.002 -0.01,0.0026 0,0 -0.01,0.0017 -0.01,0.0017 -3.7738,5.416839 -6.1725,11 -6.1725,11 z"
168 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
169 <path
170 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
171 d="m 1103.4153,42.757091 c 0,0 0.7378,-6.354629 0.1384,-12.630594 0,0 0,0 -0.01,-0.0035 0,0 -9e-4,0.0015 -0.01,-0.0029 0,0 -0.01,-0.0033 -0.01,-0.0027 0,0 -0.01,-0.0035 -0.01,-0.0035 -5.9767,2.80422 -10.8456,6.440029 -10.8456,6.440029 z"
172 id="path4192"
173 inkscape:connector-curvature="0"
174 inkscape:transform-center-x="-16.197006"
175 inkscape:transform-center-y="-30.926886"
176 sodipodi:nodetypes="ccsssccc" />
177 <path
178 sodipodi:nodetypes="ccsssccc"
179 inkscape:transform-center-y="-16.173909"
180 inkscape:transform-center-x="-30.9307"
181 inkscape:connector-curvature="0"
182 id="path4194"
183 d="m 1112.853,56.745599 c 0,0 3.8163,-5.13437 6.4352,-10.869215 0,0 0,0 -0.01,-0.008 0,0 0,8.49e-4 -0.01,-0.0075 0,0 -0.01,-0.0079 -0.01,-0.0073 0,0 -0.01,-0.008 -0.01,-0.008 -6.578,-0.559824 -12.6125,0.154429 -12.6125,0.154429 z"
184 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
185 <path
186 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
187 d="m 1114.0321,73.578853 c 0,0 5.8722,-2.538345 11.0076,-6.195417 0,0 0,0 0,-0.01193 0,0 -5e-4,7.35e-4 -0.01,-0.0115 0,0 0,-0.01184 0,-0.01132 0,0 0,-0.01193 0,-0.01193 -5.4168,-3.773822 -11,-6.172511 -11,-6.172511 z"
188 id="path4196"
189 inkscape:connector-curvature="0"
190 inkscape:transform-center-x="-37.50345"
191 inkscape:transform-center-y="0.0091698086"
192 sodipodi:nodetypes="ccsssccc" />
193 <path
194 sodipodi:nodetypes="ccsssccc"
195 inkscape:transform-center-y="16.194334"
196 inkscape:transform-center-x="-30.9356"
197 inkscape:connector-curvature="0"
198 id="path4198"
199 d="m 1106.6366,88.746428 c 0,0 6.3546,0.737829 12.6305,0.138412 0,0 0,0 0.01,-0.01033 0,0 -8e-4,3.87e-4 0,-0.01496 0,0 0.01,-0.01025 0.01,-0.0098 0,0 0.01,-0.01033 0.01,-0.01033 -2.8042,-5.976626 -6.44,-10.845552 -6.44,-10.845552 z"
200 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
201 <path
202 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
203 d="m 1092.6481,98.184183 c 0,0 5.1343,3.816277 10.8691,6.435117 0,0 0,0 0.014,-0.004 0,0 -8e-4,-7e-5 0.01,-0.013 0,0 0.014,-0.004 0.014,-0.003 0,0 0.014,-0.004 0.014,-0.004 0.5598,-6.578013 -0.1544,-12.612527 -0.1544,-12.612527 z"
204 id="path4200"
205 inkscape:connector-curvature="0"
206 inkscape:transform-center-x="-16.184519"
207 inkscape:transform-center-y="30.938658"
208 sodipodi:nodetypes="ccsssccc" />
209 <path
210 sodipodi:nodetypes="ccsssccc"
211 inkscape:transform-center-y="37.507651"
212 inkscape:transform-center-x="0.003949878"
213 inkscape:connector-curvature="0"
214 id="path4202"
215 d="m 1075.8148,99.363269 c 0,0 2.5383,5.872141 6.1954,11.007521 0,0 0,0 0.014,0.004 0,0 -7e-4,-4.6e-4 0.015,-0.006 0,0 0.014,0.004 0.014,0.004 0,0 0.014,0.004 0.014,0.004 3.7738,-5.41683 6.1726,-10.999969 6.1726,-10.999969 z"
216 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
217 <path
218 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
219 d="m 1060.6472,91.967738 c 0,0 -0.7378,6.354573 -0.1384,12.630492 0,0 0,0 0.01,0.0105 0,0 -3e-4,-7.4e-4 0.016,0.002 0,0 0.01,0.0105 0.01,0.0105 0,0 0.01,0.0105 0.01,0.0105 5.9766,-2.80422 10.8456,-6.439956 10.8456,-6.439956 z"
220 id="path4204"
221 inkscape:connector-curvature="0"
222 inkscape:transform-center-x="16.194006"
223 inkscape:transform-center-y="30.937355"
224 sodipodi:nodetypes="ccsssccc" />
225 <path
226 sodipodi:nodetypes="ccsssccc"
227 inkscape:transform-center-y="16.184506"
228 inkscape:transform-center-x="30.94415"
229 inkscape:connector-curvature="0"
230 id="path4206"
231 d="m 1051.2094,77.97922 c 0,0 -3.8162,5.134322 -6.4351,10.869127 0,0 0,0 0,0.01409 0,0 2e-4,-7.9e-4 0.013,0.0097 0,0 0,0.01409 0,0.01409 0,0 0,0.01409 0,0.01409 6.578,0.559774 12.6126,-0.154365 12.6126,-0.154365 z"
232 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
233 <path
234 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
235 d="m 1050.0303,61.145908 c 0,0 -5.8721,2.538353 -11.0075,6.19539 0,0 0,0 -0.01,0.0122 0,0 5e-4,-5.85e-4 0.01,0.0149 0,0 -0.01,0.0122 -0.01,0.0122 0,0 -0.01,0.0122 -0.01,0.0122 5.4168,3.773778 11,6.172616 11,6.172616 z"
236 id="path4208"
237 inkscape:connector-curvature="0"
238 inkscape:transform-center-x="37.5147"
239 inkscape:transform-center-y="-0.0067180911"
240 sodipodi:nodetypes="ccsssccc" />
241 <path
242 sodipodi:nodetypes="ccsssccc"
243 inkscape:transform-center-y="-16.199665"
244 inkscape:transform-center-x="30.94315"
245 inkscape:connector-curvature="0"
246 id="path4210"
247 d="m 1057.4258,45.978282 c 0,0 -6.3545,-0.737771 -12.6304,-0.138384 0,0 0,0 -0.015,0.0056 0,0 7e-4,-2.57e-4 0,0.0179 0,0 -0.015,0.0056 -0.015,0.0056 0,0 -0.015,0.0056 -0.015,0.0056 2.8042,5.976587 6.44,10.845642 6.44,10.845642 z"
248 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate" />
249 <path
250 style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:3;marker:none;enable-background:accumulate"
251 d="m 1071.4144,36.540483 c 0,0 -5.1343,-3.816179 -10.8691,-6.435044 0,0 0,0 -0.016,-0.0026 0,0 7e-4,1.27e-4 -0.01,0.0155 0,0 -0.016,-0.0026 -0.016,-0.0026 0,0 -0.016,-0.0026 -0.016,-0.0026 -0.5598,6.577976 0.1544,12.612601 0.1544,12.612601 z"
252 id="path4212"
253 inkscape:connector-curvature="0"
254 inkscape:transform-center-x="16.187519"
255 inkscape:transform-center-y="-30.94809"
256 sodipodi:nodetypes="ccsssccc" />
257 <text
258 xml:space="preserve"
259 style="font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;font-size:31.51123047px;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:'Ubuntu Medium';text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
260 x="1103.2705"
261 y="79.316757"
262 id="text4214"
263 sodipodi:linespacing="125%"><tspan
264 sodipodi:role="line"
265 id="tspan4216"
266 x="1103.2705"
267 y="79.316757">UV</tspan></text>
268 </g>
269 </g>
270</svg>
0271
=== added file 'app/graphics/extended-information_wind.svg'
--- app/graphics/extended-information_wind.svg 1970-01-01 00:00:00 +0000
+++ app/graphics/extended-information_wind.svg 2015-04-29 14:22:07 +0000
@@ -0,0 +1,155 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:dc="http://purl.org/dc/elements/1.1/"
6 xmlns:cc="http://creativecommons.org/ns#"
7 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8 xmlns:svg="http://www.w3.org/2000/svg"
9 xmlns="http://www.w3.org/2000/svg"
10 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12 width="90"
13 height="90"
14 id="svg6138"
15 version="1.1"
16 inkscape:version="0.91pre2 r"
17 viewBox="0 0 90 90.000001"
18 sodipodi:docname="weather-chance-of-wind02.svg">
19 <defs
20 id="defs6140" />
21 <sodipodi:namedview
22 id="base"
23 pagecolor="#ffffff"
24 bordercolor="#666666"
25 borderopacity="1.0"
26 inkscape:pageopacity="0.0"
27 inkscape:pageshadow="2"
28 inkscape:zoom="3.2596289"
29 inkscape:cx="81.435648"
30 inkscape:cy="24.842587"
31 inkscape:document-units="px"
32 inkscape:current-layer="g6442"
33 showgrid="true"
34 fit-margin-top="0"
35 fit-margin-left="0"
36 fit-margin-right="0"
37 fit-margin-bottom="0"
38 inkscape:snap-global="true"
39 inkscape:snap-bbox="true"
40 inkscape:bbox-paths="true"
41 inkscape:snap-bbox-midpoints="true"
42 inkscape:snap-bbox-edge-midpoints="true"
43 inkscape:bbox-nodes="true"
44 inkscape:object-paths="true"
45 inkscape:snap-intersection-paths="true"
46 inkscape:object-nodes="true"
47 inkscape:snap-smooth-nodes="true"
48 inkscape:snap-midpoints="true"
49 inkscape:snap-others="true"
50 inkscape:snap-object-midpoints="true"
51 inkscape:snap-center="true"
52 showguides="false"
53 inkscape:guide-bbox="true">
54 <inkscape:grid
55 type="xygrid"
56 id="grid6700"
57 empspacing="6" />
58 <sodipodi:guide
59 orientation="0,1"
60 position="90,87"
61 id="guide4064" />
62 <sodipodi:guide
63 orientation="0,1"
64 position="89,84"
65 id="guide4066" />
66 <sodipodi:guide
67 orientation="1,0"
68 position="3,69"
69 id="guide4068" />
70 <sodipodi:guide
71 orientation="1,0"
72 position="6,60"
73 id="guide4070" />
74 <sodipodi:guide
75 orientation="1,0"
76 position="87,58"
77 id="guide4072" />
78 <sodipodi:guide
79 orientation="1,0"
80 position="84,47"
81 id="guide4074" />
82 <sodipodi:guide
83 orientation="0,1"
84 position="77,3"
85 id="guide4076" />
86 <sodipodi:guide
87 orientation="0,1"
88 position="81,6"
89 id="guide4078" />
90 <sodipodi:guide
91 orientation="1,0"
92 position="81,25"
93 id="guide4080" />
94 <sodipodi:guide
95 orientation="0,1"
96 position="78,9"
97 id="guide4082" />
98 <sodipodi:guide
99 orientation="0,1"
100 position="79,81"
101 id="guide4084" />
102 <sodipodi:guide
103 orientation="1,0"
104 position="9,39"
105 id="guide4086" />
106 </sodipodi:namedview>
107 <metadata
108 id="metadata6143">
109 <rdf:RDF>
110 <cc:Work
111 rdf:about="">
112 <dc:format>image/svg+xml</dc:format>
113 <dc:type
114 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
115 <dc:title></dc:title>
116 </cc:Work>
117 </rdf:RDF>
118 </metadata>
119 <g
120 inkscape:label="Layer 1"
121 inkscape:groupmode="layer"
122 id="layer1"
123 transform="translate(-283.57144,-358.79068)">
124 <g
125 transform="translate(169.57144,223.42822)"
126 id="g5937"
127 inkscape:export-filename="envelope02.png"
128 inkscape:export-xdpi="90"
129 inkscape:export-ydpi="90" />
130 <g
131 id="g6442"
132 transform="translate(-753.45981,336.4283)">
133 <rect
134 style="fill:none;stroke:none"
135 id="rect1687"
136 width="90"
137 height="90"
138 x="1037.0312"
139 y="22.362379" />
140 <path
141 style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-indent:0;text-align:end;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;baseline-shift:baseline;text-anchor:end;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#808080;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:6;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
142 d="m 75.279297,28.75 c -1.0334,0 -2.070116,0.17314 -3.103516,0.517578 -1.0332,0.301421 -1.957037,0.799407 -2.773437,1.488281 -0.7749,0.645859 -1.426106,1.497766 -1.941406,2.574219 -0.193801,0.386934 -0.311535,0.83777 -0.427735,1.285156 l 4.048828,2.333985 c 0.066,-0.47516 0.09082,-0.97049 0.265625,-1.34961 0.2583,-0.516687 0.599203,-0.93497 1.033203,-1.236328 0.4327,-0.344501 0.877363,-0.575907 1.351563,-0.705078 0.5166,-0.172251 1.013028,-0.253906 1.486328,-0.253906 0.9909,0 1.914591,0.365704 2.775391,1.097656 0.9043,0.688938 1.349609,1.71392 1.349609,3.091797 0,1.463904 -0.463956,2.57267 -1.410156,3.304688 -0.9054,0.731951 -2.2137,1.097656 -3.9375,1.097656 l -0.90625,0 -5.109375,0 -2.976563,0 -53.367237,0 0,0.0039 c -1.118972,8.07e-4 -2.232917,0.175074 -3.2753908,0.546875 -1.0812,0.374449 -2.0898969,0.990457 -2.9042969,1.802734 -0.8511,0.837684 -1.4685875,1.874775 -1.8671875,2.980469 -0.422,1.158702 -0.5898438,2.388837 -0.5898438,3.673828 0,1.287641 0.1681907,2.523171 0.5878907,3.6875 l 0,0.0059 0,0.0078 c 0.4008,1.096658 1.0169625,2.124759 1.8515625,2.960938 l 0.011719,0.01172 0.011719,0.01172 c 0.8122,0.795376 1.8055406,1.402256 2.8691406,1.785156 l 0.023437,0.0059 0.019531,0.0078 c 1.041,0.357709 2.145119,0.521485 3.261719,0.521485 l 0,0.002 41.3438,0 2.980469,0 5.115234,0 0.908203,0 c 1.7259,0 3.034806,0.36677 3.941406,1.099609 0.9473,0.732906 1.414063,1.842913 1.414063,3.308594 0,1.379548 -0.446163,2.403976 -1.351563,3.09375 -0.8619,0.73284 -1.787297,1.099609 -2.779297,1.099609 -0.4739,0 -0.970981,-0.08145 -1.488281,-0.253906 -0.4746,-0.129329 -0.920316,-0.362111 -1.353515,-0.707031 -0.434501,-0.301723 -0.776457,-0.720967 -1.035157,-1.238282 -0.1741,-0.379579 -0.200625,-0.873874 -0.265625,-1.349609 l -4.052734,2.335938 c 0.1164,0.44793 0.231781,0.899706 0.425781,1.287109 0.5159,1.07776 1.169413,1.931483 1.945313,2.578125 0.8175,0.689709 1.742843,1.188446 2.777343,1.490234 1.0347,0.344855 2.072722,0.517579 3.107422,0.517579 0.7758,0 1.660344,-0.153292 2.652344,-0.455079 1.0346,-0.258658 1.998997,-0.75733 2.904297,-1.490234 0.906,-0.68971 1.658365,-1.634709 2.259766,-2.841797 0.605199,-1.163958 0.910156,-2.648384 0.910156,-4.458984 l 0.0039,0 C 72,60.363013 70.961878,57.768642 68.892578,56.259766 66.823378,54.750954 63.956869,54 60.292969,54 l -48.6563,0 0,0.0098 c -0.5345,0 -0.948916,-0.07592 -1.291016,-0.191407 -0.2996,-0.111208 -0.4927686,-0.23897 -0.6679686,-0.408203 -0.1552,-0.158288 -0.3061656,-0.371439 -0.4472656,-0.751953 l 0,-0.0039 c -0.1279,-0.355148 -0.2324219,-0.897858 -0.2324219,-1.650391 0,-0.752625 0.1039625,-1.28965 0.2265625,-1.625 l 0,-0.0059 0,-0.0078 c 0.1465,-0.406946 0.2963938,-0.609758 0.4335938,-0.74414 l 0.011719,-0.01172 0.011719,-0.01172 c 0.1749,-0.175302 0.3458723,-0.286102 0.6386723,-0.386718 l 0.01953,-0.0078 0.02148,-0.0078 C 10.695178,48.075095 11.107669,48 11.636669,48 l 60.669972,0 c 3.6595,0 6.523043,-0.750829 8.589843,-2.257812 C 82.963184,44.23514 84,41.644264 84,37.984375 l -0.0039,0 c 0,-1.808407 -0.303703,-3.290578 -0.908203,-4.453125 -0.6007,-1.205626 -1.352913,-2.149016 -2.257813,-2.837891 -0.9043,-0.732015 -1.86719,-1.229936 -2.90039,-1.488281 C 76.938787,28.903658 76.054197,28.75 75.279297,28.75 Z"
143 transform="translate(1037.0313,22.36238)"
144 id="path4178"
145 inkscape:connector-curvature="0"
146 sodipodi:nodetypes="sccccccccscscsccccccccsccccccccccccccscscsccccccccscccccssccccccscccccccccssccccccs" />
147 <path
148 sodipodi:nodetypes="ccccsccccccccscscscccccsscc"
149 inkscape:connector-curvature="0"
150 id="path4171"
151 d="m 1091.0274,48.500103 c 0,-1.780677 -0.2989,-3.239878 -0.8941,-4.384599 -0.5915,-1.187139 -1.3323,-2.116397 -2.2233,-2.794708 -0.8904,-0.720792 -1.8392,-1.211305 -2.8567,-1.465688 -0.9756,-0.2968 -1.8456,-0.44714 -2.6087,-0.44714 -1.0176,0 -2.0383,0.170054 -3.0558,0.50921 -1.0175,0.2968 -1.9269,0.787377 -2.7308,1.465687 -0.7631,0.635956 -1.4055,1.473955 -1.9129,2.533903 -0.1908,0.381001 -0.3053,0.826425 -0.4198,1.266952 l 3.9862,2.297899 c 0.064,-0.467873 0.089,-0.955778 0.2607,-1.329084 0.2544,-0.508765 0.5915,-0.920483 1.0188,-1.21722 0.4261,-0.339219 0.8637,-0.568417 1.3305,-0.695608 0.5087,-0.16961 0.9978,-0.248405 1.4639,-0.248405 0.9756,0 1.885,0.359888 2.7327,1.080617 0.8904,0.678374 1.3292,1.686427 1.3292,3.043176 0,1.441458 -0.4579,2.533521 -1.3896,3.254314 -0.8916,0.720728 -2.1794,1.080616 -3.8768,1.080616 l -0.8929,0 -5.031,0 -2.9311,0 -17.2945,0 0,5.912355 24.4865,0 c 3.6033,0 6.4232,-0.739426 8.4582,-2.223302 2.0351,-1.48394 3.0552,-4.035204 3.0552,-7.638975 z"
152 style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:medium;line-height:125%;font-family:Ubuntu;-inkscape-font-specification:Ubuntu;text-align:end;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:end;fill:#808080;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
153 </g>
154 </g>
155</svg>
0156
=== modified file 'app/ui/HomePage.qml'
--- app/ui/HomePage.qml 2015-04-26 23:41:58 +0000
+++ app/ui/HomePage.qml 2015-04-29 14:22:07 +0000
@@ -96,6 +96,12 @@
96 height: parent.height96 height: parent.height
97 contentWidth: parent.width97 contentWidth: parent.width
9898
99 Behavior on contentHeight {
100 NumberAnimation {
101
102 }
103 }
104
99 PullToRefresh {105 PullToRefresh {
100 id: pullToRefresh106 id: pullToRefresh
101 parent: locationFlickable107 parent: locationFlickable
@@ -112,20 +118,26 @@
112 ListView {118 ListView {
113 id: locationPages119 id: locationPages
114 anchors.fill: parent120 anchors.fill: parent
115 width: parent.width121 currentIndex: settings.current
122 delegate: LocationPane {}
116 height: childrenRect.height123 height: childrenRect.height
117 contentWidth: parent.width124 highlightRangeMode: ListView.StrictlyEnforceRange
118 contentHeight: childrenRect.height
119 model: weatherApp.locationsList.length125 model: weatherApp.locationsList.length
126 orientation: ListView.Horizontal
120 // TODO with snapMode, currentIndex is not properly set and setting currentIndex fails127 // TODO with snapMode, currentIndex is not properly set and setting currentIndex fails
121 //snapMode: ListView.SnapOneItem128 //snapMode: ListView.SnapOneItem
122 orientation: ListView.Horizontal129 width: parent.width
123 currentIndex: settings.current130
124 highlightRangeMode: ListView.StrictlyEnforceRange131 property bool loaded: false
132
133 signal collapseOtherDelegates(int index)
134
125 onCurrentIndexChanged: {135 onCurrentIndexChanged: {
126 if (loaded) {136 if (loaded) {
127 // FIXME: when a model is reloaded this causes the currentIndex to be lost137 // FIXME: when a model is reloaded this causes the currentIndex to be lost
128 settings.current = currentIndex138 settings.current = currentIndex
139
140 collapseOtherDelegates(-1) // collapse all
129 }141 }
130 }142 }
131 onModelChanged: {143 onModelChanged: {
@@ -137,9 +149,12 @@
137 loaded = true149 loaded = true
138 }150 }
139 }151 }
140 delegate: LocationPane {}152 onVisibleChanged: {
153 if (!visible && loaded) {
154 collapseOtherDelegates(-1) // collapse all
155 }
156 }
141157
142 property bool loaded: false
143 // TODO: workaround for not being able to use snapMode property158 // TODO: workaround for not being able to use snapMode property
144 Component.onCompleted: {159 Component.onCompleted: {
145 var scaleFactor = units.gridUnit * 10;160 var scaleFactor = units.gridUnit * 10;
146161
=== modified file 'app/ui/LocationPane.qml'
--- app/ui/LocationPane.qml 2015-04-07 18:01:24 +0000
+++ app/ui/LocationPane.qml 2015-04-29 14:22:07 +0000
@@ -21,7 +21,7 @@
21import Ubuntu.Components.ListItems 0.1 as ListItem21import Ubuntu.Components.ListItems 0.1 as ListItem
22import "../components"22import "../components"
2323
24Rectangle {24Item {
25 id: locationItem25 id: locationItem
26 /*26 /*
27 Data properties27 Data properties
@@ -40,13 +40,15 @@
40 height: childrenRect.height40 height: childrenRect.height
41 anchors.fill: parent.fill41 anchors.fill: parent.fill
4242
43 /*43 // FIXME: not sure where the 3GU comes from, PullToRefresh or something in HomePage?
44 Calculates the height of all location data components, to set the Flickable.contentHeight right.44 onHeightChanged: locationFlickable.contentHeight = locationItem.height + units.gu(3)
45 */45
46 function setFlickableContentHeight() {46 function emptyIfUndefined(variable, append) {
47 var contentHeightGu = (homeTempInfo.height+homeGraphic.height47 if (append === undefined) {
48 +(weekdayColumn.height*mainPageWeekdayListView.model.count))/units.gridUnit;48 append = ""
49 locationFlickable.contentHeight = units.gu(contentHeightGu+25);49 }
50
51 return variable === undefined ? "" : variable + append
50 }52 }
5153
52 /*54 /*
@@ -97,12 +99,16 @@
97 day: formatTimestamp(forecasts[x].date, 'dddd'),99 day: formatTimestamp(forecasts[x].date, 'dddd'),
98 low: Math.round(forecasts[x][tempUnits].tempMin).toString() + settings.tempScale,100 low: Math.round(forecasts[x][tempUnits].tempMin).toString() + settings.tempScale,
99 high: (forecasts[x][tempUnits].tempMax !== undefined) ? Math.round(forecasts[x][tempUnits].tempMax).toString() + settings.tempScale : "",101 high: (forecasts[x][tempUnits].tempMax !== undefined) ? Math.round(forecasts[x][tempUnits].tempMax).toString() + settings.tempScale : "",
100 image: (forecasts[x].icon !== undefined && iconMap[forecasts[x].icon] !== undefined) ? iconMap[forecasts[x].icon] : ""102 image: (forecasts[x].icon !== undefined && iconMap[forecasts[x].icon] !== undefined) ? iconMap[forecasts[x].icon] : "",
103 chanceOfRain: forecasts[x].propPrecip === undefined ? -1 : forecasts[x].propPrecip,
104 humidity: emptyIfUndefined(forecasts[x].humidity, "%"),
105 uvIndex: emptyIfUndefined(forecasts[x].uv),
106 wind: forecasts[x][tempUnits].windSpeed === undefined || forecasts[x].windDir === undefined
107 ? "" : Math.round(forecasts[x][tempUnits].windSpeed) + settings.windUnits + " " + forecasts[x].windDir
101 }108 }
102 mainPageWeekdayListView.model.append(dayData);109 mainPageWeekdayListView.model.append(dayData);
103 }110 }
104 } 111 }
105 setFlickableContentHeight();
106112
107 // set data for hourly forecasts113 // set data for hourly forecasts
108 if(hourlyForecasts.length > 0) {114 if(hourlyForecasts.length > 0) {
@@ -165,6 +171,7 @@
165 id: weekdayColumn171 id: weekdayColumn
166 width: parent.width172 width: parent.width
167 height: childrenRect.height173 height: childrenRect.height
174
168 anchors {175 anchors {
169 top: locationTop.bottom176 top: locationTop.bottom
170 left: parent.left177 left: parent.left
@@ -174,11 +181,20 @@
174 Repeater {181 Repeater {
175 id: mainPageWeekdayListView182 id: mainPageWeekdayListView
176 model: ListModel{}183 model: ListModel{}
177 DayDelegate {184 delegate: DayDelegate {
178 day: model.day185 day: model.day
179 high: model.high186 high: model.high
180 image: model.image187 image: model.image
181 low: model.low188 low: model.low
189
190 chanceOfRain: model.chanceOfRain
191 humidity: model.humidity
192 // TODO: extra from API
193 //pollen: model.pollen
194 //sunrise: model.sunrise
195 //sunset: model.sunset
196 wind: model.wind
197 uvIndex: model.uvIndex
182 }198 }
183 }199 }
184 }200 }
185201
=== modified file 'po/com.ubuntu.weather.pot'
--- po/com.ubuntu.weather.pot 2015-04-27 22:49:35 +0000
+++ po/com.ubuntu.weather.pot 2015-04-29 14:22:07 +0000
@@ -8,7 +8,7 @@
8msgstr ""8msgstr ""
9"Project-Id-Version: ubuntu-weather-app\n"9"Project-Id-Version: ubuntu-weather-app\n"
10"Report-Msgid-Bugs-To: \n"10"Report-Msgid-Bugs-To: \n"
11"POT-Creation-Date: 2015-04-27 17:49-0500\n"11"POT-Creation-Date: 2015-04-29 15:21+0100\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -18,6 +18,34 @@
18"Content-Transfer-Encoding: 8bit\n"18"Content-Transfer-Encoding: 8bit\n"
19"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"19"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
2020
21#: ../app/components/DayDelegate.qml:193
22msgid "Chance of rain"
23msgstr ""
24
25#: ../app/components/DayDelegate.qml:202
26msgid "Winds"
27msgstr ""
28
29#: ../app/components/DayDelegate.qml:209
30msgid "UV Index"
31msgstr ""
32
33#: ../app/components/DayDelegate.qml:214
34msgid "Pollen"
35msgstr ""
36
37#: ../app/components/DayDelegate.qml:220
38msgid "Humidity"
39msgstr ""
40
41#: ../app/components/DayDelegate.qml:226
42msgid "Sunrise"
43msgstr ""
44
45#: ../app/components/DayDelegate.qml:232
46msgid "Sunset"
47msgstr ""
48
21#: ../app/components/HomeTempInfo.qml:3849#: ../app/components/HomeTempInfo.qml:38
22msgid "Today"50msgid "Today"
23msgstr ""51msgstr ""

Subscribers

People subscribed via source and target branches

to all changes: