aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/models.cpp
AgeCommit message (Collapse)Author
2014-10-31Added the skeleton for the BuddyFilterGravatar Tomaz Canabrava
Just the skeleton of the functions, nothing working yet. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-31TagFilter -> MultiFilterGravatar Tomaz Canabrava
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-30Revert "Divelist: make the column headers for units left aligned"Gravatar Dirk Hohndel
This reverts commit d5f19c43c925468f363f0e509816df724f930db9. With the changes to the headers in commit 3515ad71c159 ("Divelist: remove units from header, add tooltip") I think this isn't needed anymore and actually reverting it creates a cleaner look. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-30Display dive duration in dive list in whole minutesGravatar Linus Torvalds
The whole "duration in seconds" is being way too OCD about the information, and just makes it harder to read. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-30Divelist: remove units from header, add tooltipGravatar Dirk Hohndel
This should help with the issues we are having with alignment / visibility of the relevant information in the divelist. Most people will never switch the units (or maybe switch them once, the first time they use Subsurface). So having the units shown in the table header quickly becomes redundant - yet having the units in there causes all kinds of layout issues. This patch adds a tooltip to both the header and the main data area of the divelist. The tooltip shows the column name plus unit and the column header no longer shows the units. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-29Divelist: make the column headers for units left alignedGravatar Lubomir I. Ivanov
Fixes #739 Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-19Resolution-independent trash iconGravatar Giuseppe Bilotta
Also, generate the corresponding pixmap only once, and distribute it to all models that need it. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-18Define auxiliary functions for metricsGravatar Giuseppe Bilotta
Collect font, font metrics and icon size functions in a separate module. Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-10-02Add possibility to filter by more than one criteria at a timeGravatar Tomaz Canabrava
This new version of the TagFilterSortModel actually accepts *any* new MultiFilterInterface. So, how to use it to create a new filter: Implement a class that inherits from MultiFilterInterface Implement the filterRow method TagFilterSortModel::instance->add( myClass ); and you are done. [Dirk Hohndel: removed some debug code and did whitespace cleanup] Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-20Show everything when nothing is checked.Gravatar Tomaz Canabrava
This patch fixes a bit of the logic used. Now we show every dive if nothing is chedked. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-18Switch some columns to right alignment in divelistGravatar Anton Lundin
Some columns in the dive list makes more sense to have right aligned than left aligned. This switches the numeric columns to right alignment so they is more easily compared visually. But, we keep the NR-column left-aligned because we use its left indentation as dive-in-a-trip marker. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Fix crash at startupGravatar Dirk Hohndel
Not sure this is the right fix, but at least it doesn't crash any more. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Random whitespace updateGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Show everything by default.Gravatar Tomaz Canabrava
We should show all dives by default. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Better filtering of dives with no tags.Gravatar Tomaz Canabrava
New rules for them, a new item on the model with the text "Empty Tags" should be marked if the user wants it to be displayed. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Implement trip-filtering.Gravatar Tomaz Canabrava
Trips will be filtered if it doesn't find any tags for dives. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Correctly filter dives. (trips are always shown)Gravatar Tomaz Canabrava
This patch correctly filter dives based on tags, but it will also keep showing all the empty trips. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Create the sorting method.Gravatar Tomaz Canabrava
This method should remove a row on the dive list model visualization if none of the tags that it have are marked as 'visible'. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-09-17Implement the TagFilter model.Gravatar Tomaz Canabrava
This model accepts check / unchedk. Now, I need to also plug the result of the check / uncheck to the list model. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-27Use one consistent font size throughout the appGravatar Dirk Hohndel
Let's see how much people notice it / hate it. Fixes #712 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-22Divelist: switch to better column headersGravatar Dirk Hohndel
And move the units there. This is a long going back and forth. What we want is narrow columns. But what we need is something that's easy to understand for our users. I'm open to other suggestions, but I think this moves us in the right direction. See #712 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11Rename dive gas function and defines for clarityGravatar Anton Lundin
This renames the dive gas functions to not talk about just nitrox, and to instead talk about gas. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11Rename the model column from NITROX to GASGravatar Anton Lundin
The column isn't just about NITROX, there might be air and trimix in there too. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-08-11Rename list column from O2% to GasGravatar Anton Lundin
In the dive list, calling the column O2% is kinda wrong, because in at least my dive list there are both air and trimix showing up, so this renames that column to Gas. Signed-off-by: Anton Lundin <glance@acc.umu.se> 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-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-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-07-17Replace cylinder_is_used with is_cylinder_usedGravatar Anton Lundin
is_cylinder_used uses get_cylinder_index as underlaying function that does the right thing with with respect on how to find the closest matching cylinder, and handles both types of gaschange events correctly. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-15Improve handling of cylinders with identical gasmixGravatar Dirk Hohndel
In reality we have no concept for handling those, yet. But the UI doesn't prevent the user from entering multiple cylinders with the same gasmix, so we need to help the user to get rid of them as well. If the user attempts to remove a cylinder we check if there's a second cylinder with the same gas. If that's the case then we can proceed and remove the cylinder the user wants to get rid of without losing that gas for the dive. The only tricky issue is that we need to make sure that if we remove the first cylinder that one is actually replaced with one with the same gas. Fixes #622 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-15Don't ignore equipment just because the dive list is emptyGravatar Dirk Hohndel
This was a fun little bug. Tomaz pointed me in the right direction. The UI restructure with the displayed_dive had another unintended side effect here. It is not valid not to set up the widgets just because the dive_list is empty. The displayed_dive isn't on the dive_list until it is saved - so while the user is adding or planning a dive, we still need to show the equipment widgets. Fixes #614 Fixes #601 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-15Use QObject::tr instead of OurClasses::tr for functionsGravatar Tomaz Canabrava
This will make more easy to move code around in the future. 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-11Printing: print depth unit in tableGravatar Dirk Hohndel
When adding the method that includes the depth unit to the DiveItem class I realized that this was yet another implementation of our depth unit conversion. We should just call the existing helper instead. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Printing: make table more usefulGravatar Dirk Hohndel
Tweak font size and column widths. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Printing: change the header to show depth / durationGravatar Dirk Hohndel
At least for my dives there wasn't enough space for depth and duration in the header, most likely because I made the last two columns smaller to create more space for tags and suit. With this commit the depth and doration in the header now spans two columns and easily fits. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Printing: print tags instead of max CNSGravatar Dirk Hohndel
And re-order / re-size the fields so more useful information is actually shown. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Printing: use more appropriate font sizesGravatar Dirk Hohndel
2-up and 6-up need different fonts. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11Better default font for printing.Gravatar Tomaz Canabrava
use setPointSize instead of setPixelSize to make it device independent, also reduced a bit the size of the font. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-11dive list context menu capitalisationGravatar Tim Wootton
Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> 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-09Print: make the profile table font size 7pxGravatar Lubomir I. Ivanov
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-03UI restructure: get rid of "current" pointer in cylinders and weightsGravatar Dirk Hohndel
Instead always display the display_dive. Now the only thing left to slay is the stagingDive... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-30Align the texts on the Left inside of Right for the DiveListGravatar Tomaz Canabrava
The Qt Framework adds a visual 'tab' on the children of a node, but if we forced a right alignment on them, it will lose that. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-25Make gas mod be reasonable for users of imperial units as wellGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-25Make pO2 settings functional in plannerGravatar Robert C. Helling
Spin boxes for pO2 are now hooked up to preference values. Adding new cylinders (or changing their fo2) computes the MOD accordin to the current value of decopo2. Note that chaning the limits for deco pO2 does _not_ automatically update the switch depth of all cylinders as those might have been manually entered. Furthermore, MOD has now to option of rounding to multiples of a given depth. That is used for the automatic switch depth which are now always multiples of 3m (so that EAN50 is switched to at 21m rather than 22m). 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-08Change character for liter in SAC values as wellGravatar Dirk Hohndel
And fix the bug that in the info overlay SAC was always given in metric values. And try to reduce the number of places in which we calculate the unit conversions... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-06-08Really display liters with script elGravatar Dirk Hohndel
In commit 125ddd955c04 ("Display liters with script el") Robert only fixed the C routine we use to show units. Strangely, we had a separately implemented C++ function as well. Instead of implementing this in two spots I now simply have the C++ function use the C function to do the actual work and then wrap this into an easier to use (from UI code) QString output. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>