
    ai'                        S SK r S SKJrJrJr  S SKJrJrJr  S SK	J
r   " S S\5      r " S S\5      r " S	 S
\5      r/ \ R                  R                   Q\ R                  R"                  Q7r " S S\5      r " S S\5      r\\\\\4rg)    N)FileHandlerOperatorOperatorFileListElement)BoolPropertyCollectionPropertyStringProperty)pgettext_rptc                   V    \ rS rSr% SrSrSrS1r\" SS9\	S'   \
S	 5       rS
 rS rSrg)EditExternally   z%Edit image in an external applicationzimage.external_editzImage Edit ExternallyREGISTER	FILE_PATH)subtypefilepathc                    SS K nU R                  R                  R                  nU(       d3  UR                  S S S:X  a  S/nU$ UR                  S:X  a  S/nU$ S/n U$ UR                  S:X  a  UR                  S5        SS	U/nU$ U/nU$ )
Nr      winstartdarwinopengimp\z-a)syspreferences	filepathsimage_editorplatformrstrip)contextr   r   s      Z/home/wildlama/Downloads/blender-5.1.2-linux-x64/5.1/scripts/startup/bl_operators/image.py_editor_guessEditExternally._editor_guess   s    **44AA ||BQ5( 'y  ) &x  !'x  ||x' ##D) &l;  !-~    c                    SS K nSS KnU R                  nU(       d  U R                  S1S5        S1$ UR                  R                  U5      (       a   UR                  R                  U5      (       d.  U R                  S1[        S5      R                  U5      5        S1$ U R                  U5      U/-   n UR                  U5        S1$ ! [         a-    SS KnUR                  5         U R                  S1S5        S1s $ f = f)Nr   ERRORzImage path not set	CANCELLEDz9Image path {!r} not found, image may be packed or unsavedzImage 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   cmdr2   s          r    executeEditExternally.execute6   s    ==KK	#78= ww~~h''rww~~h/G/GKK	PQXXYab  =   )XJ6	!S! |  		!!KK	d  = 		!s   6C
 
4D Dc                    SS K nUR                  n UR                  nUR
                  (       a  U R	                  S1S5        S1$ UR                  S:X  a  UR                  UR                  S9nOUR                  n[        R                  R                  XeR                  S9nUR                  R                  U5      U l	        U R                  U5        S	1$ ! [         a    U R	                  S1S5        S1s $ f = f)
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_userr:   r   bpyr+   abspathr;   normpathr6   )r4   r   _eventr(   sdr=   r   s          r    invokeEditExternally.invokeX   s    	!HHE
 KK	#KL= 77n$//2==/IH~~H88##Hmm#D((2W|%  	!KK	#GH= 	!s   C  C98C9r   N)__name__
__module____qualname____firstlineno____doc__	bl_idnamebl_label
bl_optionsr   __annotations__staticmethodr!   r6   rG   __static_attributes__ r#   r    r   r      sE    /%I&HJ   0 Dr#   r   c                   2    \ rS rSrSrSrSrS1rS/rS r	Sr
g	)
ProjectEditr   z>Edit a snapshot of the 3D Viewport in an external image editorzimage.project_editzProject Editr    c                    SS K nSn[        R                  R                   H
  nSUl        M      [        R
                  R                  R                  5         S n[        R                  R                   H  nUR                  (       a  M  Un  O   U(       d  U R                  S1S5        S1$ UR                  R                  [        R                  R                  5      nUR                  R                  U5      S   n[        R                  R                  (       a  SU-   nO4UR                  R!                  [        R"                  R$                  S5      nUR&                  nU(       a/  US	[        R                  R)                  UR*                  5      -   -  nUS
-   U-   n	Sn
UR                  R-                  [        R                  R/                  U	5      5      (       aX  USR1                  X5      -   n	U
S-  n
UR                  R-                  [        R                  R/                  U	5      5      (       a  MX  [        R                  R                  U	5      Ul        UR*                  [2        R4                  S'   Xl        SUl        UR;                  5         [        R                  R/                  U	5      n	 [        R
                  R<                  R?                  U	S9  S1$ ! [         a)  nU R                  S1[        U5      5        S1s S nA$ S nAff = f! [         a(  nU R                  S1[        U5      5         S nAS1$ S nAff = f)Nr   pngTr%   r&   zCould not make new imagez//project_edit_.z{:03d}.{:s}   PNGrI   r'   ) r(   rB   dataimagestagopspaintimage_from_viewRuntimeErrorr*   strr+   basenamer   splitextis_savedjoinapptempdirobject
clean_namenamer,   rC   r/   rW   
_proj_hackfilepath_rawfile_formatsaver=   external_edit)r4   r   r(   EXTr=   ex	image_newr   objfilepath_finalis              r    r6   ProjectEdit.executez   st   XX__EEI %	!GGMM))+
 	XX__E999!	 %
 KK	#=>= 77##CHH$5$5677##H-a0 88hHww||CGGOO^DHnnchh11#((;;;H!C#-ggnnSXX--n=>>%(<(<Q(DDNFA ggnnSXX--n=>> **>:	$-NNq!!/ %	)).9	,GGMM'''@ |e  	!KK	3r7+= 	!^  	,KK	3r7++|	,s5   (K  6'L  
L*LLL
M MMrU   N)rJ   rK   rL   rM   rN   rO   rP   rQ   rr   r6   rT   rU   r#   r    rW   rW   r   s"    H$IHJJ=r#   rW   c                   ,    \ rS rSrSrSrSrS1rS rSr	g)	ProjectApply   z)Project edited image back onto the objectzimage.project_applyzProject Applyr   c                 T   [         R                  S   n[        R                  R                  R                  US 45      nUc.  U R                  S1[        S5      R                  U5      5        S1$ UR                  5         [        R                  R                  R                  US9  S1$ )Nr   r%   zCould not find image '{:s}'r&   )r=   r'   )rW   rr   rB   ra   rb   getr*   r.   r/   reloadrd   re   project_image)r4   _context
image_namer=   s       r    r6   ProjectApply.execute   s     ++A.
##Z$67=KK	4(E#F#M#Mj#YZ= ##*#5|r#   rU   N)
rJ   rK   rL   rM   rN   rO   rP   rQ   r6   rT   rU   r#   r    r   r      s    3%IHJ
r#   r   c                       \ rS rSr% SrSrSS1r\" SSS1S	9\S
'   \	" \
SS1S9\S'   \" SSS9\S'   \" SSS9\S'   \" SSS9\S'   \S 5       rS rSrg)IMAGE_OT_open_images   image.open_imageszOpen Imagesr   UNDOr   	SKIP_SAVEHIDDEN)r   options	directory)r@   r   fileszUse relative pathT)rq   defaultrelative_pathzUse sequence detectionuse_sequence_detectionzUse UDIM detectionuse_udim_detectionc                 Z    UR                   =(       a    UR                   R                  S:H  $ )Nr9   )arear@   clsr   s     r    pollIMAGE_OT_open_images.poll   s     ||C 1 1^ CCr#   c                 ^   U R                   (       a  [        U R                  5      S:X  a  S1$ / n/ nSS KnUR	                  SSR                  [         Vs/ s H  oTR                  U5      PM     sn5      -   S-   UR                  5      nUR	                  S5      nU R                   GHi  nUR                  UR                  5      (       d  M&  UR                  UR                  5      n	U	(       a"  U R                  (       d.  U R                  (       d  UR                  UR                  5        M  UR                  S [        UR                  5      [        U	R                  S5      5      -
   U	R                  S5      [        U	R                  S5      5      UR                  /S	.n
U HM  nUS
   U
S
   :X  d  M  US   U
S   :X  d  M  US   U
S   :X  d  M-  US   R                  UR                  5        S n
  O   U
(       d  GMX  UR                  U
5        GMl     SS KnU HZ  nUR                   R                  U R                   U5      n["        R$                  R&                  R)                  XR*                  S9  M\     U GH"  n
U
S   R-                  5         UR                   R                  U R                   U
S   S   5      nU
S    Vs/ s H  nSU0PM	     nn["        R$                  R&                  R)                  UU R                   UU R                  U R                  U R*                  S9  UR.                  R0                  S:H  n[        U5      S:  d  M  U R                  (       d  M  U(       a  M  SR3                  U
S
   SU
S   -  U
S   5      UR.                  l
        GM%     S1$ s  snf s  snf )Nr   r&   (|z)$z(\d+)(\.[\w\d]+)$   r_   )prefixext
frame_sizer   r   r   r   r   )r   r   rq   )r   r   r   r   use_udim_detectingr   TILEDz{:s}{:s}{:s}#r'   )r   lenr   recompilerl   bl_file_extensions_image_movieescape
IGNORECASEsearchrq   r   r   appendgroupr(   r+   rB   rd   r=   r   r   sort
edit_imagesourcer/   )r4   r   r   	sequencesr   r   regex_extensionregex_sequencefilematchseqtest_seqr(   r   is_tileds                  r    r6   IMAGE_OT_open_images.execute   s   ~~TZZA!5= 	**#((6TU6TsIIcN6TUVVY]]MM
 $;<JJD"))$))44"))$))4Et::d>U>UTYY'))$IS^c%++a.6I%IJ{{1~!%++a.1))	C &h'3x=8e_E
2l+s</@@W%,,TYY7C & s  %1 4 	Dww||DNND9HGGMM@R@RS  CLww||DNNCLODH03G=fd^E=GGMM!..'+'B'B#'#:#:"00   ))00G;H5zA~$"="="=hh*8*?*?HPSVYZfVgPgjmnsjt*u""'   |e VJ >s   N%N*rU   N)rJ   rK   rL   rM   rO   rP   rQ   r   rR   r   r   r   classmethodr   r6   rT   rU   r#   r    r   r      s    #IHf%Jh'  $h'      )%  %! 
 D D;r#   r   c                   R    \ rS rSrS rSrSrSR                  \5      r	\
S 5       rSrg)IMAGE_FH_drop_handleri,  zOpen imagesr   ;c                     UR                   S L=(       aN    UR                   R                  S:H  =(       a.    UR                  S L=(       a    UR                  R                  S:H  $ )Nr9   WINDOW)r   r@   regionr   s     r    	poll_dropIMAGE_FH_drop_handler.poll_drop2  sV     \\% .\\.0.^^4'. ^^  H,		
r#   rU   N)rJ   rK   rL   rM   rO   rP   bl_import_operatorrl   r   bl_file_extensionsr   r   rT   rU   r#   r    r   r   ,  s4    'IH,"@A
 
r#   r   )rB   	bpy.typesr   r   r   	bpy.propsr   r   r   bpy.app.translationsr	   r.   r   rW   r   r+   extensions_imageextensions_movier   r   r   classesrU   r#   r    <module>r      s   
  
 
 6\X \~E( EP8 & "Z388#<#<!Ysxx?X?X!Y Y8 Yx
K 
" r#   