mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
qPref: add ability to remember recently used dive computers
This does feel clumsy and complicated. This is a lot of special case handling and a lot of boilerplate for something that really should be quite simple. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
5b37d87e2d
commit
77a5c9ac65
4 changed files with 167 additions and 20 deletions
|
@ -17,19 +17,48 @@ qPrefDiveComputer *qPrefDiveComputer::instance()
|
|||
|
||||
void qPrefDiveComputer::loadSync(bool doSync)
|
||||
{
|
||||
// last computer used
|
||||
disk_device(doSync);
|
||||
disk_device_name(doSync);
|
||||
disk_download_mode(doSync);
|
||||
disk_product(doSync);
|
||||
disk_vendor(doSync);
|
||||
|
||||
// the four shortcuts
|
||||
#define DISK_DC(num) \
|
||||
disk_device##num(doSync); \
|
||||
disk_device_name##num(doSync); \
|
||||
disk_product##num(doSync); \
|
||||
disk_vendor##num(doSync);
|
||||
|
||||
DISK_DC(1)
|
||||
DISK_DC(2)
|
||||
DISK_DC(3)
|
||||
DISK_DC(4)
|
||||
|
||||
}
|
||||
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_device", device, dive_computer.);
|
||||
// these are the 'active' settings
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_device", device, dive_computer.)
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_device_name", device_name, dive_computer.)
|
||||
HANDLE_PREFERENCE_INT_EXT(DiveComputer, "dive_computer_download_mode", download_mode, dive_computer.)
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_product", product, dive_computer.)
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_vendor", vendor, dive_computer.)
|
||||
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_device_name", device_name, dive_computer.);
|
||||
|
||||
HANDLE_PREFERENCE_INT_EXT(DiveComputer, "dive_computer_download_mode", download_mode, dive_computer.);
|
||||
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_product", product, dive_computer.);
|
||||
|
||||
HANDLE_PREFERENCE_TXT_EXT(DiveComputer, "dive_computer_vendor", vendor, dive_computer.);
|
||||
// these are the previous four to make it easy to go back and forth between multiple dive computers
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device1", device, dive_computer, 1)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device2", device, dive_computer, 2)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device3", device, dive_computer, 3)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device4", device, dive_computer, 4)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device_name1", device_name, dive_computer, 1)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device_name2", device_name, dive_computer, 2)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device_name3", device_name, dive_computer, 3)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_device_name4", device_name, dive_computer, 4)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_product1", product, dive_computer, 1)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_product2", product, dive_computer, 2)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_product3", product, dive_computer, 3)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_product4", product, dive_computer, 4)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_vendor1", vendor, dive_computer, 1)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_vendor2", vendor, dive_computer, 2)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_vendor3", vendor, dive_computer, 3)
|
||||
HANDLE_PREFERENCE_TXT_EXT_ALT(DiveComputer, "dive_computer_vendor4", vendor, dive_computer, 4)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue