diff --git a/CMakeLists.txt b/CMakeLists.txt index 347c10e..6ca2b27 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,6 +15,9 @@ find_package(Qt5Qml) find_package(Qt5Quick) find_package(Qt5Multimedia) find_package(Qt5Gui) +find_package(PkgConfig REQUIRED) + +pkg_check_modules(EXIV2 REQUIRED exiv2) find_program(INTLTOOL_MERGE intltool-merge) find_program(INTLTOOL_EXTRACT intltool-extract) @@ -121,7 +124,7 @@ install(TARGETS ${CAMERA_APP} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} ) -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -std=c++11 -Wall -Werror") file(GLOB QML_JS_FILES *.qml *.js *.png) diff --git a/CameraApp/adddatestamp.cpp b/CameraApp/adddatestamp.cpp index 3882515..70dc8d2 100644 --- a/CameraApp/adddatestamp.cpp +++ b/CameraApp/adddatestamp.cpp @@ -1,3 +1,5 @@ +#include + #include #include #include @@ -16,6 +18,10 @@ AddDateStamp::AddDateStamp(QString inPath, QString dateFormat, QColor stampColo void AddDateStamp::run() { try { + const char* exifPath = path.toUtf8().toStdString().c_str(); + Exiv2::Image::AutoPtr oldExifImage = Exiv2::ImageFactory::open(exifPath); + oldExifImage->readMetadata(); + Exiv2::ExifData &exifData = oldExifImage->exifData(); QImage image = QImage(path); QDateTime now = QDateTime::currentDateTime(); @@ -42,6 +48,10 @@ void AddDateStamp::run() { success &= QFile::rename(tmpPath, path); if(success) { QFile::remove(backupFilePath); + Exiv2::Image::AutoPtr newExifImage = Exiv2::ImageFactory::open(exifPath); + newExifImage->setExifData(exifData); + newExifImage->writeMetadata(); + } else { //try and move the backup file back to it original name QFile::rename(backupFilePath, path); } diff --git a/CameraApp/adddatestamp.h b/CameraApp/adddatestamp.h index 1baeb87..741ff83 100644 --- a/CameraApp/adddatestamp.h +++ b/CameraApp/adddatestamp.h @@ -5,8 +5,8 @@ class AddDateStamp : public QThread { - static const float MAXIMUM_TEXT_HEIGHT_PECENT_OF_IMAGE = 0.04f; - static const float MINIMUM_TEXT_HEIGHT_PECENT_OF_IMAGE = 0.02f; + static constexpr float MAXIMUM_TEXT_HEIGHT_PECENT_OF_IMAGE = 0.04f; + static constexpr float MINIMUM_TEXT_HEIGHT_PECENT_OF_IMAGE = 0.02f; public: AddDateStamp(QString inPath, QString dateFormat, QColor stampColor, float opacity, int alignment);