Ë
    Î£j[=  ã                   ó  — d dl Z d dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ d dlmZ d dlm Z m!Z! d d	l"m#Z#m$Z$m%Z%  ejL                  «       Z' G d
„ de«      Z( G d„ de«      Z)y)é    N)Úplatform)ÚQtÚ
pyqtSignal)ÚQColor)ÚQColorDialogÚ	QComboBoxÚQDialogÚQFormLayoutÚQFrameÚQHBoxLayoutÚQLabelÚQLayoutÚ	QLineEditÚQMessageBoxÚQPushButtonÚQScrollAreaÚ	QTextEditÚQVBoxLayoutÚQWidget)ÚVPKFile)Úconfig)ÚMOD_EXPORT_VPK_SPLIT_SIZEÚMOD_TYPE_COLORS)ÚCOMBOBOX_POPUP_STYLEÚFG_LIGHTESTÚFG_MUTEDc                   óL   ‡ — e Zd Z e«       Zdˆ fd„	Zd„ Zd„ Zd„ Zd„ Z	d„ Z
ˆ xZS )ÚModJsonEditorc                 ó,  •— t         ‰| �  |«       d | _        d | _        d | _        d | _        d | _        d | _        d | _        || _	        || _
        | j                  d|› �«       | j                  d«       | j                  «        | j                  «        y )NzEdit r   )ÚsuperÚ__init__Úgamebanana_editÚdescription_editÚversion_editÚ
type_comboÚ	name_editÚ
color_editÚcolor_previewÚ
addon_nameÚ
addon_infoÚsetWindowTitleÚsetObjectNameÚsetup_uiÚ	load_data)Úselfr)   r*   ÚparentÚ	__class__s       €úDC:\Users\pivot\Documents\cueki\casual-preloader\gui\addon_details.pyr!   zModJsonEditor.__init__&   s‰   ø€ Ü‰Ñ˜Ô Ø#ˆÔØ $ˆÔØ ˆÔØˆŒØˆŒØˆŒØ!ˆÔØ$ˆŒØ$ˆŒØ×Ñ˜e J <Ð0Ô1Ø×Ñ˜?Ô+Ø�‰ŒØ�‰Õó    c                 óL	  ‡ — t        ‰ «      }|j                  t        j                  j                  «       t        «       }|j                  t        j                  j                  t        j                  j                  z  «       |j                  t        j                  j                  «       |j                  t
        j                  j                  «       t        «       ‰ _        ‰ j                   j#                  d«       |j%                  d‰ j                   «       t'        «       ‰ _        ‰ j(                  j+                  g d¢«       ‰ j(                  j-                  «       j/                  «       j1                  t2        «       |j%                  d‰ j(                  «       t5        «       }|j7                  dddd«       t        «       ‰ _        ‰ j8                  j;                  d«       ‰ j8                  j<                  j?                  ‰ j@                  «       |jC                  ‰ j8                  d«       tE        «       ‰ _#        ‰ jF                  jI                  dd«       ‰ jF                  jJ                  j?                  ‰ jL                  «       |jC                  ‰ jF                  «       tE        d	«      }|jJ                  j?                  ˆ fd
„«       |jC                  |«       tO        «       }|jQ                  |«       |j%                  d|«       t        «       ‰ _)        |j%                  d‰ jR                  «       tU        «       ‰ _+        ‰ jV                  jY                  d«       |j%                  d‰ jV                  «       t        «       ‰ _-        ‰ jZ                  j;                  d«       |j%                  d‰ jZ                  «       |j]                  |«       |j_                  «        t5        «       }|j_                  «        tE        d«      }|jJ                  j?                  ‰ j`                  «       |jC                  |«       tE        d«      }|jc                  dd«       |jJ                  j?                  ‰ jd                  «       |jC                  |«       |j]                  |«       y )Ni^  zAddon Name:)ÚSkinÚModelÚTextureÚMiscÚ	AnimationÚExperimentalÚHUDÚSoundzType:r   z#RRGGBBé   é   ÚClearc                  ó:   •— ‰ j                   j                  d«      S )NÚ )r'   ÚsetText©r/   s   €r2   Ú<lambda>z(ModJsonEditor.setup_ui.<locals>.<lambda>Y   s   ø€ °·±×0GÑ0GÈÔ0Kr3   zColor (optional):zVersion:éd   zDescription:zhttps://gamebanana.com/mods/...zGameBanana Link:ÚCancelÚSaveÚprimaryT)3r   ÚsetSizeConstraintr   ÚSizeConstraintÚSetFixedSizer
   ÚsetLabelAlignmentr   ÚAlignmentFlagÚ
AlignRightÚAlignTopÚsetFormAlignmentÚsetRowWrapPolicyÚRowWrapPolicyÚDontWrapRowsr   r&   ÚsetMinimumWidthÚaddRowr   r%   ÚaddItemsÚviewÚwindowÚsetStyleSheetr   r   ÚsetContentsMarginsr'   ÚsetPlaceholderTextÚtextChangedÚconnectÚupdate_color_previewÚ	addWidgetr   r(   ÚsetFixedSizeÚclickedÚ
pick_colorr   Ú	setLayoutr$   r   r#   ÚsetMaximumHeightr"   Ú	addLayoutÚ
addStretchÚrejectÚsetPropertyÚsave_changes)	r/   ÚlayoutÚform_layoutÚ	color_rowÚclear_color_btnÚcolor_widgetÚbutton_layoutÚ
cancel_btnÚsave_btns	   `        r2   r-   zModJsonEditor.setup_ui6   se  ø€ Ü˜TÓ"ˆØ× Ñ ¤×!7Ñ!7×!DÑ!DÔEô "“mˆØ×%Ñ%¤b×&6Ñ&6×&AÑ&AÄB×DTÑDT×D]ÑD]Ñ&]Ô^Ø×$Ñ$¤R×%5Ñ%5×%>Ñ%>Ô?Ø×$Ñ$¤[×%>Ñ%>×%KÑ%KÔLô #›ˆŒØ�‰×&Ñ& sÔ+Ø×Ñ˜=¨$¯.©.Ô9ô $›+ˆŒØ�‰× Ñ Ò!rÔsØ�‰×ÑÓ×%Ñ%Ó'×5Ñ5Ô6JÔKØ×Ñ˜7 D§O¡OÔ4ô  “Mˆ	Ø×$Ñ$ Q¨¨1¨aÔ0Ü#›+ˆŒØ�‰×*Ñ*¨9Ô5Ø�‰×#Ñ#×+Ñ+¨D×,EÑ,EÔFØ×Ñ˜DŸO™O¨QÔ/ä(›]ˆÔØ×Ñ×'Ñ'¨¨BÔ/Ø×Ñ×"Ñ"×*Ñ*¨4¯?©?Ô;Ø×Ñ˜D×.Ñ.Ô/ä% gÓ.ˆØ×Ñ×'Ñ'Ó(KÔLØ×Ñ˜OÔ,ä“yˆØ×Ñ˜yÔ)Ø×ÑÐ.°Ô=ô &›KˆÔØ×Ñ˜: t×'8Ñ'8Ô9ô !*£ˆÔØ×Ñ×.Ñ.¨sÔ3Ø×Ñ˜>¨4×+@Ñ+@ÔAô  )›{ˆÔØ×Ñ×/Ñ/Ð0QÔRØ×ÑÐ-¨t×/CÑ/CÔDà×Ñ˜Ô%Ø×ÑÔô $›ˆØ× Ñ Ô"ä  Ó*ˆ
Ø×Ñ×"Ñ" 4§;¡;Ô/Ø×Ñ 
Ô+ä˜vÓ&ˆØ×Ñ˜Y¨Ô-Ø×Ñ× Ñ  ×!2Ñ!2Ô3Ø×Ñ Ô)à×Ñ˜Õ'r3   c                 ó  — | j                   j                  | j                  j                  dd«      «       | j                  j                  dd«      }| j                  j                  |t        j                  j                  «      }|dk\  r| j                  j                  |«       | j                  j                  | j                  j                  dd«      «       | j                  j                  | j                  j                  dd«      «       | j                  j                  | j                  j                  dd«      «       | j                  j                  d	d«      }| j                  j                  |«       | j                  «        y )
Nr)   rA   ÚtypeÚUnknownr   ÚversionÚdescriptionÚgamebanana_linkÚcolor)r&   rB   r*   Úgetr%   ÚfindTextr   Ú	MatchFlagÚMatchFixedStringÚsetCurrentIndexr$   r#   ÚsetPlainTextr"   r'   r^   )r/   Ú
addon_typeÚindexÚcustom_colors       r2   r.   zModJsonEditor.load_data€   s  € Ø�‰×Ñ˜tŸ™×2Ñ2°<ÀÓDÔEà—_‘_×(Ñ(¨°Ó;ˆ
Ø—‘×(Ñ(¨´R·\±\×5RÑ5RÓSˆØ�AŠ:Ø�O‰O×+Ñ+¨EÔ2à×Ñ×!Ñ! $§/¡/×"5Ñ"5°iÀÓ"DÔEØ×Ñ×*Ñ*¨4¯?©?×+>Ñ+>¸}ÈbÓ+QÔRØ×Ñ×$Ñ$ T§_¡_×%8Ñ%8Ð9JÈBÓ%OÔPð —‘×*Ñ*¨7°BÓ7ˆØ�‰×Ñ Ô-Ø×!Ñ!Õ#r3   c                 óZ  — | j                   j                  «       j                  «       }|rE|j                  d«      r4t	        |«      dv r'| j
                  j                  d|› dt        › d�«       y t        j                  dd«      }| j
                  j                  d|› dt        › d�«       y )NÚ#)é   é   zbackground-color: z; border: 1px solid Ú;Úunknownú#FF0000)
r'   ÚtextÚstripÚ
startswithÚlenr(   rY   r   r   ry   )r/   rx   Úunknown_colors      r2   r^   z"ModJsonEditor.update_color_preview‘   sœ   € Ø—‘×$Ñ$Ó&×,Ñ,Ó.ˆÙ�U×%Ñ% cÔ*¬s°5«z¸VÑ/CØ×Ñ×,Ñ,Ð/AÀ%ÀÐH\Ô]hÐ\iÐijÐ-kÕlô ,×/Ñ/°	¸9ÓEˆMØ×Ñ×,Ñ,Ð/AÀ-ÀÐPdÔepÐdqÐqrÐ-sÕtr3   c                 ót  — | j                   j                  «       j                  «       }t        j                  dd«      }|r|j                  d«      rt        |«      n
t        |«      }t        j                  || d«      }|j                  «       r*| j                   j                  |j                  «       «       y y )Nr‡   rˆ   rƒ   zSelect Color)r'   r‰   rŠ   r   ry   r‹   r   r   ÚgetColorÚisValidrB   Úname)r/   Úcurrentr�   Úinitialrx   s        r2   rb   zModJsonEditor.pick_colorš   s‰   € Ø—/‘/×&Ñ&Ó(×.Ñ.Ó0ˆÜ'×+Ñ+¨I°yÓAˆÙ%,°×1CÑ1CÀCÔ1H”&˜”/ÌfÐUbÓNcˆÜ×%Ñ% g¨t°^ÓDˆØ�=‰=Œ?Ø�O‰O×#Ñ# E§J¡J£LÕ1ð r3   c                 ó´  — | j                   j                  d| j                  «      }t        j                  |z  dz  }| j
                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       | j                  j                  «       dœ}| j                  j                  «       j                  «       }|r|j                  d«      r||d<   d| j                   v r| j                   d   |d<   	 |j                   j#                  dd¬«       t%        |d	«      5 }t'        j(                  ||d
¬«       d d d «       | j*                  j-                  «        | j/                  «        y # 1 sw Y   Œ4xY w# t0        $ r/ t2        j5                  d«       t7        j8                  | dd«       Y y w xY w)NÚ	file_pathúmod.json)r)   rs   ru   rv   rw   rƒ   rx   ÚcontentsT©ÚparentsÚexist_okÚwé   )ÚindentzFailed to save mod.jsonÚError)r*   ry   r)   r   Ú
addons_dirr&   r‰   r%   ÚcurrentTextr$   r#   ÚtoPlainTextr"   r'   rŠ   r‹   r0   ÚmkdirÚopenÚjsonÚdumpÚaddon_updatedÚemitÚacceptÚ	ExceptionÚlogÚ	exceptionr   Úcritical)r/   Úfolder_nameÚmod_json_pathÚupdated_datar�   Úfs         r2   ri   zModJsonEditor.save_changes¢   s~  € Ø—o‘o×)Ñ)¨+°t·±ÓGˆÜ×)Ñ)¨KÑ7¸*ÑDˆð Ÿ.™.×-Ñ-Ó/Ø—O‘O×/Ñ/Ó1Ø×(Ñ(×-Ñ-Ó/Ø×0Ñ0×<Ñ<Ó>Ø#×3Ñ3×8Ñ8Ó:ñ
ˆð —‘×+Ñ+Ó-×3Ñ3Ó5ˆÙ˜L×3Ñ3°CÔ8Ø$0ˆL˜Ñ!ð ˜Ÿ™Ñ(Ø'+§¡°zÑ'BˆL˜Ñ$ð	KØ× Ñ ×&Ñ&¨t¸dÐ&ÔCÜ�m SÔ)¨QÜ—	‘	˜,¨°!Õ4÷ *à×Ñ×#Ñ#Ô%Ø�K‰K�M÷ *Ð)ûô ò 	KÜ�M‰MÐ3Ô4Ü× Ñ   wÐ0IÖJð	Kús*   Ä)F ÅFÅ 2F ÆFÆF Æ5GÇG©N)Ú__name__Ú
__module__Ú__qualname__r   r¦   r!   r-   r.   r^   rb   ri   Ú__classcell__©r1   s   @r2   r   r   #   s,   ø„ Ù“L€Mõò H(òT$ò"uò2öKr3   r   c                   ó„   ‡ — e Zd Z e«       Z ee«      Zdˆ fd„	Zd„ Zdde	de	dz  fd„Z
de	defd	„Zd
„ Zd„ Zd„ Zd„ Zˆ xZS )ÚAddonDescriptionNc                 óÞ   •— t         ‰| �  |«       d | _        d | _        d | _        d | _        d | _        d | _        d | _        d | _	        d | _
        d | _        d | _        | j                  «        y r±   )r    r!   Úgamebanana_labelÚcontent_layoutÚ
name_labelÚ
type_labelÚseparator_lineÚversion_labelÚdescription_labelÚfeatures_labelÚfeatures_listÚcurrent_addon_nameÚcurrent_addon_infor-   )r/   r0   r1   s     €r2   r!   zAddonDescription.__init__Ç   so   ø€ Ü‰Ñ˜Ô Ø $ˆÔØ"ˆÔØˆŒØˆŒØ"ˆÔØ!ˆÔØ!%ˆÔØ"ˆÔØ!ˆÔØ"&ˆÔØ"&ˆÔØ�‰�r3   c                 ó®  — t        | «      }|j                  dddd«       t        «       | _        | j                  j	                  d«       | j                  j                  t        j                  j                  «       t        «       }t        |«      | _
        t        «       | _        | j                  j                  d«       | j                  j                  | j                  «       t        «       | _        | j                  j                  d«       | j                  j                  | j                  «       t!        «       | _        | j"                  j%                  t         j&                  j(                  «       | j"                  j+                  t         j,                  j.                  «       | j                  j                  | j"                  «       t        «       | _        | j0                  j3                  d«       | j                  j                  | j0                  «       t        «       | _        | j4                  j3                  d«       | j                  j                  | j4                  «       t        «       | _        | j6                  j9                  d«       | j6                  j3                  d«       | j                  j                  | j6                  «       t        d«      | _        | j:                  j                  d«       | j                  j                  | j:                  «       t        «       | _        | j<                  j3                  d«       | j                  j                  | j<                  «       | j                  j?                  «        | j                  jA                  |«       |j                  | j                  «       | jC                  «        y )Nr   Tz#font-size: 16px; font-weight: bold;zf
            padding: 2px 8px;
            border-radius: 4px;
            font-weight: bold;
        z	Contains:zfont-weight: bold;)"r   rZ   r   ÚscrollÚsetWidgetResizableÚsetHorizontalScrollBarPolicyr   ÚScrollBarPolicyÚScrollBarAlwaysOffr   r»   r   r¼   rY   r_   r½   r   r¾   ÚsetFrameShapeÚShapeÚHLineÚsetFrameShadowÚShadowÚSunkenr¿   ÚsetWordWraprÀ   rº   ÚsetOpenExternalLinksrÁ   rÂ   rf   Ú	setWidgetÚclear)r/   rj   Úcontents      r2   r-   zAddonDescription.setup_uiÖ   sª  € Ü˜TÓ"ˆØ×!Ñ! ! Q¨¨1Ô-ä!“mˆŒØ�‰×&Ñ& tÔ,Ø�‰×0Ñ0´×1CÑ1C×1VÑ1VÔWä“)ˆÜ)¨'Ó2ˆÔä ›(ˆŒØ�‰×%Ñ%Ð&KÔLØ×Ñ×%Ñ% d§o¡oÔ6ä ›(ˆŒØ�‰×%Ñ%ð 'ô 	ð
 	×Ñ×%Ñ% d§o¡oÔ6ä$›hˆÔØ×Ñ×)Ñ)¬&¯,©,×*<Ñ*<Ô=Ø×Ñ×*Ñ*¬6¯=©=×+?Ñ+?Ô@Ø×Ñ×%Ñ% d×&9Ñ&9Ô:ä#›XˆÔØ×Ñ×&Ñ& tÔ,Ø×Ñ×%Ñ% d×&8Ñ&8Ô9ä!'£ˆÔØ×Ñ×*Ñ*¨4Ô0Ø×Ñ×%Ñ% d×&<Ñ&<Ô=ä &£ˆÔØ×Ñ×2Ñ2°4Ô8Ø×Ñ×)Ñ)¨$Ô/Ø×Ñ×%Ñ% d×&;Ñ&;Ô<ä$ [Ó1ˆÔØ×Ñ×)Ñ)Ð*>Ô?Ø×Ñ×%Ñ% d×&9Ñ&9Ô:ä#›XˆÔØ×Ñ×&Ñ& tÔ,Ø×Ñ×%Ñ% d×&8Ñ&8Ô9à×Ñ×&Ñ&Ô(à�‰×Ñ˜gÔ&Ø×Ñ˜Ÿ™Ô%à�
‰
�r3   r   r�   c                 ó¶   — |r|j                  d«      r|}n$t        j                  |j                  «       d«      }| j                  j                  d|› d�«       y )Nrƒ   z#757575z
            background-color: z�;
            color: white;
            padding: 2px 8px;
            border-radius: 4px;
            font-weight: bold;
        )r‹   r   ry   Úlowerr½   rY   )r/   r   r�   rx   s       r2   Úset_type_stylezAddonDescription.set_type_style  sX   € Ù˜L×3Ñ3°CÔ8Ø ‰Eä#×'Ñ'¨
×(8Ñ(8Ó(:¸IÓFˆEØ�‰×%Ñ%ð +Ø$˜gð &	ð'õ 	r3   r)   r*   c                 ó”  — || _         || _        | j                  j                  |«       | j                  j	                  «        | j
                  j	                  «        | j                  j	                  «        |j                  dd«      }| j
                  j                  |j                  «       «       |j                  d«      }| j                  ||«       |j                  dd«      }|r\| j                  j                  d|z   «       | j                  j                  dt        › d�«       | j                  j	                  «        n| j                  j                  «        | j                  j                  |j                  d	d«      «       |j                  d
d«      }|rK|j                  d«      r:| j                   j                  d|› d�«       | j                   j	                  «        n| j                   j                  «        |j                  dg «      }|rb| j"                  j                  ddj%                  |«      z   «       | j&                  j	                  «        | j"                  j	                  «        n4| j&                  j                  «        | j"                  j                  «        | j(                  j+                  d«       y )Nrs   rt   rx   ru   rA   z	Version: zcolor: r†   rv   rw   zhttps://gamebanana.comz	<a href="z">View on GameBanana</a>r—   u   â€¢ u   
â€¢ T)rÃ   rÄ   r¼   rB   Úshowr½   r¾   ry   ÚupperrØ   r¿   rY   r   ÚhiderÀ   r‹   rº   rÂ   ÚjoinrÁ   Úcontent_changedr§   )r/   r)   r*   r   r�   ru   rw   r—   s           r2   Úupdate_contentzAddonDescription.update_content  s#  € Ø",ˆÔØ",ˆÔØ�‰×Ñ 
Ô+Ø�‰×ÑÔØ�‰×ÑÔØ×Ñ× Ñ Ô"à—^‘^ F¨IÓ6ˆ
Ø�‰×Ñ 
× 0Ñ 0Ó 2Ô3Ø!—~‘~ gÓ.ˆØ×Ñ˜J¨Ô5à—.‘. ¨BÓ/ˆÙØ×Ñ×&Ñ& {°WÑ'<Ô=Ø×Ñ×,Ñ,¨w´x°jÀÐ-BÔCØ×Ñ×#Ñ#Õ%à×Ñ×#Ñ#Ô%à×Ñ×&Ñ& z§~¡~°mÀRÓ'HÔIð %Ÿ.™.Ð):¸BÓ?ˆÙ˜×9Ñ9Ð:RÔSØ×!Ñ!×)Ñ)¨I°oÐ5FÐF^Ð*_Ô`Ø×!Ñ!×&Ñ&Õ(à×!Ñ!×&Ñ&Ô(à—>‘> *¨bÓ1ˆÙØ×Ñ×&Ñ& v°·±¸hÓ0GÑ'GÔHØ×Ñ×$Ñ$Ô&Ø×Ñ×#Ñ#Õ%à×Ñ×$Ñ$Ô&Ø×Ñ×#Ñ#Ô%à×Ñ×!Ñ! $Õ'r3   c                 óø  — d | _         d | _        | j                  j                  «        | j                  j                  «        | j
                  j                  «        | j                  j                  «        | j                  j                  d«       | j                  j                  «        | j                  j                  «        | j                  j                  «        | j                  j                  d«       y )NzSelect an addon to view detailsF)rÃ   rÄ   r¼   rÜ   r½   r¾   r¿   rÀ   rB   rº   rÁ   rÂ   rÞ   r§   rC   s    r2   rÔ   zAddonDescription.clearE  sµ   € Ø"&ˆÔØ"&ˆÔØ�‰×ÑÔØ�‰×ÑÔØ×Ñ× Ñ Ô"Ø×Ñ×ÑÔ!Ø×Ñ×&Ñ&Ð'HÔIØ×Ñ×"Ñ"Ô$Ø×Ñ× Ñ Ô"Ø×Ñ×ÑÔ!Ø×Ñ×!Ñ! %Õ(r3   c                 ó^  — | j                   r¡| j                  r”t        | j                   | j                  | j                  «       «      }|j                  j                  | j                  j                  «       |j                  j                  | j                  «       |j                  «        y y y r±   )
rÃ   rÄ   r   rX   r¦   r]   Úaddon_modifiedr§   Úrefresh_current_addonÚexec)r/   Údialogs     r2   Úopen_editorzAddonDescription.open_editorR  s‚   € Ø×"Ò" t×'>Ò'>Ü" 4×#:Ñ#:¸D×<SÑ<SÐUY×U`ÑU`ÓUbÓcˆFØ× Ñ ×(Ñ(¨×)<Ñ)<×)AÑ)AÔBØ× Ñ ×(Ñ(¨×)CÑ)CÔDØ�K‰K�Mð	 (?Ð"r3   c                 ó  — | j                   r| j                  sy | j                  j                  d| j                   «      }t        j                  |z  }|j                  dd«      }t        | j                  «       «      }|j                  d| j                   › �«       t        |«      }|j                  t        j                  j                  «       t        d«      }|j                  |«       t!        «       }t#        |«      }|j%                  d«       |j                  |«       t        d«      }	|j                  |	«       |j'                  |«       t!        «       }
|
j)                  «        t+        d«      }|j,                  j/                  |j0                  «       |
j                  |«       t+        d	«      }|j3                  d
d«       |j,                  j/                  |j4                  «       |
j                  |«       |j'                  |
«       |j7                  «       t        j8                  j:                  k7  ry |j=                  «       }|sy t        j>                  dz  }|jA                  dd¬«       ||z  }	 |jA                  dd¬«       tC        d„ |jE                  d«      D «       «      }|tF        k\  xr tF        xs d }tI        jJ                  tM        |«      tM        |«      |¬«      stO        jP                  | dd«       y tR        dk(  rtU        jV                  tM        |«      «       y tY        jZ                  dtM        |«      g«       y # t\        $ r/ t^        ja                  d«       tO        jP                  | dd«       Y y w xY w)Nr•   Ú Ú_zExport zVPK filename:i,  z.vpkrF   ÚExportrH   TÚexportsr˜   c              3   ór   K  — | ]/  }|j                  «       sŒ|j                  «       j                  –— Œ1 y ­wr±   )Úis_fileÚstatÚst_size)Ú.0r°   s     r2   Ú	<genexpr>z0AddonDescription.export_addon.<locals>.<genexpr>Š  s'   è ø€ Ð[Ñ7K°!ÈqÏyÉyÍ{˜QŸV™V›X×-Õ-Ñ7Kùs   ‚7˜7Ú*)Ú
split_sizezExport FailedzFailed to create VPK file.Úwin32zxdg-openzError exporting addon)1rÃ   rÄ   ry   r   rŸ   Úreplacer	   rX   r+   r   rI   r   rJ   rK   r   r_   r   r   rT   re   rf   r   ra   r]   rg   rh   r¨   rä   Ú
DialogCodeÚAcceptedr‰   Úmods_dirr¢   ÚsumÚrglobr   r   ÚcreateÚstrr   r¬   r   ÚosÚ	startfileÚ
subprocessÚrunr©   rª   r«   )r/   r­   Ú	addon_dirÚdefault_namerå   rj   ÚlabelÚinput_layoutÚ
name_inputÚsuffix_labelro   rp   Úok_btnÚvpk_nameÚexports_dirÚvpk_pathÚ
total_sizeró   s                     r2   Úexport_addonzAddonDescription.export_addonY  sÏ  € Ø×&Ò&¨d×.EÒ.EØà×-Ñ-×1Ñ1°+¸t×?VÑ?VÓWˆÜ×%Ñ%¨Ñ3ˆ	Ø"×*Ñ*¨3°Ó4ˆô ˜Ÿ™›Ó'ˆØ×Ñ ¨×(?Ñ(?Ð'@ÐAÔBÜ˜VÓ$ˆØ× Ñ ¤×!7Ñ!7×!DÑ!DÔEä�Ó'ˆØ×Ñ˜Ôä"“}ˆÜ˜|Ó,ˆ
Ø×"Ñ" 3Ô'Ø×Ñ˜zÔ*Ü˜f“~ˆØ×Ñ˜|Ô,Ø×Ñ˜Ô&ä#›ˆØ× Ñ Ô"Ü  Ó*ˆ
Ø×Ñ×"Ñ" 6§=¡=Ô1Ø×Ñ 
Ô+Ü˜XÓ&ˆØ×Ñ˜9 dÔ+Ø�‰×Ñ˜vŸ}™}Ô-Ø×Ñ Ô'Ø×Ñ˜Ô'à�;‰;‹=œG×.Ñ.×7Ñ7Ò7Øà—?‘?Ó$ˆÙØä—o‘o¨	Ñ1ˆØ×Ñ $°ÐÔ6Ø Ñ)ˆð	QØ�O‰O D°4ˆOÔ8ÜÑ[°y·±ÀsÔ7KÓ[Ó[ˆJØ#Ô'@Ñ@Ò^ÔE^ÒfÐbfˆJÜ—>‘>¤# i£.´#°h³-ÈJÕWÜ×$Ñ$ T¨?Ð<XÔYØä˜7Ò"Ü—‘œS Ó-Õ.ä—‘ 
¬C°Ó,<Ð=Õ>øäò 	QÜ�M‰MÐ1Ô2Ü× Ñ   Ð8OÖPð	Qús   É:B
M Ì'M Ì- M Í5NÎNc                 ó"  — | j                   rÃ| j                  r¶| j                  j                  d| j                   «      }t        j                  |z  dz  }	 |j
                  j                  dd¬«       t        |d«      5 }t        j                  |«      }||d<   | j                  |j                  d| j                   «      |«       d d d «       y y y # 1 sw Y   y xY w# t        $ r( t        j                  d«       | j                  «        Y y w xY w)Nr•   r–   Tr˜   Úrr)   zError refreshing addon details)rÃ   rÄ   ry   r   rŸ   r0   r¢   r£   r¤   Úloadrß   r©   rª   r«   rÔ   )r/   r­   r®   r°   Úupdated_infos        r2   rã   z&AddonDescription.refresh_current_addon™  sê   € Ø×"Ò" t×'>Ò'>Ø×1Ñ1×5Ñ5°kÀ4×CZÑCZÓ[ˆKÜ"×-Ñ-°Ñ;¸jÑHˆMðØ×$Ñ$×*Ñ*°4À$Ð*ÔGÜ˜-¨Ô-°Ü#'§9¡9¨Q£<�LØ0;�L Ñ-Ø×'Ñ'¨×(8Ñ(8¸Àt×G^ÑG^Ó(_ÐamÔn÷ .Ð-ð (?Ð"÷
 .Ð-ûô ò Ü—‘Ð>Ô?Ø—
‘
–ðús1   Á)C Á?ACÃC ÃCÃC ÃC Ã.DÄDr±   )r²   r³   r´   r   râ   ÚboolrÞ   r!   r-   rü   rØ   Údictrß   rÔ   ræ   r  rã   rµ   r¶   s   @r2   r¸   r¸   Ã   s`   ø„ Ù“\€NÙ  Ó&€Oõò6ñp¨ð ¸CÀ$¹Jó ð((¨ð ((¸$ó ((òT)òò>Qö@r3   r¸   )*r¤   Úloggingrý   rÿ   Úsysr   ÚPyQt6.QtCorer   r   ÚPyQt6.QtGuir   ÚPyQt6.QtWidgetsr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   Úvalve_parsersr   Úcore.configr   Úcore.constantsr   r   Ú	gui.themer   r   r   Ú	getLoggerrª   r   r¸   © r3   r2   Ú<module>r     ss   ðÛ Û Û 	Û Ý ç 'Ý ÷÷ ÷ ÷ ñ õ" "å ß Eß AÑ Aà€g×ÑÓ€ô]K�Gô ]Kô@b�wõ br3   