
    ce&#                     j   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  G d de          Z G d de          Z  G d de          Z! G d de          Z" G d de
          Z# G d de          Z$ G d de          Z%dS )zQuit application dialog.    )QSizeQt)
QSvgWidget)QDialogButtonBoxQHBoxLayoutQLabelQListWidgetItemQVBoxLayout)CONF)images)SASS_VARIABLES)ButtonDangerButtonNormalButtonPrimaryCheckBoxBase	FrameBase	LabelBaseSpacerHorizontalSpacerVertical)
DialogBase)ListWidgetBasec                   2     e Zd ZdZ fdZd Z fdZ xZS )QuitApplicationDialog%Quit application confirmation dialog.c                 T   |                     dt                    | _         t                      j        |i | t          t          j                  | _        t          d          | _
        t          d          | _        t          d          | _        t          t           j                  | _        t'          d          | _        |                     d           | j                            t/          dd                     t1                      }|                    | j        dt           j                   |                    t7                                 |                    | j
                   t1                      }|                                 |                    | j                   |                    t7                                 |                    | j                   t;                      }|                    |           |                    | j        dt           j                   |                    tA                                 |                    tA                                 |                    |           | !                    |           | j        j"        #                    | j$                   | j        j"        #                    | j%                   | &                                 | '                                 | j        (                                 d	S )
r   configzQuit Anaconda Navigator?YesNoDon't show againQuit applicationd   r   N))popr   r   super__init__r   r   ANACONDA_LOGOwidget_iconr   label_aboutr   	button_okr   button_cancelr   r   
Horizontal	buttonboxr   checkboxsetWindowTitlesetFixedSizer   r   	addWidgetAlignTopr   
addStretchr
   	addLayout
AlignRightr   	setLayoutclickedconnectacceptrejectupdate_style_sheetsetupsetFocus)selfargskwargsh_layoutlayout_buttonsmain_layout	__class__s         Glib/python3.11/site-packages/anaconda_navigator/widgets/dialogs/quit.pyr$   zQuitApplicationDialog.__init__   s   jj400$)&)))%f&:;;!"<==&u--)$//)"-88$%788 	.///%%eCoo666 ==4+Q<<<+--...4+,,,$!!###  !3444  !1!3!3444  000!mmh'''dmQ>>>n..///n..///n---{### 	&&t{333"**4;777 	!!!

##%%%%%    c                     | j                             dd          rt          j        }nt          j        }| j                            |           dS )Setup widget content.mainhide_quit_dialogN)r   getr   Checked	Uncheckedr,   
setChecked)r<   hide_dialogs     rC   r:   zQuitApplicationDialog.setupI   sI     ;??6#566 	'*KK,K  -----rD   c                     | j                                         t          j        k    }| j                            dd|           t                                                       dS )L
        Qt overide.

        Update the configuration preferences.
        rG   rH   N)r,   
checkStater   rJ   r   setr#   r7   )r<   rM   rB   s     rC   r7   zQuitApplicationDialog.acceptR   sR     m..00BJ> 2K@@@rD   __name__
__module____qualname____doc__r$   r:   r7   __classcell__rB   s   @rC   r   r      sg        //*& *& *& *& *&X. . .        rD   r   c                   "     e Zd ZdZ fdZ xZS )QuitBusyDialogz+Dialog for quiting while navigator is busy.c                      t                      j        |i | | j                            d           |                     d           | j                            d           dS )r   z=Anaconda Navigator is still busy.<br><br>Do you want to quit?r    FNr#   r$   r'   setTextr-   r,   
setVisibler<   r=   r>   rB   s      rC   r$   zQuitBusyDialog.__init___   sh    $)&)))  !`aaa.///  '''''rD   rS   rT   rU   rV   r$   rW   rX   s   @rC   rZ   rZ   ]   s>        55( ( ( ( ( ( ( ( (rD   rZ   c                       e Zd ZdZdS )FrameRunningAppszMain widget for the list items.N)rS   rT   rU   rV    rD   rC   rb   rb   g   s        ))))rD   rb   c                       e Zd ZdZd ZdS )ListRunningAppszList of running apps.c                     dS z	Override.Nrc   )r<   items     rC   
setup_itemzListRunningApps.setup_itemn         rD   N)rS   rT   rU   rV   ri   rc   rD   rC   re   re   k   s)            rD   re   c                   v     e Zd ZdZ fdZd Zd Zed             Zd Z	ed             Z
ed             Z xZS )	ListItemRunningApp-List item representing a running application.c                    t                                                       t                      | _        || _        t          |          | _        t                      | _        t                      }|
                    | j                   |
                    | j                   |                                 | j                            |           |                     |                                            dS )rm   N)r#   r$   rb   widgetpackager   labelr   r,   r   r/   r1   r4   setSizeHintwidget_size)r<   rp   layout_framerB   s      rC   r$   zListItemRunningApp.__init__t   s    &((w''
$"}}t}---tz***!!!l+++))++,,,,,rD   c                 :    | j                             |           dS )z6Set the check state for the checkbox in the list item.N)r,   rL   )r<   values     rC   set_checkedzListItemRunningApp.set_checked   s      '''''rD   c                 4    | j                                         S )z.Return True if checked otherwise return False.)r,   	isCheckedr<   s    rC   checkedzListItemRunningApp.checked   s    }&&(((rD   c                     dS rg   rc   rh   s    rC   set_loadingzListItemRunningApp.set_loading   rj   rD   c                 4    | j                                         S )zQt override.)rq   textrz   s    rC   r   zListItemRunningApp.text   s    z   rD   c                     dS rg   rc   r}   s    rC   set_selectedzListItemRunningApp.set_selected   rj   rD   c                  J    t          t          j        t          j                  S )z)Return the size defined in the SASS file.)r   r   WIDGET_RUNNING_APPS_TOTAL_WIDTH WIDGET_RUNNING_APPS_TOTAL_HEIGHTrc   rD   rC   rs   zListItemRunningApp.widget_size   s     ^C^EtuuurD   )rS   rT   rU   rV   r$   rw   r{   staticmethodr~   r   r   rs   rW   rX   s   @rC   rl   rl   r   s        77- - - - -( ( () ) )   \! ! !   \ v v \v v v v vrD   rl   c                   2     e Zd ZdZ fdZd Z fdZ xZS )QuitRunningAppsDialog5Dialog for closing running apps if quiting navigator.c                 "   |                     dg           | _        |                     dt                    | _         t	                      j        |i | t          |           | _        t          d          | _	        t          d          | _        t          d          | _        t          t          j                  | _        t%          d          | _        |                     d           t+                      }|                                 |                    | j                   |                    t1                                 |                    | j                   t3                      }|                    | j	                   |                    t5                                 |                    | j        dt          j                   |                    t5                                 |                    | j        dt          j                   |                    t5                                 |                    t5                                 |                    |           |                     |           | j        j                             | j!                   | j        j                             | j"                   | #                                 | $                                 | j        %                                 d	S )
r   running_processesr   z_There are some applications running. Please select 
the applications you want to close on quit:QuitCancelr   zClose running applicationsr   N)&r"   r   r   r   r#   r$   re   listr   r'   r   button_closer   r)   r   r   r*   r+   r   r,   r-   r   r1   r/   r   r
   r   AlignCenterr3   r2   r4   r5   r6   r7   r8   r9   r:   r;   )r<   r=   r>   r@   rA   rB   s        rC   r$   zQuitRunningAppsDialog.__init__   s   !',?!D!Djj400$)&)))#D))	!n
 
 )00)(33)"-88$%899 	8999 %!!###  !3444  !1!3!3444  !2333!mmd.///n..///diBN;;;n..///dmQ>>>n..///n..///n---{### 	!))$+666"**4;777 	!!!

##%%%%%rD   c                    t          d | j        D                       }| j                            dd          }|D ]B}t	          |          }|                    ||v            | j                            |           C| j                            dd          rt          j	        }nt          j
        }| j                            |           dS )rF   c                     h | ]	}|j         
S rc   )rp   ).0rp   s     rC   	<setcomp>z.QuitRunningAppsDialog.setup.<locals>.<setcomp>   s*     
 
 
 O
 
 
rD   rG   running_apps_to_closehide_running_apps_dialogN)sortedr   r   rI   rl   rw   r   addItemr   rJ   rK   r,   rL   )r<   packageschecked_packagesrp   rh   rM   s         rC   r:   zQuitRunningAppsDialog.setup   s      
 
1
 
 
    ;??63JKK 	$ 	$G%g..DW(88999Id####;??6#=>> 	'*KK,K  -----rD   c                 J   t          | j                            dd                    }| j                                        t
          j        k    }d | j                                        D             }d | j                                        D             }||z
  }t          t          |
                    |                              }| j                             dd|           | j                             dd|           t                                                       dS )rO   rG   r   c                 ^    h | ]*}|                                 |                                +S rc   )r{   r   r   rh   s     rC   r   z/QuitRunningAppsDialog.accept.<locals>.<setcomp>   s>     
 
 
||~~
IIKK
 
 
rD   c                 6    h | ]}|                                 S rc   )r   r   s     rC   r   z/QuitRunningAppsDialog.accept.<locals>.<setcomp>   s0     
 
 
 IIKK
 
 
rD   r   N)rQ   r   rI   r,   rP   r   rJ   r   itemsr   unionr#   r7   )r<   original_checked_packagesrM   r   r   deltanew_packagesrB   s          rC   r7   zQuitRunningAppsDialog.accept   s    %(@W(X(X$Y$Y!m..00BJ>
 
	))
 
 


 
	))
 
 
 *H4d#3#9#9%#@#@AABB 7FFF :KHHHrD   rR   rX   s   @rC   r   r      sg        ??+& +& +& +& +&Z. . .&        rD   r   c                   "     e Zd ZdZ fdZ xZS )ClosePackageManagerDialog7Confirm application quit if package manager is running.c                      t                      j        |i | | j                            d           |                     d           | j                            d           dS )r   z8Conda is still busy.

Do you want to cancel the process?zCancel ProcessFNr\   r_   s      rC   r$   z"ClosePackageManagerDialog.__init__   sh    $)&)))  !]^^^,---  '''''rD   r`   rX   s   @rC   r   r      s>        AA( ( ( ( ( ( ( ( (rD   r   N)&rV   qtpy.QtCorer   r   
qtpy.QtSvgr   qtpy.QtWidgetsr   r   r   r	   r
   anaconda_navigator.configr   anaconda_navigator.staticr   anaconda_navigator.utils.stylesr   anaconda_navigator.widgetsr   r   r   r   r   r   r   r   "anaconda_navigator.widgets.dialogsr    anaconda_navigator.widgets.listsr   r   rZ   rb   re   rl   r   r   rc   rD   rC   <module>r      sf     ! ! ! ! ! ! ! ! ! ! ! ! ! ! ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ * * * * * * , , , , , , : : : : : :                    : 9 9 9 9 9 ; ; ; ; ; ;? ? ? ? ?J ? ? ?D( ( ( ( (* ( ( (* * * * *y * * *    n   (v (v (v (v (v (v (v (vVW W W W WJ W W Wt( ( ( ( ( 5 ( ( ( ( (rD   