Ë
    Î£jP  ã                   óÒ   — d dl Z d dlmZ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 d dlmZ d dlmZ d dlmZ  e j.                  «       Z G d„ d	e«      Z G d
„ de	«      Zdd„Zy)é    N)ÚQtÚQThreadÚ
pyqtSignal)ÚQFont)	Ú	QCheckBoxÚQDialogÚQHBoxLayoutÚQLabelÚQMessageBoxÚQProgressBarÚQPushButtonÚ	QTextEditÚQVBoxLayout)Úperform_updates)Úsettings)ÚSUCCESSc                   óF   ‡ — e Zd Z ee«      Z eee«      Zˆ fd„Zd„ Z	ˆ xZ
S )ÚUpdateWorkerc                 ó0   •— t         ‰| �  «        || _        y ©N)ÚsuperÚ__init__Úupdates)Úselfr   Ú	__class__s     €úDC:\Users\pivot\Documents\cueki\casual-preloader\gui\update_dialog.pyr   zUpdateWorker.__init__   s   ø€ Ü‰ÑÔØˆ�ó    c                 ó  — 	 | j                   j                  d«       t        | j                  «       | j                  j                  dd«       y # t
        $ r4 t        j                  d«       | j                  j                  dd«       Y y w xY w)NzStarting updateTz>Update completed successfully! Please restart the application.zUpdate failedFzUpdate failed!)Úprogress_updatedÚemitr   r   Úupdate_completedÚ	ExceptionÚlogÚ	exception©r   s    r   ÚrunzUpdateWorker.run    sx   € ð	oØ×!Ñ!×&Ñ&Ð'8Ô9Ü˜DŸL™LÔ)ð
 ×!Ñ!×&Ñ& tÐ-mÕnøô	 ò 	@Ü�M‰M˜/Ô*Ø×!Ñ!×&Ñ& uÐ.>Ö?ð	@ús   ‚0A Á:BÂB)Ú__name__Ú
__module__Ú__qualname__r   Ústrr   Úboolr!   r   r&   Ú__classcell__©r   s   @r   r   r      s%   ø„ Ù! #“ÐÙ! $¨Ó,Ðôöor   r   c                   óP   ‡ — e Zd Zd
ˆ fd„	Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zˆ xZS )ÚUpdateDialogc                 ó2  •— t         ‰| �  |«       d | _        d | _        d | _        d | _        d | _        d | _        || _        d | _	        t        | _
        | j                  d«       | j                  dd«       | j                  d«       | j                  «        y )NzUpdate Availableiô  i�  T)r   r   Úupdate_buttonÚlater_buttonÚskip_buttonÚsuppress_checkboxÚprogress_labelÚprogress_barr   Úupdate_workerr   ÚsetWindowTitleÚsetMinimumSizeÚsetModalÚsetup_ui)r   r   Úparentr   s      €r   r   zUpdateDialog.__init__,   sŠ   ø€ Ü‰Ñ˜Ô Ø!ˆÔØ ˆÔØˆÔØ!%ˆÔØ"ˆÔØ ˆÔØˆŒØ!ˆÔÜ ˆŒà×ÑÐ.Ô/Ø×Ñ˜C Ô%Ø�‰�dÔà�‰�r   c                 óª  — t        | «      }t        d| j                  d   j                  j                  › �«      }t        «       }|j                  d«       |j                  d«       |j                  |«       |j                  t        j                  j                  «       |j                  |«       t        d«      }|j                  d«       |j                  |«       t        «       }|j!                  | j                  d   j                  j"                  xs d«       |j%                  d«       |j'                  d«       |j                  |«       t)        «       | _        | j*                  j-                  d	«       |j                  | j*                  «       t        d
«      | _        | j.                  j-                  d	«       |j                  | j.                  «       t1        d«      | _        |j                  | j2                  «       t5        «       }t7        d«      | _        | j8                  j:                  j=                  | j>                  «       |j                  | j8                  «       t7        d«      | _         | j@                  j:                  j=                  | jB                  «       |j                  | j@                  «       t7        d«      | _"        | jD                  j:                  j=                  | jF                  «       | jD                  j                  dtH        › d�«       |j                  | jD                  «       |jK                  |«       y )NzUpdate Available: r   é   TzRelease Notes:z$font-weight: bold; margin-top: 10px;zNo release notes availableé–   FÚ zDon't ask about updates againzSkip This VersionzRemind Me Laterz
Update Nowz QPushButton { background-color: z$; color: white; font-weight: bold; })&r   r
   r   ÚreleaseÚtag_namer   ÚsetPointSizeÚsetBoldÚsetFontÚsetAlignmentr   ÚAlignmentFlagÚAlignCenterÚ	addWidgetÚsetStyleSheetr   ÚsetPlainTextÚbodyÚsetMaximumHeightÚsetReadOnlyr   r6   Ú
setVisibler5   r   r4   r	   r   r3   ÚclickedÚconnectÚskip_versionr2   Úremind_laterr1   Ústart_updater   Ú	addLayout)r   ÚlayoutÚtitle_labelÚ
title_fontÚnotes_labelÚ
notes_textÚbutton_layouts          r   r;   zUpdateDialog.setup_ui>   sš  € Ü˜TÓ"ˆô Ð1°$·,±,¸q±/×2IÑ2I×2RÑ2RÐ1SÐTÓUˆÜ“Wˆ
Ø×Ñ Ô#Ø×Ñ˜4Ô Ø×Ñ˜JÔ'Ø× Ñ ¤×!1Ñ!1×!=Ñ!=Ô>Ø×Ñ˜Ô%ô Ð-Ó.ˆØ×!Ñ!Ð"HÔIØ×Ñ˜Ô%ä“[ˆ
à×Ñ §¡¨Q¡× 7Ñ 7× <Ñ <Ò \Ð@\Ô]Ø×#Ñ# CÔ(Ø×Ñ˜tÔ$Ø×Ñ˜Ô$ô )›NˆÔØ×Ñ×$Ñ$ UÔ+Ø×Ñ˜×*Ñ*Ô+ô % R›jˆÔØ×Ñ×&Ñ& uÔ-Ø×Ñ˜×,Ñ,Ô-ô "+Ð+JÓ!KˆÔØ×Ñ˜×/Ñ/Ô0ô $›ˆä&Ð':Ó;ˆÔØ×Ñ× Ñ ×(Ñ(¨×):Ñ):Ô;Ø×Ñ × 0Ñ 0Ô1ä'Ð(9Ó:ˆÔØ×Ñ×!Ñ!×)Ñ)¨$×*;Ñ*;Ô<Ø×Ñ × 1Ñ 1Ô2ä(¨Ó6ˆÔØ×Ñ×"Ñ"×*Ñ*¨4×+<Ñ+<Ô=Ø×Ñ×(Ñ(Ð+LÌWÈIÐUzÐ){Ô|Ø×Ñ × 2Ñ 2Ô3à×Ñ˜Õ'r   c                 óš   — | j                   j                  «       r| j                  «        n| j                  «        | j	                  «        y r   )r4   Ú	isCheckedÚsave_suppress_settingÚsave_skipped_versionÚrejectr%   s    r   rR   zUpdateDialog.skip_versionw   s5   € Ø×!Ñ!×+Ñ+Ô-Ø×&Ñ&Õ(à×%Ñ%Ô'Ø�‰�r   c                 ó$   — | j                  «        y r   )r`   r%   s    r   rS   zUpdateDialog.remind_later~   s   € Ø�‰�r   c                 ó¤  — | j                   j                  d«       | j                  j                  d«       | j                  j                  d«       | j                  j                  d«       | j
                  j                  d«       | j
                  j                  dd«       | j                  j                  d«       t        | j                  «      | _        | j                  j                  j                  | j                  «       | j                  j                  j                  | j                   «       | j                  j#                  «        y )NFTr   )r3   Ú
setEnabledr2   r1   r4   r6   rO   ÚsetRanger5   r   r   r7   r   rQ   Úupdate_progressr!   Úupdate_finishedÚstartr%   s    r   rT   zUpdateDialog.start_update�   sõ   € à×Ñ×#Ñ# EÔ*Ø×Ñ×$Ñ$ UÔ+Ø×Ñ×%Ñ% eÔ,Ø×Ñ×)Ñ)¨%Ô0à×Ñ×$Ñ$ TÔ*Ø×Ñ×"Ñ" 1 aÔ(Ø×Ñ×&Ñ& tÔ,ô *¨$¯,©,Ó7ˆÔØ×Ñ×+Ñ+×3Ñ3°D×4HÑ4HÔIØ×Ñ×+Ñ+×3Ñ3°D×4HÑ4HÔIØ×Ñ× Ñ Õ"r   c                 ó:   — | j                   j                  |«       y r   )r5   ÚsetText)r   Úmessages     r   re   zUpdateDialog.update_progress’   s   € Ø×Ñ×#Ñ# GÕ,r   c                 óÊ  — | j                   j                  d«       | j                  j                  d«       |r(t        j                  | d|«       | j                  «        y t        j                  | d|«       | j                  j                  d«       | j                  j                  d«       | j                  j                  d«       | j                  j                  d«       y )NFzUpdate CompletezUpdate FailedT)r6   rO   r5   r   ÚinformationÚacceptÚcriticalr3   rc   r2   r1   r4   )r   Úsuccessrj   s      r   rf   zUpdateDialog.update_finished•   s«   € Ø×Ñ×$Ñ$ UÔ+Ø×Ñ×&Ñ& uÔ-áÜ×#Ñ# DÐ*;¸WÔEØ�K‰K�Mä× Ñ   ¸Ô@Ø×Ñ×'Ñ'¨Ô-Ø×Ñ×(Ñ(¨Ô.Ø×Ñ×)Ñ)¨$Ô/Ø×"Ñ"×-Ñ-¨dÕ3r   c                 óš   — 	 d| j                   _        t        j                  d«       y # t        $ r t        j                  d«       Y y w xY w)NTz'Suppressing future update notificationszError saving suppress setting)r   Úsuppress_update_notificationsr#   Úinfor"   r$   r%   s    r   r^   z"UpdateDialog.save_suppress_setting£   s<   € ð	;Ø:>ˆD�M‰MÔ7Ü�H‰HÐ>Õ?øÜò 	;Ü�M‰MÐ9Ö:ð	;ús   ‚&) ©A
Á	A
c                 óÒ   — 	 | j                   d   j                  }|| j                  _        t        j                  d|› �«       y # t        $ r t        j                  d«       Y y w xY w)NéÿÿÿÿzSkipped version zError saving skipped version)r   Úversionr   Úskipped_update_versionr#   rr   r"   r$   )r   Úskipped_versions     r   r_   z!UpdateDialog.save_skipped_versionª   sX   € ð	:Ø"Ÿl™l¨2Ñ.×6Ñ6ˆOØ3BˆD�M‰MÔ0Ü�H‰HÐ'¨Ð'8Ð9Õ:øÜò 	:Ü�M‰MÐ8Ö9ð	:ús   ‚AA ÁA&Á%A&r   )r'   r(   r)   r   r;   rR   rS   rT   re   rf   r^   r_   r,   r-   s   @r   r/   r/   +   s1   ø„ õò$7(òròò#ò"-ò4ò;ö:r   r/   c                 ó:   — t        | |«      }|j                  «       S r   )r/   Úexec)r   r<   Údialogs      r   Úshow_update_dialogr{   ³   s   € Ü˜' 6Ó*€FØ�;‰;‹=Ðr   r   )ÚloggingÚPyQt6.QtCorer   r   r   ÚPyQt6.QtGuir   ÚPyQt6.QtWidgetsr   r   r	   r
   r   r   r   r   r   Úcore.auto_updaterr   Úcore.settingsr   Ú	gui.themer   Ú	getLoggerr#   r   r/   r{   © r   r   Ú<module>r…      s]   ðÛ ç 0Ñ 0Ý ÷
÷ 
õ 
õ .Ý "Ý à€g×ÑÓ€ôo�7ô oô&E:�7ô E:ôPr   