Merge lp:~fransschreuder1/cachemere/trunk into lp:cachemere

Proposed by FransSchreuder
Status: Superseded
Proposed branch: lp:~fransschreuder1/cachemere/trunk
Merge into: lp:cachemere
Diff against target: 2077 lines (+1347/-405)
16 files modified
CMakeLists.txt.user (+86/-375)
app/cachemere.qml (+19/-0)
app/ui/CMakeLists.txt (+1/-1)
app/ui/CompassTab.qml (+200/-0)
app/ui/DetailsTab.qml (+67/-4)
app/ui/GeocachesTab.qml (+3/-3)
app/ui/MapTab.qml (+39/-1)
app/ui/NESW.svg (+166/-0)
app/ui/WaypointDialog.qml (+284/-0)
app/ui/compass.svg (+255/-0)
app/ui/utils.js (+14/-0)
backend/modules/Cachemere/backend.cpp (+1/-0)
backend/modules/Cachemere/geocache.cpp (+128/-3)
backend/modules/Cachemere/geocache.h (+45/-1)
manifest.json.in (+1/-1)
po/com.mikeasoft.cachemere.pot (+38/-16)
To merge this branch: bzr merge lp:~fransschreuder1/cachemere/trunk
Reviewer Review Type Date Requested Status
Michael Sheldon Pending
Review via email: mp+255932@code.launchpad.net

This proposal has been superseded by a proposal from 2015-04-16.

Description of the change

*Added a compass tab (with direction to the cache coordinate
*Changed metric units according to system settings
*Changed compass into SVG
*Changed colour of letters to white

To post a comment you must log in.
lp:~fransschreuder1/cachemere/trunk updated
7. By FransSchreuder

Added dialog to add waypoints (from compass page)

8. By FransSchreuder

fixed proper rotation of compass

9. By FransSchreuder

Waypoints are now saved into an .xml file

10. By Frans Schreuder

Added waypoints also to details page

11. By FransSchreuder

*Fixed index of Browsertab (is now 4)
*Added waypoints to map, however this doesn't view (just like the list of Geocaches)

12. By FransSchreuder

Fixed size of pickers in WaypointDialog, to make it more usable
Also fixed font size of degree symbol and dot

13. By Frans Schreuder

Added this line to all position sources:
preferredPositioningMethods: PositionSource.SatellitePositioningMethod

14. By Frans Schreuder

Added Dutch translation

15. By FransSchreuder

* Show distance in center of compass
* Show Accuracy of GPS on Compass tab

16. By FransSchreuder

Added flickable delete action button to geocaches, now able to delete geocaches.
Confirmation dialog needed?

17. By FransSchreuder

Added active waypoint to map
changed some button colours

18. By FransSchreuder

*added current selected waypoint (if any) to map
*Added status information of GPS below compass

19. By FransSchreuder

Fixed function call to updateGpsStatus

20. By FransSchreuder

*Fixed waypoints list on map
*Fixed geocache list on map
*Active geocache can also be selected from map

21. By Frans Schreuder

*Improved waypoints dialog (3 digits now have 3 select controls)
*fixed typo in button colours

22. By FransSchreuder

Added pin to mark waypoints on map: thanks to Jeroen Buurmans for the artwork

23. By Frans Schreuder

*Added images for geocaches (treasure chest open / closed)
*Added cachemere logo to current location

24. By Frans Schreuder

Beep when near selected waypoint (not necessarily the starting point)

25. By Jeroen Buurmans <email address hidden>

Changed the waypoint icon to a red cross.

26. By Frans Schreuder

Animation for compass (rotation)

27. By FransSchreuder

fixed compass animation, now stop animation when compass is updated. Compass will stabilize around target rotation and looks more relaxed

28. By FransSchreuder

changed namespace, in order to publish the app under cachemere.fransschreuder

Unmerged revisions

28. By FransSchreuder

changed namespace, in order to publish the app under cachemere.fransschreuder

27. By FransSchreuder

fixed compass animation, now stop animation when compass is updated. Compass will stabilize around target rotation and looks more relaxed

26. By Frans Schreuder

Animation for compass (rotation)

25. By Jeroen Buurmans <email address hidden>

Changed the waypoint icon to a red cross.

24. By Frans Schreuder

Beep when near selected waypoint (not necessarily the starting point)

23. By Frans Schreuder

*Added images for geocaches (treasure chest open / closed)
*Added cachemere logo to current location

22. By FransSchreuder

Added pin to mark waypoints on map: thanks to Jeroen Buurmans for the artwork

21. By Frans Schreuder

*Improved waypoints dialog (3 digits now have 3 select controls)
*fixed typo in button colours

20. By FransSchreuder

*Fixed waypoints list on map
*Fixed geocache list on map
*Active geocache can also be selected from map

19. By FransSchreuder

Fixed function call to updateGpsStatus

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'CMakeLists.txt.user'
--- CMakeLists.txt.user 2014-12-26 20:50:55 +0000
+++ CMakeLists.txt.user 2015-04-16 19:24:14 +0000
@@ -1,10 +1,10 @@
1<?xml version="1.0" encoding="UTF-8"?>1<?xml version="1.0" encoding="UTF-8"?>
2<!DOCTYPE QtCreatorProject>2<!DOCTYPE QtCreatorProject>
3<!-- Written by QtCreator 3.1.1, 2014-12-26T20:29:42. -->3<!-- Written by QtCreator 3.1.1, 2015-04-16T21:23:14. -->
4<qtcreator>4<qtcreator>
5 <data>5 <data>
6 <variable>ProjectExplorer.Project.ActiveTarget</variable>6 <variable>ProjectExplorer.Project.ActiveTarget</variable>
7 <value type="int">3</value>7 <value type="int">1</value>
8 </data>8 </data>
9 <data>9 <data>
10 <variable>ProjectExplorer.Project.EditorSettings</variable>10 <variable>ProjectExplorer.Project.EditorSettings</variable>
@@ -56,13 +56,13 @@
56 <valuemap type="QVariantMap">56 <valuemap type="QVariantMap">
57 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>57 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop</value>
58 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>58 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop</value>
59 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{897ebcf3-e88f-4573-bb26-c210d7efb2ef}</value>59 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{beace390-9ff2-42fe-ae55-1592c3a47384}</value>
60 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>60 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
61 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>61 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
62 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>62 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
63 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">63 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
64 <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>64 <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>
65 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/mike/src/build-cachemere-Desktop-Default</value>65 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/frans/build-cachemere-Desktop-Default</value>
66 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">66 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
67 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">67 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
68 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>68 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
@@ -172,375 +172,86 @@
172 <valuemap type="QVariantMap">172 <valuemap type="QVariantMap">
173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK for armhf (GCC ubuntu-sdk-14.10-utopic)</value>173 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK for armhf (GCC ubuntu-sdk-14.10-utopic)</value>
174 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">UbuntuSDK for armhf (GCC ubuntu-sdk-14.10-utopic)</value>174 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">UbuntuSDK for armhf (GCC ubuntu-sdk-14.10-utopic)</value>
175 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{bf187ee2-704d-4b3d-aaa9-27ca3cce46cc}</value>175 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{fd99a68b-4f93-48ba-87de-b3da78511de0}</value>
176 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>176 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
177 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>177 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
178 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>178 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
179 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">179 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
180 <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>180 <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>
181 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/mike/src/build-cachemere-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-Default</value>181 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/frans/build-cachemere-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-Default</value>
182 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">182 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
183 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">183 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
184 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>184 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
185 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>185 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
186 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value>186 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value>
187 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>187 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>
188 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>188 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
189 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>189 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>
190 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>190 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
191 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>191 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>
192 </valuemap>192 </valuemap>
193 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>193 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
194 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>194 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
195 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>195 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
196 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>196 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
197 </valuemap>197 </valuemap>
198 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">198 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
199 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">199 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
200 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">clean</value>200 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">clean</value>
201 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>201 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
202 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">true</value>202 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">true</value>
203 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>203 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>
204 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>204 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
205 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>205 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>
206 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>206 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
207 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>207 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>
208 </valuemap>208 </valuemap>
209 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>209 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
210 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>210 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
211 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>211 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
212 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>212 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
213 </valuemap>213 </valuemap>
214 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>214 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
215 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>215 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
216 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>216 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
217 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>217 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
218 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value>218 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value>
219 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.BuildConfiguration</value>219 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.BuildConfiguration</value>
220 </valuemap>220 </valuemap>
221 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>221 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
222 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">222 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
223 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">223 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
224 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">224 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
225 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>225 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
226 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK Click build</value>226 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK Click build</value>
227 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>227 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
228 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.ClickPackageStep</value>228 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.ClickPackageStep</value>
229 <value type="int" key="Ubuntu.UbuntuPackageStep.PackageMode">1</value>229 <value type="int" key="Ubuntu.UbuntuPackageStep.PackageMode">1</value>
230 </valuemap>230 </valuemap>
231 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">231 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
232 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>232 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
233 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files to Ubuntu Device</value>233 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files to Ubuntu Device</value>
234 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>234 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
235 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UploadStep</value>235 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UploadStep</value>
236 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles">236 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles">
237 <value type="QString">/home/mike/src/build-cachemere-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-Default/com.mikeasoft.cachemere_0.1_armhf.click</value>237 <value type="QString">/home/frans/build-cachemere-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-Default/com.mikeasoft.cachemere_0.2_armhf.click</value>
238 <value type="QString">/usr/share/qtcreator/ubuntu/scripts/qtc_device_applaunch.py</value>238 <value type="QString">/usr/share/qtcreator/ubuntu/scripts/qtc_device_applaunch.py</value>
239 </valuelist>239 </valuelist>
240 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts">240 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts">
241 <value type="QString">127.0.0.1</value>241 <value type="QString">127.0.0.1</value>
242 <value type="QString">127.0.0.1</value>242 <value type="QString">127.0.0.1</value>
243 </valuelist>243 </valuelist>
244 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths">244 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths">
245 <value type="QString">/tmp</value>245 <value type="QString">/tmp</value>
246 <value type="QString">/tmp</value>246 <value type="QString">/tmp</value>
247 </valuelist>247 </valuelist>
248 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedSysroots">248 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedSysroots">
249 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>249 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
250 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>250 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
251 </valuelist>251 </valuelist>
252 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes">252 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes">
253 <value type="QDateTime">2014-12-22T11:43:52</value>253 <value type="QDateTime">2015-04-16T21:21:00</value>
254 <value type="QDateTime">2014-12-22T11:43:52</value>254 <value type="QDateTime">2015-04-16T21:21:00</value>
255 </valuelist>
256 </valuemap>
257 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
258 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
259 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
260 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
261 </valuemap>
262 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
263 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Ubuntu Device</value>
264 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
265 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.DeployConfiguration</value>
266 </valuemap>
267 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
268 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
269 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
270 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
271 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
272 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
273 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
274 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
275 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
276 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
277 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
278 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
279 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
280 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
281 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
282 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
283 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
284 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
285 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
286 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
287 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
288 <value type="int">0</value>
289 <value type="int">1</value>
290 <value type="int">2</value>
291 <value type="int">3</value>
292 <value type="int">4</value>
293 <value type="int">5</value>
294 <value type="int">6</value>
295 <value type="int">7</value>
296 <value type="int">8</value>
297 <value type="int">9</value>
298 <value type="int">10</value>
299 <value type="int">11</value>
300 <value type="int">12</value>
301 <value type="int">13</value>
302 <value type="int">14</value>
303 </valuelist>
304 <value type="int" key="PE.EnvironmentAspect.Base">1</value>
305 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
306 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
307 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">cachemere</value>
308 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.RemoteRunConfiguration.Appcachemere</value>
309 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
310 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
311 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
312 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
313 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
314 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
315 <value type="bool" key="UbuntuRemoteRunConfiguration.ForceInstall">false</value>
316 <value type="bool" key="UbuntuRemoteRunConfiguration.Uninstall">true</value>
317 </valuemap>
318 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
319 </valuemap>
320 </data>
321 <data>
322 <variable>ProjectExplorer.Project.Target.2</variable>
323 <valuemap type="QVariantMap">
324 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK for amd64 (GCC ubuntu-sdk-14.10-utopic)</value>
325 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">UbuntuSDK for amd64 (GCC ubuntu-sdk-14.10-utopic)</value>
326 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{36b99870-db07-478b-861c-af2da9f17393}</value>
327 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
328 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
329 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
330 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
331 <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>
332 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/mike/src/build-cachemere-UbuntuSDK_for_amd64_GCC_ubuntu_sdk_14_10_utopic-Default</value>
333 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
334 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
335 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
336 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
337 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value>
338 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>
339 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
340 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>
341 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
342 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>
343 </valuemap>
344 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
345 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
346 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
347 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
348 </valuemap>
349 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
350 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
351 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">clean</value>
352 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
353 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">true</value>
354 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>
355 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
356 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>
357 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
358 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>
359 </valuemap>
360 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
361 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
362 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
363 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
364 </valuemap>
365 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
366 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
367 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
368 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
369 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value>
370 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.BuildConfiguration</value>
371 </valuemap>
372 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
373 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
374 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
375 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
376 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
377 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK Click build</value>
378 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
379 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.ClickPackageStep</value>
380 <value type="int" key="Ubuntu.UbuntuPackageStep.PackageMode">1</value>
381 </valuemap>
382 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
383 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
384 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files to Ubuntu Device</value>
385 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
386 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UploadStep</value>
387 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles"/>
388 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts"/>
389 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths"/>
390 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedSysroots"/>
391 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes"/>
392 </valuemap>
393 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
394 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
395 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
396 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
397 </valuemap>
398 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
399 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy to Ubuntu Device</value>
400 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
401 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.DeployConfiguration</value>
402 </valuemap>
403 <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
404 <valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings"/>
405 <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
406 <valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/>
407 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value>
408 <value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value>
409 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value>
410 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value>
411 <value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value>
412 <value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value>
413 <value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value>
414 <value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value>
415 <value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value>
416 <value type="int" key="Analyzer.Valgrind.NumCallers">25</value>
417 <valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/>
418 <value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value>
419 <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
420 <value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value>
421 <value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value>
422 <value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value>
423 <valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds">
424 <value type="int">0</value>
425 <value type="int">1</value>
426 <value type="int">2</value>
427 <value type="int">3</value>
428 <value type="int">4</value>
429 <value type="int">5</value>
430 <value type="int">6</value>
431 <value type="int">7</value>
432 <value type="int">8</value>
433 <value type="int">9</value>
434 <value type="int">10</value>
435 <value type="int">11</value>
436 <value type="int">12</value>
437 <value type="int">13</value>
438 <value type="int">14</value>
439 </valuelist>
440 <value type="int" key="PE.EnvironmentAspect.Base">1</value>
441 <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
442 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName"></value>
443 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">cachemere</value>
444 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.RemoteRunConfiguration.Appcachemere</value>
445 <value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</value>
446 <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
447 <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
448 <value type="bool" key="RunConfiguration.UseMultiProcess">false</value>
449 <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
450 <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
451 <value type="bool" key="UbuntuRemoteRunConfiguration.ForceInstall">false</value>
452 <value type="bool" key="UbuntuRemoteRunConfiguration.Uninstall">true</value>
453 </valuemap>
454 <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
455 </valuemap>
456 </data>
457 <data>
458 <variable>ProjectExplorer.Project.Target.3</variable>
459 <valuemap type="QVariantMap">
460 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu Device2 (GCC armhf-ubuntu-sdk-14.10-utopic)</value>
461 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Ubuntu Device2 (GCC armhf-ubuntu-sdk-14.10-utopic)</value>
462 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{4c1399b6-f9f9-42aa-b0ab-92397136624f}</value>
463 <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
464 <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
465 <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
466 <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
467 <value type="bool" key="CMakeProjectManager.CMakeBuildConfiguration.UseNinja">false</value>
468 <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/mike/src/build-cachemere-Ubuntu_Device2_GCC_armhf_ubuntu_sdk_14_10_utopic-Default</value>
469 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
470 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
471 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments"></value>
472 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets">
473 <value type="QString">all</value>
474 </valuelist>
475 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">false</value>
476 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>
477 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
478 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>
479 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
480 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>
481 </valuemap>
482 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
483 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
484 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
485 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
486 </valuemap>
487 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
488 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
489 <value type="QString" key="CMakeProjectManager.MakeStep.AdditionalArguments">clean</value>
490 <valuelist type="QVariantList" key="CMakeProjectManager.MakeStep.BuildTargets"/>
491 <value type="bool" key="CMakeProjectManager.MakeStep.Clean">true</value>
492 <value type="bool" key="CMakeProjectManager.MakeStep.UseNinja">false</value>
493 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
494 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Ubuntu SDK Make</value>
495 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
496 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.MakeStep</value>
497 </valuemap>
498 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
499 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
500 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
501 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
502 </valuemap>
503 <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
504 <value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
505 <valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
506 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Default</value>
507 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Default</value>
508 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UbuntuCMake.BuildConfiguration</value>
509 </valuemap>
510 <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
511 <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
512 <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
513 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
514 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
515 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">UbuntuSDK Click build</value>
516 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
517 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.ClickPackageStep</value>
518 <value type="int" key="Ubuntu.UbuntuPackageStep.PackageMode">1</value>
519 </valuemap>
520 <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
521 <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
522 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Upload files to Ubuntu Device</value>
523 <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value>
524 <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">UbuntuProjectManager.UploadStep</value>
525 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedFiles">
526 <value type="QString">/home/mike/src/build-cachemere-Ubuntu_Device2_GCC_armhf_ubuntu_sdk_14_10_utopic-Default/com.mikeasoft.cachemere_0.1_armhf.click</value>
527 <value type="QString">/usr/share/qtcreator/ubuntu/scripts/qtc_device_applaunch.py</value>
528 </valuelist>
529 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedHosts">
530 <value type="QString">127.0.0.1</value>
531 <value type="QString">127.0.0.1</value>
532 </valuelist>
533 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedRemotePaths">
534 <value type="QString">/tmp</value>
535 <value type="QString">/tmp</value>
536 </valuelist>
537 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedSysroots">
538 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
539 <value type="QString">/var/lib/schroot/chroots/click-ubuntu-sdk-14.10-armhf</value>
540 </valuelist>
541 <valuelist type="QVariantList" key="Qt4ProjectManager.MaemoRunConfiguration.LastDeployedTimes">
542 <value type="QDateTime">2014-12-26T20:00:20</value>
543 <value type="QDateTime">2014-12-26T20:00:20</value>
544 </valuelist>255 </valuelist>
545 </valuemap>256 </valuemap>
546 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>257 <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
@@ -609,11 +320,11 @@
609 </data>320 </data>
610 <data>321 <data>
611 <variable>ProjectExplorer.Project.TargetCount</variable>322 <variable>ProjectExplorer.Project.TargetCount</variable>
612 <value type="int">4</value>323 <value type="int">2</value>
613 </data>324 </data>
614 <data>325 <data>
615 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>326 <variable>ProjectExplorer.Project.Updater.EnvironmentId</variable>
616 <value type="QByteArray">{3ee15b72-49ad-410a-9e6d-9cdc390d3098}</value>327 <value type="QByteArray">{301698f8-cb63-45e5-8611-02ab8c5ad174}</value>
617 </data>328 </data>
618 <data>329 <data>
619 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>330 <variable>ProjectExplorer.Project.Updater.FileVersion</variable>
620331
=== modified file 'app/cachemere.qml'
--- app/cachemere.qml 2014-12-26 20:50:55 +0000
+++ app/cachemere.qml 2015-04-16 19:24:14 +0000
@@ -1,5 +1,6 @@
1import QtQuick 2.01import QtQuick 2.0
2import Ubuntu.Components 1.12import Ubuntu.Components 1.1
3import QtQml 2.2
3import Cachemere 1.04import Cachemere 1.0
4import "ui"5import "ui"
56
@@ -35,11 +36,29 @@
35 objectName: "mapTab"36 objectName: "mapTab"
36 }37 }
3738
39 CompassTab {
40 id: compassTab
41 objectName: "compassTab"
42 }
43
38 BrowserTab {44 BrowserTab {
39 id: browserTab45 id: browserTab
40 objectName: "browserTab"46 objectName: "browserTab"
41 }47 }
4248
43 }49 }
50 Component.onCompleted: {
51
52 console.log("Locale:", Qt.locale().measurementSystem, " ", Locale.MetricSystem);
53 if(Qt.locale().measurementSystem==Locale.MetricSystem)
54 {
55 root.miles = false;
56 }
57 else
58 {
59 root.miles = true;
60 }
61 }
62
44}63}
4564
4665
=== modified file 'app/ui/CMakeLists.txt'
--- app/ui/CMakeLists.txt 2014-12-26 20:50:55 +0000
+++ app/ui/CMakeLists.txt 2015-04-16 19:24:14 +0000
@@ -1,4 +1,4 @@
1file(GLOB UI_QML_JS_FILES *.qml *.js *.wav)1file(GLOB UI_QML_JS_FILES *.qml *.js *.wav *.svg)
22
3# Make the files visible in the qtcreator tree3# Make the files visible in the qtcreator tree
4add_custom_target(cachemere_ui_QMlFiles ALL SOURCES ${UI_QML_JS_FILES})4add_custom_target(cachemere_ui_QMlFiles ALL SOURCES ${UI_QML_JS_FILES})
55
=== added file 'app/ui/CompassTab.qml'
--- app/ui/CompassTab.qml 1970-01-01 00:00:00 +0000
+++ app/ui/CompassTab.qml 2015-04-16 19:24:14 +0000
@@ -0,0 +1,200 @@
1/*
2 * Copyright 2014 Frans Schreuder <info@schreuderelectronics.com>
3 *
4 * This file is part of Cachemere.
5 *
6 * Cachemere 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 * Cachemere 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
20import Ubuntu.Components 1.1
21import Ubuntu.Web 0.2
22import Ubuntu.Components.Popups 1.0
23import QtLocation 5.0
24import QtPositioning 5.2
25import Cachemere 1.0
26import "."
27import "utils.js" as Utils
28Tab {
29 title: i18n.tr("Compass")
30
31 page: Page {
32 Flickable {
33 id: compassPage
34 anchors.centerIn: parent
35 width: parent.width - units.gu(4)
36 height: parent.height - units.gu(4)
37 contentWidth: width; contentHeight: col.height
38 clip: true
39 Column{
40 id: col
41 width: parent.width;
42 spacing: units.gu(2)
43 Label {
44
45 id: distance
46 width: parent.width
47 wrapMode: Text.WordWrap
48 text: i18n.tr("Waiting for fix...")
49 }
50 Row{
51 width: parent.width
52 height: parent.width
53 Image {
54 anchors.top: distance.bottom
55 anchors.left: distance.left
56 anchors.topMargin: units.gu(2)
57 id: compass
58 width: parent.width
59 height: parent.width
60 source: "compass.svg"
61 }
62 Image {
63 id: nesw
64 anchors.centerIn: compass
65 width: parent.width
66 height: parent.width
67 source: "NESW.svg"
68 }
69 }
70
71 Label {
72 id: lPosition
73 width: parent.width
74 wrapMode: Text.WordWrap
75 text: "<b>" + i18n.tr("Position:") + " </b>" + ((src.position.latitudeValid == true)?Utils.displayCoordinates(src.position.coordinate.latitude, src.position.coordinate.longitude): i18n.tr("Waiting for fix"))
76
77 }
78 Column{
79 width: parent.width
80 visible: root.activeGeocache!=null
81 spacing: units.gu(2)
82 OptionSelector{
83 id: sWaypoints
84 width: parent.width
85 expanded: false
86 model: root.activeGeocache.waypoints
87 delegate: selectorDelegate
88 }
89
90 Component {
91 id: selectorDelegate
92 OptionSelectorDelegate {
93 text: model.name
94 subText: Utils.displayCoordinates(model.latitude, model.longitude)
95 }
96 }
97
98
99
100 Row{
101 spacing: units.gu(2)
102 width: parent.width
103 Button {
104 id: addWaypoint
105 width: (parent.width-units.gu(4))/3 //parent.width
106 height: width
107 iconName: "add"
108 onClicked: {
109 var wpName;
110 wpName = "WP"+(root.activeGeocache.waypoints.length);
111 root.activeGeocache.modelData.addWaypoint(wpName,
112 src.position.coordinate.latitude,
113 src.position.coordinate.longitude);
114 PopupUtils.open(wpDialog);
115 }
116 }
117 Button {
118 id: editWaypoint
119 width: addWaypoint.width
120 height: width
121 iconName: "edit"
122 enabled: (sWaypoints.selectedIndex!=0)
123 onClicked: {
124 root.activeGeocache.currentwaypoint = sWaypoints.selectedIndex;
125 PopupUtils.open(wpDialog);
126 }
127 }
128 Button {
129 id: eraseWaypoint
130 width: addWaypoint.width
131 height: width
132 iconName: "delete"
133 enabled: (sWaypoints.selectedIndex!=0)
134 onClicked: {
135 root.activeGeocache.modelData.deleteWaypoint(sWaypoints.selectedIndex);
136 root.activeGeocache.modelData.updateWaypoints();
137 }
138 }
139
140 }
141 }
142 WaypointDialog {
143 id: wpDialog
144 }
145 }
146 }
147
148
149 PositionSource {
150 id: src
151 active: true
152 updateInterval: 10000
153
154 onPositionChanged: {
155
156 lPosition.update;
157 distance.update;
158 var coord = src.position.coordinate;
159 var targetDirection = 0;
160 var movingDirection = -1*nesw.rotation;
161 if(root.activeGeocache!=null){
162 var targetlat = root.activeGeocache.waypoints[sWaypoints.selectedIndex].latitude;
163 var targetlon = root.activeGeocache.waypoints[sWaypoints.selectedIndex].longitude;
164 targetDirection = Utils.calculateDirection(coord.longitude, coord.latitude,targetlon, targetlat);
165 distance.text = src.position.latitudeValid ? "<b>" + i18n.tr("Distance:") + "</b> " + Utils.displayDistance(src.position.coordinate.latitude, src.position.coordinate.longitude,
166 targetlat,
167 targetlon, root.miles) : "<b>" + i18n.tr("Distance:") + "</b> " + i18n.tr("Waiting for fix...");
168 }
169 if(Utils.lastCoordLon != coord.longitude || Utils.lastCoordLat != coord.latitude)
170 {
171 if(src.position.latitudeValid){
172 movingDirection = Utils.calculateDirection(Utils.lastCoordLon,Utils.lastCoordLat,coord.longitude, coord.latitude);
173 nesw.rotation = -1*movingDirection;
174 Utils.lastCoordLon = coord.longitude;
175 Utils.lastCoordLat = coord.latitude;
176 }
177 }
178 else
179 {
180 nesw.rotation = nesw.rotation;
181 }
182
183 if(root.activeGeocache != null)
184 {
185 if(src.position.latitudeValid){
186 compass.rotation = targetDirection - movingDirection;
187 }
188 }
189 else
190 {
191 if(src.position.latitudeValid){
192 compass.rotation = -1*movingDirection;
193 }
194 }
195 }
196 }
197 }
198}
199
200
0201
=== modified file 'app/ui/DetailsTab.qml'
--- app/ui/DetailsTab.qml 2014-12-26 20:50:55 +0000
+++ app/ui/DetailsTab.qml 2015-04-16 19:24:14 +0000
@@ -54,7 +54,7 @@
54 Label {54 Label {
55 width: parent.width55 width: parent.width
56 wrapMode: Text.WordWrap56 wrapMode: Text.WordWrap
57 text: "<b>" + i18n.tr("Name:") + " </b>" + root.activeGeocache.name + " (" + root.activeGeocache.id + ")"57 text: root.activeGeocache!=null?"<b>" + i18n.tr("Name:") + " </b>" + root.activeGeocache.name + " (" + root.activeGeocache.id + ")":""
58 }58 }
5959
60 Label {60 Label {
@@ -113,8 +113,72 @@
113 text: i18n.tr("View cache page")113 text: i18n.tr("View cache page")
114 onClicked: {114 onClicked: {
115 browserTab.url = root.activeGeocache.url;115 browserTab.url = root.activeGeocache.url;
116 tabs.selectedTabIndex = 3;116 tabs.selectedTabIndex = 4;
117 }117 }
118 }
119 Label{
120 width: parent.width
121 text: "<b>" + i18n.tr("Waypoints") + "</b>"
122 }
123
124 OptionSelector{
125 id: sWaypoints
126 width: parent.width
127 expanded: false
128 model: root.activeGeocache.waypoints
129 delegate: selectorDelegate
130 }
131
132 Component {
133 id: selectorDelegate
134 OptionSelectorDelegate {
135 text: model.name
136 subText: Utils.displayCoordinates(model.latitude, model.longitude)
137 }
138 }
139 WaypointDialog {
140 id: wpDialog
141 }
142 Row{
143 spacing: units.gu(2)
144 width: parent.width
145 Button {
146 id: addWaypoint
147 width: (parent.width-units.gu(4))/3 //parent.width
148 height: width
149 iconName: "add"
150 onClicked: {
151 var wpName;
152 wpName = "WP"+(root.activeGeocache.waypoints.length);
153 root.activeGeocache.modelData.addWaypoint(wpName,
154 src.position.coordinate.latitude,
155 src.position.coordinate.longitude);
156 PopupUtils.open(wpDialog);
157 }
158 }
159 Button {
160 id: editWaypoint
161 width: addWaypoint.width
162 height: width
163 iconName: "edit"
164 enabled: (sWaypoints.selectedIndex!=0)
165 onClicked: {
166 root.activeGeocache.currentwaypoint = sWaypoints.selectedIndex;
167 PopupUtils.open(wpDialog);
168 }
169 }
170 Button {
171 id: eraseWaypoint
172 width: addWaypoint.width
173 height: width
174 iconName: "delete"
175 enabled: (sWaypoints.selectedIndex!=0)
176 onClicked: {
177 root.activeGeocache.modelData.deleteWaypoint(sWaypoints.selectedIndex);
178 root.activeGeocache.modelData.updateWaypoints();
179 }
180 }
181
118 }182 }
119 }183 }
120 }184 }
@@ -132,7 +196,6 @@
132 active: true196 active: true
133 updateInterval: 60000197 updateInterval: 60000
134 }198 }
135
136 }199 }
137}200}
138201
139202
=== modified file 'app/ui/GeocachesTab.qml'
--- app/ui/GeocachesTab.qml 2014-12-26 20:50:55 +0000
+++ app/ui/GeocachesTab.qml 2015-04-16 19:24:14 +0000
@@ -67,8 +67,8 @@
67 MouseArea {67 MouseArea {
68 anchors.fill: parent68 anchors.fill: parent
69 onClicked: {69 onClicked: {
70 root.activeGeocache = model70 root.activeGeocache = model;
71 tabs.selectedTabIndex = 271 tabs.selectedTabIndex = 2;
72 }72 }
73 }73 }
74 }74 }
@@ -90,7 +90,7 @@
90 anchors.margins: units.gu(2)90 anchors.margins: units.gu(2)
91 text: i18n.tr("Download Geocaches")91 text: i18n.tr("Download Geocaches")
92 onClicked: {92 onClicked: {
93 tabs.selectedTabIndex = 393 tabs.selectedTabIndex = 4
94 }94 }
95 }95 }
9696
9797
=== modified file 'app/ui/MapTab.qml'
--- app/ui/MapTab.qml 2014-12-26 20:50:55 +0000
+++ app/ui/MapTab.qml 2015-04-16 19:24:14 +0000
@@ -96,6 +96,8 @@
96 }96 }
97 }97 }
9898
99
100
99 MapItemView {101 MapItemView {
100 id: cacheView102 id: cacheView
101103
@@ -122,6 +124,35 @@
122 }124 }
123 }125 }
124126
127 /**
128 * @FIXME: Waypoints not shown on map.
129 */
130 MapItemView {
131 id: waypointView
132
133 model: root.activeGeocache.waypoints
134 Component.onCompleted: { console.log("Waypoints Length: " + root.activeGeocache.waypoints.length) }
135 delegate: MapQuickItem {
136 coordinate.latitude: model.latitude
137 coordinate.longitude: model.longitude
138
139 Component.onCompleted: { console.log("Loaded: " + name + ", latitude: " + latitude ) }
140
141 anchorPoint.x: sourceItem.width / 2
142 anchorPoint.y: sourceItem.height / 2
143
144 sourceItem: Rectangle {
145 width: units.gu(2)
146 height: units.gu(2)
147 color: "red"
148 opacity: 0.5
149 border.color: "black"
150
151 }
152 }
153 }
154
155
125 MapQuickItem {156 MapQuickItem {
126 id: activeCacheView157 id: activeCacheView
127158
@@ -169,6 +200,10 @@
169 }200 }
170 }201 }
171202
203
204
205
206
172 Rectangle {207 Rectangle {
173 anchors {208 anchors {
174 right: parent.right209 right: parent.right
@@ -211,7 +246,7 @@
211 anchors.rightMargin: units.gu(2)246 anchors.rightMargin: units.gu(2)
212 anchors.verticalCenter: parent.verticalCenter247 anchors.verticalCenter: parent.verticalCenter
213 visible: src.position.latitudeValid248 visible: src.position.latitudeValid
214 text: "<b>" + Utils.displayDistance(src.position.coordinate.latitude, src.position.coordinate.longitude, root.activeGeocache.latitude, root.activeGeocache.longitude, root.miles) + "</b>"249 text: src.position.latitudeValid?"<b>" + Utils.displayDistance(src.position.coordinate.latitude, src.position.coordinate.longitude, root.activeGeocache.latitude, root.activeGeocache.longitude, root.miles) + "</b>":"<b></b>"
215 }250 }
216251
217 }252 }
@@ -221,6 +256,7 @@
221 source: "beep.wav"256 source: "beep.wav"
222 }257 }
223258
259
224 PositionSource {260 PositionSource {
225 id: src261 id: src
226 active: true262 active: true
@@ -236,6 +272,8 @@
236 beeped = false272 beeped = false
237 }273 }
238274
275
276
239 map.updateUserPosition(position)277 map.updateUserPosition(position)
240 }278 }
241 }279 }
242280
=== added file 'app/ui/NESW.svg'
--- app/ui/NESW.svg 1970-01-01 00:00:00 +0000
+++ app/ui/NESW.svg 2015-04-16 19:24:14 +0000
@@ -0,0 +1,166 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
6 xmlns:dc="http://purl.org/dc/elements/1.1/"
7 xmlns:cc="http://creativecommons.org/ns#"
8 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
9 xmlns:svg="http://www.w3.org/2000/svg"
10 xmlns="http://www.w3.org/2000/svg"
11 xmlns:xlink="http://www.w3.org/1999/xlink"
12 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 id="svg3071"
15 version="1.1"
16 inkscape:version="0.48.4 r9939"
17 width="448"
18 height="448"
19 sodipodi:docname="NESW.svg">
20 <metadata
21 id="metadata3077">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 <dc:title></dc:title>
29 </cc:Work>
30 </rdf:RDF>
31 </metadata>
32 <defs
33 id="defs3075">
34 <linearGradient
35 id="linearGradient5602">
36 <stop
37 id="stop5604"
38 offset="0"
39 style="stop-color:#000000;stop-opacity:1;" />
40 <stop
41 style="stop-color:#000000;stop-opacity:0.49803922;"
42 offset="0.5"
43 id="stop5606" />
44 <stop
45 id="stop5608"
46 offset="1"
47 style="stop-color:#000000;stop-opacity:0;" />
48 </linearGradient>
49 <linearGradient
50 id="linearGradient5592">
51 <stop
52 style="stop-color:#000000;stop-opacity:0;"
53 offset="0"
54 id="stop5610" />
55 <stop
56 id="stop5652"
57 offset="0.83999997"
58 style="stop-color:#808080;stop-opacity:1;" />
59 <stop
60 id="stop5622"
61 offset="0.93000001"
62 style="stop-color:#000000;stop-opacity:1;" />
63 <stop
64 id="stop5650"
65 offset="1"
66 style="stop-color:#808080;stop-opacity:1;" />
67 </linearGradient>
68 <linearGradient
69 id="linearGradient5582"
70 osb:paint="solid">
71 <stop
72 style="stop-color:#000000;stop-opacity:1;"
73 offset="0"
74 id="stop5584" />
75 </linearGradient>
76 <radialGradient
77 inkscape:collect="always"
78 xlink:href="#linearGradient5592"
79 id="radialGradient5598"
80 cx="225"
81 cy="228.5"
82 fx="225"
83 fy="228.5"
84 r="231.56505"
85 gradientTransform="matrix(1,0,0,1.0237514,0,-5.4272006)"
86 gradientUnits="userSpaceOnUse"
87 spreadMethod="reflect" />
88 </defs>
89 <sodipodi:namedview
90 pagecolor="#ffffff"
91 bordercolor="#666666"
92 borderopacity="1"
93 objecttolerance="10"
94 gridtolerance="10000"
95 guidetolerance="10"
96 inkscape:pageopacity="0"
97 inkscape:pageshadow="2"
98 inkscape:window-width="1871"
99 inkscape:window-height="1176"
100 id="namedview3073"
101 showgrid="true"
102 inkscape:zoom="0.5"
103 inkscape:cx="-676.22107"
104 inkscape:cy="454.28616"
105 inkscape:window-x="49"
106 inkscape:window-y="24"
107 inkscape:window-maximized="1"
108 inkscape:current-layer="svg3071">
109 <inkscape:grid
110 type="xygrid"
111 id="grid3882"
112 empspacing="5"
113 visible="true"
114 enabled="true"
115 snapvisiblegridlinesonly="true" />
116 </sodipodi:namedview>
117 <text
118 xml:space="preserve"
119 style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;font-family:Sans"
120 x="213.55196"
121 y="26.200001"
122 id="text5692"
123 sodipodi:linespacing="125%"><tspan
124 sodipodi:role="line"
125 id="tspan5694"
126 x="213.55196"
127 y="26.200001"
128 style="font-size:28px;fill:#ffffff;fill-opacity:1">N</tspan></text>
129 <text
130 xml:space="preserve"
131 style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
132 x="423.19995"
133 y="233.89999"
134 id="text5696"
135 sodipodi:linespacing="125%"><tspan
136 sodipodi:role="line"
137 id="tspan5698"
138 x="423.19995"
139 y="233.89999"
140 style="font-size:28px;fill:#ffffff;fill-opacity:1">E</tspan></text>
141 <text
142 xml:space="preserve"
143 style="font-size:11.99994087px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
144 x="215.00136"
145 y="442.5473"
146 id="text5700"
147 sodipodi:linespacing="125%"
148 transform="scale(0.99999511,1.0000049)"><tspan
149 sodipodi:role="line"
150 id="tspan5702"
151 x="215.00136"
152 y="442.5473"
153 style="font-size:27.99986267px;fill:#ffffff;fill-opacity:1">S</tspan></text>
154 <text
155 xml:space="preserve"
156 style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
157 x="2.0503149"
158 y="234.1501"
159 id="text5704"
160 sodipodi:linespacing="125%"><tspan
161 sodipodi:role="line"
162 id="tspan5706"
163 x="2.0503149"
164 y="234.1501"
165 style="font-size:28px;fill:#ffffff;fill-opacity:1">W</tspan></text>
166</svg>
0167
=== added file 'app/ui/WaypointDialog.qml'
--- app/ui/WaypointDialog.qml 1970-01-01 00:00:00 +0000
+++ app/ui/WaypointDialog.qml 2015-04-16 19:24:14 +0000
@@ -0,0 +1,284 @@
1/*
2 * Copyright 2013-2014 Canonical Ltd.
3 *
4 * This file is part of cachemere.
5 *
6 * webbrowser-app 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 * webbrowser-app is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19import QtQuick 2.0
20import Ubuntu.Components 1.1
21import Ubuntu.Components.Popups 1.0
22import Ubuntu.Components.Pickers 1.0
23
24import Ubuntu.Components.ListItems 1.0
25import "utils.js" as Utils
26Component{
27 id: comp
28 Dialog {
29 id: dialogue
30 title: i18n.tr("Edit Waypoint")
31 //text: ""
32 modal: true
33 TextEdit{
34 width: parent.width
35 id: wpName
36 }
37
38 Row{
39 width: parent.width
40 Picker {
41 id: latNSPicker
42
43 selectedIndex: 0 // this will be set to 0 at the model completion
44 width: units.gu(4)
45 height: units.gu(12)
46 circular: true
47 delegate: PickerDelegate {
48 Label {
49 text: modelData
50 }
51 }
52 Component.onCompleted: {
53 var stack = [];
54 stack.push(" N");
55 stack.push(" S");
56 model = stack;
57 selectedIndex = 0;
58 }
59 }
60 Picker {
61 id: latDegPicker
62
63 selectedIndex: 0 // this will be set to 0 at the model completion
64 width: units.gu(6)
65 height: units.gu(12)
66 circular: true
67 delegate: PickerDelegate {
68 Label {
69 text: modelData
70 }
71 }
72 Component.onCompleted: {
73 var stack = [];
74 for (var i = 0; i < 180; i++) {
75 stack.push(" "+i);
76 }
77 model = stack;
78 selectedIndex = 0;
79 }
80 }
81 Label{
82 text: "°"
83 font.pixelSize: units.gu(12)
84 }
85
86 Picker {
87 id: latMinPicker
88 selectedIndex: 0 // this will be set to 0 at the model completion
89 width: units.gu(6)
90 height: units.gu(12)
91 circular: true
92 delegate: PickerDelegate {
93 Label {
94 text: modelData
95 }
96 }
97 Component.onCompleted: {
98 var stack = [];
99 for (var i = 0; i < 60; i++) {
100 stack.push(" "+i);
101 }
102 model = stack;
103 selectedIndex = 0;
104 }
105 }
106 Label{
107 text: "."
108 font.pixelSize: units.gu(12)
109 }
110
111 Picker {
112 id: latFracPicker
113 selectedIndex: 0 // this will be set to 0 at the model completion
114 width: units.gu(6)
115 height: units.gu(12)
116 circular: true
117 delegate: PickerDelegate {
118 Label {
119 text: modelData
120 }
121 }
122 Component.onCompleted: {
123 var stack = [];
124 for (var i = 0; i < 1000; i++) {
125 stack.push(" "+i);
126 }
127 model = stack;
128 selectedIndex = 0;
129 }
130 }
131 }
132 Row{
133 width: parent.width
134 Picker {
135 id: lonEWPicker
136
137 selectedIndex: 0 // this will be set to 0 at the model completion
138 width: units.gu(4)
139 height: units.gu(12)
140 circular: true
141 delegate: PickerDelegate {
142 Label {
143 text: modelData
144 }
145 }
146 Component.onCompleted: {
147 var stack = [];
148 stack.push(" E");
149 stack.push(" W");
150 model = stack;
151 selectedIndex = 0;
152 }
153 }
154 Picker {
155 id: lonDegPicker
156
157 selectedIndex: 0 // this will be set to 0 at the model completion
158 width: units.gu(6)
159 height: units.gu(12)
160 circular: true
161 delegate: PickerDelegate {
162 Label {
163 text: modelData
164 }
165 }
166 Component.onCompleted: {
167 var stack = [];
168 for (var i = 0; i < 90; i++) {
169 stack.push(" "+i);
170 }
171 model = stack;
172 selectedIndex = 0;
173 }
174 }
175 Label{
176 text: "°"
177 font.pixelSize: units.gu(12)
178 }
179
180 Picker {
181 id: lonMinPicker
182 selectedIndex: 0 // this will be set to 0 at the model completion
183 width: units.gu(6)
184 height: units.gu(12)
185 circular: true
186 delegate: PickerDelegate {
187 Label {
188 text: modelData
189 }
190 }
191 Component.onCompleted: {
192 var stack = [];
193 for (var i = 0; i < 60; i++) {
194 stack.push(" "+i);
195 }
196 model = stack;
197 selectedIndex = 0;
198 }
199 }
200 Label{
201 text: "."
202 font.pixelSize: units.gu(12)
203 }
204
205 Picker {
206 id: lonFracPicker
207 selectedIndex: 0 // this will be set to 0 at the model completion
208 width: units.gu(6)
209 height: units.gu(12)
210 circular: true
211 delegate: PickerDelegate {
212 Label {
213 text: modelData
214 }
215 }
216 Component.onCompleted: {
217 var stack = [];
218 for (var i = 0; i < 1000; i++) {
219 stack.push(" "+i);
220 }
221 model = stack;
222 selectedIndex = 0;
223 }
224 }
225 }
226 Button {
227 text: i18n.tr("Close")
228 onClicked: {
229
230 var activeLat = (latNSPicker.selectedIndex*2-1)*-1 *
231 (latDegPicker.selectedIndex+
232 latMinPicker.selectedIndex/60+
233 latFracPicker.selectedIndex/60000);
234 var activeLon = (lonEWPicker.selectedIndex*2-1)*-1 *
235 (lonDegPicker.selectedIndex+
236 lonMinPicker.selectedIndex/60+
237 lonFracPicker.selectedIndex/60000);
238 root.activeGeocache.modelData.setWaypoint(root.activeGeocache.currentwaypoint,
239 wpName.text, activeLat, activeLon);
240 PopupUtils.close(dialogue);
241 root.activeGeocache.modelData.updateWaypoints();
242
243 }
244 }
245 onVisibleChanged: {
246 if(visible)
247 {
248 //dialer.value = Math.floor(root.activeGeocache.latitude);
249 var curLat;
250 var curLon;
251 var i = root.activeGeocache.currentwaypoint;
252 var wp = root.activeGeocache.modelData.getWaypoint(i);
253
254 curLat = wp.latitude;
255 curLon = wp.longitude;
256
257 wpName.text = wp.name;
258 if(curLat<0)
259 {
260 latNSPicker.selectedIndex = 1;
261 curLat *= -1;
262 }
263 if(curLon<0)
264 {
265 lonEWPicker.selectedIndex = 1;
266 curLon *= -1;
267 }
268 latDegPicker.selectedIndex = Math.floor(curLat);
269 curLat = (curLat-Math.floor(curLat))*60;
270 latMinPicker.selectedIndex = Math.floor(curLat);
271 curLat = (curLat-Math.floor(curLat))*1000;
272 latFracPicker.selectedIndex = Math.floor(curLat);
273
274 lonDegPicker.selectedIndex = Math.floor(curLon);
275 curLon = (curLon-Math.floor(curLon))*60;
276 lonMinPicker.selectedIndex = Math.floor(curLon);
277 curLon = (curLon-Math.floor(curLon))*1000;
278 lonFracPicker.selectedIndex = Math.floor(curLon);
279
280
281 }
282 }
283 }
284}
0285
=== added file 'app/ui/compass.svg'
--- app/ui/compass.svg 1970-01-01 00:00:00 +0000
+++ app/ui/compass.svg 2015-04-16 19:24:14 +0000
@@ -0,0 +1,255 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) -->
3
4<svg
5 xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
6 xmlns:dc="http://purl.org/dc/elements/1.1/"
7 xmlns:cc="http://creativecommons.org/ns#"
8 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
9 xmlns:svg="http://www.w3.org/2000/svg"
10 xmlns="http://www.w3.org/2000/svg"
11 xmlns:xlink="http://www.w3.org/1999/xlink"
12 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
14 id="svg3071"
15 version="1.1"
16 inkscape:version="0.48.4 r9939"
17 width="448"
18 height="448"
19 sodipodi:docname="compass.png">
20 <metadata
21 id="metadata3077">
22 <rdf:RDF>
23 <cc:Work
24 rdf:about="">
25 <dc:format>image/svg+xml</dc:format>
26 <dc:type
27 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
28 <dc:title></dc:title>
29 </cc:Work>
30 </rdf:RDF>
31 </metadata>
32 <defs
33 id="defs3075">
34 <linearGradient
35 id="linearGradient5602">
36 <stop
37 id="stop5604"
38 offset="0"
39 style="stop-color:#000000;stop-opacity:1;" />
40 <stop
41 style="stop-color:#000000;stop-opacity:0.49803922;"
42 offset="0.5"
43 id="stop5606" />
44 <stop
45 id="stop5608"
46 offset="1"
47 style="stop-color:#000000;stop-opacity:0;" />
48 </linearGradient>
49 <linearGradient
50 id="linearGradient5592">
51 <stop
52 style="stop-color:#000000;stop-opacity:0;"
53 offset="0"
54 id="stop5610" />
55 <stop
56 id="stop5652"
57 offset="0.83999997"
58 style="stop-color:#808080;stop-opacity:1;" />
59 <stop
60 id="stop5622"
61 offset="0.93000001"
62 style="stop-color:#000000;stop-opacity:1;" />
63 <stop
64 id="stop5650"
65 offset="1"
66 style="stop-color:#808080;stop-opacity:1;" />
67 </linearGradient>
68 <linearGradient
69 id="linearGradient5582"
70 osb:paint="solid">
71 <stop
72 style="stop-color:#000000;stop-opacity:1;"
73 offset="0"
74 id="stop5584" />
75 </linearGradient>
76 <radialGradient
77 inkscape:collect="always"
78 xlink:href="#linearGradient5592"
79 id="radialGradient5598"
80 cx="225"
81 cy="228.5"
82 fx="225"
83 fy="228.5"
84 r="231.56505"
85 gradientTransform="matrix(1,0,0,1.0237514,0,-5.4272006)"
86 gradientUnits="userSpaceOnUse"
87 spreadMethod="reflect" />
88 </defs>
89 <sodipodi:namedview
90 pagecolor="#ffffff"
91 bordercolor="#666666"
92 borderopacity="1"
93 objecttolerance="10"
94 gridtolerance="10000"
95 guidetolerance="10"
96 inkscape:pageopacity="0"
97 inkscape:pageshadow="2"
98 inkscape:window-width="1871"
99 inkscape:window-height="1176"
100 id="namedview3073"
101 showgrid="true"
102 inkscape:zoom="2"
103 inkscape:cx="237.40462"
104 inkscape:cy="258.11086"
105 inkscape:window-x="49"
106 inkscape:window-y="24"
107 inkscape:window-maximized="1"
108 inkscape:current-layer="svg3071">
109 <inkscape:grid
110 type="xygrid"
111 id="grid3882"
112 empspacing="5"
113 visible="true"
114 enabled="true"
115 snapvisiblegridlinesonly="true" />
116 </sodipodi:namedview>
117 <g
118 id="g4048"
119 transform="translate(0,-1)">
120 <g
121 id="g4044">
122 <path
123 style="fill:#ff0000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
124 d="m 224,33 46,146 -46,46 z"
125 id="path3083"
126 inkscape:connector-curvature="0"
127 sodipodi:nodetypes="cccc" />
128 <path
129 style="fill:#de8787;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
130 d="m 224,33 -46,146 46,46 z"
131 id="path3083-0"
132 inkscape:connector-curvature="0"
133 sodipodi:nodetypes="cccc" />
134 </g>
135 <g
136 id="g4040">
137 <path
138 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
139 d="M 32.000007,225 178,179 l 46,46 z"
140 id="path3083-4-6-5"
141 inkscape:connector-curvature="0"
142 sodipodi:nodetypes="cccc" />
143 <path
144 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
145 d="m 32,225 146,46 46,-46 z"
146 id="path3083-4-6-5-7"
147 inkscape:connector-curvature="0"
148 sodipodi:nodetypes="cccc" />
149 </g>
150 <g
151 id="g4036">
152 <path
153 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
154 d="M 224,417 178,271 224,225 z"
155 id="path3083-4-6"
156 inkscape:connector-curvature="0"
157 sodipodi:nodetypes="cccc" />
158 <path
159 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
160 d="M 224,417 270,271 224,225 z"
161 id="path3083-4-6-5-7-7"
162 inkscape:connector-curvature="0"
163 sodipodi:nodetypes="cccc" />
164 </g>
165 <g
166 id="g4032">
167 <path
168 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
169 d="M 416,225 270,271 224,225 z"
170 id="path3083-4"
171 inkscape:connector-curvature="0"
172 sodipodi:nodetypes="cccc" />
173 <path
174 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
175 d="M 416,225 270,179 224,225 z"
176 id="path3083-4-6-5-7-7-9"
177 inkscape:connector-curvature="0"
178 sodipodi:nodetypes="cccc" />
179 </g>
180 </g>
181 <g
182 id="g4028"
183 transform="translate(0,-1)">
184 <path
185 sodipodi:nodetypes="cccc"
186 inkscape:connector-curvature="0"
187 id="path3083-4-6-5-7-7-9-2"
188 d="m 344,105 -61,39 5,17 z"
189 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
190 <path
191 sodipodi:nodetypes="cccc"
192 inkscape:connector-curvature="0"
193 id="path3083-4-4"
194 d="m 344,105 -39,61 -17,-5 z"
195 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
196 </g>
197 <g
198 id="g4028-9"
199 transform="matrix(0,1,-1,0,449,0)">
200 <path
201 sodipodi:nodetypes="cccc"
202 inkscape:connector-curvature="0"
203 id="path3083-4-6-5-7-7-9-2-6"
204 d="m 344,105 -61,39 5,17 z"
205 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
206 <path
207 sodipodi:nodetypes="cccc"
208 inkscape:connector-curvature="0"
209 id="path3083-4-4-9"
210 d="m 344,105 -39,61 -17,-5 z"
211 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
212 </g>
213 <g
214 id="g4028-9-7"
215 transform="matrix(-1,0,0,-1,448,449)">
216 <path
217 sodipodi:nodetypes="cccc"
218 inkscape:connector-curvature="0"
219 id="path3083-4-6-5-7-7-9-2-6-6"
220 d="m 344,105 -61,39 5,17 z"
221 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
222 <path
223 sodipodi:nodetypes="cccc"
224 inkscape:connector-curvature="0"
225 id="path3083-4-4-9-1"
226 d="m 344,105 -39,61 -17,-5 z"
227 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
228 </g>
229 <g
230 id="g4028-9-7-8"
231 transform="matrix(0,-1,1,0,-1,448)">
232 <path
233 sodipodi:nodetypes="cccc"
234 inkscape:connector-curvature="0"
235 id="path3083-4-6-5-7-7-9-2-6-6-5"
236 d="m 344,105 -61,39 5,17 z"
237 style="fill:#4d4d4d;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
238 <path
239 sodipodi:nodetypes="cccc"
240 inkscape:connector-curvature="0"
241 id="path3083-4-4-9-1-3"
242 d="m 344,105 -39,61 -17,-5 z"
243 style="fill:#000000;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
244 </g>
245 <path
246 sodipodi:type="arc"
247 style="fill:none;stroke:url(#radialGradient5598);stroke-width:33.13010962999999975;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
248 id="path4134"
249 sodipodi:cx="225"
250 sodipodi:cy="228.5"
251 sodipodi:rx="215"
252 sodipodi:ry="220.5"
253 d="m 440,228.5 a 215,220.5 0 1 1 -430,0 215,220.5 0 1 1 430,0 z"
254 transform="matrix(0.96820006,0,0,0.94404995,6.1549856,8.2845898)" />
255</svg>
0256
=== modified file 'app/ui/utils.js'
--- app/ui/utils.js 2014-12-26 20:50:55 +0000
+++ app/ui/utils.js 2015-04-16 19:24:14 +0000
@@ -38,3 +38,17 @@
38 lonStr += zeroFill(Math.floor(lon), 3) + "° " + ((lon % 1) * 60).toFixed(3) + "'";38 lonStr += zeroFill(Math.floor(lon), 3) + "° " + ((lon % 1) * 60).toFixed(3) + "'";
39 return latStr + " " + lonStr;39 return latStr + " " + lonStr;
40}40}
41
42
43function calculateDirection(lon1, lat1, lon2, lat2)
44{
45
46 var difLon = (lon2-lon1) * Math.PI / 180;
47 var difLat = (lat2-lat1) * Math.PI / 180;
48 return Math.atan2(difLon, difLat) * 180/Math.PI;
49}
50
51
52var lastCoordLon=0;
53var lastCoordLat=0;
54
4155
=== modified file 'backend/modules/Cachemere/backend.cpp'
--- backend/modules/Cachemere/backend.cpp 2014-12-26 20:50:55 +0000
+++ backend/modules/Cachemere/backend.cpp 2015-04-16 19:24:14 +0000
@@ -30,6 +30,7 @@
3030
31 qmlRegisterType<Geocache>(uri, 1, 0, "Geocache");31 qmlRegisterType<Geocache>(uri, 1, 0, "Geocache");
32 qmlRegisterType<CacheModel>(uri, 1, 0, "CacheModel");32 qmlRegisterType<CacheModel>(uri, 1, 0, "CacheModel");
33 qmlRegisterType<Waypoint>(uri, 1, 0, "Waypoint");
33}34}
3435
35void BackendPlugin::initializeEngine(QQmlEngine *engine, const char *uri)36void BackendPlugin::initializeEngine(QQmlEngine *engine, const char *uri)
3637
=== modified file 'backend/modules/Cachemere/geocache.cpp'
--- backend/modules/Cachemere/geocache.cpp 2014-12-26 20:50:55 +0000
+++ backend/modules/Cachemere/geocache.cpp 2015-04-16 19:24:14 +0000
@@ -15,10 +15,11 @@
15 * You should have received a copy of the GNU General Public License15 * 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/>.16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */17 */
1818#include <QDir>
19#include <QFile>19#include <QFile>
20#include <QXmlStreamReader>
21#include <QStandardPaths>
20#include <QDebug>22#include <QDebug>
21#include <QXmlStreamReader>
2223
23#include "geocache.h"24#include "geocache.h"
2425
@@ -99,9 +100,133 @@
99 }100 }
100 }101 }
101 }102 }
103 addWaypoint("Start", latitude(), longitude());
104
105 QDir waypointsDir(dataDir() + QDir::separator() + "waypoints");
106 if(!waypointsDir.exists()) {
107 waypointsDir.mkpath(waypointsDir.absolutePath());
108 }
109 QFile *wpFile = new QFile(waypointsDir.absolutePath()+QDir::separator()+m_name+".xml");
110 if (wpFile->open(QIODevice::ReadWrite | QIODevice::Text)) {
111 QXmlStreamReader wpxml(wpFile);
112 while (!wpxml.atEnd() && !wpxml.hasError()) {
113 QXmlStreamReader::TokenType token = wpxml.readNext();
114 if (token == QXmlStreamReader::StartDocument) {
115 continue;
116 }
117 if (token == QXmlStreamReader::StartElement) {
118 if (wpxml.name() == "waypoint")
119 {
120 QString wpName;
121 double wpLat;
122 double wpLon;
123 if (wpxml.attributes().hasAttribute("latitude")) {
124 wpLat = (wpxml.attributes().value("latitude").toDouble());
125 }
126 if (wpxml.attributes().hasAttribute("longitude")) {
127 wpLon = (wpxml.attributes().value("longitude").toDouble());
128 }
129 if (wpxml.attributes().hasAttribute("name")) {
130 wpName = (wpxml.attributes().value("name").toString());
131 }
132 addWaypoint(wpName, wpLat, wpLon);
133
134 }
135 }
136 }
137 }
138}
139
140QQmlListProperty<Waypoint> Geocache::waypoints()
141{
142 return QQmlListProperty<Waypoint>(this, m_waypoints);
143}
144
145void Geocache::addWaypoint(QString name, double latitude, double longitude){
146 Waypoint *wp = new Waypoint;//(name,latitude,longitude);
147 wp->setName(name);
148 wp->setLatitude(latitude);
149 wp->setLongitude(longitude);
150
151 m_waypoints.append(wp);
152 m_currentwaypoint = m_waypoints.count()-1;
153 //Q_EMIT currentwaypointChanged();
154 //Q_EMIT waypointsChanged();
155}
156
157void Geocache::setWaypoint(int i, QString name, double latitude, double longitude){
158 if(i+1>m_waypoints.count())
159 {
160 return;
161 }
162 Waypoint *wp = new Waypoint;//(name,latitude,longitude);
163 wp->setName(name);
164 wp->setLatitude(latitude);
165 wp->setLongitude(longitude);
166 m_waypoints.replace(i, wp);
167 //Q_EMIT waypointsChanged();
102}168}
103169
104Geocache::~Geocache() {170Geocache::~Geocache() {
105171
106}172
173
174
175}
176
177void Geocache::updateWaypoints(void)
178{
179
180 QDir waypointsDir(dataDir() + QDir::separator() + "waypoints");
181 if(!waypointsDir.exists()) {
182 waypointsDir.mkpath(waypointsDir.absolutePath());
183 }
184 QFile *wpFile = new QFile(waypointsDir.absolutePath()+QDir::separator()+m_name+".xml");
185
186 QXmlStreamWriter *wpxml = new QXmlStreamWriter;
187 if (wpFile->open(QIODevice::WriteOnly | QIODevice::Text))
188 {
189 wpxml->setDevice(wpFile);
190 qDebug() << "File Open";
191 wpxml->setAutoFormatting(true);
192 wpxml->writeStartDocument();
193 wpxml->writeStartElement("waypoints");
194 for(int i=1; i<m_waypoints.count(); i++) //wp #0 is the cache coordinate, don't save.
195 {
196 wpxml->writeStartElement("waypoint");
197 wpxml->writeAttribute("name", m_waypoints.at(i)->name());
198 wpxml->writeAttribute("latitude", QString::number(m_waypoints.at(i)->latitude()));
199 wpxml->writeAttribute("longitude", QString::number(m_waypoints.at(i)->longitude()));
200
201
202 wpxml->writeEndElement(); // waypoint
203 }
204 wpxml->writeEndElement(); //waypoints
205 wpxml->writeEndDocument();
206 wpFile->flush();
207 wpFile->close();
208 qDebug() << "File Close";
209 }
210 delete wpxml;
211 delete wpFile;
212 Q_EMIT waypointsChanged();
213}
214
215Waypoint* Geocache::getWaypoint(int i)
216{
217 if(i+1>m_waypoints.count())
218 return m_waypoints.at(0);
219 else
220 return m_waypoints.at(i);
221}
222
223void Geocache::deleteWaypoint(int i)
224{
225 m_waypoints.removeAt(i);
226}
227
228QString Geocache::dataDir() {
229 return QStandardPaths::writableLocation(QStandardPaths::DataLocation);
230}
231
107232
108233
=== modified file 'backend/modules/Cachemere/geocache.h'
--- backend/modules/Cachemere/geocache.h 2014-12-26 20:50:55 +0000
+++ backend/modules/Cachemere/geocache.h 2015-04-16 19:24:14 +0000
@@ -18,11 +18,35 @@
1818
19#ifndef GEOCACHE_H19#ifndef GEOCACHE_H
20#define GEOCACHE_H20#define GEOCACHE_H
2121#include <QQmlListProperty>
22#include <QObject>22#include <QObject>
2323
24
25class Waypoint: public QObject {
26 Q_OBJECT
27 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
28 Q_PROPERTY(double latitude READ latitude WRITE setLatitude NOTIFY latitudeChanged)
29 Q_PROPERTY(double longitude READ longitude WRITE setLongitude NOTIFY longitudeChanged)
30Q_SIGNALS:
31 void nameChanged();
32 void latitudeChanged();
33 void longitudeChanged();
34public:
35 Waypoint(){}
36 QString name() { return m_name; }
37 void setName(QString name) { m_name = name; Q_EMIT nameChanged(); }
38 double latitude(){return m_latitude;}
39 double longitude(){return m_longitude;}
40 void setLatitude(double lat){m_latitude=lat;}
41 void setLongitude(double lon){m_longitude=lon;}
42private:
43 QString m_name;
44 double m_latitude;
45 double m_longitude;
46};
24class Geocache : public QObject47class Geocache : public QObject
25{48{
49
26 Q_OBJECT50 Q_OBJECT
27 Q_PROPERTY(QString id READ id WRITE setId NOTIFY idChanged)51 Q_PROPERTY(QString id READ id WRITE setId NOTIFY idChanged)
28 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)52 Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
@@ -35,6 +59,8 @@
35 Q_PROPERTY(double difficulty READ difficulty WRITE setDifficulty NOTIFY difficultyChanged)59 Q_PROPERTY(double difficulty READ difficulty WRITE setDifficulty NOTIFY difficultyChanged)
36 Q_PROPERTY(double terrain READ terrain WRITE setTerrain NOTIFY terrainChanged)60 Q_PROPERTY(double terrain READ terrain WRITE setTerrain NOTIFY terrainChanged)
37 Q_PROPERTY(bool found READ found WRITE setFound NOTIFY foundChanged)61 Q_PROPERTY(bool found READ found WRITE setFound NOTIFY foundChanged)
62 Q_PROPERTY(QQmlListProperty<Waypoint> waypoints READ waypoints NOTIFY waypointsChanged)
63 Q_PROPERTY(int currentwaypoint READ currentwaypoint WRITE setcurrentwaypoint NOTIFY currentwaypointChanged)
3864
39public:65public:
40 explicit Geocache(QObject *parent = 0);66 explicit Geocache(QObject *parent = 0);
@@ -53,8 +79,12 @@
53 void foundChanged();79 void foundChanged();
54 void difficultyChanged();80 void difficultyChanged();
55 void terrainChanged();81 void terrainChanged();
82 void waypointsChanged();
83 void currentwaypointChanged();
5684
57public:85public:
86
87
58 QString id() { return m_id; }88 QString id() { return m_id; }
59 QString name() { return m_name; }89 QString name() { return m_name; }
60 QString url() { return m_url; }90 QString url() { return m_url; }
@@ -66,6 +96,10 @@
66 double difficulty() { return m_difficulty; }96 double difficulty() { return m_difficulty; }
67 double terrain() { return m_terrain; }97 double terrain() { return m_terrain; }
68 bool found() { return m_found; }98 bool found() { return m_found; }
99 QQmlListProperty<Waypoint> waypoints();
100 int currentwaypoint() {return m_currentwaypoint;}
101
102
69 void setId(QString id) { m_id = id; Q_EMIT idChanged(); }103 void setId(QString id) { m_id = id; Q_EMIT idChanged(); }
70 void setName(QString name) { m_name = name; Q_EMIT nameChanged(); }104 void setName(QString name) { m_name = name; Q_EMIT nameChanged(); }
71 void setUrl(QString url) { m_url = url; Q_EMIT urlChanged(); }105 void setUrl(QString url) { m_url = url; Q_EMIT urlChanged(); }
@@ -77,6 +111,14 @@
77 void setDifficulty(double difficulty) { m_difficulty = difficulty; Q_EMIT difficultyChanged(); }111 void setDifficulty(double difficulty) { m_difficulty = difficulty; Q_EMIT difficultyChanged(); }
78 void setTerrain(double terrain) { m_terrain = terrain; Q_EMIT terrainChanged(); }112 void setTerrain(double terrain) { m_terrain = terrain; Q_EMIT terrainChanged(); }
79 void setFound(bool found) { m_found = found; Q_EMIT foundChanged(); }113 void setFound(bool found) { m_found = found; Q_EMIT foundChanged(); }
114 void setcurrentwaypoint(int w) {m_currentwaypoint = w; Q_EMIT currentwaypointChanged(); }
115 Q_INVOKABLE void addWaypoint(QString name, double latitude, double longitude);
116 Q_INVOKABLE void setWaypoint(int i, QString name, double latitude, double longitude);
117 //This function was made separately from addWaypoint and setWaypoint, as it would else crash the application.
118 Q_INVOKABLE void updateWaypoints(void);
119 Q_INVOKABLE Waypoint* getWaypoint(int i);
120 Q_INVOKABLE void deleteWaypoint(int i);
121 Q_INVOKABLE QString dataDir();
80122
81private:123private:
82 QString m_id;124 QString m_id;
@@ -90,6 +132,8 @@
90 double m_difficulty;132 double m_difficulty;
91 double m_terrain;133 double m_terrain;
92 bool m_found;134 bool m_found;
135 QList<Waypoint*> m_waypoints;
136 int m_currentwaypoint;
93};137};
94138
95#endif // GEOCACHE_H139#endif // GEOCACHE_H
96140
=== modified file 'manifest.json.in'
--- manifest.json.in 2014-12-26 20:50:55 +0000
+++ manifest.json.in 2015-04-16 19:24:14 +0000
@@ -9,7 +9,7 @@
9 "desktop": "cachemere.desktop"9 "desktop": "cachemere.desktop"
10 }10 }
11 },11 },
12 "version": "0.1",12 "version": "0.2",
13 "maintainer": "Michael Sheldon <mike@mikeasoft.com>",13 "maintainer": "Michael Sheldon <mike@mikeasoft.com>",
14 "framework": "ubuntu-sdk-14.10"14 "framework": "ubuntu-sdk-14.10"
15}15}
1616
=== modified file 'po/com.mikeasoft.cachemere.pot'
--- po/com.mikeasoft.cachemere.pot 2014-12-26 20:50:55 +0000
+++ po/com.mikeasoft.cachemere.pot 2015-04-16 19:24:14 +0000
@@ -8,7 +8,7 @@
8msgstr ""8msgstr ""
9"Project-Id-Version: \n"9"Project-Id-Version: \n"
10"Report-Msgid-Bugs-To: \n"10"Report-Msgid-Bugs-To: \n"
11"POT-Creation-Date: 2014-12-26 20:42+0000\n"11"POT-Creation-Date: 2015-04-16 21:22+0200\n"
12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"12"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"13"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
14"Language-Team: LANGUAGE <LL@li.org>\n"14"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -38,6 +38,28 @@
38msgid "Stay"38msgid "Stay"
39msgstr ""39msgstr ""
4040
41#: ../app/ui/CompassTab.qml:29
42msgid "Compass"
43msgstr ""
44
45#: ../app/ui/CompassTab.qml:48 ../app/ui/CompassTab.qml:167
46#: ../app/ui/DetailsTab.qml:69 ../app/ui/MapTab.qml:234
47msgid "Waiting for fix..."
48msgstr ""
49
50#: ../app/ui/CompassTab.qml:75 ../app/ui/DetailsTab.qml:63
51msgid "Position:"
52msgstr ""
53
54#: ../app/ui/CompassTab.qml:75
55msgid "Waiting for fix"
56msgstr ""
57
58#: ../app/ui/CompassTab.qml:165 ../app/ui/CompassTab.qml:167
59#: ../app/ui/DetailsTab.qml:69 ../app/ui/MapTab.qml:242
60msgid "Distance:"
61msgstr ""
62
41#: ../app/ui/ConfirmDialog.qml:2363#: ../app/ui/ConfirmDialog.qml:23
42msgid "JavaScript Confirmation"64msgid "JavaScript Confirmation"
43msgstr ""65msgstr ""
@@ -54,18 +76,6 @@
54msgid "Name:"76msgid "Name:"
55msgstr ""77msgstr ""
5678
57#: ../app/ui/DetailsTab.qml:63
58msgid "Position:"
59msgstr ""
60
61#: ../app/ui/DetailsTab.qml:69 ../app/ui/MapTab.qml:207
62msgid "Distance:"
63msgstr ""
64
65#: ../app/ui/DetailsTab.qml:69 ../app/ui/MapTab.qml:199
66msgid "Waiting for fix..."
67msgstr ""
68
69#: ../app/ui/DetailsTab.qml:7579#: ../app/ui/DetailsTab.qml:75
70msgid "Difficulty: "80msgid "Difficulty: "
71msgstr ""81msgstr ""
@@ -90,11 +100,15 @@
90msgid "View cache page"100msgid "View cache page"
91msgstr ""101msgstr ""
92102
93#: ../app/ui/DetailsTab.qml:127103#: ../app/ui/DetailsTab.qml:121
104msgid "Waypoints"
105msgstr ""
106
107#: ../app/ui/DetailsTab.qml:191
94msgid "No Active Cache"108msgid "No Active Cache"
95msgstr ""109msgstr ""
96110
97#: ../app/ui/DetailsTab.qml:127111#: ../app/ui/DetailsTab.qml:191
98msgid "Select a cache from the 'Geocaches' page to make it active."112msgid "Select a cache from the 'Geocaches' page to make it active."
99msgstr ""113msgstr ""
100114
@@ -148,6 +162,14 @@
148msgid "JavaScript Prompt"162msgid "JavaScript Prompt"
149msgstr ""163msgstr ""
150164
151#: /home/mike/src/build-cachemere-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-Default/po/cachemere.desktop.in.h:1165#: ../app/ui/WaypointDialog.qml:30
166msgid "Edit Waypoint"
167msgstr ""
168
169#: ../app/ui/WaypointDialog.qml:227
170msgid "Close"
171msgstr ""
172
173#: /home/frans/build-cachemere-UbuntuSDK_for_armhf_GCC_ubuntu_sdk_14_10_utopic-Default/po/cachemere.desktop.in.h:1
152msgid "Cachemere"174msgid "Cachemere"
153msgstr ""175msgstr ""

Subscribers

People subscribed via source and target branches