aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2012-08-17Fix string handling in get_combo_box_entry_textGravatar Dirk Hohndel
Linus' code dropped the const qualifier from the start rating. While fixing this I stared some more at get_combo_box_entry_text and realized that the existing code could potentially change the "old" pointer and then pass it to free(). Tsk-tsk-tsk. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-17multi-dive editing: don't change fields that weren't changed for the master diveGravatar Linus Torvalds
Commit 2f773b97e042 ("multi-dive editing: don't change already set data for other dives") didn't get the multi-dive editing quite right: even if one of the dives in the list of changed dives has an empty field, we should *not* fill it with the edit data unless that edit data was actually changed. So compare the new data with the original master data, and if they match, do nothing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-08-17Remove repetitions of "Show" in Preferences dialogGravatar Henrik Brautaset Aronsen
Instead of having "Show Temp", "Show Cyl", etc in the Preferences dialog, rename the group as "Show Columns" and remove "Show " from all the checkboxes. The dialog is tighter/nicer this way. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no>
2012-08-16Merge branch 'tree2' of git://git.hohndel.org/subsurfaceGravatar Linus Torvalds
Pull selection tracking fixes from Dirk Hohndel: "I just gave up on gtk tracking our selection. Way too much pain. The implementation below has seen some testing with the debugging code enabled and seems to work - but it needs more banging onto it, I'm sure. Ideally I'd like to leave the debug code in, ask people on the mailing list to play with it and report any inconsistencies. After that I'll be happy to remove it again." * 'tree2' of git://git.hohndel.org/subsurface: Stop relying on gtk to track which dives are selected
2012-08-16multi-dive editing: don't change already set data for other divesGravatar Linus Torvalds
When editing multiple dives at the same time, don't change fields that have already been set for a dive, unless the old field contents match the currently selected ("master") dive. So when you edit multiple dives, you can set the dive master or buddy (or suit etc) for all of them in one go, but if one of them already has that field set, it won't be modified just because you set the other ones. Acked-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-08-16Stop relying on gtk to track which dives are selectedGravatar Dirk Hohndel
We spend way too much effort trying to get gtk to manage the dives that are selected. The straw that broke the camel's back is that gtk forces us to expand any nodes that we want to select - so selecting a summary entry for a dive trip forced us to expand all the dives in the dive trip. Which as Linus pointed out really sucked from a user experience. So instead we now completeley ignore gtk's weird idea of what is selected and what isn't and simply track things ourselves. We still need to play some games with gtk to make sure that the correct rows are SHOWN as selected, but still, the overall code seems much cleaner. This commit contains a bunch of debugging code that is ifdef'ed out - this is extremely useful to make sure I didn't mess anything up, but eventually I'll want to remove that again as it just looks ugly in the code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-16Fix right click edit in Dive Notes area for multiple divesGravatar Dirk Hohndel
This fixes the bug that triggered the SIGSEGV that Linus worked around earlier. I had forgotten to update this call path to the edit_multi_dive_info function. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-16Avoid SIGSEGV when editing multiple divesGravatar Linus Torvalds
The multi-dive editing is broken if you right-click on the dive text-fields (instead of the divelist). This just avoids the SIGSEGV, it doesn't really fix the editing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-08-16Merge branch 'tree2' of git://git.hohndel.org/subsurfaceGravatar Linus Torvalds
Pull dive-trip grouping from Dirk Hohndel: "This turned into an updated pull request for the tree2 branch where I implemented the date based grouping - but is actually a very different topic: this adds the ability to edit multiple dives (and fixes some issues with the dive editing overall). The reason for that is that it reuses some of the infrastructure that I implemented in the tree2 branch for tracking the selected dives. More details in the commit messages." * 'tree2' of git://git.hohndel.org/subsurface: Switch from date based to dive trip based grouping Redo dive editing Fix selecting and unselecting summary items Apply sort functions to the correct model, don't select summary entries Maintain selected rows when switching between list model and tree model Create duplicate list model so sorting by columns works again Improve tree model implementation Allow date based grouping
2012-08-16Merge branch 'suit' of git://git.hohndel.org/subsurfaceGravatar Linus Torvalds
Pull exposure suit tracking from Dirk Hohndel. * 'suit' of git://git.hohndel.org/subsurface: Add exposure protection tracking
2012-08-16Switch from date based to dive trip based groupingGravatar Dirk Hohndel
Linus HATED the date based grouping - too much wasted space visually ("three levels of grouping are way too much") and asked for dive trip based grouping instead. This is a quick change to do just that, with an assumption that no dive in 3 days means it's a new trip. This also changes the summary entry to display a location for the trip, for now we pick the location of the (chronologically) first dive of the trip. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-15Redo dive editingGravatar Dirk Hohndel
This commit addresses two issues: We now can add / edit / delete equipment from the edit dive dialog We now can edit multiple dives at once The latter feature has some interesting design constraints: It picks the 'selected_dive' as the one to start the edit from - so if this dive already has some information filled in, that information needs to be overwritten before it is stored in all of the dives. Similarly, only changes to the cylinders or weightsystems are recorded. Also, the notes field is not editable in the multi dive edit mode (as that didn't seem useful). The workflow seems to work best if using the multi-edit right after importing new dives from a dive computer. The user then can select all the new dives and only needs to edit things like location, divemaster, buddy, weights, etc. once. This commit will create some obvious conflicts with the commit that adds exposure protection tracking. It was implemented on top of the tree_view changes as it reuses some of the infrastructure for tracking the selected dives. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Add exposure protection trackingGravatar Dirk Hohndel
For simplicity and shortness, throughout subsurface exposure protection is simply referred to as "suit". Add the fields to the data structures, add the column to the dive_list and the preferences dialog (once again with it being turned invisible by default). Support loading and saving of the suit information. Display the suit information in the Dive Info pane (this may be a bit controversial as people could argue this should be in the Equipment pane) and allow editing of the suit info, with our usual support for completion and drop down lists to pick from. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Fixed another memory leakGravatar Dirk Hohndel
We need to free the string that gtk_tree_mode_get returns to us. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Fixed a small memory leak in divelist.cGravatar Lubomir I. Ivanov
In fill_one_dive(), cylinder and location strings are obtained via get_string(), which needs to allocated a litte bit of memory. After passing the two pointers ('cylinder' and 'location') as arguments to gtk_list_store_set() it is safe to release them. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
2012-08-14Fix selecting and unselecting summary itemsGravatar Dirk Hohndel
The dive list now seems to behave intuitively. In order to do this we had to intercept the select function in addition to having a selection-changed callback. That way we can simulate the multi-level selection and unselection that was missing. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Apply sort functions to the correct model, don't select summary entriesGravatar Dirk Hohndel
We only set up the column specific sort functions for the default (tree) model, which caused us to not sort correctly in the list model. This commit also somewhat cleans up the handling of selecting summary lines in the tree model, which includes the very first selection made at program start (which happens to be the very last dive). But it still doesn't work the way I expect it to work (i.e., the correct row is not highlighted). Fundamentally I would prefer clicks on the summary lines to instead select (or as ctrl-click, possibly deselect) all the dives under that summary entry. Still TODO. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Maintain selected rows when switching between list model and tree modelGravatar Dirk Hohndel
We keep track of the DIVE_INDEX of all selected dives and simply re-select those dives after changing model (date based sort or sort by other column). There are a few TODOs left. We lose the sort direction (ascending / descending) when switching models. We also don't correctly deal with the user selecting summary rows in the tree model. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Create duplicate list model so sorting by columns works againGravatar Dirk Hohndel
One major downside of the switch to a tree model is that sorting by columns other than date was broken - it would sort the entries within each date which is not all that useful. After playing with some Gtk trickery that would allow us to filter out those rows it quickly became clear that the much easier solution is to simply maintain TWO models (and therefore two storages). This causes some overhead and requires some careful tracking of all changes, but it turned out to be rather straight forward to do. dive_list now has three model related members: model - current model displayed (which is one of the following two) treemodel - the tree model listmodel - the list model One side effect is that the callbacks no longer can pass the model around (as this could have changed since the callback was registered), but that seems only a minor drawback and was easily addressed. The implementation in this commit still has a couple of obvious flaws: when switching back from the list model to the tree model all the expansion state of the rows is lost and we end up with just a list of the different years visible. Also, selections aren't maintained when switching models. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-14Improve tree model implementationGravatar Dirk Hohndel
We now support three hierarchy levels: day, month, and year. Each indicated by a negative DIVE_INDEX for -1 to -3. This allows a nice compact overview when doing date based sorting (the default). As indicated in the previous commit, things still go wrong with sorting by other columns as the entries are only sorted within each day, not globally across the whole dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-13Allow date based groupingGravatar Dirk Hohndel
This is the very first rough cut. It switches things over to a tree model so we can have date based summary nodes. It uses a DIVE_INDEX of -1 for summary nodes to easily tell them apart from actual dives. All the data functions are changed so the summary nodes only show the date they cover. The commit also adds a couple of debug functions to be able to easily peek into the model from the debugger. Lots of things left to do. There is no longer a first dive selected when starting subsurface. Sorting by columns other than date is messed up. We almost certainly want month and year summary entries as well. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-10Don't print a total weight of 0 in the weight columnGravatar Dirk Hohndel
For consistency with the rest of the dive_list we should interpret "no weight systems recorded" as "no information" and therefore print nothing instead of printing a total weight of "0" for these dives. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-07Add total weight column to divelistGravatar Dirk Hohndel
This adds the total weight carried on the dive in different weight systems to the divelist. The column is by default not shown, which can be changed in the preferences. The column is sortable. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-06Fill the list of weightsystems from data in existing divesGravatar Dirk Hohndel
This was simply an omission in the current implementation. All the plumbing was there but never got hooked up with the fixup_dive function as intended. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-06Remove weightsystem entry with no descriptionGravatar Dirk Hohndel
This existed in the initial implementation to deal with an implementation problem that was long since resolved. So now it just created just an ugly empty line in the drop down menu for weightsystems. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-08-06Remember the last weight used per weightsystemGravatar Dirk Hohndel
With this change, if the user adds a new weightsystem to a dive, on subsequent edits the weight amount for this weightsystem no longer defaults to 0 but to the last weight that was used with this weightsystem. So when the program imports a set of dives from the divecomputer and the user starts editing them, once they enter the weight for the "integrated" weightsystem the first time, for each of the consecutive dives that same weight is the default once "integrated" is selected - which usually will be the correct amount. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-07-12file.c: Fix a file descriptor leak in readfile()Gravatar Andrew Clayton
In file.c::readfile() the file was being opened once at fd declaration time and then again a few lines later and only being closed once. Remove the open() at fd declaration time leaving the later one where the fd check is done. Signed-off-by: Andrew Clayton <andrew@digital-domain.net> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-07-10Update for libdivecomputer pkg-config include file changesGravatar Linus Torvalds
Subsurface doesn't compile on OS X any more, because libdivecomputer changed the way the header inclusion works: the include path from pkg-config no longer includes the final "libdivecomputer" component, and instead of doing #include <header.h> for libdivecomputer headers, we're now supposed to do #include <libdivecomputer/header.h> instead. Which is cleaner anyway. The reason this only bit us on OS X is that I never trusted pkg-config that much for non-system libraries on Linux (maybe it works, maybe it doesn't, I've seen it go both ways), so on Linux we just used our own version of the include path, and thus weren't affected by the libdivecomputer config change. Clean up the includes while at it - we no longer need (or want) the device-specific header files, since we just use the generic functions. Reported-by: Grischa Toedt <toedt@embl.de> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-30Fix a couple of possible divide-by-zero conditions in statisticsGravatar Linus Torvalds
Several people reported the average time problem, but there's another one lurking there too: if the dive duration is zero, you get bogus average depth information too (but because that one was a floating point divide, and by default they are unsignalling on x86, it didn't crash, it just resulted in bogus results). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-27Make the 'Add Dive' dialog at least slightly less butt-uglyGravatar Linus Torvalds
I still suspect that using spinbuttons for the time handling is the wrong way, and I'm a bit surprised the Calendar widget doesn't have a mode where you can see/set the time too. But this makes things at least minimally prettier, and initializes the time entries to the current time (which is obviously not what anybody really wants, but looks a lot better than defaulting to "midnight" or some other random time that *also* won't be what anybody actually wants). I think this might be something we can live with, although I hope somebody with good taste comes along and say "don't use spinbuttons, do this: xyzzy" and makes things look better yet. Also, I have this suspicion that I should put the time/depth/duration stuff to the right of the calendar. Most displays are wider than they are tall, so tall and skinny dialogs are bad especially if you have limited vertical pixels. I still have flashbacks to my netbook-using days, hating applictions that did that. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-27Make it possible to do "Add Dive" from just the main dive menuGravatar Linus Torvalds
No need for right-clicks. It's inconvenient on lots of laptops etc, so allow just using the Dive menu as an alternative. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-27Add depth entry to new dive edit dialogGravatar Linus Torvalds
Christ, if you look up "Ugly dialog" on Wikipedia, I think it has a picture of this "New dive" thing. Or it should have. But it kind of works. Although with only a "max depth" entry, you can't currently set average depths etc, so SAC-rates etc cannot be calculated for these kinds of dives. And the dive numbering is wrong. We do auto-number new dives that get added at the end, but we do it as we add them, so when you *edit* the dive information (before it has been added) the dive number shows up as "#0". So there's certainly room for improvement here. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-27Rough "Add new dive" infrastructure in the divelistGravatar Linus Torvalds
Do a right-click to get a menu with the "Add dive" entry. Should do delete too, but that's for later. What's also apparently for later is to make this *useful*. It's the butt-ugliest time entry field ever, and there's no way to set depth for the dive either. So this is more of a RFC than anything truly useful. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-22Update to new sane libdivecomputer interfacesGravatar Linus Torvalds
This does mean that you have to build subsurface against a new version of libdivecomputer, and that version is likely going to have various slightly incompatible changes. But the new interfaces allow for easily adding new supported dive computers without subsurface having to be updated for each new vendor and model, so some slight pain is definitely worth it this time. I'm not even going to try to have some backwards-compatible version here, the libdivecomputer interface changes are so extensive. Native enumeration of devices is just the smallest part of it: the constants and types that libdivecomputer uses now have much nicer names that all start with DC_ or dc_, so you don't get the kinds of name clashes we had with "gasmix_t" etc. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-19Fix cochran CSV pressure data importGravatar Linus Torvalds
The cochran CSV pressure data is actually in units of '4 psi', not in just psi. That seems to be the resolution cochran internally keeps things in, and unlike the depth reading there's no conversion to standard units in the export (for depth, the quarter-foot depth resolution is converted to tenths of feet when exporting). Yeah, none of this makes any sense to me either, but I knew it was the case. I had just forgotten that factor-of-four when I did the importer. With this fix, I get the same subsurface data (modulo some rounding differences particularly for temperature) whether I go through David McNett's UDDF converter, or just import the CSV data directly. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-19cochran: add support for importing the exported CSV filesGravatar Linus Torvalds
The Cochran Analyst software can export the basic dive information as CSV files (comma-separated values). Individual CSV files contain just one particular type of information: depth, temperature or cylinder pressure, which is rather inconvenient. However, the way subsurface works, you can just import these CSV files all as individual dives, and then subsurface will automatically merge the dives with the same date and time - and in the process it will also merge all the samples. So it turns out that we don't really need any special handling. You can literally just do subsurface <list-your-cochran-export-files-here> and you're all done. Of course, the CSV files really *are* pretty useless, since they don't contain all the nice information about where the dive took place etc. So you literally just get the dive profile. But that's better than getting nothing at all. I'd love to actually be able to parse the real native Cochran Analyst software CAN files, but in the meantime this is at least a starting point. And if I'm ever able to parse those nasty CAN-files, this makes comparisons with the exports much easier. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-19Add a few more conversion helper functions to dive.hGravatar Linus Torvalds
Convert feet to mm, psi to mbar, and F to mkelvin. We do this elsewhere too, but I'm going to need it for the Cochran CSV files, so let's do the helpers now. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-19Update cochran depth precision: it's in 3-inch incrementsGravatar Linus Torvalds
The Cochran CSV depth exports are indeed in tenths of feet, but the decimal is always 0, 3, 5 or 8. Where the 3 and 8 are obviously 0.25 and 0.75 rounded up to one decimal place. So Cochran does seem to be very much about imperial units, with depth and cylinder pressure scaled by four (depth in quarter-foot increments, pressume in 4-psi increments) Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-18Add some more cochran data parsing code/commentsGravatar Linus Torvalds
The code is pretty useless, the comments perhaps equally so. I'm trying to figure out what the data pattern is for the cochran CAN files. There definitely *is* a pattern, but it actually seems to be different for the files of different people - and it's not obvious in any case. There probably are multiple versions of the format, and there might be things like "David has a high-pressure sensor, and Alex does not" going on too. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-06-18Add tankpressure parsing for UDDF filesGravatar Linus Torvalds
David McNett sent me some example Cochran CAN file data, along with his UDDF exports of same. I still have absolutely no idea how to decode the CAN files (although the subsurface decrypting code seems to correctly decrypt the data, and I see binary patters rather than just noise), but at least I can make sure we parse the UDDF portion better. See also https://github.com/nugget/cochran2uddf for David's tool to convert the Cochran CSV exports into UDDF. Data-source: David McNett <nugget@macnugget.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-29Save dive computer device name.Gravatar Terrance Stanfield
It is really annoying to have to type the device name each time you need to import a dive from your computer, if you are not using the default device name. This will save the device name in the configuration file and matches the logic currently used to save the dive computer name in the configuration file. Signed-off-by: Terrance Stanfield <t@hollowcranium.com>
2012-05-12Allow overriding the default xslt pathGravatar Linus Torvalds
It's very annoying to have to do "make install" to test a new xslt file, just because the default xslt path has the standard install path as the first entry. At the same time, we do want to default to just using the standard install location first. So to allow both testing, and having a nice sane default, just add support for a SUBSURFACE_XSLT_PATH environment variable that overrides the default one if it exists. So then you can just do SUBSURFACE_XSLT_PATH=xslt ./subsurface to run subsurface from inside the git tree itself, using the current files in the git xslt subdirectory. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-12Suunto SDE conversion: add boat name to notes if it existsGravatar Linus Torvalds
This is, I think, the last piece of relevant information that I can find in Szymon's SDE file. Which is not to mean that we get all the conversions right, or that we handle the more complex cases (still no multi-cylinder import, for example). But it should be much better than it used to be. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-12Suunto SDE updates, take 178: add weight and visibility infoGravatar Linus Torvalds
This converts the weight information into subsurface weights, and also adds visibility info (if it exists) into the notes for the dive. More fall-out from me looking at the nasty suunto xml files, now that I have a few that actually have some info that isn't just from the computer download. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-12Fix more Suunto SDM xml conversion problemsGravatar Linus Torvalds
Looking at the XML of the two dives Szymon Kosecki sent out to the subsurface list, I notice that our cylinder size conversion was wrong. It looks like CYLINDERUNITS is what determines whether the cylinder size is in metric (0) or imperial (1) units. Of course, if you gave a cylinder size in cuft and didn't give a working pressure, subsurface will just ignore the size as the random crap it is. We *could* default to a working pressure of 3000 psi, of course. This also picks up the CYLINDERDESCRIPTION value, although neither of Szymon's dives actually had any description. I need more SDE xml files to figure out how multi-cylinder dives look etc, but I think this gets most *simple* SDE files converted almost correctly now. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-11Fix dive notes import from Suundo SDMGravatar Linus Torvalds
The xslt translation didn't add the <notes> tag for the notes, so while it did select the notes from the SDM file, that never made it into the subsurface notes. Also added weather info to the notes, mainly as an example. There are probably other things we could do, but this fixes at least the trivial test-case from Szymon Kosecki. Reported-by: Szymon Kosecki <skosecki@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-07Fix subsurface.desktop category entryGravatar Khalid El Fathi
This desktop entry lists a category that is not one of the registered Main or Additional Categories in the FreeDesktop specification. Refer to http://standards.freedesktop.org/menu-spec/1.0/apa.html for details. Signed-off-by: Khalid El Fathi <khalid@elfathi.fr> Acked-By: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-07Fix subsurface manpage - missing description and parsing problemGravatar Khalid El Fathi
It's missing a brief description. The "NAME" section is parsed by lexgrog and used to generate a database that's queried by commands like apropos and whatis. Replacement a hyphen by a minus sign. Signed-off-by: Khalid El Fathi <khalid@elfathi.fr> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-05set subsurface_flush_conf() to no-op in wondows.cGravatar Lubomir I. Ivanov
flushing the entire registry is not required on windows. simply closing the registry key when done would suffice. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2012-05-03divecomputer importing: show the date of the currently importing diveGravatar Linus Torvalds
I'm hoping most other dive computers are quicker to import from than the Suunto I have, but mine can take minutes to import all the dives. Sure, we have that nice progress bar, so it shows that it's doing something, but it's not really showing *what* it is doing. So instead of showing just "Parsing dive X", let's show the date of the dive. That way, when it takes two minutes to import all the dives, at least you can see "oh, it's going back to the dives of last year" and it then feels like you have some good reason for the delay. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>