Commit graph

132 commits

Author SHA1 Message Date
pestophagous
4f287b6f80 Bugfix for checkboxes in DC download window GUI repaint delay.
Bug was due to incorrect use of QAbstractItemModel::index.
The arguments should be in (row, col) sequence but we were
mistakenly passing in (col, row).

Fixes #820

Signed-off-by: K. Heller <pestophagous@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-10-07 08:34:37 +01:00
Linus Torvalds
e4d2092f33 Uemis downloader: start downloading using the correct dive ID
The logic to pick the initial dive ID for the uemis downloader was very
confused, and did not work at all when restarting a download when the
Uemis filled up, and the "Force download all dives" flag was set.  It
also required a rather odd Uemis-specific callback from the download UI
because of how it picked the initial ID.

This changes the logic to just look at the list of downloaded dives when
restarting, which simplifies the logic a lot, gets rid of the odd
special callback, and also means that the whole "Force download" issue
just goes away.  It seems to work now.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-19 21:30:33 -07:00
Anton Lundin
7bbd60a4fd Only use DC_TRANSPORT_* with SSRF_CUSTOM_SERIAL
This if'defs DC_TRANSPORT_* use with SSRF_CUSTOM_SERIAL, because the
enum doesn't exist when building against stock libdivecomputer.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-08 13:27:53 -07:00
Claudiu Olteanu
a0e33bec71 Disable Bluetooth option from GUI if SSRF_CUSTOM_SERIAL is undefined
The Bluetooth implementation doesn't work if SSRF_CUSTOM_SERIAL
is undefined. Therefore it is a good idea to remove it from
the UI if the libdivecomputer version is wrong.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-08 10:15:35 -07:00
Claudiu Olteanu
a05cf2136d Reset the index of the device if the Bth mode is disabled
If the Bluetooth download mode was disabled then remove
the Bth address from the device or mount point section and
reset the index.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-07 07:29:29 -07:00
Claudiu Olteanu
9e97f124c6 Save Bluetooth download mode settings
Save the dive computer download mode flag. In this way,
if the user used Bluetooth mode to download its dives on
his last session he doesn't need to open the Bth selection
dialog if he wants to use the same device.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-07 07:29:15 -07:00
Tim Wootton
6a468b4d39 More style and readability changes
Changes to capitalisation to comply with coding style
Changes to make some blocks of english sound a bit better

Signed-off-by: Tim Wootton <tim@tee-jay.org.uk>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-05 07:42:57 -07:00
Claudiu Olteanu
d1a4020ad5 Translate strings for Bluetooth download mode
Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-09-02 15:52:39 -07:00
Claudiu Olteanu
5f60a688c6 Use the address of the BTH device if its name is empty
There are moments when the name of the device is not collected
properly and it is unavailable. Instead of showing an empty string
then print the address of the device.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-08-20 22:45:45 -07:00
Dirk Hohndel
43798702ff Only enable Bluetooth support if building against Qt5.4 or newer
Also remove the quick hack from commit 947fda14c5 ("Bluetooth support:
quick build fix for Qt5.2"). I should have thought this through before
pushing that commit, but oh well.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-07-20 09:35:00 -07:00
Claudiu Olteanu
dff4e5f33e Add a dialog for remote Bluetooth devices selection
Implement a dialog which can be used for remote Bluetooth devices
selection and to control the local Bluetooth device.
Functionalities of the widget:
 - expose information about the local BT device
 - scan for remote BT devices
 - pair/unpair with a remote BT device
 - turn on/off the local BT device
 - logging
 - save the selected BT device

The selection dialog is created when the bluetoothMode checkbox
is enabled.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-07-06 08:36:42 -07:00
Claudiu Olteanu
b4c4d95ea4 Add a checkbox and a button for Bluetooth download mode
The checkbox will be used to enable the Bluetooth
downloading mode. The button will be used to create
a dialog selection where the user will be able to
scan and select remote devices.

Signed-off-by: Claudiu Olteanu <olteanu.claudiu@ymail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-07-06 08:34:39 -07:00
Tomaz Canabrava
37bd82f623 Fewer rebuilds triggered by changes in models.h
Models.h now is quite minimal, I'll keep it like that for now, until it
grows huge again. I've also cleaned a bit the headers that are using it so
only the ones that actually need the stuff that I've left behind will
actually include this file.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-05-29 14:13:44 -07:00
Dirk Hohndel
00b1469658 Merge branch 'v4.4-branch' into newmaster
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-05-21 13:45:25 -07:00
Dirk Hohndel
5810aedeac Uemis downloader: clean up the path for Windows mount point
Oops, we left the (UEMISSDA) in the path. This can never have worked
without the user manually correcting it to just show the drive letter.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-30 16:35:46 -07:00
Dirk Hohndel
8bbb3dfe42 Uemis downloader: allow continuing download by clicking Retry
When we run out of space in the Uemis filesystem we return an error. The
user could reasonably unplug the SDA, insert it again and then retry to
continue the download (that's what we tell them to do). In that case we
need to make sure we start at the correct dive otherwise the same dives
keep getting downloaded over and over again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-30 07:42:42 -07:00
Dirk Hohndel
e9ba8f0ff6 Download dialog: we can accept a partial download after an error
The dialog didn't accept "OK" and store the dives downloaded / selected so
far if there had been an error. Especially with partial downloads from the
Uemis SDA this is something that is quite reasonable to want to do, so
allow exiting the dialog with OK even after an error.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-30 07:41:41 -07:00
Dirk Hohndel
79f15e913b Uemis downloader: allow continuing download by clicking Retry
When we run out of space in the Uemis filesystem we return an error. The
user could reasonably unplug the SDA, insert it again and then retry to
continue the download (that's what we tell them to do). In that case we
need to make sure we start at the correct dive otherwise the same dives
keep getting downloaded over and over again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-20 23:28:04 -07:00
Dirk Hohndel
4bccee238c Download dialog: we can accept a partial download after an error
The dialog didn't accept "OK" and store the dives downloaded / selected so
far if there had been an error. Especially with partial downloads from the
Uemis SDA this is something that is quite reasonable to want to do, so
allow exiting the dialog with OK even after an error.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-04-20 22:11:43 -07:00
Dirk Hohndel
2866a604b4 Revert "Update Qt4 patch"
This reverts commit 762315e7ee.

Oops, this was supposed to update the patch, not update and apply it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-02-22 08:30:34 -08:00
Dirk Hohndel
762315e7ee Update Qt4 patch
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-02-19 21:52:41 -08:00
Lubomir I. Ivanov
071b9ff50c downloadfromdivecomputer.cpp: fix initializer list order warning
Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-02-15 13:29:49 -08:00
Tomaz Canabrava
6b038c2a9a Remove the ProfileWidget from mainwindow.ui
It is now in mainwindo.cpp

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-02-10 10:45:45 -08:00
Tomaz Canabrava
cf4d55c470 Remove the DiveList from the mainwindow.ui
It's now set up from the mainwindow.cpp file.

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-02-10 10:45:45 -08:00
Miika Turkia
6edc458e83 Fix crash when no dives were selected for downloading
Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-26 21:33:09 -08:00
Miika Turkia
d5d42982b8 Fix (un)selecting of downloaded dives
Last index was not included in the selecting or unselecting the
downloaded dives.

Fixes #819

Signed-off-by: Miika Turkia <miika.turkia@gmail.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-26 21:33:05 -08:00
Dirk Hohndel
02d8dd5d13 Clean up the header files
Lots and lots and lots of header files were being included without being
needed. This attempts to clean some of that crud up.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-17 23:00:43 +13:00
Dirk Hohndel
a0c52237ea Dive download UI: sort the dive computer dropdown
I could have sworn we did this at some point. The vendors are already
sorted, but the products for each vendor should be sorted, too.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-13 22:05:55 +13:00
Dirk Hohndel
af3dd1e835 Attempt a better layout for the download dialog
This seems to work well and provides a lot less wasted space.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-13 21:58:28 +13:00
Dirk Hohndel
578e9c22af Dive d/l selection UI: clear table when retrying
After a partial download (because the user hits cancel or because there
was an error, if the user hits Retry the list of dives downloaded so far
should be cleared because we will simply try to re-download the same dives
again.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-11 07:46:21 -08:00
Dirk Hohndel
762f33bd13 Dive d/l UI: redo the states, the flow, the buttons
This is bigger and more invasive then I wanted, but it's hard to break it
down into smaller pieces. Here's what it does:

The former "Download" button becomes the "Download", "Cancel download" and
"Retry" button. So this button controls your interaction with the dive
computer.

The other two buttons are now purely "OK" and "Cancel" for the dialog.
"Cancel" discards what happened (much easier now that we download into a
different table), and "OK" adds the dives that were selected in our
selection UI (by default all downloaded dives) to the real dive_table.

And while redoing all this, I also redid some of the state machine
underlying the dialog. The biggest change that the user will see is that
partial downloads (after canceling or after an error) will still offer the
dives that were completely downloaded up to that point in the selection
menu.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 15:06:25 -08:00
Dirk Hohndel
7357633905 Now use our table when downloading from the dive computer
We pass a different table to libdivecomputer (and the uemis code) and have
that table filled. And then we simply copy the dives from that table into
the real dive_table when the user accepts the download.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 15:06:25 -08:00
Dirk Hohndel
e43ea018fa Add a private table for downloaded dives
This still isn't actually used, just puts it in place.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 15:06:25 -08:00
Dirk Hohndel
a92484e4ed Dive d/l selection UI: remove setData() method
Since we now track all clicks on the row, having the setData() actually
neutralized the action that we took on the clicked() signal.

Now you can select / deselect a dive, regardless where in the row you
click.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 12:42:09 -08:00
Dirk Hohndel
4d26e3a0cb Dive d/l selection UI: fix the row count ranges
Yet another bug because the indices are inclusive. We need to start off
with the last being smaller than first and we need to adjust the row
count. It might be easier to just fix thing to make last be exclusive...

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 12:42:09 -08:00
Dirk Hohndel
80af8e7fa2 Dive d/l selection UI: update checkmark state correctly
This fixes the issue where there was no visual feedback when clicking on
the second or third column in the grid. It would actually change the
checked state of the checkmark internally (and you would see the new state
once you clicked on another dive), but it wouldn't give immediate visual
feedback.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 12:42:09 -08:00
Dirk Hohndel
15fb6158bc Dive d/l selection UI: the indices are inclusive, allocate enough space
The array we allocated was one entry too small.

On the flip side, let's just make sure we cannot call this with a negative
range. That would be bad, too.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 12:41:38 -08:00
Dirk Hohndel
cd2cee4974 Dive d/l selection UI: only allow one download for now
We may reconsider this as this might replace the Retry function that's
currently completely broken.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 12:00:34 -08:00
Dirk Hohndel
e9e6e75feb Dive d/l selection UI: don't setup the model if there are no dives
Setting things up for zero dives will cause all kinds of weird corner
cases. Just don't do it.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-09 11:28:15 -08:00
Dirk Hohndel
562f88d2b7 Use setEnabled() instead of setDisabled()
I don't like mixing setEnabled() and setDisabled()... let's just always
use setEnabled().

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 12:56:17 -08:00
Dirk Hohndel
0dd8d11a18 Dive d/l selection UI: hook up select / unselect all
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 12:54:53 -08:00
Dirk Hohndel
e6b5a00e35 Dive d/l selection UI: allow clicking anywhere in a row
It seemed silly to only be allowed to click the tiny checkbox.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 11:39:34 -08:00
Dirk Hohndel
d16bff13bb Dive d/l selection UI: fix more array access errors
The checked array is zero based, reflecting the rows shown.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 11:27:47 -08:00
Dirk Hohndel
32824e8db8 Dive d/l selection UI: brute force size optimizations
This is horrible, but it gets something in place and hopefully we can
clean this up soon.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 11:19:01 -08:00
Dirk Hohndel
d143527732 Dive d/l selection UI: show reasonable column headers
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 10:12:43 -08:00
Dirk Hohndel
1ce2d42e8d Random whitespace cleanup
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 10:02:28 -08:00
Dirk Hohndel
17b9597f3e Dive d/l selection UI: fix check if things were checked
Math is hard.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 10:00:30 -08:00
Dirk Hohndel
847289605b Dive d/l selection UI: close the dialog when done
This is where we need to call accept()

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 09:59:01 -08:00
Dirk Hohndel
cb6f04f16c Dive d/l selection UI: Only show checkbox on the first column
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 09:43:29 -08:00
Dirk Hohndel
9d38ceb95d Dive d/l selection UI: disable OK until things are downloaded
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2015-01-08 09:39:47 -08:00