Merge lp:~josephjamesmills/ubuntu-weather-app/MockUp into lp:ubuntu-weather-app/obsolete.trunk

Proposed by Joseph Mills
Status: Rejected
Rejected by: David Planella
Proposed branch: lp:~josephjamesmills/ubuntu-weather-app/MockUp
Merge into: lp:ubuntu-weather-app/obsolete.trunk
Diff against target: 4556 lines (+3974/-233)
37 files modified
ATTRIBUTION (+7/-0)
Home.qml (+1111/-0)
Main.qml (+18/-0)
README (+0/-1)
StartHere.qml (+158/-0)
common/Tabs.qml (+23/-0)
common/Templets.qml (+88/-0)
common/Utils.js (+155/-0)
common/dbUtils.js (+243/-0)
debian/changelog (+0/-5)
debian/compat (+0/-1)
debian/control (+0/-18)
debian/copyright (+0/-45)
debian/rules (+0/-29)
debian/source/format (+0/-1)
debian/ubuntu-weather-app.install (+0/-3)
examples/Browsers/youtube/BrowserHeader.qml (+150/-0)
examples/Browsers/youtube/BrowserScrollbars.qml (+66/-0)
examples/Browsers/youtube/ButtonBackground.qml (+49/-0)
examples/Browsers/youtube/FlicableWebView.qml (+194/-0)
examples/Browsers/youtube/Youtube.qml (+74/-0)
examples/GetLatLongDelegate.qml (+54/-0)
examples/GetLatLongModel.qml (+40/-0)
examples/NOAADelegate.qml (+6/-0)
examples/NOAAModel.qml (+6/-0)
examples/ProgressDialog.qml (+55/-0)
examples/SearchBar.qml (+60/-0)
examples/SearchBox.qml (+77/-0)
examples/TWC.qml (+24/-0)
examples/WeatherDelegate.qml (+1091/-0)
examples/WeatherModel.qml (+21/-0)
po/po.pro (+0/-48)
ubuntu-weather-app (+0/-2)
ubuntu-weather-app.desktop (+0/-8)
weather.qml (+0/-71)
weather.qmlproject (+1/-1)
weather.qmlproject.user (+203/-0)
To merge this branch: bzr merge lp:~josephjamesmills/ubuntu-weather-app/MockUp
Reviewer Review Type Date Requested Status
David Planella Disapprove
Review via email: mp+149113@code.launchpad.net

Description of the change

Added frame work for weather added apis added pages for Home and for searching added sql database and javascript functions to call add truncate ect

To post a comment you must log in.
Revision history for this message
David Planella (dpm) wrote :

Thanks a lot Joseph!

While reviewing, one of the first things I've noticed is that there are about 70 lines of commented-out code on Home.qml. If that code is not used, it should be removed. We shouldn't be committing dead code. Do you think you could fix this?

Also, could you make sure that the design conforms to the mockups the design team submitted at:

https://wiki.ubuntu.com/Touch/CoreApps/Weather

I'd also recommend coordinating such big changes with the current Weather team on the ubuntu-phone mailing list to avoid duplication of work.

If you could address those issues and re-submit, that'd be great. Thanks again!

review: Needs Fixing
Revision history for this message
Joseph Mills (josephjamesmills) wrote :

Sure tell you designers to listen to me. tell them to send the artwork to me I asked maybe they would listen to you.
as far as the designers guide take what I have and do that work There are also many things that I wanted to add but I can not sue to the fact that there are missing things in the SDK

as far as comments and what not I have fixed all that. maybe if you can also tell the designers that they should use qmlginp-exporter so I dont have to do THERE JOB please. As far as I am concerened I am done with this until I get the repect that is needed to make this happen IE designers talking to me. Until then I can not even do anything.

Revision history for this message
David Planella (dpm) wrote :

This branch is by now pretty old and trunk has diverged significantly. Marking it as Rejected as part of the core apps branch cleanup.

review: Disapprove

Unmerged revisions

5. By Joseph Mills

modified:
  StartHere.qml
  common/Tabs.qml
  examples/GetLatLongDelegate.qml
  examples/GetLatLongModel.qml
  examples/ProgressDialog.qml
  examples/WeatherDelegate.qml
  examples/WeatherModel.qml
  weather.qmlproject.user

4. By Joseph Mills

autopush

3. By Joseph Mills

made framwork to call api

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== added file 'ATTRIBUTION'
--- ATTRIBUTION 1970-01-01 00:00:00 +0000
+++ ATTRIBUTION 2013-02-18 17:43:29 +0000
@@ -0,0 +1,7 @@
1Graphical resources and original code adapted from the weather-qml demo
2available at:
3
4git@gitorious.org:qt-labs/mobile-demos.git
5
6A big thanks to our buddies from INdT for some good looking artwork and
7nifty demo material
08
=== added file 'Home.qml'
--- Home.qml 1970-01-01 00:00:00 +0000
+++ Home.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,1111 @@
1import QtQuick 2.0
2import QtQuick.XmlListModel 2.0
3import QtQuick.Particles 2.0
4import Ubuntu.Components 0.1
5import QtQuick.LocalStorage 2.0
6import "common/dbUtils.js" as DataBase
7import "common/Utils.js" as Util
8Item {
9 id: serie
10 width: parent.width
11 height: parent.width
12// property string name:''
13// property string countryName:''
14// property string adminName1:''
15// // property string south:''
16// property string folder: "../artwork"
17// property string forTWC: cityName.text
18
19// function translateX(x) {
20// return root.width/10.0 + (x/700*root.width);
21// }
22
23// function translateY(y) {
24// var tmp = y+root.height/5.0;
25// return tmp > 0 ? -20 : tmp;
26// }
27// function loadDetails(countryName,adminName1,name) {
28// serie.name = name
29// serie.countryName = countryName
30// serie.adminName1 = adminName1
31// serieModel.load(countryName,adminName1,name)
32// }
33
34// XmlListModel {
35// id: serieModel
36// function load(CountryName,AdminName1,Name) {
37// console.log("Loading Weather For ....... \n "+Name+"\n \n"
38// + encodeURI("http://www.yr.no/place/"
39// + CountryName
40// + "/"
41// + AdminName1
42// + "/"
43// + Name
44// + "/forecast.xml"))
45// source = encodeURI("http://www.yr.no/place/"+CountryName+"/"+AdminName1+"/"+Name+"/forecast.xml")
46// reload()
47// }
48// query: "/weatherdata"
49// XmlRole { name: "timezone"; query: "location/type/string()"}
50
51// // Right Now
52// XmlRole { name: "timeFrom"; query: "forecast/tabular/time[1]/@from/string()"}
53// XmlRole { name: "timeTo"; query: "forecast/tabular/time[1]/@to/string()"}
54// XmlRole { name: "observationTime"; query: "forecast/tabular/time[1]/string()"}
55// XmlRole { name: "temperature"; query: "forecast/tabular/time[1]/temperature/@value/string()" }
56// XmlRole { name: "precipitation"; query: "forecast/tabular/time[1]/precipitation/@value/string()" }
57// XmlRole { name: "clouds"; query: "forecast/tabular/time[1]/symbol/@name/string()" }
58// XmlRole { name: "windDirection"; query: "forecast/tabular/time[1]/windDirection/@name/string()" }
59// XmlRole { name: "windSpeed"; query: "forecast/tabular/time[1]/windSpeed/@name/string()" }
60// XmlRole { name: "windSpeedMPS"; query: "forecast/tabular/time[1]/windSpeed/@mps/string()" }
61// XmlRole { name: "pressure"; query: "forecast/tabular/time[1]/pressure/@value/string()" }
62// XmlRole { name: "sunRise"; query: "sun/@rise/string()" }
63// XmlRole { name: "sunSet"; query: "sun/@set/string()" }
64
65
66// XmlRole { name: "weatherCondition"; query: "forecast/tabular/string()"}
67// XmlRole { name: "status"; query: "forecast/tabular/string()" }
68
69
70
71
72// // XmlRole { name: "lastupdate"; query: "meta/lastupdate/string()" }
73// // XmlRole { name: "nextupdate"; query: "meta/nextupdate/string()" }
74// XmlRole { name:"creditTXT"; query: "credit/link/@text/string()"}
75// XmlRole { name:"creditURL"; query: "credit/link/@url/string()"}
76// onStatusChanged: {
77// if (status == XmlListModel.Ready) console.log("Loaded")
78// if (status == XmlListModel.Loading) console.log("Loading");
79// }
80// }
81
82 Text {
83 id: cityName
84 color: "white"
85 height:22
86 font.bold: true
87 font.pixelSize: 28
88 text: DataBase.homeCity()
89 anchors{
90 top: parent.top
91 topMargin: 80
92 }
93 }
94
95 Rectangle{
96 id: separator1
97 color: "#44000000"
98 height: 3
99 width: parent.width
100 anchors{
101 top: cityName.bottom
102 topMargin: 10
103 left: parent.left
104 }
105 }
106 Text {
107 id: today
108 text: Qt.formatDate(new Date(), "MMMM dddd"+","+" d yyyy ")
109 color: "white"
110 font.pixelSize: 22
111 anchors{
112 top:separator1.bottom
113 topMargin: 2
114 }
115 }
116 ListView {
117 model: homeModel
118 width: parent.width
119 height: parent.height
120 delegate: Item{
121 property string temp: tempatureTxt.text.toString()
122 id: topLayout
123 width: parent.width;
124 height: parent.height
125
126 Text {
127 id: timeAroo
128 text:Qt.formatDateTime(new Date(), "hh"+":"+"mm")
129 height:22
130 state: "Milatary"
131 x:state === "Milatary" ? separator1.width - 88 : separator1.width - 115
132 Behavior on x{NumberAnimation{
133 duration: 1200; easing.type: Easing.OutBounce}
134 }
135 color: "white"
136 font.bold: true
137 font.pixelSize: 22
138 anchors{
139 top: parent.top
140 topMargin: 0
141 //
142 }
143 }
144 MouseArea{
145 anchors.fill: timeAroo
146 onClicked: if (timeAroo.text === Qt.formatDateTime(new Date(), "hh"+":"+"mm") ){
147 timeAroo.text = Qt.formatDateTime(new Date(), "h:mm ap")
148 timeAroo.state = "12-Hour"
149 }else{
150 timeAroo.text = Qt.formatDateTime(new Date(), "hh"+":"+"mm")
151 timeAroo.state = "Milatary"
152 }
153 }
154 Image {
155 id: fahrenheitImg
156 source: "artwork/"+"fahrenheit.png"
157 width: sourceSize.width / 2
158 height: sourceSize.height / 2
159 opacity: tempatureTxt.state === "Celcius" ? 0 : 1
160 Behavior on opacity {NumberAnimation{duration: 200; easing.type: Easing.InQuad}}
161 y: tempatureTxt.state === "Celcius" ? separator1.height * 2 : separator1.width
162 Behavior on y {NumberAnimation{duration: 1200 ; easing.type: Easing.OutBack}}
163 x: tempatureTxt.width + tempatureTxt.height + 12
164 }
165 Image {
166 id: celciusImg
167 source:{if(tempatureTxt.state === "Celcius")
168 "artwork/"+"centigrades.png"
169 else
170 "artwork/"+"fahrenheit.png"
171 }
172 height: sourceSize.height / 2
173 width: sourceSize.width / 2
174
175 opacity: tempatureTxt.state === "Celcius" ? 1 : 0
176 Behavior on opacity {NumberAnimation{duration:200; easing.type: Easing.OutQuad}}
177 x: tempatureTxt.state === "Celcius" ? tempatureTxt.width :tempatureTxt.state === "Fahrenheit"? -separator1.width : tempatureTxt.width
178 Behavior on x{NumberAnimation{duration: 1200; easing.type: Easing.OutBack}}
179 anchors{
180 top: tempatureTxt.top
181 }
182
183 }
184 Text {
185 id: tempatureTxt
186 text: temperature
187 color: "white"
188 width: separator1.width / 2
189 font.pixelSize: 64
190 font.bold: true
191 state: "Celcius"
192 x: state === "Celcius" ? (separator1.width / 1.22)-width : (separator1.width/1.22)-width
193 y: parent.width / 1.12
194 }MouseArea{
195 anchors.fill: tempatureTxt
196 onClicked: {
197 var f = (temperature * 9 / 5 + 32)
198 if (tempatureTxt.state === "Celcius"){
199 tempatureTxt.text = (temperature * 9 / 5 + 32)
200 tempatureTxt.state = "Fahrenheit"
201 }else{
202 tempatureTxt.text = temperature
203 tempatureTxt.state = "Celcius"
204
205 }
206 }
207 }
208
209
210 Image {
211 id: hangerSunMoon
212 height: sourceSize.height
213 source: "artwork/na_icon_line.png"
214 y:mainImage.y - mainImage.sourceSize.height
215 anchors{
216 horizontalCenter: mainImage.horizontalCenter
217 }
218 }
219
220 //This is only for MOON and Sun & fallback
221 Image {
222 id: mainImage
223 width: sourceSize.width / 1.04
224 height: sourceSize.height
225 smooth: true
226 state: "Shown"
227 x: parent.width /2 - (width/2)
228 y: if (state === "Shown")
229 parent.width / 4.22
230 else if (state === "Hidden")
231 -parent.width
232 else
233 parent.width/ 5.44
234 Behavior on y{NumberAnimation{duration: 1200;easing.type: Easing.OutBounce}}
235 source: {
236
237 if (Util.nightOrDay(new Date(),"hh") === "night" === true )
238 "artwork/" + "moon.png"
239 else if (Util.nightOrDay(new Date(),"hh") === "night" !== true && temperature > 5)
240 "artwork/" + "sun.png"
241 else if (Util.nightOrDay(new Date(),"hh") === "night" !== true && temperature < 5)
242 "artwork/" + "cold_sun.png"
243
244 else if (weatherCondition === "light rain" && Util.nightOrDay(new Date(),"hh") === "night" !== true)
245 "artwork/"+"sun.png"
246
247
248 else if (weatherCondition === "mist" && Util.nightOrDay(new Date(),"hh") === "night" !== true)
249 "artwork/"+"cold_sun.png"
250
251
252
253 else
254 "artwork/" +"na_icon.png"
255 }
256
257 }MouseArea {
258 id:mainImageMouseArea
259 anchors.fill: mainImage
260 onPressAndHold:{ mainImage.state = "Hidden" }
261 onReleased:{mainImage.state = "Shown"}
262 onClicked: {
263// observationTime.subString(observationTime.lastIndexOf("T")+1)+observationTime.subString(0,observationTime.indexOf(":")+)
264// sunSet) moon
265//observationTime.substring(observationTime.lastIndexOf("T")+1)+observationTime.substring(0,observationTime.indexOf(":"))
266 var isUP = timeFrom.substring(timeFrom.lastIndexOf("T")+1)
267 var isDown = sunSet.substring(sunSet.lastIndexOf("T")+1)
268 var isSunUP = sunRise.substring(sunRise.lastIndexOf("T")+1)
269 console.log(isUP.substring(0,isUP.indexOf(":")) +" ? " + isDown.substring(0,isDown.indexOf(":"))
270 + "\n"
271 + isUP.substring(0,isUP.indexOf(":")) +" ? " +isSunUP.substring(0,isSunUP.indexOf(":")))
272 }
273 }
274
275
276 //Start to add the clouds
277 // Ok this is how this works if there condtions call for the cloud then they are shown pelse they are not.
278 //each item has a string and the string is set to match the item that it is attached to. this makes it so
279 //so that each time the moon or sun is pressed and held each one will move up with animations and also on different durations
280 //It is imporant that we keep the states the same as "main Image" aka the sun or moon or cold sun
281
282 //////////////////////////cloudsImage1
283 Image {
284 id: cloudsImage1
285 width: sourceSize.width /2
286 height: sourceSize.height /2
287 opacity:{
288 if (clouds === "Cloudy"||clouds ==="Snow")
289 1
290 else
291 0
292 }
293 smooth: true
294 state: mainImage.state
295 x: parent.width / 20
296 y: if (state === "Shown")
297 parent.width / 2
298 else if (state === "Hidden")
299 -parent.width
300 else
301 parent.width / 2
302 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
303 source: "artwork/" + "cloud_1.png"
304 }
305 Image {
306 id: hangerCloud1
307 height: sourceSize.height /2
308 opacity: cloudsImage1.opacity
309
310 source: "artwork/"+"cloud_1_line.png"
311 y: cloudsImage1.y - cloudsImage1.sourceSize.height -(cloudsImage1.sourceSize.height / 1.844)
312 x:cloudsImage1.width / 1.844
313 }
314 // End cloudsImage1
315
316
317 //cloudsImage2
318 Image {
319 id: cloudsImage2
320 width: sourceSize.width / 1.88
321 height: sourceSize.height / 1.88
322 opacity:{
323 if (clouds === "Cloudy"||clouds ==="Snow"|| clouds == "Partly cloudy")
324 1
325 else
326 0
327 }
328
329 smooth: true
330 state: mainImage.state
331 x: parent.width / 2
332 y: if (state === "Shown")
333 parent.width / 2
334 else if (state === "Hidden")
335 -parent.width
336 else
337 parent.width / 2
338 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
339 source: "artwork/" + "cloud_2.png"
340 }
341 Image {
342 id: hangerCloud2
343 opacity: cloudsImage2.opacity
344
345 height: sourceSize.height /2
346 source: "artwork/"+"cloud_2_line.png"
347 y: cloudsImage2.y - cloudsImage2.sourceSize.height -(cloudsImage2.sourceSize.height / 1.14)
348 x:cloudsImage2.x + cloudsImage2.width / 2.25
349 }
350 // End cloudsImage2
351
352
353
354 //cloudsImage3
355 Image {
356 id: cloudsImage3
357 width: sourceSize.width /2
358 height: sourceSize.height /2
359 opacity:{
360 if (clouds === "Cloudy"||clouds ==="Snow"||clouds == "Partly cloudy")
361 1
362 else
363 0
364 }
365 smooth: true
366 state: mainImage.state
367 x: parent.width / 50
368 y: if (state === "Shown")
369 parent.width / 2.66
370 else if (state === "Hidden")
371 -parent.width
372 else
373 parent.width / 2.66
374 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
375 source: "artwork/" + "cloud_3.png"
376 }
377 Image {
378 id: hangerCloud3
379 opacity: cloudsImage3.opacity
380 height: sourceSize.height /2
381 source: "artwork/"+"cloud_3_line.png"
382 y: cloudsImage3.y - cloudsImage3.sourceSize.height -(cloudsImage3.sourceSize.height + cloudsImage3.height /2)
383 x:cloudsImage3.x + cloudsImage3.width / 2.25
384 }
385 // End cloudsImage3
386
387
388//////////////start rain clouds
389 //cloudsImageRain1
390 Image {
391 id: cloudsRainImage1
392 width: sourceSize.width /2
393 height: sourceSize.height /2
394 opacity:{
395 if (clouds === "Rain")
396 1
397 else
398 0
399 }
400
401 smooth: true
402 state: mainImage.state
403 x: parent.width / 20
404 y: if (state === "Shown")
405 parent.width / 2
406 else if (state === "Hidden")
407 -parent.width
408 else
409 parent.width / 2
410 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
411 source: "artwork/" + "cloud_rain_1.png"
412 }
413 Image {
414 id: hangerCloudRain1
415 opacity: cloudsRainImage1.opacity
416
417 height: sourceSize.height /2
418 source: "artwork/"+"cloud_rain_1_line.png"
419 y: cloudsRainImage1.y - cloudsRainImage1.sourceSize.height -(cloudsRainImage1.sourceSize.height / 1.844)
420 x:cloudsRainImage1.width / 1.844
421 }
422 // End cloudsImageRain1
423
424
425 //cloudsImageRain2
426 Image {
427 id: cloudsImageRain2
428 width: sourceSize.width / 1.88
429 height: sourceSize.height / 1.88
430 smooth: true
431 state: mainImage.state
432 x: parent.width / 2
433 opacity:{
434 if (clouds === "Rain")
435 1
436 else
437 0
438 }
439
440 y: if (state === "Shown")
441 parent.width / 2
442 else if (state === "Hidden")
443 -parent.width
444 else
445 parent.width / 2
446 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
447 source: "artwork/" + "cloud_rain_2.png"
448 }
449 Image {
450 id: hangerCloudRain2
451 height: sourceSize.height /2
452 source: "artwork/"+"cloud_rain_2_line.png"
453 opacity: cloudsImageRain2.opacity
454
455 y: cloudsImageRain2.y - cloudsImageRain2.sourceSize.height -(cloudsImageRain2.sourceSize.height / 1.14)
456 x:cloudsImageRain2.x + cloudsImageRain2.width / 2.25
457 }
458 // End cloudsImageRain2
459
460
461
462 //cloudsImageRain3
463 Image {
464 id: cloudsImageRain3
465 width: sourceSize.width /2
466 height: sourceSize.height /2
467 smooth: true
468 opacity:{
469 if (clouds === "Rain")
470 1
471 else
472 0
473 }
474
475 state: mainImage.state
476 x: parent.width / 50
477 y: if (state === "Shown")
478 parent.width / 2.66
479 else if (state === "Hidden")
480 -parent.width
481 else
482 parent.width / 2.66
483 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
484 source: "artwork/" + "cloud_rain_3.png"
485 }
486 Image {
487 id: hangerCloudRain3
488 height: sourceSize.height /2
489 opacity: cloudsImageRain3.opacity
490
491 source: "artwork/"+"cloud_rain_3_line.png"
492 y: cloudsImageRain3.y - cloudsImageRain3.sourceSize.height -(cloudsImageRain3.sourceSize.height + cloudsImageRain3.height /2)
493 x:cloudsImageRain3.x + cloudsImageRain3.width / 2.25
494 }
495 // End cloudsImageRain3
496
497
498////////////////////////start Storm Clouds
499
500 //cloudsImageStrom1
501 Image {
502 id: cloudsStormImage1
503 width: sourceSize.width /2
504 height: sourceSize.height /2
505 opacity:{
506 if (clouds === "Heavy rain")
507 1
508 else
509 0
510 }
511 smooth: true
512 state: mainImage.state
513 x: parent.width / 20
514 y: if (state === "Shown")
515 parent.width / 2
516 else if (state === "Hidden")
517 -parent.width
518 else
519 parent.width / 2
520 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
521 source: "artwork/" + "cloud_storm_1.png"
522 }
523 Image {
524 id: hangerCloudStorm1
525 height: sourceSize.height /2
526 opacity: cloudsImageTStorm1.opacity
527
528 source: "artwork/"+"cloud_storm_1_line.png"
529 y: cloudsStormImage1.y - cloudsStormImage1.sourceSize.height -(cloudsStormImage1.sourceSize.height / 1.844)
530 x:cloudsStormImage1.width / 1.844
531 }
532 // End cloudsImageStrom1
533
534
535 //cloudsImageStrom2
536 Image {
537 id: cloudsImageStrom2
538 width: sourceSize.width / 1.88
539 height: sourceSize.height / 1.88
540 opacity:{
541 if (clouds === "Heavy rain")
542 1
543 else
544 0
545 }
546
547 smooth: true
548 state: mainImage.state
549 x: parent.width / 2
550 y: if (state === "Shown")
551 parent.width / 2
552 else if (state === "Hidden")
553 -parent.width
554 else
555 parent.width / 2
556 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
557 source: "artwork/" + "cloud_storm_2.png"
558 }
559 Image {
560 id: hangerCloudStorm2
561 height: sourceSize.height /2
562 source: "artwork/"+"cloud_storm_2_line.png"
563 opacity: cloudsImageStrom2.opacity
564
565 y: cloudsImageStrom2.y - cloudsImageStrom2.sourceSize.height -(cloudsImageStrom2.sourceSize.height / 1.14)
566 x:cloudsImageStrom2.x + cloudsImageStrom2.width / 2.25
567 }
568 // End cloudsImageStrom2
569
570
571
572 //cloudsImageStrom3
573 Image {
574 id: cloudsImageStrom3
575 width: sourceSize.width /2
576 height: sourceSize.height /2
577 smooth: true
578 opacity:{
579 if (clouds === "Heavy rain")
580 1
581 else
582 0
583 }
584
585 state: mainImage.state
586 x: parent.width / 50
587 y: if (state === "Shown")
588 parent.width / 2.66
589 else if (state === "Hidden")
590 -parent.width
591 else
592 parent.width / 2.66
593 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
594 source: "artwork/" + "cloud_storm_3.png"
595 }
596 Image {
597 id: hangerCloudStorm3
598 opacity: cloudsImageStrom3.opacity
599 height: sourceSize.height /2
600 source: "artwork/"+"cloud_storm_3_line.png"
601 y: cloudsImageStrom3.y - cloudsImageStrom3.sourceSize.height -(cloudsImageStrom3.sourceSize.height + cloudsImageStrom3.height /2)
602 x:cloudsImageStrom3.x + cloudsImageStrom3.width / 2.25
603 }
604 // End cloudsImageStrom3
605
606
607 //cloudsImageTStrom1
608 Image {
609 id: cloudsImageTStorm1
610 width: sourceSize.width /2
611 height: sourceSize.height /2
612 opacity:{
613 if(clouds === "Rain showers")
614 1
615 else
616 0
617 } smooth: true
618 state: mainImage.state
619 x: parent.width / 20
620 y: if (state === "Shown")
621 parent.width / 2
622 else if (state === "Hidden")
623 -parent.width
624 else
625 parent.width / 2
626 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
627 source: "artwork/" + "cloud_tstorm_1.png"
628 }
629 Image {
630 id: hangerCloudTStorm1
631 height: sourceSize.height /2
632 source: "artwork/"+"cloud_tstorm_1_line.png"
633 opacity: cloudsImageTStorm1.opacity
634 y: cloudsImageTStorm1.y - cloudsImageTStorm1.sourceSize.height -(cloudsImageTStorm1.sourceSize.height / 1.844)
635 x:cloudsImageTStorm1.width / 1.844
636 }
637 // End cloudsImageTStorm1
638
639
640 //cloudsImageTStorm2
641 Image {
642 id: cloudsImageTStorm2
643 width: sourceSize.width / 1.88
644 height: sourceSize.height / 1.88
645 smooth: true
646 opacity:{
647 if(clouds === "Rain showers")
648 1
649 else
650 0
651 }
652 state: mainImage.state
653 x: parent.width / 2
654 y: if (state === "Shown")
655 parent.width / 2
656 else if (state === "Hidden")
657 -parent.width
658 else
659 parent.width / 2
660 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
661 source: "artwork/" + "cloud_tstorm_2.png"
662 }
663 Image {
664 id: hangerCloudTStorm2
665 height: sourceSize.height /2
666 opacity: cloudsImageTStorm2.opacity
667 source: "artwork/"+"cloud_tstorm_2_line.png"
668 y: cloudsImageTStorm2.y - cloudsImageTStorm2.sourceSize.height -(cloudsImageTStorm2.sourceSize.height / 1.14)
669 x:cloudsImageTStorm2.x + cloudsImageTStorm2.width / 2.25
670 }
671 // End cloudsImageTStorm2
672
673
674
675 //cloudsImageTStorm3
676 Image {
677 id: cloudsImageTStorm3
678 width: sourceSize.width /2
679 height: sourceSize.height /2
680 opacity:{
681 if(clouds === "Rain showers")
682 1
683 else
684 0
685 }
686 smooth: true
687 state: mainImage.state
688 x: parent.width / 50
689 y: if (state === "Shown")
690 parent.width / 2.66
691 else if (state === "Hidden")
692 -parent.width
693 else
694 parent.width / 2.66
695 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
696 source: "artwork/" + "cloud_storm_3.png"
697 }
698 Image {
699 id: hangerCloudTStorm3
700 opacity: cloudsImageTStorm3.opacity
701 height: sourceSize.height /2
702 source: "artwork/"+"cloud_storm_3_line.png"
703 y: cloudsImageTStorm3.y - cloudsImageTStorm3.sourceSize.height -(cloudsImageTStorm3.sourceSize.height + cloudsImageTStorm3.height /2)
704 x:cloudsImageTStorm3.x + cloudsImageTStorm3.width / 2.25
705 }
706 // End cloudsImageTStorm3
707
708
709
710
711
712
713//////////////// Particals and ShaderEffects for snow and rain
714
715 //Snow
716 ImageParticle {
717 id:snowImagePartical
718 opacity: {
719 if (clouds === "Snow" && mainImage.state === "Shown" )
720 1
721 else
722 0
723 }
724 Behavior on opacity{NumberAnimation{duration:400}}
725 width: parent.width
726 height: parent.width
727 x: parent.width / 20
728 y: parent.width / 1.58
729 system: snowSystem
730 source: "artwork/"+"snow_flake_01.png"
731 color: "#FFFAFA"
732 clip: true
733 alpha: 0.8
734 }
735 ParticleSystem {
736 id: snowSystem
737// opacity: rainImagePartical.opacity
738 }
739 Emitter {
740 system: snowSystem
741 width: parent.width
742 height: parent.width
743 emitRate: 22
744 lifeSpan: 9000
745 size: parent.width / 30
746 sizeVariation:parent.width / 9
747 velocity: AngleDirection {
748 angleVariation: 90;
749 magnitude: 9
750 }
751 maximumEmitted: 100
752 startTime: 4000
753 }
754
755 //////////////////////////Rain
756 ImageParticle {
757 id:rainImagePartical
758 opacity: {
759 if (clouds === "Rain" && mainImage.state === "Shown"
760 || clouds === "Rain showers" && mainImage.state === "Shown"
761 || clouds === "Heavy rain" && mainImage.state === "Shown")
762 1
763 else
764 0
765 }
766 Behavior on opacity{NumberAnimation{duration:400}}
767 width: parent.width
768 height: parent.width / 12
769 x: parent.width / 20
770 y: parent.width / 1.58
771 system: rainSystem
772 source: "artwork/"+"rain_01.png"
773 color: "grey"
774 clip: false
775 alpha: 0.8
776 }
777 ParticleSystem {
778 id: rainSystem
779 }
780 Emitter {
781 system: rainSystem
782 width: parent.width
783 y:parent.width / 1.5
784 height: parent.width / 4
785 emitRate:{
786 if(clouds === "Rain")
787 120
788 else if (clouds === "Rain showers")
789 140
790 else if (clouds === "Heavy rain")
791 170
792 else
793 120
794 }
795 lifeSpan: 900
796 size: tab.width
797 sizeVariation:tab.width
798 velocity: AngleDirection {
799 angleVariation: 90;
800 magnitude: 9
801 }
802 maximumEmitted: 100
803 startTime: 4000
804 }
805
806
807
808
809
810
811
812
813
814// ImageParticle {anchors.fill: parent ;system: particles1 ;source: "art/" ;color: "gray" ;clip: true; alpha: 0.8}
815// ImageParticle {anchors.fill: parent ;system: particles2 ;source: "" ;color: "gray" ;clip: true; alpha: 1}
816// ImageParticle {anchors.fill: parent ;system: particles3 ;source: "ar" ;color: "gray" ;clip: true; alpha: 0.8}
817// ImageParticle {anchors.fill: parent ;system: particles4 ;source: "a" ;color: "gray" ;clip: true; alpha: 0.8}
818// ImageParticle {anchors.fill: parent ;system: particles5 ;source: "a" ;color:"gray"; clip: true; alpha: .5}
819// ImageParticle {anchors.fill: parent ;system: particles6 ;source: "art" ;color:"gray"; clip: true; alpha: .5*/}
820
821
822
823
824
825
826// ParticleSystem { id: particles1 }Emitter {system: particles1; anchors.fill: parent ;emitRate: 1;lifeSpan: 8000 ;size: 24 ;sizeVariation: 50 ;velocity: AngleDirection { angleVariation: 180; magnitude: 10} maximumEmitted: 10 ;startTime: 2000}
827// ParticleSystem { id: particles2 }Emitter {system: particles2; anchors.fill: parent ;emitRate: 3;lifeSpan: 10000 ;size: 24 ;sizeVariation: 50 ;velocity: AngleDirection { angleVariation: 180; magnitude: 12 } maximumEmitted: 9 ;startTime: 5000}
828// ParticleSystem { id: particles3 }Emitter {system: particles3; anchors.fill: parent ;emitRate: 15;lifeSpan: 9000 ;size: 24 ;sizeVariation: 50 ;velocity: AngleDirection { angleVariation: 180; magnitude: 7 } maximumEmitted: 20 ;startTime: 5000}
829// ParticleSystem { id: particles4 }Emitter {system: particles4; anchors.fill: parent ;emitRate: 2;lifeSpan: 9000 ;size: 24 ;sizeVariation: 25 ;velocity: AngleDirection { angleVariation: 180; magnitude: 7 } maximumEmitted: 20 ;startTime: 5000}
830// ParticleSystem { id: particles5 }Emitter {system: particles5; anchors.fill: parent ;emitRate: 2;lifeSpan: 4000 ;size: 32 ;sizeVariation: 40 ;velocity: AngleDirection { angleVariation: 180; magnitude: 12 } maximumEmitted: 17 ;startTime: 5000}
831// ParticleSystem { id: particles6 }Emitter {system: particles6; anchors.fill: parent ;emitRate: 2;lifeSpan: 4000 ;size: 32 ;sizeVariation: 40 ;velocity: AngleDirection { angleVariation: 180; magnitude: 12 } maximumEmitted: 4 ;startTime: 5000}
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874//////////////////////////////////// This is Details
875 Rectangle{
876 id:detailsSlider
877 width: separator1.width
878 height: separator1.width * 1.5
879 color: "#88000000"
880 state: "Hidden"
881 x: state === "Hidden" ? -separator1.width * 2 : 0
882 Behavior on x{NumberAnimation{duration: 1200; easing.type: Easing.OutBack}}
883 Text {
884 id: conditions
885 height: 20
886 width: separator1.width
887 text:"<b>Conditions: </b>"+clouds
888 color: "white"
889 font.pixelSize: 12
890 anchors{
891 top:detailsSlider.top
892 topMargin:40 //detailsSlider.width / 2
893 left: parent.left
894 leftMargin: parent.width / 20
895
896 }
897 }
898 Text {
899 id: humidityText
900 height: 20
901 width: separator1.width
902 text:"<b>Wind Speed: </b>" + windSpeed + " \("+ windSpeedMPS +" Miles Per Second \) "
903 color: "white"
904 font.pixelSize: 12
905 anchors{
906 top:conditions.bottom
907 topMargin: 1
908 left: parent.left
909 leftMargin: parent.width / 20
910
911 }
912 }Text {
913 id: dewPointTxt
914 height: 20
915 width: separator1.width
916 text:"<b>Wind Direction: </b>" + windDirection
917 color: "white"
918 font.pixelSize: 12
919 anchors{
920 top:humidityText.bottom
921 topMargin: 1
922 left: parent.left
923 leftMargin: parent.width / 20
924
925 }
926 }
927
928 Text {
929 id: presureTxt
930 height: 20
931 width: separator1.width
932 text:"<b>Pressure: </b>"+pressure
933 color: "white"
934 font.pixelSize: 12
935 anchors{
936 top:dewPointTxt.bottom
937 topMargin: 1
938 left: parent.left
939 leftMargin: parent.width / 20
940
941 }
942 } Text {
943 id: timeFromTxt
944 height: 20
945 width: separator1.width
946 text:"<b>Staring Observation Time: </b>"+timeFrom
947 color: "white"
948 font.pixelSize: 12
949 anchors{
950 top:presureTxt.bottom
951 topMargin: 1
952 left: parent.left
953 leftMargin: parent.width / 20
954
955 }
956 } Text {
957 id: timeToTxt
958 height: 20
959 width: separator1.width
960 text:"<b>Ending Observation Time: </b>"+timeTo
961 color: "white"
962 font.pixelSize: 12
963 anchors{
964 top:timeFromTxt.bottom
965 topMargin: 1
966 left: parent.left
967 leftMargin: parent.width / 20
968
969 }
970 }
971 Text {
972 id: sunRiseTxt
973 height: 20
974 width: separator1.width
975 text:"<b>Sun Rise: </b>"+sunRise
976 color: "white"
977 font.pixelSize: 12
978 anchors{
979 top:timeToTxt.bottom
980 topMargin: 1
981 left: parent.left
982 leftMargin: parent.width / 20
983
984 }
985 }
986 Text {
987 id: sunSetTxt
988 height: 20
989 width: separator1.width
990 text:"<b>Sun Set: </b>"+sunSet
991 color: "white"
992 font.pixelSize: 12
993 anchors{
994 top:sunRiseTxt.bottom
995 topMargin: 1
996 left: parent.left
997 leftMargin: parent.width / 20
998
999 }
1000 }
1001 UbuntuShape{
1002 id:saveButton
1003 width: separator1.width / 3
1004 height: separator1.width / 8
1005 color:"grey"
1006 x: 0
1007 y: parent.width + (height*1.3)
1008 }Text {
1009 id:detailsSaveButtonTxt
1010 color:"#92FFFFFF"
1011 anchors.centerIn: saveButton
1012 text: "Save as Favorite"
1013 }MouseArea{
1014 anchors.fill: detailsSaveButtonTxt
1015 onClicked: {
1016 DataBase.createInitHomeTable()
1017 DataBase.truncateHome()
1018 DataBase.insertIntoTable()
1019 console.log(
1020 DataBase.homeCountry() + "\n"
1021 + DataBase.homeState() + "\n"
1022 + DataBase.homeCity() +"\n"
1023 + serie.countryName + "\n"
1024 + serie.adminName1 +"\n"
1025 + serie.name
1026
1027 )
1028 }
1029
1030 }
1031
1032 }
1033
1034
1035
1036
1037 // Details Button
1038 UbuntuShape{
1039 id:detailsButton
1040 width: separator1.width / 3
1041 height: separator1.width / 8
1042 color:"grey"
1043 x: parent.width - width
1044 y: parent.width + (height*1.3)
1045 }Text {
1046 id:detailsButtonTxt
1047 color:"#92FFFFFF"
1048 anchors.centerIn: detailsButton
1049 text: "details"
1050 }MouseArea{
1051 anchors.fill: detailsButtonTxt
1052 onClicked: {
1053 if (detailsSlider.state === "Hidden"){
1054 detailsSlider.x = 0
1055 detailsSlider.state = "Shown"
1056 } else{
1057 detailsSlider.x = -separator1.width * 2
1058 detailsSlider.state = "Hidden"
1059 }
1060
1061
1062 }
1063 }
1064
1065
1066 }//Item
1067
1068
1069
1070
1071
1072
1073 }//ListView
1074 XmlListModel {
1075 id: homeModel
1076 function loadthis(){
1077 return "http://www.yr.no/place/"+DataBase.homeCountry()+"/"+DataBase.homeState()+"/"+DataBase.homeCity()+"/forecast.xml"
1078 }
1079 source:loadthis()
1080 query: "/weatherdata"
1081 XmlRole { name: "timezone"; query: "location/type/string()"}
1082 XmlRole { name: "timeFrom"; query: "forecast/tabular/time[1]/@from/string()"}
1083 XmlRole { name: "timeTo"; query: "forecast/tabular/time[1]/@to/string()"}
1084 XmlRole { name: "observationTime"; query: "forecast/tabular/time[1]/string()"}
1085 XmlRole { name: "temperature"; query: "forecast/tabular/time[1]/temperature/@value/string()" }
1086 XmlRole { name: "precipitation"; query: "forecast/tabular/time[1]/precipitation/@value/string()" }
1087 XmlRole { name: "clouds"; query: "forecast/tabular/time[1]/symbol/@name/string()" }
1088 XmlRole { name: "windDirection"; query: "forecast/tabular/time[1]/windDirection/@name/string()" }
1089 XmlRole { name: "windSpeed"; query: "forecast/tabular/time[1]/windSpeed/@name/string()" }
1090 XmlRole { name: "windSpeedMPS"; query: "forecast/tabular/time[1]/windSpeed/@mps/string()" }
1091 XmlRole { name: "pressure"; query: "forecast/tabular/time[1]/pressure/@value/string()" }
1092 XmlRole { name: "sunRise"; query: "sun/@rise/string()" }
1093 XmlRole { name: "sunSet"; query: "sun/@set/string()" }
1094 XmlRole { name: "weatherCondition"; query: "forecast/tabular/string()"}
1095 XmlRole { name: "status"; query: "forecast/tabular/string()" }
1096 XmlRole { name:"creditTXT"; query: "credit/link/@text/string()"}
1097 XmlRole { name:"creditURL"; query: "credit/link/@url/string()"}
1098 onStatusChanged: {
1099 if (status == XmlListModel.Ready){
1100 console.log("Home Loaded")
1101 }
1102 if (status == XmlListModel.Loading){
1103 console.log("Home Loading")
1104 }
1105 if (status == XmlListModel.Error)
1106 console.log("Home Error" + errorString());
1107 }
1108 }
1109
1110
1111}//Item
01112
=== added file 'Main.qml'
--- Main.qml 1970-01-01 00:00:00 +0000
+++ Main.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,18 @@
1import QtQuick 2.0
2import Ubuntu.Components 0.1
3import "common" as Con
4FocusScope{
5 id:shellaroo
6 width: units.gu(50)
7 height: units.gu(75)
8 Rectangle {
9 objectName: "weather"
10 width: units.gu(50)
11 height: units.gu(75)
12 Con.Tabs {
13 id: tabs
14 anchors.fill: parent
15
16 }
17 }
18}
019
=== removed file 'README'
--- README 2013-02-12 16:18:48 +0000
+++ README 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
1this is an example README file.
20
=== added file 'StartHere.qml'
--- StartHere.qml 1970-01-01 00:00:00 +0000
+++ StartHere.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,158 @@
1import QtQuick 2.0
2import "common"
3import "examples"
4import Ubuntu.Components 0.1
5import QtQuick.XmlListModel 2.0
6
7Rectangle {
8 id: page
9 width: parent.width; height: parent.height
10 color: "transparent"
11 property string currentSearchString: ""
12// Component.onCompleted: { searchBar.focus = true }
13 Text {
14 id: searchHeader
15 text: qsTr(" Location")
16 font.family: "Ubuntu"
17 color: "#92FFFFFF"
18 font.pixelSize: 22
19 opacity: searchBar.anchors.top === parent.bottom ? 0 : 1
20 Behavior on opacity{ NumberAnimation{duration: 1200 ;easing.type: Easing.OutQuart}}
21 anchors{
22 top: parent.top
23 topMargin:searchBar.height + 20
24 }
25 }
26 SearchBar {
27 id: searchBar
28 width: parent.width
29 height:80
30 KeyNavigation.down: listView
31 anchors{
32 top: searchHeader.bottom
33
34 }
35 onSearch: {
36 currentSearchString = text;
37 feedModel.newSearch(text);
38// forTWC = text
39 }
40 }
41 GridView {
42 id: listView
43 width: parent.width -10
44 cacheBuffer: 687
45 anchors{
46 top: searchBar.bottom;
47 topMargin: 5
48 bottom: parent.bottom
49 }
50 contentHeight: 10
51 contentWidth: parent.width
52 cellHeight: parent.height / 4
53 cellWidth:parent.width
54 clip: true
55// highlight: feedModel
56 model: GetLatLongModel {
57 id: feedModel;
58 source: ''
59 onStatusChanged: {
60 if (status == XmlListModel.Loading){
61 progresDialog.text = "Searching '" + currentSearchString + "'";
62 page.state = 'Loading';
63 } else {
64 page.state = '';
65 }
66 }
67 }
68 delegate: GetLatLongDelegate {
69 id:feedDelegate
70 onClicked: {
71 serieDelegate.loadDetails(countryName,adminName1,name);
72 page.state = 'Serie';
73 }
74 }
75 }
76 UbuntuShape{
77 id:backButton
78 width: parent.width / 3
79 height: parent.width / 8
80 color: "grey"
81 visible: searchBar.anchors.top === searchHeader.bottom ? false : true
82 anchors{
83 left:parent.left
84 bottom: parent.bottom
85 }
86 }
87 MouseArea{
88 id:backButtonMouseArea
89 anchors.fill: backButton
90 onClicked: {
91// searchBar.anchors.top = searchHeader.bottom
92 page.state = 'base state'
93 serieDelegate.opacity = 0
94 searchBar.anchors.top = searchHeader.bottom
95
96 }
97 }
98 Text {
99 id: backButtonTxt
100 text: qsTr("back")
101 font.family: "Ubuntu"
102 color: "#92FFFFFF"
103 visible: backButton.visible === true ? true : false
104 anchors.centerIn: backButtonMouseArea
105 }
106 WeatherDelegate{
107 id: serieDelegate
108 opacity: 0.0
109 state: opacity === 0.0
110 anchors.fill: parent
111 Behavior on x { NumberAnimation { from:listView.currentItem.x; to: 0; duration: 1000 }}
112 Behavior on height { NumberAnimation { from: listView.currentItem.height; to: page.height; duration: 1000 }}
113 }
114
115 ProgressDialog {
116 id: progresDialog;
117 visible: false;
118 anchors {
119 horizontalCenter: parent.horizontalCenter
120 verticalCenter: parent.verticalCenter
121 }
122 }
123
124 states: [
125 State {
126 name: "Serie"
127 PropertyChanges {
128 target: serieDelegate
129 opacity: 1.0
130 }
131
132 PropertyChanges {
133 target: listView
134 opacity: 0.0
135 }
136 AnchorChanges {
137 target: searchBar
138 anchors.top: parent.bottom
139 // anchors.top: parent.top
140 }
141 },
142 State {
143 name: "Loading"
144 PropertyChanges {
145 target: progresDialog
146 visible: true
147 }
148 }
149 ]
150
151 transitions: [
152 Transition {
153 PropertyAnimation { properties: "opacity"; duration: 300}
154 AnchorAnimation { duration: 300 }
155 }
156 ]
157}
158
0159
=== added directory 'artwork'
=== added file 'artwork/avatar@8.png'
1Binary files artwork/avatar@8.png 1970-01-01 00:00:00 +0000 and artwork/avatar@8.png 2013-02-18 17:43:29 +0000 differ160Binary files artwork/avatar@8.png 1970-01-01 00:00:00 +0000 and artwork/avatar@8.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/background_sheen.png'
2Binary files artwork/background_sheen.png 1970-01-01 00:00:00 +0000 and artwork/background_sheen.png 2013-02-18 17:43:29 +0000 differ161Binary files artwork/background_sheen.png 1970-01-01 00:00:00 +0000 and artwork/background_sheen.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/centigrades.png'
3Binary files artwork/centigrades.png 1970-01-01 00:00:00 +0000 and artwork/centigrades.png 2013-02-18 17:43:29 +0000 differ162Binary files artwork/centigrades.png 1970-01-01 00:00:00 +0000 and artwork/centigrades.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_1.png'
4Binary files artwork/cloud_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_1.png 2013-02-18 17:43:29 +0000 differ163Binary files artwork/cloud_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_1.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_1_line.png'
5Binary files artwork/cloud_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_1_line.png 2013-02-18 17:43:29 +0000 differ164Binary files artwork/cloud_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_1_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_2.png'
6Binary files artwork/cloud_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_2.png 2013-02-18 17:43:29 +0000 differ165Binary files artwork/cloud_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_2.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_2_line.png'
7Binary files artwork/cloud_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_2_line.png 2013-02-18 17:43:29 +0000 differ166Binary files artwork/cloud_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_2_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_3.png'
8Binary files artwork/cloud_3.png 1970-01-01 00:00:00 +0000 and artwork/cloud_3.png 2013-02-18 17:43:29 +0000 differ167Binary files artwork/cloud_3.png 1970-01-01 00:00:00 +0000 and artwork/cloud_3.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_3_line.png'
9Binary files artwork/cloud_3_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_3_line.png 2013-02-18 17:43:29 +0000 differ168Binary files artwork/cloud_3_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_3_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_rain_1.png'
10Binary files artwork/cloud_rain_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_1.png 2013-02-18 17:43:29 +0000 differ169Binary files artwork/cloud_rain_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_1.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_rain_1_line.png'
11Binary files artwork/cloud_rain_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_1_line.png 2013-02-18 17:43:29 +0000 differ170Binary files artwork/cloud_rain_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_1_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_rain_2.png'
12Binary files artwork/cloud_rain_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_2.png 2013-02-18 17:43:29 +0000 differ171Binary files artwork/cloud_rain_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_2.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_rain_2_line.png'
13Binary files artwork/cloud_rain_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_2_line.png 2013-02-18 17:43:29 +0000 differ172Binary files artwork/cloud_rain_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_2_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_rain_3.png'
14Binary files artwork/cloud_rain_3.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_3.png 2013-02-18 17:43:29 +0000 differ173Binary files artwork/cloud_rain_3.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_3.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_rain_3_line.png'
15Binary files artwork/cloud_rain_3_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_3_line.png 2013-02-18 17:43:29 +0000 differ174Binary files artwork/cloud_rain_3_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_rain_3_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_storm_1.png'
16Binary files artwork/cloud_storm_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_1.png 2013-02-18 17:43:29 +0000 differ175Binary files artwork/cloud_storm_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_1.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_storm_1_line.png'
17Binary files artwork/cloud_storm_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_1_line.png 2013-02-18 17:43:29 +0000 differ176Binary files artwork/cloud_storm_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_1_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_storm_2.png'
18Binary files artwork/cloud_storm_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_2.png 2013-02-18 17:43:29 +0000 differ177Binary files artwork/cloud_storm_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_2.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_storm_2_line.png'
19Binary files artwork/cloud_storm_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_2_line.png 2013-02-18 17:43:29 +0000 differ178Binary files artwork/cloud_storm_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_2_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_storm_3.png'
20Binary files artwork/cloud_storm_3.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_3.png 2013-02-18 17:43:29 +0000 differ179Binary files artwork/cloud_storm_3.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_3.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_storm_3_line.png'
21Binary files artwork/cloud_storm_3_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_3_line.png 2013-02-18 17:43:29 +0000 differ180Binary files artwork/cloud_storm_3_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_storm_3_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_tstorm_1.png'
22Binary files artwork/cloud_tstorm_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_1.png 2013-02-18 17:43:29 +0000 differ181Binary files artwork/cloud_tstorm_1.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_1.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_tstorm_1_line.png'
23Binary files artwork/cloud_tstorm_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_1_line.png 2013-02-18 17:43:29 +0000 differ182Binary files artwork/cloud_tstorm_1_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_1_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_tstorm_2.png'
24Binary files artwork/cloud_tstorm_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_2.png 2013-02-18 17:43:29 +0000 differ183Binary files artwork/cloud_tstorm_2.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_2.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cloud_tstorm_2_line.png'
25Binary files artwork/cloud_tstorm_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_2_line.png 2013-02-18 17:43:29 +0000 differ184Binary files artwork/cloud_tstorm_2_line.png 1970-01-01 00:00:00 +0000 and artwork/cloud_tstorm_2_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cold_sun.png'
26Binary files artwork/cold_sun.png 1970-01-01 00:00:00 +0000 and artwork/cold_sun.png 2013-02-18 17:43:29 +0000 differ185Binary files artwork/cold_sun.png 1970-01-01 00:00:00 +0000 and artwork/cold_sun.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/cold_sun_line.png'
27Binary files artwork/cold_sun_line.png 1970-01-01 00:00:00 +0000 and artwork/cold_sun_line.png 2013-02-18 17:43:29 +0000 differ186Binary files artwork/cold_sun_line.png 1970-01-01 00:00:00 +0000 and artwork/cold_sun_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/division_line.png'
28Binary files artwork/division_line.png 1970-01-01 00:00:00 +0000 and artwork/division_line.png 2013-02-18 17:43:29 +0000 differ187Binary files artwork/division_line.png 1970-01-01 00:00:00 +0000 and artwork/division_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/fahrenheit.png'
29Binary files artwork/fahrenheit.png 1970-01-01 00:00:00 +0000 and artwork/fahrenheit.png 2013-02-18 17:43:29 +0000 differ188Binary files artwork/fahrenheit.png 1970-01-01 00:00:00 +0000 and artwork/fahrenheit.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/fog.png'
30Binary files artwork/fog.png 1970-01-01 00:00:00 +0000 and artwork/fog.png 2013-02-18 17:43:29 +0000 differ189Binary files artwork/fog.png 1970-01-01 00:00:00 +0000 and artwork/fog.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/haze.png'
31Binary files artwork/haze.png 1970-01-01 00:00:00 +0000 and artwork/haze.png 2013-02-18 17:43:29 +0000 differ190Binary files artwork/haze.png 1970-01-01 00:00:00 +0000 and artwork/haze.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/moon.png'
32Binary files artwork/moon.png 1970-01-01 00:00:00 +0000 and artwork/moon.png 2013-02-18 17:43:29 +0000 differ191Binary files artwork/moon.png 1970-01-01 00:00:00 +0000 and artwork/moon.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/moon_line.png'
33Binary files artwork/moon_line.png 1970-01-01 00:00:00 +0000 and artwork/moon_line.png 2013-02-18 17:43:29 +0000 differ192Binary files artwork/moon_line.png 1970-01-01 00:00:00 +0000 and artwork/moon_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/na_icon.png'
34Binary files artwork/na_icon.png 1970-01-01 00:00:00 +0000 and artwork/na_icon.png 2013-02-18 17:43:29 +0000 differ193Binary files artwork/na_icon.png 1970-01-01 00:00:00 +0000 and artwork/na_icon.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/na_icon_line.png'
35Binary files artwork/na_icon_line.png 1970-01-01 00:00:00 +0000 and artwork/na_icon_line.png 2013-02-18 17:43:29 +0000 differ194Binary files artwork/na_icon_line.png 1970-01-01 00:00:00 +0000 and artwork/na_icon_line.png 2013-02-18 17:43:29 +0000 differ
=== added directory 'artwork/pics'
=== added file 'artwork/pics/clear.png'
36Binary files artwork/pics/clear.png 1970-01-01 00:00:00 +0000 and artwork/pics/clear.png 2013-02-18 17:43:29 +0000 differ195Binary files artwork/pics/clear.png 1970-01-01 00:00:00 +0000 and artwork/pics/clear.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/indicator.png'
37Binary files artwork/pics/indicator.png 1970-01-01 00:00:00 +0000 and artwork/pics/indicator.png 2013-02-18 17:43:29 +0000 differ196Binary files artwork/pics/indicator.png 1970-01-01 00:00:00 +0000 and artwork/pics/indicator.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/lineedit-bg-focus.png'
38Binary files artwork/pics/lineedit-bg-focus.png 1970-01-01 00:00:00 +0000 and artwork/pics/lineedit-bg-focus.png 2013-02-18 17:43:29 +0000 differ197Binary files artwork/pics/lineedit-bg-focus.png 1970-01-01 00:00:00 +0000 and artwork/pics/lineedit-bg-focus.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/lineedit-bg.png'
39Binary files artwork/pics/lineedit-bg.png 1970-01-01 00:00:00 +0000 and artwork/pics/lineedit-bg.png 2013-02-18 17:43:29 +0000 differ198Binary files artwork/pics/lineedit-bg.png 1970-01-01 00:00:00 +0000 and artwork/pics/lineedit-bg.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/moreDown.png'
40Binary files artwork/pics/moreDown.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreDown.png 2013-02-18 17:43:29 +0000 differ199Binary files artwork/pics/moreDown.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreDown.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/moreDownW.png'
41Binary files artwork/pics/moreDownW.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreDownW.png 2013-02-18 17:43:29 +0000 differ200Binary files artwork/pics/moreDownW.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreDownW.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/moreUp.png'
42Binary files artwork/pics/moreUp.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreUp.png 2013-02-18 17:43:29 +0000 differ201Binary files artwork/pics/moreUp.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreUp.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/moreUpW.png'
43Binary files artwork/pics/moreUpW.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreUpW.png 2013-02-18 17:43:29 +0000 differ202Binary files artwork/pics/moreUpW.png 1970-01-01 00:00:00 +0000 and artwork/pics/moreUpW.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/star_off.gif'
44Binary files artwork/pics/star_off.gif 1970-01-01 00:00:00 +0000 and artwork/pics/star_off.gif 2013-02-18 17:43:29 +0000 differ203Binary files artwork/pics/star_off.gif 1970-01-01 00:00:00 +0000 and artwork/pics/star_off.gif 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/pics/star_on.gif'
45Binary files artwork/pics/star_on.gif 1970-01-01 00:00:00 +0000 and artwork/pics/star_on.gif 2013-02-18 17:43:29 +0000 differ204Binary files artwork/pics/star_on.gif 1970-01-01 00:00:00 +0000 and artwork/pics/star_on.gif 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/rainDrop.png'
46Binary files artwork/rainDrop.png 1970-01-01 00:00:00 +0000 and artwork/rainDrop.png 2013-02-18 17:43:29 +0000 differ205Binary files artwork/rainDrop.png 1970-01-01 00:00:00 +0000 and artwork/rainDrop.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/rain_01.png'
47Binary files artwork/rain_01.png 1970-01-01 00:00:00 +0000 and artwork/rain_01.png 2013-02-18 17:43:29 +0000 differ206Binary files artwork/rain_01.png 1970-01-01 00:00:00 +0000 and artwork/rain_01.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/rain_02.png'
48Binary files artwork/rain_02.png 1970-01-01 00:00:00 +0000 and artwork/rain_02.png 2013-02-18 17:43:29 +0000 differ207Binary files artwork/rain_02.png 1970-01-01 00:00:00 +0000 and artwork/rain_02.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/rain_03.png'
49Binary files artwork/rain_03.png 1970-01-01 00:00:00 +0000 and artwork/rain_03.png 2013-02-18 17:43:29 +0000 differ208Binary files artwork/rain_03.png 1970-01-01 00:00:00 +0000 and artwork/rain_03.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/search_background.png'
50Binary files artwork/search_background.png 1970-01-01 00:00:00 +0000 and artwork/search_background.png 2013-02-18 17:43:29 +0000 differ209Binary files artwork/search_background.png 1970-01-01 00:00:00 +0000 and artwork/search_background.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/search_icon.png'
51Binary files artwork/search_icon.png 1970-01-01 00:00:00 +0000 and artwork/search_icon.png 2013-02-18 17:43:29 +0000 differ210Binary files artwork/search_icon.png 1970-01-01 00:00:00 +0000 and artwork/search_icon.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake.png'
52Binary files artwork/snow_flake.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake.png 2013-02-18 17:43:29 +0000 differ211Binary files artwork/snow_flake.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_01.png'
53Binary files artwork/snow_flake_01.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_01.png 2013-02-18 17:43:29 +0000 differ212Binary files artwork/snow_flake_01.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_01.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_02.png'
54Binary files artwork/snow_flake_02.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_02.png 2013-02-18 17:43:29 +0000 differ213Binary files artwork/snow_flake_02.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_02.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_03.png'
55Binary files artwork/snow_flake_03.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_03.png 2013-02-18 17:43:29 +0000 differ214Binary files artwork/snow_flake_03.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_03.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_04.png'
56Binary files artwork/snow_flake_04.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_04.png 2013-02-18 17:43:29 +0000 differ215Binary files artwork/snow_flake_04.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_04.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_05.png'
57Binary files artwork/snow_flake_05.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_05.png 2013-02-18 17:43:29 +0000 differ216Binary files artwork/snow_flake_05.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_05.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_06.png'
58Binary files artwork/snow_flake_06.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_06.png 2013-02-18 17:43:29 +0000 differ217Binary files artwork/snow_flake_06.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_06.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_07.png'
59Binary files artwork/snow_flake_07.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_07.png 2013-02-18 17:43:29 +0000 differ218Binary files artwork/snow_flake_07.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_07.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_08.png'
60Binary files artwork/snow_flake_08.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_08.png 2013-02-18 17:43:29 +0000 differ219Binary files artwork/snow_flake_08.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_08.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/snow_flake_09.png'
61Binary files artwork/snow_flake_09.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_09.png 2013-02-18 17:43:29 +0000 differ220Binary files artwork/snow_flake_09.png 1970-01-01 00:00:00 +0000 and artwork/snow_flake_09.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/star_01.png'
62Binary files artwork/star_01.png 1970-01-01 00:00:00 +0000 and artwork/star_01.png 2013-02-18 17:43:29 +0000 differ221Binary files artwork/star_01.png 1970-01-01 00:00:00 +0000 and artwork/star_01.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/star_02.png'
63Binary files artwork/star_02.png 1970-01-01 00:00:00 +0000 and artwork/star_02.png 2013-02-18 17:43:29 +0000 differ222Binary files artwork/star_02.png 1970-01-01 00:00:00 +0000 and artwork/star_02.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/star_03.png'
64Binary files artwork/star_03.png 1970-01-01 00:00:00 +0000 and artwork/star_03.png 2013-02-18 17:43:29 +0000 differ223Binary files artwork/star_03.png 1970-01-01 00:00:00 +0000 and artwork/star_03.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/storm_01.png'
65Binary files artwork/storm_01.png 1970-01-01 00:00:00 +0000 and artwork/storm_01.png 2013-02-18 17:43:29 +0000 differ224Binary files artwork/storm_01.png 1970-01-01 00:00:00 +0000 and artwork/storm_01.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/storm_02.png'
66Binary files artwork/storm_02.png 1970-01-01 00:00:00 +0000 and artwork/storm_02.png 2013-02-18 17:43:29 +0000 differ225Binary files artwork/storm_02.png 1970-01-01 00:00:00 +0000 and artwork/storm_02.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/storm_03.png'
67Binary files artwork/storm_03.png 1970-01-01 00:00:00 +0000 and artwork/storm_03.png 2013-02-18 17:43:29 +0000 differ226Binary files artwork/storm_03.png 1970-01-01 00:00:00 +0000 and artwork/storm_03.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/storm_04.png'
68Binary files artwork/storm_04.png 1970-01-01 00:00:00 +0000 and artwork/storm_04.png 2013-02-18 17:43:29 +0000 differ227Binary files artwork/storm_04.png 1970-01-01 00:00:00 +0000 and artwork/storm_04.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/storm_05.png'
69Binary files artwork/storm_05.png 1970-01-01 00:00:00 +0000 and artwork/storm_05.png 2013-02-18 17:43:29 +0000 differ228Binary files artwork/storm_05.png 1970-01-01 00:00:00 +0000 and artwork/storm_05.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/sun.png'
70Binary files artwork/sun.png 1970-01-01 00:00:00 +0000 and artwork/sun.png 2013-02-18 17:43:29 +0000 differ229Binary files artwork/sun.png 1970-01-01 00:00:00 +0000 and artwork/sun.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/sun_line.png'
71Binary files artwork/sun_line.png 1970-01-01 00:00:00 +0000 and artwork/sun_line.png 2013-02-18 17:43:29 +0000 differ230Binary files artwork/sun_line.png 1970-01-01 00:00:00 +0000 and artwork/sun_line.png 2013-02-18 17:43:29 +0000 differ
=== added file 'artwork/thunder.png'
72Binary files artwork/thunder.png 1970-01-01 00:00:00 +0000 and artwork/thunder.png 2013-02-18 17:43:29 +0000 differ231Binary files artwork/thunder.png 1970-01-01 00:00:00 +0000 and artwork/thunder.png 2013-02-18 17:43:29 +0000 differ
=== removed file 'avatar@8.png'
73Binary files avatar@8.png 2013-02-12 16:18:48 +0000 and avatar@8.png 1970-01-01 00:00:00 +0000 differ232Binary files avatar@8.png 2013-02-12 16:18:48 +0000 and avatar@8.png 1970-01-01 00:00:00 +0000 differ
=== added directory 'common'
=== added file 'common/Tabs.qml'
--- common/Tabs.qml 1970-01-01 00:00:00 +0000
+++ common/Tabs.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,23 @@
1import QtQuick 2.0
2import Ubuntu.Components 0.1
3import Ubuntu.Components.ListItems 0.1 as ListItem
4Templets{
5 id:tempThis
6 showHeader: false
7 Tabs {
8 ItemStyle.class: "new-tabs"
9 id: tabs
10 Tab {
11 title: i18n.tr("Weather")
12 page: Qt.resolvedUrl("../Home.qml")
13 }
14 Tab {
15 title: i18n.tr("Search")
16 page: Qt.resolvedUrl("../StartHere.qml")
17 }
18 Tab{
19 title: "TWC"
20 page: Qt.resolvedUrl("../examples/TWC.qml")
21 }
22 }
23}
024
=== added file 'common/Templets.qml'
--- common/Templets.qml 1970-01-01 00:00:00 +0000
+++ common/Templets.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,88 @@
1/*
2 * Copyright 2012 Canonical Ltd.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation; version 3.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU Lesser General Public License for more details.
12 *
13 * You should have received a copy of the GNU Lesser General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
15 */
16
17import QtQuick 2.0
18import Ubuntu.Components 0.1
19
20Rectangle {
21 id: template
22
23 width: units.gu(100)
24 height: units.gu(75)
25
26 property string title
27 default property Item content
28
29 property bool showHeader: true
30
31 onContentChanged: {
32 content.parent = page
33 content.anchors.top = header.bottom
34 content.anchors.bottom = page.bottom
35 content.anchors.left = page.left
36 content.anchors.right = page.right
37 }
38
39 color: "#C7C7C7"
40
41
42 Item {
43 id: page
44
45 parent: template
46 anchors {
47 fill: parent
48 margins: template.showHeader ? units.gu(4) : units.gu(2)
49 }
50
51 Binding {
52 target: content.anchors
53 property: "topMargin"
54 value: page.anchors.margins
55 }
56
57 Item {
58 id: header
59 height: visible ? childrenRect.height : 0
60 anchors {
61 left: parent.left
62 right: parent.right
63 }
64 visible: template.showHeader
65
66 Label {
67 id: title
68 ItemStyle.class: "title"
69 text: template.title
70 }
71
72 Rectangle {
73 id: underline
74
75 anchors {
76 top: title.bottom
77 topMargin: units.gu(0.5)
78 left: parent.left
79 right: parent.right
80 }
81 height: units.dp(1)
82 color: "#38772953"
83 }
84 }
85 }
86}
87
88
089
=== added file 'common/Utils.js'
--- common/Utils.js 1970-01-01 00:00:00 +0000
+++ common/Utils.js 2013-02-18 17:43:29 +0000
@@ -0,0 +1,155 @@
1.pragma library
2function nightOrDay(){
3 var now = Qt.formatDateTime(new Date(),"hh")
4 if (now <= 17 && now >= 05)
5 return "day"
6 else
7 return "night"
8}
9var observationTime = ""
10var dir = "../artwork/"
11var homeDir = "artwork/"
12var x = "weatherCondition"
13var cutMe = observationTime.substring(observationTime.lastIndexOf(":")-5)
14
15function cut1ObTime(string){
16string.substring(string.lastIndexOf(":")-5)
17}
18
19function fromIso8601(date) {
20 var timestamp, struct, minutesOffset = 0;
21 var numericKeys = [ 1, 4, 5, 6, 7, 10, 11 ];
22
23 // ES5 §15.9.4.2 states that the string should attempt to be parsed as a Date Time String Format string
24 // before falling back to any implementation-specific date parsing, so that’s what we do, even if native
25 // implementations could be faster
26 // 1 YYYY 2 MM 3 DD 4 HH 5 mm 6 ss 7 msec 8 Z 9 ± 10 tzHH 11 tzmm
27 if ((struct = /^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/.exec(date))) {
28 // avoid NaN timestamps caused by “undefined” values being passed to Date.UTC
29 for (var i = 0, k; (k = numericKeys[i]); ++i) {
30 struct[k] = +struct[k] || 0;
31 }
32
33 // allow undefined days and months
34 struct[2] = (+struct[2] || 1) - 1;
35 struct[3] = +struct[3] || 1;
36
37 if (struct[8] !== 'Z' && struct[9] !== undefined) {
38 minutesOffset = struct[10] * 60 + struct[11];
39
40 if (struct[9] === '+') {
41 minutesOffset = 0 - minutesOffset;
42 }
43 }
44
45 timestamp = Date.UTC(struct[1], struct[2], struct[3], struct[4], struct[5] + minutesOffset, struct[6], struct[7]);
46 return new Date(timestamp);
47 }
48 else return null;
49}
50
51
52
53
54
55//Most of this is adopted from QtMediaHub and also from weather.qml
56var folder = "../../artwork/"
57function fahrenheit2celsius(f) {
58 return ((f-32)*5/9.0).toFixed(0);
59}
60
61//function mapToImages(weatherCondition)
62// if (typeof weatherCondition != "undefined") {
63// var map = {
64// "light rain" : "rain_1.png",
65// "sunny" : "sun.png",
66// "mostly_sunny" : "MostlySunny.qml",
67// "partly_cloudy" : "PartlyCloudy.qml",
68// "mostly_cloudy" : "MostlyCloudy.qml",
69// "chance_of_storm" : "Storm.qml",
70// "showers" : "Rain.qml",
71// "rain" : "Rain.qml",
72// "chance_of_snow" : "na_icon.png",
73// "cloudy" : "MostlyCloudy.qml",
74// "mist" : "Mist.qml",
75// "storm" : "Storm.qml",
76// "thunderstorm" : "Thunderstorm.qml",
77// "chance_of_tstorm" : "Thunderstorm.qml",
78// "sleet" : "na_icon.png",
79// "snow" : "na_icon.png",
80// "icy" : "na_icon.png",
81// "dust" : "na_icon.png",
82// "fog" : "Fog.qml",
83// "smoke" : "UnknownForecast.qml",
84// "haze" : "haze.png",
85// "flurries" : "na_icon.png"
86// }
87// var tmp = "UnknownForecast.qml";
88// var slice = name.substring(weatherCondition.lastIndexOf("/")+1,weatherCondition.lastIndexOf("."));
89
90// if (map[slice])
91// tmp = map[slice]
92
93// return "../forecasts/"+tmp;
94// }
95// return "../forecasts/UnknownForecast.qml";
96// }
97
98
99
100
101//function mapToFile(weatherCondition) {
102// if (typeof weatherCondition != "undefined") {
103// var map = {
104// "chance_of_rain" : "Rain.qml",
105// "sunny" : "Sunny.qml",
106// "mostly_sunny" : "MostlySunny.qml",
107// "partly_cloudy" : "PartlyCloudy.qml",
108// "mostly_cloudy" : "MostlyCloudy.qml",
109// "chance_of_storm" : "Storm.qml",
110// "showers" : "Rain.qml",
111// "rain" : "Rain.qml",
112// "chance_of_snow" : "UnknownForecast.qml",
113// "cloudy" : "MostlyCloudy.qml",
114// "mist" : "Mist.qml",
115// "storm" : "Storm.qml",
116// "thunderstorm" : "Thunderstorm.qml",
117// "chance_of_tstorm" : "Thunderstorm.qml",
118// "sleet" : "UnknownForecast.qml",
119// "snow" : "UnknownForecast.qml",
120// "icy" : "UnknownForecast.qml",
121// "dust" : "UnknownForecast.qml",
122// "fog" : "Fog.qml",
123// "smoke" : "UnknownForecast.qml",
124// "haze" : "Haze.qml",
125// "flurries" : "UnknownForecast.qml"
126// }
127
128// var tmp = "UnknownForecast.qml";
129// var slice = name.substring(weatherCondition.lastIndexOf("/")+1,weatherCondition.lastIndexOf("."));
130
131// if (map[slice])
132// tmp = map[slice]
133
134// return "../forecasts/"+tmp;
135// }
136// return "../forecasts/UnknownForecast.qml";
137//}
138
139//function stripLast5(string) {
140// return (string.substr(0, string.length-5))
141//}
142
143//function loadForecastQml() {
144// if (weatherMeasurements.count > 0) {
145// forecastLoader.source = ""
146// forecastLoader.source = mapToFile(weatherMeasurements.get(0).icon)
147// }
148//}
149//if (typeof info != "undefined" && typeof info.current_date_time != "undefined") {
150// var date_time = info.current_date_time;
151// var slice = date_time.substring(date_time.indexOf(" ")+1,date_time.indexOf(":"));
152// item.isDay = slice > 18 || slice < 6 ? false : true;
153//} else {
154// item.isDay = true;
155//}
0156
=== added file 'common/dbUtils.js'
--- common/dbUtils.js 1970-01-01 00:00:00 +0000
+++ common/dbUtils.js 2013-02-18 17:43:29 +0000
@@ -0,0 +1,243 @@
1//DataBase Stuff IE Adding and remove deleting database Functions
2//Table Options For DateBase IE add to table Select from table ect.
3var number = 1
4var text = ""
5var countryTXT = ""
6var locationTXT = ""
7var cityTXT = ""
8function homeDatabase() {
9 return LocalStorage.openDatabaseSync("weather_app_home", "1.0", "StorageDatabase", 1000000);
10}
11function createInitDatabase(){
12var db = homeDatabase();
13 db.transaction(
14 function(tx){
15 tx.executeSql('CREATE database IF NOT EXISTS weather_app_home')
16 }
17 )
18}
19function insertIntoTable() {
20 var db = homeDatabase();
21 db.transaction(
22 function(tx) {
23 tx.executeSql('INSERT INTO weather_api_home VALUES(?, ?, ?, ?)', ['1',encodeURI(serie.countryName), encodeURI(serie.adminName1) ,encodeURI(serie.name) ]);
24 }
25 )
26}
27function createInitHomeTable() {
28 var db = homeDatabase();
29 db.transaction(
30 function(tx) {
31 tx.executeSql('CREATE TABLE IF NOT EXISTS weather_api_home(WD_1 INT ,Country TEXT,State TEXT,City TEXT)');
32 }
33 )
34}
35
36//function truncateWD(){
37// var db = homeDatabase();
38// db.transaction(
39// function(tx){
40// tx.executeSql('DELETE WD_1 FROM weather_api_home WHERE WD_1=1')
41// }
42// )
43//}
44function truncateHome(){
45 var db = homeDatabase();
46 db.transaction(
47 function(tx){
48 tx.executeSql('DELETE FROM weather_api_home WHERE WD_1=1')
49 }
50 )
51}
52//function truncateState(){
53// var db = homeDatabase();
54// db.transaction(
55// function(tx){
56// tx.executeSql('DELETE State FROM weather_api_home WHERE WD_1=1')
57// }
58// )
59//}
60//function truncateCity(){
61// var db = homeDatabase();
62// db.transaction(
63// function(tx){
64// tx.executeSql('DELETE City FROM weather_api_home WHERE WD_1=1')
65// }
66// )
67//}
68function homeCountry() {
69 var db = homeDatabase();
70 db.transaction(
71 function(tx) {
72 var rs = tx.executeSql('SELECT * FROM weather_api_home');
73 var r = ""
74 for(var i = 0; i < rs.rows.length; i++) {
75 r += rs.rows.item(i).Country
76 }
77 text = r }
78 )
79return text
80}
81
82function homeState() {
83 var db = homeDatabase();
84 db.transaction(
85 function(tx) {
86 var rs = tx.executeSql('SELECT * FROM weather_api_home');
87 var r = ""
88 for(var i = 0; i < rs.rows.length; i++) {
89 r += rs.rows.item(i).State }
90 text = r })
91 return text
92}
93
94
95function homeCity() {
96 var db = homeDatabase();
97 db.transaction(
98 function(tx) {
99 var rs = tx.executeSql('SELECT * FROM weather_api_home');
100 var r = ""
101 for(var i = 0; i < rs.rows.length; i++) {
102 r += rs.rows.item(i).City }
103 text = r })
104 return text
105}
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123function showAllWeatherNoINT() {
124 var db = homeDatabase();
125 db.transaction(
126 function(tx) {
127 // Show all added greetings
128 var rs = tx.executeSql('SELECT Country,State,Cite FROM WEATHERAPI');
129 var r = ""
130 for(var i = 0; i < rs.rows.length; i++) {
131 r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n"
132 }
133 text = r
134 }
135 )
136}
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177/////////////////////////////////// FOR favorite
178//function createInitDatabase(){
179//var db = getDatabase();
180// db.transaction(
181// function(tx){
182// tx.executeSql('CREATE database IF NOT EXISTS weather_app')
183// }
184// )
185//}
186
187//function createInitTable() {
188// var db = getDatabase();
189// db.transaction(
190// function(tx) {
191// tx.executeSql('CREATE TABLE IF NOT EXISTS WEATHERAPI(Country TEXT,State TEXT,City TEXT)');
192// }
193// )
194//}
195
196//function insertIntoTable() {
197// var db = getDatabase();
198// db.transaction(
199// function(tx) {
200// tx.executeSql('INSERT INTO WEATHERAPI VALUES(?, ?, ?)', [countryTXT, locationTXT,cityTXT ]);
201// }
202// )
203//}
204
205
206//function truncateTable(){
207// var db = getDatabase();
208// db.transaction(
209// function(tx){
210// tx.executeSql('DELETE * FROM WEATHERAPI')
211// }
212// )
213//}
214
215//function showAllDbTable() {
216// var db = getDatabase();
217// db.transaction(
218// function(tx) {
219// // Show all added greetings
220// var rs = tx.executeSql('SELECT * FROM WEATHERAPI');
221// var r = ""
222// for(var i = 0; i < rs.rows.length; i++) {
223// r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n"
224// }
225// text = r
226// }
227// )
228//}
229
230//function showAllWeatherNoINT() {
231// var db = getDatabase();
232// db.transaction(
233// function(tx) {
234// // Show all added greetings
235// var rs = tx.executeSql('SELECT Country,State,Cite FROM WEATHERAPI');
236// var r = ""
237// for(var i = 0; i < rs.rows.length; i++) {
238// r += rs.rows.item(i).salutation + ", " + rs.rows.item(i).salutee + "\n"
239// }
240// text = r
241// }
242// )
243//}
0244
=== removed directory 'debian'
=== removed file 'debian/changelog'
--- debian/changelog 2013-02-12 16:27:32 +0000
+++ debian/changelog 1970-01-01 00:00:00 +0000
@@ -1,5 +0,0 @@
1ubuntu-weather-app (0.1) raring; urgency=low
2
3 * Initial release
4
5 -- Michael Hall <mhall119@ubuntu.com> Mon, 11 Feb 2013 16:04:00 -0500
60
=== removed file 'debian/compat'
--- debian/compat 2013-02-12 16:18:48 +0000
+++ debian/compat 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
18
20
=== removed file 'debian/control'
--- debian/control 2013-02-12 16:27:32 +0000
+++ debian/control 1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
1Source: ubuntu-weather-app
2Priority: extra
3Maintainer: Ugo Riboni <ugo.riboni@canonical.com>
4Build-Depends: debhelper (>= 8.0.0),
5Standards-Version: 3.9.3
6Section: misc
7Homepage: https://launchpad.net/ubuntu-weather-app
8
9Package: ubuntu-weather-app
10Section: misc
11Architecture: any
12Depends: ${shlibs:Depends}, ${misc:Depends},
13 qmlscene,
14 qt-components-ubuntu,
15 qtdeclarative5-qtquick2-plugin
16Description: Weather application
17 Core Weather application
18
190
=== removed file 'debian/copyright'
--- debian/copyright 2013-02-12 16:27:32 +0000
+++ debian/copyright 1970-01-01 00:00:00 +0000
@@ -1,45 +0,0 @@
1Format: http://dep.debian.net/deps/dep5
2Upstream-Name: ubuntu-weather-app
3Source:
4
5Files: *
6Copyright: 2013 Canonical Ltd.
7License: GPL-3.0
8
9Files: debian/*
10Copyright: 2013 Canonical Ltd.
11License: LGPL-3.0
12
13License: GPL-3.0
14 This package is free software; you can redistribute it and/or
15 modify it under the terms of the GNU General Public
16 License as published by the Free Software Foundation; either
17 version 3 of the License.
18 .
19 This package is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
22 General Public License for more details.
23 .
24 You should have received a copy of the GNU General Public License
25 along with this program. If not, see <http://www.gnu.org/licenses/>.
26 .
27 On Debian systems, the complete text of the GNU General
28 Public License can be found in "/usr/share/common-licenses/GPL-3".
29
30License: LGPL-3.0
31 This package is free software; you can redistribute it and/or
32 modify it under the terms of the GNU Lesser General Public
33 License as published by the Free Software Foundation; either
34 version 3 of the License.
35 .
36 This package is distributed in the hope that it will be useful,
37 but WITHOUT ANY WARRANTY; without even the implied warranty of
38 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
39 Lesser General Public License for more details.
40 .
41 You should have received a copy of the GNU General Public License
42 along with this program. If not, see <http://www.gnu.org/licenses/>.
43 .
44 On Debian systems, the complete text of the GNU Lesser General
45 Public License can be found in "/usr/share/common-licenses/LGPL-3".
460
=== removed file 'debian/docs'
=== removed file 'debian/rules'
--- debian/rules 2013-02-12 16:27:32 +0000
+++ debian/rules 1970-01-01 00:00:00 +0000
@@ -1,29 +0,0 @@
1#!/usr/bin/make -f
2# -*- makefile -*-
3# Sample debian/rules that uses debhelper.
4# This file was originally written by Joey Hess and Craig Small.
5# As a special exception, when this file is copied by dh-make into a
6# dh-make output file, you may use that output file without restriction.
7# This special exception was added by Craig Small in version 0.37 of dh-make.
8
9# Uncomment this to turn on verbose mode.
10#export DH_VERBOSE=1
11
12# Work-around for some machines where INSTALL_ROOT is not set properly by
13# dh_auto_install
14override_dh_auto_install:
15 dh_auto_install -- INSTALL_ROOT=$(CURDIR)/debian/tmp
16
17# Workaround a bug in that debhelper package version
18override_dh_install:
19 mkdir -p $(CURDIR)/debian/tmp/usr/share/applications/
20 mkdir -p $(CURDIR)/debian/tmp/usr/bin/
21 mkdir -p $(CURDIR)/debian/tmp/usr/share/ubuntu-weather-app/
22 cp ubuntu-weather-app.desktop $(CURDIR)/debian/tmp/usr/share/applications/
23 cp ubuntu-weather-app $(CURDIR)/debian/tmp/usr/bin/
24 cp -r *.qml *.png $(CURDIR)/debian/tmp/usr/share/ubuntu-weather-app/
25
26 dh_install --sourcedir=debian/tmp --fail-missing
27
28%:
29 dh $@
300
=== removed directory 'debian/source'
=== removed file 'debian/source/format'
--- debian/source/format 2013-02-12 16:18:48 +0000
+++ debian/source/format 1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
13.0 (native)
20
=== removed file 'debian/ubuntu-weather-app.install'
--- debian/ubuntu-weather-app.install 2013-02-12 16:27:32 +0000
+++ debian/ubuntu-weather-app.install 1970-01-01 00:00:00 +0000
@@ -1,3 +0,0 @@
1usr/share/applications
2usr/bin
3usr/share/ubuntu-weather-app
40
=== added directory 'examples'
=== added directory 'examples/Browsers'
=== added directory 'examples/Browsers/youtube'
=== added file 'examples/Browsers/youtube/BrowserHeader.qml'
--- examples/Browsers/youtube/BrowserHeader.qml 1970-01-01 00:00:00 +0000
+++ examples/Browsers/youtube/BrowserHeader.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,150 @@
1/****************************************************************************
2**
3** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4** All rights reserved.
5** Contact: Nokia Corporation (qt-info@nokia.com)
6**
7** This file is part of the QtDeclarative module of the Qt Toolkit.
8**
9** $QT_BEGIN_LICENSE:LGPL$
10** GNU Lesser General Public License Usage
11** This file may be used under the terms of the GNU Lesser General Public
12** License version 2.1 as published by the Free Software Foundation and
13** appearing in the file LICENSE.LGPL included in the packaging of this
14** file. Please review the following information to ensure the GNU Lesser
15** General Public License version 2.1 requirements will be met:
16** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17**
18** In addition, as a special exception, Nokia gives you certain additional
19** rights. These rights are described in the Nokia Qt LGPL Exception
20** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21**
22** GNU General Public License Usage
23** Alternatively, this file may be used under the terms of the GNU General
24** Public License version 3.0 as published by the Free Software Foundation
25** and appearing in the file LICENSE.GPL included in the packaging of this
26** file. Please review the following information to ensure the GNU General
27** Public License version 3.0 requirements will be met:
28** http://www.gnu.org/copyleft/gpl.html.
29**
30** Other Usage
31** Alternatively, this file may be used in accordance with the terms and
32** conditions contained in a signed written agreement between you and Nokia.
33**
34**
35**
36**
37**
38** $QT_END_LICENSE$
39**
40****************************************************************************/
41
42import QtQuick 2.0
43//import "../../common"
44Image {
45 id: header
46
47 property alias editUrl: urlInput.url
48 property bool urlChanged: false
49
50 source: "../../common/artwork/scrollbar.png"; fillMode: Image.TileHorizontally
51
52 x: webView.contentX < 0 ? -webView.contentX : webView.contentX > webView.contentWidth-webView.width
53 ? -webView.contentX+webView.contentWidth-webView.width : 0
54 y: {
55 if (webView.progress < 1.0)
56 return 0;
57 else {
58 webView.contentY < 0 ? -webView.contentY : webView.contentY > height ? -height : -webView.contentY
59 }
60 }
61// Column {
62// width: parent.width
63
64// Item {
65// width: parent.width; height: 20
66// Text {
67// anchors.centerIn: parent
68// text: webView.title; font.pixelSize: 14; font.bold: true
69// color: "white"; styleColor: "black"; style: Text.Sunken
70// }
71// }
72
73// Item {
74// width: parent.width; height: 40
75
76// Button {
77// id: backButton
78// action: webView.back; image: "pics/go-previous-view.png"
79// anchors { left: parent.left; bottom: parent.bottom }
80// }
81
82// Button {
83// id: nextButton
84// anchors.left: backButton.right
85// action: webView.forward; image: "pics/go-next-view.png"
86// }
87
88// UrlInput {
89// id: urlInput
90// anchors { left: nextButton.right; right: reloadButton.left }
91// image: "pics/display.png"
92// onUrlEntered: {
93// webBrowser.urlString = url
94// webBrowser.focus = true
95// header.urlChanged = false
96// }
97// onUrlChanged: header.urlChanged = true
98// }
99
100// Button {
101// id: reloadButton
102// anchors { right: quitButton.left; rightMargin: 10 }
103// action: webView.reload; image: "pics/view-refresh.png"
104// visible: webView.progress == 1.0 && !header.urlChanged
105// }
106// Text {
107// id: quitButton
108// color: "white"
109// style: Text.Sunken
110// anchors.right: parent.right
111// anchors.top: parent.top
112// anchors.bottom: parent.bottom
113// verticalAlignment: Text.AlignVCenter
114// horizontalAlignment: Text.AlignHCenter
115// font.pixelSize: 18
116// width: 60
117// text: "Quit"
118// MouseArea {
119// anchors.fill: parent
120// onClicked: Qt.quit()
121// }
122// Rectangle {
123// width: 1
124// y: 5
125// height: parent.height-10
126// anchors.right: parent.left
127// color: "darkgray"
128// }
129// }
130
131// Button {
132// id: stopButton
133// anchors { right: quitButton.left; rightMargin: 10 }
134// action: webView.stop; image: "pics/edit-delete.png"
135// visible: webView.progress < 1.0 && !header.urlChanged
136// }
137
138// Button {
139// id: goButton
140// anchors { right: parent.right; rightMargin: 4 }
141// onClicked: {
142// webBrowser.urlString = urlInput.url
143// webBrowser.focus = true
144// header.urlChanged = false
145// }
146// image: "pics/go-jump-locationbar.png"; visible: header.urlChanged
147 }
148
149
150
0151
=== added file 'examples/Browsers/youtube/BrowserScrollbars.qml'
--- examples/Browsers/youtube/BrowserScrollbars.qml 1970-01-01 00:00:00 +0000
+++ examples/Browsers/youtube/BrowserScrollbars.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,66 @@
1import QtQuick 2.0
2
3Item {
4 id: container
5
6 property variant scrollArea
7 property variant orientation: Qt.Vertical
8
9 opacity: 0
10
11 function position()
12 {
13 var ny = 0;
14 if (container.orientation == Qt.Vertical)
15 ny = scrollArea.visibleArea.yPosition * container.height;
16 else
17 ny = scrollArea.visibleArea.xPosition * container.width;
18 if (ny > 2) return ny; else return 2;
19 }
20
21 function size()
22 {
23 var nh, ny;
24
25 if (container.orientation == Qt.Vertical)
26 nh = scrollArea.visibleArea.heightRatio * container.height;
27 else
28 nh = scrollArea.visibleArea.widthRatio * container.width;
29
30 if (container.orientation == Qt.Vertical)
31 ny = scrollArea.visibleArea.yPosition * container.height;
32 else
33 ny = scrollArea.visibleArea.xPosition * container.width;
34
35 if (ny > 3) {
36 var t;
37 if (container.orientation == Qt.Vertical)
38 t = Math.ceil(container.height - 3 - ny);
39 else
40 t = Math.ceil(container.width - 3 - ny);
41 if (nh > t) return t; else return nh;
42 } else return nh + ny;
43 }
44
45 Rectangle { anchors.fill: parent; color: "Black"; opacity: 0.5 }
46
47 BorderImage {
48 source: "../common/artwork/scrollbar.png"
49 border { left: 1; right: 1; top: 1; bottom: 1 }
50 x: container.orientation == Qt.Vertical ? 2 : position()
51 width: container.orientation == Qt.Vertical ? container.width - 4 : size()
52 y: container.orientation == Qt.Vertical ? position() : 2
53 height: container.orientation == Qt.Vertical ? size() : container.height - 4
54 }
55
56 states: State {
57 name: "visible"
58 when: container.orientation == Qt.Vertical ? scrollArea.movingVertically : scrollArea.movingHorizontally
59 PropertyChanges { target: container; opacity: 1.0 }
60 }
61
62 transitions: Transition {
63 from: "visible"; to: ""
64 NumberAnimation { properties: "opacity"; duration: 600 }
65 }
66}
067
=== added file 'examples/Browsers/youtube/ButtonBackground.qml'
--- examples/Browsers/youtube/ButtonBackground.qml 1970-01-01 00:00:00 +0000
+++ examples/Browsers/youtube/ButtonBackground.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,49 @@
1/*
2 * This file is part of unity-2d
3 *
4 * Copyright 2010-2011 Canonical Ltd.
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 3.
9 *
10 * This program 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.0
20
21Item {
22 id: background
23
24 property string state
25
26 opacity: ( state == "selected" || state == "pressed"
27 || state == "hovered" ) ? 1.0 : 0.0
28 Behavior on opacity {NumberAnimation {duration: 100}}
29
30 Rectangle {
31
32 /* FIXME: */
33 anchors.fill: parent
34 anchors.bottomMargin: 1
35 anchors.rightMargin: 1
36
37 color: background.state == "pressed" ? "#ffffffff" : "#00000000"
38 border.color: "#cccccc"
39 border.width: 1
40 radius: 3
41
42 Image {
43 fillMode: Image.Tile
44 anchors.fill: parent
45 source: "artwork/button_background.png"
46 smooth: false
47 }
48 }
49}
050
=== added file 'examples/Browsers/youtube/FlicableWebView.qml'
--- examples/Browsers/youtube/FlicableWebView.qml 1970-01-01 00:00:00 +0000
+++ examples/Browsers/youtube/FlicableWebView.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,194 @@
1/****************************************************************************
2 **
3 ** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 ** Contact: Nokia Corporation (qt-info@nokia.com)
6 **
7 ** This file is part of the QtDeclarative module of the Qt Toolkit.
8 **
9 ** $QT_BEGIN_LICENSE:LGPL$
10 ** GNU Lesser General Public License Usage
11 ** This file may be used under the terms of the GNU Lesser General Public
12 ** License version 2.1 as published by the Free Software Foundation and
13 ** appearing in the file LICENSE.LGPL included in the packaging of this
14 ** file. Please review the following information to ensure the GNU Lesser
15 ** General Public License version 2.1 requirements will be met:
16 ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
17 **
18 ** In addition, as a special exception, Nokia gives you certain additional
19 ** rights. These rights are described in the Nokia Qt LGPL Exception
20 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
21 **
22 ** GNU General Public License Usage
23 ** Alternatively, this file may be used under the terms of the GNU General
24 ** Public License version 3.0 as published by the Free Software Foundation
25 ** and appearing in the file LICENSE.GPL included in the packaging of this
26 ** file. Please review the following information to ensure the GNU General
27 ** Public License version 3.0 requirements will be met:
28 ** http://www.gnu.org/copyleft/gpl.html.
29 **
30 ** Other Usage
31 ** Alternatively, this file may be used in accordance with the terms and
32 ** conditions contained in a signed written agreement between you and Nokia.
33 **
34 **
35 **
36 **
37 **
38 ** $QT_END_LICENSE$
39 **
40 ****************************************************************************/
41
42 import QtQuick 2.0
43 import QtWebKit 3.0
44
45 Flickable {
46 property alias title: webView.title
47 property alias icon: webView.icon
48 property alias progress: webView.progress
49 property alias url: webView.url
50 property alias back: webView.back
51 property alias stop: webView.stop
52 property alias reload: webView.reload
53 property alias forward: webView.forward
54 id: flickable
55// width: parent.width
56 contentWidth: Math.max(parent.width,webView.width)
57 contentHeight: Math.max(parent.height,webView.height)
58 anchors.top: headerSpace.bottom
59 anchors.bottom: parent.top
60 anchors.left: parent.left
61 anchors.right: parent.right
62 pressDelay: 200
63
64 onWidthChanged : {
65 // Expand (but not above 1:1) if otherwise would be smaller that available width.
66 if (width > webView.width*webView.contentsScale && webView.contentsScale < 1.0)
67 webView.contentsScale = width / webView.width * webView.contentsScale;
68 }
69
70 WebView {
71 id: webView
72 transformOrigin: Item.TopLeft
73
74 function fixUrl(url)
75 {
76 if (url == "") return url
77 if (url[0] == "/") return "file://"+url
78 if (url.indexOf(":")<0) {
79 if (url.indexOf(".")<0 || url.indexOf(" ")>=0) {
80 // Fall back to a search engine; hard-code Wikipedia
81 return "http://en.wikipedia.org/w/index.php?search="+url
82 } else {
83 return "http://"+url
84 }
85 }
86 return url
87 }
88
89 url: fixUrl(webBrowser.urlString)
90 smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions
91 focus: true
92
93 onAlert: console.log(message)
94
95 function doZoom(zoom,centerX,centerY)
96 {
97 if (centerX) {
98 var sc = zoom*contentsScale;
99 scaleAnim.to = sc;
100 flickVX.from = flickable.contentX
101 flickVX.to = Math.max(0,Math.min(centerX-flickable.width/2,webView.width*sc-flickable.width))
102 finalX.value = flickVX.to
103 flickVY.from = flickable.contentY
104 flickVY.to = Math.max(0,Math.min(centerY-flickable.height/2,webView.height*sc-flickable.height))
105 finalY.value = flickVY.to
106 quickZoom.start()
107 }
108 }
109
110 Keys.onLeftPressed: webView.contentsScale -= 0.1
111 Keys.onRightPressed: webView.contentsScale += 0.1
112
113 preferredWidth: flickable.width
114 preferredHeight: flickable.height
115// contentsScale: 1
116// onContentsSizeChanged: {
117// // zoom out
118// contentsScale = Math.min(1,flickable.width / contentsSize.width)
119// }
120 onUrlChanged: {
121 // got to topleft
122 flickable.contentX = 0
123 flickable.contentY = 0
124 if (url != null) { header.editUrl = url.toString(); }
125 }
126// onDoubleClick: {
127// if (!heuristicZoom(clickX,clickY,2.5)) {
128// var zf = flickable.width / contentsSize.width
129// if (zf >= contentsScale)
130// zf = 2.0*contentsScale // zoom in (else zooming out)
131// doZoom(zf,clickX*zf,clickY*zf)
132// }
133// }
134
135 SequentialAnimation {
136 id: quickZoom
137
138 PropertyAction {
139 target: webView
140 property: "renderingEnabled"
141 value: false
142 }
143 ParallelAnimation {
144 NumberAnimation {
145 id: scaleAnim
146 target: webView
147 property: "contentsScale"
148 // the to property is set before calling
149 easing.type: Easing.Linear
150 duration: 200
151 }
152 NumberAnimation {
153 id: flickVX
154 target: flickable
155 property: "contentX"
156 easing.type: Easing.Linear
157 duration: 200
158 from: 0 // set before calling
159 to: 0 // set before calling
160 }
161 NumberAnimation {
162 id: flickVY
163 target: flickable
164 property: "contentY"
165 easing.type: Easing.Linear
166 duration: 200
167 from: 0 // set before calling
168 to: 0 // set before calling
169 }
170 }
171 // Have to set the contentXY, since the above 2
172 // size changes may have started a correction if
173 // contentsScale < 1.0.
174 PropertyAction {
175 id: finalX
176 target: flickable
177 property: "contentX"
178 value: 0 // set before calling
179 }
180 PropertyAction {
181 id: finalY
182 target: flickable
183 property: "contentY"
184 value: 0 // set before calling
185 }
186 PropertyAction {
187 target: webView
188 property: "renderingEnabled"
189 value: true
190 }
191 }
192// onZoomTo: doZoom(zoom,centerX,centerY)
193 }
194 }
0195
=== added file 'examples/Browsers/youtube/Youtube.qml'
--- examples/Browsers/youtube/Youtube.qml 1970-01-01 00:00:00 +0000
+++ examples/Browsers/youtube/Youtube.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,74 @@
1import QtQuick 2.0
2import QtWebKit 3.0
3//import "../../common"
4//import"../../s/*y*/steminfo"
5
6
7Rectangle {
8 id: webBrowser
9 property string urlString : "https://www.youtube.com/tv"
10 width: parent.width; height: parent.height
11 color: "#343434"
12 FlicableWebView {
13 id: webView
14 url: webBrowser.urlString
15 onProgressChanged: header.urlChanged = false
16 anchors {
17 top: headerSpace.bottom;
18 left: parent.left;
19 right: parent.right;
20 bottom: parent.bottom
21 }
22 }
23
24 Item {
25 id: headerSpace;
26 width: parent.width;
27 height: 0
28 }
29
30// SettingsMangerParser {
31// visible: false
32// icon: "/usr/share/pixmaps/mythtv.png"
33// id:mythfrontend
34// x: 900
35// smooth: true
36// desktopFile: "mythtv.desktop"
37// }
38 BrowserScrollbars {
39 scrollArea: webView; width: 8
40 anchors { right: parent.right; top: header.bottom; bottom: parent.bottom }
41 }
42
43 BrowserScrollbars{
44 scrollArea: webView; height: 8; orientation: Qt.Horizontal
45 anchors { right: parent.right; rightMargin: 8; left: parent.left; bottom: parent.bottom }
46 }
47
48
49// Row{
50// id:testbutton
51// PictureGlowButton{
52// id:drendering
53// text: "testing 1"
54// onClicked: declarativeView.activeLens = activateQtvviewer
55// }
56// PictureGlowButton{
57// id:fanart
58// text: "Testing 2"
59// onClicked: declarativeView.activeLens = activateVideffect
60// }
61// PictureGlowButton{
62// id:showmythbuttons
63// text: "Luanch Myth"
64// onClicked: mythfrontend.visible = "" ? mythfrontend.visible = "" : mythfrontend.visible = true
65// }
66 }
67 // Header {
68 // id: header
69 // editUrl: webBrowser.urlString
70 // width: headerSpace.width; height: headerSpace.height
71 // }
72
73
74//}
075
=== added file 'examples/GetLatLongDelegate.qml'
--- examples/GetLatLongDelegate.qml 1970-01-01 00:00:00 +0000
+++ examples/GetLatLongDelegate.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,54 @@
1import QtQuick 2.0
2import QtQuick.XmlListModel 2.0
3import Ubuntu.Components 0.1
4Item {
5 id: series
6 signal clicked()
7 x: 15
8// visible: west === "" ? false : true
9 width: listView.width - 3
10 height: listView.width / 3.33
11 Rectangle {
12 color: bannerImg.status === Image.Error ? "#66000000" : "transparent"
13 anchors.fill: parent
14 border.color: "#00000000"
15 border.width: 3
16 smooth: true
17 }
18 UbuntuShape {
19 id: bannerImg
20 anchors.fill: parent
21 color: "#22000000"
22 }
23 MouseArea {
24 anchors.fill: parent
25 onClicked:{series.clicked()}
26 }
27 Item {
28 id: topLayout
29 x: 20;
30 width: parent.width;
31 height: parent.height
32 anchors.verticalCenter: parent.verticalCenter
33 Text {
34 height: 20
35 id: titleLabel
36 text: "Name" +name+"\n"
37+ adminName1+"\n"
38 + adminName2+"\n"
39 +"population: " +population+"\n"
40 +countryName +"\n"
41 +countryCode+"\n"
42 + elevation +"\n"
43// +north+"\n"
44// +east+"\n"
45// +west+"\n"
46// +south
47 color: "white"
48 font.pixelSize: 12
49 font.bold: true;
50 wrapMode: Text.WordWrap
51
52 }
53 }
54}
055
=== added file 'examples/GetLatLongModel.qml'
--- examples/GetLatLongModel.qml 1970-01-01 00:00:00 +0000
+++ examples/GetLatLongModel.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,40 @@
1import QtQuick 2.0
2import QtQuick.XmlListModel 2.0
3
4XmlListModel {
5 id: seriesModel
6 function newSearch(text) {
7 console.log("Searching: " + text);
8 source ="http://api.geonames.org/search?q="+text+"&maxRows=10&username=bobweaver12345&style=FULL"
9 reload()
10 }
11 query: "//geonames/geoname"
12 XmlRole { name: "name"; query: "name/string()" }
13 XmlRole { name: "lat"; query: "lat/string()" }
14 XmlRole { name: "lng"; query: "lng/string()" }
15 XmlRole { name:"postalcode"; query: "postalcode/string()"} //zip code
16 // XmlRole { name:"stateName"; query: "adminName1/string()"} //state
17 XmlRole { name:"countryName"; query: "countryName/string()"} //country long name
18 XmlRole { name:"countryCode"; query: "countryCode/string()"} //counrty short name
19 XmlRole { name:"geonameId"; query: "geonameId/string()"} //site name ID
20 XmlRole { name:"fclName"; query: "fclName/string()"} //Items a town ,city ,rural ,ect
21 XmlRole { name:"population"; query: "population/string()"} //population of item
22 XmlRole { name:"elevation"; query: "elevation/string()"} //elevation of Item
23 XmlRole { name:"adminName1"; query: "adminName1/string()"} //long statename
24 XmlRole { name:"adminName2"; query: "adminName2/string()"} // county in state USA
25 // bbox top line of the east west south and north
26 XmlRole { name:"west";query: "bbox/west/string()"}
27 XmlRole { name:"north"; query: "bbox/north/string()"}
28 XmlRole { name:"east"; query: "bbox/east/string()"}
29 XmlRole { name:"south"; query: "bbox/south/string()"}
30
31// XmlRole { name:"score" ; query:"score/string()" } // Have No clue
32 XmlRole { name:"totalResultsCount" ; query:"totalResultsCount/string()" } // For Debuging
33
34 onStatusChanged: {
35 if (status == XmlListModel.Ready) console.log("Loaded")
36 if (status == XmlListModel.Loading) console.log("Loading");
37// if (status == XmlListModel.Error) console.log("Error: " + errorString );
38 }
39}
40
041
=== added file 'examples/NOAADelegate.qml'
--- examples/NOAADelegate.qml 1970-01-01 00:00:00 +0000
+++ examples/NOAADelegate.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,6 @@
1import QtQuick 2.0
2
3Rectangle {
4 width: 100
5 height: 62
6}
07
=== added file 'examples/NOAAModel.qml'
--- examples/NOAAModel.qml 1970-01-01 00:00:00 +0000
+++ examples/NOAAModel.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,6 @@
1import QtQuick 2.0
2
3Rectangle {
4 width: 100
5 height: 62
6}
07
=== added file 'examples/ProgressDialog.qml'
--- examples/ProgressDialog.qml 1970-01-01 00:00:00 +0000
+++ examples/ProgressDialog.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,55 @@
1import QtQuick 2.0
2Item {
3 id: progresDialog
4 width: parent.width
5 height: parent.height
6 property alias text: progresText.text
7 Rectangle {
8 id: background
9 anchors.fill: parent
10 border.color: "#55FFFFFF"
11 radius: 4
12 border.width: 0
13 gradient: Gradient {
14 GradientStop { position: 0; color: "#77000000"}
15 GradientStop { position: 0.9; color: "#66808080"}
16 GradientStop { position: 1; color: "#77000000"}
17 }
18 }
19 Text {
20 id: progresText
21 text: ""
22 width: parent.width - 40
23 color: "white"
24 font.pixelSize: 20
25 anchors{
26 horizontalCenter: parent.horizontalCenter
27 top: parent.top
28 topMargin: 20
29 }
30 }
31
32 Image {
33 id: indicatorImg
34 width: 128
35 height: 128
36 smooth: true
37 //FIX ME
38 sourceSize.height: height
39 sourceSize.width: width
40 source: "/usr/share/unity/5/launcher_bfb.png"
41 anchors{
42 verticalCenter: parent.verticalCenter
43 horizontalCenter: parent.horizontalCenter
44 }
45 RotationAnimation {
46 target: indicatorImg;
47 running: true
48 loops: Animation.Infinite
49 duration: 1200
50 direction: RotationAnimation.Clockwise
51// from: 0
52// to: 360
53 }
54 }
55}
056
=== added file 'examples/SearchBar.qml'
--- examples/SearchBar.qml 1970-01-01 00:00:00 +0000
+++ examples/SearchBar.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,60 @@
1import QtQuick 2.0
2
3Rectangle {
4 id: searchBar
5 height: 70
6 color: "transparent"
7 width: parent.width - 100
8 signal search(string text);
9 BorderImage {
10 id: searchbar
11 source: "../artwork/search_background.png"
12 width: parent.width ; height: 70
13 border.left: 25; border.top: 25
14 border.right: 25; border.bottom: 25
15 }
16 Image {
17 id: magGlass
18 source: "../artwork/search_icon.png"
19 anchors{
20 left: searchbar.left
21 leftMargin: 12
22 verticalCenter:searchbar.verticalCenter
23 }
24 }
25 SearchBox{
26 id: searchBox
27 state: 'Show'
28 height: parent.height - 5
29// focus: parent.focus === true ? true : false
30 anchors{
31 left: magGlass.right
32 leftMargin: 15
33 right: parent.right
34 rightMargin: 5
35 }
36 onReturnPressed: {
37 if (searchBox.text !== '') {
38 searchBar.search(searchBox.text);
39 searchBox.text = ""
40 }
41 }
42
43 states: [
44 State {
45 name: "Hide"
46 PropertyChanges {
47 target: searchBox
48 opacity: 0.0
49 }
50 },
51 State {
52 name: "Show"
53 PropertyChanges {
54 target: searchBox
55 opacity: 1.0
56 }
57 }
58 ]
59 }
60}
061
=== added file 'examples/SearchBox.qml'
--- examples/SearchBox.qml 1970-01-01 00:00:00 +0000
+++ examples/SearchBox.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,77 @@
1import QtQuick 2.0
2
3FocusScope {
4 id: focusScope
5 width: 250; height: textInput.height + 10
6 property alias text: textInput.text
7 signal returnPressed();
8
9 Text {
10 id: typeSomething
11 verticalAlignment: Text.AlignLeft
12 text: qsTr("Enter City")
13 anchors{
14 right: parent.right
15 rightMargin: 8
16 left: parent.left
17 verticalCenter: parent.verticalCenter
18 }
19 color: "#44FFFFFF"
20 font.pixelSize: 22
21 font.italic: true
22 }
23
24 MouseArea {
25 anchors.fill: parent
26 onClicked: { focusScope.focus = true; textInput.openSoftwareInputPanel(); }
27 }
28
29 TextInput {
30 id: textInput
31 smooth: true
32 anchors { left: parent.left; right: clear.left; rightMargin: 8; verticalCenter: parent.verticalCenter }
33 focus: true
34 selectByMouse: true
35 font.pixelSize: 28
36 font.bold: true
37 color: "#FFFFFF"
38
39 Keys.onPressed: {
40 if (event.key === Qt.Key_Enter || event.key === Qt.Key_Return)
41 returnPressed();
42 }
43 }
44
45 Image {
46 id: clear
47 height: parent.height
48 width: height
49 smooth: true
50 fillMode: Image.PreserveAspectFit
51 anchors { right: parent.right; rightMargin: 8; verticalCenter: parent.verticalCenter }
52 source: "../artwork/pics/clear.png"
53 opacity: 0
54
55 MouseArea {
56 anchors.fill: parent
57 onClicked: { textInput.text = ''; focusScope.focus = true; textInput.openSoftwareInputPanel(); }
58 }
59 }
60
61 states: State {
62 name: "hasText"; when: textInput.text != ''
63 PropertyChanges { target: typeSomething; opacity: 0 }
64 PropertyChanges { target: clear; opacity: 0 }
65 }
66
67 transitions: [
68 Transition {
69 from: ""; to: "hasText"
70 NumberAnimation { exclude: typeSomething; properties: "opacity" }
71 },
72 Transition {
73 from: "hasText"; to: ""
74 NumberAnimation { properties: "opacity" }
75 }
76 ]
77}
078
=== added file 'examples/TWC.qml'
--- examples/TWC.qml 1970-01-01 00:00:00 +0000
+++ examples/TWC.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,24 @@
1import QtQuick 2.0
2import QtWebKit 3.0
3WeatherDelegate{
4 property string forTWC: forTWC
5 id: weatherPasser
6 width: parent.width
7 height: parent.height
8 anchors.fill: parent
9Rectangle{
10 id: rootangel
11 color:"black"
12 width: parent.width
13 height: parent.height
14 anchors.fill: parent
15
16WebView {
17 url: "http://www.weather.com/search/enhancedlocalsearch?where="+ forTWC
18 height: rootangel.height
19 scale: 1
20 smooth: true
21} MouseArea{anchors.fill: parent; onClicked: console.log(forTWC)}
22}
23
24}
025
=== added file 'examples/WeatherDelegate.qml'
--- examples/WeatherDelegate.qml 1970-01-01 00:00:00 +0000
+++ examples/WeatherDelegate.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,1091 @@
1import QtQuick 2.0
2import QtQuick.XmlListModel 2.0
3import QtQuick.Particles 2.0
4import Ubuntu.Components 0.1
5import QtQuick.LocalStorage 2.0
6import "../common/dbUtils.js" as DataBase
7import "../common/Utils.js" as Util
8Item {
9 id: serie
10 property string name:''
11 property string countryName:''
12 property string adminName1:''
13 // property string south:''
14 property string folder: "../artwork"
15 property string forTWC: cityName.text
16
17 function translateX(x) {
18 return root.width/10.0 + (x/700*root.width);
19 }
20
21 function translateY(y) {
22 var tmp = y+root.height/5.0;
23 return tmp > 0 ? -20 : tmp;
24 }
25 function loadDetails(countryName,adminName1,name) {
26 serie.name = name
27 serie.countryName = countryName
28 serie.adminName1 = adminName1
29 serieModel.load(countryName,adminName1,name)
30 }
31
32 XmlListModel {
33 id: serieModel
34 function load(CountryName,AdminName1,Name) {
35 console.log("Loading Weather For ....... \n "+Name+"\n \n"
36 + encodeURI("http://www.yr.no/place/"
37 + CountryName
38 + "/"
39 + AdminName1
40 + "/"
41 + Name
42 + "/forecast.xml"))
43 source = encodeURI("http://www.yr.no/place/"+CountryName+"/"+AdminName1+"/"+Name+"/forecast.xml")
44 reload()
45 }
46 query: "/weatherdata"
47 XmlRole { name: "timezone"; query: "location/type/string()"}
48
49 // Right Now
50 XmlRole { name: "timeFrom"; query: "forecast/tabular/time[1]/@from/string()"}
51 XmlRole { name: "timeTo"; query: "forecast/tabular/time[1]/@to/string()"}
52 XmlRole { name: "observationTime"; query: "forecast/tabular/time[1]/string()"}
53 XmlRole { name: "temperature"; query: "forecast/tabular/time[1]/temperature/@value/string()" }
54 XmlRole { name: "precipitation"; query: "forecast/tabular/time[1]/precipitation/@value/string()" }
55 XmlRole { name: "clouds"; query: "forecast/tabular/time[1]/symbol/@name/string()" }
56 XmlRole { name: "windDirection"; query: "forecast/tabular/time[1]/windDirection/@name/string()" }
57 XmlRole { name: "windSpeed"; query: "forecast/tabular/time[1]/windSpeed/@name/string()" }
58 XmlRole { name: "windSpeedMPS"; query: "forecast/tabular/time[1]/windSpeed/@mps/string()" }
59 XmlRole { name: "pressure"; query: "forecast/tabular/time[1]/pressure/@value/string()" }
60 XmlRole { name: "sunRise"; query: "sun/@rise/string()" }
61 XmlRole { name: "sunSet"; query: "sun/@set/string()" }
62
63
64 XmlRole { name: "weatherCondition"; query: "forecast/tabular/string()"}
65 XmlRole { name: "status"; query: "forecast/tabular/string()" }
66
67
68
69
70 // XmlRole { name: "lastupdate"; query: "meta/lastupdate/string()" }
71 // XmlRole { name: "nextupdate"; query: "meta/nextupdate/string()" }
72 XmlRole { name:"creditTXT"; query: "credit/link/@text/string()"}
73 XmlRole { name:"creditURL"; query: "credit/link/@url/string()"}
74 onStatusChanged: {
75 if (status == XmlListModel.Ready) console.log("Loaded")
76 if (status == XmlListModel.Loading) console.log("Loading");
77 }
78 }
79
80 Text {
81 id: cityName
82 color: "white"
83 height:22
84 font.bold: true
85 font.pixelSize: 28
86 text: serie.name
87 anchors{
88 top: parent.top
89 topMargin: 80
90 }
91 }
92
93 Rectangle{
94 id: separator1
95 color: "#44000000"
96 height: 3
97 width: parent.width
98 anchors{
99 top: cityName.bottom
100 topMargin: 10
101 left: parent.left
102 }
103 }
104 Text {
105 id: today
106 text: Qt.formatDate(new Date(), "MMMM dddd"+","+" d yyyy ")
107 color: "white"
108 font.pixelSize: 22
109 anchors{
110 top:separator1.bottom
111 topMargin: 2
112 }
113 }
114 ListView {
115 model: serieModel
116 delegate: Item{
117 property string temp: tempatureTxt.text.toString()
118 id: topLayout
119 width: parent.width;
120 height: parent.height
121
122 Text {
123 id: timeAroo
124 text:Qt.formatDateTime(new Date(), "hh"+":"+"mm")
125 height:22
126 state: "Milatary"
127 x:state === "Milatary" ? separator1.width - 88 : separator1.width - 115
128 Behavior on x{NumberAnimation{
129 duration: 1200; easing.type: Easing.OutBounce}
130 }
131 color: "white"
132 font.bold: true
133 font.pixelSize: 22
134 anchors{
135 top: parent.top
136 topMargin: 86
137 //
138 }
139 }
140 MouseArea{
141 anchors.fill: timeAroo
142 onClicked: if (timeAroo.text === Qt.formatDateTime(new Date(), "hh"+":"+"mm") ){
143 timeAroo.text = Qt.formatDateTime(new Date(), "h:mm ap")
144 timeAroo.state = "12-Hour"
145 }else{
146 timeAroo.text = Qt.formatDateTime(new Date(), "hh"+":"+"mm")
147 timeAroo.state = "Milatary"
148 }
149 }
150 Image {
151 id: fahrenheitImg
152 source: Util.dir+"fahrenheit.png"
153 width: sourceSize.width / 2
154 height: sourceSize.height / 2
155 opacity: tempatureTxt.state === "Celcius" ? 0 : 1
156 Behavior on opacity {NumberAnimation{duration: 200; easing.type: Easing.InQuad}}
157 y: tempatureTxt.state === "Celcius" ? separator1.height * 2 : separator1.width
158 Behavior on y {NumberAnimation{duration: 1200 ; easing.type: Easing.OutBack}}
159 x: tempatureTxt.width + tempatureTxt.height + 12
160 }
161 Image {
162 id: celciusImg
163 source:{if(tempatureTxt.state === "Celcius")
164 Util.dir+"centigrades.png"
165 else
166 Util.dir+"fahrenheit.png"
167 }
168 height: sourceSize.height / 2
169 width: sourceSize.width / 2
170
171 opacity: tempatureTxt.state === "Celcius" ? 1 : 0
172 Behavior on opacity {NumberAnimation{duration:200; easing.type: Easing.OutQuad}}
173 x: tempatureTxt.state === "Celcius" ? tempatureTxt.width :tempatureTxt.state === "Fahrenheit"? -separator1.width : tempatureTxt.width
174 Behavior on x{NumberAnimation{duration: 1200; easing.type: Easing.OutBack}}
175 anchors{
176 top: tempatureTxt.top
177 }
178
179 }
180 Text {
181 id: tempatureTxt
182 text: temperature
183 color: "white"
184 width: separator1.width / 2
185 font.pixelSize: 64
186 font.bold: true
187 state: "Celcius"
188 x: state === "Celcius" ? (separator1.width / 1.22)-width : (separator1.width/1.22)-width
189 y: page.height / 1.44
190 }MouseArea{
191 anchors.fill: tempatureTxt
192 onClicked: {
193 var f = (temperature * 9 / 5 + 32)
194 if (tempatureTxt.state === "Celcius"){
195 tempatureTxt.text = (temperature * 9 / 5 + 32)
196 tempatureTxt.state = "Fahrenheit"
197 }else{
198 tempatureTxt.text = temperature
199 tempatureTxt.state = "Celcius"
200
201 }
202 }
203 }
204
205
206 Image {
207 id: hangerSunMoon
208 height: sourceSize.height
209 source: "../artwork/na_icon_line.png"
210 y:mainImage.y - mainImage.sourceSize.height
211 anchors{
212 horizontalCenter: mainImage.horizontalCenter
213 }
214 }
215
216 //This is only for MOON and Sun & fallback
217 Image {
218 id: mainImage
219 width: sourceSize.width / 1.04
220 height: sourceSize.height
221 smooth: true
222 state: "Shown"
223 x: page.width /2 - (width/2)
224 y: if (state === "Shown")
225 page.height / 4.22
226 else if (state === "Hidden")
227 -page.height
228 else
229 page.height/ 5.44
230 Behavior on y{NumberAnimation{duration: 1200;easing.type: Easing.OutBounce}}
231 source: {
232
233 if (Util.nightOrDay(new Date(),"hh") === "night" === true )
234 Util.dir + "moon.png"
235 else if (Util.nightOrDay(new Date(),"hh") === "night" !== true && temperature > 5)
236 Util.dir + "sun.png"
237 else if (Util.nightOrDay(new Date(),"hh") === "night" !== true && temperature < 5)
238 Util.dir + "cold_sun.png"
239
240 else if (weatherCondition === "light rain" && Util.nightOrDay(new Date(),"hh") === "night" !== true)
241 Util.dir+"sun.png"
242
243
244 else if (weatherCondition === "mist" && Util.nightOrDay(new Date(),"hh") === "night" !== true)
245 Util.dir+"cold_sun.png"
246
247
248
249 else
250 Util.dir +"na_icon.png"
251 }
252
253 }MouseArea {
254 id:mainImageMouseArea
255 anchors.fill: mainImage
256 onPressAndHold:{ mainImage.state = "Hidden" }
257 onReleased:{mainImage.state = "Shown"}
258 onClicked: {
259// observationTime.subString(observationTime.lastIndexOf("T")+1)+observationTime.subString(0,observationTime.indexOf(":")+)
260// sunSet) moon
261//observationTime.substring(observationTime.lastIndexOf("T")+1)+observationTime.substring(0,observationTime.indexOf(":"))
262 var isUP = timeFrom.substring(timeFrom.lastIndexOf("T")+1)
263 var isDown = sunSet.substring(sunSet.lastIndexOf("T")+1)
264 var isSunUP = sunRise.substring(sunRise.lastIndexOf("T")+1)
265 console.log(isUP.substring(0,isUP.indexOf(":")) +" ? " + isDown.substring(0,isDown.indexOf(":"))
266 + "\n"
267 + isUP.substring(0,isUP.indexOf(":")) +" ? " +isSunUP.substring(0,isSunUP.indexOf(":")))
268 }
269 }
270
271
272 //Start to add the clouds
273 // Ok this is how this works if there condtions call for the cloud then they are shown pelse they are not.
274 //each item has a string and the string is set to match the item that it is attached to. this makes it so
275 //so that each time the moon or sun is pressed and held each one will move up with animations and also on different durations
276 //It is imporant that we keep the states the same as "main Image" aka the sun or moon or cold sun
277
278 //////////////////////////cloudsImage1
279 Image {
280 id: cloudsImage1
281 width: sourceSize.width /2
282 height: sourceSize.height /2
283 opacity:{
284 if (clouds === "Cloudy"||clouds ==="Snow")
285 1
286 else
287 0
288 }
289 smooth: true
290 state: mainImage.state
291 x: page.width / 20
292 y: if (state === "Shown")
293 page.height / 2
294 else if (state === "Hidden")
295 -page.height
296 else
297 page.height / 2
298 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
299 source: Util.dir + "cloud_1.png"
300 }
301 Image {
302 id: hangerCloud1
303 height: sourceSize.height /2
304 opacity: cloudsImage1.opacity
305
306 source: Util.dir+"cloud_1_line.png"
307 y: cloudsImage1.y - cloudsImage1.sourceSize.height -(cloudsImage1.sourceSize.height / 1.844)
308 x:cloudsImage1.width / 1.844
309 }
310 // End cloudsImage1
311
312
313 //cloudsImage2
314 Image {
315 id: cloudsImage2
316 width: sourceSize.width / 1.88
317 height: sourceSize.height / 1.88
318 opacity:{
319 if (clouds === "Cloudy"||clouds ==="Snow"|| clouds == "Partly cloudy")
320 1
321 else
322 0
323 }
324
325 smooth: true
326 state: mainImage.state
327 x: page.width / 2
328 y: if (state === "Shown")
329 page.height / 2
330 else if (state === "Hidden")
331 -page.height
332 else
333 page.height / 2
334 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
335 source: Util.dir + "cloud_2.png"
336 }
337 Image {
338 id: hangerCloud2
339 opacity: cloudsImage2.opacity
340
341 height: sourceSize.height /2
342 source: Util.dir+"cloud_2_line.png"
343 y: cloudsImage2.y - cloudsImage2.sourceSize.height -(cloudsImage2.sourceSize.height / 1.14)
344 x:cloudsImage2.x + cloudsImage2.width / 2.25
345 }
346 // End cloudsImage2
347
348
349
350 //cloudsImage3
351 Image {
352 id: cloudsImage3
353 width: sourceSize.width /2
354 height: sourceSize.height /2
355 opacity:{
356 if (clouds === "Cloudy"||clouds ==="Snow"||clouds == "Partly cloudy")
357 1
358 else
359 0
360 }
361 smooth: true
362 state: mainImage.state
363 x: page.width / 50
364 y: if (state === "Shown")
365 page.height / 2.66
366 else if (state === "Hidden")
367 -page.height
368 else
369 page.height / 2.66
370 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
371 source: Util.dir + "cloud_3.png"
372 }
373 Image {
374 id: hangerCloud3
375 opacity: cloudsImage3.opacity
376 height: sourceSize.height /2
377 source: Util.dir+"cloud_3_line.png"
378 y: cloudsImage3.y - cloudsImage3.sourceSize.height -(cloudsImage3.sourceSize.height + cloudsImage3.height /2)
379 x:cloudsImage3.x + cloudsImage3.width / 2.25
380 }
381 // End cloudsImage3
382
383
384//////////////start rain clouds
385 //cloudsImageRain1
386 Image {
387 id: cloudsRainImage1
388 width: sourceSize.width /2
389 height: sourceSize.height /2
390 opacity:{
391 if (clouds === "Rain")
392 1
393 else
394 0
395 }
396
397 smooth: true
398 state: mainImage.state
399 x: page.width / 20
400 y: if (state === "Shown")
401 page.height / 2
402 else if (state === "Hidden")
403 -page.height
404 else
405 page.height / 2
406 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
407 source: Util.dir + "cloud_rain_1.png"
408 }
409 Image {
410 id: hangerCloudRain1
411 opacity: cloudsRainImage1.opacity
412
413 height: sourceSize.height /2
414 source: Util.dir+"cloud_rain_1_line.png"
415 y: cloudsRainImage1.y - cloudsRainImage1.sourceSize.height -(cloudsRainImage1.sourceSize.height / 1.844)
416 x:cloudsRainImage1.width / 1.844
417 }
418 // End cloudsImageRain1
419
420
421 //cloudsImageRain2
422 Image {
423 id: cloudsImageRain2
424 width: sourceSize.width / 1.88
425 height: sourceSize.height / 1.88
426 smooth: true
427 state: mainImage.state
428 x: page.width / 2
429 opacity:{
430 if (clouds === "Rain")
431 1
432 else
433 0
434 }
435
436 y: if (state === "Shown")
437 page.height / 2
438 else if (state === "Hidden")
439 -page.height
440 else
441 page.height / 2
442 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
443 source: Util.dir + "cloud_rain_2.png"
444 }
445 Image {
446 id: hangerCloudRain2
447 height: sourceSize.height /2
448 source: Util.dir+"cloud_rain_2_line.png"
449 opacity: cloudsImageRain2.opacity
450
451 y: cloudsImageRain2.y - cloudsImageRain2.sourceSize.height -(cloudsImageRain2.sourceSize.height / 1.14)
452 x:cloudsImageRain2.x + cloudsImageRain2.width / 2.25
453 }
454 // End cloudsImageRain2
455
456
457
458 //cloudsImageRain3
459 Image {
460 id: cloudsImageRain3
461 width: sourceSize.width /2
462 height: sourceSize.height /2
463 smooth: true
464 opacity:{
465 if (clouds === "Rain")
466 1
467 else
468 0
469 }
470
471 state: mainImage.state
472 x: page.width / 50
473 y: if (state === "Shown")
474 page.height / 2.66
475 else if (state === "Hidden")
476 -page.height
477 else
478 page.height / 2.66
479 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
480 source: Util.dir + "cloud_rain_3.png"
481 }
482 Image {
483 id: hangerCloudRain3
484 height: sourceSize.height /2
485 opacity: cloudsImageRain3.opacity
486
487 source: Util.dir+"cloud_rain_3_line.png"
488 y: cloudsImageRain3.y - cloudsImageRain3.sourceSize.height -(cloudsImageRain3.sourceSize.height + cloudsImageRain3.height /2)
489 x:cloudsImageRain3.x + cloudsImageRain3.width / 2.25
490 }
491 // End cloudsImageRain3
492
493
494////////////////////////start Storm Clouds
495
496 //cloudsImageStrom1
497 Image {
498 id: cloudsStormImage1
499 width: sourceSize.width /2
500 height: sourceSize.height /2
501 opacity:{
502 if (clouds === "Heavy rain")
503 1
504 else
505 0
506 }
507 smooth: true
508 state: mainImage.state
509 x: page.width / 20
510 y: if (state === "Shown")
511 page.height / 2
512 else if (state === "Hidden")
513 -page.height
514 else
515 page.height / 2
516 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
517 source: Util.dir + "cloud_storm_1.png"
518 }
519 Image {
520 id: hangerCloudStorm1
521 height: sourceSize.height /2
522 opacity: cloudsImageTStorm1.opacity
523
524 source: Util.dir+"cloud_storm_1_line.png"
525 y: cloudsStormImage1.y - cloudsStormImage1.sourceSize.height -(cloudsStormImage1.sourceSize.height / 1.844)
526 x:cloudsStormImage1.width / 1.844
527 }
528 // End cloudsImageStrom1
529
530
531 //cloudsImageStrom2
532 Image {
533 id: cloudsImageStrom2
534 width: sourceSize.width / 1.88
535 height: sourceSize.height / 1.88
536 opacity:{
537 if (clouds === "Heavy rain")
538 1
539 else
540 0
541 }
542
543 smooth: true
544 state: mainImage.state
545 x: page.width / 2
546 y: if (state === "Shown")
547 page.height / 2
548 else if (state === "Hidden")
549 -page.height
550 else
551 page.height / 2
552 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
553 source: Util.dir + "cloud_storm_2.png"
554 }
555 Image {
556 id: hangerCloudStorm2
557 height: sourceSize.height /2
558 source: Util.dir+"cloud_storm_2_line.png"
559 opacity: cloudsImageStrom2.opacity
560
561 y: cloudsImageStrom2.y - cloudsImageStrom2.sourceSize.height -(cloudsImageStrom2.sourceSize.height / 1.14)
562 x:cloudsImageStrom2.x + cloudsImageStrom2.width / 2.25
563 }
564 // End cloudsImageStrom2
565
566
567
568 //cloudsImageStrom3
569 Image {
570 id: cloudsImageStrom3
571 width: sourceSize.width /2
572 height: sourceSize.height /2
573 smooth: true
574 opacity:{
575 if (clouds === "Heavy rain")
576 1
577 else
578 0
579 }
580
581 state: mainImage.state
582 x: page.width / 50
583 y: if (state === "Shown")
584 page.height / 2.66
585 else if (state === "Hidden")
586 -page.height
587 else
588 page.height / 2.66
589 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
590 source: Util.dir + "cloud_storm_3.png"
591 }
592 Image {
593 id: hangerCloudStorm3
594 opacity: cloudsImageStrom3.opacity
595 height: sourceSize.height /2
596 source: Util.dir+"cloud_storm_3_line.png"
597 y: cloudsImageStrom3.y - cloudsImageStrom3.sourceSize.height -(cloudsImageStrom3.sourceSize.height + cloudsImageStrom3.height /2)
598 x:cloudsImageStrom3.x + cloudsImageStrom3.width / 2.25
599 }
600 // End cloudsImageStrom3
601
602
603 //cloudsImageTStrom1
604 Image {
605 id: cloudsImageTStorm1
606 width: sourceSize.width /2
607 height: sourceSize.height /2
608 opacity:{
609 if(clouds === "Rain showers")
610 1
611 else
612 0
613 } smooth: true
614 state: mainImage.state
615 x: page.width / 20
616 y: if (state === "Shown")
617 page.height / 2
618 else if (state === "Hidden")
619 -page.height
620 else
621 page.height / 2
622 Behavior on y{NumberAnimation{duration: 1000;easing.type: Easing.OutBack}}
623 source: Util.dir + "cloud_tstorm_1.png"
624 }
625 Image {
626 id: hangerCloudTStorm1
627 height: sourceSize.height /2
628 source: Util.dir+"cloud_tstorm_1_line.png"
629 opacity: cloudsImageTStorm1.opacity
630 y: cloudsImageTStorm1.y - cloudsImageTStorm1.sourceSize.height -(cloudsImageTStorm1.sourceSize.height / 1.844)
631 x:cloudsImageTStorm1.width / 1.844
632 }
633 // End cloudsImageTStorm1
634
635
636 //cloudsImageTStorm2
637 Image {
638 id: cloudsImageTStorm2
639 width: sourceSize.width / 1.88
640 height: sourceSize.height / 1.88
641 smooth: true
642 opacity:{
643 if(clouds === "Rain showers")
644 1
645 else
646 0
647 }
648 state: mainImage.state
649 x: page.width / 2
650 y: if (state === "Shown")
651 page.height / 2
652 else if (state === "Hidden")
653 -page.height
654 else
655 page.height / 2
656 Behavior on y{NumberAnimation{duration: 1400;easing.type: Easing.OutBack}}
657 source: Util.dir + "cloud_tstorm_2.png"
658 }
659 Image {
660 id: hangerCloudTStorm2
661 height: sourceSize.height /2
662 opacity: cloudsImageTStorm2.opacity
663 source: Util.dir+"cloud_tstorm_2_line.png"
664 y: cloudsImageTStorm2.y - cloudsImageTStorm2.sourceSize.height -(cloudsImageTStorm2.sourceSize.height / 1.14)
665 x:cloudsImageTStorm2.x + cloudsImageTStorm2.width / 2.25
666 }
667 // End cloudsImageTStorm2
668
669
670
671 //cloudsImageTStorm3
672 Image {
673 id: cloudsImageTStorm3
674 width: sourceSize.width /2
675 height: sourceSize.height /2
676 opacity:{
677 if(clouds === "Rain showers")
678 1
679 else
680 0
681 }
682 smooth: true
683 state: mainImage.state
684 x: page.width / 50
685 y: if (state === "Shown")
686 page.height / 2.66
687 else if (state === "Hidden")
688 -page.height
689 else
690 page.height / 2.66
691 Behavior on y{NumberAnimation{duration: 700;easing.type: Easing.OutBack}}
692 source: Util.dir + "cloud_storm_3.png"
693 }
694 Image {
695 id: hangerCloudTStorm3
696 opacity: cloudsImageTStorm3.opacity
697 height: sourceSize.height /2
698 source: Util.dir+"cloud_storm_3_line.png"
699 y: cloudsImageTStorm3.y - cloudsImageTStorm3.sourceSize.height -(cloudsImageTStorm3.sourceSize.height + cloudsImageTStorm3.height /2)
700 x:cloudsImageTStorm3.x + cloudsImageTStorm3.width / 2.25
701 }
702 // End cloudsImageTStorm3
703
704
705
706
707
708
709//////////////// Particals and ShaderEffects for snow and rain
710
711 //Snow
712 ImageParticle {
713 id:snowImagePartical
714 opacity: {
715 if (clouds === "Snow" && mainImage.state === "Shown" )
716 1
717 else
718 0
719 }
720 Behavior on opacity{NumberAnimation{duration:400}}
721 width: page.width
722 height: page.height
723 x: page.width / 20
724 y: page.height / 1.58
725 system: snowSystem
726 source: Util.dir+"snow_flake_01.png"
727 color: "#FFFAFA"
728 clip: true
729 alpha: 0.8
730 }
731 ParticleSystem {
732 id: snowSystem
733// opacity: rainImagePartical.opacity
734 }
735 Emitter {
736 system: snowSystem
737 width: page.width
738 height: page.height
739 emitRate: 22
740 lifeSpan: 9000
741 size: page.width / 30
742 sizeVariation:page.width / 9
743 velocity: AngleDirection {
744 angleVariation: 90;
745 magnitude: 9
746 }
747 maximumEmitted: 100
748 startTime: 4000
749 }
750
751 //////////////////////////Rain
752 ImageParticle {
753 id:rainImagePartical
754 opacity: {
755 if (clouds === "Rain" && mainImage.state === "Shown"
756 || clouds === "Rain showers" && mainImage.state === "Shown"
757 || clouds === "Heavy rain" && mainImage.state === "Shown")
758 1
759 else
760 0
761 }
762 Behavior on opacity{NumberAnimation{duration:400}}
763 width: page.width
764 height: page.height / 12
765 x: page.width / 20
766 y: page.height / 1.58
767 system: rainSystem
768 source: Util.dir+"rain_01.png"
769 color: "grey"
770 clip: false
771 alpha: 0.8
772 }
773 ParticleSystem {
774 id: rainSystem
775 }
776 Emitter {
777 system: rainSystem
778 width: page.width
779 y:page.height / 1.5
780 height: page.height / 4
781 emitRate:{
782 if(clouds === "Rain")
783 120
784 else if (clouds === "Rain showers")
785 140
786 else if (clouds === "Heavy rain")
787 170
788 else
789 120
790 }
791 lifeSpan: 900
792 size: page.width
793 sizeVariation:page.width
794 velocity: AngleDirection {
795 angleVariation: 90;
796 magnitude: 9
797 }
798 maximumEmitted: 100
799 startTime: 4000
800 }
801
802
803
804
805
806
807
808
809
810// ImageParticle {anchors.fill: parent ;system: particles1 ;source: "art/" ;color: "gray" ;clip: true; alpha: 0.8}
811// ImageParticle {anchors.fill: parent ;system: particles2 ;source: "" ;color: "gray" ;clip: true; alpha: 1}
812// ImageParticle {anchors.fill: parent ;system: particles3 ;source: "ar" ;color: "gray" ;clip: true; alpha: 0.8}
813// ImageParticle {anchors.fill: parent ;system: particles4 ;source: "a" ;color: "gray" ;clip: true; alpha: 0.8}
814// ImageParticle {anchors.fill: parent ;system: particles5 ;source: "a" ;color:"gray"; clip: true; alpha: .5}
815// ImageParticle {anchors.fill: parent ;system: particles6 ;source: "art" ;color:"gray"; clip: true; alpha: .5*/}
816
817
818
819
820
821
822// ParticleSystem { id: particles1 }Emitter {system: particles1; anchors.fill: parent ;emitRate: 1;lifeSpan: 8000 ;size: 24 ;sizeVariation: 50 ;velocity: AngleDirection { angleVariation: 180; magnitude: 10} maximumEmitted: 10 ;startTime: 2000}
823// ParticleSystem { id: particles2 }Emitter {system: particles2; anchors.fill: parent ;emitRate: 3;lifeSpan: 10000 ;size: 24 ;sizeVariation: 50 ;velocity: AngleDirection { angleVariation: 180; magnitude: 12 } maximumEmitted: 9 ;startTime: 5000}
824// ParticleSystem { id: particles3 }Emitter {system: particles3; anchors.fill: parent ;emitRate: 15;lifeSpan: 9000 ;size: 24 ;sizeVariation: 50 ;velocity: AngleDirection { angleVariation: 180; magnitude: 7 } maximumEmitted: 20 ;startTime: 5000}
825// ParticleSystem { id: particles4 }Emitter {system: particles4; anchors.fill: parent ;emitRate: 2;lifeSpan: 9000 ;size: 24 ;sizeVariation: 25 ;velocity: AngleDirection { angleVariation: 180; magnitude: 7 } maximumEmitted: 20 ;startTime: 5000}
826// ParticleSystem { id: particles5 }Emitter {system: particles5; anchors.fill: parent ;emitRate: 2;lifeSpan: 4000 ;size: 32 ;sizeVariation: 40 ;velocity: AngleDirection { angleVariation: 180; magnitude: 12 } maximumEmitted: 17 ;startTime: 5000}
827// ParticleSystem { id: particles6 }Emitter {system: particles6; anchors.fill: parent ;emitRate: 2;lifeSpan: 4000 ;size: 32 ;sizeVariation: 40 ;velocity: AngleDirection { angleVariation: 180; magnitude: 12 } maximumEmitted: 4 ;startTime: 5000}
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870//////////////////////////////////// This is Details
871 Rectangle{
872 id:detailsSlider
873 width: separator1.width
874 height: separator1.width * 1.5
875 color: "#88000000"
876 state: "Hidden"
877 x: state === "Hidden" ? -separator1.width * 2 : 0
878 Behavior on x{NumberAnimation{duration: 1200; easing.type: Easing.OutBack}}
879 Text {
880 id: conditions
881 height: 20
882 width: separator1.width
883 text:"<b>Conditions: </b>"+clouds
884 color: "white"
885 font.pixelSize: 12
886 anchors{
887 top:detailsSlider.top
888 topMargin: detailsSlider.width / 2
889 left: parent.left
890 leftMargin: parent.width / 20
891
892 }
893 }
894 Text {
895 id: humidityText
896 height: 20
897 width: separator1.width
898 text:"<b>Wind Speed: </b>" + windSpeed + " \("+ windSpeedMPS +" Miles Per Second \) "
899 color: "white"
900 font.pixelSize: 12
901 anchors{
902 top:conditions.bottom
903 topMargin: 1
904 left: parent.left
905 leftMargin: parent.width / 20
906
907 }
908 }Text {
909 id: dewPointTxt
910 height: 20
911 width: separator1.width
912 text:"<b>Wind Direction: </b>" + windDirection
913 color: "white"
914 font.pixelSize: 12
915 anchors{
916 top:humidityText.bottom
917 topMargin: 1
918 left: parent.left
919 leftMargin: parent.width / 20
920
921 }
922 }
923
924 Text {
925 id: presureTxt
926 height: 20
927 width: separator1.width
928 text:"<b>Pressure: </b>"+pressure
929 color: "white"
930 font.pixelSize: 12
931 anchors{
932 top:dewPointTxt.bottom
933 topMargin: 1
934 left: parent.left
935 leftMargin: parent.width / 20
936
937 }
938 } Text {
939 id: timeFromTxt
940 height: 20
941 width: separator1.width
942 text:"<b>Staring Observation Time: </b>"+timeFrom
943 color: "white"
944 font.pixelSize: 12
945 anchors{
946 top:presureTxt.bottom
947 topMargin: 1
948 left: parent.left
949 leftMargin: parent.width / 20
950
951 }
952 } Text {
953 id: timeToTxt
954 height: 20
955 width: separator1.width
956 text:"<b>Ending Observation Time: </b>"+timeTo
957 color: "white"
958 font.pixelSize: 12
959 anchors{
960 top:timeFromTxt.bottom
961 topMargin: 1
962 left: parent.left
963 leftMargin: parent.width / 20
964
965 }
966 }
967 Text {
968 id: sunRiseTxt
969 height: 20
970 width: separator1.width
971 text:"<b>Sun Rise: </b>"+sunRise
972 color: "white"
973 font.pixelSize: 12
974 anchors{
975 top:timeToTxt.bottom
976 topMargin: 1
977 left: parent.left
978 leftMargin: parent.width / 20
979
980 }
981 }
982 Text {
983 id: sunSetTxt
984 height: 20
985 width: separator1.width
986 text:"<b>Sun Set: </b>"+sunSet
987 color: "white"
988 font.pixelSize: 12
989 anchors{
990 top:sunRiseTxt.bottom
991 topMargin: 1
992 left: parent.left
993 leftMargin: parent.width / 20
994
995 }
996 }
997 UbuntuShape{
998 id:saveButton
999 width: separator1.width / 3
1000 height: separator1.width / 8
1001 color:"grey"
1002 x: page.width / 3
1003 y: page.height / 1.5
1004 }
1005 MouseArea{
1006 id:saveButtonMouseArea
1007 anchors.fill: saveButton
1008 onClicked: {
1009 DataBase.createInitHomeTable()
1010 DataBase.truncateHome()
1011 DataBase.insertIntoTable()
1012 savedTXT.opacity = 1
1013 savedTXT.scale = 1
1014 console.log(
1015 DataBase.homeCountry() + "\n"
1016 + DataBase.homeState() + "\n"
1017 + DataBase.homeCity() +"\n"
1018 + serie.countryName + "\n"
1019 + serie.adminName1 +"\n"
1020 + serie.name
1021
1022 )
1023 }
1024
1025 }
1026
1027 Text {
1028 id:detailsSaveButtonTxt
1029 color:"#92FFFFFF"
1030 anchors.centerIn: saveButtonMouseArea
1031 text: "Save"
1032 }
1033 Text {
1034 id: savedTXT
1035 text: qsTr("Saved")
1036 color: "white"
1037 font.bold: true
1038 font.pixelSize: 22
1039 scale: 0
1040 Behavior on scale {NumberAnimation{from:1;to:0;duration: 3700;easing.type: Easing.OutQuad}}
1041 opacity: 0
1042 Behavior on opacity {}
1043 x: (page.width / 2) - (width/2)
1044 anchors{
1045 top: detailsSaveButtonTxt.bottom
1046 }
1047 }
1048 }//Details Rec
1049
1050
1051
1052
1053 // Details Button
1054 UbuntuShape{
1055 id:detailsButton
1056 width: separator1.width / 3
1057 height: separator1.width / 8
1058 color:"grey"
1059 x: page.width - width
1060 y: page.height - height
1061 }Text {
1062 id:detailsButtonTxt
1063 color:"#92FFFFFF"
1064 anchors.centerIn: detailsButton
1065 text: "details"
1066 }MouseArea{
1067 anchors.fill: detailsButtonTxt
1068 onClicked: {
1069 if (detailsSlider.state === "Hidden"){
1070 detailsSlider.x = 0
1071 detailsSlider.state = "Shown"
1072 } else{
1073 detailsSlider.x = -separator1.width * 2
1074 detailsSlider.state = "Hidden"
1075 }
1076
1077
1078 }
1079 }
1080
1081
1082 }//Item
1083
1084
1085
1086
1087
1088
1089 }//ListView
1090
1091}//Item
01092
=== added file 'examples/WeatherModel.qml'
--- examples/WeatherModel.qml 1970-01-01 00:00:00 +0000
+++ examples/WeatherModel.qml 2013-02-18 17:43:29 +0000
@@ -0,0 +1,21 @@
1import QtQuick 2.0
2import QtQuick.XmlListModel 2.0
3XmlListModel {
4 id: serieModel
5 function load(Name,North,South,East,West) {
6 console.log("Loading Weather For \n")
7// source = "http://api.geonames.org/weatherXML?north="+North+"&south="+South+"&east="+East+"&west="+West+"&username=bobweaver12345"
8 reload()
9 }
10 source: ''
11 query: "//observation"
12 XmlRole { name: "observationTime"; query: "observationTime/string()" }
13 XmlRole { name: "temperature"; query: "temperature/string()" }
14 XmlRole { name: "dewPoint"; query: "dewPoint/string()" }
15 XmlRole { name: "humidity"; query: "humidity/string()" }
16 XmlRole { name: "clouds"; query: "clouds/string()" }
17 XmlRole { name: "weatherCondition"; query: "weatherCondition/string()"}
18 XmlRole { name: "status"; query: "Status/string()" }
19 XmlRole { name: "windDirection"; query: "windDirection/string()" }
20 XmlRole { name: "windSpeed"; query: "windSpeed/string()" }
21}
022
=== removed directory 'po'
=== removed file 'po/po.pro'
--- po/po.pro 2013-02-12 16:18:48 +0000
+++ po/po.pro 1970-01-01 00:00:00 +0000
@@ -1,48 +0,0 @@
1TEMPLATE = subdirs
2
3PROJECTNAME = $$system(basename ../*.qmlproject)
4PROJECTNAME = $$replace(PROJECTNAME,.qmlproject,)
5
6SOURCECODE = ../*.qml
7
8message("")
9message(" Project Name: $$PROJECTNAME ")
10message(" Source Code: $$SOURCECODE ")
11message("")
12message(" run 'make pot' to generate the pot file from source code. ")
13message(" run 'make translate' to create a new translation (po) based on pot. ")
14message(" run 'make mo' to generate the mo files from po files. ")
15message(" run 'qmake; make install' to install the mo files. ")
16message("")
17
18## generate pot file 'make pot'
19potfile.target = pot
20potfile.commands = xgettext -o $${PROJECTNAME}.pot --package-name $${PROJECTNAME} --qt --c++ --add-comments=TRANSLATORS --keyword=tr $${SOURCECODE}
21QMAKE_EXTRA_TARGETS += potfile
22
23## poedit target for new translations 'make translate'
24poedit.target = translate
25poedit.commands = cp messages.pot new_language.po; poedit new_language.po
26QMAKE_EXTRA_TARGETS += poedit
27
28## generate mo files 'make mo'
29mofiles.target = mo
30mofiles.commands = msgfmt *.po
31QMAKE_EXTRA_TARGETS += mofiles
32
33## Installation steps for mo files. 'make install'
34MO_FILES = $$system(ls *.mo)
35
36install_mo_commands =
37for(mo_file, MO_FILES) {
38 mo_name = $$replace(mo_file,.mo,)
39 mo_targetpath = $(INSTALL_ROOT)/usr/share/locale/$${mo_name}/LC_MESSAGES
40 mo_target = $${mo_targetpath}/$${PROJECTNAME}.mo
41 !isEmpty(install_mo_commands): install_mo_commands += &&
42 install_mo_commands += test -d $$mo_targetpath || mkdir -p $$mo_targetpath
43 install_mo_commands += && cp $$mo_file $$mo_target
44}
45
46install.commands = $$install_mo_commands
47QMAKE_EXTRA_TARGETS += install
48
490
=== removed file 'ubuntu-weather-app'
--- ubuntu-weather-app 2013-02-12 16:27:32 +0000
+++ ubuntu-weather-app 1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
1#!/bin/bash
2qmlscene /usr/share/ubuntu-weather-app/weather.qml
30
=== removed file 'ubuntu-weather-app.desktop'
--- ubuntu-weather-app.desktop 2013-02-12 16:27:32 +0000
+++ ubuntu-weather-app.desktop 1970-01-01 00:00:00 +0000
@@ -1,8 +0,0 @@
1[Desktop Entry]
2Encoding=UTF-8
3Version=1.0
4Type=Application
5Terminal=false
6Exec=/usr/bin/ubuntu-weather-app
7Icon=/usr/share/ubuntu-weather-app/weather64.png
8Name=Weather
90
=== removed file 'weather.qml'
--- weather.qml 2013-02-12 16:27:32 +0000
+++ weather.qml 1970-01-01 00:00:00 +0000
@@ -1,71 +0,0 @@
1import QtQuick 2.0
2import Ubuntu.Components 0.1
3
4/*!
5 \brief MainView with Tabs element.
6 First Tab has a single Label and
7 second Tab has a single ToolbarAction.
8*/
9
10MainView {
11 // objectName for functional testing purposes (autopilot-qt5)
12 objectName: "weather"
13
14 width: units.gu(50)
15 height: units.gu(75)
16
17 Tabs {
18 id: tabs
19 anchors.fill: parent
20
21 // First tab begins here
22 Tab {
23 objectName: "Tab1"
24
25 title: i18n.tr("Weather")
26
27 // Tab content begins here
28 page: Page {
29 Column {
30 anchors.centerIn: parent
31 Label {
32 text: i18n.tr("Swipe from right to left to change tab.")
33 }
34 }
35 }
36 }
37
38 // Second tab begins here
39 Tab {
40 objectName: "Tab2"
41
42 title: i18n.tr("Optional Screen")
43 page: Page {
44 anchors.margins: units.gu(2)
45
46 tools: ToolbarActions {
47 Action {
48 objectName: "action"
49
50 iconSource: Qt.resolvedUrl("avatar.png")
51 text: i18n.tr("Tap me!")
52
53 onTriggered: {
54 label.text = i18n.tr("Toolbar tapped")
55 }
56 }
57 }
58
59 Column {
60 anchors.centerIn: parent
61 Label {
62 id: label
63 objectName: "label"
64
65 text: i18n.tr("Swipe from bottom to up to reveal the toolbar.")
66 }
67 }
68 }
69 }
70 }
71}
720
=== modified file 'weather.qmlproject'
--- weather.qmlproject 2013-02-12 16:27:32 +0000
+++ weather.qmlproject 2013-02-18 17:43:29 +0000
@@ -3,7 +3,7 @@
3import QmlProject 1.13import QmlProject 1.1
44
5Project {5Project {
6 mainFile: "weather.qml"6 mainFile: "Main.qml"
77
8 /* Include .qml, .js, and image files from current directory and subdirectories */8 /* Include .qml, .js, and image files from current directory and subdirectories */
9 QmlFiles {9 QmlFiles {
1010
=== added file 'weather.qmlproject.user'
--- weather.qmlproject.user 1970-01-01 00:00:00 +0000
+++ weather.qmlproject.user 2013-02-18 17:43:29 +0000
@@ -0,0 +1,203 @@
1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE QtCreatorProject>
3<!-- Written by Qt Creator 2.6.2, 2013-02-18T10:31:37. -->
4<qtcreator>
5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">1</value>
8 </data>
9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>
11 <valuemap type="QVariantMap">
12 <value type="bool" key="EditorConfiguration.AutoIndent">true</value>
13 <value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
14 <value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
15 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
16 <value type="QString" key="language">Cpp</value>
17 <valuemap type="QVariantMap" key="value">
18 <value type="QString" key="CurrentPreferences">CppGlobal</value>
19 </valuemap>
20 </valuemap>
21 <valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
22 <value type="QString" key="language">QmlJS</value>
23 <valuemap type="QVariantMap" key="value">
24 <value type="QString" key="CurrentPreferences">QmlJSGlobal</value>
25 </valuemap>
26 </valuemap>
27 <value type="int" key="EditorConfiguration.CodeStyle.Count">2</value>
28 <value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
29 <value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
30 <value type="int" key="EditorConfiguration.IndentSize">4</value>
31 <value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
32 <value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
33 <value type="int" key="EditorConfiguration.PaddingMode">1</value>
34 <value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
35 <value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
36 <value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
37 <value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
38 <value type="int" key="EditorConfiguration.TabSize">8</value>
39 <value type="bool" key="EditorConfiguration.UseGlobal">true</value>
40 <value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
41 <value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
42 <value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
43 <value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
44 <value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
45 </valuemap>
46 </data>
47 <data>
48 <variable>ProjectExplorer.Project.PluginSettings</variable>
49 <valuemap type="QVariantMap"/>
50 </data>
51 <data>
52 <variable>ProjectExplorer.Project.Target.0</variable>
53 <valuemap type="QVariantMap">
54 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">5.0.0 stable</value>
55 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">5.0.0 stable</value>
56 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">{47354fd8-a5b8-4631-a8c9-ed2cde418720}</value>
57 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">-1</value>
58 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
59 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
60 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">0</value>
61 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
62 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
63 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
64 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
65 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
66 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
67 </valuemap>
68 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
69 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
70 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
71 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
72 </valuemap>
73 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
74 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
75 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
76 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
77 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
78 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
79 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
80 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
81 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
82 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
83 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
84 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
85 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
86 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
87 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
88 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
89 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
90 <value type="int">0</value>
91 <value type="int">1</value>
92 <value type="int">2</value>
93 <value type="int">3</value>
94 <value type="int">4</value>
95 <value type="int">5</value>
96 <value type="int">6</value>
97 <value type="int">7</value>
98 <value type="int">8</value>
99 <value type="int">9</value>
100 <value type="int">10</value>
101 <value type="int">11</value>
102 <value type="int">12</value>
103 <value type="int">13</value>
104 <value type="int">14</value>
105 </valuelist>
106 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
107 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Scene</value>
108 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlRunConfiguration.QmlScene</value>
109 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.MainScript">CurrentFile</value>
110 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments"></value>
111 <valuelist type="QVariantList" key="QmlProjectManager.QmlRunConfiguration.UserEnvironmentChanges"/>
112 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
113 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
114 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
115 <value type="bool" key="RunConfiguration.UseQmlDebugger">true</value>
116 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
117 </valuemap>
118 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
119 </valuemap>
120 </data>
121 <data>
122 <variable>ProjectExplorer.Project.Target.1</variable>
123 <valuemap type="QVariantMap">
124 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">5.0.1 </value>
125 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">5.0.1 </value>
126 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">{85f07aa6-a0b3-43fd-9d37-16ccf05f78b5}</value>
127 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">-1</value>
128 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
129 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
130 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">0</value>
131 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
132 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
133 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
134 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
135 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
136 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
137 </valuemap>
138 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
139 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy locally</value>
140 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
141 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
142 </valuemap>
143 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
144 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
145 <value type="bool" key="Analyzer.Project.UseGlobal">true</value>
146 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
147 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
148 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
149 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
150 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
151 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
152 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
153 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
154 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
155 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
156 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
157 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
158 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
159 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
160 <value type="int">0</value>
161 <value type="int">1</value>
162 <value type="int">2</value>
163 <value type="int">3</value>
164 <value type="int">4</value>
165 <value type="int">5</value>
166 <value type="int">6</value>
167 <value type="int">7</value>
168 <value type="int">8</value>
169 <value type="int">9</value>
170 <value type="int">10</value>
171 <value type="int">11</value>
172 <value type="int">12</value>
173 <value type="int">13</value>
174 <value type="int">14</value>
175 </valuelist>
176 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
177 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">QML Scene</value>
178 <value type="QByteArray" key="ProjectExplorer.ProjectConfiguration.Id">QmlProjectManager.QmlRunConfiguration.QmlScene</value>
179 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.MainScript">CurrentFile</value>
180 <value type="QString" key="QmlProjectManager.QmlRunConfiguration.QDeclarativeViewerArguments"></value>
181 <valuelist type="QVariantList" key="QmlProjectManager.QmlRunConfiguration.UserEnvironmentChanges"/>
182 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
183 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
184 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
185 <value type="bool" key="RunConfiguration.UseQmlDebugger">true</value>
186 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">false</value>
187 </valuemap>
188 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
189 </valuemap>
190 </data>
191 <data>
192 <variable>ProjectExplorer.Project.TargetCount</variable>
193 <value type="int">2</value>
194 </data>
195 <data>
196 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
197 <value type="QString">{014596af-77d7-45e2-86ac-344cb0e4f934}</value>
198 </data>
199 <data>
200 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
201 <value type="int">12</value>
202 </data>
203</qtcreator>
0204
=== removed file 'weather64.png'
1Binary files weather64.png 2013-02-12 16:27:32 +0000 and weather64.png 1970-01-01 00:00:00 +0000 differ205Binary files weather64.png 2013-02-12 16:27:32 +0000 and weather64.png 1970-01-01 00:00:00 +0000 differ

Subscribers

People subscribed via source and target branches