
    h?                        d dl Z  e j                  dd       d dlmZ d dlmZ d dlmZ d dlZ ej                  dde       d dl	Z	d dl
Z
d dlZd dlZd dlZd dlZd	d
lmZ d	dlmZ d dlmZ d dlmZ  G d de      Z G d deej2                        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! G d  d!e      Z" G d" d#e      Z# G d$ d%e#      Z$ G d& d'e      Z%y)(    NGtkz3.0)r   )Gdk)GioignorezAccessed deprecated property   )LivePatchSocket)get_dist)gettext)ngettextc                   ,    e Zd Zd Zd Zd Zd ZddZy)Dialogc                     || _         y N)window_mainselfr   s     7/usr/lib/python3/dist-packages/UpdateManager/Dialogs.py__init__zDialog.__init__2   s
    &    c                      y r    r   s    r   startzDialog.start5       r   c                 "    | j                         S r   )stopr   s    r   closezDialog.close8   s    yy{r   c                      y r   r   r   s    r   r   zDialog.stop;   r   r   Nc                      y r   r   r   parents     r   runz
Dialog.run>   r   r   r   )__name__
__module____qualname__r   r   r   r   r"   r   r   r   r   r   1   s    'r   r   c                   "    e Zd Zd ZddZddZy)BuilderDialogc                     t         j                  | |       t        j                  j                  |        | j	                  ||      }| j                  |j                  |             | j                          y r   )r   r   r   	Alignment_load_uiadd
get_objectshow)r   r   ui_pathroot_widgetbuilders        r   r   zBuilderDialog.__init__C   sR    k*t$--5##K01		r   c                    t        j                         }|j                  |       |j                  ||g       |j	                  |        |j                         D ]j  }t        t        |      t         j                        r-t         j                  j                  |      }t        | ||       St        j                  d|z         l |S )Nz"WARNING: can not get name for '%s')r   Builderset_translation_domainadd_objects_from_fileconnect_signalsget_objects
issubclasstype	Buildableget_namesetattrloggingdebug)r   pathr/   domainr0   onames          r   r*   zBuilderDialog._load_uiK   s    ++-&&v.%%d[M:%$$& 	HA$q'3==1}}--a0dA&BQFG	H r   Nc                     |r6| j                   j                  |       | j                   j                  d       | j                   j                          y NT)window_dialogset_transient_for	set_modalr"   r    s     r   r"   zBuilderDialog.runZ   s?    008((. r   )zupdate-managerr   )r#   r$   r%   r   r*   r"   r   r   r   r'   r'   B   s    !r   r'   c                   R    e Zd ZddZd ZddZd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zy)InternalDialogNc                 8   t         j                  j                  |j                  d      }t        j                  | ||d       t        j                  j                  d      | _	        d | _
        | j                  |       | j                  d| j                         y )Nzgtkbuilder/Dialog.uipane_dialogzcom.ubuntu.update-managerrealize)osr>   joindatadirr'   r   r   Settingsnewsettingsfocus_buttonset_content_widgetconnect_on_realize)r   r   content_widgetr.   s       r   r   zInternalDialog.__init__c   sr    '',,{224JKt['=I(()DE /Y 0 01r   c                     | j                   rk| j                   j                  d       | j                   j                  d       | j                   j                          | j                   j	                          y y rC   )rR   set_can_defaultset_can_focusgrab_default
grab_focus)r   	user_datas     r   rU   zInternalDialog._on_realizem   s\    --d3++D1**,((*	 r   c                     t         j                  j                  |      }|j                  dfd       |j	                          | j
                  j                  |       | j
                  j                  ||       |S )Nclickedc                             S r   r   )xcallbacks    r   <lambda>z+InternalDialog.add_button.<locals>.<lambda>w   s	    HJ r   )r   Buttonnew_from_stockrT   r-   	buttonboxr+   set_child_secondary)r   labelra   	secondarybuttons     `  r   
add_buttonzInternalDialog.add_buttont   sZ    **51y"676"**69=r   c                     t         j                  j                  d      r'| j                  t	        d      | j
                  d      S y )Nz /usr/bin/software-properties-gtku   Settings…T)rh   )rL   r>   existsrj   _on_settings_button_clickedr   s    r   add_settings_buttonz"InternalDialog.add_settings_button}   s@    77>><=??- $"A"AT #   r   c                 8    | j                   j                          y r   )r   show_settingsr   s    r   rn   z)InternalDialog.on_settings_button_clicked   s    &&(r   c                     |r| j                   j                  d|z         | j                   j                  t        |             y )Nz+<span size='larger' weight='bold'>%s</span>)label_header
set_markupset_visibleboolr   rg   s     r   
set_headerzInternalDialog.set_header   s;    ((=E 	%%d5k2r   c                     |r| j                   j                  |       | j                   j                  t        |             y r   )
label_descrt   ru   rv   rw   s     r   set_desczInternalDialog.set_desc   s-    OO&&u-##DK0r   c                     |r| j                   j                  |       | j                   j                  t        |             y r   )main_containerr+   ru   rv   )r   rV   s     r   rS   z!InternalDialog.set_content_widget   s2    ##N3''^(<=r   c                 `    t        j                         }t               }|j                  |      S r   )distro_infoUbuntuDistroInfor	   is_lts)r   dicodenames      r   _is_livepatch_supportedz&InternalDialog._is_livepatch_supported   s&    ))+:yy""r   c                 :   | j                  d        |sy| j                         rh| j                  r\| j                  j	                  d      dk\  r>| j                  t        d             | j                  j                  t        d             y d}|dk(  rd}n|dk(  rn|d	k(  r|d
k(  s|dk(  rd}n|dk(  rP|D cg c]  }|j                  s| }}t        ddt        |            t        |      z  }| j                  |       nf|dk(  s|dk(  rP|D cg c]  }|j                  s| }}t        ddt        |            t        |      z  }| j                  |       n|dk(  rn|dk(  r	 |r&| j                  j                  | j                         y y c c}w c c}w )Nzlaunch-count   ze<b>Tip:</b> You can use Livepatch with Ubuntu Pro to keep your computer more secure between restarts.u   Settings & Pro…Fzneeds-checkTzcheck-failedchecked	unappliedapplyingappliedz3%d Livepatch update applied since the last restart.z4%d Livepatch updates applied since the last restart.zapplied-with-bugzapply-failedz;%d Livepatch update failed to apply since the last restart.z<%d Livepatch updates failed to apply since the last restart.znothing-to-applyunknown)r{   r   settings_buttonrQ   get_intrm   	set_labelpatchedr   len	lp_socket
get_statuson_livepatch_status_ready)r   activecspsfixesneeds_reschedulefixds           r   r   z(InternalDialog.on_livepatch_status_ready   s   d,,.((MM)).9Q>3 $$..q1D/EF #>!9_[ B*$4#' y(-===IJJ J	
 a ))R>-A(-===$$J J a ))yNN%%d&D&DE - > >s   8F
FF$Fc                 l    t               | _        | j                  j                  | j                         y r   )r   r   r   r   r   s    r   check_livepatch_statusz%InternalDialog.check_livepatch_status   s$    (*!!$"@"@Ar   r   F)r#   r$   r%   r   rU   rj   ro   rn   rx   r{   rS   r   r   r   r   r   r   rH   rH   b   s<    2+)31
>
#
4FlBr   rH   c                       e Zd Zd Zd Zy)StoppedUpdatesDialogc                 @   t         j                  | |       | j                  t        d             | j	                          | j                  t        d      | j                         | j                  t        j                  | j                  j                        | _        y )Nz"You stopped the check for updates.z_Check Again)rH   r   rx   rm   ro   rj   checkr   STOCK_OKr   r   rR   r   s     r   r   zStoppedUpdatesDialog.__init__   sm    k2>?@  ".)4::6 OOLL$**00
r   c                 8    | j                   j                          y r   r   start_updater   s    r   r   zStoppedUpdatesDialog.check       %%'r   N)r#   r$   r%   r   r   r   r   r   r   r      s    
(r   r   c                       e Zd ZddZy)NoUpdatesDialogc                 Z   t         j                  | |       |r| j                  t        d             n| j                  t        d             | j	                         | _        | j                  t        j                  | j                  j                        | _        | j                          y )Nz"No software updates are available.,The software on this computer is up to date.)rH   r   rx   rm   ro   r   rj   r   r   r   r   rR   r   )r   r   error_occurreds      r   r   zNoUpdatesDialog.__init__   s~    k2OOABCDOOALMN#779 OOLL$**00
 	##%r   Nr   r#   r$   r%   r   r   r   r   r   r      s    
&r   r   c                       e Zd Zd Zd Zy)DistUpgradeDialogc                    t         j                  | |       || _        | j                  t	        d             | j                  t	        d      |j                  |j                  j                  |j                  fz         | j                          | j                  t	        d      | j                         | j                  t        j                  | j                  j                         | _        y )Nr   z.However, %s %s is now available (you have %s).u
   Upgrade…)rH   r   meta_releaserx   rm   r{   flavor_nameupgradable_toversioncurrent_dist_versionro   rj   upgrader   r   r   r   rR   r   r   r   s      r   r   zDistUpgradeDialog.__init__   s    k2(HIJ>?((**2211	
 	  ",6 OOLL$**00
r   c                    d}| j                   r`| j                   j                  rJ| j                   j                  j                  r|dz   }| j                   j                  j                  r|dz   }t	        j
                  dddd|z         y )N z -dz -p/bin/sh-cz</usr/bin/do-release-upgrade --frontend=DistUpgradeViewGtk3%s)r   optionsdevel_releaseuse_proposedrL   execl)r   
extra_argss     r   r   zDistUpgradeDialog.upgrade	  s~    
 0 0 8 8''55'%/
''44'%/

/1;<		
r   N)r#   r$   r%   r   r   r   r   r   r   r      s    
&
r   r   c                       e Zd Zd Zd Zy)HWEUpgradeDialogc                    t         j                  | |       | j                  t        d             t        j
                  j                         t        j                  j                  k  r=| j                  t        t        j                  j                  j                               n<| j                  t        t        j                  j                  j                               | j                          | j                  t        d      | j                          | j                  t"        j$                  | j&                  j(                        | _        y )Nz3New important security and hardware support update.u   _Install…)rH   r   rx   rm   datetimedatetodayHweSupportStatusconstsHWE_EOL_DATEr{   MessagesHWE_SUPPORT_ENDSHWE_SUPPORT_HAS_ENDEDro   rj   installr   r   r   r   rR   r   s     r   r   zHWEUpgradeDialog.__init__  s    k2CD	
 == #3#:#:#G#GGMM!,33<<MMNOMM"))22HHI 	  "-($,,7 OOLL$**00
r   c                 <    | j                   j                  d       y )NT)hwe_upgrade)r   start_installr   s    r   r   zHWEUpgradeDialog.install,  s    &&4&8r   N)r#   r$   r%   r   r   r   r   r   r   r     s    
"9r   r   c                       e Zd Zd Zd Zy)UnsupportedDialogc                    t         j                  | ||       | j                  t        d      |j                  |j
                  fz         | j                  t        d      |j                  |j                  j                  fz         y )Nz2Software updates are no longer provided for %s %s.z,To stay secure, you should upgrade to %s %s.)	r   r   rx   rm   r   r   r{   r   r   r   s      r   r   zUnsupportedDialog.__init__1  sz    ""4lCBC'')J)JKL	

 	<='')C)C)K)KLM	
r   c                 f    | j                   | j                  _        t        j	                  | |       y r   )rD   r   no_longer_supported_nagr   r"   r    s     r   r"   zUnsupportedDialog.run>  s&    373E3E0dF+r   N)r#   r$   r%   r   r"   r   r   r   r   r   0  s    
,r   r   c                       e Zd Zd Zy)NoUpgradeForYouDialogc                 (   t         j                  | |       | j                  t        d             | j	                  t        d      ||j
                  fz         | j                  t        j                  | j                  j                        | _        y )Nz1Sorry, there are no more upgrades for this systemz
There will not be any further Ubuntu releases for this system's '%s' architecture.

Updates for Ubuntu %s will continue until 2023-04-26.

If you reinstall Ubuntu from ubuntu.com/download, future upgrades will be available.)rH   r   rx   rm   r{   r   rj   r   r   r   r   rR   )r   r   r   archs       r   r   zNoUpgradeForYouDialog.__init__E  sz    k2MNO5 \6678		
 !OOLL$**00
r   Nr   r   r   r   r   r   D  s    
r   r   c                       e Zd Zd Zd Zd Zy)PartialUpgradeDialogc                 ^   t         j                  | |       | j                  t        d             | j	                  t        d             | j                          | j                  t        d      | j                         | j                  t        d      t        j                        | _
        y )Nz Not all updates can be installeda2  Run a partial upgrade, to install as many updates as possible.

    This can be caused by:
     * A previous upgrade which didn't complete
     * Problems with some of the installed software
     * Unofficial software packages not provided by Ubuntu
     * Normal changes of a pre-release version of Ubuntuz_Partial Upgrade	_Continue)rH   r   rx   rm   r{   ro   rj   r   r   	main_quitrR   r   s     r   r   zPartialUpgradeDialog.__init__Y  s~    k2<=><		
 	  ",-t||< OOAkNCMMJr   c                 4    t        j                  dddd       y )Nr   r   zR/usr/lib/ubuntu-release-upgrader/do-partial-upgrade --frontend=DistUpgradeViewGtk3)rL   r   r   s    r   r   zPartialUpgradeDialog.upgradel  s    
-		
r   c                 V    t         j                  |        t        j                          y r   )r   r   r   mainr   s    r   r   zPartialUpgradeDialog.startu  s    T
r   N)r#   r$   r%   r   r   r   r   r   r   r   r   X  s    K&
r   r   c                       e Zd ZddZd Zy)ErrorDialogNc                 @   t         j                  | |       | j                  |       |r,| j                  |       | j                  j                  d       | j                          | j                  t        j                  | j                  j                        | _        y rC   )rH   r   rx   r{   rz   set_selectablero   rj   r   r   r   r   rR   r   r   headerdescs       r   r   zErrorDialog.__init__|  sq    k2MM$OO**40  " OOLL$**00
r   c                 f    t         j                  |        | j                  j                  dd       y )Nr   )r   r   rz   select_regionr   s    r   r   zErrorDialog.start  s$    T 	%%a+r   r   )r#   r$   r%   r   r   r   r   r   r   r   {  s    	
,r   r   c                        e Zd ZddZd Zd Zy)UpdateErrorDialogNc                    t         j                  | |||       | j                  j                          | j	                  t        d      | j                         | j	                  t        j                  | j                        | _        y )Nz
_Try Again)
r   r   rR   destroyrj   rm   updater   r   	availabler   s       r   r   zUpdateErrorDialog.__init__  sY    T;=!!#,5 OOCLL$..Ir   c                 8    | j                   j                          y r   r   r   s    r   r   zUpdateErrorDialog.update  r   r   c                 <    | j                   j                  d       y )NT)r   )r   start_availabler   s    r   r   zUpdateErrorDialog.available  s    (((=r   r   )r#   r$   r%   r   r   r   r   r   r   r   r     s    J(>r   r   c                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)NeedRestartDialogc                 6   t         j                  | |       | j                  t        d             | j	                          | j                  t        d      | j                  j                        | _        | j                  t        d      | j                         y )Nz;The computer needs to restart to finish installing updates.zRestart _Laterz_Restart Now)
rH   r   rx   rm   ro   rj   r   r   rR   restartr   s     r   r   zNeedRestartDialog.__init__  sv    k2KL	
 	  " OO!1!1!7!7
 	.)4<<8r   c                    t         j                  |        | j                  j                          | j                  j	                         j                  t        j                  j                  t        j                  j                  z         y r   )
r   r   r   rK   
get_windowset_functionsr   
WMFunctionMOVEMINIMIZEr   s    r   r   zNeedRestartDialog.start  sY    T  "##%33NN#.."9"99	
r   c                 X    | j                          | j                  j                          y r   )#_request_reboot_via_session_managerr   r   )r   argskwargss      r   r   zNeedRestartDialog.restart  s     002 r   c                    	 t        j                         }|j                  dd      }t        j                  |d      }|j	                          y # t         j
                  $ r | j                          Y y t        $ r Y y w xY w)Nzorg.gnome.SessionManagerz/org/gnome/SessionManager)dbus
SessionBusr,   	InterfaceRequestRebootDBusException_request_reboot_via_consolekit	Exceptionr   bus	proxy_objifaces       r   r   z5NeedRestartDialog._request_reboot_via_session_manager  sr    
	//#C*,GI NN9.HIE!!! 	2//1 		   AA #A?4A?>A?c                    	 t        j                         }|j                  dd      }t        j                  |d      }|j	                          y # t         j
                  $ r | j                          Y y t        $ r Y y w xY w)Nzorg.freedesktop.ConsoleKitz#/org/freedesktop/ConsoleKit/Managerz"org.freedesktop.ConsoleKit.Manager)r  	SystemBusr,   r  Restartr  _request_reboot_via_logindr  r	  s       r   r  z0NeedRestartDialog._request_reboot_via_consolekit  st    	.."C,5I NN?E MMO!! 	.++- 		r  c                     	 t        j                         }|j                  dd      }t        j                  |d      }|j	                  d       y # t         j
                  $ r Y y w xY w)Nzorg.freedesktop.login1z/org/freedesktop/login1zorg.freedesktop.login1.ManagerT)r  r  r,   r  Rebootr  r	  s       r   r  z,NeedRestartDialog._request_reboot_via_logind  s^    	.."C(*CI NN9.NOELL!! 		s   AA A&%A&N)	r#   r$   r%   r   r   r   r   r  r  r   r   r   r   r     s     	9
! 	r   r   )&girequire_versiongi.repositoryr   r   r   warningsfilterwarningsDeprecationWarningr<   r   r  r   rL   HweSupportStatus.constsr   Core.LivePatchSocketr   
Core.utilsr	   r
   rm   r   objectr   r)   r'   rH   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r     s  . 
   5%         ,.@     	  1     V "!FCMM !@tB] tBn(> (&n &"
 "
J9~ 9,,) ,(
N 
( >  F,. ,&> >> >r   