Commit graph

2374 commits

Author SHA1 Message Date
Dirk Hohndel
29f50c6aee Cut'n'paste for dive data: implement paste side
This should correctly set all the values and puts us in edit mode.
Testing so far looks good for both single dive and multiple dives selected
(i.e., you can paste into multiple dives).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-17 11:58:11 -06:00
Dirk Hohndel
822eb7558d Selective copy: forgot tags in the UI
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16 18:35:44 -06:00
Dirk Hohndel
4a7432e3d5 Don't always clear the dive before selectively copying
This will be needed when pasting the data back into a (set of) dive(s).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16 18:34:27 -06:00
Dirk Hohndel
34fceb4a1b Cut'n'paste for dive data: implement copy side
Admittedly not very useful without working paste, but it's progress.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16 10:07:06 -06:00
Dirk Hohndel
c58d136d33 Dive edit: allow the user to explicitly clear a GPS location
If the GPS coordinates for a dive were incorrect for some reason and the
user wanted to clear them in order to then re-download / apply GPS
information from the Subsurface webservice, prior to this patch we would
always match the location name and re-populate the GPS coordinates, making
it impossible to clear a GPS location without also changing the location
name.

This patch fixes this - but if you have multiple dives with the incorrect
name / GPS location pair, the next edit to a dive that had the GPS
coordinates cleared will re-populate the GPS coordinates (at that point
Subsurface can no longer tell that this was intentional).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16 07:09:11 -06:00
Dirk Hohndel
64c9fff850 Survey: rename "Save" button to "Send"
Fixes #701

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-15 21:41:41 -06:00
Dirk Hohndel
e8d430341c TankBar: hook into prefs and make ppGraphs resize accordingly
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-15 08:11:14 -06:00
Dirk Hohndel
e71119b40b TankBar: use the itemPos as intended
Which actually makes the code much clearer as now the object is at the
correct spot on the canvas and the positions inside are relative to that.
No more magic gradiants starting at "92"

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-15 07:30:31 -06:00
Linus Torvalds
5b14ed16ac Add "download into private trip" dialog checkmark
This adds a checkbox for the divecomputer download dialog that allows you
to tell the download to put the newly downloaded dives into a trip of
their own. That in turn will disable the dive merging with any existing
dives, which means that you will not mix up your newly downloaded dives
with any old dives.

That, in turn, is very convenient of you know that some of the dives were
done by other divers (or from testing that happened during servicing etc),
or the dive dates etc were wrong because the dive computer date had reset
due to battery changes etc.

Once you have all the dives in a private trip of their own, you can then
fix them up (delete dives you don't want to merge etc), and then after all
the data is ok you might want to merge the cleaned-up results with
previous trips etc, and then manually ask subsurface to merge the dives or
whatever.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-14 22:40:14 -06:00
Dirk Hohndel
87ca15c5c3 Add gas text to tank bars
Also restructures the code a bit to make it a little more sane and changes
the colors slightly.

With these changes I think we can claim that this
Fixes #557

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-14 22:39:47 -06:00
Dirk Hohndel
fa3c18d83b Add initial support for a visual tracker of gas used
This shows a color-coded bar at the bottom of the graph that corresponds
with the active gas.

Todo:
- text that explicitly states gas on the left edge of the bar
- better vertical positioning of the bar
- ability to turn this on and off

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-14 18:22:27 -06:00
Robert C. Helling
ecf0408aae Make SAC values in planner settings respect unit settings
So far, the fields for the two SAC rates did not show a unit and were implictly l/min.
Now they respect the settings for volume units. This was harder than I thought for two reasons:

1) Imperial units for SAC are cuft/min but a typical value would be .70. So I made the point
the field prefix and what is entered is actually hundreth of cuft per minute.

2) I had to get the rounding right in order not to get effects like 20l/min become .70 cuft/min (19800 ml/min
internally) which would then become 19l/min when switching back.

While being at it, I gave the gradient factors '%'-signs as units.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-13 21:11:07 -06:00
Anton Lundin
d453d5cb37 Rename dive gas function and defines for clarity
This renames the dive gas functions to not talk about just nitrox, and
to instead talk about gas.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:41:57 -07:00
Anton Lundin
619c1b3ec9 Rename the model column from NITROX to GAS
The column isn't just about NITROX, there might be air and trimix in
there too.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:41:36 -07:00
Anton Lundin
e07d23f806 Rename list column from O2% to Gas
In the dive list, calling the column O2% is kinda wrong, because in
at least my dive list there are both air and trimix showing up, so this
renames that column to Gas.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:40:18 -07:00
Gehad elrobey
3a46657f4c HTML: export Translated strings to JSON files.
First step towards multilingual export. Use the existing translation API
to translate and save words to JSON file.

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:21:19 -07:00
Gehad elrobey
108fc892ca HTML: Don't export total statistics value if not chosen
Don't export total row in yearly statistics unless exporting the
statistics is checked

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:21:15 -07:00
Gehad elrobey
10e70336c6 HTML: Remember General Export Settings.
Set Default values and remember user selected general HTML export
settings.

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:21:13 -07:00
Gehad elrobey
3ebb62f153 HTML: Add total row to yearly statistics table.
Add new row to the yearly statistics table containing the total. Total
values are calculated to some columns only, it doesn't make any sense to
add the total value to other columns (Temperature cols for example).

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:21:03 -07:00
Gehad elrobey
93a15d471c HTML: Make export statistics optional.
Make exporting statistics to the HTML page optional.

Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com>
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11 08:20:55 -07:00
Dirk Hohndel
827d4740c3 Better User Agent for Subsurface
This one is less verbose and very easy to parse. It's guaranteed to have
five components, separated by ':' with no other ':' in the string:

Subsurface:<version>:<PrettyOSName>:<appCpuArch[/osCpuArch]>:<UILang>

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-08 11:13:05 -07:00
Dirk Hohndel
a9f59c0cb3 Revert "Don't translate components of the version"
This reverts commit 6fdbf2069d.

That was actually the wrong thing to do, now that I think about it.
Instead we should show the translated version on screen and send a
compact, easy to parse variation of this as the User-Agent header.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-08 10:44:06 -07:00
Dirk Hohndel
4a125384ac Fix possible crash attempting network connection
If we didn't get back a JSON encoded string (i.e., if the response
contained no '"') we would access a QList past its boundary.

I'm somewhat hopeful that this is a last second fix for an annoying bug
I've been trying to figure out for a while.

See #514

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-08 10:39:46 -07:00
Dirk Hohndel
6fdbf2069d Don't translate components of the version
When transmitting the Subsurface version string we always want to use the
English terms, not the localized terms.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-08 00:31:18 -07:00
Tomaz Canabrava
44f59b6022 Move the Trash bin to the topRight on the pictures
It was too easy to remove a picture by mistake, not anymore.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-07 13:12:32 -07:00
Dirk Hohndel
ee77398eb8 Reload the dive list after accepting changes
So far we only did it when we added a dive or modified a manually added
dive. But the reality is that an edit of any dive could cause changes that
require the dive list to be reloaded.

Fixes #698

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-07 10:23:08 -07:00
Tomaz Canabrava
68af9f0afb Delete pictures from the Widget by pressing delete
Select the picture, press delete, profit.

[Dirk Hohndel: removed the stray hunk that snuck into this patch]

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 18:32:28 -07:00
Dirk Hohndel
b0addb4567 Show the cross hair only when planning or adding a dive
In normal profile mode it's rather redundant and clatters the profile.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 12:33:36 -07:00
Dirk Hohndel
4c252d8e23 Remove unused static function
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 10:59:26 -07:00
Dirk Hohndel
98e374e65a Fix order of initialization warning
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 10:54:37 -07:00
Linus Torvalds
3aaf8b1f5a Make gas use statistics be coherent and more complete
The gas use logic in the dive statistics page is confused.

The SAC case had a special case for "unknown", but only for
the first gas. Other gases had the normal empty case.

Also, the logic was really odd - if you had gases that weren't used (or
pressures not known) intermixed with gases you *did* have pressure for,
the statistics got really confused.

The list of gases showed all gases that we know about during the dive,
but then the gas use and SAC-rate lists wouldn't necessarily match,
because the loops that computed those stopped after the first gas that
didn't have any pressure change.

To make things worse, the first cylinder was special-cased again, so it
all lined up for the single-cylinder case.

This makes all the cylinders act the same way, leaving unknown gas use
(and thus SAC) just empty for that gas.

It also fixes the SAC calculation case where we don't have real samples,
and the profile is a fake profile - possibly with gas changes in between
the fake points. We now make the SAC calculations match what we show -
which is admittedly not at all necessarily what the dive was, but at
least we're consistent.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 09:14:34 -07:00
Dirk Hohndel
d982096144 Don't make the preferences dialog so huge
Let Qt figure out a good size instead.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 07:51:12 -07:00
Dirk Hohndel
74e7b8e879 Don't show a SAC of 0.0l/min (or cuft/min)
When we have no data about the gas consumption it makes no sense to show a
SAC of 0. Instead we should show either "unknown" or nothing.

Fixes #693

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 07:39:19 -07:00
Dirk Hohndel
eb63ccfed5 Don't list gases that weren't used in profile print
If the divecomputer adds additional, unused cylinders to the dive, they
would be listed in the profile based printouts. Given that the field is
named "Gas used" that seems wrong.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 07:08:31 -07:00
Robert C. Helling
71bed5022c Don't zoom the profile when the left button is pressed
This prevents zooming out to more than max in the planner. Using a Mac
MagicMouse it happens at times that the finger slides on the mouse while
dragging a waypoint which can result in zooming out further than max.

Fixes #695

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06 06:21:24 -07:00
Dirk Hohndel
d85d08e14f Data validation
Instead of refusing cylinder pressure data let's just mark it as red when
the values don't seem to make sense.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 21:21:31 -07:00
Dirk Hohndel
ebf1b8f624 Make the cross hair less obnoxious on Mac
While on Linux it was drawn as fine 1px line, on Mac it came out rather
fat and obnoxious by default. With this it's always set to a very thin
line.

This still needs more work, but let's leave it where it is for Beta 5.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 15:47:02 -07:00
Tomaz Canabrava
eb4e64d22a Add lines that follow the mouse helping see time and depth.
This was missing from the conversion from the oldPlanner
to the new one, and it also works ok on the profile.

One thing is missing is the Labels on the bottom / left
saying which position it is, but it's already userful.

Fixes #674

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 14:43:18 -07:00
Tomaz Canabrava
f9d38100c4 Hide Depth Column
We were showing everything, always.

Fixes #639

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 14:42:56 -07:00
Lubomir I. Ivanov
cec1ea182e Print: rename the variable 'isHeading' to 'newHeading'
This better describes what the variable (flag) does.
It's used to inform the loop that the last row goes
our of the page limit and that we need to place a new heading
on a new page. In that context 'newHeading' is more meaningful.
The name 'isHeading' is confusing for (i == 0), since it remains
'false' yet the 0 index row is actually a heading.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 12:49:35 -07:00
Lubomir I. Ivanov
81125d190a Print: add a safe guard for row heights in the table print
If a row height is more than the available height on a page
(minus the height of a heading row) we have to skip this row (dive).
The current profile print simply does not support that and it does
not make much sense. For that to happen either the page will have
to be tiny or the user must have entered a very long text for "buddy",
"dive master", "location" or there must be some sort of a
very-large-font-while-printing type of a problem.

Technically, rows spanning on multiple pages is doable, but probably
not worth the effort.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 12:49:16 -07:00
Dirk Hohndel
4583cd8e09 Picture handling: cleaning up the mess
We had pointers to data structures on the stack which we frequently
reallocated. These data structure contain basically a filename and an
offset. We then create a hash of the pointers to those datastructures with
the filename being the key. And then we passed those pointers around
through a Qt model(!!!) only in order to then later look up by filename
what the offset might be.

I am at a loss for words for the lunacy behind this design.

How about we just remember the offsets and pass the integers around?

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 12:37:14 -07:00
Dirk Hohndel
3adbff2320 Picture handling: hide the pictures before deleting
Because of the way deleteLater() is implemented, the pictures need to be
hidden, otherwise they might stay around at the wrong time (e.g., when
printing).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 11:42:19 -07:00
Dirk Hohndel
4a76c3b8df Profile: Don't disconnect too many signals
If we disconnect the picture releated signals then in dive add and dive
plan mode the pictures from the last shown dive could appear on the
profile. That's not cool.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 11:34:38 -07:00
Dirk Hohndel
4fd0dfcabb Printing: only give up if no size is available
Checking for available printers appears to sometimes fail, even if there
is a valid PDF or PS printer.

Instead we bail if we can't get a valid size for the printer.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 10:01:38 -07:00
Dirk Hohndel
3e00bac552 Don't recalculate plan automatically with low GFHigh
While it's nice to have immediate response to gradient factor changes,
there is an oddity that very low GFHigh values can cause infinite
decompression if the last stop is at 6m.

Robert fixed this and now errors out of deco after 48 hours, but if the
user simply wants to edit their GFHigh from (for example) 75 to 70 and
deletes the '5', we really don't want to trigger a recalculation for
GFHigh of 7...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 08:06:17 -07:00
Lubomir I. Ivanov
4bf0d768f9 Web: use subsurface_fopen() for non-ASCII paths on Win32
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05 07:42:51 -07:00
Dirk Hohndel
78fee70450 Correctly remove the Close button from most message widgets
The only time we want the close button is when showing an error at the
bottom of the main window.

In the other cases (maintab, globe) we need to explicitly hide it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04 22:45:17 -07:00
Dirk Hohndel
eca96ee8b7 Revert two incorrect commits
Revert "Don't add a close button to KMessageWidget"
This reverts commit 75c9bcd726.

Revert "Remove unused variable"
This reverts commit 9edee3477a.

I was fixing the wrong problem... instead of removing the handling of the
Close button I should have figured out why the close button was
incorrectly shown in the first place.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04 22:31:52 -07:00
Dirk Hohndel
3fd8e50044 Don't use tmpfile()
It appears that at least on Win7-64 Windows tries to create the temporary
file in C:\ and fails because of insufficient permissions. How stupid is
that.

Instead we roll our own tempfiles, based on the already existing tempfile
name that is passed in.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04 22:15:58 -07:00