Commit graph

3830 commits

Author SHA1 Message Date
Robert Helling
023476a4a6 Document MaxOSX DBUS workaround in the README
This documents the temporary workaround for the libmarblewidget (and
plugin) issues on MacOS in the README.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-24 02:55:56 -07:00
Dirk Hohndel
be418458db Add "merge selected dives" to dive list popup menu
This is fairly straight forward. What I dislike is the check for the magic
number of "14 indeces". I'm sure there's a better way to tell if more than
one dive is selected...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-23 21:57:28 -07:00
Dirk Hohndel
c6140c6e21 Call refreshDisplay() after editing a dive
We now can change the dive date and the order of dives could have changed.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-23 21:14:40 -07:00
Anton Lundin
0c9e6f9acc Remove o2/he from plot_data and fix gas plot text
plot_data.o2 and plot_data.he was wrong for all dives, due to that
cylinderindex was set right first in populate_pressure_information, and
thus those two contained bogus information.
This makes the plot-text use cylinderindex-lookup as everything else.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-23 21:05:35 -07:00
Dirk Hohndel
dba16202c4 Correctly handle empty dive list after delete
Things need to be cleared out and disabled. But fixing this bug leaves
another issue - while the newly selected dive after a delete acts as if it
was selected, it doesn't show up as selected in the dive list.

Reported-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 22:24:28 -07:00
Dirk Hohndel
6ce5704435 Support imperial measurements in dive planner / add dive
This was not as hard as I assumed it would be. I may still change the
horizontal dimension to be the more logical seconds instead of minutes,
but for now this achieves the main goal.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 12:37:49 -07:00
Dirk Hohndel
ff58fd7dca Whitespace fixes in dive planner
I know this may seem anal retentive... but it's driving me insane.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 12:34:50 -07:00
Dirk Hohndel
9ba7b12767 Prevent nodes in planner / dive add profile edit to run past each other
I always disliked the fact that when you moved the handlers around you
could just 'run over' the neighbors. This also (as a somewhat intended
side effect) prevents vertical descents and ascents).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 11:01:18 -07:00
Dirk Hohndel
799b56a1f3 Don't exit profile editor when hitting ESC in dive add mode
I'm sure there are more issues like this where we need to handle things
differently depending on whether we are planning a dive or adding a dive.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 08:45:14 -07:00
Dirk Hohndel
9820ca5eda Fix tab order for dive info edit
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 08:37:54 -07:00
Dirk Hohndel
dda3253b77 Only load default file if no file is given on the command line
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 08:32:11 -07:00
Dirk Hohndel
3335f083bf Disable the info widget when no dive is selected
This solves the odd case when closing the data file that clicking in the
info widget caused the input fields to respond and the little warning icon
to show up.

Also some minor whitespace cleanup for readability.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 08:20:03 -07:00
Dirk Hohndel
88fb82411e Hack to clear the date when no dive is displayed
This mostly happens with no XML file or when closing the current XML file.
Sadly the user still can click on the empty date field (even if nothing
else is active on the screen) and a date reappears.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 07:33:09 -07:00
Dirk Hohndel
765e5b76e6 Fix crash when closing the data file
Only dereference the dive pointer if there actually is a dive.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 07:05:03 -07:00
Dirk Hohndel
21b7ebbaf0 Fix crash when adding dive to empty dive list
Only look up the dive number of a previous dive if there is a previous
dive.

Reported-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 07:00:14 -07:00
Alexandre Dupas
5935f372ab Fix enabling info widget when closing a dive
If the close action is triggered while there is no current dive (empty
history), the info widget is enabled. To avoid this behavior, we only
enable the info widget during update if the dive index is valid.

Signed-off-by: Alexandre Dupas <alexandre.dupas@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-22 06:54:34 -07:00
Dirk Hohndel
b1a3c1047a Simplify the default dive profile given in add dive
Suggested-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-21 08:56:19 -07:00
Dirk Hohndel
5e6ed53e40 In planner / add dive use 'ESC' to hide the gas selection popup
Not sure if there are other keys we should support.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-21 08:50:09 -07:00
Dirk Hohndel
a8888eaf26 Allow editing of date & time and air & water temperatures
Add two more rows to the widget - this is getting quite busy.
There still is some weirdness where the focus isn't returned where it
should be and a few other details, but overall getting there.

Added helper functions to parse a temperature and to deal with the
timezone offset - with that latter one I also fixed the time offset bug in
the planner.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-21 08:30:32 -07:00
Dirk Hohndel
acd3599548 Adding a dive changes the dive list
Duh.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-20 07:53:06 -05:00
Dirk Hohndel
23ce6b8bec When adding a dive, make the final ascent slower
Simply trying to role-model safe behavior I guess. Fundamentally all this
should be configurable (so I added comments about that on the planner side
as well).

One of the interseting side effects of this implementation is that if the
user removes the safety stop and comes up directly from a deeper depth,
the slope of the ascent will change at 5m :-)

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-20 07:50:19 -05:00
Dirk Hohndel
5f4aec867e When manually adding a dive, start with a simple dive
This is much friendlier than just showing an empty profile. I picked a
nice and simple three level dive. 25 minutes at 18m, 15 minutes at 9m, and
a safety stop.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-20 07:38:15 -05:00
Dirk Hohndel
e04acd4189 Simplistic solution to add dive number to dive added
If this is the last dive and if the previous dive had a number, give this
dive the next number.

Of course there are a couple of issues with the current implementation. We
have no way of changing the date / time of the added dive, so we KNOW that
it will be the last one. But I put that check there so that once we add
the ability to change the date / time (and hopefully remember to then move
the dive to the correct spot in the dive_table), we only assign a number
if it is the last dive.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-20 07:17:35 -05:00
Dirk Hohndel
46c23c53a1 Merge branch 'addDive'
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 23:05:17 -05:00
Dirk Hohndel
6881f52739 Hook up cancelling out of adding a dive
This was surprisingly easy - which of course has me worried that I'm
missing something that I should do when cancelling out of this dialog.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 22:58:53 -05:00
Dirk Hohndel
46b125782e Hook up adding a dive
This gets things mostly right.

It creates a dive and uses the planner widget to create samples which are
copied into the dive. It fills in some reasonable defaults (DC model,
timestamp), but doesn't allow editing the timestamp (or the temperatures
and air pressure).

On accept the planner gets reset and the dive appears correctly in the
dive list.

Cancel still needs to be handled.

And I bet there are many subtle bugs lurking here and there. But it's a
start.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 22:54:00 -05:00
Michael Andreen
169d9e9c01 Identify below floor event type properly.
This event is on when accumulating deco time. Once you reach the floor
deco time will start decreasing and the event will stop. Going below the
floor again will re-activate the event.

Also identify event type 13 in DM4 imports as airtime.

Signed-off-by: Michael Andreen <harv@ruin.nu>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 13:31:31 -05:00
Michael Andreen
583cea0e2c Fixes for gps coordinates handling.
Reset coordinates properly when clicking undo.

When auto-completing location, only copy coordinates if they have not
been manually edited.

Set the background to red if the gps coordinates won't change, e.g.
there is a parse error, the change is too small or only whitespace
changes.

Signed-off-by: Michael Andreen <harv@ruin.nu>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 11:56:12 -05:00
Dirk Hohndel
01408a429d Fix unbalanced braces issues in dive.h
The compiler doesn't warn about this, but this looks better.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 10:54:29 -05:00
Robert Helling
fc3b68bc19 Continous update of planner
Make the planner update its display continuously upon moving points
including deco. This appears fast enough on typical PCs. If this ends up
being to slow on some systems we may have to make it configurable.

[Dirk Hohndel: cleaned up the two patches and turned into one commit]

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-19 09:13:53 -05:00
Dirk Hohndel
5a96389cd3 Fix updateDiveInfo to clear coordinates when called with invalid dive
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 23:08:39 -05:00
Dirk Hohndel
64b014aefb Don't show the planner widget when adding a dive
This looks like it might work, but since we keep recreating the dive, the
info entered in the info pane is actually lost. But it's a step in the
right direction.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 23:02:53 -05:00
Dirk Hohndel
56535e4b3b Only calculate deco stops in planner mode
In add dive mode simply bring the diver safely back to the surface
(currently with a fixed ascent rate of 30ft/min (or 9m/min)).

We should make that rate configurable (for the planner as well as the dive
add function). Also, the dive add function should offer to automatically
include a safety stop.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 22:40:34 -05:00
Dirk Hohndel
4141c68450 Rename createDecostops to drawProfile
After all, that's what the function does.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 22:19:49 -05:00
Dirk Hohndel
882b2c146b Use Planner dialog to add dive
Right now this is just calling the same code and setting a flag whether we
are planning or adding a dive.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 22:18:10 -05:00
Dirk Hohndel
40462d5008 Fix the annoying tab order issue in the notes tab
This had been driving me crazy for a while, finally figured out how to fix
it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 22:15:09 -05:00
Tomaz Canabrava
df63bcd8b7 Added the Message and the Buttons on the Equipment Tab
Added the Message and the ok/cancel buttons on the Equipment
Tab, they don't control the Equipment edition yet, but already
does the same as the Notes one, Now I need to merge the other
part - the actuall Equipment Edition.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-09-18 23:23:04 -03:00
Tomaz Canabrava
506b133875 Add a Warning icon on the changed tabs, for edition of dives.
Adds a Warning icon on the changed tabs, this is important as
usability, for you could change something on the 'notes' tab,
change the tab and did't realized that something was changed
( by forgotting or something ), then clicking on the cancel
button. so now there's a friendly reminder that you actually
changed something.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-09-18 22:38:38 -03:00
Tomaz Canabrava
bcefa4baff Good deal of Code Cleanup for the maintab
Some cleanup was needed in the MainTab code for ages,
now the Edition / Cancel / Ok of the Notes tab is
way more intuitive on the code level.

This is needed to support multidive edition on the
Cylinders and Weigths too, since it's a bit more
complicated, I didn't want to start with a Spaguetti
Code.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-09-18 21:56:53 -03:00
Tomaz Canabrava
955c1c1fe5 Show DiveNotes when program starts.
Equipment tab was opened by default, it should be DiveNotes
as per the old GTK version. this fixes that.

Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-09-18 20:56:43 -03:00
Thiago Macieira
0afe576a50 Destroy the main window before exiting the application
This ensures all widgets inside the window get destroyed too.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 12:02:42 -05:00
Anton Lundin
7d9c1e9ee4 Show sample time in the mouseover.
This is really nice to have when looking at specific coutures of a dive
or events.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 11:59:53 -05:00
Anton Lundin
93d6eb1397 Only calculate with he when he is present in event
Old gasswitch events only contains O2, so don't look at he part when
the event doesn't contain a He part.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 11:59:20 -05:00
Anton Lundin
b75aee33fe Use the right event type
11 is SAMPLE_EVENT_GASCHANGE, and thats the one that doesn't contain any
He-part. The type where He and O2 is packed togeather is 25,
SAMPLE_EVENT_GASCHANGE2.

Left to implement is to figure out the type of the event when we read
the xml, so we can create the right type there.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-18 11:59:13 -05:00
Danilo Cesar Lemes de Paula
608209fff2 move process_dives to the mainthread
Avoids a race condition.

Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
2013-09-17 18:46:02 -03:00
Linus Torvalds
f8e33e171a Fix SIGSEGV after dive computer download
This fixes a crash in the current Qt subsurface code that can happen
after downloading dives from a dive computer, and the new dives merge
with old dives, causing the old dives to be re-allocated into the
merged one.

In that case, the list widgets don't get fully updated, and contain
stale pointers to old dives that no longer exists. Doing anything that
refreshes the display will hide this problem, and you do need to have
multiple dive computers on the same dive to trigger it in the first
place, so it's reasonably hard to hit, but very annoying when you do.

This patch just makes us reload all the dive UI tables, which may be
overkill. It also doesn't actually fix the fact that we seem to do
"process_dives()" within the context of the downloader thread, which
looks like a possible source of races. The "process_dives()" should
also be moved to the main thread, but needs the preferDownloaded()
information that is part of the download window, so it doesn't fit
here. Somebody else (Tomaz?) will hopefully fix that part.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17 17:21:41 -04:00
Michael Andreen
1d76ccb8b9 Improved handling of latitude and longitude.
Coordinates are copied when auto-completing location, they are also
displayed and editable in maintab.

Signed-off-by: Michael Andreen <harv@ruin.nu>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17 16:48:36 -04:00
Henrik Brautaset Aronsen
06dae680e4 Enable opening files with .zip suffix
The test file dives/TestDiveDivingLog5.08allmetric.zip wouldn't load.

Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17 15:17:49 -04:00
Dirk Hohndel
b473604ee8 Update installer so we can cross-build for Windows
Marble doesn't work, yet (Google Maps aren't loaded), but at least
Subsurface starts under Windows with the installer built.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17 15:05:10 -04:00
Dirk Hohndel
a7ceb695f5 Fix Windows compile
When submitting commit 8f33b81de0f9 ("implement device probe in C"),
Danilo explicitly asked me to make sure this compiles / works on Windows
and Mac - and I promptly forgot to do so. Robert fixed the Mac build, this
now at least compiles under Windows (but it's still untested).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17 07:58:29 -04:00