aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2017-11-03win32: optimize the console and logging logicGravatar Lubomir I. Ivanov
Currently one has to explicitly use --win32console and/or --win32log to enable a dedicated console (a console window that opens next to the Subsurface window) or to enable file logging on Win32. This patch makes the following changes: - removes the --win32* command line arguments - removes the dedicated console window support - if the app starts from a shortcut and not from a console, always redirect stderr and stdout to _err & _out log files - if the app starts from a console redirect stderr and stdout to that console Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-02desktop-main.cpp: round the fractional part of the GL versionGravatar Lubomir I. Ivanov
When verMinor is extracted with the glGetString() method, use roundf() to round the GL MINOR version to an integer. 2.1 is split in 2 and 1. Without this patch rounding issues are present as for 32bit IEEE the default rounding makes (0.1f * 10.f) into 0.999999f. Given the MINOR is a single digit for GL, calling roundf() on 0.999999 gives the expected result 1 for the MINOR. Reported-by: Murillo Fernandes Bernardes <notifications@github.com> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-11-02Fix resource leaks in qt-ble.cppGravatar Berthold Stoeger
1) Destroy QLowEnergyService objects in destructor of BLEObject. 2) Let BLE object take ownership of the controller so that the latter can be destroyed in the destructor of the former. This introduces a certain ownership subtlety, which could be solved by allocating the controller object in the BLE object. But let's first do the less intrusive thing. 3) Destroy the BLE object for two error conditions. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2017-11-01Reset device field in DownloadFromDCWidget according to dive computerGravatar Berthold Stoeger
Fixes minor interface inconsistency: The device field in the download-from-dive-computer widget is disabled when selecting a non-serial-transport dive computer. In contrast, post-download the field was reset to enabled for all dive computers. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2017-11-01desktop-main.cpp: further improve the GL version detectionGravatar Lubomir I. Ivanov
First, attempt to use glGetString(GL_VERSION), which works on legacy profiles but has to be parsed (unsafe and vendor specific?). If the above fails attempt to use the newer version API from glGetIntegerv(). If both fail, fall back to a software renderer or exit. If GLES is detected from glGetString() (for some odd reason - e.g. emulated driver) show a warning and return early as we don't handle it's versioning. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-31Getting ready for 4.7.2v4.7.2Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-31Latest translationsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-31When O2 breaking, add segment with current mix not with nextGravatar Robert C. Helling
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-10-31Don't do the minimal gaschanging stops during O2 breaktingGravatar Robert C. Helling
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-10-31Correct time bookkeeping when doing O2 breaksGravatar Robert C. Helling
These got mangled with previous changes to stop length determination. Fixes #662 Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-10-31Postpone error message display if not in GUI threadGravatar Berthold Stoeger
Calls to report_error() crashed if not called from GUI thread. Fix this by postponing error message display if not in GUI thread. Code that creates a thread which possibly calls report_error() is responsible for calling MainWindow::showErrors() to flush the accumulated messages. Note that there is a race condition in report_error() and get_error_string(). Nevertheless, hitting it should be rather unlikely (two threads producing error messages at the same time) and hopefully it can be fixed rather easily. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2017-10-30desktop-main.cpp: don't validate for custom backendsGravatar Lubomir I. Ivanov
Without this patch the user can pass a custom backend like 'software' and the validation will still be performed. In a case where the validation fails Subsurface will still exit. With this patch the validation is performed *only* for the standard backend which is OpenGL (or an empty QT_QUICK_BACKEND) env. variable. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-30VPM-B ceiling: calculate deco_time similar to planned VPM-B divesGravatar Rick Walsh
When planning a VPM-B dive, the "deco time" ends at surfacing, which is after ascending after a full-minute deco stop is complete, after ceiling clears. We should take this into account when calculating the ceiling outside of the planner. Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
2017-10-30VPM-B ceiling outside of planner: over-estimate deco_time on first iterationGravatar Rick Walsh
This means the iterations converge from an over-estimate, consistent with planning VPM-B dives Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
2017-10-30whitespace (planner.c)Gravatar Rick Walsh
Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
2017-10-30VPMB profile: use bottom_time to calculate deco_time in plannerGravatar Rick Walsh
This corrects the issue where the displayed ceiling in the profile was "broken" by the planner, especially for shorter and shallower dives. Also fixes issue outside of planner where the deepest VPM-B ceiling was shown too early, messing up the deco_time calculation. VPM-B plans respond to change in O2% in gas as expected (in my testing) Fixes: #630 Signed-off-by: Rick Walsh <rickmwalsh@gmail.com>
2017-10-30New dive plan set salinity to current dive salinity if dive selectedGravatar Stefan Fuchs
This helps people who always use a std. salinity of e.g. 1020g/l. If they have a log with their dives open and plan a new dive they will have also for new planned dives the salinity set to their prefered value. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-10-30Planner remove unnecessary gas consumption info from notesGravatar Stefan Fuchs
If we consumed 0l/0bar in total from a cylinder there is no need to also state that we consumed 0l/0bar during ascend. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-10-30Tidy up code for cylinder remove decision in cylindermodel.cppGravatar Stefan Fuchs
Replace currentMode() != ...:NOTHING with equivalent in_planner() Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-10-30Update ReleaseNotesGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-30Add a useful error message if we fail to connect to cloud serverGravatar Dirk Hohndel
Because now we are trying to open a URL as if it was a local file. Again, the goal is to accelerated debugging if things go wrong. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-30Improve parsing of git error messageGravatar Dirk Hohndel
This is rather fragile code, and the capitalization of the error message in libgit2 changed at some point. But commit 794739b4c0 ("strstr is a case sensitive compare") didn't really fix the problem - as it broke that same check for older libgit2 versions. Instead use our new helper function to make it work with libgit2 old and new. Also, add some more error output so the next time we run into this it's more obvious what broke and where. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-30Add new helfer for strcasestrGravatar Dirk Hohndel
That's not a standard functions, so let's just build it. This is not the most efficient way to write it, but it will do. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-30QML UI: show divelist from the topGravatar Jan Mulder
In commit bdf6dc78281bec2, we pulled in some changes from Kirigami. I checked all the new commits and they seemed just fine, and a test (on desktop) on both Qt 5.9.1. and 5.9.2 showed no obvious problems. However, some time later, working on something else, I compiled from Android to test, and saw some strange behavior in the dive list. The topmost dive is partially hidden behind the application header on startup of the app, but can be pulled down. Not a big deal, but is does not look right. After tedious testing, bisecting, etc, I found commit d0f3941a4d7f4d4c6 in Kirigami (obviosuly, it was not clear from the start that it was in Kirigami, as I could well have been some error in Subsurface, or even Qt). Mentioned commit is trivial, and handles with the wideScreen property of the application window. With wideScreen = false, the bug is visible, when true the bug is gone. This all said. Just set the wideScreen to true, which can definitely be considered a workaround. I exspect that this commit can be reverted later on when Kirigami is fixed. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-10-29desktop-main.cpp: add verbose output to validateGL()Gravatar Lubomir I. Ivanov
Amend validateGL() with verbose output. Also use QDebug instead of fprintf(). Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-29Latest translationsGravatar Dirk Hohndel
This includes several fixed translations where arguments didn't match the source strings, several of which could likely have resulted in crashes. Credit goes to Robert's update to checktranslation.pl. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-29Update translation source stringsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-29Mark missing translationsGravatar Dirk Hohndel
Reported-by: Pedro Neves <nevesdiver@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-29QML UI: Scrolling in dive detailsGravatar Jan Mulder
While testing the mobile app on Qt 5.9.2, I encounted a show stopping issue. Select a dive in the dive list, go back to the dive list (as selecting a dive opens the details), now scroll down to a different dive, and select one. The app starts enumerating (moved smoothly according to the specs) all the dives between the old and the new selected dive. So, depending on the distance, this could take forever. Explicitly: on 5.9.2. only. From the Qt docs: highlightFollowsCurrentItem : bool If this property is true (the default value), the highlight is moved smoothly to follow the current item. Otherwise, the highlight is not moved by the view, and any movement must be implemented by the highlight. End Qt docs. Setting this property to false solves the issue. Tested on both Qt 5.9.1 and 5.9.2. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-10-29Remove three obsolete preferences options for geocodingGravatar Stefan Fuchs
These options are not used any longer/were never used and can be removed to not confuse the users. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-10-29desktop-main.cpp: add validateGL()Gravatar Lubomir I. Ivanov
Add a new static function to validate the availability of OpenGL on this particular desktop system. It makes some calls to create a platform agnostic GL context that renders to a offscreen surface. Then it makes a couple of glGetIntegerv((GL_xxx_VERSION, ...) calls to see if the GL profile version is at least 2.1. In case any of the steps fail, a stderr message is shown and all QtQuick based widgets would be rendered using a software renderer. Testing was done in the case of the Google maps plugin and the fallback seems to work on Windows, but further testing will be required on all OS. For the time being, the automatic fallback is only supported on Qt 5.8.0 or later. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-29README: add notes about the OpenGL requirementsGravatar Lubomir I. Ivanov
This commit creates a "System Requirements" section in the README. Thus far this wasn't required but the Google maps plugin introduced a complication. The next patch will attempt to add the automatic "fall back to a software renderer". Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-29Check arguments of translation stringsGravatar Robert C. Helling
Make sure the arguments of placeholders agree Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-10-29smtk2ssrf-build.sh: add building command line modeGravatar Salvador Cuñat
Add a flag to build with -DCOMMANDLINE=ON
2017-10-29sntk2ssrf-build.sh: minor fixesGravatar Salvador Cuñat
- Reverse warning question logic. - Remove marble related cmake flag. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2017-10-29smtk2ssrf-build.sh: Add warning and some style fixesGravatar Salvador Cuñat
Add a warning about overriding subsurface binary and make some scripting style changes. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2017-10-29smtk2ssrf-build.sh: Build a stripped version of subsurfaceGravatar Salvador Cuñat
Till now we have been building against a previous built of subsurface. This was handy and fast, but there is a huge drawback in this approach because we were including a lot of unneeded dependencies (e.g. marble or serial-ftdi), some of which are, indeed, optional. With this patch, a stripped down version of susbsurface is built and used to link in smtk2ssrf. The bad news are that this - almost unusable - version of subsurface overrides any preexisting binary, so the user has to rebuild. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2017-10-29mapwidget: add the 'isReady' flag to the Map componentGravatar Lubomir I. Ivanov
The 'isReady' boolean flag is now set to 'true' only once the Component.onCompleted slot is reached. The flag is then used as a safe-guard in the onZoomLevelChanged slot. Calculate the small circle radius (mapHelper.calculateSmallCircleRadius()) only if 'isReady' is set to true. Prevents a crash if the Map widget is not ready, yet a zoom level is set via the 'zoomLevel' property. The crash happens because mapHelper.calculateSmallCircleRadius() has a callback to the Map component to estimate some points and distances of the small circle. Reported-by: Stefan Fuchs <sfuchs@gmx.de> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-29map widget: start with normal zoomlevelGravatar Jan Mulder
Commit 344d9765936 resulted in the start of Subsurface with a map of the whole world. The user has to zoom in (assuming the case that the first selected dive has a position), in evenry session. This is solved by setting the zoomlevel at startup at the default value. Ok, this results in a map of central London, UK, when starting Subsurface with a dive without location, but is this as good as any map. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-10-28mainwindow.cpp: fix whitespaceGravatar Lubomir I. Ivanov
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2017-10-28Start ReleaseNotes for 4.7.2Gravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-28Pull latest translationsGravatar Dirk Hohndel
Fixes #740 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-28Small changes to the issue templateGravatar Dirk Hohndel
This way hopefully more people will tell us right away which localization they are running in. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-10-28Set checked status of menu entry for dive list filter correctlyGravatar Stefan Fuchs
When enabling the dive list filter via the menu entry "Log->Filter dives" and then switch off the filter via the small "close" button of the filter: Set the checked status of the menu entry correctly. Also set it correctly when switching on/off via the menu entry to avoid any situation where it is not synced. Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-10-28mobile-manual_es: Update translation to daac80b7Gravatar Salvador Cuñat
2017-10-28Kirigami: newer SHAGravatar Jan Mulder
Switch to a newer SHA, so that at least my commit is in. Checked the newer version, and no other artefacts seen. I think we should try to follow master where we can (but controlled). Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-10-28Planner: Do not translate VARIATIONSGravatar Salvador Cuñat
This string is substituted with the runtime increments derived of slight variations in depth or bottom time in: diveplannermodel.cpp:1058: displayed_dive.notes = strdup(notes.replace("VARIATIONS", QString(buf)).toUtf8().data()); Translating it avoids substitution and we just get the translated string. Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
2017-10-27QML UI: prevent full overflow of bottom buttonsGravatar Jan Mulder
A not perfect improvement, but way better IMHO. Prevent the list of downloaded dives to grow over the buttons at the bottom. Just a simple change by adding a bottomMargin to the list. Notice that there is still some overlap, but for now I consider this a trade-off between the scarce screen real-estate and the wish to present and much as possible dowloaded dives. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-10-27QML UI: repair long trip headersGravatar Jan Mulder
Trip headers spanning more than one line where broken at incorrect locations in the string. Not exactly sure, but I think this came with the newest Kirigami SHA, and especially the Label change. Carefully reading the code for the trip heading shows a "strange" negative margin. So the margin is on the outside. This margin was used to split the string, allowing for a small invisible part of the string to present as trip header. This is solved by this commit. Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-10-26Clear error string when starting dive computer dowload.Gravatar Berthold Stoeger
Fixes minor interface inconsistency: After a failed download, the error message was also shown on subsequent successful downloads. Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>