summaryrefslogtreecommitdiffstats
path: root/qt-ui
AgeCommit message (Collapse)Author
2014-08-06Make gas use statistics be coherent and more completeGravatar Linus Torvalds
The gas use logic in the dive statistics page is confused. The SAC case had a special case for "unknown", but only for the first gas. Other gases had the normal empty case. Also, the logic was really odd - if you had gases that weren't used (or pressures not known) intermixed with gases you *did* have pressure for, the statistics got really confused. The list of gases showed all gases that we know about during the dive, but then the gas use and SAC-rate lists wouldn't necessarily match, because the loops that computed those stopped after the first gas that didn't have any pressure change. To make things worse, the first cylinder was special-cased again, so it all lined up for the single-cylinder case. This makes all the cylinders act the same way, leaving unknown gas use (and thus SAC) just empty for that gas. It also fixes the SAC calculation case where we don't have real samples, and the profile is a fake profile - possibly with gas changes in between the fake points. We now make the SAC calculations match what we show - which is admittedly not at all necessarily what the dive was, but at least we're consistent. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06Don't make the preferences dialog so hugeGravatar Dirk Hohndel
Let Qt figure out a good size instead. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06Don't show a SAC of 0.0l/min (or cuft/min)Gravatar Dirk Hohndel
When we have no data about the gas consumption it makes no sense to show a SAC of 0. Instead we should show either "unknown" or nothing. Fixes #693 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06Don't list gases that weren't used in profile printGravatar Dirk Hohndel
If the divecomputer adds additional, unused cylinders to the dive, they would be listed in the profile based printouts. Given that the field is named "Gas used" that seems wrong. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06Don't zoom the profile when the left button is pressedGravatar Robert C. Helling
This prevents zooming out to more than max in the planner. Using a Mac MagicMouse it happens at times that the finger slides on the mouse while dragging a waypoint which can result in zooming out further than max. Fixes #695 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Data validationGravatar Dirk Hohndel
Instead of refusing cylinder pressure data let's just mark it as red when the values don't seem to make sense. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Make the cross hair less obnoxious on MacGravatar Dirk Hohndel
While on Linux it was drawn as fine 1px line, on Mac it came out rather fat and obnoxious by default. With this it's always set to a very thin line. This still needs more work, but let's leave it where it is for Beta 5. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Add lines that follow the mouse helping see time and depth.Gravatar Tomaz Canabrava
This was missing from the conversion from the oldPlanner to the new one, and it also works ok on the profile. One thing is missing is the Labels on the bottom / left saying which position it is, but it's already userful. Fixes #674 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Hide Depth ColumnGravatar Tomaz Canabrava
We were showing everything, always. Fixes #639 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Print: rename the variable 'isHeading' to 'newHeading'Gravatar Lubomir I. Ivanov
This better describes what the variable (flag) does. It's used to inform the loop that the last row goes our of the page limit and that we need to place a new heading on a new page. In that context 'newHeading' is more meaningful. The name 'isHeading' is confusing for (i == 0), since it remains 'false' yet the 0 index row is actually a heading. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Print: add a safe guard for row heights in the table printGravatar Lubomir I. Ivanov
If a row height is more than the available height on a page (minus the height of a heading row) we have to skip this row (dive). The current profile print simply does not support that and it does not make much sense. For that to happen either the page will have to be tiny or the user must have entered a very long text for "buddy", "dive master", "location" or there must be some sort of a very-large-font-while-printing type of a problem. Technically, rows spanning on multiple pages is doable, but probably not worth the effort. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Picture handling: cleaning up the messGravatar Dirk Hohndel
We had pointers to data structures on the stack which we frequently reallocated. These data structure contain basically a filename and an offset. We then create a hash of the pointers to those datastructures with the filename being the key. And then we passed those pointers around through a Qt model(!!!) only in order to then later look up by filename what the offset might be. I am at a loss for words for the lunacy behind this design. How about we just remember the offsets and pass the integers around? Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Picture handling: hide the pictures before deletingGravatar Dirk Hohndel
Because of the way deleteLater() is implemented, the pictures need to be hidden, otherwise they might stay around at the wrong time (e.g., when printing). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Profile: Don't disconnect too many signalsGravatar Dirk Hohndel
If we disconnect the picture releated signals then in dive add and dive plan mode the pictures from the last shown dive could appear on the profile. That's not cool. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Printing: only give up if no size is availableGravatar Dirk Hohndel
Checking for available printers appears to sometimes fail, even if there is a valid PDF or PS printer. Instead we bail if we can't get a valid size for the printer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Don't recalculate plan automatically with low GFHighGravatar Dirk Hohndel
While it's nice to have immediate response to gradient factor changes, there is an oddity that very low GFHigh values can cause infinite decompression if the last stop is at 6m. Robert fixed this and now errors out of deco after 48 hours, but if the user simply wants to edit their GFHigh from (for example) 75 to 70 and deletes the '5', we really don't want to trigger a recalculation for GFHigh of 7... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-05Web: use subsurface_fopen() for non-ASCII paths on Win32Gravatar Lubomir I. Ivanov
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Correctly remove the Close button from most message widgetsGravatar Dirk Hohndel
The only time we want the close button is when showing an error at the bottom of the main window. In the other cases (maintab, globe) we need to explicitly hide it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Revert two incorrect commitsGravatar Dirk Hohndel
Revert "Don't add a close button to KMessageWidget" This reverts commit 75c9bcd72668f5b5524e29291cce2a908fddcdaa. Revert "Remove unused variable" This reverts commit 9edee3477a1fa3945717512e591f30af9c3ca468. I was fixing the wrong problem... instead of removing the handling of the Close button I should have figured out why the close button was incorrectly shown in the first place. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Don't use tmpfile()Gravatar Dirk Hohndel
It appears that at least on Win7-64 Windows tries to create the temporary file in C:\ and fails because of insufficient permissions. How stupid is that. Instead we roll our own tempfiles, based on the already existing tempfile name that is passed in. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Do not recreate all the dive just because a picture was added.Gravatar Tomaz Canabrava
If we add a picture to the dive, this will not change anything else, so there's no need to recalculate the profile_plot info. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04HTML: export yearly statistics to JSON files.Gravatar Gehad elrobey
Save Yearly statistics as JSON data to the stats_files. Signed-off-by: Gehad elrobey <gehadelrobey@gmail.com> Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Fix the layout on the Print DialogGravatar Tomaz Canabrava
The layout was a hardcoded position without layouts, that would only work on english language since other languages can have bigger strings than the current ones. Also removed the 'setFixedSize' stuff and let the widget find it's best size for itself. Fixes #656 Fixes #396 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Fix unresizable DiveListGravatar Tomaz Canabrava
The issue with the dive list was actually the Planner Settings widget that was in the same space as the dive list but hidden, but since it had a minimum width we couldn't resize the dive list to be below the planner settings minimum. Fixed by inserting the contents of the Planner Settings into a QScroll Area. Fixes #679 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Disable the Toolbox when in edit mode.Gravatar Tomaz Canabrava
Some of the toolbox icons will trigger a recalculation of the dive, triggering then a replot, that will copy the dive to the displayed_dive again, but in the case of a edit this would discard the edition ( that would still be shown on the UI ) leaving the dive in an unconsistent state. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Print: display an error message if no printers are foundGravatar Lubomir I. Ivanov
When pressing Print or Preview from the PrintDialog, we need to first check if there are printers installed. If not we abort and show an error message. This is needed because if no printers are installed, things like the reported page height could be zero and the profile and table print code in PrintLayout will break. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Print: enable the vector table print only for Qt5.0 and newerGravatar Lubomir I. Ivanov
In #671 a user reported that the table print outputs a blank page if there are dives for one page or less to be printed. This doesn't really makes any sense. A possible bug in Qt4's QPicture is suspected, so we only enable the vector print for Qt 5.0 and newer versions. See #671 Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-04Planner: show mean depthGravatar Dirk Hohndel
Almost invisible, mostly looking like an odd bug in the profile code, there was a tiny red line at depth 0 in the planned profile. Turns out that was the missing mean depth. We didn't populate enough data in the dive computer of the dive we generated from the plan (and the length of the depth line was incorrectly determined by the duration of the dive instead of the duration stored in the dive computer). Fixes #570 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-03Update altitude properly when changing unit systemsGravatar Robert C. Helling
We need to change the displayed numeric value of the altitutde and not just the unit suffix when changing unit systems. Fixes #681 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-03Try to fix divelogs upload on WindowsGravatar Miika Turkia
zip_open needs correct directory separators. QFile::encodeName does not do this conversion, so we must call it explicitly. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-02Update pictures when entering/exiting plannerGravatar Robert C. Helling
This fixes the problem I pointed out im my comment to #667 and hopefully also the original problem although I cannot confirm since i cannot reproduce the problem in the first place. See #677 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-02Enforce end pressures to be not above starting pressures.Gravatar Robert C. Helling
We don't blow into our cylinders under water. Negative pressures should be allowed as they might arise from dive planning without taking care of gas consumption. fixes #644 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-02In recent files use native directory separatorsGravatar Robert C. Helling
Qt internally always uses / as directory separator. #651 shows that in the recent files menu, under windows we can have double entries with both versions of the separator. This patch should normalize the menu entires to use the native separator (i.e. \ on Windows). (Untested due to lack of Windows computer). See #651 Signed-off-by: Robert C. Helling <helling@atdotde.de> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-31Keep edited profile after editing a manually added diveGravatar Dirk Hohndel
This is yet another unintended side effect of the UI restructure changes. I stared at this code for so long - I can't believe I kept missing this. Fixes #668 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-31Give Subsurface a distinct User Agent stringGravatar Dirk Hohndel
When accessing websites (divelogs.de, subsurface website) we shouldn't pretend to be Mozilla 5. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-31When exporting to XML and no extension given, default to .ssrfGravatar Dirk Hohndel
See #646 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Mark divelist changed after removing a pictureGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Add a new 'show' Animation, and use it on the close button.Gravatar Tomaz Canabrava
The error with 'ungrabMouse' warning that we got was because we were removing an item that had the mouse grab instead of waiting a few milisseconds so it won't be the mouse grabber anymore. So I'v used the Animations::hide() to get rid of it, and since it worked well, I'v also added a Animations::show() method to display it in a good fade-in way. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Implement the functionality of remove_picture.Gravatar Tomaz Canabrava
Added the remove_picture functionality, with code shamelessy stolen from remove_event, and hoock it up with the interface. Fixes #650 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Instead of holding the index, hold the URL.Gravatar Tomaz Canabrava
Since the idea is to remove the picture in the future, we need to not hold the row on the model, as when we delete one, the other pictures will change the row. but the QUrl is unique. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Added a button to hide a picture from the dive.Gravatar Tomaz Canabrava
This patch hides a picture from the dive, it should actually remove it, but because I didn't found a quick way to remove a picture from the dive yet, it just hides it. To remove a picture from the dive, the DivePictureItem has to remember the QUrl of the original file, to remove that from the model, and currently it only has the QPixmap. this can be for 4.2.1 or we can postpone 4.2 a tiny bit since this is a important feature. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Planner / Add dive: hide handler after removing itGravatar Dirk Hohndel
Otherwise users can still interact with it. Fixes #648 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-30Maintab: fix trip location / notes editingGravatar Dirk Hohndel
Reusing the displayed_dive for this caused all kind of odd problems that were hard to reproduce, because the behavior depended on what was in the corresponding fields of the current_dive. Worse: the GPS location handling prevented us from reliably removing the location of a trip. The solution isn't ideal and certainly isn't elegant. Maybe we simply shouldn't reuse the widget here. But I think what I have now works - I tried hard to make it break again and couldn't. Fixes #659 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Do not show the heartrate info unconditionally.Gravatar Tomaz Canabrava
use the preferences instead. Fixes #664 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Make the Axis set the changed flag when a new line is setGravatar Tomaz Canabrava
This was preventing the recalculation of the ticks, making the line static when we enabled or disabled the PP graphs. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Change the Ruler text values when metric system changes.Gravatar Tomaz Canabrava
"ups", as I did this in Metric system I forgot to update to imperial when the user selected it. Fixes #665 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Retain the start time when creating plan from diveGravatar Dirk Hohndel
We need to make sure that the start time is set before we start adding points. Fixes #661 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Fix time zone conversionsGravatar Dirk Hohndel
I know I tested this - no idea how I missed this. Anyway, this was of course utterly bogus. Whenever we get a time from a time_t into a Qt Date or Time datastructure, we need to adjust it by the timezone offset as otherwise Qt will assume it's in local time and helpfully change it to the wrong values for us. See #655 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Remove unused variableGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-29Another string to translateGravatar Sergey Starosek
[Dirk Hohndel: took only one of the two parts and adjusted commit message accordingly] Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>