aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2020-04-25build-system/Android: use install-qt.sh to install QtGravatar Dirk Hohndel
The official installer now requires the user to log in which we can't really do in a scripted manner. Let's see how long this way of installing things will be available. While doing this remove an ancient hack of some Qt settings that we no longer need. This also tries to prune some things that we don't need in the Docker image to reduce image size. The mapbox plugin is removed as it would add a dependency to QtSql which we otherwise don't need. And since the plugin isn't used, no point in installing it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: create standalone toolchain in wrapper scriptGravatar Dirk Hohndel
This way when we build the android build container, the correct toolchain is already in place. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: update some dependency versionsGravatar Dirk Hohndel
Qt 5.13.2 fixes a few bugs. We are NOT switching to Qt 5.14 as that breaks a ton of things with Android support. At this point even with qmake it near impossible to get working Android binaries, no one appears to have a solution for cmake. With qt-android-cmake current master fixes the problem that held us back at the earlier commit, so let's go back to using master. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: remove no longer supported Qt versionsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25build-system/Android: don't bundle the user manualGravatar Dirk Hohndel
That wouldn't work, anyway. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25maps: disable link to Google maps on iOS and AndroidGravatar Dirk Hohndel
It appears that on those two platforms you now need a paid API key in order to have this feature work. Certainly not something I'm going to do. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-25map: remove selectedDivesChangedGravatar Berthold Stoeger
The qml-widget seems to catch selectedDivesChanged signals of the MapWidgetHelper and reemit them. However, there seems to be nobody listening to this signal? Let's remove this for now to make debugging of the signals easier. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-25desktop: remove selectionChangeDone() from DiveListView::selectDive()Gravatar Berthold Stoeger
This was erroneous, as it should only be called at the end of a selection change, not after every single dive. It made selection of multiple dives extremely slow. Reported-by: Jan Mulder <jlmulder@xs4all.nl> Debugged-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-25desktop: fold DiveListView::selectDive into DiveListView::selectDiveGravatar Berthold Stoeger
DiveListView::selectDive() is an overloaded function. The second version was only called by the first version, so we can fold one into the other. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-25desktop: remove scrollto default parameter of DiveListView::selectDive()Gravatar Berthold Stoeger
No caller was using that parameter. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-25desktop: remove selection-code to select a new current_diveGravatar Berthold Stoeger
The undo-machinery makes sure that a current_dive always exists after an undo command. This part of the code should never be called. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-25desktop: don't select current dive after collapsing tripsGravatar Berthold Stoeger
This appears to be an artifact. Collapsing does not unselect the current dive, so reselecting it appears pointless. Also it is unclear why the selection should be restricted to a single dive after collapsing. Probably that was originally meant to expand only the trip with the current dive in it? Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-25desktop: make DiveListView::selectDive() privateGravatar Berthold Stoeger
Thus, it is made clear that these member functions can only be accessed from DiveListView itself. This should make debugging easier. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-24cleanup: move clearing of event names to clear_dive_file_data()Gravatar Berthold Stoeger
Move this to the core so that desktop and mobile don't have to call this explicitly. Matter of fact, mobile didn't call this. It is unclear, whether that was even used on mobile, though. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-24cleanup: move clearing of device nodes to clear_dive_file_data()Gravatar Berthold Stoeger
It makes no sense to keep the device nodes if all the other data is cleared. Let's do this automatically and not explicitly. This ensures that the function is also called on mobile. Currently it was only called on desktop. Weirdly, the parser-tests were expecting that the device nodes were not reset by clear_dive_file_data() and therefore divecomputers were accumulating in the test results. Thus, the additional computers had to be removed from the expected test results. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-24cleanup: whitespace fixGravatar Berthold Stoeger
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-24cleanup: move get_dc_nickname from qthelper.cpp to divecomputer.cppGravatar Berthold Stoeger
1) qthelper is already huge. 2) set_dc_nickname et al. is already there. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-24filter: add a week to maximum default date timeGravatar Berthold Stoeger
The filter sets the maximum date to now. This is so confusing when you manually add a dive and it isn't shown, because it is slightly in the future. Add seven days, that should help. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-24filter: implement filtering for divemodeGravatar Berthold Stoeger
This only checks the first divecomputer as the semantics for multiple dive computers with different dive modes are not clear. Should we check them all? The implementation is a bit hackish: the indexes [0...n] of the combobox are mapped onto [-1...n-1], where -1 means don't filter and n-1 is the last valid dive mode. Implements #2329 Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-21cleanup: replace constructs of the type &vector[0] by vector.data()Gravatar Berthold Stoeger
It appears that some misguided compiler / library combinations crash on &vector[0] for empty vectors. Even though very unfriendly, they are technically correct, so let's remove these constructs. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-21desktop: don't access first data element if no cylindersGravatar Berthold Stoeger
TabDiveInformation::updateProfile() does some statistics via the per_cylinder_mean_depth function. It passes down arrays with one entry per cylinder, which are allocated by means std::vector. To pass the array, the expression "&vector[0]" is used. It seems like some compilers through an assertion violation if vector has no elements. They are technically correct in that this is undefined, but still this appears like very unfriendly behavior. After all, std::vector should behave just like a dynamic C-array that is automatically freed, when going out of scope. Replace the "&vector[0]" by "vector.data()" and don't do the call if there aren't any cylinders for good measure. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-20core: return -1 from explicit_first_cylinder() if dive has no cylindersGravatar Berthold Stoeger
Arguably, returning 0 for a dive with no cylinders is wrong, since the 0 is a valid cylinder id, however that cylinder doesn't exist. Instead, return -1. All callers of explicit_first_cylinder() return early anyway for dives with no cylinders. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-20profile: avoid invalid accesses in setup_gas_sensor_pressureGravatar Berthold Stoeger
Since we removed MAX_CYLINDERS, we have the possibility of dives with no cylinders. In such a case, setup_gas_sensor_pressure() would do invalid read- and write-accesses. Therefore, return early in such a case. Reported-by: Chirana Gheorghita Eugeniu Theodor <office@adaptcom.ro> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-20desktop: rearrange widgets on the dive site tabGravatar Berthold Stoeger
Move the more commonly used filter to the left and the less commonly used "purge unused sites" button to the right. Add a spacer so that the filter-textbox doesn't extend over the whole free space. With apologies to sinistroverse users (is there an option to make the layout direction depend on the locale?). Suggested-by: Hartley Horwitz <hhrwtz@gmail.com> Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2020-04-19maps: show the dive site when opening Google mapGravatar Dirk Hohndel
I'm not sure if Google used to show the POI marker at the center location in the past or if this is actually a new feature. Either way this appears to do the right thing in my testing. Note that we need a 'plus' to connect the point of interest cooridnates, but a 'comma' to connect the map center coordinates. Reported-by: Chirana Gheorghita Eugeniu Theodor <office@adaptcom.ro> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-19desktop: remove user surveyGravatar Dirk Hohndel
We have never made good use of the results. Let's just remove it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-19documentation: update bundled HTML user manualGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-19build-system: cleanup Ubuntu/Debian scriptGravatar Dirk Hohndel
This code block was also for the OBS builds and is no longer needed now that we have to separate make-package scripts. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-19[smtk-import] Fix useless NULL check and white space issuesGravatar Salvador Cuñat
As commented by Berthold and Dirk for previous patches. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2020-04-19[smtk-import] add some sanity checksGravatar Salvador Cuñat
Under some circustances values stored in this arrays may be NULL or even previously freed. Check them to avoid further crashes. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2020-04-19[smtk-import] Do not create cylinders structure before libdc parsingGravatar Salvador Cuñat
The d->cylinders created will be overriden by libdivecomputer parsing, resulting in 0, 1 , may be 2 cylinders depending on DC data. This is not what we want when importing a divelog, because we will miss all hand entered tanks. BTW, using get_cylinder() on tank number bigger than created, results in a NULL pointer and a crash. As we can't foresee how many tanks (or even it's positional numbers in log) a diver has used, the full 10 tanks supported by SmarTrak can be easily created and parsed using get_or_create_cylinder(), and unused cleaned later. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2020-04-19Change to user-manual (Dive export)Gravatar willemferguson
This brings the user manual in line with the recent changes to the layout of the export panel. Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za>
2020-04-19build-system: simplify and clean up OBS make-package scriptGravatar Dirk Hohndel
The previous version wasn't quite ready for prime time. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-19build-system: remove OBS support from Ubuntu/Debian scriptsGravatar Dirk Hohndel
This feels much cleaner. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-19build-system: create separate OBS make-packageGravatar Dirk Hohndel
It seemed very odd to have those steps mixed in with the Ubuntu/Debian instructions. Yes, there is a bunch of overlap, but this seems much cleaner. This also updates the spec files to something that works for the current sources. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18cleanup: fix image reference in Android READMEGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18mobile: update version to 3.0.5Gravatar Dirk Hohndel
I keep forgetting to do that right after a release. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: update Ubuntu/Debian package scriptGravatar Dirk Hohndel
This cleans up a lot of the ancient mess in that file. It's still confusingly usable to push sources to OBS as well (but that's now hidden behind an option) and it is still somewhat custom-made for me, but it should be much easier to reuse for others now. In addition to Subsurface and libdivecomputer we are inclooding the googlemaps sources and libgit2 1.0.0 sources. Bionic is the only remaining distro that we support that doesn't have a new enough version of libgit2 (0.26 is the minimum we expect), but since we are linking statically against it, maybe it's best to simply force all of these builds to include libgit2 1.0.0. Handling of the debian/* files in the script has been changed quite a bit to make it easier for others to create a working setup. It now updates all of the files with the exception of the changelog files from the sources we are building from. I am hoping that this will be a not-so-subtle incentive for me to keep the bundled versions up to date. Since we no longer do beta releases, I removed that part from the file. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: remove references to docs we no longer shipGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: silence one more warning for Ubuntu/Debian buildsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: get ready for switching to libgit2 1.0Gravatar Dirk Hohndel
We want to build this against its own regex package to avoid adding more system dependencies. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: add missing dependencies for Ubuntu/Debian buildGravatar Dirk Hohndel
And acknowledge the current file format standard. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: update copyright years in Ubuntu/Debian filesGravatar Dirk Hohndel
And remove an optional entry (which we would have to keep changing otherwise). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18build-system: add valid Ubuntu/Debian changelog fileGravatar Dirk Hohndel
We don't want to try to track every change to this file in our source repo, so this starting point is as goos as any. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18Reorganise and reword divelog export panelGravatar willemferguson
Perform slight reorganisation and rewording of the divelog export panel. Specifically the wording is changed and expanded to make clear the 2 types of export of profile data. All the CSV export options are grouped together. With respect to profile export to CSV format, it is made clear that one option concerns export of dive computer-related profile data, whereas the other option involves export of computed dive profile data from the Dive Profile panel. Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za>
2020-04-18Changes to user manual for version 4.9.4Gravatar willemferguson
Six images are changed and several changes are made to the text of the user manual Signed-off-by: willemferguson <willemferguson@zoology.up.ac.za>
2020-04-18update CHANGELOGGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18core: debug cert callsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18core: bring back libgit2 certificate callbackGravatar Dirk Hohndel
Turns out that at least on Android libgit2 sometimes rejects valid certificates. And I cannot quite figure out when and why. But since we actually already checked the validity of the certificate when we called canReachCloudServer() (and the Qt code handles certificates correctly), we'll simply ignore this here and override the check to always return true for our cloud server. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2020-04-18debug output: ensure our debug output is captured on AndroidGravatar Dirk Hohndel
I would have bet money that Android used to send stderr to the logcat log, but apparently it doesn't (anymore?). So in order to be able to have a chance to debug weird cloud storage issues on Android, let's do some wholesale replacement of fprintf(stderr,...) with our own version of the INFO macro that we long ago borrowed from libdivecomputer (and rename it to ensure we don't have a conflict there). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>