Commit graph

14134 commits

Author SHA1 Message Date
jan Iversen
f86dd889bf core: remove prefs-macros.h where unused
move #include prefs-macros from SettingsObjectWrapper.h to SettingsObjectWrapper.cpp
include dive.h directly (only part of prefs-macros.h used) in preference classes

Signed-off-by: Jan Iversen <jani@apache.org>
2018-07-01 22:06:28 +02:00
Berthold Stoeger
bf60d29e99 Dive pictures: adjust rowDDEnd and rowDDStart on picture deletion
In DivePictureModel, rowDDEnd and rowDDStart specify the range of
pictures in the profile plot. Obviously, these have to be adjusted
when pictures are deleted.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-29 13:30:48 +08:00
Dirk Hohndel
d293e968e9 Latest translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-28 17:13:50 -07:00
Berthold Stoeger
1de6962efb Dive pictures: connect DivePictureModel signals in constructor
The DivePictureModel signals were connected int the setProfileState()
function of ProfileWidget2. If this function was called repeatedly
(e.g. after adding a dive), multiple connections were made, which led
to multiply delivered signals. This in turn led to confusion, when
deleting pictures (i.e. multiple pictures were deleted).

Instead, connect once in ProfileWidget2's constructor. It is unclear
whether these signals should be disconnected temporarily if no pictures
are shown. In any case, the weren't, so this shouldn't introduce any
regression.

Fixes #1441

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-29 08:12:19 +08:00
Berthold Stoeger
1a5e54e5eb Dive pictures: render icons with white instead of transparent background
The SVG icons for failed / still-loading pictures were rendered with an
alpha channel. This lead to strange behavior when hovering over the
icon in the profile plot: When hitting a "hole" the icon would be
minimized again.

Therefore, render the SVGs onto a white background.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-28 21:58:29 +08:00
Dirk Hohndel
e79d177c71 Android: limit the amount of data copied to clipboard
The clipboard fails if we attempt to copy more than 1MB of data. But the
data buffer used is shared between all transactions 'in flight' and we
cannot tell what else is currently using that buffer. Limiting ourselves
to 500k of text for the logfiles seems reasonable and hopefully makes it
more likely that the transaction will succeed (sadly, Qt doesn't tell us
if it failed).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-28 06:52:14 -07:00
Dirk Hohndel
bcde65b152 iOS and Android: try more logfile locations
On some devices (e.g., a Sony Xperia phone) the GenericDataLocation is
not app writeable. Instead of just giving app, try a few other default
locations as well (and since all of these are actually string lists,
try all of the options that Qt gives us).

Reasonably, we should only set the libdivecomputer logfile name if we
found a writeable location.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-28 06:17:31 -07:00
Dirk Hohndel
1161782f3b QML UI: provide information why logfile couldn't be written
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-28 05:39:10 -07:00
Stephen Goodall
b492df6ffc Add Cressi Giotto, Newton and Drake to list of devices
Adding Cressi Giotto, Newton and Drake to the list of devices
that can be selected on Android devices.

Signed-off-by: Stephen Goodall <stephen.goodall88@googlemail.com>
2018-06-28 11:52:24 +08:00
Dirk Hohndel
478b5de9e7 QML UI: fix layout of Download page
The info text from the download process wasn't rendered correctly.
maximumWidth ended being a recursive reference and as a result the text
would render as very narrow and super-tall field.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-27 16:28:01 -07:00
Dirk Hohndel
ef17c78e23 QML UI: remove unused property
We always save the libdivecomputer log.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-27 16:05:36 -07:00
Dirk Hohndel
314b08c78f QML UI: go back to always saving libdivecomputer logfile
This got disabled as unintended (I hope) side effect of commit
807571a588 ("core: update deviceData default from qml").

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-27 16:01:12 -07:00
Dirk Hohndel
59cd3902a1 Update list of supported dive computers
This is simply extracted from libdivecomputer.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-27 10:48:23 -07:00
Dirk Hohndel
a4887792d1 Update libdivecomputer submodule
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-27 10:47:14 -07:00
Dirk Hohndel
c3ebb09396 Latest translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-27 10:43:37 -07:00
Stephen Goodall
26871df84d Add Cressi Leonardo to list of devices
Adding Cressi Leonardo to the list of devices that can be selected
on Android devices.

Signed-off-by: Stephen Goodall <stephen.goodall88@googlemail.com>
2018-06-28 01:43:26 +08:00
Guillaume GARDET
65e823b21d Documentation: update french manuals
Signed-off-by: Guillaume GARDET <guillaume.gardet@opensuse.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-26 14:26:17 -07:00
Murillo Bernardes
2de814fec8 desktop: fix multi-keystroke input on location
When the tooltip is hidden QInputMethodEvent is handled
by QLineEdit and works properly.
When the tooltip is visible DiveLocationListView gains
focus and receives QInputMethodEvent, without handling
them properly.

This patch just forwards the event back to the QLineEdit
object.

Fix #1405

Signed-off-by: Murillo Bernardes <mfbernardes@gmail.com>
2018-06-26 08:06:07 +02:00
Dirk Hohndel
4fa19534a9 Latest translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-26 07:38:51 +08:00
Dirk Hohndel
d309bd43e6 Update list of support dive computers
This is simply extracted from libdivecomputer.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-26 07:38:51 +08:00
Dirk Hohndel
df4638917a Update README.md for 4.8
And mention the continues releases on GitHub.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-26 07:38:51 +08:00
Dirk Hohndel
f998b59900 QML UI: don't use anchors within Layouts
Qt 5.11 adds useful warnings when code attempts to use anchors within
Layouts and even tells you how to fix things.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-26 03:56:44 +08:00
Dirk Hohndel
cda1961d80 Update mailmap
Might as well get it right...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 21:04:42 +08:00
Dirk Hohndel
3bd59a9382 Latest translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:43:28 +08:00
Dirk Hohndel
d5bc885e8b ReleaseNotes: start preparing for 4.8 / 2.1
Move changes from CHANGELOG to ReleaseNotes and add a few items that
were missing.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:28:20 +08:00
Dirk Hohndel
2afd5047e1 Update translation source strings
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:21:13 +08:00
Dirk Hohndel
f61ac686fd tools: keep the log of translation extraction
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:21:13 +08:00
Dirk Hohndel
d35c3c0fbf build-system: detect libdivecomputer changes in MXE build
Automatically trigger a rebuild of libdivecomputer if it has changed
since the last build.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:21:13 +08:00
Dirk Hohndel
dde2049027 QML UI: correctly update the model
In order to trigger the redraw of an edited dive we need to make sure
the model realizes that it has been updated. So far the only way to make
sure this happens reliably appears to be to remove the item and
re-insert it. Seems weird, but with this the bug of not redrawing the
profile after an edit appears fixed.

Fixes #1419

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-25 20:20:35 +08:00
Miika Turkia
f638b7ef80 CSV import: support \n as new line on notes field
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2018-06-25 20:12:06 +08:00
Berthold Stoeger
86988f9cdc Documentation: update CodingStyle.md with more details on translations
Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-24 20:31:14 +02:00
Berthold Stoeger
db0dd54c37 Localization: make cache thread safe and robust against use-after-free
The old trGettext() was not thread-safe and the returned C-strings
could be freed in the case of empty translations strings. Therefore:

1) Introduce a mutex protecting access to the cache.

2) Never change existing entries, even if the translation string is empty.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-24 20:31:14 +02:00
Berthold Stoeger
879cb73b8b Localization: remove gettextFromC::instance()
There were a handfull instances of the kind
1) gettextFromC::instance()->tr(...)
2) gettextFromC::instance()->trGettext(...)

1) is pointless, as tr is a static function.

All instances of 2) were likewise pointless, because trGettext()
returns a C-string, which was then immediately converted to a
QString.

Thus, replace both constructs by gettextFromC::tr(...).

After this change there was only one user of gettextFromC::instance()
left, viz. the C-interface funtion trGettext(). Therefore, remove
gettextFromC::instance() and do all the caching / translating
directly in the global trGettext().

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-24 20:31:14 +02:00
Berthold Stoeger
61b8add590 Localization: don't go via C-string in qthelper.cpp
The purpose of the gettextFromC class is twofold:
1) It provides a static storage of C strings if the C part needs
a translation and doesn't want to deal with memory-management.
2) It severs as a catch-all class for translations that do not come
from a proper class (i.e. from helper functions).

The second case was used a few times in qthelper.cpp. By using the
trGettext() function, a cached C-string was obtained. But in every
single instance, this C-string was then back-converted into a QString.
Therefore, use the gettextFromC::tr() function directly, which
returns a QString. Not only is the resulting code simpler - this also
avoids superfluous caching of translation strings.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-24 20:31:14 +02:00
Robert C. Helling
8406cbf187 Fix interpretation of dive mode changes upon replan
... by taking into acount that dive planner points refer
to the sement before the waypoint (while change mode
events are concerned with the future of a waypoint).

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-06-24 09:35:55 +02:00
Robert C. Helling
4157365c96 Make planner notes divemode aware...
... and fix a problem with setpoint changes shown in the wrong line

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-06-24 09:35:55 +02:00
Robert C. Helling
068b4c65bd When adding new waypoints, use previous setpoint.
Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-06-24 09:35:55 +02:00
Robert C. Helling
0f77d73df2 Planner: Change segment setpoint according to divemode
When making a segment non-CCR, its setpoint should be 0.
OTOH, when it becomes CCR, use the default setpoint
(or should we try to find the last previous setpoint?)

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-06-24 09:35:55 +02:00
Robert C. Helling
c64e4b159f Copy divemode to Replan
this needs copying the divemode from the dive to the plan.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2018-06-24 09:35:55 +02:00
Dirk Hohndel
2eb7c2e23f Latest translations
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-23 22:07:52 +09:00
Dirk Hohndel
67d8f31d94 Update translation source strings
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2018-06-23 19:38:39 +09:00
Anton Lundin
d853c477b7 build-system: Only run autoreconf when needed
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
207c752396 build-system: Use the correct library name, libftdi1
The library name is actually libftdi1 , not libftdi.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
1157ad3faf build-system: Use a list instead of string + regexp
There are actually more datatypes in bash than just strings. One can for
example hold a list of strings in a list, and use that to keep track of
what we're expected to do.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
c4bf9e6d6e build-system: Don't fail if tarball is there but no dir
The previous code assumed everything was good to go if just the tar ball
was there, but if it wasn't unpacked, it all went sideways.

This makes it more robust and to actually handle that the tarball might
just be there.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
Anton Lundin
5f4006ae4f build-system: Cleanup script with shellcheck
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2018-06-22 02:47:58 -07:00
jan Iversen
5df93e084d android/desktop: remove mapWidget from subsurface.qrc
remove mapWidget entries from subsurface.qrc, and
add reference to map-widget.qrc in CMakelist.txt

Android uses the same CMakelist.txt

Signed-off-by: Jan Iversen <jani@apache.org>
2018-06-21 20:27:58 -07:00
jan Iversen
ff88e7ee99 mobile: remove MapWidget from mobile-resources.qrc
remove MapWidget entries from mobile-resources.qrc, and
reference map-widget.qrc in Subsurface-mobile.pro for iOS

Signed-off-by: Jan Iversen <jani@apache.org>
2018-06-21 20:27:58 -07:00
jan Iversen
2b7b7ad8f5 map-widget: add qrc file for widget
Make map-widget self contained, with its own qrc file.

Signed-off-by: Jan Iversen <jani@apache.org>
2018-06-21 20:27:58 -07:00
Berthold Stoeger
c65617661a Dive pictures: fix loading of remote images without local version
Owing to the recent churn in imagedownloader.cpp, some of the
code was bogus.

Notably, in f60343eebb the code
was changed such that always the local filename was used to access
the images. Yet, the old code remained, which after failure tried
again to access the local picture. This second access can obviously
be removed completely.

More seriously, after failing to load the local version, no
attempt was made to fetch the image via canonical filename. This
could produce the following sequence of events:
  - Import remote image
  - Delete thumbnail and local cache of image
  - Image loading would fail

Therefore, first try to load using local file-location. If
that fails, load using the canonical file-location. To do
so, split the file-access code in two functions. The code
should now be distinctly easier to follow.

Signed-off-by: Berthold Stoeger <bstoeger@mail.tuwien.ac.at>
2018-06-22 00:26:02 +03:00