
    Je~                         d Z ddl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 ddlmZ ddlmZ dd	lmZ  ej$                  e      Z G d
 de      Zy)z%
Status widget for Kite completions.
    N)Slot)StatusBarWidget)_running_under_pytest)check_if_kite_installedNOT_INSTALLED)KiteInstallationThread)KiteInstallerDialog)imac                        e Zd ZdZ ed      Z ed      ZdZ fdZ fdZ	d Z
d Z e       d	        Zd
 Zd Z e       d        Z xZS )KiteStatusWidgetz.Status bar widget for Kite completions status.zKite completions statusznot reachablekite_statusc                    || _         | j                  | _        t        d       | _        t
        |   |       t               \  }}| j                  |       t        | | j                        | _
        | j                  j                  j                  | j                         | j                  j                  | j                         y )N)providerBASE_TOOLTIPtooltipr	   installation_threadsuper__init__r   
setVisibler
   	installersig_installation_statusconnect	set_valuesig_clickedshow_installation_dialog)selfparentr   is_installedr   	__class__s        Y/usr/lib/python3/dist-packages/spyder/plugins/completion/providers/kite/widgets/status.pyr   zKiteStatusWidget.__init__%   s     ((#9$#?  13a% -$$& 	  88@@NN	  !>!>?    c                    | j                   j                  ddd      }| j                         }| j                         }|d|v r|d   | _        |d   }nf|E|s|rA| j                  d       |t        k(  ry|rt        d      | _        n2|r0t        d	      | _        n|| j                  }| j                  | _        | j                          | j                  |t        k7  xr |       d
j                  |      }t        t        | ;  |       y)zReturn Kite completions state.)enabled_providerskiteTcompletions)defaultsectionNshortlongzcKite installation will continue in the background.
Click here to show the installation dialog againz0Click here to show the
installation dialog againz	Kite: {0})r   get_confis_installing!installation_cancelled_or_erroredr   r   r   r   DEFAULT_STATUSr   update_tooltipformatr   r   r   )r   valuekite_enabledr,   cancelled_or_erroredr    s        r!   r   zKiteStatusWidget.set_value6   s   }}--.K6:6C . E **,#EEG'U"2 =DL'NEM5IOOD!%  "0  1 &  "=  >]''E,,DL.?<@""5)/6r"   c                     | j                   S )z*Reimplementation to get a dynamic tooltip.)r   r   s    r!   get_tooltipzKiteStatusWidget.get_tooltipU   s    ||r"   c                 ,    t        j                  d      S )Nr%   )r   iconr5   s    r!   get_iconzKiteStatusWidget.get_iconY   s    xxr"   c                 n    t               \  }}|s&t               s| j                  j                          yyy)zShow installation dialog.N)r   r   r   show)r   	installedpaths      r!   r   z)KiteStatusWidget.show_installation_dialog\   s0     23	4!5!7NN! "8yr"   c                 h    | j                   j                         xr | j                   j                   S )z)Check if an installation is taking place.)r   	isRunning	cancelledr5   s    r!   r,   zKiteStatusWidget.is_installingc   s0    ((224 ;00:::	<r"   c                 6    | j                   j                         S )z1Check if an installation was cancelled or failed.)r   r3   r5   s    r!   r-   z2KiteStatusWidget.installation_cancelled_or_erroredh   s    ''<<>>r"   c                    | j                   j                  d      }| j                   j                  d      }|dk(  rg|re| j                   j                          | j                   j                  d      }|r-| j                   j                  dd       | j	                          yy|dk  r | j                   j                  d|dz          yy)z
        This is called after the main window setup finishes, and the
        third time Spyder is started, to show Kite's installation dialog
        and onboarding if necessary.
        spyder_runsinstallers_available   r   F   N)r   r+   _kite_onboardingset_confr   )r   rC   rD   show_dialogs       r!   mainwindow_setup_finishedz*KiteStatusWidget.mainwindow_setup_finishedl   s     mm,,];#}}556LM! 4MM**,--001KLK&&'A5I--/ 
 Q&&}kAoF r"   )__name__
__module____qualname____doc__r   r   r.   IDr   r   r6   r9   r   r   r,   r-   rJ   __classcell__)r    s   @r!   r   r      sm    8./L'N	B@"7>  
V" "<
? 
VG Gr"   r   )rN   loggingqtpy.QtCorer   spyder.api.widgets.statusr   spyder.config.baser   r   5spyder.plugins.completion.providers.kite.utils.statusr   r   6spyder.plugins.completion.providers.kite.utils.installr	   8spyder.plugins.completion.providers.kite.widgets.installr
   spyder.utils.icon_managerr   	getLoggerrK   loggerr    r"   r!   <module>r\      sP   
   6 6, )			8	$`G `Gr"   