Commit graph

366 commits

Author SHA1 Message Date
Tomaz Canabrava
3c3f91dcb2 Move model code to models
This makes it easery to use it on Qml.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-27 07:46:01 -07:00
Stefan Fuchs
e6d884cf26 Creation of dive duration string and surface interval string
Update the function to create the dive duration string in a way that
it can be used also in info and stats tab and added some more flexibility.

Changed layout for <1h freedives to "0:05:35" (w/o units) or "5:35min"
(with units and :) or "5min 35sec" (with units with space).

Add a new function to create the surface interval string.

Completely remove old function get_time_string() and get_time_string_s().

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-05-26 15:50:52 -07:00
Jan Mulder
f2e23e7815 Allow weight system name to be edited
Issue #272 lead to the introduction of a new private property of the
ComboBoxDelegate class (editable). This new property was not correctly
set when creating the weight system delegate. This corrects the (trivial)
error, and now allows edit of the weight system name.

Fixes: #392

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-05-09 07:40:26 -07:00
Dirk Hohndel
d7cf3408e5 Merge branch 'seabear-refactor'
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-07 07:52:55 -07:00
Miika Turkia
0dfa448d8c Refactor Seabear import
Moving the GUI independent Seabear import functionality to Subsurface
core. This will allow Robert to call it directly from download from DC.

Tested with H3 against released and daily versions of Subsurface. The
result differs somewhat, but it is actually fixing 2 bugs:
- Temperature was mis-interpreted previously
- Sample interval for a dive with 1 second interval was parsed
  incorrectly

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-05-07 13:53:52 +03:00
Miika Turkia
ab1813a445 Move intdup to qthelper
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-05-07 09:41:27 +03:00
Dirk Hohndel
876b479d69 Wire up duration units preference UI
Now we track the preference, but we don't act on it, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-06 13:49:36 -07:00
Dirk Hohndel
38b9185974 Add UI for duration preference
This isn't hooked up, yet.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-06 13:11:04 -07:00
Dirk Hohndel
ad5819c42e Save tags when manually adding dive
Tags are handled differently from other fields, we need to call
the special handling after the new dive was added and marked as
the current dive.

Fixes: #369

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-06 12:47:04 -07:00
Dirk Hohndel
9e45999a01 Fix some warnings
Two unused variables and one case of sign confusion.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-06 11:12:28 -07:00
Dirk Hohndel
38af1f2ab9 Check if we have an instance before dereferencing it
If we don't have a GPS service userid in the preferences and the GpsLocation class
isn't instantiated, this would cause a crash.

Fixes #367

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-05-06 11:12:07 -07:00
Robert C. Helling
462797396b File selector should filter images we can actually handle.
So better ask Qt about image formats known to it.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
2017-05-06 08:07:16 -07:00
Stefan Fuchs
59bbaa7820 Image import: Make Exif handling more tolerant, better info,...
Changes to the "Add pictures to dive" function:
- Make Exif handling more tolerant by removing the JPG sanity
  check for EOI
- Give info to user if exif.cpp can't identify a Exif date/time
- Restrict file dialog filter for correct picture time by DC photo
  to JPG because Exif is only available from JPG

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-05-06 08:07:16 -07:00
Anton Lundin
f14ad7f183 Implement OSTC4 specific settings
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Anton Lundin
5a4e1a5586 Connect up all the OSTC4 common settings
Connect up all the settings that are the same, and remove those who are
not, and correct those who only are minor differences.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Anton Lundin
527763f306 Start to read/write and present some OSTC4 settings
This is mostly copy-paste from the ostc3 case, but there are some minor
differences. Some minor things have different meaning, and there's a
slightly different command set, but I couldn't figure out a sane way of
joining them.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Anton Lundin
4cbf64bf99 Wire up a skeleton for configure OSTC 4
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Anton Lundin
0c276403ac Build a gui for configure OSTC 4
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Anton Lundin
6e23ce1488 Remove unneccecery spacer names
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Anton Lundin
4ba9781a68 Remove unneccecery label names
Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-05-04 10:50:15 -07:00
Stefan Fuchs
a784b15cb8 Update translation and strings for gas usage in stats
Giving the string " and " to transiflex seems to fail and/or
it's highly possible that the translators make a mistake by
translating it into "and" or " and" or "and ".
Change the string to "and" and hard code the whitespaces before and after.

Change O2 to O₂ in statistics.

Translate "He" and "O2" in statistics.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-05-01 21:24:02 -07:00
Stefan Fuchs
257f7c082d Show min/max SAC in statistics only if different to average...
...and don't show a minimum depth in stats if there is only a single dive.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-05-01 21:24:02 -07:00
Stefan Fuchs
9c91264f84 Change layout of information and statistics tab...
... to make it look more similar. This includes:
- Same spacings between the boxes
- Same way how to use the available space

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-05-01 21:24:02 -07:00
Stefan Fuchs
d5af6cab9f Picture feature: Improve UI and translation of shift image times...
... dialog (part 2)

Show date/time of first/last selected dive instead of displayed_dive.
Thats more useful to identify the right time offset for the images.

Trigger first update of image info already in constructor of the dialog.

Update the results and UI also when the "backwards" radio button is changed.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-05-01 21:23:42 -07:00
Stefan Fuchs
fff253e8cf Picture feature: Improve UI and translation of shift image times dialog
For the list of pictures with inappropriate date/time not fitting with
the dive time use a QTextEdit in read only mode with scroll bars
enabled instead of a QLabel.
Also update and translate some strings used there.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-04-30 12:44:58 -07:00
Dirk Hohndel
53ae83e038 Fix call to tr in order to create translation strings
Fixes #365

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-29 13:59:02 -07:00
Dirk Hohndel
9021a44ccc Add SPDX header to desktop widgets
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-29 13:32:55 -07:00
Anton Lundin
cd27c1cd44 Hide avg max depth thingie
We don't set it so just hide it.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-04-26 21:27:37 -07:00
Anton Lundin
1ec0d43e63 Always set min/max sac in statistics tab
It just looks weird when they aren't set, just because you only selected
one dive.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-04-26 21:27:37 -07:00
Anton Lundin
0f80d07e4b Rework statistics tab to use a grid layout
This makes everything line up better

Signed-off-by: Anton Lundin <glance@acc.umu.se>
2017-04-26 21:27:37 -07:00
Tomaz Canabrava
7aac3852c1 Fix saving table size
We need to make sure the model is avaliable for the table
until it hits the destructor.

Fixes #347

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-26 17:45:34 +02:00
Jan Mulder
dc9cf7bcbc OSTC3 incorrect notice to upgrade firmware
See https://github.com/Subsurface-divelog/subsurface/issues/342. The reason is
that we never get a DC_EVENT_DEVINFO when doing a memory dump. Just do not
offer to update firmware when we are creating a libdc dump.

Full credits of this fix go to Anton.

Fixed-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-04-25 10:39:33 -07:00
Stefan Fuchs
45dd564ee6 Translate string "cancel download" in DC download widget...
and change string "Retry" to "Retry download".

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-04-23 08:08:10 -07:00
Dirk Hohndel
d82e200d35 Download from divecomputer: reset progress bar fraction
Otherwise when retrying, the progress bar might already be reset, but
its text might still show 100%.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-22 13:55:46 -07:00
Dirk Hohndel
82d37e7451 Download from divecomputer: don't show bogus progress text
On some divecomputers we download all the data from the device and
then parse the data afterwards just in memory (at which point the
progress bar has already run all the way to 100%). So don't try to
show the dive number and time in that case.

Fixes #335

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-22 13:49:07 -07:00
Dirk Hohndel
0bd02bf1f0 Download from divecomputer: stop timer on error
If we run into an error during the download, stop the timer that
triggers the update to the progressbar.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-22 13:46:27 -07:00
Dirk Hohndel
2182f00177 Reduce default verbosity
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-22 12:38:59 -07:00
Stefan Fuchs
bea1217f7b Move extra info tab in main window to the very right side again
Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-04-21 11:27:15 -07:00
Stefan Fuchs
02e768a61b After DC import don't do RemoveRows if there is nothing to remove
This fixes an issue where beginRemoveRows is called with argument -1
in DiveImportedModel::setImportedDivesIndexes.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-04-21 11:26:49 -07:00
Jan Mulder
ff5c04eb97 Do not abort when there is no current dive
Yes, currentdive can be undefined in case of of a new logbook and starting the planner
right away. Do not abort on that.

Reported-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-04-20 10:57:11 -07:00
Jan Mulder
89b914e47d Preserve dive mode when planning a dive
Data such as cilinders and used gasses are populated fromn the currently
selected dive when starting the planner. It is more logical to use
the dive mode (OC, CCR, pSCR) of the currently selected dive
as well. This commits changes this.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-04-20 10:57:11 -07:00
Stefan Fuchs
5e67a932cf More strict filter for URL handling in dive notes
Applie a more strict filter to URL handling in dive notes:
The URL needs to have:
- Scheme like "http:" or "mailto:"
- Host name like "www.test.de" or path like "/pathtosomewhere/"

Otherwise strings like "OTU:" or "Runtime:" are treated as URL.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-04-18 18:13:52 -07:00
Stefan Fuchs
c257144bab Fix a crash in the URL handling for the dive notes
URLs in the dive notes are detected today. A tooltip is displayed and
one can follow the URL by Ctrl-click.

In the function fromCursorTilWhitespace there is an issue with incorrect
return value of Qt (5.7?!) function cursor->movePosition(). This value is
erroneous true in some condition e.g. if the cursor is inside a table at
the very beginning or the very end of a table line and not moving any more.
This can cause the function end up in an infinite loop.

Bugfix adds an additional exit criteria for the loop if the string is
not growing any more.

Signed-off-by: Stefan Fuchs <sfuchs@gmx.de>
2017-04-18 18:13:52 -07:00
Miika Turkia
c88be99d84 Fix a crash on exit
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
2017-04-18 18:12:04 -07:00
Jan Mulder
f2d88619c5 Restore FB grayed out when disconnected
See https://github.com/Subsurface-divelog/subsurface/issues/253. The original
behaviour (greyed out when disconnected) is restored. Not sure where and when
got lost, but this simple change fixes it.

Fixes #253

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-04-16 07:43:23 -07:00
Jan Mulder
b809019c7a Also translate tab headers
After the restyle of the maintab code, the translation of some tab titles went
missing. Corrected here.

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
2017-04-14 09:50:38 -07:00
Dirk Hohndel
86a98867f1 Fix build against older Qt versions
While the new syntax is nicer and faster, this isn't supported prior
to Qt 5.6 and we still support 5.5 on older OSs.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-12 20:24:24 -07:00
Tomaz Canabrava
385816be2e Aparently, remove a QXB warning.
Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-06 18:25:53 -07:00
Tomaz Canabrava
2f86cbdc36 Clean up some widgets
Simplify logic of handling the Message that this
dive is being modified.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-06 18:25:15 -07:00
Tomaz Canabrava
1fc4fba69f Break down MainTab into smaller classes
Maintab is one of our most complex classes, and it's
something I'm not actually proud of. But it currently
works and the idea of splitting it was in my head for
quite a while.

This is the third or fourth tentative of splitting it,
and this time I let the most complex part of it untouched,
the Notes and Equipment tab are way too complex to untangle
right now on my limited time.

A new class 'TabBase' should be used for any new tab that
we may create, and added on the MainTab (see the new lines
on the MainTab constructor).

Also, Extra Info, Information, Photos and Statistics where
ported to this new way helping reduce the number of
lines and functions on the MainTab quite a bit.

Overall this is a step in the right direction for the future.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2017-04-06 18:23:25 -07:00