From c82d76f2ace4c0781782290c6778750c40b8c8f5 Mon Sep 17 00:00:00 2001 From: Tilman Sauerbeck Date: Wed, 8 Jun 2005 20:05:19 +0000 Subject: [PATCH] Improved imagedir support. --- ChangeLog | 3 ++- lib/redact/part.rb | 39 +++++++++++++++++++++++++++++++++------ lib/redact/redact.rb | 14 ++------------ 3 files changed, 37 insertions(+), 19 deletions(-) diff --git a/ChangeLog b/ChangeLog index bbf3bf2..966f22a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,5 @@ -- -$Id: ChangeLog 46 2005-06-08 18:03:34Z tilman $ +$Id: ChangeLog 47 2005-06-08 20:05:19Z tilman $ ++ 2005-06-08 Tilman Sauerbeck (tilman at code-monkey de) @@ -11,6 +11,7 @@ $Id: ChangeLog 46 2005-06-08 18:03:34Z tilman $ * lib/redact/{redact,app}.rb: Fixed fontdir handling * lib/redact/part.rb: Also set TextDescription::font if a matching FontDirectoryEntry was found + * lib/redact/{redact,app}.rb: Improved imagedir support 2005-05-29 Tilman Sauerbeck (tilman at code-monkey de) * Rakefile: Use FileUtils.mkdir_p to create the destination diff --git a/lib/redact/part.rb b/lib/redact/part.rb index b282d04..313a295 100644 --- a/lib/redact/part.rb +++ b/lib/redact/part.rb @@ -1,5 +1,5 @@ #-- -# $Id: part.rb 46 2005-06-08 18:03:34Z tilman $ +# $Id: part.rb 47 2005-06-08 20:05:19Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -400,14 +400,28 @@ module Redact class Tweens < Array def <<(im) - image = EDJE.image_dir.find { |e| e.filename == im } + im2 = find_image(im.to_str.strip) + raise(RedactError, "cannot find image - #{im}") if im2.nil? + + image = EDJE.image_dir.find { |e| e.filename == im2 } if image.nil? - image = ImageDirectoryEntry.new(im) + image = ImageDirectoryEntry.new(im2) EDJE.image_dir << image end super(Tween.new(image)) end + + private + def find_image(file) + [".", OPTIONS.image_dir].each do |d| + f2 = File.join(d, file) + return Pathname.new(f2).cleanpath.to_s if File.file?(f2) + end + + nil + end + end class ImageDescription < Description @@ -429,11 +443,14 @@ module Redact end def image=(im) - return if !@image.nil? && im == @image.filename + im2 = find_image(im.to_str.strip) + raise(RedactError, "cannot find image - #{im}") if im2.nil? - @image = EDJE.image_dir.find { |e| e.filename == im } + return if !@image.nil? && im2 == @image.filename + + @image = EDJE.image_dir.find { |e| e.filename == im2 } if @image.nil? - @image = ImageDirectoryEntry.new(im) + @image = ImageDirectoryEntry.new(im2) EDJE.image_dir << @image end @@ -476,6 +493,16 @@ module Redact "fill.rel_y" => [1.0, :double], "fill.abs_y" => [0]}) end + + private + def find_image(file) + [".", OPTIONS.image_dir].each do |d| + f2 = File.join(d, file) + return Pathname.new(f2).cleanpath.to_s if File.file?(f2) + end + + nil + end end class TextDescription < Description diff --git a/lib/redact/redact.rb b/lib/redact/redact.rb index 6b505f2..26b7c5f 100644 --- a/lib/redact/redact.rb +++ b/lib/redact/redact.rb @@ -1,5 +1,5 @@ #-- -# $Id: redact.rb 45 2005-06-08 18:02:12Z tilman $ +# $Id: redact.rb 47 2005-06-08 20:05:19Z tilman $ # # Copyright (c) 2005 Tilman Sauerbeck (tilman at code-monkey de) # @@ -179,7 +179,7 @@ module Redact attr_reader :filename, :image, :id def initialize(filename) - @filename = find_image(filename.to_str).freeze + @filename = filename.to_str.dup.freeze @image = Imlib2::Image.load(@filename) @id = -1 @source_type = 1 # COMP @@ -207,16 +207,6 @@ module Redact "source_param" => [@source_param], "id" => [@id]} end - - private - def find_image(file) - [".", OPTIONS.image_dir].each do |d| - f2 = File.join(d, file) - return f2 if File.file?(f2) - end - - nil - end end class CollectionDirectory < Array # :nodoc: -- 2.30.2