mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Break picture handling code from C++ to C.
This commit breaks the loading of images that were done in the divelist into smaller bits. A bit of code refactor was done in order to correct the placement of a few methods. ShiftTimesDialog::EpochFromExiv got moved to Exif::epoch dive_add_picture is now used instead of add_event picture_load_exif_data got implemented using the old listview code. dive_set_geodata_from_picture got implemented using the old listview code. Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
13e8aba7da
commit
d95d1735b5
9 changed files with 87 additions and 70 deletions
20
qthelper.cpp
20
qthelper.cpp
|
@ -1,5 +1,8 @@
|
|||
#include "qthelper.h"
|
||||
#include "qt-gui.h"
|
||||
#include "dive.h"
|
||||
#include <exif.h>
|
||||
#include "file.h"
|
||||
#include <QRegExp>
|
||||
#include <QDir>
|
||||
|
||||
|
@ -260,3 +263,20 @@ extern "C" xsltStylesheetPtr get_stylesheet(const char *name)
|
|||
|
||||
return xslt;
|
||||
}
|
||||
|
||||
extern "C" void picture_load_exif_data(struct picture *p)
|
||||
{
|
||||
EXIFInfo exif;
|
||||
memblock mem;
|
||||
|
||||
if (readfile(p->filename, &mem) <= 0)
|
||||
goto picture_load_exit;
|
||||
if (exif.parseFrom((const unsigned char *)mem.buffer, (unsigned)mem.size) != PARSE_EXIF_SUCCESS)
|
||||
goto picture_load_exit;
|
||||
p->timestamp = exif.epoch();
|
||||
p->longitude.udeg= lrint(1000000.0 * exif.GeoLocation.Longitude);
|
||||
p->latitude.udeg = lrint(1000000.0 * exif.GeoLocation.Latitude);
|
||||
picture_load_exit:
|
||||
free(mem.buffer);
|
||||
return;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue