Commit graph

2179 commits

Author SHA1 Message Date
Dirk Hohndel
d72f90650e Update PO files for 3.0.1
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-25 08:13:06 -08:00
Miika Turkia
e84ad1b33a Fix GPS import from divinglog
Ticket #63 - divinglog 5.08 import issues
This patch will include the GPS coordinates from divinglog.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-25 07:50:51 -08:00
Miika Turkia
c1581ef45b Mark some strings for translation
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-25 07:47:25 -08:00
Dirk Hohndel
fb70834a30 Documentation: correct the meaning of different colors in profile
In commit 0f31b71c3588 ("User documentation - describe the dive profile")
the description of the depth profile coloring was incorrect.

I also fixed some language issue and tried to better describe the zoom
options.

Finally I increased the revision number of the user manual.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-25 07:40:18 -08:00
Miika Turkia
5927542999 User documentation - describe the dive profile
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-25 07:25:41 -08:00
Linus Torvalds
d753805542 Fix cylinder air size calculations
Commit 90d3c5614a ("Centralising and redefining values as integers")
broke SAC-rate calculations. In particular, it changed "to_ATM()": to
use the centralized SURFACE_PRESSURE helper define, but in the process
it changed a floating point calculation to an integer calculation, and
it threw away all the fractional details. Any user of "to_ATM()"
basically dropped to an accuracy of a single atmosphere.

The good news is that we didn't use to_ATM() for things like depth
calculations, but only for cylinder pressures. As a result, the error
ends up being relatively small, since the pressures involved are big,
and thus the error of rounding to whole atmospheres is usually in the
1% range. The cylinder sizing tends to be off by more than that
anyway. But it was wrong, and not intentional.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 15:45:59 -08:00
Linus Torvalds
7b20fb826c Use the improved duration and average depth for everything
The code was written to get the SAC rate correct, but we probably do
want to have the duration and mean depth of the dive always be shown for
the non-surface-time.

So move the code from the sac-rate calculation to the generic dive fixup
part.  This makes the dive list and statistics all show the duration as
the under-water duration, which is not necessarily the same as
"difference between beginning and end of dive".

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 11:48:29 -08:00
Linus Torvalds
b62e63650a Fix SAC calculations for dives without any samples
We computed a made-up average depth based on the maximum depth, and used
that.  That's questionable even if we didn't have any explicit average
depth to begin with, but it's particularly wrong if we did have an
explicit average depth to use.

Now, admittedly we have no way to actually create fake dives like this
with a particular average depth, so this really doesn't make any
difference in real life.  But we should do this right.

Also, make the XML be in the format that subsurface actually saves
things in (mainly things like cylinder sizes having an extra decimal
place, but also ordering of XML elements).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 11:25:44 -08:00
Linus Torvalds
6d548d2028 Correctly calculate SAC rate in the presense of surface events
This assumes that you are not breathing your cylinders while at the
surface, which may or may not be correct, but is usually the right
thing.  Regardless, we're better off giving a conservative (higher) SAC
rate estimate for a diver that breathes his cylinder at the surface too
than giving an artificially low one because the diver ended up using his
snorkel and we didn't take that into account.

NOTE! This basically calculates a better duration and average depth than
the ones we end up showing in the dive list.  Maybe we should actually
show this "no-surface-time" duration and average depth instead of the
ones we do show?

That's a separate question, though.

Added a test-case for the surface case to the sac-test.xml dives.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 11:09:52 -08:00
Linus Torvalds
f4bf16d5db Fix up SAC calculations for ATM/bar confusion
We even documented that we did SAC in bar*l/min, but the "S" in SAC
stands for "Surface".  So we should normalize SAC rate to surface
pressure, not one bar.

It's a tiny 1% difference, and doesn't actually matter in practice, but
it's noticeable when you want to explicitly test for SAC-rate by
creating a test-dive that averages exactly 10m.  Suddenly you don't get
the round numbers you expect.

[ Side note: 10m is not _exactly_ one extra atmosphere according to our
  calculations, but it's darn close in sea water: the standard salinity
  of 1.03 kg/l together with the standard acceleration of 9.81m/s^2
  gives an additional pressure of 1.01 bar, which is within a fraction
  of a percent of one ATM.

  Of course, divers have likely chosen that value exactly for the math
  to come out that way, since the true average salinity of seawater is
  actually slightly lower ]

So here's a few test-dives, along with the SAC rate fixup to make them
look right.

(There's also a one-liner to dive.c that makes the duration come out
right if the last sample has a non-zero depth, and the previous sample
did not: one of my original test-dives did the "average 10m depth" by
starting at 0 and ending at 20m, and dive.c got a tiny bit confused
about that ;)

[ The rationale for me testing our SAC rate calculations in the first
  place was that on snorkkeli.net user "Poltsi" reported that our SAC rate
  calculations differ from the ones that Suunto DM4 reports. So I wanted
  to verify that we did things right.

  Note that Poltsi reported differences larger than the difference of
  BAR/ATM, so this is not the cause. I'll continue to look at this. ]

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 10:49:26 -08:00
Miika Turkia
1f20d5feed XSLT for UDDF import
This XSLT imports the UDDF logs that I have received samples of. This
includes kenzooid and Heinrichs Weikamp's DR5.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 08:52:58 -08:00
Lubomir I. Ivanov
afac4e71f4 Remove rounding of the value for minutes when editing dive date/time
For the "Edit dive date/time" dialog, (time->tm_min / 5)*5)
with integers can lose precision due to truncation, showing for example
a value of 55, where 59 is the actual previsouly stored value.

Reported-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 08:50:49 -08:00
Cristian Ionescu-Idbohrn
69062034b3 Remove more useless quotes.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 06:43:40 -08:00
Cristian Ionescu-Idbohrn
9ceb65a3ce Use a posix equivalent solution instead of the pattern substitution bashism.
Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 06:43:25 -08:00
Cristian Ionescu-Idbohrn
77a6b18a71 Replace the '==' bashism with the posix equivalent '='.
The quotes are not needed either (nothing to expand there).

Signed-off-by: Cristian Ionescu-Idbohrn <cristian.ionescu-idbohrn@axis.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-24 06:42:14 -08:00
Dirk Hohndel
069c36c95c Expand the version magic even more
Someone who is better at shell script writing needs to review this.

Here's what it's supposed to do. Create version strings with three or four
values for darwin or win, respectively, that we can use as the versions of
the bundle or installer. The version that Subsurface reports isn't
affected by this. So in a way this is automating something that's mostly
cosmetic.

If we have a 2 digit version number (like 3.0), do the same the old script
did - add just zeroes if we are on a tag, otherwise add the number of
commits since the tag (and a last 0 if on win).

If we have a 3 digit version numner (like 3.0.1), leave it alone on mac
and add either the number of commits since the tag or a zero if we are on
the tag on win.

Now this can create the same version number for two different versions on
darwin: the first commit after 3.0 and the version tagged as 3.0.1 will
both get the same number. That's kinda silly but remember - the non-tagged
versions aren't supposed to be widely distributed (and the third digit in
them should be much larger than anything we'd ever release; we are
already on commit 16 since the last tag and hopefully will never release a
3.0.16 as tagged release). And of course the full version as displayed in
the About box is always able to tell things apart because of the SHA added
at the end if it's a non-tagged version.

So why all this magic? The reason we do this is so that during development
we are able to create Mac and Windows installers and they get reasonable
version numbers, based on the versioning that these vendors suppose. And
without manual intervention.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 20:45:29 -08:00
Dirk Hohndel
1be9467231 Mac bundle: include the XSLT files
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 16:20:19 -08:00
Robert C. Helling
e5b73d9cb7 Planner: fix wait time calculations
The problem is that when we reach the gas change depth and compute the
stop time, no gas change event is created yet but time_at_last_depth tries
to determine the gas for the stop from events.

So instead we pass o2 and he as parameters of that function and calculate
the wait time based on that information.

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 16:15:18 -08:00
Dirk Hohndel
39fb9244a4 Remove substitute icons for Import and Download
Apparently at least in Unity on Ubuntu 12.10 using those icons causes the
default Menu text to be displayed (Back instead of Import).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 16:06:56 -08:00
Lubomir I. Ivanov
c209fae4ab Small context fix in the bg_BG translation
statistics.c required a small context (gender related) fix
for msgid "Shortest".

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 15:23:41 -08:00
Lubomir I. Ivanov
dd5e181890 statistics.c: Fix a potential compiler bug triggered in gcc 3.4.5
This may look as a simple formatting change and won't make much sense
to the C programmer. It is an actual bug fix in Subsurface for the
target compiler, since it introduces bogus instructions.

The "month" variable ends up being incremented up to 72 for a single
"month++" call (if inside offset brackets).

gcc -v
Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld
--with-gnu-as --host=mingw32 --target=mingw32 --prefix=/mingw --enable-threads
--disable-nls --enable-languages=c,c++,f77,ada,objc,java --disable-win32-registry
--disable-shared --enable-sjlj-exceptions --enable-libgcj --disable-java-awt
--without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter
--enable-hash-synchronization --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.5 (mingw-vista special r3)

OS: Windows 7 [6.1.7601] - x64

Better explained here:
http://lists.hohndel.org/pipermail/subsurface/2013-February/003967.html

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 15:22:34 -08:00
Dirk Hohndel
bf5a48a32c Add uddf extension to file selector filter
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 11:48:16 -08:00
Lubomir I. Ivanov
4e32a5031f statistics.c: Added missing translation of "<unit>/min"
"<unit>/min" should be OK for most Latin languages, but for Cyrillic
we have to translate "min" as well.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 08:23:51 -08:00
Salvador Cuñat
f47813546c Print.c : fixes problem with line height in print_tanks
A "\n" was giving 2 lines height for the layout.
Wipping it out makes unnecesary the *2 divisor.
As there may be wrapped strings in tank we need to take
account of this height. There is no need, really, to get the
height of the gasmix or gas_consumed strings, as they are
"semi-fixed" size, but under some locales and imperial units they
could be wrapped too.

Signed-off-by: Salvador Cuñat <salvador.cunat@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-23 08:21:49 -08:00
Linus Torvalds
0eb53fab52 Flesh out the UDDF xml parsing a bit more
Commit 28aba5a206 ("Flesh out the UDDF xml parsing a bit more")
improved on parsing UDDF files by teaching "percent()" to also handle
pure fractions like UDDF uses. So in a UDDF file, an o2 value of "1.0"
means "100%".

But it turns out that I have a few dives with "1% He", and the "Turn
fractions into percent" logic also turns that into 100%.

So this makes the 'percent()' function a bit smarter. If it actually
finds a percentage-sign after the number, it knows it is already
percent, not a fraction. That disambiguates the two cases: "1.0" is
100%, but "1.0%" (note the explicit percentage sign) is 1%.

So now our native format cannot get confused, because it generally
tries to avoid naked numbers. Good choice.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 20:17:39 -08:00
Miika Turkia
48de523f15 JDiveLog import - add ndl=0 when on deco
This patch will add ndl='0:00 min' attribute on all the samples that
have stoptime or stopdepth set when importing from JDiveLog. This hack
ensures that dive computer's deco ceiling is shown.

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 20:16:48 -08:00
Dirk Hohndel
ce659407a8 Add correct XSLT search path for Windows
And report error if XSLT stylesheet not found

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 11:20:46 -08:00
Linus Torvalds
28aba5a206 Flesh out the UDDF xml parsing a bit more
This uses the example UDDF file from Jan Schubert's Heinrichs Weikamp
DR5 dives, and now parses the dive dates, the cylinder mixes and the gas
switch events correctly (or at least partially).

It's not perfect: the gas mix has an "id" field that we ignore, and
instead we just depend on the cylinders being in order (which they seem
to be).  And I have rather limited test-cases, so maybe something else
is messed up too.  But for the six example dives I have, this gives
reasonable data.

Test-data-by: Jan Schubert <Jan.Schubert@gmx.li>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 09:13:20 -08:00
Robert C. Helling
e19669a2e5 REDME: update dependencies
We also need libxslt1-dev and zlib1g-dev

Signed-off-by: Robert Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 07:23:56 -08:00
Dirk Hohndel
dab04aa3d5 Documentation: correct mis-spelling
It's the Heinrichs Weikamp Frog, not From.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 07:08:48 -08:00
Dirk Hohndel
cdef0e4555 Windows: add libzip dll to installer package
This was missing in the first set of Subsurface 3.0 binaries

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-22 07:08:36 -08:00
Dirk Hohndel
697ce2380f Some more tweaks to README and ReleaseNotes
Make the two files more consistent, add list of supported dive computers
to ReleaseNotes.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-21 07:29:14 -08:00
Jozef Ivanecký
34197dc7ee Update Slovakian translation
Signed-Off-By: Jozef Ivanecký <dodo.sk@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-21 06:13:29 -08:00
Lubomir I. Ivanov
65b6941e7c Some small changes to the Windows NSI script
- on uninstall, delete all XSLT files and the "$instdir\xslt" folder itself
- manage a desktop icon (i believe we had that before?)
- ignore SVG files, as we are now embedding them as static resources

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-21 05:50:26 -08:00
Dirk Hohndel
678dafbe67 Update MacOS make-package script
The three digit number is needed for the Info.plist, not for the dmg and
volume names.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 22:45:11 -08:00
Dirk Hohndel
78dda16d1c Add missing library to Windows installer
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 22:39:53 -08:00
Dirk Hohndel
7f8c78633b Documentation: minor spelling corrections
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 22:12:24 -08:00
Dirk Hohndel
91c6d57e32 Correctly capitalize JDiveLog
Suggested-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 22:02:40 -08:00
Dirk Hohndel
153670ed4e Disable Croation and Italian translations
About 220 strings are missing from each of them - it's better to give
people a consistent English experience than a half-translated one.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 21:55:08 -08:00
Dirk Hohndel
59a39e4901 Updating versions for 3.0
Most of the actual version numbers are derived from the git tag, but we do
have the fallback hard-coded in the Makefile (e.g. for people building
from a source tar-ball).

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 21:54:16 -08:00
Miika Turkia
fcb470acad A bit of tweaking on Releasenotes.txt
I like to mention the most important features first (thus the profile is
added to the introductory chapter).

Moving word 'also' to different place on the GPS paragraph to indicate
that map is not the only way of inserting GPS coordinates.

JDivelog import was in 2.1 release so removed from here (it is actually
written JDiveLog - with capital L - should probably be fixed in user
manual).

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 21:45:51 -08:00
Linus Torvalds
bc5f82990d Fix divide-by-zero bug in statistics.c
GET_LOCAL_SAC did not check if the two entries had different time stamps
and could therefore cause a divide-by-zero. x86 doesn't fault on that -
it's still wrong. This now calls a function that does proper checking of
all the values involved in the calculation.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 21:24:08 -08:00
Miika Turkia
49b4f7c4ac Display the filename on error message
Display the filename in error message instead of just text 'ZIP file'

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 20:24:39 -08:00
Miika Turkia
ff1c33401b Divelogs.de import empty value fix
This checks that weight and dive durantion are defined before importing.
(Empty value concatenated with unit gives an error on import.)

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 20:19:59 -08:00
Lubomir I. Ivanov
dcad3af8b6 parse-xml.c: fixed a small memory leak related to xmlGetProp()
test_xslt_transforms():
xmlGetProp uses strdup(), so we have to clear the memory if a pointer
is returned.

xmlFree() doesn't seem very portable (strangly enought), so we
use free(..) directly.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 17:21:25 -08:00
Lubomir I. Ivanov
ef4a39c613 gps.c: Fixed a small memory leak
osm_gps_map_get_default_cache_directory() uses stdc:strdup to allocate
memory for the returned string. Lets try to free the memory
pointed by 'cachebasedir'.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 17:21:03 -08:00
Lubomir I. Ivanov
61698b9f55 info.c: add a method to clear all GtkListStore allocations
Add a new method in info.c called info_widget_destroy(), which
clears all GtkListStore instances. The method is exposed via
display-gtk.h and called from gtk-gui.c:on_destroy().

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 17:20:52 -08:00
Lubomir I. Ivanov
0b4dfd6cff Unref the two GtkTreeStore instances when destroying the divelist
Even if these exists for the heap lifespan, we can call:
g_object_unref(dive_list.treemodel);
g_object_unref(dive_list.listmodel);

in divelist.c:dive_list_destroy()

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 17:20:22 -08:00
Lubomir I. Ivanov
9a5818e92c Fixed a memory leak in the divelist when moving with the keyboard
There were some small leaks before here, related to gtk_tree_iter_copy(),
but there is another one in select_next_dive():
nextiter = gtk_tree_iter_copy(iter);

This now requires a SJ near the epilog where we do the memory cleanup.
Lets call this similar label consistently "free_iter" between
select_prev_dive and select_next_dive.

Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 17:19:50 -08:00
Lubomir I. Ivanov
26a973cf5f Fixed an incorrect by context translation in bg_BG
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-02-20 17:17:52 -08:00