
    G@d                         d Z ddlZddlZddlmZmZmZmZ ddl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mZmZmZ dd	lmZ dd
lmZmZ  ej        e          Z  G d de          Z!dS )z#
Status widget for Spyder updates.
    N)QPointQtSignalSlot)QMenuQLabel)_)StatusBarWidget)
is_pynsistrunning_in_mac_app)UpdateInstallerDialog	NO_STATUSDOWNLOADING_INSTALLER
INSTALLINGPENDINGCHECKING)ima)add_actionscreate_actionc                        e Zd ZdZ ed          ZdZ e            Z	  ee	          Z
	 eZ fdZ fdZd Zd Zd Zd	 Zd
 Zd Zd Z e            d             Z xZS )ApplicationUpdateStatusz0Status bar widget for application update status.zApplication update statusapplication_update_statusc                 l   | j         | _        t                                          |d           t	          |           | _        t          |           | _        | j        	                    t          j        t          j        z             | j                            | j                   | j                            | j                   | j        j                            | j                   | j        j                            | j                   | j        j                            | j                   d S )NT)show_spinner)BASE_TOOLTIPtooltipsuper__init__r   	installerr   menucustom_widgetsetAlignmentr   
AlignRightAlignVCentersetFont	text_fontsig_clickedconnect show_installation_dialog_or_menusig_download_progressset_download_progresssig_installation_status	set_valuesig_install_on_close_requested)selfparent	__class__s     Ilib/python3.11/site-packages/spyder/plugins/application/widgets/status.pyr   z ApplicationUpdateStatus.__init__8   s   (d333 /t44 $KK	 	''(GHHH""4>222 	  !FGGG 	,44&	( 	( 	(.66N	 	 	5==/	1 	1 	1 	1 	1    c                 2   |t           k    s|t          k    rt          d          | _        |t           k    rL| j                                         | j                                         | j                                         nK| j                                         | j                                         | j        	                                 | j
                                         n|t          k    rS|| _        | j                                         | j                                         | j                                         ne| j        | _        | j        r| j                                         | j        r2| j                                         | j                                         |                     d           |                                  d| }t                              d|            t#                                          |           dS )z!Return update installation state.zfUpdate installation will continue in the background.
Click here to show the installation dialog again.TzSpyder: zApplication Update Status: N)r   r   r	   r   spinnerhidestopr!   showstartr   r   r   
setVisibleupdate_tooltiploggerdebugr   r-   )r/   valuer1   s     r2   r-   z!ApplicationUpdateStatus.set_valueS   s   )))Uj-@-@ - . .DL ---!!###!!###"''))))"'')))!!###""$$$N!!!!g DL##%%%LL,DL! *"'')))| $!!###!!###"5"":5::;;;%     r3   c                     | j         S )z*Reimplementation to get a dynamic tooltip.)r   r/   s    r2   get_tooltipz#ApplicationUpdateStatus.get_tooltipu   s
    |r3   c                 *    t          j        d          S )Nspyder_about)r   iconr@   s    r2   get_iconz ApplicationUpdateStatus.get_icony   s    x'''r3   c                 :    | j                             |           d S N)r   start_installationr/   latest_releases     r2   rH   z*ApplicationUpdateStatus.start_installation|   s    )).99999r3   c                 z    d}|dk    rt          ||z  dz            }| j                            | d           d S )Nr   d   %)roundr!   setText)r/   current_valuetotalpercentage_progresss       r2   r+   z-ApplicationUpdateStatus.set_download_progress   sP    199"'u)<(C"D"D""&9#<#<#<=====r3   c                 n    |                      t                     | j                            |           d S rG   )r-   r   r   save_latest_releaserI   s     r2   set_status_pendingz*ApplicationUpdateStatus.set_status_pending   s0    w**>:::::r3   c                     |                      t                     | j                                         | j                                         d S rG   )r-   r   r5   r8   r9   r@   s    r2   set_status_checkingz+ApplicationUpdateStatus.set_status_checking   sB    x   r3   c                     |                      t                     | j                                         | j                                         d S rG   )r-   r   r5   r6   r7   r@   s    r2   set_no_statusz%ApplicationUpdateStatus.set_no_status   sB    y!!!r3   c                 |   | j                             d          d                                         }| j        | j        k    sB|t
          k    s7t                      st                      r| j        	                                 d	S |t
          k    r7t                      st                      r| j        
                                 d	S |t          k    r| j                                         t          | t          d          | j        j                  }t%          | j        |g           |                                 }t(          j        dk    rdnd}|                     |                                t1          d|                                 |z
            z             }| j                            |           d	S d	S )
z!Show installation dialog or menu.:zCheck for updates...)text	triggerednt      iN)r>   splitstripr   r   r   r   r   r   r8   continue_installationr   r    clearr   r	   sig_check_for_updates_requestedemitr   contentsRectosnamemapToGlobaltopLeftr   heightpopup)r/   r>   check_for_updates_actionrect	os_heightposs         r2   r)   z8ApplicationUpdateStatus.show_installation_dialog_or_menu   s    
  %%b)//11!222W$$\\ %%7%9%9 %N!!!!!w|| 133 N0022222iIOO'4-..>C( ( ($
 	$<#=>>>$$&&DW__"I""dkkmm^i-G!H!HHJ JCIOOC       r3   )__name__
__module____qualname____doc__r	   r   IDr   rf   strr.   r   CUSTOM_WIDGET_CLASSr   r-   rA   rE   rH   r+   rU   rW   rY   r   r)   __classcell__)r1   s   @r2   r   r   "   s%       ::1011L	$B&,fhh# &,VC[[" !1 1 1 1 16 !  !  !  !  !D  ( ( (: : :> > >; ; ;  
  
 
TVV! ! V! ! ! ! !r3   r   )"rv   loggingri   qtpy.QtCorer   r   r   r   qtpy.QtWidgetsr   r   spyder.api.translationsr	   spyder.api.widgets.statusr
   spyder.config.baser   r   *spyder.plugins.application.widgets.installr   r   r   r   r   r   spyder.utils.icon_managerr   spyder.utils.qthelpersr   r   	getLoggerrs   r<   r    r3   r2   <module>r      sm   
  				 1 0 0 0 0 0 0 0 0 0 0 0 ( ( ( ( ( ( ( ( & % % % % % 5 5 5 5 5 5 = = = = = = = =                * ) ) ) ) ) = = = = = = = = 
	8	$	$H! H! H! H! H!o H! H! H! H! H!r3   