summaryrefslogtreecommitdiffstats
path: root/qt-ui
AgeCommit message (Collapse)Author
2014-01-16Add a class based on QGraphicsSimpleTextItem that handles animations.Gravatar Tomaz Canabrava
This commit adds a class based on QGraphicsSimpleTextItem that handls animations via animatedHide() animatedMoveTo() and a few other QPropertyes. This is to be used in conjunction with the DiveLineItem added in the past commit on the Coordinate Axis. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Added a class based on QGraphicsLineItem that can be animated.Gravatar Tomaz Canabrava
This class has animatedHide, animatedMoveTo and QProperty animations. it's very userful for the future creation of the Cartesian Axis that will have the ticks 'flowing' around when it's needed. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Added a QGraphicsPixmapItem subclass that handles Animations.Gravatar Tomaz Canabrava
This class is useful for adding / removing icons on the future profile in a way that they are smoothly added to / removed from the canvas. It uses the QProperty System to deal with animations. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Added a new class based on QGraphicsRectItem that can be animated.Gravatar Tomaz Canabrava
This class extends the QGraphicsRectItem with the ability to use the Qt Property System - and thus, we can animate the properties. Initially I put only the rectangle, the position and the x and y positions indidually for testing. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Add the skeleton for the New Profile System.Gravatar Tomaz Canabrava
The idea of this widget is to display and edit the profile. It has: 1 - ToolTip / Legend item, displays every information of the current mouse position on it, plus the legend for the maps. 2 - ToolBox, displays the QActions that are used to do special stuff on the profile ( like activating the plugins. ) 3 - Cartesian Axis for depth ( y ) 4 - Cartesian Axis for Gases ( y ) 5 - Cartesian Axis for Time ( x ) It needs to be dynamic, things should *flow* on it, not just appear / disappear. It's the last attempt to create a QGraphicsView based Profile System, as the next will most probably be written in QML. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Enter dive edit mode on buddy field focusGravatar Sergey Starosek
Seems it's related to bug #390. Not sure whether this fix is correct. See #390 Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Emit textChanged() signal on completion selectionGravatar Sergey Starosek
Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Extend tags model to Buddy fieldGravatar Sergey Starosek
This doesn't change storage format. Instead it parses buddy strings and converts them to string list which is supplied to tags widget. This feature was requested in ticket #311 Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Populate buddy completion model using CSVGravatar Sergey Starosek
While preparing to extend tags model to 'Buddy' field we populate completion list by splittng those fields by comma. Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Fix "hide unused cylinder" behaviorGravatar Dirk Hohndel
There are at least two scenarios where our old code was flat out wrong. If you manually add a cylinder (because you may want to switch to it in the profile), then at least until the next time you restart Subsurface this cylinder should be shown. Also, when you switch to a cylinder by adding a gas switch event on the profile, that change should then make that cylinder visible. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15In Qt5 reset() is depricated.Gravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Don't downgrade tags to AsciiGravatar Anton Lundin
Use Utf8 everywhere, and toAscii is depricated in Qt5 Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Convert to TRUE/FALSE to stdbools true/falseGravatar Anton Lundin
I had problems with this one on Qt5. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Resync included header with upstreamGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15QAbstractItemModel::reset doesn't exist in Qt5Gravatar Anton Lundin
Let the library resolve this one instead. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Make this code Qt5 compatibleGravatar Anton Lundin
The method have bin renamed in Qt5. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Make the include Qt5 compatibleGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Use setSectionResizeMode if we use Qt5Gravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Remove unused importGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Port this code to work with Qt5Gravatar Anton Lundin
This code had parts that where Qt5-compatible, this introduces the last bits that it needs to be completely compatible. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Add some missing ; in the Qt5 pathGravatar Anton Lundin
Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15After downloading GPS data show the new informationGravatar Dirk Hohndel
Recreate the labels in the marble window (this adds all the new locations with the correct labels), center on the selected dive (this makes sense in case this is one of the dives that got location information) and redisplay the main tab (again, as this might now have location information). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Improve the download from Subsurface webservice dialogGravatar Dirk Hohndel
- make the User ID input field wide enough - use the progress bar for an explanatory text - mark it as 100% completed once the download succeeds Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Defining a logical tab order for Import CSV Dive Log Files widgetsGravatar Rodrigo Severo
Signed-off-by: Rodrigo Severo <rodrigo@fabricadeideias.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15Add-main-window-full-screen-featureGravatar Boris Barbulovski
This patch enables main window full screen mode by menu toggle or pressing F11. [Dirk Hohndel: whitespace cleanup] Signed-off-by: Boris Barbulovski <bbarbulovski@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-15More CSV import fixesGravatar Rodrigo Severo
Pre-configured imports in Import Dive Log File for CSV files should also be cleared when the field separator is changed by the user. Promoted DiveLogImportDialog::unknownImports to slot as per Canabrava's suggestion and Hohndel's request. Signed-off-by: Rodrigo Severo <rodrigo@fabricadeideias.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-14Pre-configured CSV imports should also set the field separatorGravatar Rodrigo Severo
Pre-configured imports in Import Dive Log File for CSV files should also set the pre-defined field separator. [Dirk Hohndel: cleaned up hideous whitespace] Signed-off-by:Rodrigo Severo <rodrigo@fabricadeideias.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-14Include support for semicolon separated CSV filesGravatar Rodrigo Severo
Oceanic's Geo's companion software, OceanLog, when exporting as txt produces log files with the dives samples as semicolon separated CSV files. Signed-off-by: Rodrigo Severo <rodrigo@fabricadeideias.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-14Sort the list of dive computer vendors in the download dialogGravatar Dirk Hohndel
This makes so much more sense. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-11Don't show tanks that aren't used during a diveGravatar Dirk Hohndel
Some dive computers will always download all tanks that they store, not just the ones used in a dive. Most people only want to see the tanks that they actually used during the dive (and for the others there's an option to go back to the old behavior, just in case). All this is only in memory / during runtime. If the dive computer provided the extra data we will not throw it away. Fixes #373 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-11Fix app icon and title for yearly statisticsGravatar Sergey Starosek
Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-10Make divelist search case insensitiveGravatar Sergey Starosek
Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-10User manual: overlay search panelGravatar Sergey Starosek
Make search panel floating so that web view does not resize. This commit also addresses following issues: - search now wraps around document - application icon and window title are now back Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-10Switch to new UserManual implementationGravatar Sergey Starosek
This enables search within user manual by pressing Ctrl-F. Esc key closes search panel. Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-10Extract user manual web view into a separate classGravatar Sergey Starosek
Provide search functionality which addresses ticket #391 Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-10Make Ctrl-F window shortcutGravatar Sergey Starosek
The shortcut may be used elsewhere, e.g. in user manual Signed-off-by: Sergey Starosek <sergey.starosek@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-09Remove now stale arguments to "CHANGED()" macroGravatar Linus Torvalds
We now never remove units or percentage signs, and always just compare the string data, so we should remove the hacky arguments that are no longer used. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-09Add and use 'string_to_fraction()' helper converter functionGravatar Linus Torvalds
This matches the pattern of unit conversion, and will allow us to remove all the code that uses the old complex "CHANGED()" macro that tries to remove units or percent signs. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-09Add unit-aware cylinder size string parsercGravatar Linus Torvalds
Whittling down on the string parsing that doesn't check user-specified units. Still need to handle temperatures (and will do percentages to match the pattern too), but this is getting us closer to always honoring user-specified units. With this you can say that you have a "10l" cylinder at "3000psi", and it will do the right thing (it's basically a 72 cuft cylinder in imperial measurements). Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-09Add unit-aware conversion of pressure dataGravatar Linus Torvalds
This just adds (and uses) a string_to_pressure() to parse pressure units correctly when filling in cylinder pressures. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-08Add a string_to_depth() helper function to match our string_to_weight oneGravatar Linus Torvalds
It's currently only used for the setting of the cylinder switching depth, but now that one should work with user-specified units (so you can set a max depth in feet even if you use metric, and vice versa). In the future, if we also make the unit preferences something you can pass in (with user preferences as a default argument value), we might want to use this for parsing the XML too, so that we'd honor explicit units in the XML strings. But the XML input unit preferences are not necessarily at all the same as the user preferences, so that does require us to extend the conversion functions to do possibly explicit unit preference selection. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-08const'ify our strtod() helper functionsGravatar Linus Torvalds
The C library doesn't use const char pointers for legacy reasons (and because you *can* modify the string the end pointer points to), but let's do it in our internal implementation just because it's a nice guarantee to have. We actually used to have a non-const end pointer and replace a decimal comma with a decimal dot, but that was because we didn't have the fancy "allow commas" flags. So by using our own strtod_flags() function, we can now keep all the strings we parse read-only rather than modify them as we parse them. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-08Make 'string_to_grams()' use proper type safe typesGravatar Linus Torvalds
Make it use 'weight_t' and hide the "grams" part inside the type. That was the whole point of the weight_t type, after all. Returning a "double" was always bogus, since we internally always do integer grams (and the function actually used "rint()" to get all the rounding right anyway). As a result, it's now called "string_to_weight()". Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-08Show import dialog only when needed for CSV configGravatar Miika Turkia
We do not need any import dialog when importing normal XML based divelogs. With this they are imported directly after file selection dialog. However, when CSV files are detected in the import list, the configuration dialog is displayed and applied for them. (CSV files are detected by file extension.) Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-08DownloadFromDCWidget: prevent possible leaks for log/dump filesGravatar Lubomir I. Ivanov
If the 'logfile_name' and 'dumpfile_name' were NULL we can simply strdup() them with a new value, but if there was a previous value we need to free() first. C99 6.7.8 allows us to keep said variables without the explicit NULL initialiazation. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-07Not everything can be done with the diveIdGravatar Dirk Hohndel
In commit c3fe1a9e9f79 ("Get rid of pointers to dive structures in the UI") I was a bit too aggressive moving away from pointers to dives. This is only needed for pointers that are held across operations that could change the dive_table. I figured that it wouldn't hurt to get rid of some more pointers as well, but it turns out I was wrong. The current dive that we store in the Cylinder and Weight models can be a dive that isn't in the dive_table at all: the multiEditEquipmentPlaceholder. And when using the diveId we end up finding the original dive in the dive_table and therefore modify the wrong structure. This undoes two thirds of the above mentioned commit. Reported-and-analyzed-by: Patrick Valsecchi <patrick@thus.ch> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-07Restructure overly agressive Q_ASSERTGravatar Dirk Hohndel
Turns out this function can be called when there is no valid dive - so only protect those parts that dereference the dive. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-07Get rid of pointers to dive structures in the UIGravatar Dirk Hohndel
The assumption that the pointer will keep pointing to a valid structure is fundamentally flawed. And even if that is true today, it might change in the future - just don't do it. Use the diveId instead. The exception is when you own the structure and use it within one UI interaction during which any way to change the dive_table is disabled (e.g., while adding / editing a dive). Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-07Setting dive as 'current' when restoring selectionGravatar Tomaz Canabrava
Restoring the selection was not setting the selected dive as current, and thus, breaking keyboard navigation. Fixes #402 Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-07Add CaseInsensitivity to all of the completers.Gravatar Tomaz Canabrava
Just one of the completers had Qt::CaseInsentitive set, setting for all of them. Fixes #400 Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>