From e44717c1f34383cdb8c0d8914cd61e1dc8156ab2 Mon Sep 17 00:00:00 2001 From: Niels Date: Sat, 31 May 2025 09:58:34 +0200 Subject: [PATCH] Initial comit --- .gitattributes | 2 + harbour-anchor.desktop | 11 + harbour-anchor.pro | 39 +++ icons/108x108/harbour-anchor.png | Bin 0 -> 12180 bytes icons/128x128/harbour-anchor.png | Bin 0 -> 15340 bytes icons/172x172/harbour-anchor.png | Bin 0 -> 22249 bytes icons/86x86/harbour-anchor.png | Bin 0 -> 8956 bytes qml/components/Compass.qml | 42 +++ qml/components/CompassCapsule.qml | 71 +++++ qml/components/Dot.qml | 33 +++ qml/components/Gps.qml | 99 +++++++ qml/components/Magnetometer.qml | 92 +++++++ qml/components/ScreenBlank.qml | 41 +++ qml/components/Settings.qml | 51 ++++ qml/cover/CoverPage.qml | 42 +++ qml/harbour-anchor.qml | 38 +++ qml/images/compass_needle_day_N_green.png | Bin 0 -> 1274 bytes qml/images/compass_needle_day_N_red.png | Bin 0 -> 1274 bytes qml/images/compass_ring_360_day.png | Bin 0 -> 30975 bytes qml/images/compass_ring_360_night.png | Bin 0 -> 42742 bytes qml/images/compass_ring_base_black.png | Bin 0 -> 15753 bytes qml/images/compass_ring_base_mono.png | Bin 0 -> 6097 bytes qml/images/compass_ring_base_white.png | Bin 0 -> 11082 bytes qml/images/harbour-anchor.png | Bin 0 -> 8769 bytes qml/images/test.png | Bin 0 -> 4626 bytes qml/js/calc.js | 30 +++ qml/js/settings.js | 134 ++++++++++ qml/pages/AboutPage.qml | 77 ++++++ qml/pages/AddAnchorPage.qml | 211 +++++++++++++++ qml/pages/AnchorPage.qml | 307 ++++++++++++++++++++++ qml/pages/ChooseAnchorsPage.qml | 127 +++++++++ qml/pages/FirstPage.qml | 43 +++ qml/pages/SecondPage.qml | 30 +++ qml/pages/SettingsPage.qml | 124 +++++++++ rpm/harbour-anchor.changes.in | 18 ++ rpm/harbour-anchor.changes.run.in | 24 ++ rpm/harbour-anchor.spec | 41 +++ src/harbour-anchor.cpp | 20 ++ translations/harbour-anchor-de.ts | 237 +++++++++++++++++ translations/harbour-anchor.ts | 237 +++++++++++++++++ 40 files changed, 2221 insertions(+) create mode 100644 .gitattributes create mode 100644 harbour-anchor.desktop create mode 100644 harbour-anchor.pro create mode 100644 icons/108x108/harbour-anchor.png create mode 100644 icons/128x128/harbour-anchor.png create mode 100644 icons/172x172/harbour-anchor.png create mode 100644 icons/86x86/harbour-anchor.png create mode 100644 qml/components/Compass.qml create mode 100644 qml/components/CompassCapsule.qml create mode 100644 qml/components/Dot.qml create mode 100644 qml/components/Gps.qml create mode 100644 qml/components/Magnetometer.qml create mode 100644 qml/components/ScreenBlank.qml create mode 100644 qml/components/Settings.qml create mode 100644 qml/cover/CoverPage.qml create mode 100644 qml/harbour-anchor.qml create mode 100644 qml/images/compass_needle_day_N_green.png create mode 100644 qml/images/compass_needle_day_N_red.png create mode 100644 qml/images/compass_ring_360_day.png create mode 100644 qml/images/compass_ring_360_night.png create mode 100644 qml/images/compass_ring_base_black.png create mode 100644 qml/images/compass_ring_base_mono.png create mode 100644 qml/images/compass_ring_base_white.png create mode 100644 qml/images/harbour-anchor.png create mode 100644 qml/images/test.png create mode 100644 qml/js/calc.js create mode 100644 qml/js/settings.js create mode 100644 qml/pages/AboutPage.qml create mode 100644 qml/pages/AddAnchorPage.qml create mode 100644 qml/pages/AnchorPage.qml create mode 100644 qml/pages/ChooseAnchorsPage.qml create mode 100644 qml/pages/FirstPage.qml create mode 100644 qml/pages/SecondPage.qml create mode 100644 qml/pages/SettingsPage.qml create mode 100644 rpm/harbour-anchor.changes.in create mode 100644 rpm/harbour-anchor.changes.run.in create mode 100644 rpm/harbour-anchor.spec create mode 100644 src/harbour-anchor.cpp create mode 100644 translations/harbour-anchor-de.ts create mode 100644 translations/harbour-anchor.ts diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..bb7b593 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Use target-compatible line endings as the safe default for cross compilation. +* text=auto eol=lf diff --git a/harbour-anchor.desktop b/harbour-anchor.desktop new file mode 100644 index 0000000..0f5ee1f --- /dev/null +++ b/harbour-anchor.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Type=Application +X-Nemo-Application-Type=silica-qt5 +Name=harbour-anchor +Icon=harbour-anchor +Exec=harbour-anchor + +[X-Sailjail] +Permissions=Location +OrganizationName=org.nesnomis +ApplicationName=Anchor diff --git a/harbour-anchor.pro b/harbour-anchor.pro new file mode 100644 index 0000000..ac286e4 --- /dev/null +++ b/harbour-anchor.pro @@ -0,0 +1,39 @@ +# NOTICE: +# +# Application name defined in TARGET has a corresponding QML filename. +# If name defined in TARGET is changed, the following needs to be done +# to match new name: +# - corresponding QML filename must be changed +# - desktop icon filename must be changed +# - desktop filename must be changed +# - icon definition filename in desktop file must be changed +# - translation filenames have to be changed + +# The name of your application +TARGET = harbour-anchor + +CONFIG += sailfishapp + +SOURCES += src/harbour-anchor.cpp + +DISTFILES += qml/harbour-anchor.qml \ + qml/cover/CoverPage.qml \ + qml/pages/FirstPage.qml \ + qml/pages/SecondPage.qml \ + rpm/harbour-anchor.changes.in \ + rpm/harbour-anchor.changes.run.in \ + rpm/harbour-anchor.spec \ + translations/*.ts \ + harbour-anchor.desktop + +SAILFISHAPP_ICONS = 86x86 108x108 128x128 172x172 + +# to disable building translations every time, comment out the +# following CONFIG line +CONFIG += sailfishapp_i18n + +# German translation is enabled as an example. If you aren't +# planning to localize your app, remember to comment out the +# following TRANSLATIONS line. And also do not forget to +# modify the localized app name in the the .desktop file. +TRANSLATIONS += translations/harbour-anchor-de.ts diff --git a/icons/108x108/harbour-anchor.png b/icons/108x108/harbour-anchor.png new file mode 100644 index 0000000000000000000000000000000000000000..35b4f6a507e46f5342d87be65c1f86f328ce3b0c GIT binary patch literal 12180 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 W1}= 0 ? semiNormalized : semiNormalized + 360 + } + + Image { + id: basePicture + source: showCompasNumbers ? "../images/compass_ring_base_black.png" : "../images/compass_ring_base_white.png" + opacity: showCompasNumbers ? 0.7 : 0.5 + //visible: !aGps.enabled + width: parent.width + height: parent.height + fillMode: Image.PreserveAspectFit + anchors.centerIn: parent + } + Image { + id: numberRing + source: "../images/compass_ring_360_day.png" + // opacity: + visible: showCompasNumbers + width: parent.width + height: parent.height + fillMode: Image.PreserveAspectFit + anchors.centerIn: parent + } + Image { + source: "../images/compass_needle_day_N_red.png" + anchors.centerIn: parent + width: parent.width*0.80 + height: parent.height*0.80 + fillMode: Image.PreserveAspectFit + visible: true + opacity: 0.7 + rotation: - compassCapsule.azimuth + Behavior on rotation { RotationAnimation { duration: 250; direction: RotationAnimation.Shortest } } + Behavior on opacity { + FadeAnimator {} + } + } + + Image { + id: anchorArrow + source: "../images/compass_needle_day_N_green.png" + anchors.centerIn: parent + width: parent.width*0.80 + height: parent.height*0.80 + fillMode: Image.PreserveAspectFit + opacity: 0.8 + rotation: - compassCapsule.azimuth + compassCapsule.anchor //compassCapsule.azimuth > compassCapsule.anchor ? compassCapsule.anchor - compassCapsule.azimuth : compassCapsule.azimuth - compassCapsule.anchor + Behavior on rotation { RotationAnimation { duration: 200; direction: RotationAnimation.Shortest } } + Behavior on opacity { + FadeAnimator {duration: 200} + } + } +} diff --git a/qml/components/Dot.qml b/qml/components/Dot.qml new file mode 100644 index 0000000..7f5024c --- /dev/null +++ b/qml/components/Dot.qml @@ -0,0 +1,33 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +GlassItem { + property int active: 0 // 0 = empty; 1 = active; 2 = inactive + property bool ghost: false + property bool glowing: false + id: dot + width: Theme.paddingLarge * 2 + height: width + radius: dots == 1 ? 0.6 : 0 // 0 ? 0.2 : 0 + falloffRadius: dots == 1 ? 0.65 : 3 // 0 ? 0.25 : 2 + color: Theme.highlightColor + opacity: 0.1 + Timer { + property bool up + id: glowingTimer + running: glowing + repeat: true + interval: 30 + onTriggered: { + if (opacity == 1){ + up = false + } else if (opacity < 0.5) { + up = true + } + if (up) + opacity += 0.05 + else + opacity -= 0.05 + } + } +} diff --git a/qml/components/Gps.qml b/qml/components/Gps.qml new file mode 100644 index 0000000..6cfba7a --- /dev/null +++ b/qml/components/Gps.qml @@ -0,0 +1,99 @@ +import QtQuick 2.0 +import QtPositioning 5.2 +//import QtLocation 5.0 + +Item { + property real currentLatitude: 0.0 + property real currentLongitude: 0.0 + property real currentAltitude: 0.0 + property int distance: 0 + property int direction: 0 + property string positionBearing: "" + property bool active: inact == 0 ? true : false + property int inact: 2 + property bool enabled: false + + onEnabledChanged: { + if (!enabled) inact = 2; else waittimer.running = true + } + + Timer { + id: waittimer + running: inact == 0 ? false : true + repeat: true + interval: 3000 + onTriggered: { + inact = inact + 1 + } + } + + PositionSource { + id: src + active: enabled ? true : false + preferredPositioningMethods: PositionSource.AllPositioningMethods + + onPositionChanged: { + var coord = src.position.coordinate; + currentLongitude = coord.longitude + currentLatitude = coord.latitude + currentAltitude = coord.altitude + if (anchorLatitude == 500 && anchorLongitude == 500) { + anchorLatitude = currentLatitude + anchorLongitude = currentLongitude + } + + distance = getdistance(currentLatitude,currentLongitude,anchorLatitude,anchorLongitude) + direction = positionbearing(currentLatitude,currentLongitude,anchorLatitude,anchorLongitude) + + //console.log(anchorLatitude + " - " + anchorLongitude) + + if (inact > 2) { + waittimer.running = false + inact = 0 + } + } + } + + function radians(n) { + return n * (Math.PI / 180); + } + + function degrees(n) { + return n * (180 / Math.PI); + } + + function getdistance(lat1,lon1,lat2,lon2){ + var R = 6371; // km + var dLat = radians(lat2-lat1) //(lat2-lat1) * Math.PI / 180; + var dLon = radians(lon2-lon1) //(lon2-lon1) * Math.PI / 180; + lat1 = radians(lat1) //lat1 * Math.PI / 180; + lat2 = radians(lat2) //lat2 * Math.PI / 180; + + var a = Math.sin(dLat/2) * Math.sin(dLat/2) + + Math.sin(dLon/2) * Math.sin(dLon/2) * Math.cos(lat1) * Math.cos(lat2); + var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); + var d = (R * c) * 1000; + + return d + + } + + function positionbearing(lat1,lon1,lat2,lon2){ + var startLat = radians(lat1); + var startLong = radians(lon1); + var endLat = radians(lat2); + var endLong = radians(lon2); + var dLong = endLong - startLong; + var dPhi = Math.log(Math.tan(endLat/2.0+Math.PI/4.0)/Math.tan(startLat/2.0+Math.PI/4.0)); + + if (Math.abs(dLong) > Math.PI){ + if (dLong > 0.0) + dLong = -(2.0 * Math.PI - dLong); + else + dLong = (2.0 * Math.PI + dLong); + } + + var brng = degrees(Math.atan2(dLong,dPhi)) + return brng + } +} diff --git a/qml/components/Magnetometer.qml b/qml/components/Magnetometer.qml new file mode 100644 index 0000000..cde74b7 --- /dev/null +++ b/qml/components/Magnetometer.qml @@ -0,0 +1,92 @@ +import QtQuick 2.0 +import QtSensors 5.0 + +Item { + property bool running: false + property bool enabled: false//settings.getSettings("magnetometerSetting",true) + property int azimuth: 0 + property real calibration: 0.0 + property variant data: [0,0,0,0,0] + + onEnabledChanged: { + console.log("*** MAGNETOMETER: "+enabled) + if (!enabled) running = false + } + + Accelerometer + { + id: accel + dataRate: 6 + active: enabled && Qt.application.active + } + + Magnetometer { + id: mag + dataRate: 6 + returnGeoValues: true // not sure + active: enabled && Qt.application.active + + onReadingChanged: { + running = true + var accelVec = [accel.reading.x, accel.reading.y, accel.reading.z] + var magEast = crossProduct([mag.reading.x, mag.reading.y, mag.reading.z], accelVec) + var magNorth = crossProduct(accelVec, magEast) + + magEast = normVec(magEast) + magNorth = normVec(magNorth) + + var deviceHeading = [0., 1., -1.] //This is for portrait orientation on android + var dotWithEast = dotProduct(deviceHeading, magEast) + var dotWithNorth = dotProduct(deviceHeading, magNorth) + var bearingRad = Math.atan2(dotWithEast, dotWithNorth) + var t = ((bearingRad * 180 / Math.PI) - 360) %360 + var bearingDeg = 360 - Math.abs(t) + calibration = mag.reading.calibrationLevel + azimuth = normalize360(bearingDeg) + } + + function normalize360(angle) { + var semiNormalized = angle % 360 + return semiNormalized >= 0 ? semiNormalized : semiNormalized + 360 + } + + function normalizeAngle(angle) + { + var newAngle = angle; + if (newAngle <= -180) newAngle = newAngle + 360; + if (newAngle > 180) newAngle = newAngle - 360; + return newAngle; + } + + function crossProduct(a, b) { + if (a.length != 3 || b.length != 3) { + return; + } + + return [a[1]*b[2] - a[2]*b[1], + a[2]*b[0] - a[0]*b[2], + a[0]*b[1] - a[1]*b[0]]; + } + + function normVec(a) { + var compSq = 0. + for(var i=0;i 10 ? aGps.distance + " m" : "HERE" : "ANCHOR"//compass.running ? compass.distance>10 ? compass.distance + " m" : "HERE" : "CONNECTING"//compass.running ? compass.distance + " m" : "CONNECTING" + } + Image { + //id:iBtn + // anchors.verticalCenter: parent.verticalCenter + width: parent.width * 0.85 + height: parent.height + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + // anchors.top: column.bottom + // anchors.bottom: parent.bottom + //height: parent.height * 0.8 + //width: parent.width * 0.8 + opacity: 0.7 + fillMode: Image.PreserveAspectFit + source: "../images/harbour-anchor.png"//anchorIcon !== "0" ? anchorIcon : "image://theme/icon-m-whereami" //anchorIcon !== "0" ? anchorIcon + "?" + Theme.highlightColor : "image://theme/icon-m-whereami?" + Theme.highlightColor + } + Label { + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottom: parent.bottom + anchors.bottomMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeExtraLarge//!aGps.running ? Theme.fontSizeMedium : Theme.fontSizeHuge + text: "v."+Qt.application.version//aGps.active ? aGps.distance > 10 ? aGps.distance + " m" : "HERE" : "ANCHOR"//compass.running ? compass.distance>10 ? compass.distance + " m" : "HERE" : "CONNECTING"//compass.running ? compass.distance + " m" : "CONNECTING" + } + } +} diff --git a/qml/harbour-anchor.qml b/qml/harbour-anchor.qml new file mode 100644 index 0000000..7f2d31c --- /dev/null +++ b/qml/harbour-anchor.qml @@ -0,0 +1,38 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 +import "pages" +import "components" + +ApplicationWindow +{ + property string anchorIcon: settings.getSettings("anchorIcon") + property string anchorName + property string anchorDescription + property real anchorLatitude: settings.getSettings("anchorLatitude",500) + property real anchorLongitude: settings.getSettings("anchorLongitude",500) + property int anchorRadius: settings.getSettings("anchorRadius",10) + property int showCompasNumbers: settings.getSettings("numbers",0) + property int calibrateDist: 0 + property variant dbModel: dbAnchors + property int azimuth: aCompass.enabled ? 360 - aCompass.azimuth : 360 - aMagnetometer.azimuth + property bool inact: false + property bool keepScreenOn: settings.getSettings("keepScreenOn",0) == 1 ? true : false + + //onKeepScreenOnChanged: console.log(" ---- **** KEEPSCREENALIVE: "+keepScreenOn) + + ListModel{id: dbAnchors} + + Settings {id: settings} + Gps {id: aGps} + Compass {id: aCompass} + Magnetometer {id: aMagnetometer} + ScreenBlank {id: screenBlank} + + Component.onCompleted: { + settings.getAnchors(dbAnchors) + } + + initialPage: Component { AnchorPage { } } + cover: Qt.resolvedUrl("cover/CoverPage.qml") + allowedOrientations: defaultAllowedOrientations +} diff --git a/qml/images/compass_needle_day_N_green.png b/qml/images/compass_needle_day_N_green.png new file mode 100644 index 0000000000000000000000000000000000000000..cab128b617b5ab03c852df3a1a997746c5bd85d8 GIT binary patch literal 1274 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 MEd$LO^~cZu2c1j^-v9sr literal 0 HcmV?d00001 diff --git a/qml/images/compass_ring_360_night.png b/qml/images/compass_ring_360_night.png new file mode 100644 index 0000000000000000000000000000000000000000..286043011ec2a95de78b580946530b6798a5423a GIT binary patch literal 42742 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 literal 0 HcmV?d00001 diff --git a/qml/images/compass_ring_base_black.png b/qml/images/compass_ring_base_black.png new file mode 100644 index 0000000000000000000000000000000000000000..a8b1f8388ce35a20f8f35dd2a264b28d2d765975 GIT binary patch literal 15753 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%0ASHUR8L-dGZ9g+U$T@}Z-zOAj$?2L zuR{ofSGlNS~ul)@|6no^X�Xuk085lt4E$A+U<9FL@5ZOHAI_#D9|UTunexK(1yrbS0dlH zcf>7LHPjo=`UfD=4X_$nIG!Jcl$W=cviD@eSs_T@e&WkCv{Ezgl+H=p-J69&(LW)X{G(jJoOL^!{SA%0xLCfx6q zIKZ>-88UC)`@bRbuyKpqN=En*jdos2D-5~RCN=c&nDHpXRnYm)_A0OQR?mf3Z|sRv z9aCudGyqB)jyD&zM(1Dld2u;11c3Ab+`4xF1C;9;sp3s3$Nz%(cU`^BEgbwVXRwUY z-)m_nmt(HLvM0W39sW-r0Y{)*=E_0qsF{WI$!mL_d}oeGnp!PhQRfvpAGv%oU|^~v~Br4T$Nz51un6XGK|25NlgUlpwp4PW&+x0|@_qS9F=d9^fS!lb!olEbZ$l>& zWu;1nCrK5vJLsmYwf!}>b5bUD&QKaQUv~Mm%DnDtl@av(`&HjJByG`#Zo7+;t;pwT zK8#&~(j{&y-xDeuTcVhZY{7fa-MVGVh*2eJLi9ODr9mIe)fxRrR^x^tcrso)ar?%i z=71w*jO2O34o&2Fh;iv~R9IRB{Vp||_l8-f-OLB^%Pz+jE(c3iUVmIDdMe_l1G zc1jMRc6G_r<)eCL&>(2R*~>=aY51aXB0?uVWU?cod$@hm1z3h6XxSidq=ME3nc}5* zO!1bGRu?VBmhd``r`dI6Yd<}S(h7Q^QjOOy)02WK9*Oj(g*+q-wt!}r|LFlb>b1|` zAGfb84osHSdKb^Fm+bxc!1RkXqN=l7W)Rsuc2o$vB2HhTz=1m4@RO7B!iuOT}SNfE#R$B8?1&}5?t+P>^< z8L!N+^>ENTlGuenY~HsW2k7KftaV|BIAKuT`sMrqNh9Jz?<2x%iHyU2o}jTz6*-(@ zJBx~NAciANjo4CiBAUm+xRWY?IP7gK&y2IyJ{xodpaIYT>XZlHxt z4YaWNupv_@-~aTt!KR>7prHkrGq6%wBEjNt=K3_{(%ZY}$Fr(^1fHozvZXq6d$36N~|s5ap3Nvu0XfN?}@4?X(VAvK<^(1z<^!5 zPr|f4?~wz$;j~0_4&nKdW&2V#K#Sls6JYETap|BJ@hx=)JQ_>t!e*w+_F0Nr;{ znWO)a+2#~;+W_=2-T*Y(gRMW(@o8%x4w?7GL&#UL!)&vWu8Z&hy^24^rKXc1$y@?w z`$tN|c_Sqv%_C3NMdxN1$0!*gNp~ruphdBeBJeVSsKQFm`drQB9l$br8-xyiW{`b} z?aglLa}LN{(N{}R@8YE-5jk2v(5Bvh5GqUNak$z+{RVyZvVx9(U~%*uHl0^8=Q~rG zYf7jrhQ|T*j(RMWC)~!|Leq@!ww6mZk0ki(FHXj`Vu z(!3@gzg+PjNndyw#f<|GF5{r_6v(oX8dAdWah+f%oyB>~1eJ(nU))-}81sn~zNMMyp%@FIICu^PZDyE> zme5`weop~U?(>`)@t^vOr=o%=Hk5QqamAH^l!lE1H>S}jz|6kGK~v-e;{7qt#xdoc z8Dk2nBP{XSJN@c(r|ptVJ(0@q1qH75_SKs+HWb~tier6}J2F~`?zP5xQV(dGhL{>z KqN@y?@Bbg8kLzXt literal 0 HcmV?d00001 diff --git a/qml/images/compass_ring_base_mono.png b/qml/images/compass_ring_base_mono.png new file mode 100644 index 0000000000000000000000000000000000000000..a3762f210b571bcdcf45b2022e1dd1aa7e84f65a GIT binary patch literal 6097 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 literal 0 HcmV?d00001 diff --git a/qml/images/test.png b/qml/images/test.png new file mode 100644 index 0000000000000000000000000000000000000000..241b6898cbd52642f60fc02bd7c525de87c308e7 GIT binary patch literal 4626 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 azi + 100) array = [azi,azi,azi,azi,azi]; + //var tem = data + //Math.atan2(Math.sin(azi),cos(azi)) = azi + + lastSin = smoothingFactor * lastSin + (1-smoothingFactor) * Math.sin(azi) + lastCos = smoothingFactor * lastCos + (1-smoothingFactor) * Math.cos(azi) + + var azim = Math.atan2(lastSin, lastCos) + + console.log(Math.sin(azi)+ " - "+Math.cos(azi)) + + array.shift() + array.push(azim) + + var total = 0,i; + for (i = 0; i < array.length; i += 1) { + total += array[i] + //if (array[i] > 0) total += array[i]; else total -= array[i]; + } + //data = tem + // console.log("******** "+ total / array.length+" ---- "+array) +// last = azi + return total / array.length; +} diff --git a/qml/js/settings.js b/qml/js/settings.js new file mode 100644 index 0000000..9e5217a --- /dev/null +++ b/qml/js/settings.js @@ -0,0 +1,134 @@ +var db = undefined; +function settings_db_open() { + if (db == undefined) + db = LocalStorage.openDatabaseSync("harbour-anchor", "1.0", "StorageDatabase", 100000); + return db; +} +/// GAME SETTINGS +function getValue(setting,def) { + var db = settings_db_open(); + var res=def; + try { + db.transaction(function(tx) { + var rs = tx.executeSql('SELECT value FROM settings WHERE setting=?;', [setting]); + if (rs.rows.length > 0) { + res = rs.rows.item(0).value; + } else { + res = def; + } + }) + } catch (err) { + console.log("*** getValue ERROR ") + res = def + }; + console.log("*** getValue: "+res+" setting: "+setting) + return res +} + +// insert anchor in db +function setAnchor(name, description, icon, latitude, longitude) { + var db = settings_db_open(); + var res = ""; + db.transaction(function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS anchors(name TEXT UNIQUE, description TEXT, icon TEXT, latitude REAL, longitude REAL)'); + var rs = tx.executeSql('INSERT OR REPLACE INTO anchors VALUES (?,?,?,?,?);', [name, description, icon, latitude, longitude]); + if (rs.rowsAffected > 0) { + res = "OK"; + + } else { + res = "Error"; + } + } + ); + return res; +} + +function setValue(setting, value) { + var db = settings_db_open(); + var res = ""; + db.transaction(function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS settings(setting TEXT UNIQUE, value TEXT)'); + var rs = tx.executeSql('INSERT OR REPLACE INTO settings VALUES (?,?);', [setting,value]); + if (rs.rowsAffected > 0) { + res = "OK"; + + } else { + res = "Error"; + } + } + ); + console.log("*** setValue: "+res+" setting: "+setting+" = "+value) + return res; +} + +/// GET ANCHORS +function getAnchors(model) { + model.clear() + var db = settings_db_open(); + var res="OK"; + try { + db.transaction(function(tx) { + var rs = tx.executeSql('SELECT * FROM anchors;'); + for (var i = 0; i < rs.rows.length; i++) + { + model.append({"name" : rs.rows.item(i).name,"description" : rs.rows.item(i).description,"icon" : rs.rows.item(i).icon,"latitude" : rs.rows.item(i).latitude,"longitude" : rs.rows.item(i).longitude}) + } + }) + } catch (err) { + res = "ERROR" + }; + return res +} + +function delAnchor(name) { + var db = settings_db_open(); + var res = ""; + db.transaction(function(tx) { + //tx.executeSql('CREATE TABLE IF NOT EXISTS settings(savegame TEXT UNIQUE, value TEXT)'); //tx.executeSql('DELETE FROM channels WHERE source=?', [source]) + var rs = tx.executeSql('DELETE FROM anchors where name=?', [name]); + if (rs.rowsAffected > 0) { + res = "OK"; + + } else { + res = "Error"; + } + } + ); + return res; +} + +/// LOAD/SAVE GAME +function getSave(setting,def) { + var db = settings_db_open(); + var res=def; + try { + db.transaction(function(tx) { + var rs = tx.executeSql('SELECT value FROM savegame WHERE setting=?;', [setting]); + if (rs.rows.length > 0) { + res = rs.rows.item(0).value; + } else { + res = def; + } + }) + } catch (err) { + res = def + }; + return res +} + +function setSave(setting, value) { + var db = settings_db_open(); + var res = ""; + db.transaction(function(tx) { + tx.executeSql('CREATE TABLE IF NOT EXISTS settings(savegame TEXT UNIQUE, value TEXT)'); + var rs = tx.executeSql('INSERT OR REPLACE INTO savegame VALUES (?,?);', [setting,value]); + if (rs.rowsAffected > 0) { + res = "OK"; + + } else { + res = "Error"; + } + } + ); + return res; +} diff --git a/qml/pages/AboutPage.qml b/qml/pages/AboutPage.qml new file mode 100644 index 0000000..20c38bc --- /dev/null +++ b/qml/pages/AboutPage.qml @@ -0,0 +1,77 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +Page { + id: page + //allowedOrientations: Orientation.Landscape | Orientation.Portrait + + + + SilicaFlickable { + anchors.fill: parent + contentHeight: column.height + + + Column { + id: column + PageHeader { + + title: qsTr("About Anchor v.")+Qt.application.version + + } + + width: parent.width + spacing: Theme.paddingLarge + Label { + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("Author") + color: Theme.secondaryHighlightColor + font.pixelSize: Theme.fontSizeLarge + } + Label { + anchors.horizontalCenter: parent.horizontalCenter + text: "Niels Simonsen (nesnomis)" + font.pixelSize: Theme.fontSizeMedium + } + Label { + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("Info") + color: Theme.secondaryHighlightColor + font.pixelSize: Theme.fontSizeLarge + } + Text { + x: Theme.paddingLarge + width: parent.width - 2*Theme.paddingLarge + wrapMode: Text.Wrap + text: qsTr("Anchor is a small app using compass/magnetometer and GPS to mark your current position (make an anchor) so you can find your direction back. This could be where you parked your car, or other useful places?!") + font.pixelSize: Theme.fontSizeMedium + color: Theme.primaryColor + horizontalAlignment: Text.AlignHCenter + } + Label { + anchors.horizontalCenter: parent.horizontalCenter + text: qsTr("Copyrights (2018)") + color: Theme.secondaryHighlightColor + font.pixelSize: Theme.fontSizeLarge + } + Label { + text: qsTr("Anchor is public domain. If nothing else is stated, it is licened under GPL.") + x: Theme.paddingLarge + width: parent.width - 2*Theme.paddingLarge + wrapMode: Text.Wrap + font.pixelSize: Theme.fontSizeMedium + color: Theme.primaryColor + horizontalAlignment: Text.AlignHCenter + } + Image { + anchors.horizontalCenter: parent.horizontalCenter + opacity: 0.7 + fillMode: Image.PreserveAspectFit + source: "../images/harbour-anchor.png"//anchorIcon !== "0" ? anchorIcon : "image://theme/icon-m-whereami" //anchorIcon !== "0" ? anchorIcon + "?" + Theme.highlightColor : "image://theme/icon-m-whereami?" + Theme.highlightColor + } + } + + } +} + + diff --git a/qml/pages/AddAnchorPage.qml b/qml/pages/AddAnchorPage.qml new file mode 100644 index 0000000..9fa56d8 --- /dev/null +++ b/qml/pages/AddAnchorPage.qml @@ -0,0 +1,211 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 +//import "../components" + +Dialog { + id: page + canAccept: sName.text !== "" && lName.text !=="" && la.text !== "" && lo.text !=="" ? true : false + property bool edit: false + property bool newAnchor: false + allowedOrientations: Orientation.Portrait + + SilicaFlickable { + anchors.fill: parent + contentX: 0 + contentHeight: col1.height + //contentWidth: text.width; contentHeight: text.height + + Column { + id: col1 + anchors.left: parent.left + anchors.right: parent.right + spacing: Theme.paddingMedium + + DialogHeader {} + + Label { + id: aLabel + anchors.right: parent.right + anchors.rightMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeLarge + text: edit ? qsTr("Edit anchor") : qsTr("Create anchor") + } + + Separator { + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: Theme.paddingMedium + color: Theme.highlightColor + } + + Row { + width:parent.width + + TextField { + id: sName + width: parent.width - iBtn.width + EnterKey.iconSource: "image://theme/icon-m-enter-next" + EnterKey.onClicked: {focus = false;lName.focus = true} + placeholderText: edit && !newAnchor ? "" : qsTr("Anchor name") + text: edit ? anchorName : "" + label: qsTr("Anchor name") + } + Image { + id:iBtn + source: edit ? anchorIcon : "image://theme/icon-m-car" + } + } + + TextField { + id: lName + width: parent.width + EnterKey.iconSource: "image://theme/icon-m-enter-next" + EnterKey.onClicked: {edit || newAnchor? la.focus = true : focus = false} + placeholderText: edit && !newAnchor ? "" : qsTr("Anchor description") + text: edit ? anchorDescription : "" + label: qsTr("Anchor description") + } + + Label { + id: iLabel + anchors.right: parent.right + anchors.rightMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeLarge + text: qsTr("Choose icon") + } + + Separator { + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: Theme.paddingMedium + color: Theme.highlightColor + } + + Grid { + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + columns: 4 + spacing: 2 + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-car" + onClicked: iBtn.source = icon.source + } + + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-airplane-mode" + onClicked: iBtn.source = icon.source + } + + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-whereami" + onClicked: iBtn.source = icon.source + } + + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-person" + onClicked: iBtn.source = icon.source + } + + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-train" + onClicked: iBtn.source = icon.source + } + + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-region" + onClicked: iBtn.source = icon.source + } + IconButton { + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-favorite" + onClicked: iBtn.source = icon.source + } + IconButton { + id: lim + width: parent.width / 4 + height: width / 1.5 + icon.source: "image://theme/icon-m-home" + onClicked: iBtn.source = icon.source + } + } + Label { + id: cLabel + anchors.right: parent.right + anchors.rightMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeLarge + text: qsTr("Latitude & Longitude") + } + Separator { + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: Theme.paddingMedium + color: Theme.highlightColor + } + + Item { + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width + height: Theme.itemSizeMedium + TextField { + id: lo + enabled: edit || newAnchor + anchors.left: parent.horizontalCenter + anchors.leftMargin: Theme.paddingLarge + width: parent.width * 0.5 - Theme.paddingLarge + EnterKey.iconSource: "image://theme/icon-m-enter-next" + EnterKey.onClicked: {focus = false} + inputMethodHints: Qt.ImhFormattedNumbersOnly //| Qt.ImhNoPredictiveText + placeholderText: newAnchor ? "Longitude" : "" + text: edit ? anchorLongitude : newAnchor ? "" : aGps.currentLongitude + onTextChanged: text = text.replace(",",".") + } + TextField { + id: la + enabled: edit || newAnchor + anchors.right: parent.horizontalCenter + anchors.rightMargin: Theme.paddingLarge + anchors.top: lo.top + width: parent.width * 0.5 - Theme.paddingLarge + EnterKey.iconSource: "image://theme/icon-m-enter-next" + EnterKey.onClicked: {focus = false;lo.focus = true} + inputMethodHints: Qt.ImhFormattedNumbersOnly //| Qt.ImhNoPredictiveText + placeholderText: newAnchor ? "Latitude" : "" + horizontalAlignment: Qt.AlignRight + text: edit ? anchorLatitude : newAnchor ? "" : aGps.currentLatitude + onTextChanged: text = text.replace(",",".") + } + } + } + } + onAccepted: { + console.log("*** ACCEPTED") + if (sName.text !== "" && la.text !== "" && lo.text !=="") { + if (edit && !newAnchor) settings.delAnchor(anchorName) + anchorIcon = iBtn.source + anchorName = sName.text + anchorDescription = lName.text + anchorLatitude = la.text + anchorLongitude = lo.text + settings.setSettings(anchorLatitude,anchorLongitude,anchorIcon,anchorName,anchorDescription) + settings.getAnchors(dbAnchors) + settings.setAnchor(anchorName, anchorDescription, anchorIcon, anchorLatitude, anchorLongitude) + settings.getAnchors(dbAnchors) + } + } +} diff --git a/qml/pages/AnchorPage.qml b/qml/pages/AnchorPage.qml new file mode 100644 index 0000000..c30c82e --- /dev/null +++ b/qml/pages/AnchorPage.qml @@ -0,0 +1,307 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 +import "../components" +import QtSensors 5.0 + +Page { + id: page + property int dots: 1 + property real calibration: aCompass.calibration ? aCompass.calibration : aMagnetometer.calibration + + allowedOrientations: Orientation.Portrait + + SilicaFlickable { + anchors.fill: parent + contentHeight: Screen.height + + PullDownMenu { + // pageStack.push(Qt.resolvedUrl("AddAnchorPage.qml"),{edit: true,newAnchor: false}); + + MenuItem { + enabled: false//aGps.active + visible: false + text: qsTr("Refresh to current position") + onClicked: { + anchorLatitude = aGps.currentLatitude + anchorLongitude = aGps.currentLongitude + settings.setSettings(anchorLatitude,anchorLongitude,anchorIcon,anchorName,anchorDescription) + settings.setAnchor(anchorName, anchorDescription, anchorIcon, anchorLatitude, anchorLongitude) + } + } + + + MenuItem { + enabled: aGps.active + visible: aGps.active && anchorLatitude !=="" ? true : false + text: qsTr("Edit current position") + onClicked: pageStack.push(Qt.resolvedUrl("AddAnchorPage.qml"),{edit: true,newAnchor: false}); + } + MenuItem { + enabled: aGps.active + visible: aGps.active + text: qsTr("Add current position") + onClicked: pageStack.push(Qt.resolvedUrl("AddAnchorPage.qml"),{edit: false,newAnchor: false});//posTimer.running = true//pageStack.push(Qt.resolvedUrl("SecondPage.qml")) + } + MenuItem { + enabled: true + text: qsTr("Add custom position") + onClicked: pageStack.push(Qt.resolvedUrl("AddAnchorPage.qml"),{edit: false,newAnchor: true});//posTimer.running = true//pageStack.push(Qt.resolvedUrl("SecondPage.qml")) + } + MenuItem { + enabled: true + text: qsTr("Select anchor") + onClicked: {pageStack.push(Qt.resolvedUrl("ChooseAnchorsPage.qml"))} + } + } + + + PushUpMenu { + MenuItem { + enabled: true + text: aGps.enabled ? qsTr("Disable GPS in app") : qsTr("Enable GPS in app") + onClicked: aGps.enabled ? aGps.enabled = false : aGps.enabled = true + } + MenuItem { + enabled: true + text: qsTr("Settings") + onClicked: pageStack.push(Qt.resolvedUrl("SettingsPage.qml")) + } + MenuItem { + enabled: true + text: qsTr("About Anchor") + onClicked: pageStack.push(Qt.resolvedUrl("AboutPage.qml")) + } + } + + Item { + id: header2 + visible: !header.visible + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: Theme.paddingLarge + anchors.top: parent.top + anchors.bottom: compassCapsule.top + anchors.bottomMargin: Theme.paddingLarge + + Row { + spacing: Theme.paddingLarge + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + + Image { + //id:iBtn + height: apHeader2.height+apInfo2.height + width: height + fillMode: Image.PreserveAspectFit + source: "../images/harbour-anchor.png"//anchorIcon !== "0" ? anchorIcon : "image://theme/icon-m-whereami" //anchorIcon !== "0" ? anchorIcon + "?" + Theme.highlightColor : "image://theme/icon-m-whereami?" + Theme.highlightColor + } + + Column { + Label { + id: apHeader2 + style: Text.Outline; styleColor: Theme.secondaryHighlightColor; + font.pixelSize: Theme.fontSizeHuge + text: qsTr("Anchor") //anchorName !== "0" ? anchorName : qsTr("No anchor") //"Anchor: Quick" + } + + Label { + id: apInfo2 + color: Theme.secondaryColor + font.pixelSize: Theme.fontSizeMedium + text: qsTr("A compass & anchor app") //anchorDescription !== "0" ? anchorDescription : "" // "[Default anchor]" + } + } + } + } + + Item { + id: header + visible: aGps.enabled + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: Theme.paddingLarge + anchors.top: parent.top + anchors.bottom: compassCapsule.top + anchors.bottomMargin: Theme.paddingLarge + + Row { + spacing: Theme.paddingMedium + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + + Image { + id:iBtn + height: apHeader.height+apInfo.height + width: height + fillMode: Image.PreserveAspectFit + source: anchorIcon ? anchorIcon : "image://theme/icon-m-whereami" //anchorIcon !== "0" ? anchorIcon + "?" + Theme.highlightColor : "image://theme/icon-m-whereami?" + Theme.highlightColor + } + + Column { + Label { + id: apHeader + style: Text.Outline; styleColor: Theme.secondaryHighlightColor; + font.pixelSize: Theme.fontSizeExtraLarge + text: anchorName ? anchorName : qsTr("No anchor") //"Anchor: Quick" + } + + Label { + id: apInfo + color: Theme.secondaryColor + font.pixelSize: Theme.fontSizeMedium + text: anchorDescription ? anchorDescription : qsTr("Add an anchor") // "[Default anchor]" + } + } + } + } + + CompassCapsule { + id: compassCapsule + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + width: parent.width * 0.8 + height: width + anchorArrow: aGps.active && aGps.distance > anchorRadius ? 0.8 : 0.0 + azimuth: aCompass.enabled ? aCompass.azimuth : aMagnetometer.azimuth + anchor: aGps.direction + } + + Dot { + id: dotN + visible: !showCompasNumbers + anchors.horizontalCenter: parent.horizontalCenter + anchors.top: compassCapsule.top + width: compassCapsule.width / 12 + color: Theme.highlightColor + opacity: aGps.active && aGps.distance > anchorRadius ? 0.7 : 0.1 + } + + Item { + id: footer + anchors.left: parent.left + anchors.right: parent.right + anchors.topMargin: Theme.paddingLarge + anchors.top: compassCapsule.bottom + anchors.bottom: info.top + anchors.bottomMargin: Theme.paddingLarge + Column { + spacing: Theme.paddingMedium + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + + Label { + id: gpsconnect + anchors.horizontalCenter: parent.horizontalCenter + color: Theme.primaryColor + + font.pixelSize: Theme.fontSizeHuge//aGps.active ? Theme.fontSizeHuge : Theme.fontSizeExtraLarge + text: aGps.active ? aGps.distance > anchorRadius ? qsTr("Distance: ")+aGps.distance + " m" : qsTr("HERE") : aGps.enabled ? qsTr("WAITING FOR GPS") : azimuth + + Timer { + property bool up + id: glowingTimer + running: !aGps.active && aGps.enabled + repeat: true + interval: 100 + + onRunningChanged: if (!running) gpsconnect.opacity = 1 + onTriggered: { + if (gpsconnect.opacity == 1){ + up = false + } else if (gpsconnect.opacity < 0.5) { + up = true + } + if (up) + gpsconnect.opacity += 0.1 + else + gpsconnect.opacity -= 0.1 + } + } + } + + Label { + id: gpsheight + visible: aGps.enabled + anchors.horizontalCenter: parent.horizontalCenter + color: Theme.secondaryColor + font.pixelSize: aGps.active ? Theme.fontSizeExtraLarge : Theme.fontSizeMedium + text: aGps.active ? qsTr("Altitude: ")+aGps.currentAltitude + " m" : qsTr("Make sure your phone GPS is enabled!") + } + } + } + + Rectangle { + id: calibRect + color: "transparent" + border.color: Theme.highlightColor + anchors.bottom: parent.bottom + anchors.bottomMargin: Theme.paddingMedium + anchors.left: parent.left + anchors.right: parent.right + anchors.leftMargin: Theme.paddingMedium + anchors.rightMargin: Theme.paddingMedium + height: calibrationBar.height + visible: calibration < 1 ? true : false//aCompass.enabled ? aCompass.calibration < 1 && aCompass.calibration > 0 ? true : aMagnetometer.calibration < 1 && aMagnetometer.calibration > 0 ? true : false : false + + ProgressBar { + id: calibrationBar + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + minimumValue: 0.0 + maximumValue: 1.0 + width: parent.width + value: aCompass.enabled ? aCompass.calibration : aMagnetometer.calibration + label: qsTr("Rotate phone to calibrate compass") + } + } + + Label { + id: info + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottomMargin: Theme.paddingLarge + anchors.bottom: parent.bottom + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeSmall + text: "Anchor v."+Qt.application.version+" "+qsTr("is an app by")+" nesnomis" + visible: !calibRect.visible + } + + Rectangle { + id: rect + visible: false + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + width: page.width * 0.75 + height: width + color: Theme.highlightDimmerColor + border.color: Theme.highlightColor + border.width: 1 + radius: width + + Column { + anchors.horizontalCenter: parent.horizontalCenter + anchors.verticalCenter: parent.verticalCenter + + Text { + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeHuge + text: aGps.positionBearing + " ("+aGps.direction+")" + } + + Text { + visible: aCompass.running + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeHuge + text: aCompass.enabled ? aCompass.azimuth : aMagnetometer.azimuth//compass.compassBearing + " ("+compass.compasNumber+")" + } + } + } + } + + Component.onCompleted: { + settings.getQanchor() + var types = QmlSensors.sensorTypes(); + console.log(types.join(", ")); + + } +} diff --git a/qml/pages/ChooseAnchorsPage.qml b/qml/pages/ChooseAnchorsPage.qml new file mode 100644 index 0000000..86376aa --- /dev/null +++ b/qml/pages/ChooseAnchorsPage.qml @@ -0,0 +1,127 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +Page { + SilicaListView { + id: listView + anchors.fill: parent + clip: true + + header: PageHeader { + id: pHeader + title: qsTr("Anchors") + } + + model: dbModel + + delegate: ListItem { + id: delegate + height: menuOpen ? contextMenu.height + img.height + (Theme.paddingMedium * 2): img.height + (Theme.paddingMedium * 2) + contentHeight: img.height + width: parent.width - Theme.paddingMedium * 2 + anchors.horizontalCenter: parent.horizontalCenter + menu: contextMenu + showMenuOnPressAndHold: true + ListView.onRemove: animateRemoval(delegate) + + function remove() { + remorseAction(qsTr("Deleting"), function() { settings.delAnchor(name);listView.model.remove(index) }) + } + + ContextMenu { + id: contextMenu + + MenuItem { + id:mlisten + text: qsTr("Select anchor") + //enabled: false + onClicked: { + aGps.enabled = true + anchorIcon = icon + anchorName = name + anchorDescription = description + anchorLatitude = latitude + anchorLongitude = longitude + settings.setSettings(latitude,longitude,icon,name,description) + pageStack.navigateBack() } + } + + MenuItem { + id:medit + text: qsTr("Edit anchor") + enabled: true + + onClicked: { + // aGps.enabled = true + // anchorIcon = icon + // anchorName = name + // anchorDescription = description + //anchorLatitude = latitude + //anchorLongitude = longitude + anchorIcon = icon + anchorName = name + anchorDescription = description + anchorLatitude = latitude + anchorLongitude = longitude + settings.setSettings(latitude,longitude,icon,name,description) + pageStack.push(Qt.resolvedUrl("AddAnchorPage.qml"),{edit: true,newAnchor: false}); + //settings.setSettings(anchorLatitude,anchorLatitude,anchorIcon,anchorName,anchorDescription) + //pageStack.navigateBack() + } + + // onClicked: window.pageStack.push(Qt.resolvedUrl("AddOwnRadio.qml"), + // {infotext: qsTr("Edit radio station"),titlfield: title,streamurlfield: source,homepagefield: site,sectionfield: section,oldsource: source}) + } + + MenuItem { + id:mdelete + text: qsTr("Delete anchor") + + onClicked: remove()//listView.currentItem.remove(rpindex,rpsource) //listView.remorseAction(); + } + } + + Row { + spacing: Theme.paddingLarge + width: parent.width + + Image { + id: img + height: aName.height + aDesc.height + width: height + fillMode: Image.PreserveAspectFit + source: icon + } + + Column { + Text { + id: aName + text: name + color: highlighted ? Theme.highlightColor : Theme.primaryColor + wrapMode: Text.ElideRight + font.pixelSize: Theme.fontSizeLarge + } + Text { + id: aDesc + text: description + color: highlighted ? Theme.secondaryHighlightColor : Theme.secondaryColor + wrapMode: Text.ElideRight + font.pixelSize: Theme.fontSizeMedium + } + } + } + + onClicked: { + aGps.enabled = true + anchorIcon = icon + anchorName = name + anchorDescription = description + anchorLatitude = latitude + anchorLongitude = longitude + settings.setSettings(latitude,longitude,icon,name,description) + pageStack.navigateBack() + } + } + } +} + diff --git a/qml/pages/FirstPage.qml b/qml/pages/FirstPage.qml new file mode 100644 index 0000000..9a00fc3 --- /dev/null +++ b/qml/pages/FirstPage.qml @@ -0,0 +1,43 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +Page { + id: page + + // The effective value will be restricted by ApplicationWindow.allowedOrientations + allowedOrientations: Orientation.All + + // To enable PullDownMenu, place our content in a SilicaFlickable + SilicaFlickable { + anchors.fill: parent + + // PullDownMenu and PushUpMenu must be declared in SilicaFlickable, SilicaListView or SilicaGridView + PullDownMenu { + MenuItem { + text: qsTr("Show Page 2") + onClicked: pageStack.animatorPush(Qt.resolvedUrl("SecondPage.qml")) + } + } + + // Tell SilicaFlickable the height of its content. + contentHeight: column.height + + // Place our content in a Column. The PageHeader is always placed at the top + // of the page, followed by our content. + Column { + id: column + + width: page.width + spacing: Theme.paddingLarge + PageHeader { + title: qsTr("UI Template") + } + Label { + x: Theme.horizontalPageMargin + text: qsTr("Hello Sailors") + color: Theme.secondaryHighlightColor + font.pixelSize: Theme.fontSizeExtraLarge + } + } + } +} diff --git a/qml/pages/SecondPage.qml b/qml/pages/SecondPage.qml new file mode 100644 index 0000000..6dbadf4 --- /dev/null +++ b/qml/pages/SecondPage.qml @@ -0,0 +1,30 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +Page { + id: page + + // The effective value will be restricted by ApplicationWindow.allowedOrientations + allowedOrientations: Orientation.All + + SilicaListView { + id: listView + model: 20 + anchors.fill: parent + header: PageHeader { + title: qsTr("Nested Page") + } + delegate: BackgroundItem { + id: delegate + + Label { + x: Theme.horizontalPageMargin + text: qsTr("Item") + " " + index + anchors.verticalCenter: parent.verticalCenter + color: delegate.highlighted ? Theme.highlightColor : Theme.primaryColor + } + onClicked: console.log("Clicked " + index) + } + VerticalScrollDecorator {} + } +} diff --git a/qml/pages/SettingsPage.qml b/qml/pages/SettingsPage.qml new file mode 100644 index 0000000..d63c83a --- /dev/null +++ b/qml/pages/SettingsPage.qml @@ -0,0 +1,124 @@ +import QtQuick 2.0 +import Sailfish.Silica 1.0 + +Dialog { + id: settingsDialog + property bool aComp + property bool aMag + property int aR: anchorRadius + + Column { + //id: col1 + anchors.left: parent.left + anchors.right: parent.right + spacing: Theme.paddingMedium + + DialogHeader {} + + Label { + id: sLabel + anchors.right: parent.right + anchors.rightMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeLarge + text: qsTr("Compass") + } + + Separator { + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: Theme.paddingMedium + color: Theme.highlightColor + } + + TextSwitch { + id: activateACompass + width: parent.width + checked: aCompass.enabled + enabled: false //aCompass.running + text: qsTr("Compass") + description: qsTr("Enables the compass") + onCheckedChanged: { + activateAMagnet.checked = !checked + aComp = checked + aMag = !checked + } + } + + TextSwitch { + id: activateAMagnet + width: parent.width + checked: aMagnetometer.enabled + enabled: false //aMagnetometer.running + text: qsTr("Magnetometer") + description: qsTr("Activates the magnetometer") + onCheckedChanged: { + activateACompass.checked = !checked + aComp = !checked + aMag = checked + } + } + TextSwitch { + id: activateNumbers + width: parent.width + checked: showCompasNumbers + enabled: true //aMagnetometer.running + text: qsTr("Degrees") + description: qsTr("Show degrees in compass") + onCheckedChanged: { + } + } + Label { + id: rLabel + anchors.right: parent.right + anchors.rightMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeLarge + text: qsTr("Here radius")+" "+rSlider.value + " "+qsTr("meters") + } + + Slider { + id: rSlider + width: parent.width + minimumValue: 1 + maximumValue: 30 + stepSize: 1.0 + value: aR + onValueChanged: aR = value + } + + Label { + // id: sLabel + anchors.right: parent.right + anchors.rightMargin: Theme.paddingLarge + color: Theme.highlightColor + font.pixelSize: Theme.fontSizeLarge + text: qsTr("Anchor settings") + } + + Separator { + anchors.left: parent.left + anchors.right: parent.right + anchors.rightMargin: Theme.paddingMedium + color: Theme.highlightColor + } + TextSwitch { + id: keepSon + width: parent.width + checked: keepScreenOn + enabled: true //aMagnetometer.running + text: qsTr("Prevent screensaver") + description: qsTr("Prevent screensaver when Anchor is active") + } + + } + + onAccepted: { + activateNumbers.checked ? showCompasNumbers = 1 : showCompasNumbers = 0 + var scron + keepSon.checked ? scron = 1 : scron = 0 + keepScreenOn = keepSon.checked + settings.setSettingSetting(aComp,aMag,aR,showCompasNumbers,scron) + anchorRadius = aR + } +} diff --git a/rpm/harbour-anchor.changes.in b/rpm/harbour-anchor.changes.in new file mode 100644 index 0000000..9f6aaf0 --- /dev/null +++ b/rpm/harbour-anchor.changes.in @@ -0,0 +1,18 @@ +# Rename this file as harbour-anchor.changes to include changelog +# entries in your RPM file. +# +# Add new changelog entries following the format below. +# Add newest entries to the top of the list. +# Separate entries from eachother with a blank line. +# +# Alternatively, if your changelog is automatically generated (e.g. with +# the git-change-log command provided with Sailfish OS SDK), create a +# harbour-anchor.changes.run script to let mb2 run the required commands for you. + +# * date Author's Name version-release +# - Summary of changes + +* Sun Apr 13 2014 Jack Tar 0.0.1-1 +- Scrubbed the deck +- Hoisted the sails + diff --git a/rpm/harbour-anchor.changes.run.in b/rpm/harbour-anchor.changes.run.in new file mode 100644 index 0000000..97676f5 --- /dev/null +++ b/rpm/harbour-anchor.changes.run.in @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Rename this file as harbour-anchor.changes.run to let sfdk automatically +# generate changelog from well formatted Git commit messages and tag +# annotations. Note that 'sfdk changelog' must be invoked as 'sfdk-changelog' here. + +sfdk-changelog + +# Here are some basic examples how to change from the default behavior. Run +# 'sfdk --help-maintaining' to learn more. + +# Use a subset of tags +#sfdk-changelog --tags refs/tags/my-prefix/* + +# Group entries by minor revision, suppress headlines for patch-level revisions +#sfdk-changelog --dense '/[0-9]+.[0-9+$' + +# Trim very old changes +#sfdk-changelog --since 2014-04-01 +#echo '[ Some changelog entries trimmed for brevity ]' + +# Use the subjects (first lines) of tag annotations when no entry would be +# included for a revision otherwise +#sfdk-changelog --auto-add-annotations diff --git a/rpm/harbour-anchor.spec b/rpm/harbour-anchor.spec new file mode 100644 index 0000000..567fcdc --- /dev/null +++ b/rpm/harbour-anchor.spec @@ -0,0 +1,41 @@ +Name: harbour-anchor + +Summary: Anchor +Version: 0.1 +Release: 1 +License: LICENSE +URL: http://example.org/ +Source0: %{name}-%{version}.tar.bz2 +Requires: sailfishsilica-qt5 >= 0.10.9 +BuildRequires: pkgconfig(sailfishapp) >= 1.0.2 +BuildRequires: pkgconfig(Qt5Core) +BuildRequires: pkgconfig(Qt5Qml) +BuildRequires: pkgconfig(Qt5Quick) +BuildRequires: desktop-file-utils + +%description +App using compass and GPS to mark your position and create an anchor so you can find back to that location at a later time. + + +%prep +%setup -q -n %{name}-%{version} + +%build + +%qmake5 + +%make_build + + +%install +%qmake5_install + + +desktop-file-install --delete-original --dir %{buildroot}%{_datadir}/applications %{buildroot}%{_datadir}/applications/*.desktop + +%files +%defattr(-,root,root,-) +%{_bindir}/%{name} +%{_datadir}/%{name} +%{_datadir}/applications/%{name}.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png diff --git a/src/harbour-anchor.cpp b/src/harbour-anchor.cpp new file mode 100644 index 0000000..3deb492 --- /dev/null +++ b/src/harbour-anchor.cpp @@ -0,0 +1,20 @@ +#ifdef QT_QML_DEBUG +#include +#endif + +#include + +int main(int argc, char *argv[]) +{ + // SailfishApp::main() will display "qml/harbour-anchor.qml", if you need more + // control over initialization, you can use: + // + // - SailfishApp::application(int, char *[]) to get the QGuiApplication * + // - SailfishApp::createView() to get a new QQuickView * instance + // - SailfishApp::pathTo(QString) to get a QUrl to a resource file + // - SailfishApp::pathToMainQml() to get a QUrl to the main QML file + // + // To display the view, call "show()" (will show fullscreen on device). + + return SailfishApp::main(argc, argv); +} diff --git a/translations/harbour-anchor-de.ts b/translations/harbour-anchor-de.ts new file mode 100644 index 0000000..8bea469 --- /dev/null +++ b/translations/harbour-anchor-de.ts @@ -0,0 +1,237 @@ + + + + + AboutPage + + About Anchor v. + + + + Author + + + + Info + + + + Anchor is a small app using compass/magnetometer and GPS to mark your current position (make an anchor) so you can find your direction back. This could be where you parked your car, or other useful places?! + + + + Copyrights (2018) + + + + Anchor is public domain. If nothing else is stated, it is licened under GPL. + + + + + AddAnchorPage + + Edit anchor + + + + Create anchor + + + + Anchor name + + + + Anchor description + + + + Choose icon + + + + Latitude & Longitude + + + + + AnchorPage + + Refresh to current position + + + + Edit current position + + + + Add current position + + + + Add custom position + + + + Select anchor + + + + Disable GPS in app + + + + Enable GPS in app + + + + Settings + + + + About Anchor + + + + Anchor + + + + A compass & anchor app + + + + No anchor + + + + Add an anchor + + + + Distance: + + + + HERE + + + + WAITING FOR GPS + + + + Altitude: + + + + Make sure your phone GPS is enabled! + + + + Rotate phone to calibrate compass + + + + is an app by + + + + + ChooseAnchorsPage + + Anchors + + + + Deleting + + + + Select anchor + + + + Edit anchor + + + + Delete anchor + + + + + FirstPage + + Show Page 2 + Zur Seite 2 + + + UI Template + UI-Vorlage + + + Hello Sailors + Hallo Matrosen + + + + SecondPage + + Nested Page + Unterseite + + + Item + Element + + + + SettingsPage + + Compass + + + + Enables the compass + + + + Magnetometer + + + + Activates the magnetometer + + + + Degrees + + + + Show degrees in compass + + + + Here radius + + + + meters + + + + Anchor settings + + + + Prevent screensaver + + + + Prevent screensaver when Anchor is active + + + + diff --git a/translations/harbour-anchor.ts b/translations/harbour-anchor.ts new file mode 100644 index 0000000..9dbd2ab --- /dev/null +++ b/translations/harbour-anchor.ts @@ -0,0 +1,237 @@ + + + + + AboutPage + + About Anchor v. + + + + Author + + + + Info + + + + Anchor is a small app using compass/magnetometer and GPS to mark your current position (make an anchor) so you can find your direction back. This could be where you parked your car, or other useful places?! + + + + Copyrights (2018) + + + + Anchor is public domain. If nothing else is stated, it is licened under GPL. + + + + + AddAnchorPage + + Edit anchor + + + + Create anchor + + + + Anchor name + + + + Anchor description + + + + Choose icon + + + + Latitude & Longitude + + + + + AnchorPage + + Refresh to current position + + + + Edit current position + + + + Add current position + + + + Add custom position + + + + Select anchor + + + + Disable GPS in app + + + + Enable GPS in app + + + + Settings + + + + About Anchor + + + + Anchor + + + + A compass & anchor app + + + + No anchor + + + + Add an anchor + + + + Distance: + + + + HERE + + + + WAITING FOR GPS + + + + Altitude: + + + + Make sure your phone GPS is enabled! + + + + Rotate phone to calibrate compass + + + + is an app by + + + + + ChooseAnchorsPage + + Anchors + + + + Deleting + + + + Select anchor + + + + Edit anchor + + + + Delete anchor + + + + + FirstPage + + Show Page 2 + + + + UI Template + + + + Hello Sailors + + + + + SecondPage + + Nested Page + + + + Item + + + + + SettingsPage + + Compass + + + + Enables the compass + + + + Magnetometer + + + + Activates the magnetometer + + + + Degrees + + + + Show degrees in compass + + + + Here radius + + + + meters + + + + Anchor settings + + + + Prevent screensaver + + + + Prevent screensaver when Anchor is active + + + +