From 86fbd6e67d730ecab873a56916c8dc9fda01f01c Mon Sep 17 00:00:00 2001 From: Martin Sourada Date: Mar 12 2013 01:11:24 +0000 Subject: [icon-artist] Don't reload xml mapping for each icon. --- diff --git a/sources/icon-artist/lib/icon-artist/icon.rb b/sources/icon-artist/lib/icon-artist/icon.rb index 1af3f65..72a0ea6 100644 --- a/sources/icon-artist/lib/icon-artist/icon.rb +++ b/sources/icon-artist/lib/icon-artist/icon.rb @@ -286,15 +286,10 @@ module IconArtist return sizes end - def initialize_symlinks_icon (iconname) - icon_mapping = "/usr/share/icon-naming-utils/legacy-icon-mapping.xml" + def initialize_symlinks_icon(icon, iconname) symlinks_def = [] symlinks_opt = [] - icon_map = REXML::Document.new(File.new(icon_mapping, 'r')) - - icon = icon_map.root.elements["//context[@dir='#{@context}']/icon[@name='#{iconname}']"] - if icon != nil icon.each_element('link') do |link| symlinks_def = symlinks_def + [link.text] @@ -305,14 +300,20 @@ module IconArtist end def initialize_symlinks + icon_mapping = "/usr/share/icon-naming-utils/legacy-icon-mapping.xml" + icon_map = REXML::Document.new(File.new(icon_mapping, 'r')) + + @symlinks = {} if @multiple_icons @icons.each do |iconname| - initialize_symlinks_icon (iconname) + icon = icon_map.root.elements["//context[@dir='#{@context}']/icon[@name='#{iconname}']"] + initialize_symlinks_icon(icon, iconname) @symlinks_initialized = true end else - initialize_symlinks_icon (@iconname) + icon = icon_map.root.elements["//context[@dir='#{@context}']/icon[@name='#{@iconname}']"] + initialize_symlinks_icon(icon, @iconname) @symlinks_initialized = true end end