Commit graph

19762 commits

Author SHA1 Message Date
Michał Sawicz
d4a4ecfa99 snap: build on base: core22
Signed-off-by: Michał Sawicz <michal@sawicz.net>
2024-02-04 11:07:27 -08:00
Michał Sawicz
a6ac4f4599 snap: fix CI patch
Signed-off-by: Michał Sawicz <michal@sawicz.net>
2024-02-03 19:23:10 -08:00
Michał Sawicz
b9cf51bfad snap: don't use git for subsurface source
We miss the dummy release files otherwise.

Signed-off-by: Michał Sawicz <michal@sawicz.net>
2024-02-03 19:23:10 -08:00
Michał Sawicz
e2ca662502 snap: rebuild candidate, too
Signed-off-by: Michał Sawicz <michal@sawicz.net>
2024-02-03 19:23:10 -08:00
Michał Sawicz
d04c9785b6 snap: use the rolling release version
Signed-off-by: Michał Sawicz <michal@sawicz.net>
2024-02-03 19:23:10 -08:00
Michael Keller
9cdb9f7989 CICD: Add a File Containing the Release Title to CICD Releases.
Add a file containing the release title (derived from the pull request
title / commit message) to CICD releases - this is so that it will be
able to pick this up by the process updating the release pages on our
webserver, and show a list of the last few changes for each release.

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-31 15:18:21 -08:00
Michael Keller
94a7ba9097 Desktop: Fix the Generation of <switchmix> Elements in the UDDF Export.
Fix the generation of <switchmix> elements in the UDDF export.
Also change the ids of gasmixes to include the helium fraction, and
fractions of a percent, in order to make UDDF export suitable for
technical diving.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-30 04:21:11 -08:00
Dirk Hohndel
6318a983eb remove Ubuntu Lunar as build target (EOL)
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-29 15:11:33 -08:00
Richard Fuchs
330fd2309b downloader: call Command::init()
Otherwise we may end up crashing in Command::execute() due to null
undoStack.

Signed-off-by: Richard Fuchs <dfx@dfx.at>
2024-01-28 12:00:32 -08:00
Richard Fuchs
1952d1c187 downloader: check for parsing failure
Don't continue if the dive log could not be loaded. Otherwise we end up
writing out an empty dive log.

Signed-off-by: Richard Fuchs <dfx@dfx.at>
2024-01-28 12:00:32 -08:00
Richard Fuchs
0ee5c8f03a downloader: use global divelog object
The save_dives() function saves dives from the global divelog object.
Use the same object when calling parse_file() so that we don't end up
with an empty output log file.

Signed-off-by: Richard Fuchs <dfx@dfx.at>
2024-01-28 12:00:32 -08:00
Richard Fuchs
caf2f8c102 core: return error from parsing failure
If the XML document could not be parsed then `root_element` will come
out as NULL. Check this before trying to dereference it.

Signed-off-by: Richard Fuchs <dfx@dfx.at>
2024-01-28 12:00:32 -08:00
Michael Keller
fb41999c73 Mobile: Fix Gradient Factor Preference Setting.
Fix the persisting and use of gradient factor preferences for dive
profiles in the mobile version.
Also rename the mobile backend gradient factor settings to make it
obvious that they are used by the (not currently enabled) planner.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-27 20:55:32 -08:00
Dirk Hohndel
a59d033278 fix annoying typo in Copr workflow
This prevented the release from being pushed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-27 20:12:33 -08:00
Dirk Hohndel
21095b18fc enable creating current releases for Ubuntu and Fedora
While for the other platforms we can simply copy our binaries (maybe
after signing them), for Fedora and Ubuntu we have to trigger fresh
builds.

The most logical way that I could think of to do this was to push the
same commit corresponding with the intended current release into a
branch named 'current' and have that trigger Copr and Launchpad builds
that post into our release repos.

So 'master' keeps moving forward, keeps creating new build numbers.
At some point we pick a build number that we want to be the next
'current' release. We then update the current branch to the commit that
corresponds to that build number and push the current branch which
triggers new builds in the correct repos on Copr and Launchpad.

This commit removes the silly 'push' argument from the make-package
scripts (after all, they are used to push those packages to the
respective build services) and instead use the branch name as argument
to those scripts - allowing us to pick which repo to push into.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-27 19:36:47 -08:00
Robert C. Helling
4fdaf3e8de Downloader: Install perl modules and set up environment
Signed-off-by: Robert C. Helling <helling@lmu.de>
2024-01-27 15:38:41 -08:00
transifex-integration[bot]
301059c6c9 Translate subsurface_source.ts in en_GB
100% translated source file: 'subsurface_source.ts'
on 'en_GB'.
2024-01-27 09:27:55 -08:00
transifex-integration[bot]
a0b8574beb
Translate subsurface_source.ts in es_ES
100% translated source file: 'subsurface_source.ts'
on 'es_ES'.
2024-01-27 06:56:51 +00:00
transifex-integration[bot]
129a7fbf59
Translate subsurface_source.ts in es_ES
100% translated source file: 'subsurface_source.ts'
on 'es_ES'.
2024-01-27 06:52:02 +00:00
transifex-integration[bot]
3cc5ec5c50
Translate subsurface_source.ts in es_ES
100% translated source file: 'subsurface_source.ts'
on 'es_ES'.
2024-01-27 06:51:17 +00:00
transifex-integration[bot]
3b20cda602
Translate subsurface_source.ts in es_ES
100% translated source file: 'subsurface_source.ts'
on 'es_ES'.
2024-01-27 06:50:12 +00:00
Dirk Hohndel
9779ac3661 Update translation source strings
[skip ci]

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-26 12:57:11 -08:00
transifex-integration[bot]
62cc7ad69b Translate translations/subsurface_source.ts in ca
100% translated source file: 'translations/subsurface_source.ts'
on 'ca'.
2024-01-25 18:16:08 -08:00
Dirk Hohndel
3eb5ea9adf desktop: add password reset to cloud preferences
This must be the number one support request we get. I can't believe we never
thought of adding a button to do this.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-25 10:42:48 -08:00
Michael Keller
84e8937787 Documentation: Restructure the 'CONTRIBUTING.md' Page.
Restructure 'CONTRIBUTING.md' to show the different ways to contribute
more clearly, and to add a specific section about joining the
contributors' community.

[skip ci]

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-23 17:29:23 -08:00
Robert C. Helling
e794efaba6 Allow for more O2 sensors
The Divesoft Liberty has four O2 sensors. So far, we had a hard coded
limit of three sensors and crashed with a failed assert when we
encoutered more than three. This allows for up to
MAX_O2_SENSORS which is currently 6. The voting logic is adapted
accordingly: We sort the values and we keep deleting the values that
differ more than 20% by value from the closest. This follows what
Shearwater implements on their computers.

In some of the import/export functions the value is still hard
coded to 6 thanks to explicit field names.

Signed-off-by: Robert C. Helling <helling@lmu.de>
2024-01-23 19:24:53 +01:00
Richard Fuchs
e00e1bb9f7 Downloader: fix segfault
With no files given and no config present, the downloader segfaults due
to empty `files`. Print a message instead.

Signed-off-by: Richard Fuchs <dfx@dfx.at>
2024-01-23 10:08:21 -08:00
Michael Keller
05ef933ff7 CICD: Move Windows Build to New Container.
Move the GitHub Action that builds the Windows artefacts to use the new
subsurface/mxe-build:3.1.0 container.
Also rename references to the old container in scripts and
documantation.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-24 00:05:26 +13:00
Michael Keller
89506d9782 Update libdivecomputer to latest on Subsurface-DS9.
Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-23 11:10:02 +13:00
Dirk Hohndel
bd1763680e Ubuntu: remove obsolete dependency
It appears that this dependency is no longer provided (as of Mantis), but also
no longer needed (as a build without it appears to completed). Let's see if
that fixes our Mantis build issue.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-21 13:37:33 -08:00
Michael Keller
c1bfded4a7 CICD: Add GitHub Action to build the Windows (MXE) Builder Docker Image.
Add a GitHub action that builds the docker image to run builds for the
Windows (MXE) version of Subsurface.
Also update the MXE image Dockerfile to the latest version of MXE, and
add a patch to use a current version of mdbtools.
Configure GitHub actions that do not build docker images to not trigger
on changes to the contents of `scripts/docker/`.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-20 21:30:12 -08:00
Simeon
eea75fc1c4 Removed section about GPS recording from user-manual
The GPS tracker functionality was removed from Subsurface-Mobile a while ago. This commit changes the documentation to reflect the current state of the Subsurface-Mobile application.

Reported-by: Simeon Geiger
Signed-off-by: Simeon Geiger <simeon.geiger@gmail.com>
2024-01-20 09:38:22 -08:00
Simeon
24c1cb5b09 Update to use AUTOMOC
When trying to build the integrated user manual,
the linker stopped with the error message "undefined reference to vtable ...".
This is a subtle bug, connected to the qt preprocessor MOC.
Adding "set(CMAKE_AUTOMOC ON)" to the desktop-widgets/CMakeLists.txt fixed the problem.

For more information, see:
https://github.com/bincrafters/community/issues/466
https://cmake.org/cmake/help/latest/prop_tgt/AUTOMOC.html

Signed-off-by: Simeon Geiger <simeon.geiger@gmail.com>
2024-01-20 09:38:22 -08:00
Jason Bramwell
9e2f7571f9 Removing reference to qt5-default for Raspberry Pi
Signed-off-by: Jason Bramwell <jb2cool@gmail.com>
2024-01-20 08:04:38 -08:00
Michael Keller
6dd5922d15 CICD: Improve the Android Docker Image Build.
Introduce proper reuse of intermediary stages in the multi-stage build.

Signed-off-by: Michael Keller <github@ike.ch>
2024-01-19 16:14:35 -08:00
Berthold Stoeger
bef21ff5eb code consistency: replace qMin/qMax by std::min/std::max
We use the latter pretty consistently, so let's remove the few
left instances of the former.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-17 14:23:19 -08:00
Berthold Stoeger
429230ced1 saving: fix resource leak found by coverity
fp_get_data() returns a copy of a string that must be freed.
Fix this in save-git.c. The analogous function in save-xml.c
has already been fixed. However, change the code to be more
idiomatic: since we own the pointer, make it "char *" instead
of "const char *". Then we don't have to cast on free().

Ultimately, we really should change string manipulation code
to C++.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-17 14:23:19 -08:00
Berthold Stoeger
91e4fb4769 cleanup: more Coverity silencing
Mostly irrelevant std::move() stuff of copy-on-write Qt objects,
a few real bugs, a timestamp_t downconversion and some codingsyle
adaptation.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-17 14:23:19 -08:00
Berthold Stoeger
35ff6eea35 desktop: block signals when setting combobox-indexes
On the InformationTab a signal is emitted when programatically
setting the index of the dive mode combobox which in turn then
edits the dive.

Usually not a problem, because the editing code realizes that
the value is not changed. It is however a problem when multiple
dives are selected.

Therefore, block the signals when setting the index. Same for
the other comboboxes on the same page.

Fixes #3960.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-16 14:52:36 -08:00
Berthold Stoeger
bdade9e499 planner: initialize subobject of PlannerWidgets in correct order
The DivePlannerWidget was initialized before the planner models.
However, it attaches these (non existing) models to the comboboxes.
That can't work. Initialize in correct order.

Fixes #4014

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-16 14:22:16 -08:00
Berthold Stoeger
13b894a756 gases: fill result of isobaric_counterdiffusion() on early return
If prefs.show_icd is false, this function does nothing, but
the output parameter is checked by the calling function
DiveEventItem::setupToolTipString().

Let's reset the strucvture to 0.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-16 14:22:16 -08:00
Michael Keller
4bab38b8df CICD: Make it Possible to Run CICD Builds in a Fork.
Use the project name to resolve the target repository to create the release in.

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-15 19:53:54 -08:00
Dirk Hohndel
2db8b51eed build-system: missed one release note mention without .md
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-15 17:42:03 -08:00
Michael Keller
6c8afabedf CICD: Improve the Release Note Generation
Use .md suffix to get the files displayed as markdown.
Ignore generated artefacts.

Signed-off-by: Michael Keller <mikeller@042.ch>
2024-01-15 17:32:57 -08:00
Berthold Stoeger
249b82f6dc pictures: make delta-time a 64-bit int
When adjusting picture times, the offset in seconds is stored in a
32-bit int. Make it a 64-bit int. Sounds crazy, because why would
you want to move the pictures by more than 70 years?

Well, suppose it is the year 2039, for some strange reason your
camera was set to unix epoch and you want to adjust the pictures
to current time.

Ok - that's a far-fetched scenario. The real reason is that this
hopefully silences a Coverity warning and avoids integer casting.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-15 15:11:36 -08:00
Berthold Stoeger
8a3a0edb83 cleanup: silence std::move()-related Coverity warnings
Unfortunately Coverity doesn't understand that most Qt data
structures are copy-on-write. It's a mis-feature of Qt, but
it is the way it is. Thus, passing by value is not an issue.

Out of ca. 25 warnings only two were legit. Let's silence
the others by either std::move()ing or passing by reference,
as would be idiomatic C++, which Qt is not.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-15 15:11:36 -08:00
Alexander Wilms
ac0d44bccf Update AppStream metainfo
Add more information to metainfo file and update it to the AppStream 1.0
standard

* Added screenshot caption, more URLs and a <launchable/> tag
* Replaced <developer_name/> with <developer/>

Now the file conforms to the AppStream 1.0 specification

Signed-off-by: Alexander Wilms <f.alexander.wilms@gmail.com>
2024-01-14 15:59:29 -08:00
Alexander Wilms
c92ebd1f3b Change AppStream metainfo file extension and path
The legacy /usr/share/appdata/*.appdata.xml path has been superseded by
/usr/share/metainfo/*.metainfo.xml

https://freedesktop.org/software/appstream/docs/chap-Metadata.html#spec-component-location

Signed-off-by: Alexander Wilms <f.alexander.wilms@gmail.com>
2024-01-14 15:59:29 -08:00
Berthold Stoeger
798e426926 cleanup: fix enum in profile.c
There are two enums related to the type of dive.
There is the global

enum divemode_t {OC, CCR, PSCR, FREEDIVE, NUM_DIVEMODE,
                 UNDEF_COMP_TYPE};

and the anonymous

enum {AIR, NITROX, TRIMIX, FREEDIVING} dive_type;

in struct plot_info.

In profile.c FREEDIVE (of divemode_t) is assigned to dive_type.
This only works because by chance(?) FREEDIVE and FREEDIVING are
the fourth element of each enum.

Fix this. C truly is a bad language when it comes to types
(very weak) and namespaces (non existing).

Contains whitespace fix.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2024-01-13 09:14:32 -08:00
Dirk Hohndel
1b7daeee22 CICD: improve release notice
This should make it clearer what the various files are. I wish we could sort by
file extension.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2024-01-12 14:17:39 -08:00