aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/downloadfromdivecomputer.cpp
AgeCommit message (Collapse)Author
2014-08-14Add "download into private trip" dialog checkmarkGravatar Linus Torvalds
This adds a checkbox for the divecomputer download dialog that allows you to tell the download to put the newly downloaded dives into a trip of their own. That in turn will disable the dive merging with any existing dives, which means that you will not mix up your newly downloaded dives with any old dives. That, in turn, is very convenient of you know that some of the dives were done by other divers (or from testing that happened during servicing etc), or the dive dates etc were wrong because the dive computer date had reset due to battery changes etc. Once you have all the dives in a private trip of their own, you can then fix them up (delete dives you don't want to merge etc), and then after all the data is ok you might want to merge the cleaned-up results with previous trips etc, and then manually ask subsurface to merge the dives or whatever. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-07-14Try to avoid inconsistent selection state after divecomputer downloadGravatar Dirk Hohndel
I cannot reproduce the problem, but adding one more call to unselectDives() should ensure that all dives are marked as not selected before selecting the last dive that was downloaded. See #620 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-26Rework slot to quiet down Qt5 warningGravatar Anton Lundin
Qt5 got confused about this slot. This does the same as previously but gets Qt5 happy. Signed-off-by: Anton Lundin <glance@acc.umu.se> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-22Gratuitous whitespace changesGravatar Dirk Hohndel
I keep trying to get to consistenct. Completely hopeless. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-19Make the code easier to readGravatar Dirk Hohndel
This uses the new helper function from commit fc4f133f19d0 ("Add new helper function that looks up the index of a dive by its uniq ID") to make the logic implemented in commit 122593a63a46 ("Fix selection after downloading dives from the dive computer") much saner to read. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-19Fix selection after downloading dives from the dive computerGravatar Dirk Hohndel
If we successfully download dives, the old selection should be cleared and the one of the newly downloaded dives should be selected. I decided to pick the last dive downloaded, which for most dive computers (but for example not for the Uemis SDA) will be the first or earliest of the dives. That seems much more intuitive than keeping the previous selection around. Of course this is harder than it should be because of the way we track selections and because we need a consistent dive list model in order to change the selection. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-19Download from dive computer: Fix the broken selection of devicesGravatar Dirk Hohndel
The old code was completely bogus - it's confused about what the variable 'i' is counting. This also let's us select the Uemis mount point by default if that's the only valid "device" that we found. Compile tested on Windows, untested on Mac. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-19Divecomputer download: try to offer only those devices that make senseGravatar Dirk Hohndel
If the user selects a Uemis divecomputer, don't show serial devices. If the user selects a serial divecomputer, don't show the Uemis filesystem. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-13Do not check for null before free.Gravatar Tomaz Canabrava
C specs says that we can safelly free a NULL pointer, so there's no reason to check if it's null before freeing it. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-13Move DiveList related methods/classes to own file.Gravatar Tomaz Canabrava
The DiveList classes were a partial mess (and some of it is still in a messy state). The classes that deal with it where done in 'qtHelpers.h', the extern global variable in dive.h, a few methods here and there. This concentrates most - but not all - functions in their own file. The reason for that is to make the new developer faster when looking for things: if it's a divecomputer related method, it should be in a single file, not scattered around. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-07Remove spurious debug printoutGravatar Dirk Hohndel
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-05-07Even if there is progress text, still set the progress bar percentageGravatar Dirk Hohndel
I don't understand why we wouldn't set the percentage if we displayed text there as well. This looks much better. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-25Ctrl-W and -Q support for GPS, divelogs.de, divecomputer and CVS importGravatar Dirk Hohndel
Getting closer to consistent behavior. See #489 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-04-25Fix 'cancelling divecomputer download'Gravatar Tomaz Canabrava
When a download is canceled, discard the partially downloaded dives. Fixes #341 Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.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-26reseting progress_bar_text for new downloadsGravatar Danilo Cesar Lemes de Paula
if the user tries to redownload something from its dive computer the interface will be stuck since progress_bar_text won't be empty in the second run. Even if I don't really like this idea of that value being changed by downloadfromdivecomputer.cpp and libdivecomputer.c, that value needs to be reset by someone. Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-26disable buttons while downloadingGravatar Danilo Cesar Lemes de Paula
Simple patch to enable/disable extra buttons while downloading. The UI should be blocked during the download. Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-18Implement the '...' search button for Uemis dive computersGravatar Dirk Hohndel
Right now the search button isn't connected for any device (clearly an oversight). At least for the Uemis I think I have a sane implementation of what that should do. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-15Initialize device_data_t dataGravatar Dirk Hohndel
If the user never clicks on the log and dump checkboxes (and that's what we expect to be the case by default), then the log / dump flags (and filenames) were never initialized. I am reasonably certain this will close the following three bugs, that all show the same symptom: they behave as if libdivecomputer dump was set, even if it wasn't. Fixes: #426 Fixes: #431 Fixes: #435 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-02-12Don't shadow object members like thisGravatar Dirk Hohndel
If you need to use this->error to distinguish the local variable from the object membe that should be a hint that maybe you didn't pick the best name for the local variable. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-09downloadfromdivecomputer.cpp improvementsGravatar Boris Barbulovski
* Add missing variable members to the initializer lists. Signed-off-by: Boris Barbulovski <bbarbulovski@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-09DownloadFromDCWidget class cleanupGravatar Boris Barbulovski
Remove static DownloadFromDCWidget::instance() method Signed-off-by: Boris Barbulovski <bbarbulovski@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-27Detect errors while downloading from libdivecomputerGravatar Dirk Hohndel
Show them in the progress bar and offer to retry. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-01-16Whitespace and coding style updatesGravatar Dirk Hohndel
Another futile attempt to cleanup the code and make coding style and whitespace consistent. I tried to add a file that describes the key points of our coding style. I have no illusions that this will help the least bit... This commit should ONLY change whitespace 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-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-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>
2013-12-27Fix warning about initialization orderingGravatar Dirk Hohndel
I cannot tell what the potential impact of this might be, but the fix is trivial. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-27Disable DC device node if it is not neededGravatar Benjamin
This patch disables/enables the DC device node based on what type of transport the selected DC uses. The only time the device node field is used is if the selected DC uses a serial transport type. IrDA and USB type transports do not use the device node. Signed-off-by: Benjamin Fogel <nystire@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-26Display warning that dives won't be downloaded when enabling libdc dumpGravatar Dirk Hohndel
The warning is only shown once per session. 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-10Reset libdivecomuter import canceled stateGravatar Dirk Hohndel
Once the process got cancelled once we never reset the flag. Fixes #82 Initial-fix-by: Jef Driesen Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-12-08When the user cancels a download, reject already downloaded divesGravatar Dirk Hohndel
This seems like the more logical behavior, anyway. Cancel means you didn't want the result... Fixes #341 Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-30Fix all leak-at-exit from singletons in SubsurfaceGravatar Thiago Macieira
Subsurface creates a lot of singleton instances on demand, but nothing ever deleted them. Since they are singletons, these memory allocations are technically not leaks. However, they clutter the output in valgrind and other memory analysers, hiding the real issues. The solution is to delete these items at exit. For the models and for gettextFromC, the solution is to use a QScopedPointer, which will delete its payload when it gets destroyed. For the dialogs and other widgets, we can't do that: they need to be deleted before QApplication exits, so we just set the parent in all of them to the main window. Signed-off-by: Thiago Macieira <thiago@macieira.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-21Work around QMessageBox not showing its title on MacGravatar Dirk Hohndel
This is a bit hacky and simply adds the title to the message text when compiling on a Mac, but hopefully this will be enough. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-11-09After done with the DC download dialog, ensure it's in its original stateGravatar Dirk Hohndel
So in case the OK button was relabeled to 'Retry', relabel it back to OK. Also, 'Retry' should be capitalized. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-15Fix stupid editing errorGravatar Dirk Hohndel
Don't do "obvious cleanups" at 4 in the morning when you can't sleep because of emotionally draining issues outside of your control... and if you do, at least compile test them. This was introduced by me in commit 2f9f46cb0253 ("Random white space cleanup"). Sorry. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-15Random white space cleanupGravatar Dirk Hohndel
Because I can. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-11Good deal of whitespace fixes and code cleanup.Gravatar Tomaz Canabrava
I just went thru all of subsurface code removing some whitespaces issues and trying to make the code prettyer, I also removed a few QString issues.d Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org>
2013-10-03Make the classes generated by uic be real members of our classesGravatar Thiago Macieira
This means we don't have to new/delete them, which is a waste of overhead. Signed-off-by: Thiago Macieira <thiago@macieira.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-10-03Include the ui_*.h headers in the main headers.Gravatar Thiago Macieira
This means we can also remove the forward declarations. This is the first step in removing the memory allocation for the ui sub-classes. Without the second step, this commit is just making the compilation time increase for no good reason :-) Signed-off-by: Thiago Macieira <thiago@macieira.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-09-17move process_dives to the mainthreadGravatar Danilo Cesar Lemes de Paula
Avoids a race condition. Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
2013-09-16implement device probe in CGravatar Danilo Cesar Lemes de Paula
It's an attempt to build auto-completion for the dive-computers based on unpublished code inside libdivecomputer[1] [1] - http://git.libdivecomputer.org/?p=libdivecomputer.git;a=commitdiff;h=d44053a99435fb9fc1f408fb3f1629a54c938afc Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
2013-09-10improve DownloadDialog's error handlingGravatar Danilo Cesar Lemes de Paula
shows an error message when libdivecomputer returns an error. Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
2013-09-10improve DownloadDialog UI controlGravatar Danilo Cesar Lemes de Paula
* Removes the InterfaceThread which is basically an unecessary proxy between the MainThread and the DownloadThread. * Use a state machine to control the DownloadWidget UI logic. Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
2013-08-29fix DownloadDialog behaviorGravatar Danilo Cesar Lemes de Paula
The DownloadDialog behavior was broken in a way it allows the user to make changes on the dialog while the download is happening. Also, clicking on "Cancel" breaks/hangs the UI sometimes, as libdivingcomputer doesn't always cancels the download right away. That's a bug that still needs to be fixed. Signed-off-by: Danilo Cesar Lemes de Paula <danilo.eu@gmail.com>
2013-06-28A couple of dialog modality considerationsGravatar Lubomir I. Ivanov
While most dialogs can be open and the main application window can still be accessed, certain should possibly be modal in these terms. This patch proposes the download from webservice and DC dialogs to lock the main application window until they are closed, with the consideration of preventing eventual unexpected behavior in the divelist if both dialogs are active at the same time. To solve that QtDialog::exec() is used instead of QtWidget::show(). Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-28Close child windows and dialogs with main windowGravatar Lubomir I. Ivanov
Most child windows should be closed with the main application window otherwise if left open and if making specific modifictions could potentially cause a SIGSEGV. To solve that we mark all custom windows/dialogs with the Qt::WA_QuitOnClose attribute on instance creation. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2013-06-24Enable downloads from the UEMIS ZurichGravatar Dirk Hohndel
This behaves somewhat differently from the Gtk version - still needs more investigation. But at least now it's hooked in. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>