
    BPc                         d Z ddlZddlmZ  G d dej                  Zedk    r e                                             dS dS )z
image_attributes.py - adjust image attributes which don't have global
GUI options yet

Tool for Inkscape 0.91 to adjust rendering of drawings with linked
or embedded bitmap images created with older versions of Inkscape
or third-party applications.
    N)Imagec                   Z    e Zd ZdZd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd ZdS )ImageAttributeszSet attributes in imagesc                 8    | j                                          d S N)optionstab_mainselfs    2/usr/share/inkscape/extensions/image_attributes.pyeffectzImageAttributes.effect$   s        c                 ,   |                     d|                                 | j                   |                     dt          j        d           |                     dt          j        d           |                     ddd	
           |                     ddd
           |                     d|                     d          dd           |                     ddd
           |                     d|                     d          dd           d S )Nz
--tab_main)typedefaultz--fix_scalingTz--fix_renderingFz--aspect_rationonez)Value for attribute 'preserveAspectRatio')r   helpz--aspect_clipunsetzoptional 'meetOrSlice' valuez--aspect_ratio_scopechangeselected_onlyz,When to edit 'preserveAspectRatio' attribute)r   r   r   z--image_renderingz%Value for attribute 'image-rendering'z--image_rendering_scopez(When to edit 'image-rendering' attribute)add_argument
arg_methodmethod_tab_basicinkexBoolean)r   parss     r   add_argumentszImageAttributes.add_arguments'   s]   t00$:O 	 	
 	
 	
 	/tLLL+%-OOO< 	 	
 	
 	

 	W3Q 	 	
 	
 	
 	"**#?	 	 	
 	
 	
 	8 	 	
 	
 	

 	%**#;	 	 	
 	
 	
 	
 	
r   c           	         |                                 D ]8\  }}|dk    rH|dk    r$|                    |t          |                     6|                    |          r|j        |= T|dk    rt          t          j                            |                    d                              }||vrH|dk    r$|                    |t          |                     |                    |          r|j        |= |dk    rt          |          ||<   n||= |                    dt          t          j        |                               8:d S )NpreserveAspectRatior   image-renderingstyle)	itemssetstrgetattribdictr   Style	parse_str)r   node	attributekeyvalue
node_styles         r   change_attributez ImageAttributes.change_attributeG   sP   #//++ 	 	JC+++G##HHS#e**----xx}} - K,)))!%+"7"78I8I"J"JKK
j((''c%jj111188C== 1 $C 0 ''*-e**
3&sOHHWc%+j*A*A&B&BCCCC3	 	r   c                 b    |                     d          D ]}|                     ||           d S )Nzdescendant-or-self::svg:image)xpathr/   )r   r*   r+   imgs       r   change_all_imagesz!ImageAttributes.change_all_imagesc   sA    ::=>> 	2 	2C!!#y1111	2 	2r   c                     |                                 D ]-}t          |t                    r|                     ||           .d S r   )values
isinstancer   r/   r   selectedr+   r*   s       r   change_selected_onlyz$ImageAttributes.change_selected_onlyg   sN    OO%% 	7 	7D$&& 7%%dI666	7 	7r   c                 `    |                                 D ]}|                     ||           d S r   )r5   r3   r7   s       r   change_in_selectionz#ImageAttributes.change_in_selectionl   s>    OO%% 	4 	4D""43333	4 	4r   c                 `    |                      | j                                        |           d S r   )r3   documentgetrootr   r8   r+   s      r   change_in_documentz"ImageAttributes.change_in_documentp   s,    t}4466	BBBBBr   c                     |                                 D ]*}|                     |                                |           +d S r   )r5   r/   	getparentr7   s       r   change_on_parent_groupz&ImageAttributes.change_on_parent_groups   sH    OO%% 	? 	?D!!$.."2"2I>>>>	? 	?r   c                 `    |                      | j                                        |           d S r   )r/   r=   r>   r?   s      r   change_on_root_onlyz#ImageAttributes.change_on_root_onlyw   s,    dm3355yAAAAAr   c                     |                      | j        j        | j        j        rdnd| j        j        rdndd           dS )z8Render all bitmap images like in older Inskcape versionsr   r   optimizeSpeed)r   r    N)r@   svg	selectionr   fix_scalingfix_renderingr
   s    r   r   z ImageAttributes.method_tab_basicz   s\    H #l6CFFG (,|'ANOOw 
	
 
	
 
	
 
	
 
	
r   c                     | j         j        g}| j         j        dk    r|                    | j         j                   | j                             | j        j        dd                    |          i           dS )zImage Aspect Ratior   r    N)r   aspect_ratioaspect_clipappendaspect_ratio_scoperH   rI   join)r   attr_vals     r   method_tab_aspect_ratioz'ImageAttributes.method_tab_aspect_ratio   sv    L-.<#w..OODL4555''H!68J8J K	
 	
 	
 	
 	
r   c                 h    | j                             | j        j        d| j         j        i           dS )zImage Rendering Qualityr    N)r   image_rendering_scoperH   rI   image_renderingr
   s    r   method_tab_image_renderingz*ImageAttributes.method_tab_image_rendering   s;    **H!2DL4P Q	
 	
 	
 	
 	
r   N)__name__
__module____qualname____doc__r   r   r/   r3   r9   r;   r@   rC   rE   r   rT   rX    r   r   r   r   !   s        ""     
 
 
@  82 2 27 7 7
4 4 4C C C? ? ?B B B
 
 

 
 

 
 
 
 
r   r   __main__)r\   r   r   EffectExtensionr   rY   runr]   r   r   <module>ra      s   (        t
 t
 t
 t
 t
e+ t
 t
 t
n zO r   