aboutsummaryrefslogtreecommitdiffstats
path: root/core
AgeCommit message (Collapse)Author
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>
2018-01-21Planner notes ICD: Coding style change onlyGravatar Stefan Fuchs
Avoid the need for a char array for the "old_gas_name" by passing two pointers to the gasmixes to the add_icd_entry function and calling helper function gasname() there twice. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2018-01-21Planner notes ICD: Print correct runtime for gaschangeGravatar Stefan Fuchs
If a gaschange happens at the beginning of a segment, currently the wrong runtime (end of segment time) is printed in the ICD table. This is corrected here. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2018-01-20Move function isobaric_counterdiffusion()Gravatar Willem Ferguson
Move the above function from plannernotes.c to dive.c so that it is available to be called from the dive log part of the software, and not only from the planner. The following was done: 1) Edit the comment above the code to make it more accurate 2) Move the structure icd_data to dive.h 3) Create an external reference in dive.h for the above function 4) Copy the body of isobaric_counterdiffusion() to dive.c Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-01-19Implement ICD calculations in planner outputGravatar Willem Ferguson
This patch implements the calculation and printing of icd parameters in the dive planner output. It does: 1) icd parameters are calculated following the rule-of-fifths for OC trimix dives. For each gas change on the ascent that involves helium, the change in gas composition as well as the change in partial pressures are shown. If rule-of-fifths is exceeded, a warning message is prinetd. 2) An independent function is provided that in principle enables calculation of icd paramaters outside of the context of the dive planner. Further updates to icd calculations These changes respond to #1047. Code style conventions have been improved. The ICD table is now also printed when the planner is set to verbatim mode. The code that created the html icd results has been moved to a function. This does not make the code more efficient (many parameters passed) but it makes the code more clean. Free a new dynamic variable (old_gas_name) Stylistic changes to new code in plannernotes.c Changes in comments to explain some of the changes I made. Preparation of comments and functioning of isobaric_counterdiffusion() and its dependent data structure for possible transfer to dive.c and dive.h after finalisation and merging of the present PR. Smaller stylistic changes to conform to our coding rules. The several comments and suggestions during github review (@atdotde, @leolit123, @sfuchs79) are incorporated. Fixed up mis-aligned comments and text descriptions by replacing tab characters with space characters, thereby hard-forcing alignment of indented lines of text. Remove parameter *dive from function isobaric_counterdiffusion(). Improve a few constructs to conform to our style rules. Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-01-19Improve profile display in plannerGravatar Willem Ferguson
This patch allows the planner to save the last manually-entered dive planner point of a dive plan. When the plan has been saved and re-opened for edit, the time of the last-entered dive planner point is used to ensure that dive planning continues from the same point in the profile as was when the original dive plan was saved. Mechanism: 1) In dive.h, create a new dc attribute dc->last_manual_time with data type of duration_t. 2) In diveplanner.c, ensure that the last manually-entered dive planner point is saved in dc->last_manual_time. 3) In save-xml.c, create a new XML attribute for the <divecomputer> element, named last-manual-time. For dive plans, the element would now look like: <divecomputer model='planned dive' last-manual-time='31:17 min'> 4) In parse-xml.c, insert code that recognises the last-manual-time XML attribute, reads the time value and assigns this time to dc->last_manual_time. 5) In diveplannermodel.cpp, method DiveplannerPointModel::loadfromdive, insert code that sets the appropriate boolean value to dp->entered by comparing newtime (i.e. time of dp) with dc->last_manual_time. 6) Diveplannermodel.cpp also accepts profile data from normal dives in the dive log, whether hand-entered or loaded from dive computer. It looks like the reduction of dive points for dives with >100 points continues to work ok. The result is that when a dive plan is saved with manually entered points up to e.g. 10 minutes into the dive, it can be re-opened for edit in the dive planner and the planner re-creates the plan with manually entered points up to 10 minutes. The rest of the points are "soft" points, shaped by the deco calculations of the planner. Improvements: Improve code for profile display in dive planner This responds to #1052. Change load-git.c and save-git.c so that the last-manual-time is also saved in the git-format dive log. Several stylistic changes in text for consistent C source code. Improvement of dive planner profile display: Do some simplification of my alterations to diveplannermodel.cpp Two small style changes in planner.c and diveplannermodel.cpp as requested ny @neolit123 Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-01-19Unify username handling of remote git repositoriesGravatar Berthold Stoeger
The username was extracted from https:// urls but not from ssh:// urls. Unify this by extracting the username from any remote url. This is done with regard to unifying the file handling in the frontend. For this approach to work, the credential callback of the ssh:// transport had to be adapted. It now also supports username/password in addition to private-key authentication. Currently, the only way the user can use the username/password authentication is by deleting a potential public key. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-19Support non-https:// repositories for savingGravatar Berthold Stoeger
On saving to a remote git repository, the transport was set to https://, which broke saving to ssh:// repositories. Instead determine the transport from the remote url. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-19Create local cache and push to remote for any remote repositoryGravatar Berthold Stoeger
This used to be done only for cloud repositories. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-19Check cloudserver availability only for cloud repositoriesGravatar Berthold Stoeger
The check used to be done for any https:// repository. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-19Factor out counting of authentication attempts into functionGravatar Berthold Stoeger
Moreover, make the maximum number of authentication attempts a const variable. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-19Use different preference file for mobileGravatar Jan Mulder
This is a change mainly for developers working on both mobile and desktop application. As the current setup is that all preferences are stored in one file (Subsurface.conf), for both mobile and desktop, the unwary developer might get confused that the things tested on mobile-on-desktop are not working on mobile-on-device. As we share a lot of code between the desktop and the mobile code, also our fairly extensive set of preferences play a significant role in the inner workings of our applications. So, this commit introduces an own preferences file for mobile (on desktop) resulting in the preferences between the plain desktop apllication now invisible to the mobile-on-desktop application and vise versa. Making the mobile-on-desktop a much more realistic test plaform for mobile development. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-19Checking for ACK for getDive.Gravatar Oliver Schwaneberg
get_matching_dive does not check if the DC wrote an acknowledgement for the requested dive. As result, the sync stalls if dive number 0 is not available. Signed-off-by: Oliver Schwaneberg <oliver.schwaneberg@gmail.com>
2018-01-18code cleanup: translators are not globalGravatar Jan Mulder
Un-globalize unused global variables. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-17Use format_string() in core/git_access.cGravatar Berthold Stoeger
Since this helper-function exists, we might just use it. A subtle reuse of a buffer (string of second use was known to be shorter than string of first use) was replaced by a separate allocation. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-13Fix leak(s) in core/git-access.cGravatar Berthold Stoeger
The libgit2 functions git_cred_ssh_key_new() and git_cred_userpass_plaintext_new() copy their arguments. Therefore, free the string arguments or don't copy them in the first place. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-11Fix indentations for plannernotes.cGravatar Willem Ferguson
The last 2 commits have now been squashed. S Fuchs's comment on line 315 has been fixed Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za>
2018-01-11Move always true ++lineptr out of while-conditionGravatar Berthold Stoeger
In core/file.c move ++lineptr out of the while condition !empty_string(lineptr) && (lineptr = strchr(lineptr, '\n') && ++lineptr since it always evaluates to true. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-11Use helper function empty_string() instead of manual checksGravatar Berthold Stoeger
For code consistency, substitute boolean expressions: s && *s -> !empty_string(s) s && s[0] -> !empty_string(s) !s || !*s -> empty_string(s) !s || !s[0] -> empty_string(s) Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-11Introduce helper function empty_string()Gravatar Berthold Stoeger
There are ca. 50 constructs of the kind same_string(s, "") to test for empty or null strings. Replace them by the new helper function empty_string(). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-11Change return code of string comparison functions to boolGravatar Berthold Stoeger
These functions were returning 0 or 1 anyway. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-10Typo: indice -> indexGravatar Berthold Stoeger
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-10cleanup: fix possbile buffer overrunGravatar Jan Mulder
No reason to mess around with a 5 byte buffer when we have a proper buffer available to receive a possibly 8 byte output based on the format string. And silences compiler warning. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10cleanup: initilize local variableGravatar Jan Mulder
Silence compiler warning by correctly initializing local variable. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10GpsLocation::clearGpsData() is only used in SUBSURFACE_MOBILEGravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: has_hr_data()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: report_message()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: remove taglist_contains_all()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: remove weightsystems_equal()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: weekday()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: remove taglist_equal()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: remove shift_times()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: remove trip_has_selected_dives()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-10Unused code: remove PluginManager::socialNetworkIntegrationPlugins()Gravatar Jan Mulder
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2018-01-08Move resetting of current file out of clear_dive_file_data()Gravatar Berthold Stoeger
This is the only case where C-code sets the current file. Remove this call for a better separation of C-backend and C++-frontend parts. There were four callers of clear_dive_file_data(). Two of them would call set_filename() anyway. For the remaining two add an explicit call to set_filename(). This commit fixes a bug introduced in commit b3901aa8f90499ee2a34efdddc2463105afc53f1: The cloud-online menu entry was still enabled after "closing" the cloud storage. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-08Enter offline mode if sync with cloud failedGravatar Berthold Stoeger
In case syncing with the online repository failed, enter offline mode. This reflects the message sent to the user ("working with local copy"). Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-08Make a few functions of static linkageGravatar Berthold Stoeger
Make functions in core/file.c, core/parse.c and core/import-csv.c that were not used outside their translation unit of static linkage. parse_date is moved from core/file.c to core/import-csv.c, since it is used only there. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-08Remove unused function parse_mkvi_buffer()Gravatar Berthold Stoeger
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-08Remove obsolete error/debug messagesGravatar Miika Turkia
The used parse_dl7_new_line function already prints an error / debug message so these are unnecessary. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Parse water temperature from ZDTGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Function to look for new line on DL7 importGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Use dynamic indexing instead of hard codedGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Add support for air temp on DL7 importGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Dummy parse empty divesGravatar Miika Turkia
Easiest way to get dives without profiles in, is to just parse empty csv tags. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Stricter check we get dive profileGravatar Miika Turkia
We should get either dive trailer or dive profile immediately after header. Thus make sure that is the case. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Ignore empty divesGravatar Miika Turkia
This is first step towards parsing "empty" dives properly. I.e. now the updated test dive parses properly. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-08Refactor CSV importGravatar Miika Turkia
Move CSV import related functions into import-csv.c. Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-01-06Remove cloud_background_sync preferences optionGravatar Berthold Stoeger
The preferences flag cloud_background_sync used to be used heavily in the mobile code, but is not used there anymore. Now, it is accessed only in one place, but does not do what it actually says: If it is off, the remote storage is not synced on save (but will be synced on next load). Syncing on save can also be prevented by unchecking the "Cloud online" menu checkbox. Since the latter seems more logical and general (support for non-cloud remote git repositories), remove the cloud_background_sync option. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-06Sync with any remote git repositoryGravatar Berthold Stoeger
Sync with remote git repository, even if this isn't the cloud storage. There seems to be no point in remote git repositories if they aren't synced. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-01-06Trivial: remove redundant declarations of downloadTableGravatar Berthold Stoeger
downloadTable was declared twice in "dive.h". Remove one occurence. Moreover, "uemis-downloader.c" also declared downloadTable. This can likewise be removed, because "uemis-downloader.c" indirectly includes "dive.h". Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>