summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-21 11:55:40 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2015-06-21 12:49:05 -0700
commit174cb1ffb10d846834fdfd1538d128744dffd65c (patch)
tree420b55fd9e47210a46c874e08e6ea2faa2ae0edb
parent31fbc167850572f034c7fbb8551e10e0cfd7ca29 (diff)
downloadsubsurface-174cb1ffb10d846834fdfd1538d128744dffd65c.tar.gz
HTML export: need to work harder to find the pictures
Simply looking at the filename in the picture structure isn't enough (now, arguably one might say that it should be and that that data structure should be updated, but that's not how other parts of Subsurface have implemented things so I don't want to break that assumption here). So instead we look up where the pictures actually was loaded from and then copy that file into the right location. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
-rw-r--r--qthelper.cpp8
-rw-r--r--qthelperfromc.h2
-rw-r--r--save-html.c4
3 files changed, 7 insertions, 7 deletions
diff --git a/qthelper.cpp b/qthelper.cpp
index abf8641ae..09d383bc8 100644
--- a/qthelper.cpp
+++ b/qthelper.cpp
@@ -369,11 +369,11 @@ extern "C" char *get_file_name(const char *fileName)
return strdup(fileInfo.fileName().toUtf8());
}
-extern "C" void copy_image_and_overwrite(const char *cfileName, const char *cnewName)
+extern "C" void copy_image_and_overwrite(const char *cfileName, const char *path, const char *cnewName)
{
- QString fileName = QString::fromUtf8(cfileName);
- QString newName = QString::fromUtf8(cnewName);
- newName += QFileInfo(cfileName).fileName();
+ QString fileName(cfileName);
+ QString newName(path);
+ newName += cnewName;
QFile file(newName);
if (file.exists())
file.remove();
diff --git a/qthelperfromc.h b/qthelperfromc.h
index 9a5e9551a..e48e3b1c4 100644
--- a/qthelperfromc.h
+++ b/qthelperfromc.h
@@ -7,7 +7,7 @@ void updateWindowTitle();
bool isCloudUrl(const char *filename);
void subsurface_mkdir(const char *dir);
char *get_file_name(const char *fileName);
-void copy_image_and_overwrite(const char *cfileName, const char *cnewName);
+void copy_image_and_overwrite(const char *cfileName, const char *path, const char *cnewName);
char *hashstring(char *filename);
bool picture_exists(struct picture *picture);
const char *local_file_path(struct picture *picture);
diff --git a/save-html.c b/save-html.c
index c50968e81..64ce94f66 100644
--- a/save-html.c
+++ b/save-html.c
@@ -23,10 +23,10 @@ void save_photos(struct membuffer *b, const char *photos_dir, struct dive *dive)
do {
put_string(b, separator);
separator = ", ";
- char *fname = get_file_name(pic->filename);
+ char *fname = get_file_name(local_file_path(pic));
put_format(b, "{\"filename\":\"%s\"}", fname);
+ copy_image_and_overwrite(local_file_path(pic), photos_dir, fname);
free(fname);
- copy_image_and_overwrite(pic->filename, photos_dir);
pic = pic->next;
} while (pic);
put_string(b, "],");