summaryrefslogtreecommitdiffstats
path: root/qt-ui/maintab.cpp
AgeCommit message (Collapse)Author
2014-11-17When editing cylinders, copy all relevant dataGravatar Dirk Hohndel
Maybe it would be better to just copy the whole structure and then clear the things we don't want to copy? This seems fragile. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-17Correctly copy weight systems on editGravatar Dirk Hohndel
We copied the string pointers instead of copying the strings. Once those got freed, things went downhill. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-17727 fixedGravatar Tomaz Canabrava
--047d7b8737f87ede8e050803e6b2 Content-Type: text/plain; charset=UTF-8 <div dir="ltr"><br></div> From 3db4a422485374801ca2f6233ec23b8671a8656d Mon Sep 17 00:00:00 2001 From: Tomaz Canabrava <tomaz.canabrava@intel.com> Date: Sun, 16 Nov 2014 23:22:58 -0200 Subject: [PATCH] fix 727 - position correctly the popup. When the user entered a tag and that made the message box display the popup with the possible choices was still in the old position hidding the line edit. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-11maintab.cpp: use copy_string() instead of strdup()Gravatar Lubomir I. Ivanov
The .location and .notes fields can end up being NULL, in which case copy_string() is safer. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-08Reorder initializers to be more c++-strictGravatar Anton Lundin
c++ have some idea about in what order things should be initialized. This makes us comply with that order. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-07Show extra data in separate tab on MainTabGravatar Dirk Hohndel
This way any extra data probided by the dive computer is visible to the user (without other processing). This data cannot be edited by the user as it reflects the information given by the dive computer. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-05Always copy data in copy and paste modeGravatar Dirk Hohndel
While in a multi dive edit we want to apply our usual semantics (only edit things that are the same as in the current dive), when doing an explicit copy and paste that doesn't seem to make sense. So we manually override that behavior. Fixes #753 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-04Change tank editing behavior for multi dive editGravatar Dirk Hohndel
Previously we only applied the type of tank (description, volume, working pressure) to all selected dives where the tank description matched. With this patch we also copy the gas mix into all matching cylinders. Additionally this addresses the issue that we should have a separate copy of the cylinder description string for each dive. Fixes #754 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-03Delay replot of dive so changes aren't overwritten too earlyGravatar Dirk Hohndel
When changing tanks we triggered a replot - but that overwrote the displayed_dive with the current_dive before the remaining data from the displayed_dive was used to edit the current_dive. So now we delay this until later in the function, this way copy of paste of both tanks and weights works. Fixes #753 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-11-01Don't call strdup on NULL by mistakeGravatar Dirk Hohndel
Hunting down a different issue I managed to cause a crash here when trying to copy a string that ended up being NULL. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-30After editing tags, get the right tags into the displayed diveGravatar Dirk Hohndel
We forgot to clear out the pre-existing tags. We did this for the actual selected dives that were being edited, but not for the displayed_dive, so deleted tags showed up again on screen (even though they were correctly deleted from the selected dives in the dive list). Fixes #732 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-20Recalculate the decompression if the date / time of a dive changesGravatar Dirk Hohndel
The pre-existing tissue load going into a dive can change if the start time of a dive changes. Therefore we need to recalculate the ceiling when editing start time (or date) of a dive. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-20Correctly edit dive date/time when editing manually entered divesGravatar Dirk Hohndel
While the existing code worked fine for editing that start date or time of dives downloaded from a dive computer or imported from some other source, for manually entered dives this did not work and the date or time was always reset to the original time once the changes were saved. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-18Report CNS in dive info tabGravatar Gaetan Bisson
This adds a maxcnsText widget under infoTab and populates it. Note that I manually edited maintab.ui to display CNS and OTU next to each other and right after gas data. Signed-off-by: Gaetan Bisson <bisson@archlinux.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-23Re-enable the edition of the Date after editing a trip.Gravatar Tomaz Canabrava
Since we can't edit the trip date, we need to remember to re-enable it after we disable it. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-21Fix selection logic when manually adding a diveGravatar Dirk Hohndel
This was an interesting bug. When adding a dive that would end up in the middle of the dive list, the newest dive in the dive list would end up marked in the dive structure as selected - even though it wasn't visualized as selected by Qt. Bad things happen if the user then made changes to that dive without selecting something else first, for example by either editing the dive or doing things to it like removing it from or adding it to a trip. The same operation would also be applied to the newest dive in the dive list. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-18Planner: assign a dive number if the right number seems obviousGravatar Dirk Hohndel
Use the same logic as we do for newly added dives. As a side effect this patch appears to fix the issues with getting the newly planned dive selected. Fixes #692 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-17Cut'n'paste for dive data: implement paste sideGravatar Dirk Hohndel
This should correctly set all the values and puts us in edit mode. Testing so far looks good for both single dive and multiple dives selected (i.e., you can paste into multiple dives). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-16Dive edit: allow the user to explicitly clear a GPS locationGravatar Dirk Hohndel
If the GPS coordinates for a dive were incorrect for some reason and the user wanted to clear them in order to then re-download / apply GPS information from the Subsurface webservice, prior to this patch we would always match the location name and re-populate the GPS coordinates, making it impossible to clear a GPS location without also changing the location name. This patch fixes this - but if you have multiple dives with the incorrect name / GPS location pair, the next edit to a dive that had the GPS coordinates cleared will re-populate the GPS coordinates (at that point Subsurface can no longer tell that this was intentional). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-07Reload the dive list after accepting changesGravatar Dirk Hohndel
So far we only did it when we added a dive or modified a manually added dive. But the reality is that an edit of any dive could cause changes that require the dive list to be reloaded. Fixes #698 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-06Delete pictures from the Widget by pressing deleteGravatar Tomaz Canabrava
Select the picture, press delete, profit. [Dirk Hohndel: removed the stray hunk that snuck into this patch] Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
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 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-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-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-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-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-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-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-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-24Sort dive table after adding a diveGravatar Dirk Hohndel
The dive might not be the newest dive in the dive list. Fixes #637 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-23Only repopulate the dive info once ( we were repopulating 4 times )Gravatar Tomaz Canabrava
This makes the screen repopulate itself after a dive change only one time instead of the old 4. we were repopulateing when we removed the actual selection to reset the old selection previously stored, sigh. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-23Only use HTML if the text has a <table>Gravatar Tomaz Canabrava
The text we generate for the diveplan has a table inside, and we must use HTML only for the dive plan. so I treat all text as HTML, look for a table item, if it doesn't have, I treat it as Simple text and set it on the notes. Works and makes linus loves me again. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-16Pick the correct timezoneoffset for the day in questionGravatar Dirk Hohndel
Calculating the timezoneoffset for the current date really makes no sense whatsoever when displaying a time that isn't "now". Fixes #605 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-16Desselects the trip before dive add / plan, and reselects it on cancelGravatar Tomaz Canabrava
When we had a trip selected, we ignored that and simply called the DiveAdd functions, but the mainTab code that deal with selections to show one or more dives or trips asked how many trips were selected to the DiveList, and since a trip was selected things go kabum. Fixes #606 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-16Fix saving and storing the dive plan notes when there's html on itGravatar Tomaz Canabrava
We save an HTML table-based plan, so we need to get the text as html, not plaintext. Fixes #634 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-16Date picker l10n for profile and plannerGravatar Sergey Starosek
- set application-wide locale from preferences - use custom date format for display Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-16More strings to translate for statistics tabGravatar Sergey Starosek
Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-15Correctly track the 'changed' status of the equipment widgetsGravatar Dirk Hohndel
updateDive() cannot reset the changed status - this is called while the dive is edited. Instead this status is reset when the user either accepts or rejects the changes. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-15Dive equipment edit - fix logic for applying changesGravatar Dirk Hohndel
We keep getting this wrong. First you check all selected dives that are not the current dive, make sure the equipment was the same before the edit and then apply the changes. Then, when you are done with ALL of them, then you change the current dive. Otherwise you cannot compare to the 'before' state anymore. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-15Remove uneeded functionGravatar Tomaz Canabrava
This method was being unused, rip it off. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> 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-11misc capitalisation and spellingGravatar Tim Wootton
Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-10Prefer "temp." vs "temp" and sometimes "temperature"Gravatar Tim Wootton
For consitency in the UI There are plenty more of these to find, and once in a while "Temperature" looks more apropriate, like in a title, but most of the time "temp." works best. Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-10maintab capitalisation consistencyGravatar Tim Wootton
Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-10Add helper functions to ensure we have sane tag listsGravatar Dirk Hohndel
There should never be empty or duplicate tags on those lists. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-09Complete GPS coordinates on location focusout.Gravatar Gaetan Bisson
Introduce on_location_editingFinished() and move the GPS coordinates completion logic there. This simplifies acceptChanges(), but replaces the clever code for multidive completion by something a little more straightforward. Note the call to on_location_editingFinished() from acceptChanges(); without it, completion only happens *after* the dive has been saved. [Dirk Hohndel: trivial merge, minor changes for consistency] Signed-off-by: Gaetan Bisson <bisson@archlinux.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-09Put a copy of the tags in the displayed dive upon save.Gravatar Tomaz Canabrava
I don't think this is the right approach, but it makes things work. The reason that it was not working before it's because upon save we are not copying the edited dive against the displayed dive for some reason, and I didn't find the place that should deal with that. This fixes one of the various issues around tags, but others remain. Fixes #587 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-09Correctly save the tags on the dive.Gravatar Tomaz Canabrava
Very good patch, lots of removed lines. :) Only try to add the tags when user accepts, discards the test to see if the tags were changed or not, delete the old list and copy the new one always. only bug that's appearing now: taglist is still empty after save we need to reselect the dive to make it appear, fixing that on the next patch. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-09Remove if to save or not save the tags.Gravatar Tomaz Canabrava
The way that we work with tags is a bit weird, we have a global tag_list pointer and every dive copy the tags from there. the problem is that the tags_changed() function looks at those two places ( the global and the dive-local lists ) to see if something was changed, but we shouldn't add anything at the global taglist untill a tag is really added, so that function is bogus. The correct way to check if something changed is to check all the strings in tags against the strings in the QLineEdit and see if they are the same, then we can add things to the tag_list. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>