subsurface/subsurface.pro
Robert C. Helling 5c1abde2a5 Include images in profile
This adds an entry to the dive list context menu to load images. The user
can select image files and set a time offset to align camera and dive
computer clocks.

Using the exif time stamp the images are tried to match to the times of
the selected dives (with a grace period of an hour before and after the
dive).  Upon success an event of type 123 is created per image with the
string value being the path to the image.  Those images are displayed as
thumbnails in the profile. If the matching dive does not yet have a geo
location specified but the image provides one it is copied to the dive
(making the camera a poor man's companion app).

This patch includes easyexif https://code.google.com/p/easyexif/ which is
originally under a New BSD License to parse the image meta data.

This commit includes a new test dive dives/test31.xml with a matching
image wreck.jpg to try out the functionallity.

Obvious to do's:
Have images on the map
Have the images clickable
Have a proper picture viewer
Give visual reference for image time shifting.
Use the new profile

Signed-off-by: Robert C. Helling <helling@atdotde.de>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2014-02-06 11:29:23 -08:00

237 lines
5.9 KiB
Prolog

include(subsurface-configure.pri)
QT = core gui network svg
lessThan(QT_MAJOR_VERSION, 5) {
QT += webkit
} else {
QT += webkitwidgets
}
INCLUDEPATH += qt-ui $$PWD
DEPENDPATH += qt-ui
mac: TARGET = Subsurface
else: TARGET = subsurface
VERSION = 4.0.2
HEADERS = \
color.h \
deco.h \
device.h \
display.h \
dive.h \
divelist.h \
file.h \
flag.h \
gettextfromc.h \
gettext.h \
helpers.h \
libdivecomputer.h \
planner.h \
pref.h \
profile.h \
qt-gui.h \
qthelper.h \
qt-ui/about.h \
qt-ui/completionmodels.h \
qt-ui/divecomputermanagementdialog.h \
qt-ui/divelistview.h \
qt-ui/diveplanner.h \
qt-ui/downloadfromdivecomputer.h \
qt-ui/globe.h \
qt-ui/graphicsview-common.h \
qt-ui/kmessagewidget.h \
qt-ui/maintab.h \
qt-ui/mainwindow.h \
qt-ui/modeldelegates.h \
qt-ui/models.h \
qt-ui/preferences.h \
qt-ui/printdialog.h \
qt-ui/printlayout.h \
qt-ui/printoptions.h \
qt-ui/profilegraphics.h \
qt-ui/simplewidgets.h \
qt-ui/starwidget.h \
qt-ui/subsurfacewebservices.h \
qt-ui/tableview.h \
qt-ui/exif.h \
sha1.h \
statistics.h \
subsurface-icon.h \
subsurfacestartup.h \
uemis.h \
webservice.h \
qt-ui/divelogimportdialog.h \
qt-ui/tagwidget.h \
qt-ui/groupedlineedit.h \
qt-ui/usermanual.h \
qt-ui/profile/profilewidget2.h \
qt-ui/profile/diverectitem.h \
qt-ui/profile/divepixmapitem.h \
qt-ui/profile/divelineitem.h \
qt-ui/profile/divetextitem.h \
qt-ui/profile/animationfunctions.h \
qt-ui/profile/divecartesianaxis.h \
qt-ui/profile/diveplotdatamodel.h \
qt-ui/profile/diveprofileitem.h \
qt-ui/profile/diveeventitem.h \
qt-ui/profile/divetooltipitem.h
SOURCES = \
deco.c \
device.c \
dive.c \
divelist.c \
equipment.c \
file.c \
gettextfromc.cpp \
libdivecomputer.c \
main.cpp \
membuffer.c \
parse-xml.c \
planner.c \
profile.c \
qt-gui.cpp \
qthelper.cpp \
qt-ui/about.cpp \
qt-ui/completionmodels.cpp \
qt-ui/divecomputermanagementdialog.cpp \
qt-ui/divelistview.cpp \
qt-ui/diveplanner.cpp \
qt-ui/downloadfromdivecomputer.cpp \
qt-ui/globe.cpp \
qt-ui/graphicsview-common.cpp \
qt-ui/kmessagewidget.cpp \
qt-ui/maintab.cpp \
qt-ui/mainwindow.cpp \
qt-ui/modeldelegates.cpp \
qt-ui/models.cpp \
qt-ui/preferences.cpp \
qt-ui/printdialog.cpp \
qt-ui/printlayout.cpp \
qt-ui/printoptions.cpp \
qt-ui/profilegraphics.cpp \
qt-ui/simplewidgets.cpp \
qt-ui/starwidget.cpp \
qt-ui/subsurfacewebservices.cpp \
qt-ui/tableview.cpp \
qt-ui/exif.cpp \
save-xml.c \
sha1.c \
statistics.c \
strtod.c \
subsurfacestartup.c \
time.c \
uemis.c \
uemis-downloader.c \
qt-ui/divelogimportdialog.cpp \
qt-ui/tagwidget.cpp \
qt-ui/groupedlineedit.cpp \
qt-ui/usermanual.cpp \
qt-ui/profile/profilewidget2.cpp \
qt-ui/profile/diverectitem.cpp \
qt-ui/profile/divepixmapitem.cpp \
qt-ui/profile/divelineitem.cpp \
qt-ui/profile/divetextitem.cpp \
qt-ui/profile/animationfunctions.cpp \
qt-ui/profile/divecartesianaxis.cpp \
qt-ui/profile/diveplotdatamodel.cpp \
qt-ui/profile/diveprofileitem.cpp \
qt-ui/profile/diveeventitem.cpp \
qt-ui/profile/divetooltipitem.cpp
linux*: SOURCES += linux.c
mac: SOURCES += macos.c
win32: SOURCES += windows.c
FORMS = \
qt-ui/about.ui \
qt-ui/divecomputermanagementdialog.ui \
qt-ui/diveplanner.ui \
qt-ui/downloadfromdivecomputer.ui \
qt-ui/maintab.ui \
qt-ui/mainwindow.ui \
qt-ui/preferences.ui \
qt-ui/printoptions.ui \
qt-ui/renumber.ui \
qt-ui/shifttimes.ui \
qt-ui/shiftimagetimes.ui \
qt-ui/webservices.ui \
qt-ui/tableview.ui \
qt-ui/divelogimportdialog.ui \
qt-ui/usermanual.ui
RESOURCES = subsurface.qrc
TRANSLATIONS = \
translations/subsurface_source.ts \
translations/subsurface_bg_BG.ts \
translations/subsurface_da_DK.ts \
translations/subsurface_de_CH.ts \
translations/subsurface_de_DE.ts \
translations/subsurface_es_ES.ts \
translations/subsurface_et_EE.ts \
translations/subsurface_fi_FI.ts \
translations/subsurface_fr_FR.ts \
translations/subsurface_it_IT.ts \
translations/subsurface_nb_NO.ts \
translations/subsurface_nl_NL.ts \
translations/subsurface_pl_PL.ts \
translations/subsurface_pt_BR.ts \
translations/subsurface_pt_PT.ts \
translations/subsurface_ru_RU.ts \
translations/subsurface_sk_SK.ts \
translations/subsurface_sv_SE.ts \
translations/subsurface_zh_TW.ts \
translations/subsurface_he.ts
QTTRANSLATIONS = \
qt_da.qm \
qt_de.qm \
qt_es.qm \
qt_fr.qm \
qt_pl.qm \
qt_pt.qm \
qt_ru.qm \
qt_sk.qm \
qt_sv.qm
doc.commands += $$escape_expand(\\n\\t)$(MAKE) -C $$PWD/Documentation OUT=$$OUT_PWD/Documentation/ doc
all.depends += doc
QMAKE_EXTRA_TARGETS += doc all
DESKTOP_FILE = subsurface.desktop
mac: ICON = packaging/macosx/Subsurface.icns
else: ICON = subsurface-icon.svg
MANPAGE = subsurface.1
XSLT_FILES = xslt
ICONS_FILES = icons
DOC_FILES = $$OUT_PWD/Documentation/user-manual.html Documentation/images
MARBLEDIR = marbledata/maps marbledata/bitmaps
#DEPLOYMENT_PLUGIN += bearer/qnativewifibearer
DEPLOYMENT_PLUGIN += codecs/qcncodecs codecs/qjpcodecs codecs/qkrcodecs codecs/qtwcodecs
DEPLOYMENT_PLUGIN += imageformats/qgif imageformats/qjpeg imageformats/qsvg
DEPLOYMENT_PLUGIN += iconengines/qsvgicon
#DEPLOYMENT_PLUGIN += sqldrivers/qsqlite
# This information will go into the Windows .rc file and linked into the .exe
QMAKE_TARGET_COMPANY = subsurface team
QMAKE_TARGET_DESCRIPTION = subsurface dive log
QMAKE_TARGET_COPYRIGHT = Linus Torvalds, Dirk Hohndel and others
# And this is the Mac Info.plist file
# qmake automatically generates sed rules to replace:
# token qmake expansion
# @ICON@ $$ICON
# @TYPEINFO@ first 4 chars of $$QMAKE_PKGINFO_TYPEINFO
# @EXECUTABLE@ $$QMAKE_ORIG_TARGET
# @LIBRARY@ $$QMAKE_ORIG_TARGET
# @SHORT_VERSION@ $$VER_MAJ.$$VER_MIN
QMAKE_INFO_PLIST = packaging/macosx/Info.plist.in
OTHER_FILES += $$DESKTOPFILE $$ICON $$MANPAGE $$XSLT_FILES $$DOC_FILES $$MARBLEDIR \
$$QMAKE_INFO_PLIST
include(subsurface-gen-version.pri)
include(subsurface-install.pri)