aboutsummaryrefslogtreecommitdiffstats
path: root/qthelper.cpp
AgeCommit message (Collapse)Author
2014-03-03Fix gps parsingGravatar g1g19
The argument index used to pull in the translated hemisphere letters was incorrect. Fixes #418 Signed-off-by: Gopichand Paturi <gopichandpaturi@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-27Massive automated whitespace cleanupGravatar Dirk Hohndel
I know everyone will hate it. Go ahead. Complain. Call me names. At least now things are consistent and reproducible. If you want changes, have your complaint come with a patch to scripts/whitespace.pl so that we can automate it. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-12Replace mainWindow() with MainWindow::instance()Gravatar Boris Barbulovski
C++ style of accessing single instance class object. Signed-off-by: Boris Barbulovski <bbarbulovski@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-14Changes test for ISO 6709 location formatGravatar Tim Wootton
As discussed with Mika this changes the ISO 6709 detection to use: 1st non-whitespace character is a digit and number of commas is even. The idea is that, as all the other formats seperate the lat from long with a single comma, additional even numbers of commas could ocour in locales where comma is used as a decimal point, but in total an even number of commas (often 0) would indicate an ISO format entry. Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-12Improving matching of ISO 6709 GPS formatGravatar Miika Turkia
ISO 6709 format dictates that the format includes characters ° (degree), ' and ". If we only test for the coordinates starting with decimal, we match also the decimal notation on this test. Thus adding test for the degree sign not to match input as ISO 6709 when coordinates are given in decimal notation. Signed-off-by: Miika Turkia <miika.turkia@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-07Add a unique id to every diveGravatar Dirk Hohndel
This id is just held in memory. It's not supposed to be used for anything but having a unique handle that represents a dive. Whenever you need to remember a dive across an operation that might change the dive_table, this is what you should hold on to, not a dive number, a dive pointer, or anything like that. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-03Allow location coordinates in ISO6709 formatGravatar Tim Wootton
Allows location coordinates to be entered in ISO6709(2008) Annex D format. e.g. 50°40'46,461"N 95°48'26,533"W see http://en.wikipedia.org/wiki/ISO_6709#Representation_at_the_human_interface_.28Annex_D.29 for suggested format. Signed-off-by: Tim Wootton <tim@tee-jay.demon.co.uk> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-24Enable libdivecomputer log or dump from the UIGravatar Dirk Hohndel
Pick filenames for these functions as they are selected. Use the windows-safe fopen function. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-24Make decimals optional in GPS coordinatesGravatar Dirk Hohndel
As an aside, our resolution is great and certainly high enough for the real world, but it's easy to get into situations where we don't display the exact same degrees / minutes / seconds as the user entered... Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-23Accept decimal point and comma in gps coordinatesGravatar Dirk Hohndel
The previous implementation only accepted a decimal point. We now support both point and comma, regardless of locale. This also removes a debug message left behind in the previous patch. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-23Improve GPS string handlingGravatar Dirk Hohndel
This adds support for two more GPS coordinate formats and also fixes a couple of issues with the previous implementation. We used to only support full degrees and decimal minutes. We now also support fully decimal and degrees, minutes and decimal seconds. The previous implementation would color the input field red if either it couldn't parse the string, or if it was able to parse it but it was the same as the previous location. That's misleading. The previous implementation also changed all gps coordinates to the new coordinates in a multi-dive edit - instead of just changing the ones that are the same as the master dive. Fixes #387 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-06Correctly parse translated GPS coordinatesGravatar Dirk Hohndel
Minor oversight in commit 917b47b79cb8 ("Parse localized GPS string") - we accepted the translated hemisphere indicators in the regular expression, but then didn't use them later when comparing with the result of applying the regular expression. Fixes #331 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-02Parse localized GPS stringGravatar Dirk Hohndel
Let's ALWAYS support the somewhat "international standard" N/S/W/E characters, but ALSO support localized versions. Fixes #315 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-26Remember Trip Selection.Gravatar Tomaz Canabrava
This patch remembers the trip selection across the Dive Tree Model. It's a tiny bit big because we used to have a variable 'selected trips' that's now calculed dynamically - this is more future proof. This is a start of Un-cluttering the view ( for 4.1 I hope to reduce the code in this class to nearly a half. ) Fixes #303 Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-06Trying to switch to Qt translationGravatar Dirk Hohndel
This compiles and looks about right, but it doesn't appear to work, yet. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-06Parse GPS text in C++ and re-implement GPS changed checkGravatar Dirk Hohndel
This is SO MUCH easier then the convoluted and fragile C / glib code it replaces. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-04Add a helper function to calculate weight display stringGravatar Benjamin
Add a helper function to unify the calculation of the weight display string, instead of having the same calculation in two places in the code. Signed-off-by: Benjamin Fogel <nystire@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-08-05Fix crash in DiveComputerList::addDC() when importing from DM4.Gravatar Michael Andreen
DiveComputerList::getExact() created a temporary QList with the DiveComputerNodes matching a specific model. A pointer to a node in the list was returned, which becomes invalid when the list goes out of scope and gets destroyed. Causing a crash when the model strings are compared later. Instead of using contains() and creating a temporary list, we can just use an iterator, which should be both faster and safer. The crash is easy to trigger with DM4 imports, but can probably be triggered in other cases too. Similar problem with DiveComputerList::get(). Signed-off-by: Michael Andreen <harv@ruin.nu> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-19Remove unused QMap includeGravatar Henrik Brautaset Aronsen
This sneaked into commit 9364436264638e639c7ef2eb642783fbee6f7ea4. It shouldn't be there. Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-18Fix compilation error in DiveComputerList destructor on MacOSXGravatar Henrik Brautaset Aronsen
The compiler on MacOSX seems stricter than others: qthelper.cpp: In destructor ‘DiveComputerList::~DiveComputerList()’: qthelper.cpp:10: error: expected class-name before ‘(’ token Fixed with help from http://stackoverflow.com/a/14777627/13365 Signed-off-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-18Converting the device_info list into a Qt data structureGravatar Dirk Hohndel
This data structure was quite fragile and made 'undo' when editing rather hard to implement. So instead I decided to turn this into a QMultiMap which seemed like the ideal data structure for it. This map holds all the dive computer related data indexed by the model. As QMultiMap it allows multiple entries per key (model string) and disambiguates between them with the deviceId. This commit turned out much larger than I wanted. But I didn't manage to find a clean way to break it up and make the pieces make sense. So this brings back the Ok / Cancel button for the dive computer edit dialog. And it makes those two buttons actually do the right thing (which is what started this whole process). For this to work we simply copy the map to a working copy and do all edits on that one - and then copy that over the 'real' map when we accept the changes. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>