§
    ¡)ýf'  ã                   ó  — d dl Z d dlmZmZmZ d dlmZmZmZ d dl	m
Z  G d„ de¦  «        Z G d„ de¦  «        Z G d	„ d
e¦  «        Zg e j        j        ¢e j        j        ¢R Z G d„ de¦  «        Z G d„ de¦  «        ZeeeeefZdS )é    N)ÚFileHandlerÚOperatorÚOperatorFileListElement)ÚBoolPropertyÚCollectionPropertyÚStringProperty)Úpgettext_rptc                   ób   — e Zd ZU dZdZdZdhZ ed¬¦  «        ed<   e	d„ ¦   «         Z
d	„ Zd
„ ZdS )ÚEditExternallyz%Edit image in an external applicationzimage.external_editzImage Edit ExternallyÚREGISTERÚ	FILE_PATH)ÚsubtypeÚfilepathc                 óÚ   — dd l }| j        j        j        }|s*|j        d d…         dk    rdg}n<|j        dk    rdg}n-dg}n)|j        dk    r|                     d¦  «         dd	|g}n|g}|S )
Nr   é   ÚwinÚstartÚdarwinÚopenÚgimpú\z-a)ÚsysÚpreferencesÚ	filepathsÚimage_editorÚplatformÚrstrip)Úcontextr   r   s      úX/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/image.pyÚ_editor_guesszEditExternally._editor_guess   sŸ   € àˆ
ˆ
ˆ
àÔ*Ô4ÔAˆð ð 	.ØŒ|˜B˜Q˜BÔ 5Ò(Ð(Ø '˜y��Ø” Ò)Ð)Ø &˜x��à &˜x��àŒ|˜xÒ'Ð'ð ×#Ò# DÑ)Ô)Ð)Ø &¨¨lÐ;��à ,˜~�àÐó    c                 ó  — dd l }dd l}| j        }|s|                      dhd¦  «         dhS |j                             |¦  «        r|j                             |¦  «        s:|                      dht          d¦  «                             |¦  «        ¦  «         dhS |  	                    |¦  «        |gz   }	 | 
                    |¦  «         nB# t          $ r5 dd l}|                     ¦   «          |                      dhd¦  «         dhcY S w xY wdhS )Nr   ÚERRORzImage path not setÚ	CANCELLEDz9Image path {!r} not found, image may be packed or unsavedz�Image editor could not be launched, ensure that the path in User Preferences > File is valid, and Blender has rights to launch itÚFINISHED)ÚosÚ
subprocessr   ÚreportÚpathÚexistsÚisfileÚrpt_Úformatr    ÚPopenÚ	ExceptionÚ	tracebackÚ	print_exc)Úselfr   r&   r'   r   Úcmdr0   s          r   ÚexecutezEditExternally.execute6   sZ  € Øˆ	ˆ	ˆ	ØÐÐÐà”=ˆàð 	!Ø�KŠK˜˜	Ð#7Ñ8Ô8Ð8Ø�=Ð àŒw�~Š~˜hÑ'Ô'ð 	!¨r¬w¯~ª~¸hÑ/GÔ/Gð 	!Ø�KŠKØ�	ÝÐPÑQÔQ×XÒXÐYaÑbÔbñô ð ð  �=Ð à× Ò  Ñ)Ô)¨X¨JÑ6ˆð	!Ø×Ò˜SÑ!Ô!Ð!Ð!øÝð 		!ð 		!ð 		!ØÐÐÐØ×ÒÑ!Ô!Ð!Ø�KŠKØ�	ðdñô ð ð  �=Ð Ð Ð ð		!øøøð ˆ|Ðs   Â4C
 Ã
<D	ÄD	c                 óÖ  — dd l }|j        }	 |j        }n*# t          $ r |                      dhd¦  «         dhcY S w xY w|j        r|                      dhd¦  «         dhS |j        dk    r|                     |j        ¬¦  «        }n|j	        }t          j                             ||j        ¬¦  «        }|j                             |¦  «        | _	        |                      |¦  «         d	hS )
Nr   r#   z"Context incorrect, image not foundr$   z&Image is packed, unpack before editingÚIMAGE_EDITOR)Ú
image_user)Úlibraryr%   )r&   Ú
space_dataÚimageÚAttributeErrorr(   Úpacked_fileÚtypeÚfilepath_from_userr7   r   Úbpyr)   Úabspathr8   Únormpathr4   )r2   r   Ú_eventr&   Úsdr:   r   s          r   ÚinvokezEditExternally.invokeX   s  € Øˆ	ˆ	ˆ	ØÔˆð	!Ø”HˆEˆEøÝð 	!ð 	!ð 	!Ø�KŠK˜˜	Ð#GÑHÔHÐHØ�=Ð Ð Ð ð	!øøøð Ôð 	!Ø�KŠK˜˜	Ð#KÑLÔLÐLØ�=Ð àŒ7�nÒ$Ð$Ø×/Ò/¸2¼=Ð/ÑIÔIˆHˆHà”~ˆHå”8×#Ò# H°e´mÐ#ÑDÔDˆàœ×(Ò(¨Ñ2Ô2ˆŒØ�Š�WÑÔÐàˆ|Ðs   � •$<»<N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	bl_idnameÚbl_labelÚ
bl_optionsr   Ú__annotations__Ústaticmethodr    r4   rD   © r!   r   r   r      s�   € € € € € € Ø/Ð/Ø%€IØ&€HØ�€JàˆnØðñ ô ð ð ñ ð ðð ñ „\ðð0 ð  ð  ðDð ð ð ð r!   r   c                   ó,   — e Zd ZdZdZdZdhZdgZd„ ZdS )ÚProjectEditz>Edit a snapshot of the 3D Viewport in an external image editorzimage.project_editzProject Editr   Ú c                 óæ  — dd l }d}t          j        j        D ]	}d|_        Œ
	 t          j        j                             ¦   «          n># t          $ r1}|  	                    dht          |¦  «        ¦  «         dhcY d }~S d }~ww xY wd }t          j        j        D ]}|j        s|} nŒ|s|  	                    dhd¦  «         dhS |j                             t          j        j        ¦  «        }|j                             |¦  «        d         }t          j        j        rd|z   }n*|j                             t          j        j        d¦  «        }|j        }|r*|d	t          j                             |j        ¦  «        z   z  }|d
z   |z   }	d}
|j                             t          j                             |	¦  «        ¦  «        rU|d                     |
|¦  «        z   }	|
dz  }
|j                             t          j                             |	¦  «        ¦  «        °Ut          j                             |	¦  «        |_        |j        t2          j        d<   |	|_        d|_        |                     ¦   «          t          j                             |	¦  «        }		 t          j        j                             |	¬¦  «         n;# t          $ r.}|  	                    dht          |¦  «        ¦  «         Y d }~nd }~ww xY wdhS )Nr   ÚpngTr#   r$   zCould not make new imagez//Úproject_editÚ_ú.z{:03d}.{:s}é   ÚPNG)r   r%   ) r&   r?   ÚdataÚimagesÚtagÚopsÚpaintÚimage_from_viewÚRuntimeErrorr(   Ústrr)   Úbasenamer   ÚsplitextÚis_savedÚjoinÚappÚtempdirÚobjectÚ
clean_nameÚnamer*   r@   r-   rP   Ú
_proj_hackÚfilepath_rawÚfile_formatÚsaver:   Úexternal_edit)r2   r   r&   ÚEXTr:   ÚexÚ	image_newr   ÚobjÚfilepath_finalÚis              r   r4   zProjectEdit.executez   sè  € Øˆ	ˆ	ˆ	àˆå”X”_ð 	ð 	ˆEØˆEŒIˆIð	!ÝŒGŒM×)Ò)Ñ+Ô+Ð+Ð+øÝð 	!ð 	!ð 	!Ø�KŠK˜˜	¥3 r¡7¤7Ñ+Ô+Ð+Ø�=Ð Ð Ð Ð Ð Ð øøøøð	!øøøð ˆ	Ý”X”_ð 	ð 	ˆEØ”9ð Ø!�	Ø�ðð ð 	!Ø�KŠK˜˜	Ð#=Ñ>Ô>Ð>Ø�=Ð à”7×#Ò#¥C¤HÔ$5Ñ6Ô6ˆØ”7×#Ò# HÑ-Ô-¨aÔ0ˆõ Œ8Ôð 	EØ˜h‘ˆHˆHà”w—|’|¥C¤G¤O°^ÑDÔDˆHàŒnˆàð 	<Ø˜�cœh×1Ò1°#´(Ñ;Ô;Ñ;Ñ;ˆHà! C™¨#Ñ-ˆØˆàŒg�nŠn�SœX×-Ò-¨nÑ=Ô=Ñ>Ô>ð 	Ø%¨×(<Ò(<¸QÀÑ(DÔ(DÑDˆNØ�‰FˆAð Œg�nŠn�SœX×-Ò-¨nÑ=Ô=Ñ>Ô>ð 	õ œ×*Ò*¨>Ñ:Ô:ˆ	ŒØ$-¤N�Ô˜qÑ!à!/ˆ	ÔØ %ˆ	ÔØ�ŠÑÔÐåœ×)Ò)¨.Ñ9Ô9ˆð	,ÝŒGŒM×'Ò'°Ð'Ñ@Ô@Ð@Ð@øÝð 	,ð 	,ð 	,Ø�KŠK˜˜	¥3 r¡7¤7Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+øøøøð	,øøøð ˆ|Ðs5   £#A Á
BÁ&A=Á7BÁ=BÊ%J5 Ê5
K-Ê?$K(Ë(K-N)	rE   rF   rG   rH   rI   rJ   rK   rj   r4   rN   r!   r   rP   rP   r   sA   € € € € € ØHÐHØ$€IØ€HØ�€Jà�€Jð=ð =ð =ð =ð =r!   rP   c                   ó&   — e Zd ZdZdZdZdhZd„ ZdS )ÚProjectApplyz)Project edited image back onto the objectzimage.project_applyzProject Applyr   c                 ób  — t           j        d         }t          j        j                             |d f¦  «        }|€:|                      dht          d¦  «                             |¦  «        ¦  «         dhS | 	                    ¦   «          t          j
        j                             |¬¦  «         dhS )Nr   r#   zCould not find image '{:s}'r$   )r:   r%   )rP   rj   r?   rY   rZ   Úgetr(   r,   r-   Úreloadr\   r]   Úproject_image)r2   Ú_contextÚ
image_namer:   s       r   r4   zProjectApply.executeÀ   s•   € Ý Ô+¨AÔ.ˆ
Ý””×#Ò# Z°Ð$6Ñ7Ô7ˆØˆ=Ø�KŠK˜˜	¥4Ð(EÑ#FÔ#F×#MÒ#MÈjÑ#YÔ#YÑZÔZÐZØ�=Ð à�Š‰ŒˆÝŒŒ×#Ò#¨*Ð#Ñ5Ô5Ð5àˆ|Ðr!   N)rE   rF   rG   rH   rI   rJ   rK   r4   rN   r!   r   rv   rv   º   s:   € € € € € Ø3Ð3Ø%€IØ€HØ�€Jð
ð 
ð 
ð 
ð 
r!   rv   c                   óä   — e Zd ZU dZdZddhZ edddh¬¦  «        ed	<    ee	ddh¬
¦  «        ed<    e
dd¬¦  «        ed<    e
dd¬¦  «        ed<    e
dd¬¦  «        ed<   ed„ ¦   «         Zd„ ZdS )ÚIMAGE_OT_open_imagesúimage.open_imageszOpen Imagesr   ÚUNDOr   Ú	SKIP_SAVEÚHIDDEN)r   ÚoptionsÚ	directory)r=   rƒ   ÚfileszUse relative pathT)ri   ÚdefaultÚrelative_pathzUse sequence detectionÚuse_sequence_detectionzUse UDIM detectionÚuse_udim_detectionc                 ó0   — |j         o|j         j        dk    S )Nr6   )Úarear=   ©Úclsr   s     r   ÚpollzIMAGE_OT_open_images.pollê   s   € àŒ|ÐC ¤Ô 1°^Ò CÐCr!   c           	      ó|  ‡— | j         rt          | j        ¦  «        dk    rdhS g }g }dd lŠ‰                     dd                     ˆfd„t          D ¦   «         ¦  «        z   dz   ‰j        ¦  «        }‰                     d¦  «        }| j        D �][}|                     |j	        ¦  «        sŒ|                     |j	        ¦  «        }|r| j
        s"| j        s|                     |j	        ¦  «         Œc|j	        d t          |j	        ¦  «        t          |                     d¦  «        ¦  «        z
  …         |                     d¦  «        t          |                     d	¦  «        ¦  «        |j	        gd
œ}|D ]\}	|	d         |d         k    rH|	d         |d         k    r6|	d         |d         k    r$|	d                              |j	        ¦  «         d } nŒ]|r|                     |¦  «         �Œ]dd l}
|D ]M}|
j                             | j         |¦  «        }t           j        j                             || j        ¬¦  «         ŒN|D ]ú}|d                              ¦   «          |
j                             | j         |d         d         ¦  «        }d„ |d         D ¦   «         }t           j        j                             || j         || j
        | j        | j        ¬¦  «         |j        j        dk    }t          |¦  «        d	k    r?| j
        r8|s6d                     |d         d|d         z  |d         ¦  «        |j        _	        ŒûdhS )Nr   r$   ú(ú|c                 ó:   •— g | ]}‰                      |¦  «        ‘ŒS rN   )Úescape)Ú.0ÚextÚres     €r   ú
<listcomp>z0IMAGE_OT_open_images.execute.<locals>.<listcomp>÷   s#   ø€ ÐUÐUÐU¨s˜BŸIšI c™NœNÐUÐUÐUr!   z)$z(\d+)(\.[\w\d]+)$é   rW   )Úprefixr•   Ú
frame_sizer…   r™   r•   rš   r…   )r   r‡   c                 ó   — g | ]}d |i‘ŒS )ri   rN   )r”   Úfiles     r   r—   z0IMAGE_OT_open_images.execute.<locals>.<listcomp>  s   € Ð=Ð=Ð=¨�f˜d�^Ð=Ð=Ð=r!   )r   r„   r…   rˆ   Úuse_udim_detectingr‡   ÚTILEDz{:s}{:s}{:s}ú#r%   )r„   Úlenr…   r–   Úcompilerd   Úbl_file_extensions_image_movieÚ
IGNORECASEÚsearchri   rˆ   r‰   ÚappendÚgroupr&   r)   r?   r\   r:   r   r‡   ÚsortÚ
edit_imageÚsourcer-   )r2   r   r…   Ú	sequencesÚregex_extensionÚregex_sequencerœ   ÚmatchÚseqÚtest_seqr&   r   Úis_tiledr–   s                @r   r4   zIMAGE_OT_open_images.executeî   sW  ø€ ØŒ~ð 	!¥ T¤Z¡¤°AÒ!5Ð!5Ø�=Ð àˆàˆ	Øˆ	ˆ	ˆ	ØŸ*š*Ø�#—(’(ÐUÐUÐUÐUÕ6TÐUÑUÔUÑVÔVÑVÐY]Ñ]ØŒMñ
ô 
ˆð ŸšÐ$;Ñ<Ô<ˆØ”Jð 	&ñ 	&ˆDà"×)Ò)¨$¬)Ñ4Ô4ð ØØ"×)Ò)¨$¬)Ñ4Ô4ˆEØð ˜tÔ:ð ¸dÔ>Uð Ø—’˜TœYÑ'Ô'Ð'Øàœ)Ð$I¥S¨¬¡^¤^µc¸%¿+º+Àa¹.¼.Ñ6IÔ6IÑ%IÐ$IÔJØ—{’{ 1‘~”~Ý! %§+¢+¨a¡.¤.Ñ1Ô1Øœ)˜ð	ð ˆCð &ð ð �à˜hÔ'¨3¨x¬=Ò8Ð8Ø˜e”_¨¨E¬
Ò2Ð2Ø˜lÔ+¨s°<Ô/@Ò@Ð@à˜WÔ%×,Ò,¨T¬YÑ7Ô7Ð7Ø�CØ�EøØð &Ø× Ò  Ñ%Ô%Ð%ùàˆ	ˆ	ˆ	Øð 	Tð 	TˆDØ”w—|’| D¤N°DÑ9Ô9ˆHÝŒGŒM×Ò¨ÀÔ@RÐÑSÔSÐSÐSØð 	vð 	vˆCØ�ŒL×ÒÑÔÐØ”w—|’| D¤N°C¸´LÀ´OÑDÔDˆHØ=Ð=°°G´Ð=Ñ=Ô=ˆEÝŒGŒM×ÒØ!Øœ.ØØ'+Ô'BØ#'Ô#:Ø"Ô0ð ñ ô ð ð Ô)Ô0°GÒ;ˆHÝ�5‰zŒz˜AŠ~ˆ~ $Ô"=ˆ~Àhˆ~Ø*8×*?Ò*?ÀÀHÄÐPSÐVYÐZfÔVgÑPgÐjmÐnsÔjtÑ*uÔ*u�Ô"Ô'øàˆ|Ðr!   N)rE   rF   rG   rI   rJ   rK   r   rL   r   r   r   ÚclassmethodrŽ   r4   rN   r!   r   r~   r~   Ð   s7  € € € € € € Ø#€IØ€HØ˜fÐ%€Jàˆ~ØØ˜hÐ'ðñ ô ð ð ñ ð ÐØ$Ø˜hÐ'ðñ ô ð ð ñ ð  �<Ø Øðñ ô ð ð ñ ð )˜LØ%Øðñ ô ð ð ñ ð %˜Ø!Øðñ ô ð ð ñ ð
 ðDð Dñ „[ðDð;ð ;ð ;ð ;ð ;r!   r~   c                   óZ   — e Zd Zd ZdZdZd                     e¦  «        Ze	d„ ¦   «         Z
dS )ÚIMAGE_FH_drop_handlerzOpen imagesr   ú;c                 óf   — |j         d uo(|j         j        dk    o|j        d uo|j        j        dk    S )Nr6   ÚWINDOW)r‹   r=   ÚregionrŒ   s     r   Ú	poll_dropzIMAGE_FH_drop_handler.poll_drop2  sH   € ð Œ\ Ð%ð .ØŒ\Ô .Ò0ð.àŒ^ 4Ð'ð.ð Œ^Ô  HÒ,ð		
r!   N)rE   rF   rG   rI   rJ   Úbl_import_operatorrd   r¢   Úbl_file_extensionsr±   r¸   rN   r!   r   r³   r³   ,  sP   € € € € € Ø'€IØ€HØ,ÐØŸšÐ"@ÑAÔAÐàð
ð 
ñ „[ð
ð 
ð 
r!   r³   )r?   Ú	bpy.typesr   r   r   Ú	bpy.propsr   r   r   Úbpy.app.translationsr	   r,   r   rP   rv   r)   Úextensions_imageÚextensions_movier¢   r~   r³   ÚclassesrN   r!   r   ú<module>rÁ      s±  ðð
 €
€
€
ðð ð ð ð ð ð ð ð ð ð
ð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5ð\ð \ð \ð \ð \�Xñ \ô \ð \ð~Eð Eð Eð Eð E�(ñ Eô Eð EðPð ð ð ð �8ñ ô ð ð& "Z 3¤8Ô#<Ð!Y¸s¼xÔ?XÐ!YÐ!YÐ ðYð Yð Yð Yð Y˜8ñ Yô Yð Yðx
ð 
ð 
ð 
ð 
˜Kñ 
ô 
ð 
ð" ØØØØð€€€r!   