summaryrefslogtreecommitdiffstats
path: root/divelist.c
AgeCommit message (Collapse)Author
2011-11-21Exclude surface intervals from sac rate calculationGravatar Dirk Hohndel
We assume every sample with a depth of less than 10cm to be on the surface. This does not impact our interpolated pressures (one could assume that the diver is not breathing from the regulator when on the surface - but without air integration that's just an assumption). It also doesn't change our tank pressure coloring by sac rate as that always uses the momentary sac rate. Technically speaking this might impact the actual colors printed (as those are relative to the total sac on the dive which may go up due to this change). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-19Make double-clicking on the dive list bring up the dive editorGravatar Linus Torvalds
Now that the dive info window is read-only, we need to edit the dives some other way. We bring up a dive info edit dialog when you double-click on the dive list entry for that dive. I do want to have an "edit" button or keyboard shortcut or something too, though. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-17Merge branch 'sacplot' of git://github.com/dirkhh/subsurfaceGravatar Linus Torvalds
* 'sacplot' of git://github.com/dirkhh/subsurface: Color pressure plot according to current SAC rate Fix minor coding standard issues introduced by my last commit
2011-11-16Show dives "latest-first" by defaultGravatar Linus Torvalds
You can still order them by date by just setting the sort order on the date column, but normally you'd be more interested in the most recent dives. I tried to just scroll down to the last ones automatically instead, but gtk makes that *really* hard to do. If you do it in the natural place for it, the scroll bar wll show up later and then cover up the last entry anyway. So you'd have to do some crazy expose event thing or something. Which may be the right thing to do eventually anyway, but not worth the pain right now. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-16Show more of the dive location in the dive listGravatar Linus Torvalds
Randomly picked up to 60 characters. But maybe we should just get rid of the limit entirely. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-13Fix minor coding standard issues introduced by my last commitGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-13Make sure SAC and OTU get recalculated after cylinder info was changedGravatar Dirk Hohndel
Also fixed minor coding style issues (prevent useless code from being executed). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-09Fix up air use calculations for new pressure handlingGravatar Linus Torvalds
Make sure that we calculate air use by using the proper start/end pressures, with the manually set ones being used preferentially over any possible sample data. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-11-01Even more places with pressure and volume conversionsGravatar Dirk Hohndel
Amazing at how many spots we are re-implementing the wheel. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-01Use unit functions to get column headers, add unit function for pressureGravatar Dirk Hohndel
Finally getting more consistent overall in how we convert between the different units and how we decide which units to display. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-11-01More consistency improvementsGravatar Dirk Hohndel
Treat SAC and OTU consistently: - SAC is now a member of struct dive - it's calculated / populated at the same time with a helper function with consistent API Create get_volume_units function that returns volumes (e.g. used in SAC rates) based on preferred units - make sure we have these conversions just once in the code. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-10-23Disable sorting by dive numberGravatar Dirk Hohndel
This is based on Linus idea and code - just adding it to my UI branch in case he didn't actually add it to his code... It makes no sense to sort by dive number - every sane person will have dive numbers be chronological; so they can sort by date instead. But removing this option wastes less space and makes the dive list look much better Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-10-23Make columns for temperature, cylinder, and nitrox optionalGravatar Dirk Hohndel
Just like SAC and OTU these can now be turned on and off through the preferences. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-10-23Show dive number in dive listGravatar Dirk Hohndel
Make sure that renumbering the divelist correctly shows up on the display. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-10-20Allow multiple selections in the dive listGravatar Dirk Hohndel
At this point we don't do anything with this - the commit just provides the infrastructure changes so that this becomes possible. Subsurface behaves the same if exactly one dive is selected and simply keeps the last selected dive if zero or more than one dives are selected. The goal is to be able to select multiple dives and then do actions on them. For example pick a tank used for all of them. Or edit the location or (yet to be implemented) other equipment data like weight carried. And also to be able to merge multiple dives. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-10-02Split up generic code to generate a gtk tree view columnGravatar Linus Torvalds
We used to do this just for the dive list, but the new cylinder view will want to do a lot of the same boilerplate gtk stuff, so make it a bit more generic and move it to gtk-gui.c. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-27Add preference option to chose if SAC and/or OTU should be in divelistGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-26Make OTU column invisible by defaultGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-22Add OTU to divelistGravatar Dirk Hohndel
and change OTUs to be tracked as int, not double Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-22Calculate OTUs for every diveGravatar Dirk Hohndel
The calculation assumes that the cylinderindex in each sample tells us which PO2 the dive was breathing at that time. This needs to be verified with dives where there is an actual gas switch. No idea where to display them, yet. Far fewer people will care about this than care about SAC - does this still rate a spot in the dive_list? I guess I could make it part of the dive_info - but it's not editable. It doesn't seem to fit with the equipment page (even though this is the one editable field that is related - nitrox %) Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-22Minor change to the alignment of the divelist columnsGravatar Dirk Hohndel
Just seems to look nicer this way. And actually implements consistent alignment management for the columns to begin with. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-22Put the location last in the dive listGravatar Linus Torvalds
The whole auto-expansion of an entry in the middle thing really doesn't work very well in gtk. Give up on it. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-22Put the default focus on the dive list at startupGravatar Linus Torvalds
This is some crazy stuff. Apparently the only sane way to do this is by hooking into the "realize" callback for the dive list widget. Whatever. Dirk did the googling to figure this all out. Suggested-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-22Fix up some minor whitespace issuesGravatar Linus Torvalds
Dirk clearly isn't as anal as I am about pretty whitespace. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-22Select the first dive after filling the dive listGravatar Linus Torvalds
We should always strive to have a dive selected, so pick the first one (that was how the dive list logic worked anyway, it just wasn't truly selected at the tree-view level, so it wasn't *visibly* the selected dive). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-22Make the dive list searching act on the locationGravatar Linus Torvalds
It used to be "index 0" which originally was the date string, but not only has that changed (it's now just the dive index), it's kind of pointless to search for a date string. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-22In divelist maxdepth column, only show depth unitGravatar Linus Torvalds
Show "m" or "ft" instead of "max/m" vs "max/ft". The column really doesn't want to be that wide. The column header is already the widest part of it even with this short name (due to the sort order arrow thing). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-21Simplistic first attempt to get changes saved when quitting subsurfaceGravatar Dirk Hohndel
Track whether things changed in the global dive_list So far this actually works if changing dive info (but only if dive selected was changed after the dive info was changed). We are not tracking changes to the cylinder information, yet. also remove the duplicate static dive_list Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-20Fix up printing some moreGravatar Linus Torvalds
Use the actual degree sign for temperatures (°F and °C), and make sure everything uses the proper "set_source_rgb[a]()" wrappers to set the colors. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Fix divelist sortingGravatar Linus Torvalds
That was stupid. The divelist column generation cleanup (commit d3feb78df527: "Make helper function for creating TreeView columns in the dive list") had a but too much copy-paste going on, and didn't always have the right column indexes.. t still *looked* right, but sorting didn't work at all. Reported-by: Chris Lewis <chrislewis915@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Separate out the UI from the program logicGravatar Dirk Hohndel
The following are UI toolkit specific: gtk-gui.c - overall layout, main window of the UI divelist.c - list of dives subsurface maintains equipment.c - equipment / tank information for each dive info.c - detailed dive info print.c - printing The rest is independent of the UI: main.c i - program frame dive.c i - creates and maintaines the internal dive list structure libdivecomputer.c uemis.c parse-xml.c save-xml.c - interface with dive computers and the XML files profile.c - creates the data for the profile and draws it using cairo This commit should contain NO functional changes, just moving code around and a couple of minor abstractions. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-20Make the divelist font configurableGravatar Linus Torvalds
Instead of the hardcoding to "Sans 8", allow people to set it in the preferences. Also, make the unit choice be a frame in the preferences dialog instead. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Merge branch 'for-linus' of git://github.com/dirkhh/subsurfaceGravatar Linus Torvalds
* 'for-linus' of git://github.com/dirkhh/subsurface: Attempt to get the location column to resize in a sensible way Minor tweaks to column headers [ Fixed up minor semantic merge conflict due to the change to make 'dive_list' internal to divelist.c ]
2011-09-20Make 'struct DiveList' entirely internal to divelist.cGravatar Linus Torvalds
Passing it around is just annoying, and we only ever have one. Let's not burden all the users with the silly thing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Attempt to get the location column to resize in a sensible wayGravatar Dirk Hohndel
Previously the SAC column was the one that expanded which is silly We also used to cut the location off at 16 characters Now we try to make the location the one that expands and allow up to 40 characters, but there's something broken, still. If you manually shrink the location column to its minimum size then subsequently resizing the window gets the desired behavior. But if you don't manually resize the location column it doesn't shrink correctly for windows that are smaller than the space we need for all columns to fully display (instead we get a horizontal scrollbar) Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-20Minor tweaks to column headersGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-19Reinstate the main window titleGravatar Linus Torvalds
It got removed by some of my overly aggressive cleanup in commit fefcbf125e89 ("Remove dive info frame") because the dive info frame initialization also initialized the main window title.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Hacky hard-coded font for dive list entriesGravatar Linus Torvalds
This really is too wrong for words, but I do think the dive list may look better with a smaller font. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Make helper function for creating TreeView columns in the dive listGravatar Linus Torvalds
Let's not repeat the boiler-plate code more than necessary. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add cylinder description to dive listGravatar Linus Torvalds
And I *really* would want to make the dive list be a ComboBox or something like that, rather than a ListView. I need to really understand those things, though. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Turn the rest of the duplicate string fields to use render functionsGravatar Linus Torvalds
So instead of having a depth field (in mm) for sorting, and the text field that contains the same thing in text, we now have all the fields we use in "native" format, and we just render them as text dynamically. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Use renderer function for divelist depth field tooGravatar Linus Torvalds
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Use a renderer function on the date fieldGravatar Linus Torvalds
Instead of creatign an extra column containing the date text, use a renderer function to create the text dynamically. Just the date right now, but we'll do them all this way. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Oops, fix typo. EAN, not EADGravatar Linus Torvalds
Typo turned EAN (Enriched Air Nitrox) to EAD. Which does mean something too, just to confuse people - but while it's still nitrox-related, it's entirely the wrong thing (Equivalent Air Depth). I don't think anybody would ever care to see *that*. With computers, why would you care? Anyway, Dirk noticed it, and suggested I just use O2% instead. It's not like EAN is all that readable either. Reported-by: Dirk Hohndel <dirk@hohndel.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Update the divelist when dive info changesGravatar Linus Torvalds
This flushes the dive changes to the dive list, the way the old dive info frame would update as you update dive fields. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add air usage calculations to dive listGravatar Linus Torvalds
Hey, now you can sort your dives by how good your SAC is. Which sounds more useful than it probably actually is. But maybe you can see patterns in what makes your SAC suck.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add location to divelist tooGravatar Linus Torvalds
Sure, it's visible elsewhere, but this way you can search and sort for it, and see several entries at once. So again, having it visible in the dive list is a good thing. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Clean up divelist generation some moreGravatar Linus Torvalds
.. and make the date string much more readable, now that we aren't actually size-constrained any more. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Start filling in temperature and nitrox data in dive listGravatar Linus Torvalds
Still more to go, but it's slowly fleshing out.. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Add temp/nitrox/sac entries to divelistGravatar Linus Torvalds
This doesn't really fill them, it just adds them to the possible entries. I'll get to it later. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>