Recognize Aladin as the Bluetooth name of the Scubapro Aladin Sport
Matrix. Note that the Scubapro Aladin H Matrix most likely also
identifies itself using this BT name. But it probably uses the same
BT protocol (i.e. the G2 protocol) and therefore this should not pose
a problem. Ultimately a common name should be found.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Test not necessary, because the QString in question is not a pointer
and the string is tested for emptiness (which also flags null-strings).
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
The Qt binaries that we use for the continues build of the AppImage reference
libcrypto.so.1.0.1e, but we bundle libcrypto.so.1.0.0. On distros that have
libcrypto.so.1.0.1e that gets loaded in addition to the one that we bundle
which causes a conflict. More details are explained in the issue below.
Fixes#779
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Thanks to commit 956b45ddfd ("map-widget: move the widget and its resources to
'map-widget'") this is no longer needed.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Move all the map widget platform agnostic files to the
<subsurface-root>/map-widget folder.
This avoids the confusion about the desktop version of subsurface
using mobile components. The map widget is planned as a shared
component between the mobile and desktop versions.
desktop-widgets/mapwidget[.h/.cpp] still remain as those are specific
to the desktop version.
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
We had not done this on Linux as it was just as easy to run from the build
environment, but we need to install in order to be able to create an AppImage
on Travis.
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This fixes two problems:
1) Using the keybord or clicking below the list and moving the mouse
up while holding the mouse button did not properly update the status
message and the save button. For example, one could save with a non-
paired device selected.
2) The code assumed that a device is selected if the save button is
active, but the save button was not disabled on scan. Thus, one could
provoke a crash by selecting an item, scanning and then pressing save.
This problem is fixed indirectly, because the save button is now always
disabled if the selection is cleared.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
Remove unused variables o2time and breaktime or convert into boolean.
Never consider minimum gas switch time when switching to o2.
Reflect this behavior also in the UI.
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
Disable option "safety stop" for all deco modes other than
"recreational".
Disable also labels "reserve gas", "GF ..." and "VPM conservatism"
correctly.
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
Correct spelling and typos in file filters.
Unify and translate file filter names.
Don't pass a file filter to a directory open dialog - not needed.
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
QMap::operator[] creates a new default constructed entry in the map
if no entry with the given key exists. While not problematic (since
typically nullptrs are inserted) this is usually not what you want
for read access.
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
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>
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>
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>
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>
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>
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>
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>
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>
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>