]> git.decadent.org.uk Git - memories.git/commitdiff
Write keywords back to file. Closes #3.
authorSimon Cozens <simon@simon-cozens.org>
Sat, 24 Feb 2007 22:01:26 +0000 (22:01 +0000)
committerSimon Cozens <simon@simon-cozens.org>
Sat, 24 Feb 2007 22:01:26 +0000 (22:01 +0000)
git-svn-id: http://svn.simon-cozens.org/memories/trunk@39 041978f6-d955-411f-a9d7-1d8545c9c3c7

Memories/Photo.pm

index 1eb08244ea35afc1496cf795f4a66e8520633164..12016efb3cf93d610e7b4ed274b8ea736b55ebae 100644 (file)
@@ -372,22 +372,28 @@ sub edit_tags :Exported {
     my ($self, $r) = @_;
     my $photo = $r->objects->[0];
     my %params = %{$r->params};
+    my $exifTool = new Image::ExifTool;
     for (keys %params) { 
         next unless /delete_(\d+)/;
         my $tagging = Memories::Tagging->retrieve($1) or next;
         next unless $tagging->photo->id == $photo->id;
+        $exifTool->SetNewValue(Keywords => $1, DelValue => 1);
         $tagging->delete;
     }
+    $exifTool->WriteInfo($photo->path);
     $photo->add_tags($params{newtags});
     $r->template("view");
 }
 
 sub add_tags {
     my ($photo, $tagstring) = @_;
+    my $exifTool = new Image::ExifTool;
 
     for my $tag (Tagtools->separate_tags($tagstring)) {
-        $photo->add_to_tags({tag => Memories::Tag->find_or_create({name =>$tag}) })
+        $photo->add_to_tags({tag => Memories::Tag->find_or_create({name =>$tag}) });
+        $exifTool->SetNewValue(Keywords => $tag, AddValue => 1);
     }
+    $exifTool->WriteInfo($photo->path);
 }
 
 # Work out some common properties from a set of potential photo metadata