diff options
author | Tomaz Canabrava <tomaz.canabrava@intel.com> | 2014-06-03 14:51:47 -0300 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2014-06-03 16:39:06 -0700 |
commit | f53b5c4d3f5bcf396d9abaa72f0be31a3d5512dc (patch) | |
tree | 608d1592ac9cd7b7006f4e640c33c77678940b22 /qt-ui/divelistview.cpp | |
parent | 58f2613daeabeb3f7470d4e26af7a7ad75624d5e (diff) | |
download | subsurface-f53b5c4d3f5bcf396d9abaa72f0be31a3d5512dc.tar.gz |
Fix linked list corruption, move code to C.
The picture list is a single linked list where the pictures have a node to
their next element. When adding the same picture to two dives, things got
way way wrong and crashes were appearing.
This will replicate the information (filename, latitude and longitude) for
each dive that has the picture, BUT it still tries to save as much as
possible on the actual pixmap.
Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/divelistview.cpp')
-rw-r--r-- | qt-ui/divelistview.cpp | 9 |
1 files changed, 1 insertions, 8 deletions
diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp index 57ad3f21f..78186ecd0 100644 --- a/qt-ui/divelistview.cpp +++ b/qt-ui/divelistview.cpp @@ -775,19 +775,12 @@ void DiveListView::loadImages() updateLastImageTimeOffset(shiftDialog.amount()); Q_FOREACH(const QString& fileName, fileNames) { - picture *p = alloc_picture(); - p->filename = qstrdup(fileName.toUtf8().data()); - picture_load_exif_data(p); - - if (p->timestamp) - p->timestamp += shiftDialog.amount(); // TODO: this should be cached and passed to the C-function int j = 0; struct dive *dive; for_each_dive (j, dive) { if (!dive->selected) continue; - dive_add_picture(dive, p); - dive_set_geodata_from_picture(dive, p); + dive_create_picture(dive, qstrdup(fileName.toUtf8().data()), shiftDialog.amount()); } } |