summaryrefslogtreecommitdiffstats
path: root/qt-ui/profile
AgeCommit message (Collapse)Author
2014-05-07Fix another dangling pointerGravatar Thiago Macieira
Same problem as the previous commit: toStdString() returns a temporary, and c_str() will return a pointer to internal data, freed at the end of the statement. So get the pointer to be strcpy'ed in the same statement. Changed to toUtf8() to be more explicit about the encoding and to avoid std::string Signed-off-by: Thiago Macieira <thiago@macieira.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-05Change the profile redraw logic after preferences were changedGravatar Dirk Hohndel
I we are showing a calculated ceiling, then we have to replot the profile after a preferences change as the gradient factors could have changed which might change a calculated ceiling. Also use the rulergraph preference instead of checking the settings directly. Fixes #511 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-05Fix bug in handling of fake SAMPLE_EVENT_PO2 eventsGravatar Dirk Hohndel
In commit bcdd6192fe45 ("Show translated event names in tooltip") I was too aggressive in replacing the checking for event names with checking for event types. It turns out that we are abusing an existing event type in the planner (and use a different event name to mark the difference). By just checking for the type this now caused incorrect information to be displayed in the info box (a simply "PO2 warning" on a Suunto D9 could turn into a "Bailing out to OC" notice). The correct fix is to get our own range of SAMPLE_EVENT_xxx numbers from libdivecomputer. Once we have those, we can do this the right way. For now we just fall back to also checking the event name (which is what I wanted to get away from so translated names don't trip us up). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-29Fix test for "air" in tooltip display of gaschangeGravatar Dirk Hohndel
The "is_air()" test works when we have the gases in permille, but not in percent. In that case we can just check for He == 0 and O2 == 21. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-29Show translated event names in tooltipGravatar Dirk Hohndel
In order for this to work we need to compare against the event type instead of the event name - which makes much more sense to do, anyway. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-28Make heartrate grid less confusingGravatar Dirk Hohndel
Having all the grid lines in the same color made things visually confusing. To clean this up a little make the heartrate lines a light gray color. Fixes #484 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-16Renaming the prefs struct members to be consistent with the QSettings.Gravatar Gehad Elrobey
-Renaming prefs members for consistency. -Changing references of QSettings to the prefs structure instead. -Removing unused functions in pref.h were left over from an old version. -Changing the data-type of bool members to short for consistency with other members. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-14Simplify codeGravatar Dirk Hohndel
This seems like a rather obvious optimization... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-14Make red ceiling workGravatar Dirk Hohndel
The existing code for toggling the DC reported ceiling in red or "surface color" clearly had never been tested. This seems to create a reasonably attractive implementation - not exactly what we had in the past, but good enough. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-11Change some references of QSettings to the pref struct.Gravatar Gehad elrobey
After adding the animation member in the preference struct, it is very resonable to change these references of QSettings to the preference structure instead. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-10Feature to show or hide heart rate graphGravatar Lakshman
Adds new push button "HR" to the button bar on the dive profile to toggle display of heart rate. TODO: New icon for the heart rate button is needed. Fixes #485 Signed-off-by: Lakshman Anumolu <acrlakshman@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-07Change position of heart rate labels on y-axisGravatar Willem Ferguson
The lettering of the heart rate numbers on the lefthand exis "fall off" the left hand of the profile panel when the panel is a bit narrow. This minute change moves the letters a bit closer to the Y-axis so that their left-hand extreme is more or less in line with those of the depth-labels on the Y-axis. This is a partial response to Ticket # 484. See #484 Signed-off-by: Willem Ferguson <willemferguson@zoology.up.ac.za> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-03Random small whitespace cleanupsGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-03Edit name option for bookmarksGravatar Yosef Hamza
Add the option to edit the name of a bookmark to be more meaningful for the user they prefer. It works just as simple bookmarks and can be removed and hidden. It won't accept names longer than 22 characters because longer names will display as garbage text. Also changed the code from displaying flag depending on event name to depending on event type. Signed-off-by: Yousef Hamza <jo.adama.93@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-28Toggle showing average depthGravatar Lakshman
Add additional check box in "preferences->graph" section that allows users to hide average depth on dive profile. By default this option is checked to show average depth. Fixes #475 Signed-off-by: Lakshman Anumolu <acrlakshman@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-27Profile2: hide the tooltip and ruler if we are printingGravatar Lubomir I. Ivanov
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-27Profile2: add use of the isGrayscale flag when getting a colorGravatar Lubomir I. Ivanov
getColor() has a default argument for grayscale set to false. With this patch we pass it the local isGrayscale flag, which can only be set during printing. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-27Profile2: add some print related flagsGravatar Lubomir I. Ivanov
Some flags like printMode and isGrayscale are missing yet needed. The flag printMode is required so that we know *when* to hide certain elements such as the ruler and tool tip (e.g. not needed while printing). isGrayscale should be passed to all getColor() calls, so that the greyscale color table is respected. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-27Ruler: fix bad scaling for the text backgroundGravatar Lubomir I. Ivanov
The ruler text's white background scales badly. This patch adds the ItemIgnoresTransformations for the textItemBack object and matches the dimensions and position of the textItem object in front of it. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-27Repaint ruler when enable/disabling itGravatar Jan Mulder
Repaint ruler when enable/disabling it. Straightforward replot() added. Fixes #479 Signed-off-by: Jan Mulder <jlmulder@planet.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-21Make pp graphs visible at startup according to settingsGravatar Jan Mulder
Changeset a90818671 introduces a small inconvenience. The pp graphs at startup are not shown according to the visibility settings. Requiring to toggle the icons to show the desired pp graph. Trivial fix. Signed-off-by: Jan Mulder <jlmulder@planet.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-20Removed Duplicate IncludesGravatar Hugle
Signed-off-by: Hugle <wulong@comp.nus.edu.sg> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-20Remove a bit of space from the Axis and its labels.Gravatar Tomaz Canabrava
This should make the layout work better on smaller screens. Fixes #458 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-20Make ruler respect dive depth.Gravatar Tomaz Canabrava
The only place on the code that the y() position didn't accompanied the dive-depth was this one, so let's see if this patch fixes it. See #455 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-19Profile2: fix widths on some lines for Qt5Gravatar Lubomir I. Ivanov
Qt5 uses different widths for some of the poly. lines in the profile. Setting an explicit value fixes that. Tested-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-18Profile2: use unsigned int for the divecomputer numberGravatar Lubomir I. Ivanov
display.h: dc_number is unsigned int, thus a couple of warnings may pop-out. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-18Clear PN2 PO2 PHE GasItemGravatar Hugle
After the dive log has been closed, the ProfileWidget2 does not clear the pn2 po2 and ph2 gas line. This patch cleared the three lines after dive log closed. Acked-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Hugle <wulong@comp.nus.edu.sg> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-17Be more careful about dive computer selectionGravatar Linus Torvalds
The selection logic was a bit random: some places would return NULL if the dive computer index was out of range, others would return the primary dive computer, and actually moving between dive computers would just blindly increment and decrement the number. This always selects the primary computer if the index is out of bounds, and makes sure we stay in bound when switching beteen dive computers (but switching between dives can then turn an in-bound number into an out-of-bounds one) Fixes #464 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-17Silly change to a commentGravatar Dirk Hohndel
I had intended to amend the previous commit with this before pushing it out. This changes the comment that pointed out the bug that the previous commit fixed. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-16New profile: fix event hiding logicGravatar Dirk Hohndel
Turns out we unconditionally set all events as visible when redrawing the dive - even with a comment that this should take into account if the event is visible. Oops. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-15New profile: add event manipulation to context menuGravatar Dirk Hohndel
This got lost when we switched to the new profile. Remove event works. Hide events does call hide() on the DiveEventItem but for some reason it stays visible. I'll hope for one of the more experienced Qt people to fix that. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-15Bugfix: generalize pp graphs to allow for multi over-threshold periodsGravatar Jan Mulder
Especially in O2 decompression parts of a dive, the pp02 is typically very close to the threshold value (normally 1.60 bar). The old implementation of the pp profile graphs assumes that there is exacty 1 consecutive set of samples that needs to be in the "warning color". This results in an erroneous display of the mentioned graphs, connecting multiple episodes of too high pp with bogus lines in between. This fix generalizes the pp graph logic to allow for multiple segments of high pp, each to been drawn seperately in the "warning color". Signed-off-by: Jan Mulder <jlmulder@planet.nl> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-13New profile: fix Information overlay locationGravatar Dirk Hohndel
By simply storing the coordinates based on the scene (instead of trying to map them to real coordinates) the overlay position is correctly restored. Also remove the redundant positioning before readPos is called. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-12Profile2: place the ruler and tooltip on top (Z order)Gravatar Lubomir I. Ivanov
The topmost Z order of items in the profile should be: - background (poster / logo) - toolTipItem - rulerItem ... This mostly fixes the ruler being under other elements. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-12Ruler: change how the ruler text drawing worksGravatar Lubomir I. Ivanov
A couple of problems with the ruler: - the rotated text doesn't look very well at all and interpolation doesn't help it much - measuring towards the right most part of the profile makes the text go out of the screen To solve these issues and attempt to improve the ruler this patch does the following: - place the text at the bottom of the lowest of the start and end points. this way the line will never intersect with the text - clamp the x position, so that the text doesn't ever leave the screen horizontally - place a white background behind the text so that it will cover text and graphics under the ruler item (TODO: place the ruler on top of everything else) Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-11Only anim if not first dive when openning subsurface with a divelog.Gravatar Tomaz Canabrava
The animation appeared when the user started subsurface with a default file, wich was a little annoying since it didn't had a 'from' position to go and it was also increasing it's size on some window managers that do subtle windows animations when a program starts. This patch treats the first dive opened when the program loads with a divelog pa rameter differently as the following ones storing the velocity value on a temporary, and reassigning it later. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-11Support save / load for the Animation Speed on the PreferencesGravatar Tomaz Canabrava
User can now fine-tune the animation speed on the preferences, a value of zero disables it completely. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-11Support Animation Speed via Settings.Gravatar Tomaz Canabrava
This is very userfull for a ( yet to be implemented ) preference dialog about the animation speed, so the user can enable / disable the animations or make it a bit faster for it's taste. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-11Profile2: provide means to disable the tool buttonsGravatar Lubomir I. Ivanov
Once the poster is displayed when there are no dives in the list, we may also want to disable the QToolButtons (PO2, SAC, etc..), until a new dive is loaded and the profile is redrawn. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-10Profile2: reset the zoom level when a new profile is drawnGravatar Lubomir I. Ivanov
If the user has zoomed in but then changes to a new dive, we may want to reset the scale back to the original value (1.0) based on the current zoomLevel, so that the profile is not stuck in zoomed mode. This patch adds a snippet that resets the QGraphicsView scale, zoomLevel variable and also the toolTip position. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-10Profile2: use a different image when no profile is visibleGravatar Lubomir I. Ivanov
This patch adds a new image resource named poster.png which, is shown instead of the 3 posters. The main reason for that is due to the poster text not being visible. This new image is pretty much the Subsurface logo only. It also removes the grid lines, while the poster is visible. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-10Profile2: use an implicit initializer for a struct arrayGravatar Lubomir I. Ivanov
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-10Profile2: fix some initializer list order warningsGravatar Lubomir I. Ivanov
Such can be disabled with -Wno-reorder and are clearly more of a nuisance, but C++98 12.6.2.5 says the order should be the same as in the class declaration. On theory this would only speed the compile times a tiny amount. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-09Fix retrieving the initial position of the Notification Area.Gravatar Tomaz Canabrava
We had all in place, all that was missing was to actually load the position stored on the settings for the tooltips. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-09Code Cleanup ( that fix 2 bugs )Gravatar Tomaz Canabrava
This code cleanup fixes the two issues that I raised on my last e-mail. hurrah. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-07Remove a Lot of Dead Code.Gravatar Tomaz Canabrava
This is just removal of dead code from the old profile, probably there's still a bit more to remove, but this is a very good cleanup already. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-07Remove the old profile from the main screen of SubsurfaceGravatar Tomaz Canabrava
This patch partially removes the code for the old profile from Subsurface. It removes the use of the old profile on the mainwindow, but keeping the code in the tree for now. A bit of code-cleanup also entered this commit because I had to change every instance of the code that used the old profile. Now to the real code-cleanup Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-07Fix a crash on changing dives when the ruler is used.Gravatar Tomaz Canabrava
The ruler is a weird beast - it has two child objects that access the parent to call another function, that call the child functions. When I updated the plot_info I didn't take that into consideration, what happened is that when I set the parent's plot_info, the children's plot_info are still invalid, but the update method is called anyhow. This patch updates all plot_info's before calling anything else. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-03Whitespace cleanupGravatar Dirk Hohndel
Minor change to the perl postprocessing script and resulting changes to the affected source files. This deals with two issues: - "foreach"-like structures were not always treated correctly - some longer calculations that ended on "+ constant" were reformatted in a rather unatractive manner In one source file (divelist.c) I ended up adding braces to the sources... trying to cascade the indentation further down without having the block there seemed a lot more trouble than it's worth. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-03-02Add Units to mean depth valueGravatar Gopichand Paturi
Fixes #445 Signed-off-by: Gopichand Paturi <gopichandpaturi@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>