Subsurface 2.0 has been tagged

Dirk Hohndel dirk at
Sun Oct 7 01:42:19 PDT 2012

Subsurface 2.0

Lots of new features:
- track weights and exposure protection
- improved statistics including monthly and yearly statistic
- better dive editing including multi dive edit
- trip handling
- much improved file handling, added default file functionality
- native import from Uemis Zurich
- much improved Windows and Mac support
- lots of bug fixes

Those of you planning to do binaries / packages, please start your
engines. I'd love to have rpms / debs / installers / dmgs available on
the website and then announce 2.0 to the world.

Please report here once you have them ready and where I can find them.

Henrik, can you cut a Mac DMG? I don't have easy access to a Mac while
traveling (even though this is a Mac Book Air I'm typing this on - it
is, however, a Linux system).

Thanks everyone - the last few weeks were super productive and I think
we made a lot of progress.

Shortlog below



Andrew Clayton (1):
      file.c: Fix a file descriptor leak in readfile()

Björn Spruck (1):
      Added support for Mares Darwin, M1, M2, ... from latest libdivecomputer.     Only M1 has been tested.     Darwin Air will most likely not work as an additional model flag seems to be needed.     This is not foreseen in current GUI.

Cristian Ionescu-Idbohrn (2):
      Fix incorrect utf-8 in Documentation/user-manual.txt
      Link with libm for 'pow()'

Dirk Hohndel (146):
      Add trimix test dive
      Add libxslt to Windows packaging file
      Two test dives I added a couple of months ago
      Make test dive 15 a bit more useful
      Add three more trimix test dives
      Small improvement to plot info debugging code
      Reformat, reorganize and slightly modify user manual
      Fixing whitespace, line wrapping
      More intuitive label for "not saving" when exiting
      Clarify documentation about connecting dive computers
      Add reasonable default device names for divecomputer import
      Improve Makefile for MacOS
      Return is not a function
      Add more details to import chapter of user-manual
      Fixes for the Windows installer
      Remove unused return value
      Make icon file name OS helper function
      Turn subsurface into a real Mac application
      Update asciidoc headers and deal with internal links
      More AsciiDoc updates
      Use the right function to get resource path on Mac
      Correctly free the GSList in file_open
      Only set the window icon if the icon file exists
      Adding the right header file for R_OK on Windows
      Even more Mac-i-ness
      Oddly, finishing a sample doesn't require a sample
      More removal of unused arguments
      Avoiding some potentially confusing name space clashes
      Separate out single dive statistics and total statistics
      Create separate single dive and total stats pages
      Add statistics for longest, shortest, and shallowest dive
      Add weight system tracking
      Fix edit callback for weight system
      Remember the last weight used per weightsystem
      Remove weightsystem entry with no description
      Fill the list of weightsystems from data in existing dives
      Add total weight column to divelist
      Don't print a total weight of 0 in the weight column
      Allow date based grouping
      Improve tree model implementation
      Create duplicate list model so sorting by columns works again
      Maintain selected rows when switching between list model and tree model
      Apply sort functions to the correct model, don't select summary entries
      Fix selecting and unselecting summary items
      Fixed another memory leak
      Add exposure protection tracking
      Redo dive editing
      Switch from date based to dive trip based grouping
      Fix right click edit in Dive Notes area for multiple dives
      Stop relying on gtk to track which dives are selected
      Fix string handling in get_combo_box_entry_text
      More fiddling with the selection
      Another selection fix
      When editing multiple files, don't override existing equipment entries
      Minor Macos menu entry modification fix
      Import Divesuit information from DivingLog XML file
      Fix crash when editing weight system info
      Correct multi-edit equipment update logic
      Fix default size for scrollable notebook
      Change default behavior for Stats to show selected dives
      Ignore Nitrox/He seetings when editing cylinders for multiple dives
      Fix broken default filename for save-as
      Might as well free current_file
      Add single and double quotes to escaped characters in XML output
      First cut of explicit trip tracking
      Some simple test dives for the trips code
      Fix an issue with trips that have dives from multiple input files
      Stop tracking the number of dives in a dive trip
      Store time_t as long value
      Clean up macros and auxiliary functions
      Allow modification and edits of trips
      Use truth values with gboolean
      Fix a crash when changing sort column
      Add autogen menu command
      Fix copy_tree_node to no longer overwrite dive duration
      Correctly initialize the toggle state of the autogroup menu entry
      Fix crash when removing the first dive of a trip
      Correct the trip related test dives
      Use the infrastructure for moving dives in more places
      Add ability to merge trip with trip below
      More trip manipulations: remove selected dives from trip
      Avoid duplicate dive_trip entries
      Merge one or more dives with the trip above
      Update the About screen
      Set default path for file import to the last path opened
      Handle new dives correctly if trips exist
      Make "create trip above" also add on selected dives
      Implement delete dive option
      First cut of adding a default file name
      Improve trip assignment for new dives
      Change behavior for the existing filename
      Implement Close menu option that allows closing the data file
      Fix silly folder permission bug
      Change the definition of "dive table changed"
      Use glibio functions for mkdir
      Fix a long standing bug when editing dives
      Fix memory handling error on MacOS
      Make sure Subsurface receives Quit / Command-Q callback on Mac
      Fix memory leaks and one potential NULL dereference
      Prevent the preferences dialog from getting focus with file selector open
      Use glib file and pathname functions
      Mark divelist changed when modifying trips
      make clean should remove subsurface.exe as well
      Make sure all parts of the edit dialogs are using current_dive / edit_dive
      Changing Miika's code to avoid global iter
      Don't show an error if we can't load the default file
      Display current filename in windows title
      File Open now closes the previous file, first
      Move Import menu entry back to File menu
      The Open menu entry should open just one file
      Reimplement the GtkFileChooserButton for import
      Put creation of the file selector box filter into helper function
      Mark divelist unchanged after closing the datafile
      Show the datafile name even with no dives
      Correctly deal with empty XML files
      Fix potential crash when importing dives
      Once again improve existing filename handling
      Don't close existing data file in file_open if user cancels
      Simplify code in file_open as we now only open one file
      Make sure dive info is displayed correctly at start
      Fix crash when simply clicking OK in import dialog
      Prevent dive_from_path from dereferencing invalid iter
      When deleting dives make sure that amount_selected stays consistent
      Fix some of the problems reported by cppcheck
      Partial rewrite of the dive trip code
      Convert FIND_TRIP into function
      Convert the divelist debug helpers to the new time functions as well
      Removed obsolete debug message
      Fix dive trip saving bug
      Only select last dive by default if no other dives are selected
      Add the ability to create a log file for debugging output
      First implementation of native Uemis downloader
      Fix stupid packing error on Windows
      Much improved handling of out of memory errors in the Uemis downloader
      Getting ready for the 2.0 release
      Restructure the Uemis native download buffer code
      Redo the delete dive code
      Correctly handle merging dives that are part of a trip
      Counting is hard
      Fix a number of obvious memory leaks
      Better fix for one of the memory leaks
      Add packaging files for MacOS
      More fixes to MacOS bundle file and README
      Force on Mac to use bash
      Turn menu and button images on regardless of OS settings.

Henrik Brautaset Aronsen (11):
      There's a difference between "it's" and "its"
      Display OTU for dives using air
      Define O2 permille for air in one spot
      Use a more standard approach to save preferences on MacOSX
      More Mac improvements
      Remove repetitions of "Show" in Preferences dialog
      Remove separator line in MacOSX File menu
      Proper placement for the file menu separator lines in MacOSX
      Rename Import XML File menu entry
      Fix typos for MacOSX packaging scripts
      Add readme file for MacOSX package

Ivan Habunek (6):
      Created a modern windows installer script
      Added version info to NSI installer script.
      Minor fix for the NSIS installer script
      Minor improvements to the NSIS installer script
      Fixed permissions in NSIS installer
      Cosmetic changes to the NSIS installer script

Jacco van Koll (7):
      First draft of user documentation
      Version 0.0.2 of user manual
      Version 0.0.3 of user manual
      Version 0.0.4 of user manual
      Version 0.0.5 of user manual
      Version 0.0.6 of user manual
      Version 0.0.7 of user manual

Khalid El Fathi (2):
      Fix subsurface manpage - missing description and parsing problem
      Fix subsurface.desktop category entry

Linus Torvalds (83):
      Use common helper function for the "no cylinder info" case
      Allow editing of Helium values in cylinder info
      Make the cylinder table columns unsortable
      Clean up reference tank information table
      Add the "Common European Cylinders" as per Henrik
      Make sure to update divelist O2 information after editing
      Add capability of custom sorts to divelist columns
      Make the dive gas record the single highest mix
      divelist: show/sort nitrox dive oxygen percentage as a range
      Pack the star rating on a line of its own
      Use an ellipsis for Nitrox O2% ranges
      parse-xml: read the file into memory separately
      Move the gasmix cleanups from XML parsing to the generic dive fixup stage
      First try at converting user-manual to AsciiDoc
      Split up file reading from 'parse-xml.c' into 'file.c'
      Add "native" Suunto SDE zip file reading
      Fix typo ('suundo' instead of 'suunto')
      Import: always open and read the file before checking the filename extension
      Add some initial cochran CAN file parsing
      Make cochran debug output a bit easier to use directly
      cochran: do the full de-scramble for one case
      cochran: do a partial header de-scramble
      Fix up Cochran dive header decoding offset
      Cochran: fix up dive data descrambling
      Fix reference tank information for LP steel tanks.
      Add the ugliest 'delete dive' model ever
      Renumber dives when deleting a dive
      Make sure to update dive info when it is edited
      Make subsurface compile with current libdivecomputer git tree
      Don't close config file when changing preferences
      Remember the default dive computer setting
      Show dive import error messages in the import dialog
      Move the "Import" function from the File menu to the Log menu
      Change the Dive computer import button from "Ok" to "Retry" on error
      Show dive import text updates in the progress bar
      divecomputer importing: show the date of the currently importing dive
      Fix dive notes import from Suundo SDM
      Fix more Suunto SDM xml conversion problems
      Suunto SDE updates, take 178: add weight and visibility info
      Suunto SDE conversion: add boat name to notes if it exists
      Allow overriding the default xslt path
      Add tankpressure parsing for UDDF files
      Add some more cochran data parsing code/comments
      Update cochran depth precision: it's in 3-inch increments
      Add a few more conversion helper functions to dive.h
      cochran: add support for importing the exported CSV files
      Fix cochran CSV pressure data import
      Update to new sane libdivecomputer interfaces
      Rough "Add new dive" infrastructure in the divelist
      Add depth entry to new dive edit dialog
      Make it possible to do "Add Dive" from just the main dive menu
      Make the 'Add Dive' dialog at least slightly less butt-ugly
      Fix a couple of possible divide-by-zero conditions in statistics
      Update for libdivecomputer pkg-config include file changes
      Avoid SIGSEGV when editing multiple dives
      multi-dive editing: don't change already set data for other dives
      multi-dive editing: don't change fields that weren't changed for the master dive
      Make fixup_divep robust against insane dive times
      Make fill_missing_tank_pressures robust against missing cylinder info
      Fix uninitialized pointer crash for "Save As"
      Improve divelist group header information
      Select better (?) default date for adding new dive
      Make the notebook portion (dive notes/equipment/info) a scrollable window
      divelist: add 'Expand all' and 'Collapse all' menu items
      Rework dive selection logic
      Avoid changing selection status when collapsing/expanding groups
      Improve group selection semantics
      Add a "Dive details" widget to the print dialog
      Fix single-dive editing oddity
      Add helper 'for_each_dive()' dive iterator
      Do some whitespace cleanup
      Only quote the quote characters in xml attributes
      Update for new libdivecomputer interfaces
      Add support for printing only the selected dives
      Make xml (and CSV) parsing use 'g_ascii_strtod()' rather than 'strtod()'
      Use a 64-bit 'timestamp_t' for all timestamps, rather than 'time_t'
      Fix the incorrect data type for DIVE_DATE accesses
      dive-time widget: fix incorrect use of timestamp_t
      FIND_TRIP: don't cast a timestamp to a pointer
      Don't update the progress bar from the dive computer import thread
      Fix missing save of (almost empty) cylinder information
      Update cylinder info properly
      New XML format for saving dives

Lubomir I. Ivanov (41):
      set subsurface_flush_conf() to no-op in wondows.c
      Fixed a small memory leak in divelist.c
      file.c: open a file in binary mode in readfile()
      replaced stdndup() with the inlined equivalent
      make the font size the same when printing on win32/linux
      Use GTK_UNIT_INCH when printing to provide consistency across OS
      Better compatibility with older GTK and Cairo
      Inline g_list_free_full for better compatibility
      various small fixes to the defaultfile model
      Moved "Import" in a separate section in the "File" menu
      Generalized the "Import" dialog title
      Added an entry "New" in the "File" menu
      Fixed a couple of memleaks in gtk-gui.c and info.c
      Call xmlCleanupParser only once - when we are done with libxml
      Check if trip is NULL before calling DIVE_TRIP
      Use long instead of int when retrieving DIVE_DATE via gtk_tree_model_get
      Keep the "OK" button in "Import" disabled until a DC is selected
      More cosmetic changes in the "Import" dialog
      Make sure windows behind forward dialogs are truly inactive
      Separate the "Import" menu entry into two menu entries in "File" and "Log"
      Remove the XML file selection from the DC download dialog
      Activate the new separate "Import XML File" functionality
      Added different delete label when right clicking multiple drives
      Added the functionality to delete selected (multiple) dives
      Make sure memory for default_dive_computer_device is allocated
      Use the name "Subsurface" in the "About" dialog
      Prevent a warning when showing the "About" dialog
      Update the trip's "when" flag after deleting a dive from it
      Clear the display widgets when deleting all dives in the list
      Set a default size to the "Edit Trip Info" window
      Keep the "Add/Edit Cylinder & Weight" dialogs on top
      Fixed some small memory leaks
      Fixed memory leaks specific to divelist.c
      Destroy the divelist (tree) before calling gtk_main_quit()
      Fix memory leaks related to dive_trip->location
      fixup_dive(): move the add_* calls before a possible return
      Fixed potential, rare corruption of unicode characters
      Use GLib's g_fopen() and g_open() when working with files
      Provide a method to use unicode command line arguments on Windows
      Fixed some memory leaks related to string configuration entries
      Added unicode support for the configuration entries on Windows

Martin Gysel (1):
      close directory after reading entries

Maximilian Güntner (7):
      Plot shorter (apnea) dives with a reasonable scale
      use increments that make sense for 600 seconds
      fixed indentation
      added "Zoom" button and improved scaling
      updated/corrected comment
      plot the time with a fixed padding (leading zero)
      moved zoomed_plot to display.h

Miika Turkia (9):
      Show O2 per cent if given in cylinder info
      Round the maximum depth on dive list
      Multiple cylinder support for JDiveLog import
      Show statistics of selected dives
      Fix broken average SAC calculation
      Add weight and suit support for JDiveLog import
      Display yearly/monthly statistics
      Improving the yearly statistics code
      Fix yearly statistics after 64-bit time changes

Mikko Rasa (7):
      Divide the panes evenly in view_three
      Improved depth info for dives without samples
      Changes to menu icons
      Add a separate "Save as" entry to the menu
      Fix an off-by-one error in buffer allocation
      Check if multi-dive editing is actually needed
      Fix profile and average depth for freedives

Miklos Vajna (1):
      user-manual: fix a few annoying typos

Pierre-Yves Chibon (11):
      When the file has been opened rely on it to save.
      Allow to cancel while trying to quit and the data was changed.
      Add a 'Save As' entry in the menu.
      Start re-working the print UI to allow printing tables with no profiles.
      Remove include not present in new libdivecomputer.
      Work on the printing of the dives, first attempt to print as table.
      Deactivate 'Show profiles' if 'table print' is checked.
      Invert the print 'dive profile' option.
      Have a nice table formating with choosing the 'Table print' option.
      Remove the pretty-print without dive profile option.
      Add the 'Print only selection' checkbox in the print options

Terrance Stanfield (1):
      Save dive computer device name.

More information about the subsurface mailing list