mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-27 20:58:47 +00:00
Compare commits
6 commits
cedd7f9395
...
70da714897
Author | SHA1 | Date | |
---|---|---|---|
|
70da714897 | ||
|
46c439c443 | ||
|
015ac0e459 | ||
|
9bd1631103 | ||
|
7201a40c5f | ||
|
c5e5535f51 |
18 changed files with 140 additions and 48 deletions
9
.github/workflows/android.yml
vendored
9
.github/workflows/android.yml
vendored
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
@ -49,6 +50,12 @@ jobs:
|
||||||
VERSION: ${{ steps.version_number.outputs.version }}
|
VERSION: ${{ steps.version_number.outputs.version }}
|
||||||
VERSION_4: ${{ steps.version_number.outputs.version_4 }}
|
VERSION_4: ${{ steps.version_number.outputs.version_4 }}
|
||||||
run: |
|
run: |
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} release"
|
||||||
|
fi
|
||||||
|
|
||||||
# this is rather awkward, but it allows us to use the preinstalled
|
# this is rather awkward, but it allows us to use the preinstalled
|
||||||
# Android and Qt versions with relative paths
|
# Android and Qt versions with relative paths
|
||||||
cd ..
|
cd ..
|
||||||
|
@ -65,7 +72,7 @@ jobs:
|
||||||
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
||||||
# get the build number via curl so this works both for a pull request as well as a push
|
# get the build number via curl so this works both for a pull request as well as a push
|
||||||
export OUTPUT_DIR="$GITHUB_WORKSPACE"
|
export OUTPUT_DIR="$GITHUB_WORKSPACE"
|
||||||
bash -x ./subsurface/packaging/android/qmake-build.sh -buildnr $BUILDNR -canonicalversion $VERSION -canonicalversion_4 $VERSION_4
|
bash -x ./subsurface/packaging/android/qmake-build.sh ${BUILD_EXTRA_ARGS} -buildnr $BUILDNR -canonicalversion $VERSION -canonicalversion_4 $VERSION_4
|
||||||
|
|
||||||
- name: delete the keystore
|
- name: delete the keystore
|
||||||
if: github.event_name == 'push'
|
if: github.event_name == 'push'
|
||||||
|
|
9
.github/workflows/ios.yml.disabled
vendored
9
.github/workflows/ios.yml.disabled
vendored
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
@ -45,12 +46,18 @@ jobs:
|
||||||
env:
|
env:
|
||||||
VERSION: ${{ steps.version_number.outputs.version }}
|
VERSION: ${{ steps.version_number.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release"
|
||||||
|
fi
|
||||||
|
|
||||||
cd ..
|
cd ..
|
||||||
git config --global --add safe.directory $GITHUB_WORKSPACE
|
git config --global --add safe.directory $GITHUB_WORKSPACE
|
||||||
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
||||||
export IOS_QT=$GITHUB_WORKSPACE/qt-ios
|
export IOS_QT=$GITHUB_WORKSPACE/qt-ios
|
||||||
echo "build for simulator"
|
echo "build for simulator"
|
||||||
bash -x $GITHUB_WORKSPACE/packaging/ios/build.sh -simulator
|
bash -x $GITHUB_WORKSPACE/packaging/ios/build.sh -simulator ${BUILD_EXTRA_ARGS}
|
||||||
# We need this in order to be able to access the file and publish it
|
# We need this in order to be able to access the file and publish it
|
||||||
mv build-Subsurface-mobile-Qt_5_14_1_for_iOS-Release/Release-iphonesimulator/Subsurface-mobile.app $GITHUB_WORKSPACE/Subsurface-mobile-$VERSION.app
|
mv build-Subsurface-mobile-Qt_5_14_1_for_iOS-Release/Release-iphonesimulator/Subsurface-mobile.app $GITHUB_WORKSPACE/Subsurface-mobile-$VERSION.app
|
||||||
|
|
||||||
|
|
8
.github/workflows/linux-debian-generic.yml
vendored
8
.github/workflows/linux-debian-generic.yml
vendored
|
@ -71,9 +71,15 @@ jobs:
|
||||||
echo "--------------------------------------------------------------"
|
echo "--------------------------------------------------------------"
|
||||||
echo "building desktop"
|
echo "building desktop"
|
||||||
|
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release"
|
||||||
|
fi
|
||||||
|
|
||||||
# now build for the desktop version (including WebKit)
|
# now build for the desktop version (including WebKit)
|
||||||
cd ..
|
cd ..
|
||||||
bash -e -x subsurface/scripts/build.sh -desktop -build-with-webkit
|
bash -e -x subsurface/scripts/build.sh -desktop -build-with-webkit ${BUILD_EXTRA_ARGS}
|
||||||
|
|
||||||
- name: test desktop build
|
- name: test desktop build
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
do-build-test:
|
do-build-test:
|
||||||
|
|
9
.github/workflows/linux-fedora-35-qt6.yml
vendored
9
.github/workflows/linux-fedora-35-qt6.yml
vendored
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
@ -52,12 +53,18 @@ jobs:
|
||||||
echo "--------------------------------------------------------------"
|
echo "--------------------------------------------------------------"
|
||||||
echo "building desktop"
|
echo "building desktop"
|
||||||
|
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release"
|
||||||
|
fi
|
||||||
|
|
||||||
# now build for the desktop version (without WebKit)
|
# now build for the desktop version (without WebKit)
|
||||||
cd ..
|
cd ..
|
||||||
git config --global --add safe.directory $GITHUB_WORKSPACE
|
git config --global --add safe.directory $GITHUB_WORKSPACE
|
||||||
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
git config --global --add safe.directory $GITHUB_WORKSPACE/libdivecomputer
|
||||||
git config --global --get-all safe.directory
|
git config --global --get-all safe.directory
|
||||||
bash -e -x subsurface/scripts/build.sh -desktop -build-with-qt6
|
bash -e -x subsurface/scripts/build.sh -desktop -build-with-qt6 ${BUILD_EXTRA_ARGS}
|
||||||
|
|
||||||
- name: test desktop build
|
- name: test desktop build
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
|
@ -60,9 +61,15 @@ jobs:
|
||||||
echo "--------------------------------------------------------------"
|
echo "--------------------------------------------------------------"
|
||||||
echo "building desktop"
|
echo "building desktop"
|
||||||
|
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release"
|
||||||
|
fi
|
||||||
|
|
||||||
# now build the appimage
|
# now build the appimage
|
||||||
cd ..
|
cd ..
|
||||||
bash -e -x subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit
|
bash -e -x subsurface/scripts/build.sh -desktop -create-appdir -build-with-webkit ${BUILD_EXTRA_ARGS}
|
||||||
|
|
||||||
- name: test desktop build
|
- name: test desktop build
|
||||||
run: |
|
run: |
|
||||||
|
|
1
.github/workflows/linux-ubuntu-20.04-qt5.yml
vendored
1
.github/workflows/linux-ubuntu-20.04-qt5.yml
vendored
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
do-build-test:
|
do-build-test:
|
||||||
|
|
1
.github/workflows/linux-ubuntu-22.04-qt5.yml
vendored
1
.github/workflows/linux-ubuntu-22.04-qt5.yml
vendored
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
do-build-test:
|
do-build-test:
|
||||||
|
|
1
.github/workflows/linux-ubuntu-24.04-qt5.yml
vendored
1
.github/workflows/linux-ubuntu-24.04-qt5.yml
vendored
|
@ -11,6 +11,7 @@ on:
|
||||||
- scripts/docker/**
|
- scripts/docker/**
|
||||||
branches:
|
branches:
|
||||||
- master
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
do-build-test:
|
do-build-test:
|
||||||
|
|
8
.github/workflows/mac.yml
vendored
8
.github/workflows/mac.yml
vendored
|
@ -44,6 +44,12 @@ jobs:
|
||||||
env:
|
env:
|
||||||
CANONICALVERSION: ${{ steps.version_number.outputs.version }}
|
CANONICALVERSION: ${{ steps.version_number.outputs.version }}
|
||||||
run: |
|
run: |
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release"
|
||||||
|
fi
|
||||||
|
|
||||||
cd ${GITHUB_WORKSPACE}/..
|
cd ${GITHUB_WORKSPACE}/..
|
||||||
export QT_ROOT=${GITHUB_WORKSPACE}/qt-mac/Qt5.15.15
|
export QT_ROOT=${GITHUB_WORKSPACE}/qt-mac/Qt5.15.15
|
||||||
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
|
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
|
||||||
|
@ -51,7 +57,7 @@ jobs:
|
||||||
export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
|
export CMAKE_PREFIX_PATH=$QT_ROOT/lib/cmake
|
||||||
|
|
||||||
# now setup Subsurface with WebKit and build the dependencies, using the generic build script
|
# now setup Subsurface with WebKit and build the dependencies, using the generic build script
|
||||||
bash -e -x ./subsurface/scripts/build.sh -desktop -build-with-webkit -release -build-deps -ftdi -prep-only
|
bash -e -x ./subsurface/scripts/build.sh -desktop -build-with-webkit -build-deps -ftdi -prep-only ${BUILD_EXTRA_ARGS}
|
||||||
|
|
||||||
echo "finished initial cmake setup of Subsurface - next build the package"
|
echo "finished initial cmake setup of Subsurface - next build the package"
|
||||||
cd subsurface/build
|
cd subsurface/build
|
||||||
|
|
8
.github/workflows/windows.yml
vendored
8
.github/workflows/windows.yml
vendored
|
@ -47,9 +47,15 @@ jobs:
|
||||||
CANONICALVERSION: ${{ steps.version_number.outputs.version }}
|
CANONICALVERSION: ${{ steps.version_number.outputs.version }}
|
||||||
CANONICALVERSION_4: ${{ steps.version_number.outputs.version_4 }}
|
CANONICALVERSION_4: ${{ steps.version_number.outputs.version_4 }}
|
||||||
run: |
|
run: |
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
if [ "${GITHUB_EVENT_NAME}" = "push" ]; then
|
||||||
|
echo "Building a release version"
|
||||||
|
BUILD_EXTRA_ARGS="${BUILD_EXTRA_ARGS} -release"
|
||||||
|
fi
|
||||||
|
|
||||||
export OUTPUT_DIR="$GITHUB_WORKSPACE"
|
export OUTPUT_DIR="$GITHUB_WORKSPACE"
|
||||||
cd /win
|
cd /win
|
||||||
bash -x subsurface/packaging/windows/in-container-build.sh 2>&1 | tee build.log
|
bash -x subsurface/packaging/windows/in-container-build.sh ${BUILD_EXTRA_ARGS} 2>&1 | tee build.log
|
||||||
grep "Built target installer" build.log
|
grep "Built target installer" build.log
|
||||||
|
|
||||||
- name: publish pull request artifacts
|
- name: publish pull request artifacts
|
||||||
|
|
|
@ -78,6 +78,7 @@ static struct namePattern name[] = {
|
||||||
{ "Luna 2.0", "Scubapro", "Luna 2.0" },
|
{ "Luna 2.0", "Scubapro", "Luna 2.0" },
|
||||||
// Mares dive computers
|
// Mares dive computers
|
||||||
{ "Mares Genius", "Mares", "Genius" },
|
{ "Mares Genius", "Mares", "Genius" },
|
||||||
|
{ "Sirius", "Mares", "Sirius" },
|
||||||
{ "Mares", "Mares", "Quad" }, // we actually don't know and just pick a common one - user needs to fix in UI
|
{ "Mares", "Mares", "Quad" }, // we actually don't know and just pick a common one - user needs to fix in UI
|
||||||
// Cress dive computers
|
// Cress dive computers
|
||||||
{ "CARESIO_", "Cressi", "Cartesio" },
|
{ "CARESIO_", "Cressi", "Cartesio" },
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
// SPDX-License-Identifier: GPL-2.0
|
// SPDX-License-Identifier: GPL-2.0
|
||||||
import QtQuick 2.5
|
import QtQuick
|
||||||
import QtLocation 5.3
|
import QtLocation
|
||||||
import QtPositioning 5.3
|
import QtPositioning
|
||||||
import org.subsurfacedivelog.mobile 1.0
|
import org.subsurfacedivelog.mobile 1.0
|
||||||
|
|
||||||
Item {
|
Item {
|
||||||
|
@ -15,7 +15,7 @@ Item {
|
||||||
id: mapHelper
|
id: mapHelper
|
||||||
map: map
|
map: map
|
||||||
editMode: false
|
editMode: false
|
||||||
onSelectedDivesChanged: rootItem.selectedDivesChanged(list)
|
onSelectedDivesChanged: (list) => { rootItem.selectedDivesChanged(list) }
|
||||||
onEditModeChanged: editMessage.isVisible = editMode === true ? 1 : 0
|
onEditModeChanged: editMessage.isVisible = editMode === true ? 1 : 0
|
||||||
onCoordinatesChanged: {}
|
onCoordinatesChanged: {}
|
||||||
Component.onCompleted: {
|
Component.onCompleted: {
|
||||||
|
@ -29,7 +29,6 @@ Item {
|
||||||
id: map
|
id: map
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
zoomLevel: defaultZoomIn
|
zoomLevel: defaultZoomIn
|
||||||
|
|
||||||
property var mapType
|
property var mapType
|
||||||
readonly property var defaultCenter: QtPositioning.coordinate(0, 0)
|
readonly property var defaultCenter: QtPositioning.coordinate(0, 0)
|
||||||
readonly property real defaultZoomIn: 12.0
|
readonly property real defaultZoomIn: 12.0
|
||||||
|
@ -41,12 +40,46 @@ Item {
|
||||||
property real newZoomOut: 1.0
|
property real newZoomOut: 1.0
|
||||||
property var clickCoord: QtPositioning.coordinate(0, 0)
|
property var clickCoord: QtPositioning.coordinate(0, 0)
|
||||||
property bool isReady: false
|
property bool isReady: false
|
||||||
|
|
||||||
Component.onCompleted: isReady = true
|
Component.onCompleted: isReady = true
|
||||||
onZoomLevelChanged: {
|
onZoomLevelChanged: {
|
||||||
if (isReady)
|
if (isReady)
|
||||||
mapHelper.calculateSmallCircleRadius(map.center)
|
mapHelper.calculateSmallCircleRadius(map.center)
|
||||||
}
|
}
|
||||||
|
property geoCoordinate startCentroid
|
||||||
|
startCentroid: newCenter
|
||||||
|
|
||||||
|
PinchHandler {
|
||||||
|
id: pinch
|
||||||
|
target: null
|
||||||
|
onActiveChanged: if (active) {
|
||||||
|
map.startCentroid = map.toCoordinate(pinch.centroid.position, false)
|
||||||
|
}
|
||||||
|
onScaleChanged: (delta) => {
|
||||||
|
map.zoomLevel += Math.log2(delta)
|
||||||
|
map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position)
|
||||||
|
}
|
||||||
|
onRotationChanged: (delta) => {
|
||||||
|
map.bearing -= delta
|
||||||
|
map.alignCoordinateToPoint(map.startCentroid, pinch.centroid.position)
|
||||||
|
}
|
||||||
|
grabPermissions: PointerHandler.TakeOverForbidden
|
||||||
|
}
|
||||||
|
WheelHandler {
|
||||||
|
id: wheel
|
||||||
|
// workaround for QTBUG-87646 / QTBUG-112394 / QTBUG-112432:
|
||||||
|
// Magic Mouse pretends to be a trackpad but doesn't work with PinchHandler
|
||||||
|
// and we don't yet distinguish mice and trackpads on Wayland either
|
||||||
|
acceptedDevices: Qt.platform.pluginName === "cocoa" || Qt.platform.pluginName === "wayland"
|
||||||
|
? PointerDevice.Mouse | PointerDevice.TouchPad
|
||||||
|
: PointerDevice.Mouse
|
||||||
|
rotationScale: 1/120
|
||||||
|
property: "zoomLevel"
|
||||||
|
}
|
||||||
|
DragHandler {
|
||||||
|
id: drag
|
||||||
|
target: null
|
||||||
|
onTranslationChanged: (delta) => map.pan(-delta.x, -delta.y)
|
||||||
|
}
|
||||||
|
|
||||||
MapItemView {
|
MapItemView {
|
||||||
id: mapItemView
|
id: mapItemView
|
||||||
|
@ -67,7 +100,9 @@ Item {
|
||||||
}
|
}
|
||||||
MouseArea {
|
MouseArea {
|
||||||
drag.target: (mapHelper.editMode && model.isSelected) ? mapItem : undefined
|
drag.target: (mapHelper.editMode && model.isSelected) ? mapItem : undefined
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
|
hoverEnabled: true
|
||||||
|
|
||||||
onClicked: {
|
onClicked: {
|
||||||
if (!mapHelper.editMode && model.divesite)
|
if (!mapHelper.editMode && model.divesite)
|
||||||
mapHelper.selectedLocationChanged(model.divesite)
|
mapHelper.selectedLocationChanged(model.divesite)
|
||||||
|
@ -122,8 +157,8 @@ Item {
|
||||||
|
|
||||||
MouseArea {
|
MouseArea {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
onPressed: { map.stopZoomAnimations(); mouse.accepted = false }
|
onPressed: (mouse) => { map.stopZoomAnimations(); mouse.accepted = false }
|
||||||
onWheel: { map.stopZoomAnimations(); wheel.accepted = false }
|
onWheel: (wheel) => { map.stopZoomAnimations(); wheel.accepted = false }
|
||||||
onDoubleClicked: map.doubleClickHandler(map.toCoordinate(Qt.point(mouseX, mouseY)))
|
onDoubleClicked: map.doubleClickHandler(map.toCoordinate(Qt.point(mouseX, mouseY)))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,20 +4,20 @@
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QVector>
|
#include <QVector>
|
||||||
|
|
||||||
#include "qmlmapwidgethelper.h"
|
|
||||||
#include "core/divefilter.h"
|
#include "core/divefilter.h"
|
||||||
#include "core/divelist.h"
|
#include "core/divelist.h"
|
||||||
#include "core/divelog.h"
|
#include "core/divelog.h"
|
||||||
#include "core/divesite.h"
|
#include "core/divesite.h"
|
||||||
#include "core/qthelper.h"
|
#include "core/qthelper.h"
|
||||||
#include "core/range.h"
|
#include "core/range.h"
|
||||||
#include "qt-models/maplocationmodel.h"
|
#include "qmlmapwidgethelper.h"
|
||||||
#include "qt-models/divelocationmodel.h"
|
#include "qt-models/divelocationmodel.h"
|
||||||
|
#include "qt-models/maplocationmodel.h"
|
||||||
#ifndef SUBSURFACE_MOBILE
|
#ifndef SUBSURFACE_MOBILE
|
||||||
#include "desktop-widgets/mapwidget.h"
|
#include "desktop-widgets/mapwidget.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define SMALL_CIRCLE_RADIUS_PX 26.0
|
#define SMALL_CIRCLE_RADIUS_PX 26.0
|
||||||
|
|
||||||
MapWidgetHelper::MapWidgetHelper(QObject *parent) : QObject(parent)
|
MapWidgetHelper::MapWidgetHelper(QObject *parent) : QObject(parent)
|
||||||
{
|
{
|
||||||
|
@ -44,7 +44,7 @@ void MapWidgetHelper::centerOnDiveSite(struct dive_site *ds)
|
||||||
} else {
|
} else {
|
||||||
// dive site with GPS
|
// dive site with GPS
|
||||||
m_mapLocationModel->setSelected(ds);
|
m_mapLocationModel->setSelected(ds);
|
||||||
QGeoCoordinate dsCoord (ds->location.lat.udeg * 0.000001, ds->location.lon.udeg * 0.000001);
|
QGeoCoordinate dsCoord(ds->location.lat.udeg * 0.000001, ds->location.lon.udeg * 0.000001);
|
||||||
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(dsCoord)));
|
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(dsCoord)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,7 @@ void MapWidgetHelper::centerOnSelectedDiveSite()
|
||||||
// find the most top-left and bottom-right dive sites on the map coordinate system.
|
// find the most top-left and bottom-right dive sites on the map coordinate system.
|
||||||
qreal minLat = 0.0, minLon = 0.0, maxLat = 0.0, maxLon = 0.0;
|
qreal minLat = 0.0, minLon = 0.0, maxLat = 0.0, maxLon = 0.0;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
for(struct dive_site *dss: selDS) {
|
for (struct dive_site *dss : selDS) {
|
||||||
if (!has_location(&dss->location))
|
if (!has_location(&dss->location))
|
||||||
continue;
|
continue;
|
||||||
qreal lat = dss->location.lat.udeg * 0.000001;
|
qreal lat = dss->location.lat.udeg * 0.000001;
|
||||||
|
@ -92,7 +92,7 @@ void MapWidgetHelper::centerOnSelectedDiveSite()
|
||||||
// Pass coordinates to QML, either as a point or as a rectangle.
|
// Pass coordinates to QML, either as a point or as a rectangle.
|
||||||
// If we didn't find any coordinates, do nothing.
|
// If we didn't find any coordinates, do nothing.
|
||||||
if (count == 1) {
|
if (count == 1) {
|
||||||
QGeoCoordinate dsCoord (selDS[0]->location.lat.udeg * 0.000001, selDS[0]->location.lon.udeg * 0.000001);
|
QGeoCoordinate dsCoord(selDS[0]->location.lat.udeg * 0.000001, selDS[0]->location.lon.udeg * 0.000001);
|
||||||
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(dsCoord)));
|
QMetaObject::invokeMethod(m_map, "centerOnCoordinate", Q_ARG(QVariant, QVariant::fromValue(dsCoord)));
|
||||||
} else if (count > 1) {
|
} else if (count > 1) {
|
||||||
QGeoCoordinate coordTopLeft(minLat, minLon);
|
QGeoCoordinate coordTopLeft(minLat, minLon);
|
||||||
|
@ -134,7 +134,7 @@ void MapWidgetHelper::selectedLocationChanged(struct dive_site *ds_in)
|
||||||
return;
|
return;
|
||||||
QGeoCoordinate locationCoord = location->coordinate;
|
QGeoCoordinate locationCoord = location->coordinate;
|
||||||
|
|
||||||
for (auto [idx, dive]: enumerated_range(divelog.dives)) {
|
for (auto [idx, dive] : enumerated_range(divelog.dives)) {
|
||||||
struct dive_site *ds = dive->dive_site;
|
struct dive_site *ds = dive->dive_site;
|
||||||
if (!ds || !ds->has_gps_location())
|
if (!ds || !ds->has_gps_location())
|
||||||
continue;
|
continue;
|
||||||
|
@ -151,9 +151,9 @@ void MapWidgetHelper::selectedLocationChanged(struct dive_site *ds_in)
|
||||||
}
|
}
|
||||||
int last; // get latest dive chronologically
|
int last; // get latest dive chronologically
|
||||||
if (!selectedDiveIds.isEmpty()) {
|
if (!selectedDiveIds.isEmpty()) {
|
||||||
last = selectedDiveIds.last();
|
last = selectedDiveIds.last();
|
||||||
selectedDiveIds.clear();
|
selectedDiveIds.clear();
|
||||||
selectedDiveIds.append(last);
|
selectedDiveIds.append(last);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
emit selectedDivesChanged(selectedDiveIds);
|
emit selectedDivesChanged(selectedDiveIds);
|
||||||
|
@ -162,7 +162,7 @@ void MapWidgetHelper::selectedLocationChanged(struct dive_site *ds_in)
|
||||||
void MapWidgetHelper::selectVisibleLocations()
|
void MapWidgetHelper::selectVisibleLocations()
|
||||||
{
|
{
|
||||||
QList<int> selectedDiveIds;
|
QList<int> selectedDiveIds;
|
||||||
for (auto [idx, dive]: enumerated_range(divelog.dives)) {
|
for (auto [idx, dive] : enumerated_range(divelog.dives)) {
|
||||||
struct dive_site *ds = dive->dive_site;
|
struct dive_site *ds = dive->dive_site;
|
||||||
if (!ds || ds->has_gps_location())
|
if (!ds || ds->has_gps_location())
|
||||||
continue;
|
continue;
|
||||||
|
@ -171,7 +171,7 @@ void MapWidgetHelper::selectVisibleLocations()
|
||||||
QGeoCoordinate dsCoord(latitude, longitude);
|
QGeoCoordinate dsCoord(latitude, longitude);
|
||||||
QPointF point;
|
QPointF point;
|
||||||
QMetaObject::invokeMethod(m_map, "fromCoordinate", Q_RETURN_ARG(QPointF, point),
|
QMetaObject::invokeMethod(m_map, "fromCoordinate", Q_RETURN_ARG(QPointF, point),
|
||||||
Q_ARG(QGeoCoordinate, dsCoord));
|
Q_ARG(QGeoCoordinate, dsCoord));
|
||||||
if (!qIsNaN(point.x()))
|
if (!qIsNaN(point.x()))
|
||||||
#ifndef SUBSURFACE_MOBILE // indices on desktop
|
#ifndef SUBSURFACE_MOBILE // indices on desktop
|
||||||
selectedDiveIds.append(idx);
|
selectedDiveIds.append(idx);
|
||||||
|
@ -181,9 +181,9 @@ void MapWidgetHelper::selectVisibleLocations()
|
||||||
}
|
}
|
||||||
int last; // get latest dive chronologically
|
int last; // get latest dive chronologically
|
||||||
if (!selectedDiveIds.isEmpty()) {
|
if (!selectedDiveIds.isEmpty()) {
|
||||||
last = selectedDiveIds.last();
|
last = selectedDiveIds.last();
|
||||||
selectedDiveIds.clear();
|
selectedDiveIds.clear();
|
||||||
selectedDiveIds.append(last);
|
selectedDiveIds.append(last);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
emit selectedDivesChanged(selectedDiveIds);
|
emit selectedDivesChanged(selectedDiveIds);
|
||||||
|
@ -205,11 +205,11 @@ void MapWidgetHelper::calculateSmallCircleRadius(QGeoCoordinate coord)
|
||||||
{
|
{
|
||||||
QPointF point;
|
QPointF point;
|
||||||
QMetaObject::invokeMethod(m_map, "fromCoordinate", Q_RETURN_ARG(QPointF, point),
|
QMetaObject::invokeMethod(m_map, "fromCoordinate", Q_RETURN_ARG(QPointF, point),
|
||||||
Q_ARG(QGeoCoordinate, coord));
|
Q_ARG(QGeoCoordinate, coord));
|
||||||
QPointF point2(point.x() + SMALL_CIRCLE_RADIUS_PX, point.y());
|
QPointF point2(point.x() + SMALL_CIRCLE_RADIUS_PX, point.y());
|
||||||
QGeoCoordinate coord2;
|
QGeoCoordinate coord2;
|
||||||
QMetaObject::invokeMethod(m_map, "toCoordinate", Q_RETURN_ARG(QGeoCoordinate, coord2),
|
QMetaObject::invokeMethod(m_map, "toCoordinate", Q_RETURN_ARG(QGeoCoordinate, coord2),
|
||||||
Q_ARG(QPointF, point2));
|
Q_ARG(QPointF, point2));
|
||||||
m_smallCircleRadius = coord2.distanceTo(coord);
|
m_smallCircleRadius = coord2.distanceTo(coord);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -251,8 +251,8 @@ QString MapWidgetHelper::pluginObject()
|
||||||
{
|
{
|
||||||
QString lang = getUiLanguage().replace('_', '-');
|
QString lang = getUiLanguage().replace('_', '-');
|
||||||
QString cacheFolder = QString::fromStdString(system_default_directory() + "/googlemaps").replace("\\", "/");
|
QString cacheFolder = QString::fromStdString(system_default_directory() + "/googlemaps").replace("\\", "/");
|
||||||
return QStringLiteral("import QtQuick 2.0;"
|
return QStringLiteral("import QtQuick;"
|
||||||
"import QtLocation 5.3;"
|
"import QtLocation;"
|
||||||
"Plugin {"
|
"Plugin {"
|
||||||
" id: mapPlugin;"
|
" id: mapPlugin;"
|
||||||
" name: 'googlemaps';"
|
" name: 'googlemaps';"
|
||||||
|
@ -263,5 +263,6 @@ QString MapWidgetHelper::pluginObject()
|
||||||
" console.warn('MapWidget.qml: cannot find a plugin named: ' + name);"
|
" console.warn('MapWidget.qml: cannot find a plugin named: ' + name);"
|
||||||
" }"
|
" }"
|
||||||
" }"
|
" }"
|
||||||
"}").arg(lang, cacheFolder);
|
"}")
|
||||||
|
.arg(lang, cacheFolder);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,9 +13,17 @@ set -e
|
||||||
mkdir -p win32
|
mkdir -p win32
|
||||||
cd win32
|
cd win32
|
||||||
|
|
||||||
|
BUILD_EXTRA_ARGS="debug"
|
||||||
|
SMTK2SSRF_EXTRA_ARGS="-b debug"
|
||||||
|
if [[ "$1" == "-release" ]]; then
|
||||||
|
BUILD_EXTRA_ARGS=""
|
||||||
|
SMTK2SSRF_BUILD_EXTRA_ARGS="-b release"
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
# build Subsurface
|
# build Subsurface
|
||||||
export MXEBUILDTYPE=x86_64-w64-mingw32.shared
|
export MXEBUILDTYPE=x86_64-w64-mingw32.shared
|
||||||
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh installer
|
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh ${BUILD_EXTRA_ARGS} installer
|
||||||
|
|
||||||
# the strange two step move is in order to get predictable names to use
|
# the strange two step move is in order to get predictable names to use
|
||||||
# in the publish step of the GitHub Action
|
# in the publish step of the GitHub Action
|
||||||
|
@ -27,7 +35,7 @@ mv subsurface/"$fullname" ${OUTPUT_DIR}/"${fullname%.exe}-installer.exe"
|
||||||
|
|
||||||
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh -noftdi -nolibraw subsurface
|
bash -ex ../subsurface/packaging/windows/mxe-based-build.sh -noftdi -nolibraw subsurface
|
||||||
|
|
||||||
bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh -a -i
|
bash -ex ../subsurface/packaging/windows/smtk2ssrf-mxe-build.sh ${SMTK2SSRF_BUILD_EXTRA_ARGS} -a -i
|
||||||
|
|
||||||
# the strange two step move is in order to get predictable names to use
|
# the strange two step move is in order to get predictable names to use
|
||||||
# in the publish step of the GitHub Action
|
# in the publish step of the GitHub Action
|
||||||
|
|
|
@ -131,7 +131,6 @@ if [[ "$1" == "debug" ]] ; then
|
||||||
RELEASE="Debug"
|
RELEASE="Debug"
|
||||||
RELEASE_MAIN="Debug"
|
RELEASE_MAIN="Debug"
|
||||||
RELEASE_GM="debug"
|
RELEASE_GM="debug"
|
||||||
DLL_SUFFIX="d"
|
|
||||||
shift
|
shift
|
||||||
if [[ -f Release ]] ; then
|
if [[ -f Release ]] ; then
|
||||||
rm -rf *
|
rm -rf *
|
||||||
|
@ -141,7 +140,6 @@ else
|
||||||
RELEASE="Release"
|
RELEASE="Release"
|
||||||
RELEASE_MAIN="RelWithDebInfo"
|
RELEASE_MAIN="RelWithDebInfo"
|
||||||
RELEASE_GM="release"
|
RELEASE_GM="release"
|
||||||
DLL_SUFFIX=""
|
|
||||||
if [[ -f Debug ]] ; then
|
if [[ -f Debug ]] ; then
|
||||||
rm -rf *
|
rm -rf *
|
||||||
fi
|
fi
|
||||||
|
@ -281,9 +279,9 @@ done
|
||||||
|
|
||||||
# for some reason we aren't installing Qt5Xml.dll and Qt5Location.dll
|
# for some reason we aren't installing Qt5Xml.dll and Qt5Location.dll
|
||||||
# I need to figure out why and fix that, but for now just manually copy that as well
|
# I need to figure out why and fix that, but for now just manually copy that as well
|
||||||
EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Xml$DLL_SUFFIX.dll \
|
EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Xml.dll \
|
||||||
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Location$DLL_SUFFIX.dll \
|
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5Location.dll \
|
||||||
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5QmlWorkerScript$DLL_SUFFIX.dll"
|
$BASEDIR/"$MXEDIR"/usr/"$MXEBUILDTYPE"/qt5/bin/Qt5QmlWorkerScript.dll"
|
||||||
|
|
||||||
for f in $EXTRA_MANUAL_DEPENDENCIES
|
for f in $EXTRA_MANUAL_DEPENDENCIES
|
||||||
do
|
do
|
||||||
|
|
|
@ -124,12 +124,10 @@ else
|
||||||
fi
|
fi
|
||||||
case "$RELEASE" in
|
case "$RELEASE" in
|
||||||
debug|Debug) RELEASE=Debug
|
debug|Debug) RELEASE=Debug
|
||||||
DLL_SUFFIX="d"
|
|
||||||
[[ -f Release ]] && rm -rf ./*
|
[[ -f Release ]] && rm -rf ./*
|
||||||
touch Debug
|
touch Debug
|
||||||
;;
|
;;
|
||||||
release|Release) RELEASE=Release
|
release|Release) RELEASE=Release
|
||||||
DLL_SUFFIX=""
|
|
||||||
[[ -f Debug ]] && rm -rf ./*
|
[[ -f Debug ]] && rm -rf ./*
|
||||||
touch Release
|
touch Release
|
||||||
;;
|
;;
|
||||||
|
@ -175,7 +173,7 @@ $BASEDIR/mxe/usr/x86_64-w64-mingw32.shared/qt5/plugins/platforms"
|
||||||
|
|
||||||
# This comes from subsurface's mxe-based-build.sh. I'm not sure it is necessary
|
# This comes from subsurface's mxe-based-build.sh. I'm not sure it is necessary
|
||||||
# but, well, it doesn't hurt.
|
# but, well, it doesn't hurt.
|
||||||
EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/Qt5Xml$DLL_SUFFIX.dll"
|
EXTRA_MANUAL_DEPENDENCIES="$BASEDIR/mxe/usr/x86_64-w64-mingw32.shared/qt5/bin/Qt5Xml.dll"
|
||||||
|
|
||||||
STAGING_DIR=$BUILDDIR/smtk-import/staging
|
STAGING_DIR=$BUILDDIR/smtk-import/staging
|
||||||
|
|
||||||
|
|
|
@ -169,8 +169,9 @@ for package in "${PACKAGES[@]}" ; do
|
||||||
git_checkout_library breeze-icons $CURRENT_BREEZE_ICONS https://github.com/kde/breeze-icons.git
|
git_checkout_library breeze-icons $CURRENT_BREEZE_ICONS https://github.com/kde/breeze-icons.git
|
||||||
;;
|
;;
|
||||||
googlemaps)
|
googlemaps)
|
||||||
git_checkout_library googlemaps master https://github.com/Subsurface/googlemaps.git
|
#git_checkout_library googlemaps master https://github.com/Subsurface/googlemaps.git
|
||||||
;;
|
git_checkout_library googlemaps master https://github.com/vladest/googlemaps.git
|
||||||
|
;;
|
||||||
hidapi)
|
hidapi)
|
||||||
git_checkout_library hidapi master https://github.com/libusb/hidapi.git
|
git_checkout_library hidapi master https://github.com/libusb/hidapi.git
|
||||||
;;
|
;;
|
||||||
|
|
Loading…
Reference in a new issue