aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)Author
2011-09-21Tracking changes to tanks is trivialGravatar Dirk Hohndel
That's the one I should have started with. Signed-off-by: Dirk Hohndel <dirk@hohndel.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-21Do the pango text layout in multiple chunksGravatar Linus Torvalds
This way we can avoid the need for quoting, since we can just use text rendering instead of markup for the free-form fields. And we will want to make the pango layout width different for the date and location, since we want to fit the depth/duration to the right of them. I still haven't set the different width for the date/location, but this at least is going in the rigth direction. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-21Sue me: I'm not a fan of SerifGravatar Linus Torvalds
The default cairo font seems to be sans, but the default pango font is serif. Maybe it has something to do with my system font settings, but I doubt it: my desktop font settings are all sans-serif. So I think pango is just showing bad taste. Anyway, this just hardcodes the font to "Sans". Maybe somebody wants to make this all part of preferences some day, or pick it from their desktop font preferences. In the meantime, just fix the pango brain-damage. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-21Fix array underrun when calculating velocityGravatar Linus Torvalds
That code is messy. And it was buggy. Noticed by valgrind. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-21Fix up printing some moreGravatar Linus Torvalds
This makes things slightly prettier and adds back the depth and duration details to the printout. Still a few known problems: font choice, and the depth/duration thing can end up overlapping with a long location name. But it looks pretty good on the whole. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-21September comes before OctoberGravatar Tero Roponen
This patch fixes the ordering of month names. Signed-off-by: Tero Roponen <tero.roponen@gmail.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Fix 'struct plot_info' memory leakGravatar Linus Torvalds
The plot_info was never freed, so every time you'd plot something, we'd leak memory. I'm running valgrind to see if there's anything bad going on. So far it all looks fairly benign. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Printing: use pango markup for text generationGravatar Linus Torvalds
This gets us text wrapping etc. I think I have some serious memory leak somewhere, though, because if I print out all my dives it eventually ends up with broken dives and doesn't complete. But I am going to commit this as a "it kind of works" point. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Add completely BS dive text printingGravatar Linus Torvalds
The layout is crap, the handling of long lines in notes (or location) is wrong, the dive number handling is wrong. The thing is just a toy. But it's a toy that kind of works, and gives a much better idea of what a real dive log printout might look like. With the right kind of dive notes, it looks fine. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Try printing six dives per pageGravatar Linus Torvalds
Ok, so this may be too much, but I'm just playing around with layout. It could be a runtime choice too, of course. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.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-20Print out only simplified depth profileGravatar Linus Torvalds
None of the colors, nothing like that. Just a gray fill and a plain black depth line. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Clean up and simplify depth plotGravatar Linus Torvalds
Dirk wrote this before we have the 'plot_info' structure with the cleaned-up dive info. No need to maintain that separate array of depths and seconds. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Start fleshing out the dive printing a bit moreGravatar Linus Torvalds
Four dives per page sounds good. Maybe even six? But dangit, the default font choice for cairo printing sucks. And I need to learn about pango for actually printing the dive info. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org
2011-09-20Don't show the smoothed dive profile or the min/max infoGravatar Linus Torvalds
It was good for debugging, it's not something we really want to show people. 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-20Fix preferences dialogGravatar Linus Torvalds
Dirk took some old code when he did the merge of the newly split gui code. Fix it up. 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 git://github.com/sirowain/subsurfaceGravatar Linus Torvalds
* git://github.com/sirowain/subsurface: Fix Segmentation fault when trying to print an empty plot. Provide an icon for subsurface. Added a comment about libusb dependency in Makefile.
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-20Add "Apply"/"Cancel" buttons to dive equipment pageGravatar Linus Torvalds
It's too damn easy to make mistakes and not even notice them (odd gtk widget selection and keyboard input), or just start editing a cylinder thing and realize it was wrong. So instead of always saving the equipment information implicitly, add explicit "Apply" and "Cancel" buttons that save the information (or re-load it from the dive data structure) So now you need to press an extra button for your changes to *really* take effect. It can be a bit annoying, but it's better than the silent accidental equipment change that could happen before. 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-20Make a separate "Log" menuGravatar Linus Torvalds
Instead o fhaving everything in the "File" menu, make a separate menu for things that are very much specific about divelogs, rather than "generic" things like open/save/import. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-20Fix Segmentation fault when trying to print an empty plot.Gravatar Riccardo Albertini
When printing an empty plot, the function was missing nullability check for 'current_dive'. Now the print of an empty plot results with an empty blank page. A better solution could be making unsensitive the Print entry in the menu, until a plot is loaded. Signed-off-by: Riccardo Albertini <ssirowain@gmail.com>
2011-09-20Provide an icon for subsurface.Gravatar Riccardo Albertini
I designed a simple blue icon for subsurface with a diver in the middle. As suggested by Dirk Hohndel, I added the surface line above diver's head, so that now the icon reflects better the new application name. Signed-off-by: Riccardo Albertini <ssirowain@gmail.com>
2011-09-20Added a comment about libusb dependency in Makefile.Gravatar Riccardo Albertini
Due to libdivecomputer's dependency, can be necessary to add libusb to pkg-config in order to compile, so I exported the pkg-config line in the subsurface target to LIBS variable, and added a comment about libusb. Signed-off-by: Riccardo Albertini <ssirowain@gmail.com>
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-19Switch the dive list and dive profile panes aroundGravatar Linus Torvalds
It looks better this way, I think. 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>
2011-09-19Make the pane split be vertical rather than horizontalGravatar Linus Torvalds
Ok, this makes that dive list look empty and ugly, but as mentioned, we really should start filling it with all the useful information that we can sort by, like temperature and air use. And even stuff that might not make sense to sort by (would you want to sort by cylinder size or name? Or by nitrox percentage) could still be *shown* in the list fairly naturally. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Remove dive info frameGravatar Linus Torvalds
It has always been problematic, and I've been moving things in and out of it. And it just isn't a very powerful widget. You can't *do* anything with it. The information it shows you may be useful, but the core stuff already shows up in the dive list. And the dive list is actually a much superior widget over that static dive info frame. The information that shows up in the dive list can be sorted by column, for example. So when we show temperatures or SAC numbers in the dive info frame, that's actually a very bad place to show them: we would be much better off showing it in the dive list, and then we could sort by SAC or by temperature. In other words: just remove the thing. Instead, plan to extend the dive list to contain all the information. That will probably mean that we need to change the current pane widget to be a vertical pane, rather than a horizontal one, but what's wrong with that? Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-19Make the divelist column naming clearerGravatar Linus Torvalds
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>
2011-09-16Attempt to smooth out the velocity readingsGravatar Dirk Hohndel
If the velocity is slower than FAST then we look back up to 30 seconds and calculate the velocity for the past 30 seconds instead. For the first version I'm not doing the average of the changes but simply the change from beginning to end. The alternative would be to do another triangle smoothing or something like that - but as we don't know how many samples we have in the 30 second window, it's a little harder here. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2011-09-16Flip tank pressure graph to show the RIGHT wayGravatar Dirk Hohndel
This annoyed me from the first moment Linus added the tank pressure graph. As the pressure goes down, the graph needs to go down. Seriously. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>