summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2018-02-07Update to latest libdcGravatar Dirk Hohndel
This should fix the Shearwater download bug that I introduced to the Subsurface-branch of libdivecomputer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-02-07Fixed typos in russian translation of manual.Gravatar Roman Romanchuk
Signed-off-by: Roman Romanchuk <roman.romanchuk@me.com>
2018-02-07Cleanup: unserialize loading of picturesGravatar Berthold Stoeger
The images to load are kept in a set to avoid multiple loading of the same picture. The set was protected with a mutex. Problem: the mutex was not released before loading the picture, effectively serializing the loading of pictures. Therefore unlock the mutex once the set is updated. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-07Cleanup: remove unused typedefGravatar Berthold Stoeger
The type SHashedFilename defined in core/imagedownloader.h was not used anywhere. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-07Cleanup: Make local helpers and variables of static linkageGravatar Berthold Stoeger
In core/imagedownloader.cpp the helpers cloudImageUrl() and loadPicture() are made of static linkage. The global variables queuedPictures and pictureQueueMutex were moved into the loadPicture() function, because they are used only there. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-07Bugfix in plannermodel for very short dive durationsGravatar Oliver Schwaneberg
When adding a dive manually, you might clear the "duration" field and fill in your value by hand. Unfortunately, commit #1052 produced a bug that practically limited the dive duration to 6 minutes once the field was cleared. Signed-off-by: Oliver Schwaneberg <oliver.schwaneberg@gmail.com>
2018-02-06Cleanup: don't keep static variable of MainWindowGravatar Berthold Stoeger
MainWindow is a "singleton" and has an instance() member function. No point in keeping a second static pointer in subsurface-desktop-helper.cpp. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-06Cleanup: remove non-compiled includes in subsurface-desktop-helper.cppGravatar Berthold Stoeger
These includes where from a time when this file would be compiled for desktop *and* mobile. Now the file is desktop-only. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-04Update CHANGELOGGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-02-04downloadfromdivecomputer.cpp: remove unused variable err_stringGravatar Berthold Stoeger
This was a relict from Gtk days. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-04Cleanup: Remove redefinition of DC_TRANSPORT_BLUETOOTHGravatar Berthold Stoeger
This transport option was defined at a time where libdc didn't know anything about bluetooth. Nowadays, this enum is defined by libdc to a different value. Since it is never returned from libdc, not a problem at the moment. But this looks like a recipe for desaster, therefore let's just use the libdc version. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-02-04Do not remove seconds from duration input fieldGravatar Oliver Schwaneberg
This change deals with issue #554. If you enter a dive duration manually, the cell renderer cuts the seconds away when the changes are saved. I added the helper "render_seconds_to_string" as a counterpart to "parseDurationToSeconds". The helper keeps the seconds, if not null. The rendering of the cell is done at two places in the code, so I think it is cleaner to add a dedicated method for it. Signed-off-by: Oliver Schwaneberg <oliver.schwaneberg@gmail.com>
2018-02-03CHANGELOG.md: add missing changes before the releaseGravatar Lubomir I. Ivanov
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2018-02-02Free various struct membuffer in different functionsGravatar Stefan Fuchs
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2018-02-02Added relevant items to CHANGELOGGravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-02-02mobile: bump to version 2.0.3Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-02-02Update translation source stringsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-02-02Print icd data only when it is really neededGravatar Willem Ferguson
Reduce the impact and visibility of icd calculations by writing the data to the planner output only in cases where gas switches involve: 1) ascent 2) helium is used as part of breathing gas 3) gas switch results in an increase in partial pressure of nitrogen. Coding change: 1) The code for writing the header of the icd table as well as the inclusion of the data in the planner output is made conditional on the above three requirements. This involves moving the code that writes the table header into the function that writes an icd data item to buffer. 2) Manipulation of a boolean variable that controls writing of the table header to buffer and that also determines whether any icd results should be inluded in the planner results. 3) Reorganise comments so that there are not multiple tabs between the code and the start of a comment. Correct type and insert braces where important Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-02-02mobile cleanup: repair stupid mistakeGravatar Jan Mulder
Commits fed2c5b6a1 and 572fc4707 erroneously deleted two aliases. That is corrected here. Yes, QML with only runtime errors can be a pain. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31Update to latest libdivecomputerGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-01-31profile: replot handles while planningGravatar Jan Mulder
The settingsChanged() function of the profile widget tries to be clever and tries to prevent not needed replots of the profile. I'm not sure this is very relevant in the first place as change of settings are almost instantly, with or without replot. It appears that replot is always executed when there are calculated ceilings visible. But without calculated ceilings a replot is "optimized out". This does, however, introduce dangling divehandles in PLAN/EDIT and ADD mode of the profile, when any setting that influences the y-axis is changed. The fix is trivial. Just force a replot in the PLAN/EDIT and ADD modes. Fixes: #1070 Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31mobile: introduce simple private helper updateAllGlobalLists()Gravatar Jan Mulder
As we need to update our new stringlist models on multiple locations, just refactor them into a new function. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31mobile cleanup: restyle construction of locationlistGravatar Jan Mulder
See also e6e1473e6. The construction of the locationlist was not the same as the 3 previous lists, and it needs the inclusion of a new model file (divelocationmodel.cpp) in the mobile app. In addition, as the mobile app is mainly interested in a simple stringList (model) to populate a HintsText field (or maybe later a combobox), this stringlist is added to the model, to easy interfacing with QML. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31mobile cleanup: unduplicate code and do not loop over dives (3)Gravatar Jan Mulder
See e6e1473e6. Exact same commit but here for the list of divemaster. The careful reader will spot a small addition to the clearDetailsEdit() QML function. Two more field are cleared. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31mobile cleanup: unduplicate code and do not loop over dives (2)Gravatar Jan Mulder
See e6e1473e6. Exact same commit but here for the list of buddies. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31mobile cleanup: unduplicate code and do not loop over dives (1)Gravatar Jan Mulder
This is the first of a set of commits that are (very) similar. It appeared that a number of more or less static lists, which are constructed by a loop over all dives in the logbook, were executed when changing focus to a next dive. For example, the in this commit addressed list of used dive suits. What was wrong was that the suitList was linked to a dive. There is only a need to construct the list of used suits when data is changed (and obviously, once on startup of the app). Further, it appeared that a lot of code was duplicated and that we can use (in this case) the same code from the desktop completionmodels.cpp. Basically, this commit involves the following changes: - include completionmodels.cpp in mobile and desktop (so move it from the desktop only category to the generic category). - remove double code from DiveObjectHelper.cpp - Do not differentiate in the init phase and the normal refresh of the list - the per dive logic is now only the getting of a previously constructed list (in init or update of the divelist). There are no visible changes in the UI, other than a better performance when scrolling over dive details. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-31uemis: code refactoringGravatar Oliver Schwaneberg
- Variable max_deleted_seen had no effect and is removed. - Results of read/write operations are evaluated to assert success and to prevent compiler warnings. Signed-off-by: Oliver Schwaneberg <oliver.schwaneberg@gmail.com>
2018-01-31Make report_error() reentrantGravatar Berthold Stoeger
Remove the global error buffer and pass the error string directly to the frontend. The frontend is then responsible for accumulating errors. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-31Use error callback to log errors in QMLManagerGravatar Berthold Stoeger
Instead of manually logging errors after each potentially error-producing function, use the error-callback. The error texts are accumulated in the QMLManager object for further use. The text is transported to the QMLManager object via a queued connection. Thus, errors can be reported from other threads without having to deal with manual locking. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-31Remove unnecessary check for MainWindow instanceGravatar Berthold Stoeger
The error-callback is installed in the MainWindow constructor. Therefore, in the error-callback the existence of the MainWindow instance is guaranteed. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-31Use queued connection to thread-safe MainWindow error handlingGravatar Berthold Stoeger
Up to now, errors produced by threads were not directly shown in the MainWindow. Code running in the GUI thread had to manually show the errors. This can be simplified by using Qt's queued connection as message passing facility. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-31Make future_watcher a subobject of NotificationWidgetGravatar Berthold Stoeger
This was a raw pointer. No point in doing error-prone manual memory management. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-31uemis: Fix mapping of object_ids to dive numbersGravatar Oliver Schwaneberg
When performing a factory reset to an uemis, the object_ids within the divelog will not be reset. Nevertheless, the dive numbers are reset to 1. So, the first log will have a positive offset n to the first dive number. The uemis-downloader used the object_id from the logs as a start point for getDive, if dives were already synced before. This causes the sync to stall. I prevent this by subtracting the lowest object_id from the requested before using it as dive number. Signed-off-by: Oliver Schwaneberg <oliver.schwaneberg@gmail.com>
2018-01-29Correct the ftdi pid for Cressi devicesGravatar Anton Lundin
Way back in time there was a copy paste error in the Cressi pid. This corrects it. Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-01-27Use correct alias for satellite icon for revers geo lookupGravatar Stefan Fuchs
Bring back the satellite icon for the reverse geo lookup by using the correct alias name. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2018-01-27uemis: speed up synchronisation of same divesitesGravatar Oliver Schwaneberg
uemis-downloader downloads the dive spot for each dive, even if the same location was already downloaded before within the ongoing synchronization run. I modified the function "get_uemis_divespot" to remember all requested divespot_ids and their mapping to uuids. New helper functions: - static void erase_divespot_mapping() - static void add_to_divespot_mapping(int divespot_id, uint32_t dive_site_uuid) - static bool is_divespot_mappable(int divespot_id) - static uint32_t get_dive_site_uuid_by_divespot_id(int divespot_id) The memory leak is removed through the call of erade_divespot_mapping(). Signed-off-by: Oliver Schwaneberg <oliver.schwaneberg@gmail.com>
2018-01-26Update of some sections of user manual.Gravatar Willem Ferguson
Rewrite some parts text dealing with dive planner as well as using the Photos tab. Replace 7 images to reflect new features of the UI. Add some text to the user manual on planning recreationa dives. Replace one image and add another image. Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-01-26Limit recreational dives to 6 hoursGravatar Robert C. Helling
Otherwise, with large gradient factors, one can have infinite NDL which result in an infinite loop when no gas is set. Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-01-26Initialise cylinder start pressure with working pressureGravatar Robert C. Helling
In the planner, this is the natural assumption. Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-01-25Remove function-call indirection in qmlmanager.cppGravatar Berthold Stoeger
QMLManager::tryRetrieveDataFromBackend() was a one-liner calling void QMLManager::checkCredentialsAndExecute() with a pointer-to-member. The latter was never called with a different pointer, therefore fold the latter into the former and remove the indirection. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-24Planner: print icd information at 0.1 resolutionGravatar Willem Ferguson
The gas fractions (in %) are now printed at a resolution of 0.1% and not at 0.01% as previously. The string in the info box that provides icd data is reformatted so that the info-box is as narrow as possible. Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-01-24profile: fix weird disappearance of cylinder pressure lineGravatar Jan Mulder
The reason for this issue, and fix for this is very similar to commit b4d37e8ee. Just set both recalculate flags on a mouse release event, so that the cylinder pressure line is recalculated. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-24Do not add double ConnectionList itemsGravatar Jan Mulder
Refuse to add a ConnectionList row, when the row is already there. This, obviously, prevents double items. Fixes: #1069 Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-21Profile info box ICD: Change format of ICD stringGravatar Stefan Fuchs
Change the format from (example!) ICD: ΔHe=-34% ΔN₂=3%<3% to ICD: ΔHe=-34% ΔN₂=+3%<+2.8% Change strings given to translation to less complex ones. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2018-01-21Only give ICD warning if pN2 increasesGravatar Robert C. Helling
as otherwise there are warning on the descent. The ICD line in the info box is generated for all gas switches with decreasing He content. Also change the presentation in the info box to align it with the notes. Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-01-21CHANGELOG entry for ICDGravatar Robert C. Helling
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-01-21Show ICD in gaschange iconsGravatar Robert C. Helling
Add an exclamation mark in the gas change icons if the change violates our isobaric counter diffusion criterium. Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-01-21Show ICD events data in infoboxGravatar Robert C. Helling
If a gas switch violates our ICD criteria, show this in the info box. Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-01-21Planner notes min gas: Remove incorrect line wrap inside printf stringGravatar Stefan Fuchs
With old code the tabs at the start of the second line were incorrectly added to the string. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2018-01-21Planner notes ICD: Format HTML with DIV, do table title differentlyGravatar Stefan Fuchs
In the planner notes format the HTML for different sections with div tags. Put the table title for the ICD table outside the table because then the alignment looks a little bit nicer. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>