aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
AgeCommit message (Collapse)Author
2014-07-17Use plot_data cylinderindex instead of event dataGravatar Anton Lundin
For the info box, we can't use the event data, because its not 1:1 mapped to whats in the cylinder and what we actually switched to. Use the plot_data here we already calculated what we are switching to. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-15Do not create a backup for Q_FOREACH containerGravatar Tomaz Canabrava
Q_FOREACH will expand and already creates a copy of the contained container, so this is just a waste of cpu cycles and also increases a tiny bit the memory consumption. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-14Shrink YAxis when heart rate is on displayGravatar Lakshman Anumolu
This patch makes sure that YAxis is not expanded to cover heart rate when it is displayed on profile panel. Signed-off-by: Lakshman Anumolu <acrlakshman@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-14profile2: remove unused varable diveComputerGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-12Rename event: correctly replace event with new oneGravatar Dirk Hohndel
I don't like that the event structure includes the variable length array. That really makes it a pain to change the name of an event (on the flip side, freeing events is easier I guess). Anyway, to correctly rename an event we need to actually remove the event from the correct dc and then add a new event with the new name. The previous code was insane (it only worked if the new name was of smaller or equal length, otherwise it had a beautiful buffer overflow). And of course we need to do this both for the current_dive and the displayed_dive. Fixes #616 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-12Fix inserting gaschange eventsGravatar Miika Turkia
Use a macro that works to get the current DC. Fixes #613 Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Mark divelist changed when adding bookmarkGravatar Miika Turkia
Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Code cleanup: removed bogus animation functionsGravatar Tomaz Canabrava
All animations are now on the Animations namespace, which resulted in a bit of code cleanup, which is nice. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Correctly disable all animationsGravatar Tomaz Canabrava
This seems to be needed for the correct print of the profile, What was happening on the print code was that the profile even in print mode was doing animations, and we were getting a frame of it and trying to print it. Also, a bit of code cleanup. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11profile capitalisationGravatar Tim Wootton
Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Planner: add event that explains when planner turns redGravatar Dirk Hohndel
I don't know why the plot_info was walked backwards - for our purposes walking forward needs to make a lot more sense. And the event nicely goes away when the diveplan gets modified and the displayed_dive gets reset. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Planner: fix calculation when it is safe to surfaceGravatar Dirk Hohndel
We were comparing with a negative depth which apparently confused the algorithm. Fixes #611 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-10Show/Hide pictures working.Gravatar Tomaz Canabrava
This code hoocks the pictures with the preferences change. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-10Added the toggle picture button and hoocked it upGravatar Tomaz Canabrava
This patch adds the toggle picture button and hoocks it up with the rest of the code. I'v also changed a call from ProfileWidget because it caused errors on the ui generated code, where it would try to call an still-to-be instantiated object. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-10Use different gas change iconsGravatar roberto forini
[Dirk Hohndel: scaled PNG files and added the code to show them and to make them somewhat bigger] Signed-off-by: roberto forini <forini.r@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-09Printing: scale fonts when printingGravatar Dirk Hohndel
This seem to work better, but it misses a couple of items at times (for example the highest label on some of the axis). Needs lots more testing. See #590 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-09Printing: force redrawing of the profileGravatar Dirk Hohndel
If the first dive we end up rendering is the dive currently shown, the info overlay would end up being printed which looks really silly. See #590 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-08replot() needs to really force a replotGravatar Dirk Hohndel
So let's set forceReplot to true to make sure that happens. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-03UI restructure: don't use random dives from the divelist for dataGravatar Dirk Hohndel
Everything should come from the displayed_dive. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-03UI restructure: always display pictures for displayed diveGravatar Dirk Hohndel
The only time this is ever wrong is in print mode, so let's never show pictures in print mode. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-03UI restructure: updateDiveInfo shows the selected dive by defaultGravatar Dirk Hohndel
So don't be redundant. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-03UI restructure: plotDive: plot current dive by default & use displayed_diveGravatar Dirk Hohndel
No longer use the dive structure that is passed in but instead always use the displayed_dive to display things. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-02UI restructure: plotDive should just take one diveGravatar Dirk Hohndel
We don't have a concept of what to do when plotting multiple dives, so let's not pretend and remove all the messing around with lists. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-01Don't show gaschange events at the beginning of a diveGravatar Linus Torvalds
The initial gas change event is really special - it just specifies the gas mix from the dive computer. So don't show it as an event if that already matches the initial gas. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-30Only replot the dive if maxDepth > oldMaxDepth on plan / add mode.Gravatar Tomaz Canabrava
This fixes the "impossible to work with" planner with the mouse now the dive will only grow and not shrink untill you release the mouse. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-30Better colors for Add and Plan modes.Gravatar Tomaz Canabrava
Those are ligther colors and it should be a better choice a way better choice is to ask for a designer wich color to use but most of my minions are busy. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-29Profile: show dive computer nickname instead of modelGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-28Profile: change event icon for gaschangeGravatar Dirk Hohndel
This is not ideal, but it gets us closer to what we need. Fixes #556 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-28Profile: remove old picture event handling codeGravatar Dirk Hohndel
We now handle pictures differently. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-27Fix dive picture positionGravatar Tomaz Canabrava
I was messing with the origin point, making the dive picture be a tiny bit to the right. This removes the rotation, but that was also not very good. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-27This is unecessary when calling methods.Gravatar Tomaz Canabrava
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-27Open picture manager when clicking on the picture at the profileGravatar Tomaz Canabrava
This patch makes the click on pic == open picture browser works also on the profile instead of only on the list view.. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-25Deco artefacts with low GFlowGravatar Robert C. Helling
In a dive, when you choose a very low GFlow (like 5 or 9) and a trimix with quite some He (12/48 in the example) and descend fast, the ceiling seems to do strange things in the first minutes of the dive (very very deep for example or jumping around). To understand what is going on we have to recall what gradient factors do in detail: Plain Buehlmann gives you for each tissue a maximal inert gas pressure that is a straight line when plotted against the ambient pressure. So for each depth (=ambient pressure) there is a maximally allowed over-pressure. The idea of gradient factors is that one does not use all the possible over-pressure that Buehlmann gives us but only a depth dependent fraction. GFhigh is the fraction of the possible over-pressure at the surface while GFlow is the fraction at the first deco stop. In between, the fraction is linearly interpolated. As the Buehlmann over-pressure is increasing with depth and typically also the allowed overpressure after applications of gradient factors increases with depth or said differently: the tissue saturation has to be lower if the diver wants to ascent. The main problem is: What is the first stop (where to apply GFlow)? In a planned dive, we could take the first deco stop, but in a real dive from a dive computer download it is impossible to say what constitutes a stop and what is only a slow ascent? What I have used so far is not exactly the first stop but rather the first theoretical stop: During all of the dive, I have calculated the ceiling under the assumption that GFlow applies everywhere (and not just at a single depth). The deepest of these ceilings I have used as the “first stop depth”, the depth at which GFlow applies. Even more, I only wanted to use the information that a diver has during the dive, so I actually only considered the ceilings in the past (and not in the future of a given sample). But this brings with it the problem that early in the dive, in particular during the descent the lowest ceiling so far is very shallow (as not much gas has built up in the body so far). This problem now interferes with a second one: If at the start of the dive when the all compartments have 790mbar N2 the diver starts breathing a He-heavy mix (like 12/48) and descents fast the He builds up in the tissues before the N2 can diffuse out. So right at the start, we already encounter high tissue loadings. If now we have a large difference between GFhigh and GFlow but they apply at very similar depth (the surface and a very shallow depth of the deepest ceiling (which for a non-decompression dive would be theoretically at negative depth) so far) it can happen that the linear interpolation as opposite slope then in the typical case above: The allowed over-pressure is degreasing with depth, shallower depth do not require lower gas loading in the tissue (i.e. can be reached after further off-gasing) but but tolerate higher loadings. In that situation the ceiling disappears (or is rather a floor). So far, I got rid of that problem, by stating that the minimum depth for GFlow was 20m (after all, GFlow is about deep stops, so it should better not be too shallow). Now the dive reported in ticket #549 takes values to an extreme in such away that 20m (which is determined by buehlmann_config.gf_low_position_min in deco.c) was not enough to prevent this inversion problem (or in a milder form that the interpolation of gradient factors is in fact an extrapolation with quite extreme values). This patch that gets rid of the problem for the dive described above but still it is possible to find (more extreme) parameter choices that lead to non-realistic ceilings. Let me close by pointing out that all this is only about the descent, as it is about too shallow depth for GFlow. So no real deco (i.e. later part of the dive) is inflicted. This is only about a theoretical ceiling displayed possibly in the first minutes of a dive. So this is more an aesthetically than a practical problem. Fixes #549 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-23Be more consistent in partial pressure namingGravatar Henrik Brautaset Aronsen
Lets just use pO₂ instead of PO2, ppO2, ppO₂, PO₂. They all mean the same, but it's better to be consistent Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-18Enable Info box in the planner again.Gravatar Anton Lundin
Its great to be able to see the planned "turn pressure", EADD at different points and so on. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-11Allow the user to delete a dive computer from a diveGravatar Dirk Hohndel
This can't be the only dive computer, of course. Goes nicely with the ability to reprder them. Fixes #551 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-11Profile: add a flag to force redrawing the profileGravatar Dirk Hohndel
This is needed if something has changed that requires a redraw, but the plotDives() function can't tell (for example when a dive computer has been deleted and there's now a different DC in the same spot, with the same number - see next commit). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-11Deal with some uninitialized variable warningsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-10Picture handling: when zooming thumbnail, put it in the foregroundGravatar Dirk Hohndel
This just seems to look much better. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-10Planner: show the GF used for planning on top of the profileGravatar Dirk Hohndel
Showing the GF in the preferences is just confusing. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-09profilewidget2: fix -Wreorder warningsGravatar Lubomir I. Ivanov
warning: 'ProfileWidget2::someVariableName' will be initialized after [-Wreorder] Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-09Picture handling: switch to stronger typed offsetGravatar Dirk Hohndel
Also change the on file XML to be even easier to read by making it a duration as well (which gets us '32:34 min' instead of un-typed seconds). This is backwards compatible, it will happily read what was written with the previous commit). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Pick the correct API function name for Qt5Gravatar Dirk Hohndel
Subtle change in function name from Qt4 to Qt5 setAcceptsHoverEvents -> setAcceptHoverEvents Now Subsurface builds with Qt5 again. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Picture handling: change data structure to store offset instead timestampGravatar Dirk Hohndel
It makes no sense to store a 64bit time stamp with every picture. Even the 32bit offset (in seconds) from the dive start is WAY overkill. But switching to that makes the code much more simple in a number of spots. And makes what is saved to the XML file easier to read, too. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Picture handling: stagger the picturesGravatar Dirk Hohndel
If the pictures are too close to each other, spread them out a bit more. This seems to give a reasonably pleasant layout. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Picture handling: put the picture near its correct time during the diveGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Rotate the picture around -4 and 4 degrees.Gravatar Tomaz Canabrava
This patch rotates the picture a bit, so it looks like it was splattered around the profile. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Add a drop shadow on the pictureGravatar Tomaz Canabrava
This patch adds a drop shadow on the picture. a real blurry shadow could be much better, but without OpenGL it's too costly to calculate the shadow for each picture. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Add a nice white rectangle around the pictureGravatar Tomaz Canabrava
This makes the picture looks a bit more like a real paper picture shadow's missing, though. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Subtle animation when the picture gets hovered with the mouse.Gravatar Tomaz Canabrava
This patch adds a subtle animation when the picture gets hovered with the mouse, and restored to it's original size when mouse exits the image area. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>