ó
Ò:\c           @   s›  d  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 d d l m Z d d l 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 d d	 l m Z d d
 l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ  d e f d „  ƒ  YZ! d e f d „  ƒ  YZ" d e
 f d „  ƒ  YZ# d e f d „  ƒ  YZ$ d e f d „  ƒ  YZ% d „  Z& e' d k r—e& ƒ  n  d S(   s   Quit application dialog.iÿÿÿÿ(   t   QSizet   Qt(   t
   QSvgWidget(   t   QDialogButtonBoxt   QHBoxLayoutt   QLabelt   QListWidgetItemt   QVBoxLayout(   t   CONF(   t   images(   t   SASS_VARIABLES(   t   ButtonDangert   ButtonNormalt   ButtonPrimaryt   CheckBoxBaset	   FrameBaset	   LabelBaset   SpacerHorizontalt   SpacerVertical(   t
   DialogBase(   t   ListWidgetBaset   QuitApplicationDialogc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s%   Quit application confirmation dialog.c         O   só  | j  d t ƒ |  _ t t |  ƒ j | | Ž  t t j ƒ |  _	 t
 d ƒ |  _ t d ƒ |  _ t d ƒ |  _ t t j ƒ |  _ t d ƒ |  _ |  j d ƒ |  j	 j t d d ƒ ƒ t ƒ  } | j |  j	 d t j ƒ | j t ƒ  ƒ | j |  j ƒ t ƒ  } | j ƒ  | j |  j ƒ | j t ƒ  ƒ | j |  j ƒ t ƒ  } | j | ƒ | j |  j d t j  ƒ | j t! ƒ  ƒ | j t! ƒ  ƒ | j | ƒ |  j" | ƒ |  j j# j$ |  j% ƒ |  j j# j$ |  j& ƒ |  j' ƒ  |  j( ƒ  |  j j) ƒ  d	 S(
   s%   Quit application confirmation dialog.t   configs   Quit Anaconda Navigator?t   Yest   Nos   Don't show agains   Quit applicationid   i    N(*   t   popR   R   t   superR   t   __init__R   R	   t   ANACONDA_LOGOt   widget_iconR   t   label_aboutR   t	   button_okR   t   button_cancelR   R   t
   Horizontalt	   buttonboxR   t   checkboxt   setWindowTitlet   setFixedSizeR    R   t	   addWidgett   AlignTopR   t
   addStretchR   t	   addLayoutt
   AlignRightR   t	   setLayoutt   clickedt   connectt   acceptt   rejectt   update_style_sheett   setupt   setFocus(   t   selft   argst   kwargst   h_layoutt   layout_buttonst   main_layout(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR   $   s>    		
	

c         C   s>   |  j  j d d ƒ r! t j } n	 t j } |  j j | ƒ d S(   s   Setup widget content.t   maint   hide_quit_dialogN(   R   t   getR   t   Checkedt	   UncheckedR#   t
   setChecked(   R3   t   hide_dialog(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR1   P   s    	c         C   sE   |  j  j ƒ  t j k } |  j j d d | ƒ t t |  ƒ j ƒ  d S(   sL   
        Qt overide.

        Update the configuration preferences.
        R9   R:   N(	   R#   t
   checkStateR   R<   R   t   setR   R   R.   (   R3   R?   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR.   Y   s    (   t   __name__t
   __module__t   __doc__R   R1   R.   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR   !   s   	,		t   QuitBusyDialogc           B   s   e  Z d  Z d „  Z RS(   s+   Dialog for quiting while navigator is busy.c         O   sJ   t  t |  ƒ j | | Ž  |  j j d ƒ |  j d ƒ |  j j t ƒ d S(   s%   Quit application confirmation dialog.s=   Anaconda Navigator is still busy.<br><br>Do you want to quit?s   Quit applicationN(	   R   RE   R   R   t   setTextR$   R#   t
   setVisiblet   False(   R3   R4   R5   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR   g   s
    	(   RB   RC   RD   R   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRE   d   s   t   FrameRunningAppsc           B   s   e  Z d  Z RS(   s   Main widget for the list items.(   RB   RC   RD   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRI   r   s   t   ListRunningAppsc           B   s   e  Z d  Z e d „  ƒ Z RS(   s   List of running apps.c         C   s   |  d S(   s	   Override.N(    (   t   item(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt
   setup_itemy   s    (   RB   RC   RD   t   staticmethodRL   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRJ   v   s   t   ListItemRunningAppc           B   s_   e  Z d  Z d „  Z d „  Z d „  Z e d „  ƒ Z d „  Z e d „  ƒ Z	 e d „  ƒ Z
 RS(   s-   List item representing a running application.c         C   s   t  t |  ƒ j ƒ  t ƒ  |  _ | |  _ t | ƒ |  _ t ƒ  |  _	 t
 ƒ  } | j |  j	 ƒ | j |  j ƒ | j ƒ  |  j j | ƒ |  j |  j ƒ  ƒ d S(   s-   List item representing a running application.N(   R   RN   R   RI   t   widgett   packageR   t   labelR   R#   R   R&   R(   R+   t   setSizeHintt   widget_size(   R3   RP   t   layout_frame(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR   ‚   s    		
c         C   s   |  j  j | ƒ d S(   s6   Set the check state for the checkbox in the list item.N(   R#   R>   (   R3   t   value(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt   set_checked‘   s    c         C   s   |  j  j ƒ  S(   s.   Return True if checked otherwise return False.(   R#   t	   isChecked(   R3   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt   checked•   s    c         C   s   |  d S(   s	   Override.N(    (   RK   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt   set_loading™   s    c         C   s   |  j  j ƒ  S(   s   Qt override.(   RQ   t   text(   R3   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRZ   ž   s    c         C   s   |  d S(   s	   Override.N(    (   RK   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt   set_selected¢   s    c           C   s   t  t j t j ƒ S(   s)   Return the size defined in the SASS file.(   R    R
   t   WIDGET_RUNNING_APPS_TOTAL_WIDTHt    WIDGET_RUNNING_APPS_TOTAL_HEIGHT(    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRS   §   s    (   RB   RC   RD   R   RV   RX   RM   RY   RZ   R[   RS   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRN      s   				t   QuitRunningAppsDialogc           B   s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s5   Dialog for closing running apps if quiting navigator.c         O   sæ  | j  d g  ƒ |  _ | j  d t ƒ |  _ t t |  ƒ j | | Ž  t |  ƒ |  _ t	 d ƒ |  _
 t d ƒ |  _ t d ƒ |  _ t t j ƒ |  _ t d ƒ |  _ |  j d ƒ t ƒ  } | j ƒ  | j |  j ƒ | j t ƒ  ƒ | j |  j ƒ t ƒ  } | j |  j
 ƒ | j t ƒ  ƒ | j |  j d t j ƒ | j t ƒ  ƒ | j |  j d t j ƒ | j t ƒ  ƒ | j t ƒ  ƒ | j | ƒ |  j | ƒ |  j j  j! |  j" ƒ |  j j  j! |  j# ƒ |  j$ ƒ  |  j% ƒ  |  j j& ƒ  d	 S(
   s5   Dialog for closing running apps if quiting navigator.t   running_processesR   s_   There are some applications running. Please select 
the applications you want to close on quit:t   Quitt   Cancels   Don't show agains   Close running applicationsi    N('   R   R_   R   R   R   R^   R   RJ   t   listR   R   R   t   button_closeR   R    R   R   R!   R"   R   R#   R$   R   R(   R&   R   R   R   t   AlignCenterR*   R)   R+   R,   R-   R.   R/   R0   R1   R2   (   R3   R4   R5   R7   R8   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR   ³   s>    	
	

c         C   s²   t  t d „  |  j Dƒ ƒ ƒ } |  j j d d ƒ } x= | D]5 } t | ƒ } | j | | k ƒ |  j j | ƒ q; W|  j j d d ƒ r• t	 j
 } n	 t	 j } |  j j | ƒ d S(   s   Setup widget content.c         s   s   |  ] } | d  Vq d S(   RP   N(    (   t   .0t   p(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pys	   <genexpr>å   s    R9   t   running_apps_to_closet   hide_running_apps_dialogN(   t   sortedRA   R_   R   R;   RN   RV   Rb   t   addItemR   R<   R=   R#   R>   (   R3   t   packagest   checked_packagesRP   RK   R?   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR1   â   s    	c         C   sÍ   t  |  j j d d ƒ ƒ } |  j j ƒ  t j k } d „  |  j j ƒ  Dƒ } d „  |  j j ƒ  Dƒ } | | } t	 t | j
 | ƒ ƒ ƒ } |  j j  d d | ƒ |  j j  d d | ƒ t t |  ƒ j ƒ  d S(   sL   
        Qt overide.

        Update the configuration preferences.
        R9   Rg   c         S   s(   h  |  ] } | j  ƒ  r | j ƒ  ’ q S(    (   RX   RZ   (   Re   t   i(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pys	   <setcomp>ü   s   	 c         S   s   h  |  ] } | j  ƒ  ’ q S(    (   RZ   (   Re   Rm   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pys	   <setcomp>ý   s   	 Rh   N(   RA   R   R;   R#   R@   R   R<   Rb   t   itemsRi   t   unionR   R^   R.   (   R3   t   original_checked_packagesR?   Rl   Rk   t   deltat   new_packages(    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR.   ò   s    
(   RB   RC   RD   R   R1   R.   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR^   °   s   	/	t   ClosePackageManagerDialogc           B   s   e  Z d  Z d „  Z RS(   s7   Confirm application quit if package manager is running.c         O   sJ   t  t |  ƒ j | | Ž  |  j j d ƒ |  j d ƒ |  j j t ƒ d S(   s7   Confirm application quit if package manager is running.s8   Conda is still busy.

Do you want to cancel the process?s   Cancel ProcessN(	   R   Rs   R   R   RF   R$   R#   RG   RH   (   R3   R4   R5   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyR     s
    	(   RB   RC   RD   R   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyRs     s   c          C   sy   d d l  m }  |  ƒ  } t d d ƒ } | j ƒ  i d d 6i d d 6g } t d d d | ƒ } | j ƒ  | j ƒ  d S(	   s   Run local test.iÿÿÿÿ(   t   qapplicationt   parents   anaconda-fusionRP   t	   qtconsoleR_   N(   t"   anaconda_navigator.utils.qthelpersRt   R   t   Nonet   showR^   t   exec_(   Rt   t   appt   widget_quitt   runpRO   (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt
   local_test  s    	

t   __main__N((   RD   t   qtpy.QtCoreR    R   t
   qtpy.QtSvgR   t   qtpy.QtWidgetsR   R   R   R   R   t   anaconda_navigator.configR   t   anaconda_navigator.staticR	   t   anaconda_navigator.utils.stylesR
   t   anaconda_navigator.widgetsR   R   R   R   R   R   R   R   t"   anaconda_navigator.widgets.dialogsR   t    anaconda_navigator.widgets.listsR   R   RE   RI   RJ   RN   R^   Rs   R~   RB   (    (    (    sF   lib/python2.7/site-packages/anaconda_navigator/widgets/dialogs/quit.pyt   <module>   s&   (:C	1U	