* '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
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
That was stupid. The divelist column generation cleanup (commit
d3feb78df5: "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>
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>
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>
* '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 ]
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>
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>
It got removed by some of my overly aggressive cleanup in commit
fefcbf125e ("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>
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>
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>
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>
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>
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>
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>
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>
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>
.. 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>
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>
Currently we use random hard-coded integers, and it's not always clear
what is going on. Make it much more explicit with an enumeration of the
different divelist columns.
And change the column order to make it more logical, and make sure we
actually catch all uses while at it.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Just iterate over the dive list entries, updating them one by one.
This avoids the "selection destroyed" when the dive units are changed.
And it's cleaner anyway.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Each caller ends up needing it, and I missed another one. So rather
than update the other caller, just do it in dive_list_update_dives() and
we can stop worrying about it.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
..as suggested by Nathan:
"I also wanted to "zebra" color the divelist by setting the rules-hint
to TRUE. but I noticed it was already set explicitly to FALSE (even
if this is the default).
If this is just an accidental copy paste from some tutorial you can
experiment (set it to TRUE) and see what you like most."
It was indeed just copy-paste from some tutorial, and the zebra-coloring
does look nicer, doesn't it?
Suggested-by: Nathan Samson <nathansamson@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
.. and sort based on the 'time_t' value itself.
This allows us to use a more compact date format that doesn't need to
sort alphabetically, because sorting by date is always based on the date
value. So we can use just a two-digit year, and skip the seconds, to
keep the column narrow, while still sorting correctly.
Also, "Depth" is a nice header string, but it is wider than the column
itself, which makes the whole column wider than necessary. So put the
units in the header instead of in the string, keeping things narrow.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
We'll want to add various dive statistics, so... Without them, it all
looks pretty much the same, though.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
.. and repaint the profile when the selection changes.
Now, if it just wasn't so ugly, it might even be useful. Except it
obviously needs to also show all the other dive information. And allow
the user to fill in details. And save the end results.
So no, it's not useful.
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>