mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Extract the device_data_t into helper class
Keeping the Desktop and QML versions of Subsurface using the same codebase will keep the code saner, this change makes the Desktop version use the DCDeviceData helper sturct that encapsulates the device_data_t member for easy access on the QML. This also helped move a bit of initializations from the UI to the Core - and that's always good. Signed-off-by: Tomaz Canabrava <tcanabrava@kde.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
acbe5de1cb
commit
09904ddff5
4 changed files with 103 additions and 54 deletions
|
@ -15,28 +15,27 @@ static QString str_error(const char *fmt, ...)
|
|||
return str;
|
||||
}
|
||||
|
||||
DownloadThread::DownloadThread(QObject *parent, device_data_t *data) : QThread(parent),
|
||||
data(data)
|
||||
DownloadThread::DownloadThread()
|
||||
{
|
||||
data->download_table = nullptr;
|
||||
}
|
||||
|
||||
void DownloadThread::setDiveTable(struct dive_table* table)
|
||||
{
|
||||
data->download_table = table;
|
||||
m_data.setDiveTable(table);
|
||||
}
|
||||
|
||||
void DownloadThread::run()
|
||||
{
|
||||
Q_ASSERT(data->download_table != nullptr);
|
||||
auto internalData = m_data.internalData();
|
||||
Q_ASSERT(internalData->download_table != nullptr);
|
||||
const char *errorText;
|
||||
import_thread_cancelled = false;
|
||||
if (!strcmp(data->vendor, "Uemis"))
|
||||
errorText = do_uemis_import(data);
|
||||
if (!strcmp(internalData->vendor, "Uemis"))
|
||||
errorText = do_uemis_import(internalData);
|
||||
else
|
||||
errorText = do_libdivecomputer_import(data);
|
||||
errorText = do_libdivecomputer_import(internalData);
|
||||
if (errorText)
|
||||
error = str_error(errorText, data->devname, data->vendor, data->product);
|
||||
error = str_error(errorText, internalData->devname, internalData->vendor, internalData->product);
|
||||
}
|
||||
|
||||
void fill_computer_list()
|
||||
|
@ -86,6 +85,20 @@ void fill_computer_list()
|
|||
qSort(vendorList);
|
||||
}
|
||||
|
||||
DCDeviceData::DCDeviceData(QObject *parent) : QObject(parent)
|
||||
{
|
||||
memset(&data, 0, sizeof(data));
|
||||
data.trip = nullptr;
|
||||
data.download_table = nullptr;
|
||||
data.diveid = 0;
|
||||
data.deviceid = 0;
|
||||
}
|
||||
|
||||
DCDeviceData & DownloadThread::data()
|
||||
{
|
||||
return m_data;
|
||||
}
|
||||
|
||||
QString DCDeviceData::vendor() const
|
||||
{
|
||||
return data.vendor;
|
||||
|
@ -104,7 +117,6 @@ QString DCDeviceData::devName() const
|
|||
QString DCDeviceData::descriptor() const
|
||||
{
|
||||
return "";
|
||||
// return data.descriptor;
|
||||
}
|
||||
|
||||
bool DCDeviceData::bluetoothMode() const
|
||||
|
@ -176,3 +188,33 @@ void DCDeviceData::setDiveId(int diveId)
|
|||
{
|
||||
data.diveid = diveId;
|
||||
}
|
||||
|
||||
void DCDeviceData::setSaveDump(bool save)
|
||||
{
|
||||
data.libdc_dump = save;
|
||||
}
|
||||
|
||||
bool DCDeviceData::saveDump() const
|
||||
{
|
||||
return data.libdc_dump;
|
||||
}
|
||||
|
||||
void DCDeviceData::setSaveLog(bool saveLog)
|
||||
{
|
||||
data.libdc_log = saveLog;
|
||||
}
|
||||
|
||||
bool DCDeviceData::saveLog() const
|
||||
{
|
||||
return data.libdc_log;
|
||||
}
|
||||
|
||||
device_data_t* DCDeviceData::internalData()
|
||||
{
|
||||
return &data;
|
||||
}
|
||||
|
||||
void DCDeviceData::setDiveTable(struct dive_table* downloadTable)
|
||||
{
|
||||
data.download_table = downloadTable;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue