§
    ø(gz'  ã                   óœ   — d dl Z d dl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eeefZdS )é    N)ÚOperatorÚOperatorFileListElement)ÚBoolPropertyÚCollectionPropertyÚStringProperty)Úpgettext_rptc                   óœ  — e Zd ZU dZdZdZdhZ eeddhdd¬	¦  «        e	d
<    e
ddddhdd¬¦  «        e	d<    edddhdd¬¦  «        e	d<    edddhdd¬¦  «        e	d<    eddd¬¦  «        e	d<    eddd¬¦  «        e	d<    eddd¬¦  «        e	d<    edd d!¬¦  «        e	d"<    ed#d$d%¬¦  «        e	d&<    edd'd(¬¦  «        e	d)<   d*„ Zd+„ Zd,S )-ÚWM_OT_previews_batch_generatez(Generate selected .blend file's previewszwm.previews_batch_generatezBatch-Generate PreviewsÚREGISTERÚHIDDENÚ	SKIP_SAVEÚ z7Collection of file paths with common ``directory`` root)ÚtypeÚoptionsÚnameÚdescriptionÚfilesé   Ú	FILE_PATHz5Root path of all files listed in ``files`` collection)ÚmaxlenÚsubtyper   r   r   Ú	directoryTz&Show Blender files in the File Browser)Údefaultr   r   r   Úfilter_blenderz Show folders in the File BrowserÚfilter_folderÚSceneszGenerate scenes' previews©r   r   r   Ú
use_scenesÚCollectionszGenerate collections' previewsÚuse_collectionsÚObjectszGenerate objects' previewsÚuse_objectsúMaterials & Texturesz@Generate 'internal' previews (materials, textures, images, etc.)Úuse_intern_dataFúTrusted Blend Filesú+Enable Python evaluation for selected filesÚuse_trustedúSave BackupszPKeep a backup (.blend1) version of the files when saving with generated previewsÚuse_backupsc                 ó<   — |j                              | ¦  «         dhS ©NÚRUNNING_MODAL©Úwindow_managerÚfileselect_add©ÚselfÚcontextÚ_events      úW/home/blender/git/blender-v430/install_release/4.3/scripts/startup/bl_operators/file.pyÚinvokez$WM_OT_previews_batch_generate.invoke[   ó"   € ØÔ×-Ò-¨dÑ3Ô3Ð3ØÐ Ð ó    c           
      óŠ  — dd l }dd l}ddlm} |j                             dt          | j        ¦  «        ¦  «         |j                             d¦  «         t          | j        ¦  «        D �]½\  }}|j
                             | j        |j        ¦  «        }t          j        j        ddg}| j        r|                     d¦  «         |                     |d|j
                             |j
                             |j        ¦  «        d¦  «        dg¦  «         | j        s|                     d	¦  «         | j        s|                     d
¦  «         | j        s|                     d¦  «         | j        s|                     d¦  «         | j        s|                     d¦  «         |                     |¦  «        rU|                      dht;          d¦  «                             |¦  «        ¦  «         |j                             ¦   «          dhc S |j                             |dz   ¦  «         �Œ¿|j                             ¦   «          dhS )Nr   ©Úbl_previews_renderú--backgroundú--factory-startupú--enable-autoexecú--pythonúbl_previews_render.pyú--ú--no_scenesú--no_collectionsú--no_objectsú--no_data_internú--no_backupsÚERRORz3Previews generation process failed for file '{:s}'!Ú	CANCELLEDé   ÚFINISHED© ÚosÚ
subprocessÚbl_previews_utilsr:   r.   Úprogress_beginÚlenr   Úprogress_updateÚ	enumerateÚpathÚjoinr   r   ÚbpyÚappÚbinary_pathr'   ÚappendÚextendÚdirnameÚ__file__r   r    r"   r$   r)   ÚcallÚreportÚrpt_ÚformatÚprogress_end©	r1   r2   rK   rL   Úpreview_renderÚiÚfnÚ	blen_pathÚcmds	            r4   Úexecutez%WM_OT_previews_batch_generate.execute_   sI  € Øˆ	ˆ	ˆ	ØÐÐÐØJÐJÐJÐJÐJÐJàÔ×-Ò-¨aµ°T´Z±´ÑAÔAÐAØÔ×.Ò.¨qÑ1Ô1Ð1Ý˜tœzÑ*Ô*ð 	:ñ 	:‰EˆAˆrØœŸš T¤^°R´WÑ=Ô=ˆIå”Ô#ØØ#ðˆCð
 Ôð 0Ø—
’
Ð.Ñ/Ô/Ð/Ø�JŠJØØØ”—’˜RœWŸ_š_¨^Ô-DÑEÔEÐG^Ñ_Ô_Øð	ñ ô ð ð ”?ð *Ø—
’
˜=Ñ)Ô)Ð)ØÔ'ð /Ø—
’
Ð-Ñ.Ô.Ð.ØÔ#ð +Ø—
’
˜>Ñ*Ô*Ð*ØÔ'ð /Ø—
’
Ð-Ñ.Ô.Ð.ØÔ#ð +Ø—
’
˜>Ñ*Ô*Ð*Ø�Š˜sÑ#Ô#ð %Ø—’˜W˜I¥tÐ,aÑ'bÔ'b×'iÒ'iÐjsÑ'tÔ'tÑuÔuÐuØÔ&×3Ò3Ñ5Ô5Ð5Ø#�}Ð$Ð$Ð$ØÔ"×2Ò2°1°q±5Ñ9Ô9Ð9Ñ9ØÔ×+Ò+Ñ-Ô-Ð-àˆ|Ðr7   N©Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	bl_idnameÚbl_labelÚ
bl_optionsr   r   Ú__annotations__r   r   r5   rf   © r7   r4   r
   r
      s;  € € € € € € Ø2Ð2Ø,€IØ(€HØ�€Jð ÐØ$Ø˜;Ð'ØØMð	ñ ô ð ð ñ ð ˆ~ØØØ˜;Ð'ØØKðñ ô ð ð ñ ð !�LØØ˜;Ð'ØØ<ð	ñ ô ð ð ñ ð  �<ØØ˜;Ð'ØØ6ð	ñ ô ð ð ñ ð �ØØØ/ðñ ô ð ð ñ ð
 "�\ØØØ4ðñ ô ð ð ñ ð
 �ØØØ0ðñ ô ð ð ñ ð
 "�\ØØ#ØVðñ ô ð ð ñ ð �ØØ"ØAðñ ô ð ð ñ ð
 �ØØØfðñ ô ð ð ñ ð!ð !ð !ð'ð 'ð 'ð 'ð 'r7   r
   c                   óŒ  — e Zd ZU dZdZdZdhZ eeddh¬¦  «        e	d<    e
d	d
ddh¬¦  «        e	d<    edddh¬¦  «        e	d<    edddh¬¦  «        e	d<    eddd¬¦  «        e	d<    eddd¬¦  «        e	d<    eddd¬¦  «        e	d<    eddd¬¦  «        e	d<    eddd ¬¦  «        e	d!<    edd"d#¬¦  «        e	d$<   d%„ Zd&„ Zd'S )(ÚWM_OT_previews_batch_clearz%Clear selected .blend file's previewszwm.previews_batch_clearzBatch-Clear Previewsr   r   r   )r   r   r   r   r   )r   r   r   r   T)r   r   r   r   r   zClear scenes' previewsr   r   r   zClear collections' previewsr    r!   zClear objects' previewsr"   r#   z=Clear 'internal' previews (materials, textures, images, etc.)r$   Fr%   r&   r'   r(   zNKeep a backup (.blend1) version of the files when saving with cleared previewsr)   c                 ó<   — |j                              | ¦  «         dhS r+   r-   r0   s      r4   r5   z!WM_OT_previews_batch_clear.invokeÈ   r6   r7   c           
      óŒ  — dd l }dd l}ddlm} |j                             dt          | j        ¦  «        ¦  «         |j                             d¦  «         t          | j        ¦  «        D �]¾\  }}|j
                             | j        |j        ¦  «        }t          j        j        ddg}| j        r|                     d¦  «         |                     |d|j
                             |j
                             |j        ¦  «        d¦  «        dd	g¦  «         | j        s|                     d
¦  «         | j        s|                     d¦  «         | j        s|                     d¦  «         | j        s|                     d¦  «         | j        s|                     d¦  «         |                     |¦  «        rU|                      dht;          d¦  «                             |¦  «        ¦  «         |j                             ¦   «          dhc S |j                             |dz   ¦  «         �ŒÀ|j                             ¦   «          dhS )Nr   r9   r;   r<   r=   r>   r?   r@   z--clearrA   rB   rC   rD   rE   rF   z.Previews clear process failed for file '{:s}'!rG   rH   rI   rJ   r`   s	            r4   rf   z"WM_OT_previews_batch_clear.executeÌ   sL  € Øˆ	ˆ	ˆ	ØÐÐÐØJÐJÐJÐJÐJÐJàÔ×-Ò-¨aµ°T´Z±´ÑAÔAÐAØÔ×.Ò.¨qÑ1Ô1Ð1Ý˜tœzÑ*Ô*ð 	:ñ 	:‰EˆAˆrØœŸš T¤^°R´WÑ=Ô=ˆIå”Ô#ØØ#ðˆCð
 Ôð 0Ø—
’
Ð.Ñ/Ô/Ð/Ø�JŠJØØØ”—’˜RœWŸ_š_¨^Ô-DÑEÔEÐG^Ñ_Ô_ØØðñ ô ð ð ”?ð *Ø—
’
˜=Ñ)Ô)Ð)ØÔ'ð /Ø—
’
Ð-Ñ.Ô.Ð.ØÔ#ð +Ø—
’
˜>Ñ*Ô*Ð*ØÔ'ð /Ø—
’
Ð-Ñ.Ô.Ð.ØÔ#ð +Ø—
’
˜>Ñ*Ô*Ð*Ø�Š˜sÑ#Ô#ð %Ø—’˜W˜I¥tÐ,\Ñ']Ô']×'dÒ'dÐenÑ'oÔ'oÑpÔpÐpØÔ&×3Ò3Ñ5Ô5Ð5Ø#�}Ð$Ð$Ð$ØÔ"×2Ò2°1°q±5Ñ9Ô9Ð9Ñ9ØÔ×+Ò+Ñ-Ô-Ð-àˆ|Ðr7   Nrg   rp   r7   r4   rr   rr   ‰   s#  € € € € € € Ø/Ð/Ø)€IØ%€HØ�€Jð ÐØ$Ø˜;Ð'ðñ ô ð ð ñ ð
 ˆ~ØØØ˜;Ð'ðñ ô ð ð ñ ð !�LØØ˜;Ð'ðñ ô ð ð ñ ð  �<ØØ˜;Ð'ðñ ô ð ð ñ ð �ØØØ,ðñ ô ð ð ñ ð
 "�\ØØØ1ðñ ô ð ð ñ ð
 �ØØØ-ðñ ô ð ð ñ ð
 "�\ØØ#ØSðñ ô ð ð ñ ð �ØØ"ØAðñ ô ð ð ñ ð
 �ØØØdðñ ô ð ð ñ ð!ð !ð !ð(ð (ð (ð (ð (r7   rr   c                   ó,   — e Zd ZdZdZdZdhZd„ Zd„ ZdS )Ú!WM_OT_blend_strings_utf8_validatezqCheck and fix all strings in current .blend file to be valid UTF-8 Unicode (needed for some old, 2.4x area files)zwm.blend_strings_utf8_validatezValidate .blend stringsr   c                 óì  — |€dS ||v rdS |                      |¦  «         t          |dd ¦  «        �dS d}|j        j        D �]1}|j        dv rŒ|j        rŒ|j        dk    r›|                     |j        d¦  «                             ¦   «         }| 	                    dd¦  «        }| 
                    d¦  «        }||k    r<t          d                     |||¦  «        ¦  «         t          ||j        |¦  «         d}Œ»|j        d	k    r/t          ||j        ¦  «        }||                      ||¦  «        z  }Œõ|j        d
k    r1t          ||j        ¦  «        D ]}||                      ||¦  «        z  }Œ�Œ3|S )NFÚlibrary>   Úbl_rnaÚrna_typeÚSTRINGzutf-8Úreplacez<found bad utf8 encoded string {!r}, fixing to {!r} ({!r})...TÚPOINTERÚ
COLLECTION)ÚaddÚgetattrry   Ú
propertiesÚ
identifierÚis_readonlyr   Úpath_resolveÚas_bytesÚdecodeÚencodeÚprintr^   ÚsetattrÚvalidate_strings)	r1   ÚitemÚ
done_itemsÚchangedÚpropÚ	val_bytesÚval_utf8Úval_bytes_validÚits	            r4   rŠ   z2WM_OT_blend_strings_utf8_validate.validate_stringsþ   s®  € Øˆ<Ø�5à�:ÐÐØ�5Ø�Š�tÑÔÐå�4˜ DÑ)Ô)Ð5Ø�5àˆØ”KÔ*ð 	Eñ 	EˆDØŒÐ"8Ð8Ð8ØØÔð ØØŒy˜HÒ$Ð$Ø ×-Ò-¨d¬o¸uÑEÔE×NÒNÑPÔP�	Ø$×+Ò+¨G°YÑ?Ô?�Ø"*§/¢/°'Ñ":Ô":�Ø" iÒ/Ð/ÝÐX×_Ò_Ø! ?°Hñô ñ ô ð õ ˜D $¤/°8Ñ<Ô<Ð<Ø"�GøØ”˜iÒ'Ð'Ý˜T 4¤?Ñ3Ô3�Ø˜4×0Ò0°°ZÑ@Ô@Ñ@��Ø”˜lÒ*Ð*Ý! $¨¬Ñ8Ô8ð Eð E�BØ˜t×4Ò4°R¸ÑDÔDÑD�G�GùØˆr7   c                 ó  — d}t          ¦   «         }t          j        j        j        D ]H}|j        dk    r;t          t          j        |j        ¦  «        D ]}||                      ||¦  «        z  }ŒŒI|r|  	                    dhd¦  «         dhS )NFr~   ÚWARNINGzSSome strings were fixed, don't forget to save the .blend file to keep those changesrI   )
ÚsetrT   Údatary   r�   r   r€   r‚   rŠ   r\   )r1   Ú_contextr�   rŒ   rŽ   r’   s         r4   rf   z)WM_OT_blend_strings_utf8_validate.execute!  s¡   € ØˆÝ‘U”Uˆ
Ý”H”OÔ.ð 	Eð 	EˆDØŒy˜LÒ(Ð(Ý!¥#¤(¨D¬OÑ<Ô<ð Eð E�BØ˜t×4Ò4°R¸ÑDÔDÑD�G�GøØð 	Ø�KŠKØ�Øeñô ð ð ˆ|Ðr7   N)	rh   ri   rj   rk   rl   rm   rn   rŠ   rf   rp   r7   r4   rv   rv   ÷   sN   € € € € € ð5ð 5à0€IØ(€HØ�€Jð!ð !ð !ðFð ð ð ð r7   rv   )rT   Ú	bpy.typesr   r   Ú	bpy.propsr   r   r   Úbpy.app.translationsr   r]   r
   rr   rv   Úclassesrp   r7   r4   ú<module>rœ      s%  ðð
 €
€
€
ðð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð
 6Ð 5Ð 5Ð 5Ð 5Ð 5ð
rð rð rð rð r Hñ rô rð rðjkð kð kð kð k ñ kô kð kð\6ð 6ð 6ð 6ð 6¨ñ 6ô 6ð 6ðt Ø!Ø%ð€€€r7   